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

I left the following in. Are you saying I should remove it?

// keep all legendarys and special items
// this is a saftey line ... as long it isn't removed it will keep all items
// specifyed by the rule ... the action of commenting it out
// will apply all following rules ... this set of rules is no where of complete
//[QUALITY] == Legendary || [QUALITY] == Special # True # [KEEP]

// keep all Weapon for now
//[QUALITY] == Legendary && [BASETYPE] == Weapon # True # [KEEP]

// keep all Armor for now
//[QUALITY] == Legendary && [BASETYPE] == Armor # True # [KEEP]

// keep all jewelerys for now
//[QUALITY] == Legendary && [BASETYPE] == Jewelry # True # [KEEP]

Yes, that work
 
Another worthy legendary bites the dust

From JunkLog:
Armor - Shoulders 'Shoulders'. Score = 45247 {legendary item}
Dexterity=200. Vitality=78. Life Regen=301. +All Resist=76. Armor=261

How do I get the plugin to keep items as such?
 
I just want to let you know a bug exists here with item type identification in some cases, I think it's DB or perhaps even Diablo itself at fault here, but for example it detects Andariel's Visage as

item.ItemBaseType = Misc
item.ItemType = Unknown

instead of what would be expected:

item.ItemBaseType = Armor
item.ItemType = Helm

This means that the cleanup rules section does not trash bad andariels because it has not matched the ItemBaseType Armor:

// cleanup rule trashing all other weapon legendarys
[QUALITY] == Legendary && [BASETYPE] == Weapon # True # [TRASH]
[QUALITY] == Legendary && [BASETYPE] == Armor # True # [TRASH]
[QUALITY] == Legendary && [BASETYPE] == Jewelry # True # [TRASH]

The way I have fixed this is to add the following rule to cleanup:

[QUALITY] == Legendary && [BASETYPE] == Misc # True # [TRASH]

I imagine this may have further implications and should be added elsewhere but at the moment I've just added it to legendaries, took some hours to figure out why it was not correctly handling these so thought I'd share.

You should also probably add some safety rules for BaseType Misc if you are adding this rule.
 
Last edited:
I left the following in. Are you saying I should remove it?
"Text here..."

No, dont remove it, un-comment it. You should have

// keep all legendarys and special items
// this is a saftey line ... as long it isn't removed it will keep all items
// specifyed by the rule ... the action of commenting it out
// will apply all following rules ... this set of rules is no where of complete
[QUALITY] == Legendary || [QUALITY] == Special # True # [KEEP]

// keep all Weapon for now
[QUALITY] == Legendary && [BASETYPE] == Weapon # True # [KEEP]

// keep all Armor for now
[QUALITY] == Legendary && [BASETYPE] == Armor # True # [KEEP]

// keep all jewelerys for now
[QUALITY] == Legendary && [BASETYPE] == Jewelry # True # [KEEP]

Im pretty sure you could also just keep the first line, but I left everything just in case :D
 
Last edited:
Another worthy legendary bites the dust

From JunkLog:
Armor - Shoulders 'Shoulders'. Score = 45247 {legendary item}
Dexterity=200. Vitality=78. Life Regen=301. +All Resist=76. Armor=261

How do I get the plugin to keep items as such?

Keep all legendaries and filter them by hand. Buzzard is fu***** with us.
 
Is there an archive of the older versions? Looking for the one based on v0.39 of unified.
 
Last edited:
French legendary version View attachment 68366

I don't remeber what, but I have view 2 english filter not corresponding with description

Code:
// - Frostburn Gauntlets ------------------------------------------------------+
// Legendary Gloves
// 496?548 Armor
// Adds 5-6% to Cold Damage
// Cold skills deal 15-30% more damage.
// +216-240 Armor
// Health Globes and Potions Grant +3733-5977 Life.
// Increases Gold and Health Pickup by 7 Yards.
// Item Level: 62
[QUALITY] == Legendary && [NAME] == Gladiator Gauntlets # [COLDDMG%] > 5 && [ARMORTOT] > 750

Code:
// - Hierophant's Seal --------------------------------------------------------+
// Legendary Ring
// 191?215 Armor
// Attack Speed Increased by 6-7%
// +5-12% Damage to Demons
// +6-7% Life
// +191-215 Armor
// Regenerates 116-160 Life per Second
// +1 Random Magic Properties
// Item Level: 61
[QUALITY] == Legendary && [NAME] == Band of Hollow Whispers # [DMGFACTOR] > 7 || [MAXSTATVIT] > 50 || [ALLRES] > 40
 
Code:
// - Frostburn Gauntlets ------------------------------------------------------+
// Legendary Gloves
// 496–548 Armor
// Adds 5-6% to Cold Damage
// Cold skills deal 15-30% more damage.
// +216-240 Armor
// Health Globes and Potions Grant +3733-5977 Life.
// Increases Gold and Health Pickup by 7 Yards.
// Item Level: 62
[QUALITY] == Legendary && [NAME] == Gladiator Gauntlets # [COLDDMG%] > 5 && [ARMORTOT] > 750

Code:
// - Hierophant's Seal --------------------------------------------------------+
// Legendary Ring
// 191–215 Armor
// Attack Speed Increased by 6-7%
// +5-12% Damage to Demons
// +6-7% Life
// +191-215 Armor
// Regenerates 116-160 Life per Second
// +1 Random Magic Properties
// Item Level: 61
[QUALITY] == Legendary && [NAME] == Band of Hollow Whispers # [DMGFACTOR] > 7 || [MAXSTATVIT] > 50 || [ALLRES] > 40

Saw this too while translating
 
Is there any available input for chill on hit and freeze on hit? mainly thinking of shoulders and belts.... :)

- Level Requirements would be good to implement as well.
-18 on gosugear can easily up the value.
 
Last edited:
Someone mentioned way back on the first page that a '+' operator would be handy. I agree, especially if it worked where the true condition evaluated as 1 and false as 0. That way you could do something like (mainstat > 100 + allres > 50 + crit% > 7 + critdmg% > 30) >= 3 to match 3 out of the 4 conditions in a neat, concise way.

EDIT: additionally, you could use a ternary expression to assign value to a true condition other than just 1 or 0. (mainstat > 100 ? 50 : 0) would evaluate to 50 on true, 0 on false. Then you could implement scoring in an expression, and probably just replace Giles looting altogether with some smart rules. In that case, leaving off the "? x : y" would be syntactically equivalent to "? 1 : 0", or leaving off the ": y" would make the false condition still 0.

Just making my point clear:
[CRIT%] >= 5 // 1 on true, 0 on false
[CRIT%] >= 5 ? 20 // 20 on true (still evaluates as true), 0 on false
[CRIT%] >= 5 ? 20 : 0 // 20 on true, 0 on false
[CRIT%] >= 5 ? 20 : 10 // 20 on true, 10 on false (both are true when compared to true)

As a side note, comparing a number to 'true' should be true if the number is not 0.

So finally, composing a scoring rule:
[QUALITY] == Rare && [BASETYPE] == Weapon && [ONEHAND] == true # ([DPS] + [CRITDMG%] + ([SOCKETS] > 0 ? 200)) >= 1200 # [KEEP]
*note: parentheses added for readability, they should be unnecessary if the evaluation is correct

BTW, this work is awesome, thanks for your effort!
 
Last edited:
Ok, I've been working with rare rules for some time, this is a part of it I would like to share. Seems like with latest specifications the most of the trash you get are ammys, rings and gloves, so I started with the most difficult (I think at least). The ammys. I warn you - these rules are strict as fuck, they are designed to trash anything unsellable or sellable but below 10kk AH price, and ofc it may have contain mistakes that will make it trash some godlies (I doubt it though) so use at own risk.


check this thread ... and post it there ^^ http://www.thebuddyforum.com/demonb...-dis-files-lets-work-together.html#post879110
 
Hey darkfriend77. Firstly, i want to thank you for your awesome works.
I've been having problem with your Giles Custom Loot Plugin. Sometimes my bot just stuck on town and when I check the logs. It's scoring items and it keeps going over and over again. I don't keep the log so I can't send it to you.
I'm using DB .284 and atom 2.0.15. Any idea what is the problem?
 
Back
Top