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

WIP Community Loot Rules - Patch 2.1.2 Ancient Rules

iPanda

Member
Joined
Sep 6, 2013
Messages
189
Reaction score
1
iPanda Legendary Loot Rules - BETA

===> FIRST THREAD IS ALWAYS UPDATED WITH NEW CHANGES <===


Hello community.

I'm a Diablo afficionate and i want to improve the loot rules for our loved Buddy Bot.

- Credits go to @Job2k9. I used his 2.1 list as a template (thread link below)
- Credits go to @HitmanReborn as i used his syntax on the loot rules + some of his own rules (thread link below)

https://www.thebuddyforum.com/demonbuddy-forum/plugins/162675-jobs-legendary-rule-set.html

> ATTENTION

- These rules will only keep ANCIENT gear
- This is not recommended for new characters
- This is a WORK IN PROGRESS loot rule

> ATTENTION #2

- The reason i am sharing these rules is simple: I want everyone to take a look at them and share inputs and say:
1. if there is anything that need to be fine tuned
2. if the loot rules are working for you
3. if there is any item that needs to be added or deleted
4. if there is any items that should have its stats changed


> SETTING UP
  1. Download attached file
  2. Set Trinity to identify legendaries
  3. Trinity settings, under "Items -> Pickup" set "Choose Item Rules Type:" to "File Based Script Rules"
  4. On the "ItemRules" tab set "Use Rule Set:" to "Custom *RTFM!"
  5. Set "Optional Custom Item Rule Set Path:" to the location where you extrated the rules
  6. Hit "Reload Script Rules"


Changelog.
- v1.1
* initial beta release

- v1.2
* fixed some syntax formulas

- v1.3

* fixed some errors
* added new logic to quivers, rings and ammies
* keeps all legendary ancient items
* added [RESRED%] and [DMGVSELITE%] tags, still need tests.


- TO-DO List
* update shield formula
* figure what spirit stones to keep
* tight bows and xbows rules
* define rule for Hearthslaughter item
 

Attachments

Last edited:
Looks nice, and I see you kept some my strict rules in too. XD
Just wanted to let you know that there's some typo's with the rules you added to some rings.
e.g
Code:
[QUALITY] == "Legendary" && [NAME] == "Band of Hollow Whispers" # [CRIT%] < 6 [B]&&|[/B] [CRITDMG%] < 40 -> [TRASH]
it should be:
Code:
[QUALITY] == "Legendary" && [NAME] == "Band of Hollow Whispers" # [CRIT%] < 6 [B]&&[/B] [CRITDMG%] < 40 -> [TRASH]
 
Looks nice, and I see you kept some my strict rules in too. XD
Just wanted to let you know that there's some typo's with the rules you added to some rings.
e.g
Code:
[QUALITY] == "Legendary" && [NAME] == "Band of Hollow Whispers" # [CRIT%] < 6 [B]&&|[/B] [CRITDMG%] < 40 -> [TRASH]
it should be:
Code:
[QUALITY] == "Legendary" && [NAME] == "Band of Hollow Whispers" # [CRIT%] < 6 [B]&&[/B] [CRITDMG%] < 40 -> [TRASH]


thanks, just fixed it and i'm upload it again on first thread.

do you happen to have a marauder visage? for some reaso the loot rule i had trashed a ancient one that it shouldnt.

[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [TRASH]
 
thanks, just fixed it and i'm upload it again on first thread.

do you happen to have a marauder visage? for some reason the loot rule i had trashed a ancient one that it shouldn't.

[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [TRASH]
I just tested it and it works like it should.
what were the stats on your helm that it trashed?
 
dex, sock armor, ele arrow
The reason it was trash was because it had armor instead of vitality.
Keep in mind that this is the truth table being used:

Code:
Marauder's Visage
[DEX] < 751          ||          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               YES
      T                                F               YES
      F                                F                NO
 
Last edited:
The reason it was trash was because it had armor instead of vitality.
Keep in mind that this is the truth table being used:

Code:
Marauder's Visage
[DEX] < 751          ||          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               YES
      T                                F               YES
      F                                F                NO


shouldnt || means OR, so if it has more than 751 dex or more than 751 vita -> KEEP

from the trinity item rules

AND "&&" true && false -> false
OR "||" true || false -> true
EQUAL "==" 10 == 11 -> false
NOTEQUAL "!=" 10 != 11 -> true
LESSEREQUAL "<=" 10 <= 10 -> true
BIGGEREQUAL ">=" 10 >= 10 -> true
LESSTHEN "<" 10 < 10 -> false
BIGGERTHEN ">" 10 > 10 -> false
BRACKETS "()" (5+5)*2 == 5+(5*2) -> false
PLUS/MINUS "+-" 1 + 2 -> 3
MULT/DIV "*/" 1 * 2 -> 2


what should be the code to keep either dex or vit
 
Last edited:
shouldnt || means OR, so if it has more than 751 dex or more than 751 vita -> KEEP

from the trinity item rules




what should be the code to keep either dex or vit
if it was
Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [KEEP]
it would, but in this case you want to use:
Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 && [VIT] < 751 -> [TRASH]
it's just the matter of if you're using a trash rule or keep rule

Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [TRASH]
Marauder's Visage
[DEX] < 751          ||          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               YES
      T                                F               YES
      F                                F                NO

Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 && [VIT] < 751 -> [TRASH]
Marauder's Visage
[DEX] < 751          &&          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               NO
      T                                F               NO
      F                                F               NO
 
Last edited:
if it was
Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [KEEP]
it would, but in this case you want to use:
Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 && [VIT] < 751 -> [TRASH]
it's just the matter of if you're using a trash rule or keep rule

Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 || [VIT] < 751 -> [TRASH]
Marauder's Visage
[DEX] < 751          ||          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               YES
      T                                F               YES
      F                                F                NO

Code:
[QUALITY] == "Legendary" && [NAME] == "Marauder's Visage" # [DEX] < 751 && [VIT] < 751 -> [TRASH]
Marauder's Visage
[DEX] < 751          &&          [VIT] < 751          TRASH?
      T                                T               YES
      F                                T               NO
      T                                F               NO
      F                                F               NO


ok i got it, so whenever im using TRASH rule i should have && working as OR
 
ok i got it, so whenever im using TRASH rule i should have && working as OR


so with that logic, || meaning AND, && meaning OR

can you check if this logic works:
# ([STR] < 501 && [VIT] < 501) || [SOCKETS] < 3 -> [TRASH]
(if STR OR VIT are less than 501) AND (SOCK is less than 3) = TRASH

# (([STR] < 751 || [CRIT%] < 8) && ([CRITDMG%] < 40 || [AS%] < 5)) -> [TRASH]
(if STR is less than 751 AND CRIT less then 8) AND (CRIT less than 40 AND AS less than 5) = TRASH

if that is correct you had it wrong on your loot rule (# (([STR] < 751 || [CRIT%] < 8) || ([CRITDMG%] < 40 || [AS%] < 5))
 
a few suggestions.
first of all, there are a few lines where you go crazy with this:
[FIREDMG%] < 18 && [COLDDMG%] < 18 && [POISONDMG%] < 18 && [LIGHTNINGDMG%] < 18 && [ARCANEDMG%] < 18 && [HOLYDMG%] < 18 && [PHYSDMG%] < 18
you can replace that with [ELEMDMG%]
secondly there are quite a few items with the wrong criteria. for example the most important stats for meticulous bolts are crit% and cdred% (and of course skilldmg%, but db doesn't allow you to differentiate which skill the item has) because the 2.1.2 lightning build requires more than 50% cooldown reduction. you have vit instead. vit is basically useless for quiver. also you can drop as% for quiver. since 2.1.2 attack speed is not as important as it used to be. on the other hand, for other quivers like bombadier's rucksack you should look for crit% and resred% because you would prefer to spam more cluster arrows/multishot.
keep up the good work tho.

my own loot rule is quite complicated. maybe i will consider sharing it.
 
a few suggestions.
first of all, there are a few lines where you go crazy with this:
[FIREDMG%] < 18 && [COLDDMG%] < 18 && [POISONDMG%] < 18 && [LIGHTNINGDMG%] < 18 && [ARCANEDMG%] < 18 && [HOLYDMG%] < 18 && [PHYSDMG%] < 18
you can replace that with [ELEMDMG%]
secondly there are quite a few items with the wrong criteria. for example the most important stats for meticulous bolts are crit% and cdred% (and of course skilldmg%, but db doesn't allow you to differentiate which skill the item has) because the 2.1.2 lightning build requires more than 50% cooldown reduction. you have vit instead. vit is basically useless for quiver. also you can drop as% for quiver. since 2.1.2 attack speed is not as important as it used to be. on the other hand, for other quivers like bombadier's rucksack you should look for crit% and resred% because you would prefer to spam more cluster arrows/multishot.
keep up the good work tho.

my own loot rule is quite complicated. maybe i will consider sharing it.

- I'm pretty sure [ELEMDMG%] does not work
- meticulous bolts are useluss this patch for DH
- rules for quivers and some others items are WiP i'm working on getting syntax correct first
- we should all share :P
 
can you check if this logic works:

Code:
# ([STR] < 501 && [VIT] < 501) || [SOCKETS] < 3 -> [TRASH]
(if STR OR VIT are less than 501) AND (SOCK is less than 3) = TRASH
It's correct to think this way, but it's still OR (SOCKET is less than 3 = TRASH) gotta think in the terms of truth tables.

Code:
# (([STR] < 751 || [CRIT%] < 8) && ([CRITDMG%] < 40 || [AS%] < 5)) -> [TRASH]
# (([STR] < 751 || [CRIT%] < 8) || ([CRITDMG%] < 40 || [AS%] < 5)) -> [TRASH]
they are both essentially the same, as I mention before it's all about the truth tables (same table for both of them)
(t || t) = t	&&	(t || t) = t	->      t
(t || f) = t	&&	(t || f) = t	->	t
(f || t) = t	&&	(f || t) = t	->	t
(f || f) = f	&&	(f || f) = f	->	f


(t || t) = t	||	(t || t) = t	->      t
(t || f) = t	||	(t || f) = t	->	t
(f || t) = t	||	(f || t) = t	->	t
(f || f) = f	||	(f || f) = f	->	f
 
Last edited:
- I'm pretty sure [ELEMDMG%] does not work
- meticulous bolts are useluss this patch for DH
- rules for quivers and some others items are WiP i'm working on getting syntax correct first
- we should all share :P

well if you read one of the trinity code file inside the trinity folder at Trinity/ItemRules/Interpreter.cs, you will find [ELEMDMG%] at line 920. According to the code, the tag returns the maximum value of all the elemental damage. unless the code itself is wrong, the tag should work.
 
ELEDMG% has not been reliable in the past. Last time I tested it I couldn't get it to pick up physicaldmg. At the time it seemed to be sort of left over code from the old SOJ's.

only this will not fix physical dmg, You have to add it also below in this:

Code:
itemDic.Add("[ELEMDMG%]", new float[] { item.Stats.FireSkillDamagePercentBonus,
item.Stats.LightningSkillDamagePercentBonus,
item.Stats.ColdSkillDamagePercentBonus,
item.Stats.PosionSkillDamagePercentBonus,
item.Stats.ArcaneSkillDamagePercentBonus,
item.Stats.HolySkillDamagePercentBonus,
item.Stats.PhysicalSkillDamagePercentBonus}.Max());

itemDic.Add("[SKILLDMG%]", new float[] { item.Stats.FireSkillDamagePercentBonus,
item.Stats.LightningSkillDamagePercentBonus,
item.Stats.ColdSkillDamagePercentBonus,
item.Stats.PosionSkillDamagePercentBonus,
item.Stats.ArcaneSkillDamagePercentBonus,
item.Stats.HolySkillDamagePercentBonus,
item.Stats.SkillDamagePercentBonus,
item.Stats.PhysicalSkillDamagePercentBonus}.Max());

tested it and it works this way (together with Your fix)

It may have been updated since but I'd certainly test it if you really wanted to use it.
 
Last edited:
The code handling ELEMDMG% does seem to be altered along the way. I guess I will give it a test for a few days and report back.
 
Back
Top