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

new version 05a added ...

Code:
// 05a:
// - fixed some documentation
// - tabs are now ignored in item rules
// - removed [HAND]
// - added [ONEHAND] && [TWOHAND] ... values true or false
//   ex. [ONEHAND] == true ... (to stay close to db item object)
// - [CLASSMAXSTAT] changed to [MAXSTAT]
// - [CLASSMAXSTATVITA] changed to [MAXSTATVIT]
// - added [MAXONERES]
// - simplified code
// - added some basic item rules
 
Damn you darkfriend77!!! ;-) Now i have to change it, but i like the MAXONERES fuction, so i have to do it!
Ty!
 
this are the changes in GilesTrinity.cs that i made ... in the attached file ...


i added the initialisation of interpreter object at the begining

added Attribute ... ACDItem in GilesCachedACDItem

and added it to all constructor calles ...
Code:
        public class GilesCachedACDItem
        {
            public string ThisInternalName { get; set; }
            public string ThisRealName { get; set; }
            public int ThisLevel { get; set; }
            public ItemQuality ThisQuality { get; set; }
            public int ThisGoldAmount { get; set; }
            public int ThisBalanceID { get; set; }
            public int ThisDynamicID { get; set; }
            public float ThisWeaponDPS { get; set; }
            public bool ThisOneHanded { get; set; }
            public DyeType ThisDyeType { get; set; }
            public ItemType ThisDBItemType { get; set; }
            public FollowerType ThisFollowerType { get; set; }
            public bool IsUnidentified { get; set; }
            public int ThisItemStackQuantity { get; set; }
            public float Dexterity { get; set; }
            public float Intelligence { get; set; }
            public float Strength { get; set; }
            public float Vitality { get; set; }
            public float LifePercent { get; set; }
            public float LifeOnHit { get; set; }
            public float LifeSteal { get; set; }
            public float HealthPerSecond { get; set; }
            public float MagicFind { get; set; }
            public float GoldFind { get; set; }
            public float MovementSpeed { get; set; }
            public float PickUpRadius { get; set; }
            public float Sockets { get; set; }
            public float CritPercent { get; set; }
            public float CritDamagePercent { get; set; }
            public float AttackSpeedPercent { get; set; }
            public float MinDamage { get; set; }
            public float MaxDamage { get; set; }
            public float BlockChance { get; set; }
            public float Thorns { get; set; }
            public float ResistAll { get; set; }
            public float ResistArcane { get; set; }
            public float ResistCold { get; set; }
            public float ResistFire { get; set; }
            public float ResistHoly { get; set; }
            public float ResistLightning { get; set; }
            public float ResistPhysical { get; set; }
            public float ResistPoison { get; set; }
            public float WeaponDamagePerSecond { get; set; }
            public float ArmorBonus { get; set; }
            public float MaxDiscipline { get; set; }
            public float MaxMana { get; set; }
            public float ArcaneOnCrit { get; set; }
            public float ManaRegen { get; set; }
            public float GlobeBonus { get; set; }

            public ACDItem DBItem { get; set; }

            public GilesCachedACDItem(string internalname, string realname, int level, ItemQuality quality, int goldamount, int balanceid, int dynamicid, float dps,
                bool onehanded, DyeType dyetype, ItemType dbitemtype, FollowerType dbfollowertype, bool unidentified, int stackquantity, ItemStats thesestats, ACDItem item)
            {
                ThisInternalName = internalname;
                ThisRealName = realname;
                ThisLevel = level;
                ThisQuality = quality;
                ThisGoldAmount = goldamount;
                ThisBalanceID = balanceid;
                ThisDynamicID = dynamicid;
                ThisWeaponDPS = dps;
                ThisOneHanded = onehanded;
                ThisDyeType = dyetype;
                ThisDBItemType = dbitemtype;
                ThisFollowerType = dbfollowertype;
                IsUnidentified = unidentified;
                ThisItemStackQuantity = stackquantity;
                Dexterity = thesestats.Dexterity;
                Intelligence = thesestats.Intelligence;
                Strength = thesestats.Strength;
                Vitality = thesestats.Vitality;
                LifePercent = thesestats.LifePercent;
                LifeOnHit = thesestats.LifeOnHit;
                LifeSteal = thesestats.LifeSteal;
                HealthPerSecond = thesestats.HealthPerSecond;
                MagicFind = thesestats.MagicFind;
                GoldFind = thesestats.GoldFind;
                MovementSpeed = thesestats.MovementSpeed;
                PickUpRadius = thesestats.PickUpRadius;
                Sockets = thesestats.Sockets;
                CritPercent = thesestats.CritPercent;
                CritDamagePercent = thesestats.CritDamagePercent;
                AttackSpeedPercent = thesestats.AttackSpeedPercent;
                MinDamage = thesestats.MinDamage;
                MaxDamage = thesestats.MaxDamage;
                BlockChance = thesestats.BlockChance;
                Thorns = thesestats.Thorns;
                ResistAll = thesestats.ResistAll;
                ResistArcane = thesestats.ResistArcane;
                ResistCold = thesestats.ResistCold;
                ResistFire = thesestats.ResistFire;
                ResistHoly = thesestats.ResistHoly;
                ResistLightning = thesestats.ResistLightning;
                ResistPhysical = thesestats.ResistPhysical;
                ResistPoison = thesestats.ResistPoison;
                WeaponDamagePerSecond = thesestats.WeaponDamagePerSecond;
                ArmorBonus = thesestats.ArmorBonus;
                MaxDiscipline = thesestats.MaxDiscipline;
                MaxMana = thesestats.MaxMana;
                ArcaneOnCrit = thesestats.ArcaneOnCrit;
                ManaRegen = thesestats.ManaRegen;
                GlobeBonus = thesestats.HealthGlobeBonus;
                DBItem = item;
            }
        }

and changed this function ShouldWeStashThis

Code:
        private static bool ShouldWeStashThis(GilesCachedACDItem thisitem)
        {

            // Stash all unidentified items - assume we want to keep them since we are using an identifier over-ride
            if (thisitem.IsUnidentified)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] = (autokeep unidentified items)");
                return true;
            }
            // Now look for Misc items we might want to keep
            GilesItemType TrueItemType = DetermineItemType(thisitem.ThisInternalName, thisitem.ThisDBItemType, thisitem.ThisFollowerType);

            if (TrueItemType == GilesItemType.StaffOfHerding)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep staff of herding)");
                return true;
            }
            if (TrueItemType == GilesItemType.CraftingMaterial)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep craft materials)");
                return true;
            }
            if (TrueItemType == GilesItemType.CraftingPlan)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep plans)");
                return true;
            }
            if (TrueItemType == GilesItemType.Emerald)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep gems)");
                return true;
            }
            if (TrueItemType == GilesItemType.Amethyst)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep gems)");
                return true;
            }
            if (TrueItemType == GilesItemType.Topaz)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep gems)");
                return true;
            }
            if (TrueItemType == GilesItemType.Ruby)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep gems)");
                return true;
            }
            if (TrueItemType == GilesItemType.CraftTome)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep tomes)");
                return true;
            }
            if (TrueItemType == GilesItemType.InfernalKey)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep infernal key)");
                return true;
            }
            if (TrueItemType == GilesItemType.HealthPotion)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (ignoring potions)");
                return false;
            }
            if (thisitem.ThisQuality >= ItemQuality.Legendary)
            {
                if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = (autokeep legendaries)");
                return true;
            }

            Interpreter.InterpreterAction action = interpreter.checkItem(thisitem.DBItem);
            switch (action)
            {
                case Interpreter.InterpreterAction.KEEP:
                    Log("SPECIAL!!! --> " + thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] = (KEEP)");
                    return true;
                case Interpreter.InterpreterAction.TRASH:
                    Log("SPECIAL!!! --> " + thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] = (TRASH)");
                    return false;
                default:
                    Log("no interpreter action for " + thisitem.ThisRealName);
                    break;
            }

            // Ok now try to do some decent item scoring based on item types
            double iNeedScore = ScoreNeeded(TrueItemType);
            double iMyScore = ValueThisItem(thisitem, TrueItemType);
            if (bOutputItemScores) Log(thisitem.ThisRealName + " [" + thisitem.ThisInternalName + "] [" + TrueItemType.ToString() + "] = " + iMyScore.ToString());
            if (iMyScore >= iNeedScore) return true;

            // If we reached this point, then we found no reason to keep the item!
            return false;
        }
 
darkfriend77,

u can add "SingleRes" property for "new float[] { item.Stats.ResistPhysical,item.Stats.ResistFire, ... }.Max()" ?
and may be "TotalRes" for "item.Stats.ResistPhysical + item.Stats.ResistFire + ... + item.Stats.ResistAll"

adding total res in next release and the possibility to to additions ^^
 
there is a PROBLEM in the 05a version ... im fixing it right now .. its fixed now
 
Last edited:
05b fixed the problem .....


plz check the rule set first ... before u use it

Boots, Belts, Shoulders, Gloves & 1-h Weapon

are trashed if not positiv on this rules if u still want giles scoring to apply

add this // to any line with [TRASH]
ex. //[TYPE] == Boots # [1] == 1 # [TRASH]


Code:
//// keep all legendarys and special items
[QUALITY] == Legendary && [QUALITY] == Special # [1] == [1] # [KEEP]

[TYPE] == Boots # [MAXSTATVIT] > 120 && [MS%] > 9 && ([ALLRES] > 70 || [ALLRES] > 50 && [MAXONERES] > 40)
[TYPE] == Boots # [1] == 1 # [TRASH]

[TYPE] == Belt # [MAXSTATVIT] > 120 && [LIFE%] > 9 && ([ALLRES] > 70 || [ALLRES] > 50 && [MAXONERES] > 40)
[TYPE] == Belt # [1] == 1 # [TRASH]

[TYPE] == Shoulder # [MAXSTATVIT] > 120 && [LIFE%] > 9 && ([ALLRES] > 70 || [ALLRES] > 50 && [MAXONERES] > 40)
[TYPE] == Shoulder # [1] == 1 # [TRASH]

[TYPE] == Gloves # [MAXSTATVIT] > 150 && ([ALLRES] > 70 || [ALLRES] > 50 && [MAXONERES] > 40) && ([CRIT%] > 7 || [CRITDMG%] > 30 || [AS%] > 5)
[TYPE] == Gloves # [MAXSTAT] > 95 && ([CRITDMG%] > 25 || [AS%] > 5) && [CRIT%] > 5
[TYPE] == Gloves # [CRIT%] > 0 && [CRITDMG%] > 0 && [AS%] > 0
[TYPE] == Gloves # [1] == 1 # [TRASH]
 
Value [AS%] seems not working :(

[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] > 1300 && [SOCKETS] > 0 && [AS%] > 0 # [KEEP]

Twohanded axe with socket and 8%AS is trashed. When I delete AS% value from rules - working fine.
 
ur right ... i tested it .. and im getting 0 back from DemonBuddy even if AS is on the item .. gona see later what i can do ^^
 
Its back!

[01:03:17.549 N] [GilesTrinity] no interpreter action for Ready Talon
[01:03:17.564 N] [GilesTrinity] no interpreter action for Prophetic Desire
[01:03:17.579 N] [GilesTrinity] no interpreter action for Stubborn Link
[01:03:17.583 N] [GilesTrinity] no interpreter action for Stark Glass
[01:03:17.600 N] [GilesTrinity] no interpreter action for Glory Crux
[01:03:17.608 N] [GilesTrinity] no interpreter action for Unearthed Groundpounders
[01:03:17.613 N] [GilesTrinity] no interpreter action for Arena Tooth
[01:03:17.618 N] [GilesTrinity] no interpreter action for Mental Feather
[01:03:17.626 N] [GilesTrinity] no interpreter action for War Bounty
[01:03:17.639 N] [GilesTrinity] no interpreter action for Fervent Groundpounders
[01:03:17.643 N] [GilesTrinity] no interpreter action for Mighty Resolve
[01:03:17.651 N] [GilesTrinity] no interpreter action for Mental Ward
[01:03:17.658 N] [GilesTrinity] no interpreter action for Primal Crest
[01:03:17.662 N] [GilesTrinity] no interpreter action for Prophetic Reminder
[01:03:17.667 N] [GilesTrinity] no interpreter action for Warrior's Bane
[01:03:17.679 N] [GilesTrinity] no interpreter action for Smash Stake
[01:03:17.683 N] [GilesTrinity] no interpreter action for Gluttonous Slasher
[01:03:17.688 N] [GilesTrinity] no interpreter action for Savage Sprig
[01:03:17.692 N] [GilesTrinity] no interpreter action for Pathfinder's Gaze
[01:03:17.706 N] [GilesTrinity] no interpreter action for Sly Vow

It loops this all the time, worked before and now it doesn't. Anyone that will look my setting through and see if there is a problem?

Code:
// keep all legendarys and special items
[QUALITY] == Legendary && [QUALITY] == Special # [1] == [1] # [KEEP]

//Weapons One handed
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 50 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 80 && [SOCKETS] > 0 # [KEEP]
//[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 1000 # [KEEP]
//[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 900 && [SOCKETS] > 0 # [KEEP]
//[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 800 && ([CRITDMG%] > 50 || [LOH] > 300) && [SOCKETS] > 0 # [KEEP]
//[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 700 && [MAXSTATVIT] > 200 && ([CRITDMG%] > 50 || [LOH] > 300) && [SOCKETS] > 0 # [KEEP]

//Weapons Two handed
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1200 && [CRITDMG%] >= 170 && [SOCKETS] > 0 # [KEEP]
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1100 && [CRITDMG%] >= 130 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]

// Trash all other weapons
//[BASETYPE] == Weapon # [1] == 1 # [TRASH]

//Gloves
[TYPE] == Gloves # [DEX] >= 190 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35) || [MAXONERES] >= 60) && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [INT] >= 190 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 95 && [CRITDMG%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [DEX] >= 95 && [CRITDMG%] > 0 && [CRIT%] > 0 && ([ALLRES] >= 40 || ([ALLRES] >= 25 && [MAXONERES] >= 25) || [MAXONERES] >= 40) # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 95 && [CRITDMG%] > 0 && [CRIT%] > 0 && [AS%] > 0 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 95 && [CRITDMG%] > 0 && [AS%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [DEX] >= 95 && [CRITDMG%] > 0 && [AS%] > 0 && ([ALLRES] >= 40 || ([ALLRES] >= 25 && [MAXONERES] >= 25) || [MAXONERES] >= 40) # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 95 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [DEX] >= 95 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [DEX] >= 150 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 45 && [VIT] >= 50 # [KEEP]
//[TYPE] == Gloves # [1] == 1 # [TRASH]

//Boots
[TYPE] == Boots # [DEX] >= 230 && [MS%] >= 10 && [VIT] >= 60 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35) || [MAXONERES] >= 60) # [KEEP]
[TYPE] == Boots # [MAXSTAT] >= 150 && [MS%] >= 10 && [VIT] >= 60 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Boots # [DEX] >= 150 && [MS%] >= 10 && [VIT] >= 60 && [MAXONERES] >= 60 # [KEEP]
//[TYPE] == Boots # [1] == 1 # [TRASH]

//Chests
[TYPE] == Chest # [MAXSTAT] >= 140 && [SOCKETS] >= 2 && [VIT] >= 60 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Chest # [DEX] >= 140 && [SOCKETS] >= 2 && [VIT] >= 60 && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 190 && [VIT] >= 150 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Chest # [DEX] >= 190 && [VIT] >= 150 && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 190 && [VIT] >= 60 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) && [LIFE%] >= 9 # [KEEP]
[TYPE] == Chest # [DEX] >= 190 && [VIT] >= 60 && [MAXONERES] >= 60 && [LIFE%] >= 9 # [KEEP]
//[TYPE] == Chest # [1] == 1 # [TRASH]

//Rings
[TYPE] == Ring # ([MAXSTAT] >= 60 || [SOCKETS] > 0) && [VIT] >= 50 && ([ALLRES] >= 40 || ([ALLRES] >= 30 && [MAXONERES] >= 20)) && [LIFE%] >= 9 # [KEEP]
[TYPE] == Ring # ([DEX] >= 60 || [SOCKETS] > 0) && [VIT] >= 50 && [MAXONERES] >= 40 && [LIFE%] >= 9 # [KEEP]
[TYPE] == Ring # ([MAXSTAT] >= 60 || [SOCKETS] > 0) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 40 || ([ALLRES] >= 30 && [MAXONERES] >= 20)) && [VIT] >= 60 # [KEEP]
[TYPE] == Ring # [([DEX] >= 60 || [SOCKETS] > 0) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 40 && [VIT] >= 60 # [KEEP]
[TYPE] == Ring # ([MAXSTAT] >= 60 || [SOCKETS] > 0) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 40 || ([ALLRES] >= 30 && [MAXONERES] >= 20)) && [LOH] >= 250 # [KEEP]
[TYPE] == Ring # [([DEX] >= 60 || [SOCKETS] > 0) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 40 && [LOH] >= 250 # [KEEP]
//[TYPE] == Ring # [1] == 1 # [TRASH]

//Amulet
[TYPE] == Amulet # ([MAXSTAT] >= 80 || ([MAXSTAT] >= 40 && [SOCKETS] > 0)) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 40 || ([ALLRES] >= 30 && [MAXONERES] >= 20)) && [LOH] >= 250 # [KEEP]
[TYPE] == Amulet # ([DEX] >= 80 || ([DEX] >= 40 && [SOCKETS] > 0)) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 40 && [LOH] >= 250 # [KEEP]
[TYPE] == Amulet # ([MAXSTAT] >= 80 || ([MAXSTAT] >= 40 && [SOCKETS] > 0)) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && ([ALLRES] >= 40 || ([ALLRES] >= 30 && [MAXONERES] >= 20)) && [VIT] >= 50 # [KEEP]
[TYPE] == Amulet # ([DEX] >= 80 || ([DEX] >= 40 && [SOCKETS] > 0)) && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [MAXONERES] >= 40 && [VIT] >= 50 # [KEEP]
[TYPE] == Amulet # ([MAXSTAT] >= 80 || ([MAXSTAT] >= 40 && [SOCKETS] > 0)) && [CRITDMG%] > 0 && [AS%] > 0 && [CRIT%] > 0 # [KEEP]
//[TYPE] == Amulet # [1] == 1 # [TRASH]

//Shoulders
[TYPE] == Shoulder # ([DEX] >= 140 || [STR] >= 190 || [INT] >= 140) && [VIT] >= 70 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Shoulder # [DEX] >= 140 && [VIT] >= 70 && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Shoulder # ([DEX] >= 140 || [STR] >= 190 || [INT] >= 140) && [LIFE%] >= 9 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Shoulder # [DEX] >= 140 && [LIFE%] >= 9 && [MAXONERES] >= 60 # [KEEP]
//[TYPE] == Shoulder # [1] == 1 # [TRASH]

//Pants
[TYPE] == Legs # [MAXSTAT] >= 140 && [SOCKETS] >= 1 && [VIT] >= 140 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Legs # [DEX] >= 140 && [SOCKETS] >= 1 && [VIT] >= 140 && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Legs # [MAXSTAT] >= 140 && [VIT] >= 180 && ([ALLRES] >= 60 ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Legs # [DEX] >= 140 && [VIT] >= 180 && [MAXONERES] >= 60 # [KEEP]
//[TYPE] == Legs # [1] == 1 # [TRASH]

//Helms
[TYPE] == Helm # ([DEX] >= 140 || [STR] >= 140 || [INT] >= 190) && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Helm # [DEX] >= 140 && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Helm # ([DEX] >= 120 || [STR] >= 120 || [INT] >= 160) && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]
//[TYPE] == Helm # [1] == 1 # [TRASH]

//Belts
[TYPE] == Belt # ([DEX] >= 140 || [STR] >= 190 || [INT] >= 140) && ([VIT] >= 60 || [LIFE%] >= 9) && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Belt # [DEX] >= 140 && ([VIT] >= 60 || [LIFE%] >= 9) && [MAXONERES] >= 60 # [KEEP]
//[TYPE] == Belt # [1] == 1 # [TRASH]

//Bracers
[TYPE] == Bracer # ([DEX] >= 140 || [STR] >= 140 || [INT] >= 140) && [CRIT%] >= 3 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Bracer # [DEX] >= 140 && [CRIT%] >= 3 && [MAXONERES] >= 60 # [KEEP]
[TYPE] == Bracer # ([DEX] >= 140 || [STR] >= 140 || [INT] >= 140) && [VIT] >= 60 && ([ALLRES] >= 60 || ([ALLRES] >= 35 && [MAXONERES] >= 35)) # [KEEP]
[TYPE] == Bracer # [DEX] >= 140 && [VIT] >= 60 && [MAXONERES] >= 60 # [KEEP]
//[TYPE] == Bracer # [1] == 1 # [TRASH]

Here is the log also

Code:
01112012013159: ### STARTING A NEW SESSION WITH ITEMRULESET ###
01112012013159: [LOG]=True
01112012013159: 1:[QUALITY]==Legendary&&[QUALITY]==Special#[1]==[1]#[KEEP]
01112012013159: 2:[BASETYPE]==Weapon&&[ONEHAND]==true#[DPS]>=799&&[CRITDMG%]>=50&&[SOCKETS]>0&&([LOH]>=700||[LS%]>0)#[KEEP]
01112012013159: 3:[BASETYPE]==Weapon&&[ONEHAND]==true#[DPS]>=799&&[CRITDMG%]>=80&&[SOCKETS]>0#[KEEP]
01112012013159: 4:[BASETYPE]==Weapon&&[TWOHAND]==true#[DPS]>=1200&&[CRITDMG%]>=170&&[SOCKETS]>0#[KEEP]
01112012013159: 5:[BASETYPE]==Weapon&&[TWOHAND]==true#[DPS]>=1100&&[CRITDMG%]>=130&&[SOCKETS]>0&&([LOH]>=700||[LS%]>0)#[KEEP]
01112012013159: 6:[TYPE]==Gloves#[DEX]>=190&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35)||[MAXONERES]>=60)&&[VIT]>=60#[KEEP]
01112012013159: 7:[TYPE]==Gloves#[INT]>=190&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[ALLRES]>=60&&[VIT]>=60#[KEEP]
01112012013159: 8:[TYPE]==Gloves#[MAXSTAT]>=95&&[CRITDMG%]>0&&[CRIT%]>0&&[ALLRES]>=40#[KEEP]
01112012013159: 9:[TYPE]==Gloves#[DEX]>=95&&[CRITDMG%]>0&&[CRIT%]>0&&([ALLRES]>=40||([ALLRES]>=25&&[MAXONERES]>=25)||[MAXONERES]>=40)#[KEEP]
01112012013159: 10:[TYPE]==Gloves#[MAXSTAT]>=95&&[CRITDMG%]>0&&[CRIT%]>0&&[AS%]>0#[KEEP]
01112012013159: 11:[TYPE]==Gloves#[MAXSTAT]>=95&&[CRITDMG%]>0&&[AS%]>0&&[ALLRES]>=40#[KEEP]
01112012013159: 12:[TYPE]==Gloves#[DEX]>=95&&[CRITDMG%]>0&&[AS%]>0&&([ALLRES]>=40||([ALLRES]>=25&&[MAXONERES]>=25)||[MAXONERES]>=40)#[KEEP]
01112012013159: 13:[TYPE]==Gloves#[MAXSTAT]>=95&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))&&[VIT]>=60#[KEEP]
01112012013159: 14:[TYPE]==Gloves#[DEX]>=95&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=60&&[VIT]>=60#[KEEP]
01112012013159: 15:[TYPE]==Gloves#[DEX]>=150&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=45&&[VIT]>=50#[KEEP]
01112012013159: 16:[TYPE]==Boots#[DEX]>=230&&[MS%]>=10&&[VIT]>=60&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35)||[MAXONERES]>=60)#[KEEP]
01112012013159: 17:[TYPE]==Boots#[MAXSTAT]>=150&&[MS%]>=10&&[VIT]>=60&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 18:[TYPE]==Boots#[DEX]>=150&&[MS%]>=10&&[VIT]>=60&&[MAXONERES]>=60#[KEEP]
01112012013159: 19:[TYPE]==Chest#[MAXSTAT]>=140&&[SOCKETS]>=2&&[VIT]>=60&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 20:[TYPE]==Chest#[DEX]>=140&&[SOCKETS]>=2&&[VIT]>=60&&[MAXONERES]>=60#[KEEP]
01112012013159: 21:[TYPE]==Chest#[MAXSTAT]>=190&&[VIT]>=150&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 22:[TYPE]==Chest#[DEX]>=190&&[VIT]>=150&&[MAXONERES]>=60#[KEEP]
01112012013159: 23:[TYPE]==Chest#[MAXSTAT]>=190&&[VIT]>=60&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))&&[LIFE%]>=9#[KEEP]
01112012013159: 24:[TYPE]==Chest#[DEX]>=190&&[VIT]>=60&&[MAXONERES]>=60&&[LIFE%]>=9#[KEEP]
01112012013159: 25:[TYPE]==Ring#([MAXSTAT]>=60||[SOCKETS]>0)&&[VIT]>=50&&([ALLRES]>=40||([ALLRES]>=30&&[MAXONERES]>=20))&&[LIFE%]>=9#[KEEP]
01112012013159: 26:[TYPE]==Ring#([DEX]>=60||[SOCKETS]>0)&&[VIT]>=50&&[MAXONERES]>=40&&[LIFE%]>=9#[KEEP]
01112012013159: 27:[TYPE]==Ring#([MAXSTAT]>=60||[SOCKETS]>0)&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=40||([ALLRES]>=30&&[MAXONERES]>=20))&&[VIT]>=60#[KEEP]
01112012013159: 28:[TYPE]==Ring#[([DEX]>=60||[SOCKETS]>0)&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=40&&[VIT]>=60#[KEEP]
01112012013159: 29:[TYPE]==Ring#([MAXSTAT]>=60||[SOCKETS]>0)&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=40||([ALLRES]>=30&&[MAXONERES]>=20))&&[LOH]>=250#[KEEP]
01112012013159: 30:[TYPE]==Ring#[([DEX]>=60||[SOCKETS]>0)&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=40&&[LOH]>=250#[KEEP]
01112012013159: 31:[TYPE]==Amulet#([MAXSTAT]>=80||([MAXSTAT]>=40&&[SOCKETS]>0))&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=40||([ALLRES]>=30&&[MAXONERES]>=20))&&[LOH]>=250#[KEEP]
01112012013159: 32:[TYPE]==Amulet#([DEX]>=80||([DEX]>=40&&[SOCKETS]>0))&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=40&&[LOH]>=250#[KEEP]
01112012013159: 33:[TYPE]==Amulet#([MAXSTAT]>=80||([MAXSTAT]>=40&&[SOCKETS]>0))&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&([ALLRES]>=40||([ALLRES]>=30&&[MAXONERES]>=20))&&[VIT]>=50#[KEEP]
01112012013159: 34:[TYPE]==Amulet#([DEX]>=80||([DEX]>=40&&[SOCKETS]>0))&&([CRITDMG%]>0||[AS%]>0||[CRIT%]>0)&&[MAXONERES]>=40&&[VIT]>=50#[KEEP]
01112012013159: 35:[TYPE]==Amulet#([MAXSTAT]>=80||([MAXSTAT]>=40&&[SOCKETS]>0))&&[CRITDMG%]>0&&[AS%]>0&&[CRIT%]>0#[KEEP]
01112012013159: 36:[TYPE]==Shoulder#([DEX]>=140||[STR]>=190||[INT]>=140)&&[VIT]>=70&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 37:[TYPE]==Shoulder#[DEX]>=140&&[VIT]>=70&&[MAXONERES]>=60#[KEEP]
01112012013159: 38:[TYPE]==Shoulder#([DEX]>=140||[STR]>=190||[INT]>=140)&&[LIFE%]>=9&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 39:[TYPE]==Shoulder#[DEX]>=140&&[LIFE%]>=9&&[MAXONERES]>=60#[KEEP]
01112012013159: 40:[TYPE]==Legs#[MAXSTAT]>=140&&[SOCKETS]>=1&&[VIT]>=140&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 41:[TYPE]==Legs#[DEX]>=140&&[SOCKETS]>=1&&[VIT]>=140&&[MAXONERES]>=60#[KEEP]
01112012013159: 42:[TYPE]==Legs#[MAXSTAT]>=140&&[VIT]>=180&&([ALLRES]>=60([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 43:[TYPE]==Legs#[DEX]>=140&&[VIT]>=180&&[MAXONERES]>=60#[KEEP]
01112012013159: 44:[TYPE]==Helm#([DEX]>=140||[STR]>=140||[INT]>=190)&&[SOCKETS]>=1&&([VIT]>=60||[LIFE%]>=9)&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 45:[TYPE]==Helm#[DEX]>=140&&[SOCKETS]>=1&&([VIT]>=60||[LIFE%]>=9)&&[MAXONERES]>=60#[KEEP]
01112012013159: 46:[TYPE]==Helm#([DEX]>=120||[STR]>=120||[INT]>=160)&&[SOCKETS]>=1&&[CRIT%]>0#[KEEP]
01112012013159: 47:[TYPE]==Belt#([DEX]>=140||[STR]>=190||[INT]>=140)&&([VIT]>=60||[LIFE%]>=9)&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 48:[TYPE]==Belt#[DEX]>=140&&([VIT]>=60||[LIFE%]>=9)&&[MAXONERES]>=60#[KEEP]
01112012013159: 49:[TYPE]==Bracer#([DEX]>=140||[STR]>=140||[INT]>=140)&&[CRIT%]>=3&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 50:[TYPE]==Bracer#[DEX]>=140&&[CRIT%]>=3&&[MAXONERES]>=60#[KEEP]
01112012013159: 51:[TYPE]==Bracer#([DEX]>=140||[STR]>=140||[INT]>=140)&&[VIT]>=60&&([ALLRES]>=60||([ALLRES]>=35&&[MAXONERES]>=35))#[KEEP]
01112012013159: 52:[TYPE]==Bracer#[DEX]>=140&&[VIT]>=60&&[MAXONERES]>=60#[KEEP]
01112012013159: initialized 52 itemrulesets!
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [True (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013230: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [True (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013231: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [False (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013232: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [True (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013233: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [True (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013234: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [False (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
01112012013235: shouldn't be here! [True (WARNING#3)
 
Last edited:
Can you do a guide of how to install it for dummies? Im a bit noob with this things, I loved d2 pickit :D
 
Can you do a guide of how to install it for dummies? Im a bit noob with this things, I loved d2 pickit :D

Install it like any other plugin

I also just wanted to verify that I'm writing these correctly:
Code:
// Genzaniku - iLvl 12
[QUALITY] == Legendary && [TYPE] == Axe && [ONEHAND] == true && [LEVEL] == 12

Is this the correct way to match only this legendary? I'm just a little confused because of this line in the default:
Code:
[QUALITY] == Legendary && [QUALITY] == Special # [1] == [1] # [KEEP]

Unless those items are both legendary AND special? Perhaps I should be using parentheses around defining what item to match?
 
Last edited:
My rules for 0.5b, feel free to test

Code:
// keep all legendarys and special items
[QUALITY] == Legendary && [QUALITY] == Special # [1] == [1] # [KEEP]

//WEAPONS_START

//Weapons One handed
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 50 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 50 && [SOCKETS] > 0 # [KEEP]
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 700 && [MAXSTATVIT] > 200 && ([CRITDMG%] > 50 || [LOH] > 300) && [SOCKETS] > 0

//Weapons Two handed
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1200 && [CRITDMG%] >= 100 && [SOCKETS] > 0 # [KEEP]
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1100 && [CRITDMG%] >= 100 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] > 1000 && [MAXSTATVIT] > 200 && ([CRITDMG%] > 50 || [LOH] > 600) && [SOCKETS] > 0
[BASETYPE] == Weapon # [1] == 1 # [TRASH]

//WEAPONS_END

//ARMOR_START

//Gloves
[TYPE] == Gloves # [DEX] >= 200 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [INT] >= 200 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [CRITDMG%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [AS%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [CRITDMG%] > 0 && [CRIT%] > 0 && [AS%] > 0 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [CRITDMG%] > 0 && [AS%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 150 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]

//Boots
[TYPE] == Boots # [DEX] >= 240 && [MS%] >= 10 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Boots # [MAXSTAT] >= 150 && [MS%] >= 10 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]

//Chests
[TYPE] == Chest # [MAXSTAT] >= 150 && [SOCKETS] >= 2 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 200 && [VIT] >= 150 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 200 && [VIT] >= 60 && [ALLRES] >= 60 && [LIFE%] >= 9 # [KEEP]

//Shoulders
[TYPE] == Shoulder # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Shoulder # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && [LIFE%] >= 9 && [ALLRES] >= 60 # [KEEP]
 
//Pants
[TYPE] == Legs # [MAXSTAT] >= 150 && [SOCKETS] >= 1 && [VIT] >= 150 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Legs # [MAXSTAT] >= 150 && [VIT] >= 200 && [ALLRES] >= 60 # [KEEP]

//Helms
[TYPE] == Helm # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 200) && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == Helm # ([DEX] >= 120 || [STR] >= 120 || [INT] >= 160) && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]
[TYPE] == WizardHat # [INT] >= 200 && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == WizardHat # [INT] >= 160 && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]
[TYPE] == VoodooMask # [INT] >= 200 && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == VoodooMask # [INT] >= 160 && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]

//Belts
[TYPE] == Belt # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == MightyBelt # [STR] >= 200 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]

//Bracers
[TYPE] == Bracer # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 150) && [CRIT%] >= 3 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Bracer # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 150) && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[BASETYPE] == Armor # [1] == 1 # [TRASH]

//ARMOR_END

//JEWELRY_START

//Rings
[TYPE] == Ring # [MAXSTAT] >= 60 && [VIT] >= 60 && [ALLRES] >= 40 && [LIFE%] >= 9 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [VIT] >= 60 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [LOH] >= 200 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && [CRITDMG%] > 0 && [AS%] > 0 && [CRIT%] > 0 # [KEEP]

//Amulet
[TYPE] == Amulet # [MAXSTAT] >= 100 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [LOH] >= 200 # [KEEP]
[TYPE] == Amulet # [MAXSTAT] >= 100 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [VIT] >= 60 # [KEEP]
[TYPE] == Amulet # [MAXSTAT] >= 60 && [CRITDMG%] > 0 && [AS%] > 0 && [CRIT%] > 0 # [KEEP]
[BASETYPE] == Jewelry # [1] == 1 # [TRASH]

//JEWELRY_END

//OFFHANDS_START

[TYPE] == Mojo # [INT] >= 100 && [CRIT%] >= 8 && [MINDMG] >= 60 && [MAXDMG] >= 300 && ([MAXMANA] >= 80 || [MANAREG] >= 9) # [KEEP]
[TYPE] == Mojo # [1] == 1 # [TRASH]
[TYPE] == Orb # [INT] >= 100 && [CRIT%] >= 8 && [MINDMG] >= 60 && [MAXDMG] >= 300 # [KEEP]
[TYPE] == Orb # [1] == 1 # [TRASH]
[TYPE] == Shield # [MAXSTATVIT] >= 150 && [CRIT%] >= 8 && [LIFE%] >= 8 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Shield # [1] == 1 # [TRASH]
[TYPE] == Quiver # [DEX] >= 150 && [AS%] >= 15 && [CRIT%] >= 8 && [MAXDISCIP] >= 9 # [KEEP]
[TYPE] == Quiver # [1] == 1 # [TRASH]

//OFFHANDS_END
 
My rules for 0.5b, feel free to test

Code:
// keep all legendarys and special items
[QUALITY] == Legendary && [QUALITY] == Special # [1] == [1] # [KEEP]

//WEAPONS_START

//Weapons One handed
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 50 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] >= 799 && [CRITDMG%] >= 50 && [SOCKETS] > 0 # [KEEP]
[BASETYPE] == Weapon && [ONEHAND] == true # [DPS] > 700 && [MAXSTATVIT] > 200 && ([CRITDMG%] > 50 || [LOH] > 300) && [SOCKETS] > 0

//Weapons Two handed
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1200 && [CRITDMG%] >= 100 && [SOCKETS] > 0 # [KEEP]
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] >= 1100 && [CRITDMG%] >= 100 && [SOCKETS] > 0 && ([LOH] >= 700 || [LS%] > 0) # [KEEP]
[BASETYPE] == Weapon && [TWOHAND] == true # [DPS] > 1000 && [MAXSTATVIT] > 200 && ([CRITDMG%] > 50 || [LOH] > 600) && [SOCKETS] > 0
[BASETYPE] == Weapon # [1] == 1 # [TRASH]

//WEAPONS_END

//ARMOR_START

//Gloves
[TYPE] == Gloves # [DEX] >= 200 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [INT] >= 200 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [CRITDMG%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [AS%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [CRITDMG%] > 0 && [CRIT%] > 0 && [AS%] > 0 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 100 && [CRITDMG%] > 0 && [AS%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [MAXSTAT] >= 150 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [ALLRES] >= 60 && [VIT] >= 60 # [KEEP]

//Boots
[TYPE] == Boots # [DEX] >= 240 && [MS%] >= 10 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Boots # [MAXSTAT] >= 150 && [MS%] >= 10 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]

//Chests
[TYPE] == Chest # [MAXSTAT] >= 150 && [SOCKETS] >= 2 && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 200 && [VIT] >= 150 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Chest # [MAXSTAT] >= 200 && [VIT] >= 60 && [ALLRES] >= 60 && [LIFE%] >= 9 # [KEEP]

//Shoulders
[TYPE] == Shoulder # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Shoulder # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && [LIFE%] >= 9 && [ALLRES] >= 60 # [KEEP]
 
//Pants
[TYPE] == Legs # [MAXSTAT] >= 150 && [SOCKETS] >= 1 && [VIT] >= 150 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Legs # [MAXSTAT] >= 150 && [VIT] >= 200 && [ALLRES] >= 60 # [KEEP]

//Helms
[TYPE] == Helm # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 200) && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == Helm # ([DEX] >= 120 || [STR] >= 120 || [INT] >= 160) && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]
[TYPE] == WizardHat # [INT] >= 200 && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == WizardHat # [INT] >= 160 && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]
[TYPE] == VoodooMask # [INT] >= 200 && [SOCKETS] >= 1 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == VoodooMask # [INT] >= 160 && [SOCKETS] >= 1 && [CRIT%] > 0 # [KEEP]

//Belts
[TYPE] == Belt # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]
[TYPE] == MightyBelt # [STR] >= 200 && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 60 # [KEEP]

//Bracers
[TYPE] == Bracer # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 150) && [CRIT%] >= 3 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Bracer # ([DEX] >= 150 || [STR] >= 150 || [INT] >= 150) && [VIT] >= 60 && [ALLRES] >= 60 # [KEEP]
[BASETYPE] == Armor # [1] == 1 # [TRASH]

//ARMOR_END

//JEWELRY_START

//Rings
[TYPE] == Ring # [MAXSTAT] >= 60 && [VIT] >= 60 && [ALLRES] >= 40 && [LIFE%] >= 9 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [VIT] >= 60 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [LOH] >= 200 # [KEEP]
[TYPE] == Ring # [MAXSTAT] >= 60 && [CRITDMG%] > 0 && [AS%] > 0 && [CRIT%] > 0 # [KEEP]

//Amulet
[TYPE] == Amulet # [MAXSTAT] >= 100 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [LOH] >= 200 # [KEEP]
[TYPE] == Amulet # [MAXSTAT] >= 100 && ([CRITDMG%] > 0 || [AS%] > 0 || [CRIT%] > 0) && [VIT] >= 60 # [KEEP]
[TYPE] == Amulet # [MAXSTAT] >= 60 && [CRITDMG%] > 0 && [AS%] > 0 && [CRIT%] > 0 # [KEEP]
[BASETYPE] == Jewelry # [1] == 1 # [TRASH]

//JEWELRY_END

//OFFHANDS_START

[TYPE] == Mojo # [INT] >= 100 && [CRIT%] >= 8 && [MINDMG] >= 60 && [MAXDMG] >= 300 && ([MAXMANA] >= 80 || [MANAREG] >= 9) # [KEEP]
[TYPE] == Mojo # [1] == 1 # [TRASH]
[TYPE] == Orb # [INT] >= 100 && [CRIT%] >= 8 && [MINDMG] >= 60 && [MAXDMG] >= 300 # [KEEP]
[TYPE] == Orb # [1] == 1 # [TRASH]
[TYPE] == Shield # [MAXSTATVIT] >= 150 && [CRIT%] >= 8 && [LIFE%] >= 8 && [ALLRES] >= 60 # [KEEP]
[TYPE] == Shield # [1] == 1 # [TRASH]
[TYPE] == Quiver # [DEX] >= 150 && [AS%] >= 15 && [CRIT%] >= 8 && [MAXDISCIP] >= 9 # [KEEP]
[TYPE] == Quiver # [1] == 1 # [TRASH]

//OFFHANDS_END

I will try it out, and add lines for dex + maxoneres items. Did like this for a sentence for it, the existing and the one i added. Is that okay?
Code:
[TYPE] == Gloves # [MAXSTAT] >= 100 && [CRITDMG%] > 0 && [CRIT%] > 0 && [ALLRES] >= 40 # [KEEP]
[TYPE] == Gloves # [DEX] >= 100 && [CRITDMG%] > 0 && [CRIT%] > 0 && (([ALLRES] >= 20 && [MAXONERES] >= 25) || [MAXONERES] >= 40) # [KEEP]
 
Last edited:
I think TWOHAND lines doesn?t work...

[15:58:31.912 N] [GilesTrinity] no interpreter action for Black Reach
for this:
WeaponTwoHand - TwoHandPolearm 'Black Reach'. Score = 25152
DPS=833

and

[15:58:32.075 N] [GilesTrinity] no interpreter action for Skirmish Implement
for this:
WeaponTwoHand - TwoHandPolearm 'Skirmish Implement'. Score = 25790
Intelligence=240. Vitality=89. DPS=772
 
Either I'm doing something wrong, or something isn't working, I'm currently working on a section to trash any legendary weapon under 50% of its capable base damage.

This is my entry for Sever
Code:
[QUALITY] == Legendary && [TYPE] == Sword && [ONEHAND] == true && [LEVEL] == 62 # [WEAPMINDMG] < 407 && [WEAPMAXDMG] < 788 # [TRASH]

I happen to have a sever that should be trashed by this rule, however it just stashes it
 
Code:
[TYPE] == Shoulder # ([DEX] >= 150 || [STR] >= 200 || [INT] >= 150) && [VIT] >= 60 && [ALLRES] >= 55 # [KEEP]

still this shoulders are getting thrashed:
214 str
132 vit
59 allres

Code:
[TYPE] == Belt # ([DEX] >= 150 || [STR] >= 195 || [INT] >= 150) && ([VIT] >= 60 || [LIFE%] >= 9) && [ALLRES] >= 55 # [KEEP]

still this belt is getting thrashed:
198 str
98 vit
74 allres


somethings wrong with my code?
 
I have question: What rule would trash legendary gloves with no mainstat? Could some1 write this line? I will understand and would go further;) I cant see legend+type in one line in examples so im not sure. Thanx!
 
Code:
[QUALITY] == Legendary && [TYPE] == Gloves # [MAXSTAT] == 0 # [TRASH]

at the moment legendarys don't go into this ... but i added it ... in the next version so .. giles auto keep on legendarys is applied after itemrules
 
next version is up 06a ... debugFlag set by default so u can better check ... on itemstats and more ... hf
 
So in 0.6a I can use it to trash legendaries like gloves in example?

[QUALITY] == Legendary && [TYPE] == Gloves # [MAXSTAT] == 0 # [TRASH]

Thanx for answer and for fcking awesome plugin!
 
Back
Top