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

[Plugin Addon] "Item Rules" with a file based scripting language

After some further testing I seem to have found the item/rule in question.
The bot stops bugging out when I take this item out of the inventory:
Code:
Chest
69 dex
145 int
211 vit
2 sockets
If I put it back in - the bugs come back.
So the culprit rule must be one of those:
Code:
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 100 && [SOCKETS] == 2 && [MAXSTATVIT] >= 320 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 100 && [SOCKETS] == 1 && [MAXSTATVIT] >= 360 ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 100 && [MAXSTATVIT] >= 400 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 150 && [SOCKETS] == 2 && [MAXSTATVIT] >= 280 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 150 && [SOCKETS] == 1 && [MAXSTATVIT] >= 320 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 150 && [MAXSTATVIT] >= 360 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 180 && [SOCKETS] == 2 && [MAXSTATVIT] >= 240 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 180 && [SOCKETS] == 1 && [MAXSTATVIT] >= 280 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [DEX] >= 180 && [MAXSTATVIT] >= 320 && ([ALLRES] >= 60 || [MAXONERES] >= 80) # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 100 && [SOCKETS] == 2 && [MAXSTATVIT] >= 360 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 100 && [SOCKETS] == 1 && [MAXSTATVIT] >= 400 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 100 && [MAXSTATVIT] >= 440 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 150 && [SOCKETS] == 2 && [MAXSTATVIT] >= 290 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 150 && [SOCKETS] == 1 && [MAXSTATVIT] >= 330 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 150 && [MAXSTATVIT] >= 370 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 180 && [SOCKETS] == 2 && [MAXSTATVIT] >= 230 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 180 && [SOCKETS] == 1 && [MAXSTATVIT] >= 270 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [INT] >= 180 && [MAXSTATVIT] >= 310 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 100 && [SOCKETS] == 2 && [MAXSTATVIT] >= 270 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 100 && [SOCKETS] == 1 && [MAXSTATVIT] >= 310 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 100 && [MAXSTATVIT] >= 350 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 150 && [SOCKETS] == 2 && [MAXSTATVIT] >= 290 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 150 && [SOCKETS] == 1 && [MAXSTATVIT] >= 330 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 150 && [MAXSTATVIT] >= 370 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 180 && [SOCKETS] == 2 && [MAXSTATVIT] >= 230 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 180 && [SOCKETS] == 1 && [MAXSTATVIT] >= 270 && [ALLRES] >= 60 # [KEEP]
[QUALITY] == Rare && [TYPE] == Chest # [STR] >= 180 && [MAXSTATVIT] >= 310 && [ALLRES] >= 60 # [KEEP]
I am currently just rerolling this back to your default chest rules to see if it helps.

can u test it with english client and check if the problem disapears ... thx
 
So by default this only keeps higher items compared to default trinity?
I mean when I replace default trinity with this does it some good right away or do I need to modify the settings myself?
 
if u don't wan't to use ... [NAME] ... u could also use it this way ...

Code:
// - The Butcher's Sickle -----------------------------------------------------+
// Legendary Axe
// Item Level: 60
[QUALITY] == Legendary && [TYPE] == Axe && [ONEHAND] == true && [LEVEL] == 60 # [DPS] > 800 && [SOCKETS] > 0 && ([LOH] > 0 || [MAXSTATVIT] > 100) 
[QUALITY] == Legendary && [TYPE] == Axe && [ONEHAND] == true && [LEVEL] == 60 # [DPS] > 900 && [SOCKETS] > 0
[QUALITY] == Legendary && [TYPE] == Axe && [ONEHAND] == true && [LEVEL] == 60 # [DPS] > 1000

u can just translate it once ... and call it like legendaryByType.dis

and from then u just use [FILE] == legendaryByType.dis

and ur good to go ... and when ur done u can also give the file to the community so evryone can profit

1) you write in legendary.dis: "this set of rules is no where of complete" ==>
So I would have to update the legendaryByType.dis every time you update legendary.dis
That is what I wanted to avoid, like translating all the time.

2) I do not fully understand how that should work:
How to distinguish e.g. between Doombringer and Skycutter?
Both would have:
[QUALITY] == Legendary && [TYPE] == Sword && [ONEHAND] == true && [LEVEL] == 60

but they have a different loot rule set.
So both would get [KEEP] by the union of the rule sets, or not?

In the end the behavior of legendary.dis and legendaryByType.dis would be different, for some items.

Sorry when that sounds too negative, but with my current understanding this method is even worse than translating.


Maybe we can find a better solution ...

May I come back to my question: are there any item codes / numbers that we could use?
I think that D3 works internally not with string names, but with item numbers.
Do you know how it works?

What is with e.g. [mightyWeapon_2H_norm_unique_flippy_10-33784]?
That was shown with the german client, so I assume it will be the same string on all clients.
Is that the unique code name for "Immortal King's Boulder Breaker"??
Maybe such item strings could be used.
Sorry when these are stupid questions, I do not know so much about the D3 internals, as you see. ;)



Best regards
?Golem
 
[Suggestion]

Hi all,

Thx for this very useful addon to Giles, I have a suggestion helping debug rule:
- Put Name (or Id) of Rule in .Dis file :

GOOD QUIVER # [QUALITY] == Rare && [TYPE] == Quiver # [DEX] >= 150 && [AS%] >= 15 && [CRIT%] >= 8 && [MAXDISCIP] >= 9 # [KEEP]

- In DB log (and Log file) put Name of rule used for decision :

[21:23:34.422 N] [GilesTrinity] ItemRuleSet: [ARMOR DEFAULT TRASH] : Blood Technique [voodooMask_norm_base_04-134] = (TRASH)



I advise to use Parse method override with CultureInfo.Invariante when your parse rule, it's with all windows language and regional setting ^^
 
I have a question:

if i have 2 rules one says TRASH the other says KEEP what will decide between them?
First match, last match, or anyone of them is an absolute?
 
I have a question:

if i have 2 rules one says TRASH the other says KEEP what will decide between them?
First match, last match, or anyone of them is an absolute?

First Match is used
 
Hi all,

Thx for this very useful addon to Giles, I have a suggestion helping debug rule:
- Put Name (or Id) of Rule in .Dis file :

GOOD QUIVER # [QUALITY] == Rare && [TYPE] == Quiver # [DEX] >= 150 && [AS%] >= 15 && [CRIT%] >= 8 && [MAXDISCIP] >= 9 # [KEEP]

- In DB log (and Log file) put Name of rule used for decision :

[21:23:34.422 N] [GilesTrinity] ItemRuleSet: [ARMOR DEFAULT TRASH] : Blood Technique [voodooMask_norm_base_04-134] = (TRASH)



I advise to use Parse method override with CultureInfo.Invariante when your parse rule, it's with all windows language and regional setting ^^

u already have the nr. of the rule that is applied .. u can just check ... in the log which one it was ''^^
 
If i download the most recent files from the unified giles plugin page and copy and paste them into over the files in my gilestrinity folder that has this loot rule plugin info will it still use the loot rules? Basically how can I use the most recent unified giles plugin with these loot rules?
 
If i cannot just cut and paste the unified giles plugin updates, what code do i need to add to GilesTrinity.xaml and GilesTrinity.cs in order for it to access the loot plugin with extra custom rules I have added.
 
If I have the dafault line for quivers which states that (using && switch) it must have at least 8 crit chance, AND trinity is also set up for 24k score... why it picks sh@tloads of quivers without any sign of crit (and other required stat too) AND got like 7k score?
 
can u test it with english client and check if the problem disapears ... thx

I will do that as soon as I get the chance. But this was the problem. Got all of my 15 bots running overnight with only one stuck in this loop (for another rule for a legendary.)

That rule was missing a "||" operator in it and have only broken the bot, when the bot actually found that legendary, but couldn't parse the rule for that legendary. Which would indicate that the "problem" of those lines I posted must be the "condition" part.

So by default this only keeps higher items compared to default trinity?
I mean when I replace default trinity with this does it some good right away or do I need to modify the settings myself?
Yes, It will trash some basic non-usable trash.
Still, the default rare-rules need much work, and legendary too, but that's a personal preference really. I mean, I consider any item below 10kk trash, while someone would really not like to be trashing 5kk items all the time.

If I have the dafault line for quivers which states that (using && switch) it must have at least 8 crit chance, AND trinity is also set up for 24k score... why it picks sh@tloads of quivers without any sign of crit (and other required stat too) AND got like 7k score?
This has already been answered.
Add a trash all quivers line after the default line for quivers. All those crappy ones are getting caught by a "safety rule for armor".
 
Also, just a quick question: when does the initialization of the itemrules take place? Enabling the addon, or initializing it? Will I be able to reload the rules by turning Trinity off and on again, or do I need to restart DB to reload rules?
 
can u test it with english client and check if the problem disapears ... thx
I tested it with English client, the problem was still there as it should, because I've found the actual problem :D I have a "&&" missing in the second line bebofe last brackets statement. Damn I must've looked through it 10 times and missed it somehow.

Also I tested my previous question: the specifications don't reload on plugin shutdown/enable. That's really inconvinient =( I would add that as a request if you want those =)
1) Some way to reload specifications without shutting down the bot and restarting again (some button in config maybe, or just move the specifications load to onEnable)
2) [AVGDMG] tag for rings/amus/mojos/sources. - really important stat that is kinda hard to deal with for now.
 
Last edited:
I tested it with English client, the problem was still there as it should, because I've found the actual problem :D I have a "&&" missing in the second line bebofe last brackets statement. Damn I must've looked through it 10 times and missed it somehow.

Also I tested my previous question: the specifications don't reload on plugin shutdown/enable. That's really inconvinient =( I would add that as a request if you want those =)
1) Some way to reload specifications without shutting down the bot and restarting again (some button in config maybe, or just move the specifications load to onEnable)
2) [AVGDMG] tag for rings/amus/mojos/sources. - really important stat that is kinda hard to deal with for now.

1) ok ... will be in next version ...

2) next version ...
 
1) ok ... will be in next version ...

2) next version ...
Nice! Looking forward =) Thanks for all your work, man!

Or maybe on townruns, trigger a reload of legendary.dis and rare.dis somehow?
That's a great idea also. At least from the user point of view. Just copy paste the rules where they need to be and they are already working as far as you are concerned, no need to even click anything =)
 
Back
Top