What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Add your own ItemSpecification to Stash items. (no coding needed)

darkfriend77

Member
Joined
Jun 14, 2011
Messages
467
Reaction score
2
So ... i checked fast the old d2 bots ... and i remebered there coding for pickit and stuff ...

a implemented fast a similar way to add item checking ...

this will be checked in addition to gilesscoring at the moment ...

just we could add some nice feature to get our bots effective in looting ...


All rules are saved in the file item.dis

Code:
[TYPE] == Helm # [STR] > 100 and ( [CRIT%] > 5 or [LIFE%] > 5 or [LOH] > 50 ) and ( [SOCKET] > 0 or [ALLRES] > 50 )
[TYPE] == Belt # [STR] > 80 and [VIT] > 50 and [ALLRES] > 35 and [LIFE%] > 5
[TYPE] == Boots # [DEX] == 79 and [INT] == 38 and [VIT] == 142

like that ...

i haven't implemented all attributes ... and the code to parse item.dis is also a recursive dirty b... but it is working and didn't took much more then a few minutes...

i have added the lastest giles ... as zip .. with my addition ... it is just a small prove of concept ... ^^

features that could be added:

- tell bot to trash item (like: [TYPE] == Helm # [SOCKET] < 1 # [TRASH])
- and much more ...

PS: If someone interested in this kind of possibility just tell me ... so i will work on it ... maybee also we can find a perfect way to add it to giles (if giles is interested in something like that)...
 

Attachments

Last edited:
Yea I remember this from my old d2 bots, it worked perfectly since I knew exactly what I wanted.

I'm very interested in this being integrated with Giles.
 
This would make life very easy, You also could tell it what legendays to keep or scrap.
 
I do have a question. Are you pulling your scripting from D2NT? Didn't it use operators such as "&&" and "||"?

Example:
[Name] == BerserkerAxe && [Quality] == superior && [Flag] != ethereal # ([Sockets] == 0 || [Sockets] == 6) && [EnhancedDamage] == 15

"==" = Equal
"!=" = Not Equal
"&&" = And
"||" = Or

I think if you were to do this maybe that might be a bit easier to script out and for others to change on their own. Lots easier to see "&&" rather then search for the word "and" with your eyes. Just an idea man.
 
i just made a fast implementation in which i used "and" and "or" but when i will work on it i will change to the old fashion style "&&" and "||" ... i will have time over the weekend ... if there are any betatesters ...just give me msg
 
Im in I did some work with Etal so I am familair. Keep me in the loop and ill help as much as I can
 
This is an awesome idea, really good to keep gear for other characters and also yourself, most of my characters aren't ubber geared and I often see some items that were going to be sold that would be a marginal upgrade. Hope it gets into Giles on a permanent basis.

G

EDIT: Think a popup box with a few drop downs to create the items and stats you always want saved would be easiest, you would pick what you want, save that and it gets append to a list, rinse and repeat.

G
 
Last edited:
I worked on the old Muddy project some myself. (Reason I gave the operator suggestion). I'd be happy to help as well.
 
can't wait, we have been wanting this for a long time but nobody was willing to do the work. Thank you.
 
Tried it out and unless I am doing something terribly wrong

Testing the following two items and conditions:
fgbJy.png


I get the following
Code:
[12:07:37.573 D] Replaced hook [ProfileOrderBehavior_Hook] bc34bab7-2b31-4408-9143-2409ce0313ef
[12:07:37.713 N] [GilesTrinity] No more space to pickup a 2-slot item, now running town-run routine.
[12:07:39.603 D] [GilesTrinity] GSDebug: Stash routine started.
[12:07:40.243 D] Parsing parent type table: -1079338204
[12:07:40.423 D] Moving item args: <itemId:2019623066, ownerId:2018312326, InventorySlot:PlayerSharedStash, column:5, row:18>
[12:07:40.653 D] Moving item args: <itemId:2023424212, ownerId:2018312326, InventorySlot:PlayerSharedStash, column:6, row:18>
[12:07:40.673 D] [GilesTrinity] GSDebug: Stash routine ending sequence...
[12:07:40.683 D] [GilesTrinity] GSDebug: Stash routine finished.
[12:07:42.383 D] Replaced hook [ProfileOrderBehavior_Hook] c90a163c-7fc0-4bbb-af0d-6707dec09c4d
[12:07:42.913 D] Done vendoring.
[12:07:42.933 N] [RadsAtom] - Loading next profile: E:\DRTrinity\DemonbuddyBases\271\BigRed_DamnedTower.xml
[12:07:42.933 N] [RadsAtom] - Resetting the deathcounter.
[12:07:43.023 D] Navigator.Clear

It stashes both the items (as gilestrinity normally would as they both are above the normal score threshold
Code:
Armor - Gloves 'Fatal Tendrils'. Score = 27127
  Strength=155. Crit Chance %=5. Crit Damage %=34. +All Resist=32. +Highest Single Resist=34

Armor - Gloves 'Xiansai Grips'. Score = 17060
  Strength=100. Crit Chance %=7. Thorns=73. +All Resist=74. +Highest Single Resist=29

But as mentioned in the pic, only Fatal Tendrils should be stashed if these additional loot options are counted for yeah? Funny how a lot of people have been mentioning people not willing to do the work to make the plugin, but most don't seem to be willing to do the work and actually TRY it hahaha!
 
Could you make this so I can choose wheter I want to pickup a certain kind of armor/weapon or not?
 
But as mentioned in the pic, only Fatal Tendrils should be stashed if these additional loot options are counted for yeah? Funny how a lot of people have been mentioning people not willing to do the work to make the plugin, but most don't seem to be willing to do the work and actually TRY it hahaha!

Like what has been stated. Not everything is included yet. The syntax hasn't been fine tuned and its still "a recursive dirty b..." as the OP said. Your not the only one that has tested this. Your the only one who has complained thus far. Let the man do some fine tuning!

Another note: If he is pulling his scripting from Etal or D2NT. The syntax is wrong anyway:

[Type] == Gloves # [Str] > 150 and [Crit%] > 4

[TYPE] == Helm # [STR] > 100 and ( [CRIT%] > 5 or [LIFE%] > 5 or [LOH] > 50 ) and ( [SOCKET] > 0 or [ALLRES] > 50 )
[TYPE] == Belt # [STR] > 80 and [VIT] > 50 and [ALLRES] > 35 and [LIFE%] > 5
[TYPE] == Boots # [DEX] == 79 and [INT] == 38 and [VIT] == 142

This wouldn't be correct. Your not giving the script engine a quality to look for. Your telling it to find a normal item with those properties. You'll not find them. So in a system like this it will rely on the scoring system from Giles.

Correct Example:

[Type] == Gloves && [Quality] == Rare # [Crit%] >= 5 && [Str] >= 151

Breakdown of the above: Find Rare Gloves with a Crit % of 5 or more and with Str of 151 or more.

Like I said however. This is only if he plans to follow that syntax. Another thing to note is that D2NT and Etal were bad at just using '>' or '<'. I found that you needed to use the '=' when using comparisons. But it depends on the parser he is using and/or coding.
 
Like what has been stated. Not everything is included yet. The syntax hasn't been fine tuned and its still "a recursive dirty b..." as the OP said. Your not the only one that has tested this. Your the only one who has complained thus far. Let the man do some fine tuning!

Another note: If he is pulling his scripting from Etal or D2NT. The syntax is wrong anyway:





This wouldn't be correct. Your not giving the script engine a quality to look for. Your telling it to find a normal item with those properties. You'll not find them. So in a system like this it will rely on the scoring system from Giles.

Correct Example:



Breakdown of the above: Find Rare Gloves with a Crit % of 5 or more and with Str of 151 or more.

Like I said however. This is only if he plans to follow that syntax. Another thing to note is that D2NT and Etal were bad at just using '>' or '<'. I found that you needed to use the '=' when using comparisons. But it depends on the parser he is using and/or coding.

He himself said to use the 'and' and 'or' to your initial question about the d3tnt.

My comment about no one trying was to the person on pg2 and some others. But onto the topic will still check with other operators but he did say he implemented it differently.
 
i just made a fast implementation in which i used "and" and "or" but when i will work on it i will change to the old fashion style "&&" and "||" ... i will have time over the weekend ... if there are any betatesters ...just give me msg

This is actually what he said. I'm not arguing with you. Will do no good! :D My point is just this: Its not even in an "Alpha" state yet. Seems like your more then willing to be a Beta tester++! Just let him know and give feedback like your doin'. I'm only pointing out that if its like D2NT or Etal you need to give the parser a quality to look for as well.
 
This is actually what he said. I'm not arguing with you. Will do no good! :D My point is just this: Its not even in an "Alpha" state yet. Seems like your more then willing to be a Beta tester++! Just let him know and give feedback like your doin'. I'm only pointing out that if its like D2NT or Etal you need to give the parser a quality to look for as well.

I am not arguing but I think theres just a misunderstanding. I am just saying the operators he has implemented aren't working or just the actual interpreter.cs isn't working. And he just mentioned he might swap to the ones you keep saying you should use.

Looking at his code even he has it set to use based on "and", "or", "<" and ">"

Code:
                return checkTruth(str.Replace("(" + bracketContainer + ")", checkTruth(bracketContainer).ToString()));
            }
            else if (str.IndexOf("and") != -1)
            {
                bool result = true;
                string[] strings = Regex.Split(str, @"and");
                foreach (string hold in strings)
                    result &= checkTruth(hold);
                return result;
            }
            else if (str.IndexOf("or") != -1)
            {
                bool result = true;
                string[] strings = Regex.Split(str, @"or");
                foreach (string hold in strings)
                    result |= checkTruth(hold);
                return result;
            }
            else if (str.IndexOf("<") != -1)
            {
                string[] strings = Regex.Split(str, @"<");
                //Console.WriteLine(strings[0] + " is smaller then " + strings[1]);
                return checkExpression(strings[0], "<", strings[1]);
            }

            else if (str.IndexOf(">") != -1)
            {
                string[] strings = Regex.Split(str, @">");
                //Console.WriteLine(strings[0] + " is greater then " + strings[1]);
                return checkExpression(strings[0], ">", strings[1]);
            }
etc etc

-
 
Last edited:
I am not arguing but I think theres just a misunderstanding.

Your right. Lol. There is a misunderstanding! I'm not talking about the operators. I'm talking about giving the items a quality. Hehe. My original comment was when using '>' or '<' to state it as an "x then or equal to". My comments on the operators was to the OP whom seems to agree. Hehe.
 
Back
Top