Author Topic: Sorting addon deeds  (Read 4138 times)

0 Members and 1 Guest are viewing this topic.

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Sorting addon deeds
« on: November 02, 2015, 01:12:32 PM »
0
As you know there is a metric ton of different types of house decor deeds out there. http://www.uoguide.com/Category:House_Addons. Some on the list aren't worth picking up at idoc, such as a loom or dartboard(or any player made item?), but some are very desirable. And then there are goza mats, the most vile of idoc loot since they hide items from view on floors above and share the same type as every other addon... so some filtering is needed.

I'm already performing an Event Property #findID and so filtering isn't too difficult but there are so many deeds to eliminate that it can become lengthy to perform a different "if" iteration for each. Lets say I just want to eliminate goza mats and dart boards for now...
Code: [Select]
sub whatever
IF Goza in #Property
{
ignoreitem #findID
}
IF Dart in #Property
{
ignoreitem #findID
}
return

Is creating a list of words going to be as efficient as a list of item types? example

Code: [Select]
set %deedFilter Goza_Dart_etc ;followed by a
IF %deedFilter in #Property
{
ignoreitem #findID
}

Will using deedFilter even work to specify text like that? If so, does it cause much of a slowdown? I'm not on my game computer to test right now.






Offline Biza

  • Jr. Member
  • **
  • Posts: 71
  • Activity:
    0%
  • Reputation Power: 1
  • Biza has no influence.
  • Gender: Male
  • Respect: +9
  • Referrals: 0
    • View Profile
Re: Sorting addon deeds
« Reply #1 on: November 02, 2015, 11:25:20 PM »
0
Would it be easier to populate a list that only looks for the ones you want? Instead of an ignore? There is no reason to write out an ignore for ever single deed you don't want vs writing out a few that you do.

Also it is always easier to list items to ignore rather than write a line for each and every single one. ( Goza in #property || dart in #property ect ect
« Last Edit: November 02, 2015, 11:31:29 PM by Biza »
Quote from: TrailMyx
These are the things we look for in new users and perspective Elite members:

Quoting Elites/GMods/Admins in your siggys.

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Sorting addon deeds
« Reply #2 on: November 03, 2015, 05:57:14 AM »
0
They work out to about the same size lists if I include or ignore, I want about half of them. The reason I've switched to using ignore is because of all the bloody EM items and some rares that share the same type. Example, a wedding invitation signed by Lord British for two named people was at an idoc and I had no chance of looting it because my include list didn't include it(Didn't know it existed) and it shared the TVH item type. That item would not have been filtered out if using an ignore list instead.

Code: [Select]
xxxxx not in property || xxxxx not in property || xxxxx not in property || xxxxx not in property || etc
That gets kind of long if there are 100 items on the list, can the xxxxx be created into a set variable, ie: "set dunwantit xxxxx_xxxxx_xxxxx_xxxxx_etc" ?? I know that works for item types and findIDs but would it work for a property text search? the xxxxx are not itemIDs, they are words I want the associated items ignored for.

Offline Biza

  • Jr. Member
  • **
  • Posts: 71
  • Activity:
    0%
  • Reputation Power: 1
  • Biza has no influence.
  • Gender: Male
  • Respect: +9
  • Referrals: 0
    • View Profile
Re: Sorting addon deeds
« Reply #3 on: November 03, 2015, 05:03:16 PM »
0
Symbols for additional lines. You can't use #property for a name or part of a name when I get home I will post it for you.

Your going to have to make a list for the ones you want. The ones you don't want will be ignored by default. Auto correct makes it hard to do from my phone.
« Last Edit: November 03, 2015, 05:05:39 PM by Biza »
Quote from: TrailMyx
These are the things we look for in new users and perspective Elite members:

Quoting Elites/GMods/Admins in your siggys.

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +393
  • Referrals: 1
    • View Profile
Re: Sorting addon deeds
« Reply #4 on: November 03, 2015, 08:41:39 PM »
0
As you know there is a metric ton of different types of house decor deeds out there. http://www.uoguide.com/Category:House_Addons. Some on the list aren't worth picking up at idoc, such as a loom or dartboard(or any player made item?), but some are very desirable. And then there are goza mats, the most vile of idoc loot since they hide items from view on floors above and share the same type as every other addon... so some filtering is needed.

I'm already performing an Event Property #findID and so filtering isn't too difficult but there are so many deeds to eliminate that it can become lengthy to perform a different "if" iteration for each. Lets say I just want to eliminate goza mats and dart boards for now...
Code: [Select]
sub whatever
IF Goza in #Property
{
ignoreitem #findID
}
IF Dart in #Property
{
ignoreitem #findID
}
return

Is creating a list of words going to be as efficient as a list of item types? example

Code: [Select]
set %deedFilter Goza_Dart_etc ;followed by a
IF %deedFilter in #Property
{
ignoreitem #findID
}

Will using deedFilter even work to specify text like that? If so, does it cause much of a slowdown? I'm not on my game computer to test right now.


Yes will work.

Slow down depends on your LRC  and the number of IgnoreItems you do.  Unless you clear the ignoreitem list it will get long, too long and it will have an effect... what is too long no idea.   Note  FINDITEM is the slowest command in all of EUO.   Therefor reduce the number of times you do finditem for speedy scripts.   Finditem returns a list of found items  #findindex = 1..to #findcnt  that you can cycle through.

When I have a large Exclusion lists  or computations I temp set the LPC to 5000 10000 or max 20000....  then after set it back down to what it was before  (not increase LRC wont increase finditem speed... but will increase everything that doesn't interact with client  ie if this = that)

Code: [Select]
set !PriorLRC #lrc
set #lrc 5000
; do some number crunching tasks
set #lrc !priorLRC
« Last Edit: November 03, 2015, 08:45:10 PM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline Biza

  • Jr. Member
  • **
  • Posts: 71
  • Activity:
    0%
  • Reputation Power: 1
  • Biza has no influence.
  • Gender: Male
  • Respect: +9
  • Referrals: 0
    • View Profile
Re: Sorting addon deeds
« Reply #5 on: November 03, 2015, 10:36:06 PM »
0
I thought you had to use str in property searches for one word when there are many. I.E. drunk mans singing ball <> drunk womens singing ball <> singing ball of bedlam ect ect

Code: [Select]
set %id XXXXX              ; specify item id of object
repeat
  event property %id       ; fetch the description of the object
  sleep 20
  str len #property
until #strres > 0          ; make sure property is filled
str pos #property $ 1      ; look for first return character in text
str left #property #strres ; grab text up to and including first return character
if ball in #strres     ; use the 'in' operator to see if phrase exists as substring of text
  display ok %id $ #strres
stop

took this from ximan when he was explaining it to me, you could ignore or create a list of items you want without having to list every single item by just having one word from a name of many items that you would want.

Most items aren't worth picking up, especially at an idoc. Your going to want to go after the "rarest" ones and probably ingore those worth just a mil or 2. There are a TON of player made addons and a lot of reward/turn in ones. The rarest I would imagine are the ones you are going for?

The crystalline furniture set, all of the rugs ect ect. Could just list one word from the entire name and omit the rest by default.

http://wiki.easyuo.com/index.php?title=Str_%28command%29

Very limited knowledge of this, might not work for what you are trying to do. Do all the house deeds have the same ID? Never bothered to look

« Last Edit: November 03, 2015, 11:26:58 PM by Biza »
Quote from: TrailMyx
These are the things we look for in new users and perspective Elite members:

Quoting Elites/GMods/Admins in your siggys.

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Sorting addon deeds
« Reply #6 on: November 04, 2015, 01:33:02 AM »
0
Yup, virtually anything player made is a waste of space in your pack. I've gotten heavy handed with throwing things in the brit cleanup chest of late, if it sells for 50k or less I usually turn it in because my vendors are full of better things. 250k cleanup points = 1 rare dye = near instant sale for millions so it's not a complete loss. Some items, like soulstones, give 15k points so I don't ignore those.

It gets complicated with EM items, the names are rather unique. Also some of the old double exceptional of quality items take time to parse or you miss those. Portals, deed boxes and "pinks" tend to be locked down in every house so I prioritize those due to decent value.... rares on the other hand are few and far between.

I've got a solid working script and am looking for ways to cut more time off what it does, competing with stealth isn't an easy task right now.

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +393
  • Referrals: 1
    • View Profile
Re: Sorting addon deeds
« Reply #7 on: November 04, 2015, 04:36:04 AM »
0
I thought you had to use str in property searches for one word when there are many. I.E. drunk mans singing ball <> drunk womens singing ball <> singing ball of bedlam ect ect


That is an incorrect assumption.   The IN and NOTIN commands checks if one string is in another.  Words have nothing to do with it.

The below 3 ifs  will each select drunk/man/women ball while excluding bedlam ball.  With out using any STR commands.

if   drunk_mans_singing_ball IN #property  ||  Drunk_womens_Singing_Ball IN #PRoperty
if  singing_ball IN #Property  &&  bedlam NOTIN #property
if  drunk_ in #property &&  singing_ball IN #property

Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Sorting addon deeds
« Reply #8 on: November 05, 2015, 01:44:48 AM »
0
Code: [Select]
if  drunk_ in #property &&  singing_ball IN #property
So would this work?

Code: [Select]
set %wordsiLike drunk_singing_ball_etc_moreetc
if %wordsiLike in #property

That way I can modify a string of words to either include or exclude... or perhaps both by filtering first through an "in" and then through a "&& notin". I'm pretty sure it works, I have something like that happening now, but I'm also needing speed here so which way would be faster? Setting the wordsiLike would definitely be easier to code since I wouldn't need to have "in #property &&" between every word, ie: "every in #property && single in #property && word in #property"

The end result, after setting a list up of words I like would be as simple as adding one line before the first drag event, something like....

Code: [Select]
if ITEMTYPE = XXX && %wordsiLike in #propertyIf it's not a deed there is no slowdown, the check fails and code continues for normal non-deed items. If it is a deed (itemtype) then a check for words i like is done and again it fails if they aren't there so a quick ignoreitem return on that particular deed can be done. If it finds a deed AND it has a word I like such as Davie then it will try to loot it.

I'm just trying to find the most efficient way of coding that, is there a faster way? I think I avoid a #property check on non-deeds, less is more.


« Last Edit: November 05, 2015, 01:56:26 AM by Gemviper »

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Sorting addon deeds
« Reply #9 on: October 14, 2016, 07:00:43 AM »
0
*update* I thought I worked out all of the bugs in my script but realized I overlooked something with deeds. I perform an "Event Property #findID" and filter accordingly to get only the items I want from shared item types(mainly deeds). It dawned on me that while this works great to find the item at first the script is not optimal after the pathfind kicks in and it begins scanning for other items on the list within G_2.

What's happening: As I mentioned I ignore deeds I don't want but during the pathfinding/G_2 searching for more the G_2 finditem search is also looking for items from the secondary list(non-filtered, not deeds) and so the filtering is actually causing problems. My secondary list is not filtered for any keywords because it doesn't need to be.

To be clear, filters are working great, secondary list is working well, it's just the grabbing of items along the way when they are found within G_2 that's a problem. If I use "keyword notin #Property && keyword2 notin #Property etc" then none of my secondary list items can be picked up because no keywords are specified but if I use "keyword in #Property || Keyword in #Property etc" then the deeds are no longer filtered during the G_2 finditem call and so it occasionally grabs any random deed it comes across.

It "gets back on track" immediately but how can I set two lists of items while only filtering one when G_2 searches kick in?

Is it possible to do "set %keywordlist keyword1 || keyword2 || etc" to quickly include in a #property query?  "If %keywordlist in #property" would be so much simpler to code than to use a long list of individual || in #property or && notin #property. I'm sure there's a way, I just don't know the syntax I'd use to set(set %keywordlist words-here?) a list of keywords to use after an "Event Property #findID"
« Last Edit: October 14, 2016, 07:03:40 AM by Gemviper »

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Sorting addon deeds
« Reply #10 on: October 14, 2016, 06:07:20 PM »
0
Forget the above, I took a different approach  ;D

Question - "IF #FINDTYPE in %itemList" works as a filter when I specify a list of itemtyes(set %itemList AAA_BBB_CCC_ETC). Can I do the same with a list of keywords to filter?

ie: set %goodwords sheep_shed_guildstone_etc and then do something like:

Event Property #findID
IF #Property tin %goodwords
etc, etc

If so, some words like Fire_Painting are required in combination because just fire or just painting gets other items. What I want to do is just set the list of keywords to a variable as opposed to reiterating through a long list of || or ?? each time a finditem is run. Again, during an idoc, there is an initial finditem then a lot of closer range finditem searches while you move to the initial item. Filtering each close range search is tedious, especially when the items G_2 is looking for may or may not need filtering.

Deeds are such a pain.

Tags: