diff --git a/assets/d2r_settings.json b/assets/d2r_settings.json index 84439ee..b93e80f 100644 --- a/assets/d2r_settings.json +++ b/assets/d2r_settings.json @@ -15,7 +15,7 @@ "VSync": 1, "Framerate Cap": 60, "Framerate Target": 0, - "Window Mode": 0, + "Window Mode": 1, "Graphic Presets": 4, "Texture Quality": 4, "Texture Anisotropy": 0, diff --git a/config/default.bnip b/config/default.bnip index 187af33..0c3508c 100644 --- a/config/default.bnip +++ b/config/default.bnip @@ -35,7 +35,7 @@ //================= Utility ================ //------------------------------------------ -[Type] == Gold # [Gold] >= 500 +[Type] == Gold # [Gold] >= 100 [Name] == Scrolloftownportal [Name] == Scrollofidentify @@ -43,15 +43,15 @@ //================= Unique Charms ================ //------------------------------------------------ -[Name] == Grandcharm && [Quality] == Unique // Gheed's Fortune +[Name] == Grandcharm && [Quality] == Unique // Gheed n sunders [Name] == Smallcharm && [Quality] == Unique // Annihilus Charm //------------------------------------------ //================= Potions ================ //------------------------------------------ -//[Name] == Greaterhealingpotion -//[Name] == Greatermanapotion +[Name] == Greaterhealingpotion +[Name] == Greatermanapotion [Name] == Superhealingpotion [Name] == Supermanapotion [Name] == Rejuvenationpotion @@ -88,66 +88,66 @@ //================= Runes ================ //---------------------------------------- -[Name] >= Lemrune && [Name] <= Zodrune -//[Name] == Elrune -//[Name] == Eldrune -//[Name] == Tirrune -//[Name] == Nefrune -//[Name] == Ethrune -//[Name] == Ithrune -//[Name] == Talrune +//[Name] >= Lemrune && [Name] <= Zodrune +[Name] == Elrune +[Name] == Eldrune +[Name] == Tirrune +[Name] == Nefrune +[Name] == Ethrune +[Name] == Ithrune +[Name] == Talrune [Name] == Ralrune [Name] == Ortrune [Name] == Thulrune [Name] == Amnrune [Name] == Solrune [Name] == Shaelrune -//[Name] == Dolrune -//[Name] == Helrune -//[Name] == Iorune +[Name] == Dolrune +[Name] == Helrune +[Name] == Iorune [Name] == Lumrune [Name] == Korune [Name] == Falrune -//[Name] == Lemrune -//[Name] == Pulrune -//[Name] == Umrune -//[Name] == Malrune -//[Name] == Istrune -//[Name] == Gulrune -//[Name] == Vexrune -//[Name] == Ohmrune -//[Name] == Lorune -//[Name] == Surrune -//[Name] == Berrune -//[Name] == Jahrune -//[Name] == Chamrune -//[Name] == Zodrune +[Name] == Lemrune +[Name] == Pulrune +[Name] == Umrune +[Name] == Malrune +[Name] == Istrune +[Name] == Gulrune +[Name] == Vexrune +[Name] == Ohmrune +[Name] == Lorune +[Name] == Surrune +[Name] == Berrune +[Name] == Jahrune +[Name] == Chamrune +[Name] == Zodrune //--------------------------------------- //================= Gems ================ //--------------------------------------- -//[Name] == Chippedamethyst -//[Name] == Chippeddiamond -//[Name] == Chippedemerald -//[Name] == Chippedruby -//[Name] == Chippedsapphire -//[Name] == Chippedskull -//[Name] == Chippedtopaz -//[Name] == Flawedamethyst -//[Name] == Flaweddiamond -//[Name] == Flawedemerald -//[Name] == Flawedruby -//[Name] == Flawedsapphire -//[Name] == Flawedskull -//[Name] == Flawedtopaz -//[Name] == Amethyst -//[Name] == Diamond -//[Name] == Emerald -//[Name] == Ruby -//[Name] == Skull -//[Name] == Sapphire -//[Name] == Topaz +[Name] == Chippedamethyst +[Name] == Chippeddiamond +[Name] == Chippedemerald +[Name] == Chippedruby +[Name] == Chippedsapphire +[Name] == Chippedskull +[Name] == Chippedtopaz +[Name] == Flawedamethyst +[Name] == Flaweddiamond +[Name] == Flawedemerald +[Name] == Flawedruby +[Name] == Flawedsapphire +[Name] == Flawedskull +[Name] == Flawedtopaz +[Name] == Amethyst +[Name] == Diamond +[Name] == Emerald +[Name] == Ruby +[Name] == Skull +[Name] == Sapphire +[Name] == Topaz [Name] == Flawlessamethyst [Name] == Flawlessdiamond [Name] == Flawlessemerald @@ -171,7 +171,7 @@ //================= Grand Charms ================ //----------------------------------------------- -[Name] == Grandcharm && [Quality] == Magic # [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 40 // Plain +10 All Res +[Name] == Grandcharm && [Quality] == Magic # [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 10 // Plain +10 All Res [Name] == Grandcharm && [Quality] == Magic # [Itemaddskilltab] >= 1 // All Plain Skillers //[Name] == Grandcharm && [Quality] == Magic # ([Coldresist] >= 20 || [Fireresist] >= 25 || [Lightresist] >= 25 || [Poisonresist] >= 30) // All +25 Single Res Gc //[Name] == Grandcharm && [Quality] == Magic && [Flag] != Ethereal # [Maxhp] >= 40 // All +40 Max Hp Gc @@ -288,15 +288,15 @@ //----------------------------------------------- //[Name] == Smallcharm && [Quality] == Magic # [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 12 // +3 All Res -//[Name] == Largecharm && [Quality] == Magic # [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 24 // +6 All Res -//[Name] == Smallcharm && [Quality] == Magic # [Maxhp] >= 15 // Plain +Hp -//[Name] == Smallcharm && [Quality] == Magic # [Maxmana] >= 15 // Plain +Mana -//[Name] == Smallcharm && [Quality] == Magic # [Itemmagicbonus] >= 5 // Plain +Magic Find -//[Name] == Smallcharm && [Quality] == Magic # [Coldresist] >= 8 // Plain +Cold Res -//[Name] == Smallcharm && [Quality] == Magic # [Fireresist] >= 8 // Plain +Fire Res -//[Name] == Smallcharm && [Quality] == Magic # [Lightresist] >= 8 // Plain +Light Res -//[Name] == Smallcharm && [Quality] == Magic # [Poisonresist] >= 10 // Plain +Poison Res -//[Name] == Smallcharm && [Quality] == Magic # [Poisonmindam] >= 100 // Plain +100 Poison Dmg +[Name] == Largecharm && [Quality] == Magic # [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 14 // +6 All Res +[Name] == Smallcharm && [Quality] == Magic # [Maxhp] >= 10 // Plain +Hp +[Name] == Smallcharm && [Quality] == Magic # [Maxmana] >= 10 // Plain +Mana +[Name] == Smallcharm && [Quality] == Magic # [Itemmagicbonus] >= 3 // Plain +Magic Find +[Name] == Smallcharm && [Quality] == Magic # [Coldresist] >= 7 // Plain +Cold Res +[Name] == Smallcharm && [Quality] == Magic # [Fireresist] >= 7 // Plain +Fire Res +[Name] == Smallcharm && [Quality] == Magic # [Lightresist] >= 7 // Plain +Light Res +[Name] == Smallcharm && [Quality] == Magic # [Poisonresist] >= 10 // Plain +Poison Res +[Name] == Smallcharm && [Quality] == Magic # [Poisonmindam] >= 100 // Plain +100 Poison Dmg // Melee Small Charms ] >>>>>>>>> [Name] == Smallcharm && [Quality] == Magic # [Firemindam] >= 26 && [Firemaxdam] >= 42 @@ -333,9 +333,9 @@ //[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Coldresist] >= 9 //[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Lightresist] >= 9 //[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Poisonresist] >= 9 -[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 15 -[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Tohit] >= 20 && [Maxdamage] >= 3 -[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Tohit] >= 36 +//[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 15 +//[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 && [Tohit] >= 20 && [Maxdamage] >= 3 +[Name] == Smallcharm && [Quality] == Magic # [Frw] >= 3 // <<<<<<<<< [ +Fhr Small Charms ] >>>>>>>>> //[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Fireresist] >= 11 @@ -343,8 +343,8 @@ //[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Lightresist] >= 11 //[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Poisonresist] >= 11 //[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Coldresist]+[Fireresist]+[Lightresist]+[Poisonresist] >= 20 -[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Tohit] >= 20 && [Maxdamage] >= 3 -[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Tohit] >= 36 +//[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 && [Tohit] >= 20 && [Maxdamage] >= 3 +[Name] == Smallcharm && [Quality] == Magic # [Fhr] >= 5 //------------------------------------------ //================= Jewelry ================ @@ -361,12 +361,15 @@ //[Name] == Jewel && [Quality] == Magic # [Enhanceddamage] >= 20 && [Maxdamage] >= 15 // Rusty Jewel Of Carnage (Lld) //[Name] == Jewel && [Quality] == Magic # [Enhanceddamage] >= 20 && [Maxdamage] >= 9 // Rusty Jewel Of Wrath (Lld) //[Name] == Jewel && [Quality] == Magic # [Poisonmindam] >= 103 // Jewel Of Envy (Vlld) +[Name] == Jewel && [Quality] == Magic # [Enhanceddamage] >= 35 // All ED jewels +[Name] == Jewel && [Quality] == Magic # [Ias] == 15 // All IAS jewels // <<<<<<<<< [ Magic Amulets ] >>>>>>>>> -//[Name] == Amulet && [Quality] == Magic # [Itemchargedskill] == 54 // Tele Amulet +[Name] == Amulet && [Quality] == Magic # [Itemchargedskill] == 54 // Tele Amulet //[Type] == Amulet && [Quality] == Magic # [Itemaddskilltab] >= 3 && ([Fcr] >= 10 || [Itemmagicbonus] >= 35) // +3 Skill Fcr/Mf Amulet -//[Name] == Amulet && [Quality] == Magic # [Itemaddskilltab] >= 3 //+3 Amulet -[Name] == Amulet && [Quality] == Magic # [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 84 //Chromatic amulet +[Name] == Amulet && [Quality] == Magic # [Itemaddskilltab] >= 3 //+3 Amulet +[Name] == Amulet && [Quality] == Magic # [Itemmagicbonus] >= 15 +[Name] == Amulet && [Quality] == Magic # [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60 //Chromatic amulet //------------------------------------------- //================= Circlets ================ @@ -462,7 +465,8 @@ //================= Gloves ================= //------------------------------------------ -//[Type] == Gloves && [Quality] == Magic && [Flag] != Ethereal # [Ias] >= 20 && ([Javelinandspearskilltab] == 3 || [Bowandcrossbowskilltab] == 3 || [Martialartsskilltab] == 3) // 3/20 Gloves +[Type] == Gloves && [Quality] == Magic && [Flag] != Ethereal # [Ias] >= 10 && ([Javelinandspearskilltab] == 3 || [Bowandcrossbowskilltab] == 3 || [Martialartsskilltab] == 3) // 3/20 Gloves +[Type] == Gloves && [Quality] == Magic && [Flag] != Ethereal # [Ias] >= 10 && ([Javelinandspearskilltab] == 2 || [Bowandcrossbowskilltab] == 2 || [Martialartsskilltab] == 2) // 2/20 Gloves //========================================================================// //<<<<<<<<<<<<<<<<<<<<<<<<<<<< Rare Items >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>// @@ -473,12 +477,17 @@ //------------------------------------------ // <<<<<<<<< [ Rare Misc. Amulets ] >>>>>>>>> -//[Type] == Amulet && [Quality] == Rare # [Itemchargedskill] == 54 // Rare Tele Amulet +[Type] == Amulet && [Quality] == Rare # [Itemchargedskill] == 54 // Rare Tele Amulet //[Type] == Amulet && [Quality] == Rare # [Barbarianskills] == 2 && ([Itemgoldbonus] >= 70 && [Itemmagicbonus] >= 15 || [Itemgoldbonus] >= 80) // Gf Amulet // <<<<<<<<< [ Rare Caster Amulet ] >>>>>>>>> -//[Type] == Amulet && [Quality] == Rare # [Itemaddclassskills] >= 2 && [Fcr] >= 10 // All 2/10 Amulets -//[Type] == Amulet && [Quality] == Rare # [Itemaddclassskills] == 2 && [Fcr] == 10 && ([Strength]+[Maxhp]+[Maxmana] >= 60 || [Dexterity]+[Maxhp]+[Maxmana] >= 60 || [Strength]+[Dexterity]+[Maxhp] >= 50 || [Strength]+[Dexterity]+[Maxmana] >= 55) // Fcr Stat Amulet +[Type] == Amulet && [Quality] == Rare # [Itemaddclassskills] == 2 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemaddskilltab] == 2 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemaddclassskills] == 3 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemaddskilltab] == 3 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemaddclassskills] == 1 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemaddskilltab] == 1 && [Fcr] >= 10 // All x/10 Amulets +[Type] == Amulet && [Quality] == Rare # [Itemmagicbonus] >= 15 // All mf amu //[Type] == Amulet && [Quality] == Rare # [Druidskills] == 2 && [Fcr] == 10 && ([Strength] >= 10 || [Dexterity] >= 10 || [Strength]+[Dexterity] >= 20) && ([Maxhp] >= 30 || [Maxmana] >= 50 || [Itemmagicbonus] >= 25 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30) //[Type] == Amulet && [Quality] == Rare # [Barbarianskills] == 2 && [Fcr] == 10 && ([Strength] >= 10 || [Dexterity] >= 10 || [Strength]+[Dexterity] >= 20) && ([Maxhp] >= 30 || [Maxmana] >= 50 || [Itemmagicbonus] >= 25 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30) //[Type] == Amulet && [Quality] == Rare # [Necromancerskills] == 2 && [Fcr] == 10 && ([Strength] >= 10 || [Dexterity] >= 10 || [Strength]+[Dexterity] >= 20) && ([Maxhp] >= 30 || [Maxmana] >= 50 || [Itemmagicbonus] >= 25 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30) @@ -498,8 +507,11 @@ //[Type] == Amulet && [Quality] == Rare # [Itemaddskilltab] >= 2 && [Fcr] == 10 && [Strength] >= 6 && [Dexterity] >= 6 && ([Maxhp] >= 25 || [Maxmana] >= 60 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 20 || [Itemdamagetomana] >= 12) // <<<<<<<<< [ Rare Rings ] >>>>>>>>> -[Type] == Ring && [Quality] == Magic # [Maxmana] >= 91 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 48 //Scintillating and Bahamut Magic Rings -//[Type] == Ring && [Quality] == Rare # [Fcr] >= 10 && ([Strength] >= 15 || [Maxmana] >= 50 || [Maxhp] >= 20 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 25) // Caster Ring +//[Type] == Ring && [Quality] == Magic # [Maxmana] >= 91 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 48 //Scintillating and Bahamut Magic Rings +[Type] == Ring && [Quality] == Rare # [Fcr] >= 10 && [Strength] >= 15 // Caster Ring +[Type] == Ring && [Quality] == Rare # [Fcr] >= 10 && [Dexterity] >= 15 // Caster Ring +[Type] == Ring && [Quality] == Rare # [Itemmagicbonus] >= 10 // All mf rare Ring +[Type] == Ring && [Quality] == Magic # [Itemmagicbonus] >= 10 // All mf magic Ring //[Type] == Ring && [Quality] == Rare # [Tohit] >= 100 && [Lifeleech]+[Manaleech] >= 9 // Melee Dual Leech Ring //[Type] == Ring && [Quality] == Rare # [Tohit] >= 100 && [Strength] >= 15 && [Dexterity] >= 10 && ([Maxhp] >= 30 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30) // Melee Dual Stat Ring //[Type] == Ring && [Quality] == Rare # [Tohit] >= 100 && ([Mindamage] > 7 || [Maxdamage] > 9) && ([Strength]+[Dexterity] >= 10 || [Maxhp] >= 30 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 20) // Bva Ring @@ -514,22 +526,26 @@ //[Type] == Jewel && [Quality] == Rare # [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 40 && ([Strength] >= 7 || [Dexterity] >= 7 || [Fhr] == 7 || [Itemreqpercent] == -15) // 40% Res Jewel //[Type] == Jewel && [Quality] == Rare # [Fhr] == 7 && ([Strength] >= 6 || [Dexterity] >= 7 || [Strength]+[Dexterity] >= 10 || [Itemreqpercent] == -15) && ([Maxmana] >= 20 || [Maxhp] >= 20 || [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30) // Fhr Jewel //[Type] == Jewel && [Quality] == Rare # [Enhanceddamage] >= 20 && [Strength] >= 5 && [Dexterity] >= 5 // Lld +[Name] == Jewel && [Quality] == Rare # [Enhanceddamage] >= 35 // All ED jewels +[Name] == Jewel && [Quality] == Rare # [Ias] == 15 // All IAS jewels +[Name] == Jewel && [Quality] == Rare # [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >=10 +[Name] == Jewel && [Quality] == Magic # [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >=10 //------------------------------------------- //================= Circlets ================ //------------------------------------------- // <<<<<<<<< [ Rare Misc. Circlets ] >>>>>>>>> -//[Type] == Circlet && [Quality] == Rare # [Itemchargedskill] == 54 // Rare Tele Circlet +[Type] == Circlet && [Quality] == Rare # [Itemchargedskill] == 54 // Rare Tele Circlet //[Type] == Circlet && [Quality] == Rare # [Barbarianskills] == 2 && [Itemgoldbonus] == 70 && [Sockets] >= 0 // Gf Barb -//[Type] == Circlet && [Quality] == Rare # [Itemaddclassskills] >= 2 && [Fcr] >= 20 && [Sockets] == 2 // All 2 Class Skills/20/2 Fcr Circlets -//[Type] == Circlet && [Quality] == Rare # [Itemaddskilltab] >= 2 && [Fcr] >= 20 && [Sockets] == 2 // All 2 Tree Skills/20/2 Fcr Circlets +[Type] == Circlet && [Quality] == Rare # [Itemaddclassskills] >= 2 && [Fcr] >= 10 // All 2 Class Skills/20/2 Fcr Circlets +[Type] == Circlet && [Quality] == Rare # [Itemaddskilltab] >= 2 && [Fcr] >= 10 // All 2 Tree Skills/20/2 Fcr Circlets // <<<<<<<<< [ Rare Caster Circlets ] >>>>>>>>> //[Type] == Circlet && [Quality] == Rare # [Druidskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet //[Type] == Circlet && [Quality] == Rare # [Sorceressskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet //[Type] == Circlet && [Quality] == Rare # [Assassinskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet -[Type] == Circlet && [Quality] == Rare # [Paladinskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet +//[Type] == Circlet && [Quality] == Rare # [Paladinskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet //[Type] == Circlet && [Quality] == Rare # [Barbarianskills] == 2 && [Fcr] == 20 && ([Dexterity] >= 15 || [Strength] >= 15) && ([Maxhp] >= 30 || [Maxmana] >= 60 || [Fireresist]+[Coldresist]+[Lightresist]+[Poisonresist] >= 60) && [Sockets] >= 0 // Fcr Stat Circlet // <<<<<<<<< [ Rare Frw Circlets ] >>>>>>>>> @@ -584,10 +600,10 @@ //------------------------------------------ // <<<<<<<<< [ Rare Claws ] +++++++++ -//(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 20 && [Sockets] >= 0 -//(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 40 && [Sockets] >= 0 -//(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 30 && [Sockets] >= 0 -//(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 30 && [Sockets] >= 0 +(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 20 && [Sockets] >= 0 +(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 40 && [Sockets] >= 0 +(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 30 && [Sockets] >= 0 +(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare # ([Assassinskills]+[Skilllightningsentry] >= 5 || [Assassinskills]+[Skillwakeoffire] >= 5 || [Trapsskilltab]+[Skilllightningsentry] >= 5 || [Trapsskilltab]+[Skillwakeoffire] >= 5) && [Ias] >= 30 && [Sockets] >= 0 //(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare && [Flag] == Ethereal # [Enhanceddamage] >= 300 && [Itemskillonattack] == 66 && [Ias] >= 20 && [Sockets] >= 0 //(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare && [Flag] == Ethereal # [Ias] >= 20 && ([Enhanceddamage] >= 400 || ([Enhanceddamage] >= 275 && [Itemtohitperlevel] >= 1)) && [Sockets] >= 0 //(([Type] == Assassinclaw && [Class] == Elite) || [Name] == Greatertalons || [Name] == Greaterclaws) && [Quality] == Rare && [Flag] == Ethereal # [Ias] >= 40 && ([Enhanceddamage] >= 350 || ([Enhanceddamage] >= 250 && [Itemtohitperlevel] >= 1)) && [Sockets] >= 0 @@ -627,18 +643,18 @@ //================= Belts ================ //---------------------------------------- -//[Type] == Belt && [Quality] == Rare && [Flag] != Ethereal # [Fhr] >= 24 && [Strength] >= 20 && ([Maxhp] >= 40 || [Itemgoldbonus] >= 75 || [Lightresist] >= 20 && [Fireresist] >= 20 && [Coldresist] >= 20 || [Fireresist]+[Coldresist] >= 40 || [Fireresist]+[Lightresist] >= 40 || [Lightresist]+[Coldresist] >= 40) -//[Type] == Belt && [Quality] == Rare && [Flag] == Ethereal # [Enhanceddefense] >= 90 && [Itemreplenishdurability] >= 1 && ([Fhr] >= 17 || [Coldresist]+[Fireresist]+[Lightresist] >= 25 || [Strength]+[Dexterity] >= 10 || [Maxhp] >= 20 || [Fireresist]+[Coldresist] >= 40 || [Fireresist]+[Lightresist] >= 40 || [Lightresist]+[Coldresist] >= 40) -//[Type] == Belt && [Quality] == Rare && [Flag] == Ethereal # [Fhr] == 24 && [Strength] >= 20 && [Maxhp] >= 55 && [Itemreplenishdurability] >= 1 +[Type] == Belt && [Quality] == Rare && [Flag] != Ethereal # [Fhr] >= 24 && [Strength] >= 20 && ([Maxhp] >= 40 || [Itemgoldbonus] >= 75 || [Lightresist] >= 20 && [Fireresist] >= 20 && [Coldresist] >= 20 || [Fireresist]+[Coldresist] >= 40 || [Fireresist]+[Lightresist] >= 40 || [Lightresist]+[Coldresist] >= 40) +[Type] == Belt && [Quality] == Rare && [Flag] == Ethereal # [Enhanceddefense] >= 90 && [Itemreplenishdurability] >= 1 && ([Fhr] >= 17 || [Coldresist]+[Fireresist]+[Lightresist] >= 25 || [Strength]+[Dexterity] >= 10 || [Maxhp] >= 20 || [Fireresist]+[Coldresist] >= 40 || [Fireresist]+[Lightresist] >= 40 || [Lightresist]+[Coldresist] >= 40) +[Type] == Belt && [Quality] == Rare && [Flag] == Ethereal # [Fhr] == 24 && [Strength] >= 20 && [Maxhp] >= 55 && [Itemreplenishdurability] >= 1 //---------------------------------------- //================= Boots ================ //---------------------------------------- -//[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 30 && [Lightresist] >= 37 // Light Res boots -//[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 30 && ([Lightresist]+[Fireresist] >= 50 || [Coldresist]+[Lightresist] >= 50 || [Fireresist]+[Coldresist] >= 50) // Dual Res -//[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 30 && [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 50 // Tri Res -//[Type] == Boots && [Quality] == Rare && [Flag] == Ethereal # [Frw] >= 20 && [Fireresist]+[Lightresist]+[Coldresist] >= 50 && [Itemreplenishdurability] >= 1 // Eth Rep +[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 10 && [Lightresist] >= 37 // Light Res boots +[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 10 && ([Lightresist]+[Fireresist] >= 30 || [Coldresist]+[Lightresist] >= 30 || [Fireresist]+[Coldresist] >= 30) // Dual Res +[Type] == Boots && [Quality] == Rare && [Flag] != Ethereal # [Frw] >= 10 && [Fireresist]+[Lightresist]+[Coldresist]+[Poisonresist] >= 30 // Tri Res +[Type] == Boots && [Quality] == Rare && [Flag] == Ethereal # [Frw] >= 10 && [Fireresist]+[Lightresist]+[Coldresist] >= 30 && [Itemreplenishdurability] >= 1 // Eth Rep //----------------------------------------- //================= Gloves ================ @@ -652,6 +668,10 @@ //[Type] == Gloves && [Quality] == Rare && [Flag] == Ethereal # [Enhanceddefense] >= 180 && [Itemreplenishdurability] >= 1 && ([Bowandcrossbowskilltab] == 2 || [Passiveandmagicskilltab] == 2 || [Javelinandspearskilltab] == 2) && ([Ias] >= 10 || [Dexterity]+[Strength] >= 10 || [Coldresist]+[Fireresist]+[Lightresist] >= 20) //[Type] == Gloves && [Quality] == Rare && [Flag] == Ethereal # [Ias] >= 20 && [Dexterity]+[Strength] >= 20 && ([Coldresist]+[Fireresist]+[Lightresist] >= 35 || [Coldresist]+[Fireresist] >= 40 || [Coldresist]+[Lightresist] >= 40 || [Fireresist]+[Lightresist] >= 40) && [Itemreplenishdurability] >= 1 //[Type] == Gloves && [Quality] == Rare && [Flag] == Ethereal # [Ias] >= 20 && [Dexterity]+[Strength] >= 20 && ([Bowandcrossbowskilltab] == 2 || [Passiveandmagicskilltab] == 2 || [Javelinandspearskilltab] == 2) && [Itemreplenishdurability] >= 1 +[Type] == Gloves && [Quality] == Rare && [Flag] != Ethereal # [Ias] == 10 && ([Javelinandspearskilltab] == 3 || [Bowandcrossbowskilltab] == 3 || [Martialartsskilltab] == 3) // 3/10 Gloves +[Type] == Gloves && [Quality] == Rare && [Flag] != Ethereal # [Ias] == 10 && ([Javelinandspearskilltab] == 2 || [Bowandcrossbowskilltab] == 2 || [Martialartsskilltab] == 2) // 2/10 Gloves +[Type] == Gloves && [Quality] == Rare && [Flag] != Ethereal # [Ias] == 20 && ([Javelinandspearskilltab] == 3 || [Bowandcrossbowskilltab] == 3 || [Martialartsskilltab] == 3) // 3/20 Gloves +[Type] == Gloves && [Quality] == Rare && [Flag] != Ethereal # [Ias] == 20 && ([Javelinandspearskilltab] == 2 || [Bowandcrossbowskilltab] == 2 || [Martialartsskilltab] == 2) // 2/20 Gloves //=======================================================================================// //<<<<<<<<<<<<<<<<<<<<<<<<<< White/Eth/Superior/Socketed Bases >>>>>>>>>>>>>>>>>>>>>>>>>>// @@ -662,7 +682,7 @@ //---------------------------------------------- // <<<<<<<<< [ Non-Ethereal Non-Socketed Armor ] >>>>>>>>> -//[Name] == Archonplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain +[Name] == Archonplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Duskshroud && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Mageplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Greathauberk && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain @@ -674,76 +694,129 @@ //[Name] == Sacredarmor && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain // <<<<<<<<< [ Non-Ethereal Socketed Armor ] >>>>>>>>> -//[Name] == Archonplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Duskshroud && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Mageplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Greathauberk && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Wirefleece && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Scarabhusk && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Wyrmhide && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Lightplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed -//[Name] == Shadowplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed -//[Name] == Sacredarmor && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed +[Name] == Archonplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +[Name] == Duskshroud && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Mageplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Greathauberk && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Wirefleece && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Scarabhusk && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +[Name] == Wyrmhide && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Lightplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 3 // Socketed +//[Name] == Shadowplate && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed +//[Name] == Sacredarmor && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed // <<<<<<<<< [ Non-Ethereal Superior Non-Socketed Armor ] >>>>>>>>> -//[Name] == Archonplate && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Duskshroud && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Mageplate && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Greathauberk && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Wirefleece && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Scarabhusk && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Wyrmhide && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Lightplate && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Shadowplate && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior -//[Name] == Sacredarmor && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddefense] >= 10 // Plain Superior +[Name] == Archonplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Duskshroud && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Mageplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Greathauberk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Wirefleece && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Scarabhusk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Wyrmhide && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Lightplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Shadowplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior +[Name] == Sacredarmor && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Plain Superior // <<<<<<<<< [ Non-Ethereal Superior Socketed Armor ] >>>>>>>>> -//[Name] == Archonplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Duskshroud && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Mageplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Greathauberk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Wirefleece && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Scarabhusk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Wyrmhide && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Lightplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup -//[Name] == Shadowplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 4 // Socketed Sup -//[Name] == Sacredarmor && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 4 // Socketed Sup +//[Name] == Archonplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Duskshroud && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Mageplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Greathauberk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Wirefleece && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Scarabhusk && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Wyrmhide && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Lightplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 3 // Socketed Sup +//[Name] == Shadowplate && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 4 // Socketed Sup +//[Name] == Sacredarmor && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] >= 4 // Socketed Sup // <<<<<<<<< [ Ethereal Socketed/Non-Socketed Armor ] >>>>>>>>> -[Name] == Archonplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Duskshroud && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -//[Name] == Mageplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) // Socketed Eth -[Name] == Greathauberk && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Wirefleece && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Scarabhusk && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Wyrmhide && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -//[Name] == Lightplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Shadowplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth -[Name] == Sacredarmor && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Archonplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Duskshroud && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Mageplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) // Socketed Eth +//[Name] == Greathauberk && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Wirefleece && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Scarabhusk && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Wyrmhide && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Lightplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Shadowplate && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth +//[Name] == Sacredarmor && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) // Socketed Eth + +[Name] == Archonplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Duskshroud && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Greathauberk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Wirefleece && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Scarabhusk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Wyrmhide && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Shadowplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth +[Name] == Sacredarmor && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 0 // Socketed Eth + +[Name] == Archonplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Duskshroud && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Greathauberk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Wirefleece && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Scarabhusk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Wyrmhide && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Shadowplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth +[Name] == Sacredarmor && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 3 // Socketed Eth + +[Name] == Archonplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Duskshroud && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Greathauberk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Wirefleece && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Scarabhusk && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Wyrmhide && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Shadowplate && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth +[Name] == Sacredarmor && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 // Socketed Eth // <<<<<<<<< [ Ethereal Superior Socketed/Non-Socketed Armor ] >>>>>>>>> -[Name] == Archonplate && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Duskshroud && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Mageplate && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Greathauberk && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Wirefleece && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Scarabhusk && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Wyrmhide && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -//[Name] == Lightplate && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Shadowplate && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup -[Name] == Sacredarmor && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 3) && [Enhanceddefense] >= 10 // Socketed Eth Sup +[Name] == Archonplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Duskshroud && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Mageplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Greathauberk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Wirefleece && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Scarabhusk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Wyrmhide && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Lightplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Shadowplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup +[Name] == Sacredarmor && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 4 // Socketed Eth Sup + +[Name] == Archonplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Duskshroud && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Mageplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Greathauberk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Wirefleece && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Scarabhusk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Wyrmhide && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Lightplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Shadowplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup +[Name] == Sacredarmor && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 3 // Socketed Eth Sup + +[Name] == Archonplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Duskshroud && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Mageplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Greathauberk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Wirefleece && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Scarabhusk && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Wyrmhide && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Lightplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Shadowplate && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup +[Name] == Sacredarmor && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 7 && [Sockets] == 0 // Socketed Eth Sup //----------------------------------------------- //================= Helmet Bases ================ //----------------------------------------------- -[Name] == Crown && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 //3os helm twink -[Name] == Mask && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 //3os helm twink -[Name] == Deathmask && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 //3os helm +[Name] == Crown && [Quality] == Normal # [Sockets] == 3 //3os helm bitchface +[Name] == Mask && [Quality] == Normal # [Sockets] == 3 //3os helm tissemand +[Name] == Deathmask && [Quality] == Normal # [Sockets] == 3 //3os koala +([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Normal # [Sockets] == 3 +([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Normal # [Sockets] == 0 +([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 0 +([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 3 //([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 -([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Normal # [Sockets] == 3 // Cure base -([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] == 0 // Delirium Or Dream Perfect -([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] == 3 // 3os Socketed Delirium Or Dream Perfect +//([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Normal # [Sockets] == 3 // Cure base +//([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] == 0 // Delirium Or Dream Perfect +//([Name] == Corona || [Name] == Demonhead || [Name] == Bonevisage || [Name] == Diadem) && [Quality] == Superior && [Flag] != Ethereal # [Enhanceddefense] >= 10 && [Sockets] == 3 // 3os Socketed Delirium Or Dream Perfect //------------------------------------------------------- //================= Barbarian Helm Bases ================ @@ -777,19 +850,25 @@ //----------------------------------------------- // <<<<<<<<< [ White/Eth Superior/Non-Superior Socketed/Non-Socketed Shields ] >>>>>>>>> -//([Name] == Akarantarge || [Name] == Akaranrondache || [Name] == Crownshield) && ([Quality] == Normal || [Quality] == Superior) && [Flag] != Ethereal # [Allresist] >= 40 // V/Lld Paladin Shield Base -[Name] == Monarch && [Quality] == Normal # [Sockets] == 0 // Plain Monarch -[Name] == Monarch && [Quality] == Normal # [Sockets] == 4 //4os Monarch -[Name] == Monarch && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 0 //Superior Plain Monarch -[Name] == Monarch && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 4 //4os Superior Monarch -[Name] == Monarch && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 10 && ([Sockets] == 0 || [Sockets] == 4) //4os Eth Monarch -[Name] == Monarch && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 15 && ([Sockets] == 0 || [Sockets] == 4) // 4os Eth Superior Monarch -[Type] == Auricshields && [Quality] == Normal && [Class] == Elite # [Allresist] >= 40 && [Sockets] == 0 // Plain 40+ All Res+ Paladin Shield -[Type] == Auricshields && [Quality] == Normal && [Class] == Elite # [Allresist] >= 40 && [Sockets] >= 3 // 3os+ 40 All Res+ Paladin Shield -[Type] == Auricshields && [Quality] == Superior && [Class] == Elite # [Allresist] >= 40 && [Enhanceddefense] >= 10 && [Sockets] == 0 // 40+ All Res+ Superior Paladin Shield -[Type] == Auricshields && [Quality] == Superior && [Class] == Elite # [Allresist] >= 40 && [Enhanceddefense] >= 10 && [Sockets] >= 3 // 3os+ 40 All Res+ Superior Paladin Shield -[Type] == Auricshields && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # [Allresist] >= 40 && ([Sockets] == 0 || [Sockets] >= 4) // Eth Exile -[Type] == Auricshields && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] > 10 && [Allresist] >= 40 && ([Sockets] == 0 || [Sockets] >= 4) // Superior Eth Exile +([Name] == Akarantarge || [Name] == Akaranrondache || [Name] == Crownshield) && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 0 // low lvl Paladin Shield Base +([Name] == Akarantarge || [Name] == Akaranrondache || [Name] == Crownshield) && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 // low lvl Paladin Shield Base +([Name] == Akarantarge || [Name] == Akaranrondache || [Name] == Crownshield) && ([Quality] == Normal || [Quality] == Superior) # [Allresist] >= 30 && [Sockets] == 0 // low lvl Paladin Shield Base +([Name] == Akarantarge || [Name] == Akaranrondache || [Name] == Crownshield) && ([Quality] == Normal || [Quality] == Superior) # [Allresist] >= 30 && [Sockets] == 4 // low lvl Paladin Shield Base +[Name] == Monarch && [Quality] == Normal # [Sockets] == 0 // Plain Monarch +[Name] == Monarch && [Quality] == Normal # [Sockets] == 4 //4os Monarch +[Name] == Monarch && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 0 //Superior Plain Monarch +[Name] == Monarch && [Quality] == Superior # [Enhanceddefense] >= 10 && [Sockets] == 4 //4os Superior Monarch +[Name] == Monarch && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 10 && ([Sockets] == 0 || [Sockets] == 4) //4os Eth Monarch +[Name] == Monarch && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] >= 15 && ([Sockets] == 0 || [Sockets] == 4) // 4os Eth Superior Monarch +[Type] == Auricshields && [Quality] == Normal # [Sockets] == 0 // Plain 40+ All Res+ Paladin Shield +[Type] == Auricshields && [Quality] == Normal # [Sockets] == 4 // Plain 40+ All Res+ Paladin Shield +[Type] == Auricshields && [Quality] == Normal # [Allresist] >= 30 && [Sockets] == 0 // 30+res 0os pala shield +[Type] == Auricshields && [Quality] == Normal # [Allresist] >= 30 && [Sockets] == 4 // 30+res 4os pala shield +//[Type] == Auricshields && [Quality] == Normal && [Class] == Elite # [Allresist] >= 40 && [Sockets] >= 3 // 3os+ 40 All Res+ Paladin Shield +//[Type] == Auricshields && [Quality] == Superior && [Class] == Elite # [Allresist] >= 40 && [Enhanceddefense] >= 10 && [Sockets] == 0 // 40+ All Res+ Superior Paladin Shield +//[Type] == Auricshields && [Quality] == Superior && [Class] == Elite # [Allresist] >= 40 && [Enhanceddefense] >= 10 && [Sockets] >= 3 // 3os+ 40 All Res+ Superior Paladin Shield +//[Type] == Auricshields && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # [Allresist] >= 40 && ([Sockets] == 0 || [Sockets] >= 4) // Eth Exile +//[Type] == Auricshields && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddefense] > 10 && [Allresist] >= 40 && ([Sockets] == 0 || [Sockets] >= 4) // Superior Eth Exile //------------------------------------------------------------ //================= Necromancer Offhand Bases ================ @@ -804,73 +883,97 @@ //----------------------------------------------------- // <<<<<<<<< [ Non-Ethereal 1h Non-Socketed Weapons ] >>>>>>>>> +[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] != Ethereal # [Sockets] == 0 +[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] != Ethereal # [Sockets] == 6 +[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # [Sockets] == 0 +[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # [Sockets] == 6 +[Name] == Flail && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Crystalsword && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 0 +[Name] == Crystalsword && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 5 +[Name] == Crystalsword && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 6 +[Name] == Phaseblade && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 0 +[Name] == Phaseblade && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 6 +[Name] == Broadsword && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 0 +[Name] == Broadsword && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 + //[Name] == Berserkeraxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Crystalsword && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Flail && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Phaseblade && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain -[Name] == Warscepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain -[Name] == Divinescepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain +//[Name] == Warscepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain +//[Name] == Divinescepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain //[Name] == Crypticsword && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain //[Name] == Mythicalsword && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain // <<<<<<<<< [ Non-Ethereal Superior 1h Non-Socketed Weapons ] >>>>>>>>> -[Name] == Berserkeraxe && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior +//[Name] == Berserkeraxe && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior //[Name] == Crystalsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior //[Name] == Flail && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior -[Name] == Phaseblade && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior -[Name] == Warscepter && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior -[Name] == Divinescepter && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior -[Name] == Caduceus && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior -[Name] == Crypticsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior -[Name] == Mythicalsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior +//[Name] == Phaseblade && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior +//[Name] == Warscepter && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior +//[Name] == Divinescepter && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior +//[Name] == Caduceus && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Enhanceddamage] >= 0 // Plain Superior +//[Name] == Crypticsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior +//[Name] == Mythicalsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 0 && [Enhanceddamage] >= 10 // Plain Superior // <<<<<<<<< [ Non-Ethereal 1h Socketed Weapons ] >>>>>>>>> //[Name] == Berserkeraxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 5 // Socketed -[Name] == Crystalsword && [Quality] == Normal # [Sockets] == 4 // Spirit base mid -[Name] == Broadsword && [Quality] == Normal # [Sockets] == 4 // Spirit base mid -[Name] == Crystalsword && [Quality] == Normal # [Sockets] == 5 //CTA base -[Name] == Doubleaxe && [Quality] == Normal # [Sockets] == 5 // CTA base -[Name] == Flail && [Quality] == Normal # [Sockets] == 4 // Hoto base +//[Name] == Crystalsword && [Quality] == Normal # [Sockets] == 4 // Spirit base mid +//[Name] == Broadsword && [Quality] == Normal # [Sockets] == 4 // Spirit base mid +//[Name] == Crystalsword && [Quality] == Normal # [Sockets] == 5 //CTA base +//[Name] == Doubleaxe && [Quality] == Normal # [Sockets] == 5 // CTA base +//[Name] == Flail && [Quality] == Normal # [Sockets] == 4 // Hoto base //[Name] == Militarypick && [Quality] == Normal # [Sockets] == 3 // Crescent Moon base //[Name] == Militarypick && [Quality] == Normal # [Sockets] == 5 // Doom base -([Name] == Kris || [Name] == Cinquedeas || [Name] == Fangedknife) && [Quality] == Normal # [Skillabyss] >= 1 && ([Sockets] == 0 || [Sockets] == 3) //Void base +//([Name] == Kris || [Name] == Cinquedeas || [Name] == Fangedknife) && [Quality] == Normal # [Skillabyss] >= 1 && ([Sockets] == 0 || [Sockets] == 3) //Void base //[Name] == Phaseblade && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 5 // Socketed Greif base //[Name] == Phaseblade && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 // Socketed Lawbringer base -[Name] == Warscepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed -[Name] == Divinescepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed -[Name] == Caduceus && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain -[Name] == Caduceus && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed +//[Name] == Warscepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed +//[Name] == Divinescepter && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed +//[Name] == Caduceus && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 0 // Plain +//[Name] == Caduceus && [Quality] == Normal && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 // Socketed //[Name] == Crypticsword && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 // Socketed //[Name] == Mythicalsword && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 3 // Socketed // <<<<<<<<< [ Non-Ethereal Superior 1h Socketed Weapons ] >>>>>>>>> -[Name] == Berserkeraxe && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 5 && [Enhanceddamage] >= 10 // Socketed Superior +//[Name] == Berserkeraxe && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 5 && [Enhanceddamage] >= 10 // Socketed Superior //[Name] == Crystalsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 4 && [Enhanceddamage] >= 10 // Socketed Superiro //[Name] == Flail && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 4 && [Enhanceddamage] >= 14 // Socketed Superior -[Name] == Phaseblade && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 5 && [Enhanceddamage] >= 10 // Socketed Superior -[Name] == Warscepter && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior -[Name] == Divinescepter && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior -[Name] == Caduceus && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior +//[Name] == Phaseblade && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 5 && [Enhanceddamage] >= 10 // Socketed Superior +//[Name] == Warscepter && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior +//[Name] == Divinescepter && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior +//[Name] == Caduceus && [Quality] == Superior && [Flag] != Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && [Sockets] == 5 && [Enhanceddamage] >= 0 // Socketed Superior //[Name] == Crypticsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 3 // Socketed Superior //[Name] == Mythicalsword && [Quality] == Superior && [Flag] != Ethereal # [Sockets] == 3 // Socketed Superior // <<<<<<<<< [ Ethereal 1h Superior/Non-Superior Socketed/Non-Socketed Weapons ] >>>>>>>>> -[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth +//[Name] == Berserkeraxe && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth //[Name] == Crystalsword && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth //[Name] == Flail && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth -[Name] == Phaseblade && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth -[Name] == Warscepter && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth -[Name] == Divinescepter && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth -[Name] == Caduceus && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth +//[Name] == Phaseblade && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth +//[Name] == Warscepter && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth +//[Name] == Divinescepter && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth +//[Name] == Caduceus && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Skillblessedhammer] >= 3 || [Skillconviction] >= 3 || [Skillfistoftheheavens] >= 3 || [Skillfanaticism] >= 3 || [Skillholyshield] >= 3) && ([Sockets] == 0 || [Sockets] == 5) // Socketed Eth //[Name] == Crypticsword && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) // Socketed Eth //[Name] == Mythicalsword && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 3) // Socketed Eth // <<<<<<<<< [ Ethereal Superior 1h Socketed/Non-Socketed Weapons ] >>>>>>>>> -[Name] == Berserkeraxe && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddamage] >= 10 && ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth Sup //Death, Ebotd +//[Name] == Berserkeraxe && [Quality] == Superior && [Flag] == Ethereal # [Enhanceddamage] >= 10 && ([Sockets] == 0 || [Sockets] >= 5) // Socketed Eth Sup //Death, Ebotd //----------------------------------------------------- //================= 2h Weapon Bases ================ //----------------------------------------------------- +[Name] == Warscythe && [Quality] == Normal # [Sockets] == 4 +[Name] == Bill && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == BattleScythe && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Partizan && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Becdecorbin && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Partizan && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Grimscythe && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Crypticaxe && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Greatpoleaxe && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Giantthresher && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 +[Name] == Thresher && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 // <<<<<<<<< [Non-Ethereal 2h Non-Superior Non-Socketed Weapons ] >>>>>>>>> //[Name] == Warpike && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain @@ -883,17 +986,17 @@ //[Name] == Mancatcher && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 0 // Plain // <<<<<<<<< [ Non-Ethereal 2h Non-Superior Socketed Weapons ] >>>>>>>>> -[Name] == Warscythe && [Quality] == Normal # [Sockets] == 4 //Exceptional Insight bases mid -[Name] == Bill && [Quality] == Normal # [Sockets] == 4 -[Name] == BattleScythe && [Quality] == Normal # [Sockets] == 4 -[Name] == Partizan && [Quality] == Normal # [Sockets] == 4 -[Name] == Becdecorbin && [Quality] == Normal # [Sockets] == 4 -[Name] == Partizan && [Quality] == Normal # [Sockets] == 4 -[Name] == Grimscythe && [Quality] == Normal # [Sockets] == 4 -[Name] == Crypticaxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 //Elite Insight bases mid -[Name] == Greatpoleaxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 -[Name] == Giantthresher && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 -[Name] == Thresher && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 +//[Name] == Warscythe && [Quality] == Normal # [Sockets] == 4 //Exceptional Insight bases mid +//[Name] == Bill && [Quality] == Normal # [Sockets] == 4 +//[Name] == BattleScythe && [Quality] == Normal # [Sockets] == 4 +//[Name] == Partizan && [Quality] == Normal # [Sockets] == 4 +//[Name] == Becdecorbin && [Quality] == Normal # [Sockets] == 4 +//[Name] == Partizan && [Quality] == Normal # [Sockets] == 4 +//[Name] == Grimscythe && [Quality] == Normal # [Sockets] == 4 +//[Name] == Crypticaxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 //Elite Insight bases mid +//[Name] == Greatpoleaxe && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 +//[Name] == Giantthresher && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 +//[Name] == Thresher && [Quality] == Normal && [Flag] != Ethereal # [Sockets] == 4 //[Name] == Warpike && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed //[Name] == Colossusvoulge && [Quality] == Normal && [Flag] != Ethereal # [Sockets] >= 4 // Socketed @@ -923,26 +1026,26 @@ //[Name] == Mancatcher && [Quality] == Superior && [Flag] != Ethereal # [Sockets] >= 4 && [Enhanceddamage] >= 10 // Socketed Sup // <<<<<<<<< [ Ethereal 2h Socketed/Non-Socketed Weapons ] >>>>>>>>> -[Name] == Warpike && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4 ) //Echo Strike base -[Name] == Thundermaul && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 4 || [Sockets] == 6 ) //Echo Strike base +//[Name] == Warpike && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4 ) //Echo Strike base +//[Name] == Thundermaul && ([Quality] == Normal || [Quality] == Superior) && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] == 4 || [Sockets] == 6 ) //Echo Strike base //[Name] == Scythe && [Quality] == Normal && [Flag] == Ethereal # [Sockets] == 4 -[Name] == Colossusvoulge && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Eth Insight Base -[Name] == Thresher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth -[Name] == Giantthresher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth -[Name] == Crypticaxe && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth -[Name] == Greatpoleaxe && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth +//[Name] == Colossusvoulge && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Eth Insight Base +//[Name] == Thresher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth +//[Name] == Giantthresher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth +//[Name] == Crypticaxe && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth +//[Name] == Greatpoleaxe && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth //[Name] == Ghostspear && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth -[Name] == Mancatcher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth +//[Name] == Mancatcher && [Quality] == Normal && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) // Socketed Eth // <<<<<<<<< [ Ethereal Superior 2h Socketed/Non-Socketed Weapons ] >>>>>>>>> -[Name] == Warpike && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Colossusvoulge && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Thresher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Giantthresher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Crypticaxe && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Greatpoleaxe && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Ghostspear && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup -[Name] == Mancatcher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Warpike && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Colossusvoulge && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Thresher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Giantthresher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Crypticaxe && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Greatpoleaxe && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Ghostspear && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup +//[Name] == Mancatcher && [Quality] == Superior && [Flag] == Ethereal # ([Sockets] == 0 || [Sockets] >= 4) && [Enhanceddamage] >= 10 // Socketed Eth Sup //------------------------------------------------------ //================= Assassin Claw Bases ================ @@ -994,7 +1097,7 @@ //--------------------------------------------------- // <<<<<<<<< [ Socketed Amazon Bows ] >>>>>>>>> -//[Type] == Bow && [Class] == Elite && [Quality] == Normal # [Sockets] == 0 // Faith +[Type] == Bow && ([Quality] == Normal || [Quality] == Superior) # [Sockets] == 4 //[Type] == Bow && [Class] == Elite && [Quality] == Normal # [Sockets] >= 4 // Faith/Mist Socketed //[Type] == Amazonbow && [Class] == Elite && [Quality] == Normal # [Bowandcrossbowskilltab] == 3 && [Sockets] == 0 // Faith //[Type] == Amazonbow && [Class] == Elite && [Quality] == Normal # [Bowandcrossbowskilltab] == 3 && [Sockets] >= 4 // Faith/Mist Socketed @@ -1013,10 +1116,10 @@ //================= Angelic Raiment ================ //-------------------------------------------------- -//[Name] == Ringmail && [Quality] == Set // Angelic Mantle -//[Name] == Sabre && [Quality] == Set // Angelic Sickle -//[Type] == Ring && [Quality] == Set # [Maxhp] == 20 // Angelic Halo -//[Type] == Amulet && [Quality] == Set # [Itemlightradius] == 3 && [Itemdamagetomana] == 20 // Angelic Wings +[Name] == Ringmail && [Quality] == Set // Angelic Mantle +[Name] == Sabre && [Quality] == Set // Angelic Sickle +[Type] == Ring && [Quality] == Set # [Maxhp] == 20 // Angelic Halo +[Type] == Amulet && [Quality] == Set # [Itemlightradius] == 3 && [Itemdamagetomana] == 20 // Angelic Wings //--------------------------------------------------- //================= Arcanna's Tricks ================ @@ -1124,12 +1227,12 @@ //================= Sigon's Steel ================ //------------------------------------------------ -//[Name] == Greathelm && [Quality] == Set // Sigon's Visor -//[Name] == Gothicplate && [Quality] == Set // Sigon's Shelter -//[Name] == Greaves && [Quality] == Set // Sigon's Sabot -//[Name] == Towershield && [Quality] == Set // Sigon's Guard -//[Name] == Platedbelt && [Quality] == Set // Sigon's Warp -//[Name] == Gauntlets && [Quality] == Set // Sigon's Gage +[Name] == Greathelm && [Quality] == Set // Sigon's Visor +[Name] == Gothicplate && [Quality] == Set // Sigon's Shelter +[Name] == Greaves && [Quality] == Set // Sigon's Sabot +[Name] == Towershield && [Quality] == Set // Sigon's Guard +[Name] == Platedbelt && [Quality] == Set // Sigon's Warp +[Name] == Gauntlets && [Quality] == Set // Sigon's Gage //------------------------------------------------------- //================= Tancred's Battlegear ================ @@ -1156,7 +1259,7 @@ //[Name] == Huntersguise && [Quality] == Set // Aldur's Stony Gaze [Name] == Battleboots && [Quality] == Set // Aldur's Advance -//[Name] == Shadowplate && [Quality] == Set // Aldur's Deception +[Name] == Shadowplate && [Quality] == Set // Aldur's Deception //[Name] == Jaggedstar && [Quality] == Set // Aldur's Rhythm //------------------------------------------------------- @@ -1170,15 +1273,15 @@ //================= Cow King's Leathers ================ //------------------------------------------------------ -//[Name] == Warhat && [Quality] == Set // Cow King's Horns -//[Name] == Studdedleather && [Quality] == Set // Cow King's Hide -//[Name] == Heavyboots && [Quality] == Set # [Dexterity] == 20 && [Itemmagicbonus] == 25 // Cow King's Hooves +[Name] == Warhat && [Quality] == Set // Cow King's Horns +[Name] == Studdedleather && [Quality] == Set // Cow King's Hide +[Name] == Heavyboots && [Quality] == Set # [Dexterity] == 20 && [Itemmagicbonus] == 25 // Cow King's Hooves //----------------------------------------------- //================= The Disciple ================ //----------------------------------------------- -//[Type] == Amulet && [Quality] == Set # [Itemallskills] == 1 && [Coldresist] == 18 // Telling Of Beads +[Type] == Amulet && [Quality] == Set # [Itemallskills] == 1 && [Coldresist] == 18 // Telling Of Beads [Name] == Bramblemitts && [Quality] == Set // Laying Of Hands //[Name] == Duskshroud && [Quality] == Set // Dark Adherent //[Name] == Demonhideboots && [Quality] == Set // Rite Of Passage @@ -1189,11 +1292,11 @@ //---------------------------------------------------- [Name] == Ornateplate && [Quality] == Set // Griswold's Heart -//[Name] == Corona && [Quality] == Set # [Itemmagicbonus] >= 20 // Griswold's Valor +[Name] == Corona && [Quality] == Set # [Itemmagicbonus] >= 20 // Griswold's Valor //[Name] == Corona && [Quality] == Set # [Itemmagicbonus] >= 30 && [Enhanceddefense] >= 75 // Griswold's Valor Perfect -//[Name] == Caduceus && [Quality] == Set # [Sockets] >= 3 && [Enhanceddamage] >= 200 // Griswold's Redemption +[Name] == Caduceus && [Quality] == Set # [Sockets] >= 3 && [Enhanceddamage] >= 200 // Griswold's Redemption //[Name] == Caduceus && [Quality] == Set # [Sockets] >= 4 && [Enhanceddamage] >= 240 // Griswold's Redemption Perfect -//[Name] == Vortexshield && [Quality] == Set // Griswold's Honor +[Name] == Vortexshield && [Quality] == Set // Griswold's Honor //[Name] == Vortexshield && [Quality] == Set # [Defense] >= 330 // Griswold's Honor Perfect @@ -1220,30 +1323,30 @@ //------------------------------------------------ [Name] == Warbelt && [Quality] == Set // Immortal King's Detail -//[Name] == Avengerguard && [Quality] == Set // Immortal King's Will -//[Name] == Ogremaul && [Quality] == Set // Immortal King's Stone Crusher +[Name] == Avengerguard && [Quality] == Set // Immortal King's Will +[Name] == Ogremaul && [Quality] == Set // Immortal King's Stone Crusher [Name] == Sacredarmor && [Quality] == Set // Immortal King's Soul Cage -//[Name] == Wargauntlets && [Quality] == Set // Immortal King's Forge -//[Name] == Warboots && [Quality] == Set // Immortal King's Pillar +[Name] == Wargauntlets && [Quality] == Set // Immortal King's Forge +[Name] == Warboots && [Quality] == Set // Immortal King's Pillar //-------------------------------------------------------- //================= M'Avina's Battle Hymn ================ //-------------------------------------------------------- // M'Avina's Battle Hymn -//[Name] == Diadem && [Quality] == Set // M'Avina's True Sight -//[Name] == Grandmatronbow && [Quality] == Set // M'Avina's Caster -//[Name] == Krakenshell && [Quality] == Set // M'Avina's Embrace -//[Name] == Battlegauntlets && [Quality] == Set // M'Avina's Icy Clutch -//[Name] == Sharkskinbelt && [Quality] == Set // M'Avina's Tenet +[Name] == Diadem && [Quality] == Set // M'Avina's True Sight +[Name] == Grandmatronbow && [Quality] == Set // M'Avina's Caster +[Name] == Krakenshell && [Quality] == Set // M'Avina's Embrace +[Name] == Battlegauntlets && [Quality] == Set // M'Avina's Icy Clutch +[Name] == Sharkskinbelt && [Quality] == Set // M'Avina's Tenet //-------------------------------------------------- //================= Natalya's Odium ================ //-------------------------------------------------- // Natalya's Odium -//[Name] == Grimhelm && [Quality] == Set // Natalya's Totem -//[Name] == Scissorssuwayyah && [Quality] == Set // Natalya's Mark -//[Name] == Loricatedmail && [Quality] == Set # [Defense] >= 721 && [Sockets] >= 3 // Natalya's Shadow +[Name] == Grimhelm && [Quality] == Set // Natalya's Totem +[Name] == Scissorssuwayyah && [Quality] == Set // Natalya's Mark +[Name] == Loricatedmail && [Quality] == Set # [Defense] >= 721 && [Sockets] >= 3 // Natalya's Shadow [Name] == Meshboots && [Quality] == Set # [Lightresist] >= 15 && [Coldresist] >= 15 // Natalya's Soul //-------------------------------------------------------- @@ -1297,10 +1400,10 @@ //================= Trang-Ouls Avatar ================ //---------------------------------------------------- -//[Name] == Bonevisage && [Quality] == Set // Trang-Oul's Guise -//[Name] == Chaosarmor && [Quality] == Set // Trang-Oul's Scales -//[Name] == Cantortrophy && [Quality] == Set // Trang-Oul's Wing -//[Name] == Trollbelt && [Quality] == Set // Trang-Oul's Girth +[Name] == Bonevisage && [Quality] == Set // Trang-Oul's Guise +[Name] == Chaosarmor && [Quality] == Set // Trang-Oul's Scales +[Name] == Cantortrophy && [Quality] == Set // Trang-Oul's Wing +[Name] == Trollbelt && [Quality] == Set // Trang-Oul's Girth [Name] == Heavybracers && [Quality] == Set // Trang-Oul's Claws //---------------------------------------------------- @@ -1342,133 +1445,138 @@ [Type] == Amulet && [Quality] == Unique # [Fireresist] >= 50 // Nokozan Relic [Type] == Amulet && [Quality] == Unique # [Lifeleech] >= 3 && [Armorclassvsmissile] >= 10 // The Eye Of Etlitch -[Type] == Amulet && [Quality] == Unique # [Lifeleech] >= 7 && [Armorclassvsmissile] >= 40 // The Eye Of Etlitch Perfect +//[Type] == Amulet && [Quality] == Unique # [Lifeleech] >= 7 && [Armorclassvsmissile] >= 40 // The Eye Of Etlitch Perfect [Type] == Amulet && [Quality] == Unique # [Allres] >= 10 && [Enhanceddefense] >= 10 // The Mahim-Oak Curio [Type] == Amulet && [Quality] == Unique # [Allres] >= 15 && [Strength] >= 12 // Saracen's Chance -[Type] == Amulet && [Quality] == Unique # [Allres] == 25 && [Strength] >= 12 // Saracen's Chance Perfect +//[Type] == Amulet && [Quality] == Unique # [Allres] == 25 && [Strength] >= 12 // Saracen's Chance Perfect [Type] == Amulet && [Quality] == Unique # [Dexterity] >= 25 && [Ias] >= 20 // The Cat's Eye [Type] == Amulet && [Quality] == Unique # [Lifeleech] >= 3 && [Manaleech] >= 11 // Crescent Moon -[Type] == Amulet && [Quality] == Unique # [Lifeleech] == 6 && [Manaleech] == 15 // Crescent Moon Perfect +//[Type] == Amulet && [Quality] == Unique # [Lifeleech] == 6 && [Manaleech] == 15 // Crescent Moon Perfect [Type] == Amulet && [Quality] == Unique # [Fcr] >= 5 // Entropy Locket [Type] == Amulet && [Quality] == Unique # [Lightresist] >= 35 // Highlord's Wrath [Type] == Amulet && [Quality] == Unique # [Poisonresist] >= 75 // Atma's Scarab [Type] == Amulet && [Quality] == Unique # [Hpregen] >= 10 && [Fireskilltab] >= 2 // The Rising Sun [Type] == Amulet && [Quality] == Unique # [Itemallskills] == 2 && [Allresist] >= 20 // Mara's Kaleidoscope -[Type] == Amulet && [Quality] == Unique # [Itemallskills] == 2 && [Allresist] == 30 // Mara's Kaleidoscope Perfect +//[Type] == Amulet && [Quality] == Unique # [Itemallskills] == 2 && [Allresist] == 30 // Mara's Kaleidoscope Perfect [Type] == Amulet && [Quality] == Unique # [Defensiveaurasskilltab] >= 1 // Seraph's Hymn -[Type] == Amulet && [Quality] == Unique # [Defensiveaurasskilltab] == 2 && [Itemdemondamagepercent] == 50 && [Itemundeaddamagepercent] == 50 && [Itemdemontohit] == 250 && [Itemundeadtohit] == 250 // Seraph's Hymn Perfect +//[Type] == Amulet && [Quality] == Unique # [Defensiveaurasskilltab] == 2 && [Itemdemondamagepercent] == 50 && [Itemundeaddamagepercent] == 50 && [Itemdemontohit] == 250 && [Itemundeadtohit] == 250 // Seraph's Hymn Perfect [Type] == Amulet && [Quality] == Unique # [Coldresist] >= 35 && [Plusdefense] >= 300 && [Allres] >= 25 && [Tohit] >= 400 // Metalgrid -[Type] == Amulet && [Quality] == Unique # [Coldresist] == 45 && [Plusdefense] == 350 && [Allres] == 35 && [Tohit] == 450 // Metalgrid Perfect +//[Type] == Amulet && [Quality] == Unique # [Coldresist] == 45 && [Plusdefense] == 350 && [Allres] == 35 && [Tohit] == 450 // Metalgrid Perfect //------------------------------------------------ //================= Unique Jewels ================ //------------------------------------------------ -[Name] == Jewel && [Quality] == Unique # [Passivecoldmastery] + [Passivecoldpierce] >= 8 // Rainbow Facet Cold -[Name] == Jewel && [Quality] == Unique # [Passivefiremastery] + [Passivefirepierce] >= 8 // Rainbow Facet Fire -[Name] == Jewel && [Quality] == Unique # [Passiveltngmastery] + [Passiveltngpierce] >= 8 // Rainbow Facet Light -[Name] == Jewel && [Quality] == Unique # [Passivepoismastery] + [Passivepoispierce] >= 8 // Rainbow Facet Poison +[Name] == Jewel && [Quality] == Unique // Rainbow Facet Cold +//[Name] == Jewel && [Quality] == Unique # [Passivefiremastery] + [Passivefirepierce] >= 3 // Rainbow Facet Fire +//[Name] == Jewel && [Quality] == Unique # [Passiveltngmastery] + [Passiveltngpierce] >= 3 // Rainbow Facet Light +//[Name] == Jewel && [Quality] == Unique # [Passivepoismastery] + [Passivepoispierce] >= 3 // Rainbow Facet Poison //------------------------------------------------ //================= Unique Gloves ================ //------------------------------------------------ -[Name] == Heavygloves && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Bloodfist -[Name] == Heavygloves && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 20 // Bloodfist Perfect -[Name] == Chaingloves && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] >= 35 // Chance Guards -[Name] == Chaingloves && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] >= 40 && [Enhanceddefense] >= 30 // Chance Guards Perfect -[Name] == Lightgauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 20 // Magefist -[Name] == Lightgauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 30 // Magefist Perfect -[Name] == Gauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Frostburn -[Name] == Gauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 20 // Frostburn Perfect -[Name] == Vampirebonegloves && [Quality] == Unique && [Flag] != Ethereal # [Strength] == 10 // Dracul's Grasp -[Name] == Vampirebonegloves && [Quality] == Unique && [Flag] != Ethereal # [Strength] == 15 && [Lifeleech] >= 10 && [Enhanceddefense] >= 120 // Dracul's Grasp Perfect -[Name] == Ogregauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 30 && [Strength] >= 15 && [Plusdefense] >= 170 // Steelrend -[Name] == Ogregauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 60 && [Strength] >= 20 && [Plusdefense] >= 210 // Steelrend Perfect +[Name] == Heavygloves && [Quality] == Unique // Bloodfist +[Name] == Chaingloves && [Quality] == Unique // Chance Guards +[Name] == Lightgauntlets && [Quality] == Unique // Magefist +[Name] == Gauntlets && [Quality] == Unique // Frostburn +[Name] == Vampirebonegloves && [Quality] == Unique // Dracul's Grasp +[Name] == Ogregauntlets && [Quality] == Unique // Steelrend + +//[Name] == Chaingloves && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] >= 40 && [Enhanceddefense] >= 30 // Chance Guards Perfect +//[Name] == Lightgauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 30 // Magefist Perfect +//[Name] == Gauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 20 // Frostburn Perfect +//[Name] == Vampirebonegloves && [Quality] == Unique && [Flag] != Ethereal # [Strength] == 15 && [Lifeleech] >= 10 && [Enhanceddefense] >= 120 // Dracul's Grasp Perfect +//[Name] == Ogregauntlets && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 60 && [Strength] >= 20 && [Plusdefense] >= 210 // Steelrend Perfect +//[Name] == Heavygloves && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 20 // Bloodfist Perfect //----------------------------------------------- //================= Unique Belts ================ //----------------------------------------------- -[Name] == Heavybelt && [Quality] == Unique && [Flag] != Ethereal # [Itemgoldbonus] >= 50 // Goldwrap -[Name] == Heavybelt && [Quality] == Unique && [Flag] != Ethereal # [Itemgoldbonus] >= 80 && [Enhanceddefense] >= 60 // Goldwrap Perfect -[Name] == Demonhidesash && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 6 && [Damageresist] >= 14 && [Magicdamagereduction] >= 10 && [Enhanceddefense] >= 150 // String Of Ears -[Name] == Demonhidesash && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 8 && [Damageresist] >= 15 && [Magicdamagereduction] >= 15 && [Enhanceddefense] >= 180 // String Of Ears Perfect -[Name] == Sharkskinbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 && [Plusdefense] >= 15 // Razortail -[Name] == Sharkskinbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Plusdefense] >= 15 // Razortail Perfect -[Name] == Battlebelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 130 // Snowclash -[Name] == Battlebelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 170 // Snowclash Perfect -[Name] == Warbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 160 // Thundergod's Vigor -[Name] == Warbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 200 // Thundergod's Vigor Perfect -[Name] == Spiderwebsash && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 90 // Arachnid Mesh -[Name] == Spiderwebsash && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 // Arachnid Mesh Perfect -[Name] == Vampirefangbelt && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 5 && [Defense] >= 50 // Nosferatu's Coil -[Name] == Vampirefangbelt && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 7 && [Defense] >= 60 // Nosferatu's Coil Perfect -[Name] == Mithrilcoil && [Quality] == Unique && [Flag] != Ethereal # [Damageresist] >= 13 && [Enhanceddefense] >= 90 && [Hpregen] >= 10 // Verdungo's Hearty Cord -[Name] == Mithrilcoil && [Quality] == Unique && [Flag] != Ethereal # [Damageresist] >= 15 && [Enhanceddefense] >= 140 && [Hpregen] >= 13 // Verdungo's Hearty Cord Perfect -[Name] == Trollbelt && [Quality] == Unique && [Flag] != Ethereal //Gheed's Wager +[Name] == Heavybelt && [Quality] == Unique // Goldwrap +[Name] == Demonhidesash && [Quality] == Unique // String Of Ears +[Name] == Sharkskinbelt && [Quality] == Unique // Razortail +[Name] == Battlebelt && [Quality] == Unique // Snowclash +[Name] == Warbelt && [Quality] == Unique // Thundergod's Vigor +[Name] == Spiderwebsash && [Quality] == Unique // Arachnid Mesh +[Name] == Vampirefangbelt && [Quality] == Unique // Nosferatu's Coil +[Name] == Trollbelt && [Quality] == Unique // Gheed's Wager +[Name] == Mithrilcoil && [Quality] == Unique // Verdungo's Hearty Cord + +//[Name] == Heavybelt && [Quality] == Unique && [Flag] != Ethereal # [Itemgoldbonus] >= 80 && [Enhanceddefense] >= 60 // Goldwrap Perfect +//[Name] == Demonhidesash && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 8 && [Damageresist] >= 15 && [Magicdamagereduction] >= 15 && [Enhanceddefense] >= 180 // String Of Ears Perfect +//[Name] == Sharkskinbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Plusdefense] >= 15 // Razortail Perfect +//[Name] == Battlebelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 170 // Snowclash Perfect +//[Name] == Warbelt && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 200 // Thundergod's Vigor Perfect +//[Name] == Vampirefangbelt && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 7 && [Defense] >= 60 // Nosferatu's Coil Perfect +//[Name] == Mithrilcoil && [Quality] == Unique && [Flag] != Ethereal # [Damageresist] >= 15 && [Enhanceddefense] >= 140 && [Hpregen] >= 13 // Verdungo's Hearty Cord Perfect +//[Name] == Spiderwebsash && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 // Arachnid Mesh Perfect + //----------------------------------------------- //================= Unique Boots ================ //----------------------------------------------- -[Name] == Boots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 10 // Hotspurs -[Name] == Boots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 20 // Hotspurs Perfect -[Name] == Chainboots && [Quality] == Unique // Treads of Cthon -[Name] == Lightplatedboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 50 // Goblin Toes -[Name] == Lightplatedboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 60 // Goblin Toes Perfect -[Name] == Demonhideboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 && [Itemgoldbonus] >= 40 // Infernostride -[Name] == Demonhideboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 150 && [Itemgoldbonus] == 70 // Infernostride Perfect -[Name] == Sharkskinboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 180 // Waterwalk -[Name] == Sharkskinboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 210 // Waterwalk Perfect -[Name] == Meshboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 // Silkweave -[Name] == Meshboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 190 // Silkweave Perfect -[Name] == Battleboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Itemmagicbonus] >= 30 // War Traveler -[Name] == Battleboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 190 && [Itemmagicbonus] == 50 // War Traveler Perfect -[Name] == Warboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 160 // Gore Rider -[Name] == Warboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Gore Rider Perfect -[Name] == Scarabshellboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 140 && [Strength] >= 10 && [Vitality] >= 10 && [Poisonresist] >= 40 // Sandstorm Trek -[Name] == Scarabshellboots && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 140 && [Strength] >= 10 && [Vitality] >= 10 && [Poisonresist] >= 40 // Eth Sandstorm Trek +[Name] == Boots && [Quality] == Unique // Hotspurs +[Name] == Chainboots && [Quality] == Unique // Treads of Cthon +[Name] == Lightplatedboots && [Quality] == Unique // Goblin Toes +[Name] == Demonhideboots && [Quality] == Unique // Infernostride +[Name] == Sharkskinboots && [Quality] == Unique // Waterwalk +[Name] == Meshboots && [Quality] == Unique // Silkweave +[Name] == Battleboots && [Quality] == Unique // War Traveler +[Name] == Warboots && [Quality] == Unique // Gore Rider +[Name] == Scarabshellboots && [Quality] == Unique // Sandstorm Trek +[Name] == Boneweaveboots && [Quality] == Unique // Marrowwalk +[Name] == Myrmidongreaves && [Quality] == Unique // Shadow Dancer + +//[Name] == Warboots && [Quality] == Unique // Gore Rider Perfect +//[Name] == Boots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 20 // Hotspurs Perfect +//[Name] == Lightplatedboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 60 // Goblin Toes Perfect +//[Name] == Demonhideboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 150 && [Itemgoldbonus] == 70 // Infernostride Perfect +//[Name] == Sharkskinboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 210 // Waterwalk Perfect +//[Name] == Meshboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 190 // Silkweave Perfect +//[Name] == Battleboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 190 && [Itemmagicbonus] == 50 // War Traveler Perfect //[Name] == Scarabshellboots && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 170 && [Strength] == 15 && [Vitality] == 15 && [Poisonresist] == 70 // Eth Sandstorm Trek Perfect -[Name] == Boneweaveboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 170 && [Strength] >= 10 && [Skillskeletonmastery] >= 1 // Marrowwalk +//[Name] == Scarabshellboots && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 140 && [Strength] >= 10 && [Vitality] >= 10 && [Poisonresist] >= 40 // Eth Sandstorm Trek //[Name] == Boneweaveboots && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 && [Strength] == 20 && [Skillskeletonmastery] == 2 // Marrowwalk Perfect -[Name] == Myrmidongreaves && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 70 && [Shadowdisciplinesskilltab] >= 2 && [Dexterity] >= 20 // Shadow Dancer //[Name] == Myrmidongreaves && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 100 && [Shadowdisciplinesskilltab] == 2 && [Dexterity] == 25 // Shadow Dancer Perfect //------------------------------------------------- //================= Unique Helmets ================ //------------------------------------------------- -[Name] == Skullcap && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] >= 25 // Tarnhelm -[Name] == Skullcap && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] == 30 // Tarnhelm Perfect -[Name] == Warhat && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 100 // Peasant Crown -[Name] == Sallet && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 160 && [Coldresist]+[Lightresist]+[Fireresist] >= 60 // Rockstopper -[Name] == Sallet && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 160 && [Coldresist]+[Lightresist]+[Fireresist] >= 60 // Eth Rockstopper -[Name] == Sallet && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 220 && [Coldresist]+[Lightresist]+[Fireresist] == 130 // Eth Rockstopper Perfect -[Name] == Wingedhelm && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Amazonskills] >= 1 // Valkyrie Wing -[Name] == Wingedhelm && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 && [Amazonskills] == 2 // Valkyrie Wing Perfect -[Name] == Grandcrown && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 160 && [Lifeleech] >= 9 && [Itemgoldbonus] >= 80 // Crown Of Thieves -[Name] == Grandcrown && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 && [Lifeleech] >= 9 && [Itemgoldbonus] >= 80 // Eth Crown Of Thieves -[Name] == Grandcrown && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 && [Lifeleech] == 12 && [Itemgoldbonus] == 100 // Eth Crown Of Thieves Perfect -[Name] == Grimhelm && [Quality] == Unique && [Flag] != Ethereal # [Lifeleech] >= 6 && [Manaleech] >= 6 && [Magicdamagereduction] >= 10 && [Damageresist] >= 15 // Vampire Gaze -[Name] == Grimhelm && [Quality] == Unique && [Flag] == Ethereal # [Lifeleech] >= 6 && [Manaleech] >= 6 && [Magicdamagereduction] >= 10 && [Damageresist] >= 15 // Eth Vampire Gaze +[Name] == Skullcap && [Quality] == Unique // Tarnhelm +[Name] == Warhat && [Quality] == Unique // Peasant Crown +[Name] == Sallet && [Quality] == Unique // Rockstopper +[Name] == Wingedhelm && [Quality] == Unique // Valkyrie Wing +[Name] == Grandcrown && [Quality] == Unique // Crown Of Thieves +[Name] == Grimhelm && [Quality] == Unique // Vampire Gaze +[Name] == Shako && [Quality] == Unique // Harlequin Crest Shako +[Name] == Spiredhelm && [Quality] == Unique // Nightwing's Veil +[Name] == Demonhead && [Quality] == Unique // Andariel's Visage +[Name] == Corona && [Quality] == Unique // Crown Of Ages +[Name] == Bonevisage && [Quality] == Unique // Giant Skull +[Name] == Diadem && [Quality] == Unique // Griffon's Eye +[Name] == Armet && [Quality] == Unique // Steel Shade +[Name] == Tiara && [Quality] == Unique // Kira's Guardian +[Name] == Spiredhelm && [Quality] == Unique // Veil Of Steel + +//[Name] == Skullcap && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] == 30 // Tarnhelm Perfect +//[Name] == Wingedhelm && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 && [Amazonskills] == 2 // Valkyrie Wing Perfect +//[Name] == Sallet && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 160 && [Coldresist]+[Lightresist]+[Fireresist] >= 60 // Eth Rockstopper +//[Name] == Sallet && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 220 && [Coldresist]+[Lightresist]+[Fireresist] == 130 // Eth Rockstopper Perfect +//[Name] == Grandcrown && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 && [Lifeleech] >= 9 && [Itemgoldbonus] >= 80 // Eth Crown Of Thieves +//[Name] == Grandcrown && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 && [Lifeleech] == 12 && [Itemgoldbonus] == 100 // Eth Crown Of Thieves Perfect +//[Name] == Grimhelm && [Quality] == Unique && [Flag] == Ethereal # [Lifeleech] >= 6 && [Manaleech] >= 6 && [Magicdamagereduction] >= 10 && [Damageresist] >= 15 // Eth Vampire Gaze //[Name] == Grimhelm && [Quality] == Unique && [Flag] == Ethereal # [Lifeleech] == 8 && [Manaleech] == 8 && [Magicdamagereduction] == 15 && [Damageresist] == 20 // Eth Vampire Gaze Perfect -[Name] == Shako && [Quality] == Unique && [Flag] != Ethereal # [Defense] >= 98 // Harlequin Crest Shako //[Name] == Shako && [Quality] == Unique && [Flag] != Ethereal # [Defense] >= 141 // Harlequin Crest Shako Perfect -//[Name] == Armet && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 100 && [Manaleech] >= 4 // Steel Shade -//[Name] == Spiredhelm && [Quality] == Unique && [Flag] != Ethereal # [Allres] >= 50 // Veil Of Steel -[Name] == Spiredhelm && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 90 && [Dexterity] >= 10 && [Itemabsorbcold] >= 5 && [Passivecoldmastery] >= 8 // Nightwing's Veil //[Name] == Spiredhelm && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 120 && [Dexterity] == 20 && [Itemabsorbcold] == 9 && [Passivecoldmastery] == 15 // Nightwing's Veil Perfect -[Name] == Demonhead && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 100 && [Lifeleech] >= 8 && [Strength] >= 25 // Andariel's Visage -[Name] == Demonhead && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 100 && [Lifeleech] >= 8 && [Strength] >= 25 // Eth Andariel's Visage +//[Name] == Demonhead && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 100 && [Lifeleech] >= 8 && [Strength] >= 25 // Eth Andariel's Visage //[Name] == Demonhead && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 150 && [Lifeleech] == 10 && [Strength] == 30 // Eth Andariel's Visage Perfect -[Name] == Corona && [Quality] == Unique && [Flag] != Ethereal # [Plusdefense] >= 100 && [DamageResist] >= 10 && [Allres] >= 20 && [Sockets] >= 1 // Crown Of Ages //[Name] == Corona && [Quality] == Unique && [Flag] != Ethereal # [Plusdefense] == 150 && [DamageResist] == 15 && [Allres] == 30 && [Sockets] == 2 // Crown Of Ages Perfect -//[Name] == Bonevisage && [Quality] == Unique && [Flag] != Ethereal # [Plusdefense] >= 250 && [Strength] >= 25 && [Sockets] >= 1 // Giant Skull //[Name] == Bonevisage && [Quality] == Unique && [Flag] != Ethereal # [Plusdefense] == 320 && [Strength] == 35 && [Sockets] == 2 // Giant Skull Perfect -[Name] == Bonevisage && [Quality] == Unique && [Flag] == Ethereal # [Plusdefense] == 320 && [Strength] == 35 && [Sockets] == 2 // Eth Giant Skull Perfect -[Name] == Diadem && [Quality] == Unique && [Flag] != Ethereal // Griffon's Eye +//[Name] == Bonevisage && [Quality] == Unique && [Flag] == Ethereal # [Plusdefense] == 320 && [Strength] == 35 && [Sockets] == 2 // Eth Giant Skull Perfect //[Name] == Diadem && [Quality] == Unique && [Flag] != Ethereal # [Passiveltngpierce] >= 20 && [Passiveltngmastery] >= 15 // Griffon's Eye Perfect -//[Name] == Tiara && [Quality] == Unique && [Flag] != Ethereal # [Allres] >= 50 // Kira's Guardian //[Name] == Tiara && [Quality] == Unique && [Flag] != Ethereal # [Allres] == 70 // Kira's Guardian Perfect //[Name] == Tiara && [Quality] == Unique && [Flag] == Ethereal # [Allres] == 70 // Eth Kira's Guardian Perfect @@ -1476,74 +1584,75 @@ //================= Unique Armor ================ //----------------------------------------------- -[Name] == Studdedleather && [Quality] == Unique && [Flag] != Ethereal # [Dexterity] == 10 // Twitchthroe -[Name] == Studdedleather && [Quality] == Unique && [Flag] != Ethereal # [Defense] == 60 // Twitchthroe Perfect -[Name] == Ghostarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] >= 7 // The Spirit Shroud -[Name] == Ghostarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] == 11 // The Spirit Shroud Perfect -[Name] == Serpentskinarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] >= 9 && [Allres] >= 20 // Skin Of The Vipermagi -[Name] == Serpentskinarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] == 13 && [Allres] == 35 // Skin Of The Vipermagi Perfect -[Name] == Cuirass && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 160 // Duriel's Shell -[Name] == Cuirass && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 // Eth Duriel's Shell -[Name] == Cuirass && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Duriel's Shell Perfect -[Name] == Cuirass && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Duriel's Shell Perfect -[Name] == Mesharmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 180 // Shaftstop -[Name] == Mesharmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 180 // Eth Shaftstop -[Name] == Mesharmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 220 // Shaftstop Perfect -[Name] == Mesharmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 220 // Eth Shaftstop Perfect -[Name] == Russetarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 160 // Skullder's Ire -[Name] == Russetarmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 // Eth Skullder's Ire -[Name] == Russetarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Skullder's Ire Perfect -[Name] == Russetarmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Skullder's Ire Perfect -[Name] == Mageplate && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 140 && [Magicdamagereduction] >= 6 // Que-Hegan's Wisdom -[Name] == Mageplate && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 160 && [Magicdamagereduction] == 10 // Que-Hegan's Wisdom Perfect -[Name] == Templarcoat && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 180 // Guardian Angel -[Name] == Templarcoat && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 180 // Eth Guardian Angel -[Name] == Templarcoat && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Guardian Angel Perfect -[Name] == Templarcoat && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Guardian Angel Perfect -[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passiveltngmastery] >= 15 && ([Skilllightning] >= 3 || [Skillnova] >= 3 || [Skillenergyshield] >= 3) // Light Ormus' Robes -[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passivecoldmastery] >= 15 && [Skillblizzard] >= 3 || [Skilliceblast] >= 3 // Cold Ormus' Robes -[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passivefiremastery] >= 15 && ([Skillfireball] >= 3 || [Skillhydra] >= 3 || [Skillmeteor] >= 3) // Fire Ormus' Robes -[Name] == Duskshroud && [Quality] == Unique # [Skillenchant] >= 3 //Enchant Ormus' Robes - -[Name] == Wirefleece && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Normaldamagereduction] >= 15 && [Magicdamagereduction] >= 15 // The Gladiator's Bane -[Name] == Wirefleece && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 && [Normaldamagereduction] >= 15 && [Magicdamagereduction] >= 15 // Eth The Gladiator's Bane -[Name] == Wirefleece && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 180 && [Normaldamagereduction] == 20 && [Magicdamagereduction] == 20 // The Gladiator's Bane Perfect -[Name] == Wirefleece && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 180 && [Normaldamagereduction] == 20 && [Magicdamagereduction] == 20 // Eth The Gladiator's Bane Perfect -[Name] == Balrogskin && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Normaldamagereduction] >= 10 // Arkaine's Valor -[Name] == Balrogskin && [Quality] == Unique && [Flag] != Ethereal # [Itemallskills] == 2 && [Enhanceddefense] == 180 && [Normaldamagereduction] == 15 // Arkaine's Valor Perfect -[Name] == Krakenshell && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 170 && [Plusdefense] >= 100 && [Strength] >= 40 // Leviathan -[Name] == Krakenshell && [Quality] == Unique && [Flag] != Ethereal # [DamageResist] == 25 && [Enhanceddefense] == 200 && [Plusdefense] == 150 && [Strength] == 50 // Leviathan Perfect -[Name] == Sacredarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 && [Strength] >= 20 && [Allres] >= 20 // Tyrael's Might -[Name] == Sacredarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 150 && [Strength] == 30 && [Allres] == 30 && [Itemdemondamagepercent] == 100 // Tyrael's Might Perfect +[Name] == Studdedleather && [Quality] == Unique // Twitchthroe +[Name] == Ghostarmor && [Quality] == Unique // The Spirit Shroud +[Name] == Serpentskinarmor && [Quality] == Unique // Skin Of The Vipermagi +[Name] == Cuirass && [Quality] == Unique // Duriel's Shell +[Name] == Mesharmor && [Quality] == Unique // Shaftstop +[Name] == Russetarmor && [Quality] == Unique // Skullder's Ire +[Name] == Mageplate && [Quality] == Unique // Que-Hegan's Wisdom +[Name] == Templarcoat && [Quality] == Unique // Guardian Angel +[Name] == Duskshroud && [Quality] == Unique // Ormus' Robes +[Name] == Wirefleece && [Quality] == Unique // The Gladiator's Bane +[Name] == Balrogskin && [Quality] == Unique // Arkaine's Valor +[Name] == Krakenshell && [Quality] == Unique // Leviathan +[Name] == Sacredarmor && [Quality] == Unique // Tyrael's Might +//[Name] == Studdedleather && [Quality] == Unique && [Flag] != Ethereal # [Defense] == 60 // Twitchthroe Perfect +//[Name] == Sacredarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 150 && [Strength] == 30 && [Allres] == 30 && [Itemdemondamagepercent] == 100 // Tyrael's Might Perfect +//[Name] == Krakenshell && [Quality] == Unique && [Flag] != Ethereal # [DamageResist] == 25 && [Enhanceddefense] == 200 && [Plusdefense] == 150 && [Strength] == 50 // Leviathan Perfect +//[Name] == Balrogskin && [Quality] == Unique && [Flag] != Ethereal # [Itemallskills] == 2 && [Enhanceddefense] == 180 && [Normaldamagereduction] == 15 // Arkaine's Valor Perfect +//[Name] == Wirefleece && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 180 && [Normaldamagereduction] == 20 && [Magicdamagereduction] == 20 // The Gladiator's Bane Perfect +//[Name] == Wirefleece && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 180 && [Normaldamagereduction] == 20 && [Magicdamagereduction] == 20 // Eth The Gladiator's Bane Perfect +//[Name] == Wirefleece && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 && [Normaldamagereduction] >= 15 && [Magicdamagereduction] >= 15 // Eth The Gladiator's Bane +//[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passivecoldmastery] >= 15 && [Skillblizzard] >= 3 || [Skilliceblast] >= 3 // Cold Ormus' Robes +//[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passivefiremastery] >= 15 && ([Skillfireball] >= 3 || [Skillhydra] >= 3 || [Skillmeteor] >= 3) // Fire Ormus' Robes +//[Name] == Templarcoat && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 180 // Eth Guardian Angel +//[Name] == Templarcoat && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Guardian Angel Perfect +//[Name] == Templarcoat && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Guardian Angel Perfect +//[Name] == Duskshroud && [Quality] == Unique && [Flag] != Ethereal # [Passiveltngmastery] >= 15 && ([Skilllightning] >= 3 || [Skillnova] >= 3 || [Skillenergyshield] >= 3) // Light Ormus' Robes +//[Name] == Mageplate && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 160 && [Magicdamagereduction] == 10 // Que-Hegan's Wisdom Perfect +//[Name] == Russetarmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 // Eth Skullder's Ire +//[Name] == Russetarmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Skullder's Ire Perfect +//[Name] == Russetarmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Skullder's Ire Perfect +//[Name] == Mesharmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 180 // Eth Shaftstop +//[Name] == Mesharmor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 220 // Shaftstop Perfect +//[Name] == Mesharmor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 220 // Eth Shaftstop Perfect +//[Name] == Cuirass && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 160 // Eth Duriel's Shell +//[Name] == Cuirass && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 200 // Duriel's Shell Perfect +//[Name] == Cuirass && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Duriel's Shell Perfect +//[Name] == Serpentskinarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] == 13 && [Allres] == 35 // Skin Of The Vipermagi Perfect +//[Name] == Ghostarmor && [Quality] == Unique && [Flag] != Ethereal # [Magicdamagereduction] == 11 // The Spirit Shroud Perfect //------------------------------------------------- //================= Unique Shields ================ //------------------------------------------------- -[Name] == Buckler && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 30 // Pelta Lunata -[Name] == Buckler && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 40 // Pelta Lunata Perfect -[Name] == Towershield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 80 // Bverrit Keep -[Name] == Towershield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 120 // Bverrit Keep Perfect -[Name] == Roundshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 180 // Moser's Blessed Circle -[Name] == Roundshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 220 // Moser's Blessed Circle Perfect -[Name] == Pavise && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 180 && [Allres] >= 20 // Gerke's Sanctuary -[Name] == Pavise && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 240 && [Allres] == 30 // Gerke's Sanctuary Perfect -[Name] == Grimshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 80 && [Manarecovery] >= 3 // Lidless Wall -[Name] == Grimshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 130 && [Manarecovery] == 5 // Lidless Wall Perfect -[Name] == Monarch && [Quality] == Unique && [Flag] != Ethereal # [DamageResist] >= 35 // Stormshield -[Name] == Monarch && [Quality] == Unique && [Flag] != Ethereal # [Defense] == 148 // Stormshield Perfect -[Name] == Aegis && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Lifeleech] >= 5 && [Coldresist] >= 40 // Medusa's Gaze -[Name] == Aegis && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 180 && [Lifeleech] == 9 && [Coldresist] == 80 // Medusa's Gaze Perfect +[Name] == Buckler && [Quality] == Unique // Pelta Lunata +[Name] == Towershield && [Quality] == Unique // Bverrit Keep +[Name] == Roundshield && [Quality] == Unique // Moser's Blessed Circle +[Name] == Pavise && [Quality] == Unique // Gerke's Sanctuary +[Name] == Grimshield && [Quality] == Unique // Lidless Wall +[Name] == Monarch && [Quality] == Unique // Stormshield +[Name] == Aegis && [Quality] == Unique // Medusa's Gaze + + +//[Name] == Buckler && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 40 // Pelta Lunata Perfect +//[Name] == Towershield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 120 // Bverrit Keep Perfect +//[Name] == Roundshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 220 // Moser's Blessed Circle Perfect +//[Name] == Pavise && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 240 && [Allres] == 30 // Gerke's Sanctuary Perfect +//[Name] == Grimshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 130 && [Manarecovery] == 5 // Lidless Wall Perfect +//[Name] == Aegis && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] == 180 && [Lifeleech] == 9 && [Coldresist] == 80 // Medusa's Gaze Perfect +//[Name] == Monarch && [Quality] == Unique && [Flag] != Ethereal # [Defense] == 148 // Stormshield Perfect //------------------------------------------------- //================= Unique Daggers ================ //------------------------------------------------- -[Name] == Boneknife && [Quality] == Unique && [Flag] != Ethereal # [Allres] == 75 // Wizardspike -[Name] == Dagger && [Quality] == Unique && [Flag] != Ethereal # [Itemmagicbonus] == 100 // Gull -//[Name] == Blade && [Quality] == Unique && [Flag] != Ethereal # [Fcr] == 50 && [Allres] == 10 // Spectral Shard -//[Name] == Rondel && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 190 // Heart Carver +[Name] == Boneknife && [Quality] == Unique // Wizardspike +[Name] == Dagger && [Quality] == Unique // Gull +[Name] == Blade && [Quality] == Unique // Spectral Shard +[Name] == Rondel && [Quality] == Unique // Heart Carver //[Idname] == Fleshripper // Fleshripper //------------------------------------------------ @@ -1560,7 +1669,7 @@ //[Idname] == Ginthersrift // Ginther's Rift //[Name] == Battlesword && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 150 // Headstriker [Name] == Battlesword && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 150 // Eth Headstriker -//[Name] == Phaseblade && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 150 && [Manaleech] >= 5 // Lightsabre +[Name] == Phaseblade && [Quality] == Unique // Lightsabre or Azurewrath //[Name] == Phaseblade && [Quality] == Unique && [Flag] != Ethereal # [Ias] == 30 && [Enhanceddamage] >= 230 // Azurewrath //[Idname] == Doombringer // Doombringer [Idname] == Thegrandfather // The Grandfather @@ -1574,14 +1683,14 @@ //[Idname] == Runemaster // Rune Master //[Idname] == Spellsteel // Spellsteel //[Idname] == Islestrike // Islestrike -[Idname] == Razorsedge // Razor's Edge +//[Idname] == Razorsedge // Razor's Edge //[Idname] == Cranebeak // Cranebeak //---------------------------------------------------------- //================= Unique Bows & Crossbows ================ //---------------------------------------------------------- -[Name] == Hydrabow && [Quality] == Unique && [Flag] != Ethereal # [Manaleech] >= 6 // Windforce +[Name] == Hydrabow && [Quality] == Unique // Windforce //[Name] == Hydrabow && [Quality] == Unique && [Flag] != Ethereal # [Manaleech] == 8 // Windforce Perfect //[Name] == Ballista && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 150 && [Plusdefense] >= 75 // Buriza-Do Kyanon //[Idname] == Kukoshakaku // Kuko Shakaku @@ -1596,28 +1705,32 @@ //[Idname] == Bonesnap // Bonesnap //[Idname] == Steeldriver // Steeldriver //[Idname] == Nordstenderizer // Nord's Tenderizer -[Name] == Scourge && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 240 && [Itemabsorblight] >= 3 // Stormlash +//[Name] == Scourge && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 240 && [Itemabsorblight] >= 3 // Stormlash //[Name] == Marteldefer && [Quality] == Unique # [Enhanceddamage] >= 130 // The Gavel Of Pain (Wc Gf Barb Offhand) //[Idname] == Tyrantclub // Demon Limb //[Idname] == Fleshrender // Fleshrender //[Idname] == Baranarsstar // Baranar's Star //[Idname] == Thegeneralstandoliga // The General's Tan Do Li Ga -//[Idname] == Shaefershammer // Schaefer's Hammer +[Idname] == Shaefershammer // Schaefer's Hammer //-------------------------------------------------- //================= Unique Polearms ================ //-------------------------------------------------- -[Name] == Ogreaxe && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 270 // Bonehew -[Name] == Ogreaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 270 // Eth Bonehew -[Name] == Ogreaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 320 // Eth Bonehew Perfect -[Name] == Thresher && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 190 // The Reaper's Toll -[Name] == Thresher && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 190 // Eth The Reaper's Toll +[Name] == Ogreaxe && [Quality] == Unique // Bonehew +[Name] == Thresher && [Quality] == Unique // The Reaper's Toll +[Name] == Crypticaxe && [Quality] == Unique // Tomb Reaver + +//[Name] == Ogreaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 270 // Eth Bonehew +//[Name] == Ogreaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 320 // Eth Bonehew Perfect +//[Name] == Thresher && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 190 // Eth The Reaper's Toll //[Name] == Thresher && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 240 && [Lifeleech] == 15 // Eth The Reaper's Toll Perfect -//[Name] == Crypticaxe && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 200 && [Sockets] >= 1 // Tomb Reaver -[Name] == Crypticaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 && [Sockets] >= 1 // Eth Tomb Reaver +//[Name] == Crypticaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 && [Sockets] >= 1 // Eth Tomb Reaver //[Name] == Crypticaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 280 && [Sockets] == 3 && [Hpregen] == 14 && [Allres] == 50 // Eth Tomb Reaver Perfect + + + //-------------------------------------------------- //================= Unique Scepters ================ //-------------------------------------------------- @@ -1627,15 +1740,15 @@ //[Idname] == Heavenslight // Heaven's Light //[Idname] == Knellstriker // Knell Striker //[Idname] == Zakarumshand // Zakarum's Hand -//[Idname] == Handofblessedlight // Hand Of Blessed Light -//[Idname] == Theredeemer // The Redeemer +//[Idname] == Handofblessedligh // Hand Of Blessed Light +//[Idname] == Theredeemer // The Redeemer //------------------------------------------------ //================= Unique Spears ================ //------------------------------------------------ //[Name] == Hyperionspear && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 180 && [Itemaddskilltab] >= 2 // Arioc's Needle -[Name] == Hyperionspear && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 180 && [Itemaddskilltab] >= 2 // Eth Arioc's Needle Sundan +[Name] == Hyperionspear && [Quality] == Unique // Arioc's Needle Sundan //[Name] == Hyperionspear && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 230 && [Itemaddskilltab] == 4 // Eth Arioc's Needle Sundan Perfect //[Name] == Yari && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 160 // Hone Sundan //[Name] == Yari && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 160 // Eth Hone Sundan @@ -1648,35 +1761,35 @@ //[Name] == Quarterstaff && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddamage] >= 200 // Ribcracker //[Name] == Quarterstaff && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 // Eth Ribcracker -[Name] == Quarterstaff && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] == 300 // Eth Ribcracker Perfect -//[Name] == Elderstaff && [Quality] == Unique # [Itemaddskilltab] >= 2 // Ondal's Wisdom (Eth/Non-Eth) -[Name] == Elderstaff && [Quality] == Unique # [Itemaddskilltab] == 4 && [Magicdamagereduction] == 8 && [Energy] == 50 && [Plusdefense] == 550 // Ondal's Wisdom (Eth/Non-Eth) Perfect -[Name] == Archonstaff && [Quality] == Unique // Mang Song's Lesson +[Name] == Quarterstaff && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 // Eth Ribcracker Perfect +[Name] == Elderstaff && [Quality] == Unique # [Itemaddskilltab] >= 2 // Ondal's Wisdom (Eth/Non-Eth) +//[Name] == Elderstaff && [Quality] == Unique # [Itemaddskilltab] == 4 && [Magicdamagereduction] == 8 && [Energy] == 50 && [Plusdefense] == 550 // Ondal's Wisdom (Eth/Non-Eth) Perfect +[Name] == Archonstaff && [Quality] == Unique // Mang Song's Lesson //---------------------------------------------------------- //================= Unique Throwing Weapons ================ //---------------------------------------------------------- //[Idname] == Deathbit // Deathbit -[Name] == Battledart && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 180 && [Lifeleech] >= 9 && [Manaleech] >= 6 && [Tohit] >= 450 // Eth Deathbit Perfect +//[Name] == Battledart && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 180 && [Lifeleech] >= 9 && [Manaleech] >= 6 && [Tohit] >= 450 // Eth Deathbit Perfect //[Idname] == Thescalper // The Scalper -[Name] == Francisca && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 && [Lifeleech] >= 6 // Eth The Scalper Perfect +//[Name] == Francisca && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 && [Lifeleech] >= 6 // Eth The Scalper Perfect //[Idname] == Warshrike // Warshrike -[Name] == Wingedknife && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 // Eth Warshrike +//[Name] == Wingedknife && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 200 // Eth Warshrike //[Idname] == Gimmershred // Gimmershred //[Idname] == Lacerator // Lacerator -[Name] == Wingedaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 210 // Eth Lacerator Perfect +//[Name] == Wingedaxe && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 210 // Eth Lacerator Perfect //----------------------------------------------- //================= Unique Wands ================ //----------------------------------------------- -//[Idname] == Umeslament // Ume's Lament +[Idname] == Umeslament // Ume's Lament //[Idname] == Suicidebranch // Suicide Branch //[Idname] == Carinshard // Carin Shard -//[Idname] == Armofkingleoric // Arm Of King Leoric -[Name] == Unearthedwand && [Quality] == Unique && [Flag] != Ethereal # [Poisonandboneskilltab] >= 1 && [Passivepoispierce] >= 40 // Death's Web -[Name] == Unearthedwand && [Quality] == Unique && [Flag] == Ethereal # [Poisonandboneskilltab] >= 1 && [Passivepoispierce] >= 40 // Eth Death's Web +[Idname] == Armofkingleoric // Arm Of King Leoric +[Name] == Unearthedwand && [Quality] == Unique // Death's Web +//[Name] == Unearthedwand && [Quality] == Unique && [Flag] == Ethereal # [Poisonandboneskilltab] >= 1 && [Passivepoispierce] >= 40 // Eth Death's Web //[Name] == Unearthedwand && [Quality] == Unique && [Flag] == Ethereal # [Poisonandboneskilltab] == 2 && [Passivepoispierce] == 50 && [Manarecovery] == 12 && [Hpregen] == 12 // Eth Death's Web Perfect //--------------------------------------------------------- @@ -1686,10 +1799,9 @@ //[Idname] == Lycandersflank // Lycander's Flank //[Idname] == Lycandersaim // Lycander's Aim //[Name] == Ceremonialbow && [Quality] == Unique # [Enhanceddamage] >= 190 && [Manaleech] >= 8 // Lycander's Aim Perfect -[Idname] == Titansrevenge // Titan's Revenge -[Name] == Ceremonialjavelin && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddamage] >= 150 && [Lifeleech] >= 6 // Eth Titan's Revenge -[Idname] == Thunderstroke // Thunderstroke -[Name] == Matriarchaljavelin && [Quality] == Unique && [Flag] != Ethereal # [Javelinandspearskilltab] >= 4 && [Enhanceddamage] >= 200 // Thunderstroke Perfect +[Name] == Ceremonialjavelin && [Quality] == Unique // Titan's Revenge +//[Idname] == Thunderstroke // Thunderstroke +//[Name] == Matriarchaljavelin && [Quality] == Unique && [Flag] != Ethereal # [Javelinandspearskilltab] >= 4 && [Enhanceddamage] >= 200 // Thunderstroke Perfect //----------------------------------------------------------- //================= Unique Assassin Specific ================ @@ -1706,7 +1818,7 @@ //================= Unique Necromancer Specific ================ //-------------------------------------------------------------- -//[Name] == Hierophanttrophy && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 // Homunculus +[Name] == Hierophanttrophy && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 // Homunculus //[Name] == Succubusskull && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 && [Necromancerskills] >= 1 && [Allresist] >= 20 // Boneflame //[Name] == Bloodlordskull && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 140 && [Necromancersummoningskilltab] >= 1 && [Poisonandboneskilltab] >= 1 && [Cursesskilltab] >= 1 // Darkforce Spawn @@ -1714,8 +1826,8 @@ //================= Unique Barbarian Specific ================ //------------------------------------------------------------ -[Name] == Slayerguard && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Lifeleech] >= 3 // Arreat's Face -[Name] == Slayerguard && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 && [Lifeleech] >= 3 // Eth Arreat's Face +[Name] == Slayerguard && [Quality] == Unique // Arreat's Face +//[Name] == Slayerguard && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 && [Lifeleech] >= 3 // Eth Arreat's Face //[Name] == Slayerguard && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 && [Lifeleech] == 6 // Eth Arreat's Face Perfect //[Name] == Furyvisor && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 120 && [Warcriesskilltab] >= 2 && [Skillferalrage] >= 3 && [Skilllycanthropy] >= 3 && [Skillwerewolf] >= 3 && [Strength] >= 8 && [Dexterity] >= 8 && [Vitality] >= 8 // Wolfhowl //[Name] == Furyvisor && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 120 && [Warcriesskilltab] >= 2 && [Skillferalrage] >= 3 && [Skilllycanthropy] >= 3 && [Skillwerewolf] >= 3 && [Strength] >= 8 && [Dexterity] >= 8 && [Vitality] >= 8 // Eth Wolfhowl @@ -1729,11 +1841,12 @@ //================= Unique Sorceress Orbs ================ //-------------------------------------------------------- -[Name] == Eldritchorb && [Quality] == Unique # [Sorceressskills] >= 2 && [Passivefiremastery] >= 10 && [Passiveltngmastery] >= 10 // Eschuta's Temper +[Name] == Eldritchorb && [Quality] == Unique // Eschuta's Temper +[Name] == Dimensionalshard && [Quality] == Unique // Death's Fathom +[Name] == Swirlingcrystal && [Quality] == Unique // The Oculus + //[Name] == Eldritchorb && [Quality] == Unique # [Sorceressskills] == 3 && [Passivefiremastery] == 20 && [Passiveltngmastery] == 20 && [Energy] == 30 // Eschuta's Temper Perfect -[Name] == Dimensionalshard && [Quality] == Unique # [Passivecoldmastery] >= 15 && [Lightresist] >= 25 // Death's Fathom //[Name] == Dimensionalshard && [Quality] == Unique # [Passivecoldmastery] == 30 && [Lightresist] == 40 // Death's Fathom Perfect -[Name] == Swirlingcrystal && [Quality] == Unique # [Sorceressskills] >= 3 // The Oculus //----------------------------------------------------- //================= Unique Druid Pelts ================ @@ -1752,9 +1865,9 @@ //--------------------------------------------------------- //[Name] == Sacredrondache && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 && [Enhanceddamage] >= 60 && [Paladinskills] >= 2 && [Itemtohitpercent] >= 60 && [Magicdamagereduction] >= 6 // Alma Negra -[Name] == Gildedshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 150 // Herald Of Zakarum +[Name] == Gildedshield && [Quality] == Unique // Herald Of Zakarum //[Name] == Gildedshield && [Quality] == Unique && [Flag] != Ethereal # [Enhanceddefense] >= 200 // Herald Of Zakarum Perfect -[Name] == Gildedshield && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 // Eth Herald Of Zakarum +//[Name] == Gildedshield && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] >= 150 // Eth Herald Of Zakarum //[Name] == Gildedshield && [Quality] == Unique && [Flag] == Ethereal # [Enhanceddefense] == 200 // Eth Herald Of Zakarum Perfect //[Name] == Zakarumshield && [Quality] == Unique # [Enhanceddefense] >= 150 && [Itemabsorbfirepercent] >= 15 && [Strength] >= 20 // Dragonscale diff --git a/config/game.ini b/config/game.ini index 6f668c4..b6bde8b 100644 --- a/config/game.ini +++ b/config/game.ini @@ -100,8 +100,7 @@ mana_slice=961,610,7,101 cut_skill_bar=0,0,1280,653 reduce_to_center=120,60,1040,540 search_npcs=120,0,1040,620 -merc_icon=5,5,60,60 -merc_panel=0,0,450,100 +merc_icon=10,9,56,56 loading_left_black=0,0,350,720 death=444,198,397,71 tp_search=353,120,547,400 diff --git a/config/params.ini b/config/params.ini index bdd12be..a55e634 100644 --- a/config/params.ini +++ b/config/params.ini @@ -8,19 +8,9 @@ ; bnet_pass=${BOTTY_BNET_PASS} ; char_name=${BOTTY_CHAR_NAME} ; difficulty: game difficulty to create ("normal", "nightmare", "hell") -; -; Hammerdin difficulty guide (CTA build with Conviction aura): -; NORMAL - Very easy. 1-2h Hammer kills most packs. No CTA needed. -; NIGHTMARE - Recommended starting point. Bosses hit ~100-200 dmg. -; CTA + Conviction drops resists. Need decent armor (ED/HR). -; Gear targets: ~200 AR, ~15 ED, ~30% HR, ~50% FCR on hammer. -; HELL - Bosses hit 400-800+ dmg per swing. Conviction is mandatory. -; Gear targets: ~350+ AR, ~20+ ED, ~50%+ HR, ~60%+ FCR, -; ~150% IAS on weapon. Full Rejuv belt recommended. -; If you chicken/die repeatedly, drop to Nightmare first. -difficulty=nightmare +difficulty=hell ; name: bot profile name used in logs/messages and mod launch option replacement -name=fistman +name=fiskenersej ; randomize_runs: 0 = run in listed order, 1 = shuffle run order randomize_runs=0 ; target_tz: target Terror Zone id (leave as default unless you know the mapping) @@ -32,7 +22,7 @@ level_max_steps=20 ; Set to 1 to enable auto-login and auto-launch of D2R on startup. ; Credentials below are ONLY used when auto_login=1. -auto_login=1 +auto_login=0 bnet_name=${BOTTY_BNET_NAME} bnet_pass=${BOTTY_BNET_PASS} @@ -42,13 +32,13 @@ char_name=${BOTTY_CHAR_NAME} ; messaging ; custom_loot_message_hook: optional separate webhook for loot notifications -custom_loot_message_hook=${BOTTY_CUSTOM_LOOT_MESSAGE_HOOK} +custom_loot_message_hook=https://discord.com/api/webhooks/1510992232939913297/20rbnGmpTWMKBBL6JN0JaE897jLGOmHl6zclJ1AO82o2dtD67YHfAKMD-e4G8DWvUOXV ; custom_message_hook: main webhook for status/death/chicken messages -custom_message_hook=${BOTTY_CUSTOM_MESSAGE_HOOK} +custom_message_hook=https://discord.com/api/webhooks/1510992232939913297/20rbnGmpTWMKBBL6JN0JaE897jLGOmHl6zclJ1AO82o2dtD67YHfAKMD-e4G8DWvUOXV ; discord_log_chicken: 1 = send chicken/death style notifications discord_log_chicken=1 ; discord_status_runs: send periodic status every X completed runs (blank/0 disables) -discord_status_runs=10 +discord_status_runs=100 ; discord_status_count: legacy fallback, send periodic status every X games (blank/0 disables) discord_status_count=20 ; message_api_type: "" disables messaging, "discord" or "generic_api" @@ -66,14 +56,10 @@ d2r_path=C:\Program Files (x86)\Diablo II Resurrected ; max_consecutive_fails: stop bot after this many failed runs in a row max_consecutive_fails=5 ; max_game_length_s: emergency timeout per run/game -max_game_length_s=600 -; auto_downgrade_threshold: if combined chickens+deaths exceed this number within 1 hour, -; bot automatically lowers difficulty by one tier (hell->nightmare->normal) and restarts. -; Set to 0 to disable. -auto_downgrade_threshold=40 +max_game_length_s=160 ; if you set this field to 1, botty will attempt to restart d2 after a crash or failure -restart_d2r_when_stuck=1 +restart_d2r_when_stuck=0 ; hardcore: 1 enables hardcore-safe assumptions in some routines hardcore=0 @@ -181,7 +167,7 @@ skill_mistake_chance = 0.015 ; run_countess (Act 1 Forgotten Tower) ; run_mephisto (Act 3 Durance of Hate) ; run_baal (Act 5 Throne of Destruction) -order=run_pindle, run_eldritch_shenk, run_nihlathak, run_arcane, run_diablo, run_vizier, run_trav +order=run_trav [char] ; ========================== @@ -194,9 +180,9 @@ type=hammerdin ; belt_rows: in-game belt size (2/3/4) belt_rows=4 ; casting_frames: your char cast breakpoint (affects action timing) -casting_frames=8 +casting_frames=11 ; cta_casting_frames: cast breakpoint on CTA swap (if used) -cta_casting_frames=8 +cta_casting_frames=11 ; attack_frames: base attack animation timing for non-cast attacks attack_frames=15 ; cta_available: 1 if Call to Arms swap exists, else 0 @@ -225,13 +211,13 @@ show_items=alt ; stand_still cannot be the default "shift" as it would interfere with merc healing stand_still=capslock ; teleport: leave empty if you can't use -teleport=b -town_portal=6 +teleport=f4 +town_portal=f8 ; call to arms settings: ; weapon_switch/battle_orders/battle_command only used when cta_available=1 weapon_switch=w -battle_orders=7 -battle_command=8 +battle_orders=f6 +battle_command=f5 ; ========================== ; ==== Optional configs ==== @@ -240,43 +226,13 @@ stash_gold=1 use_merc=1 ; Attack length for barbarians should be as high as 8-10 and even 10-12 for trav/shenk -; -; Hammerdin attack lengths (seconds of hammer spam per boss): -; atk_len_trav = 3.0 (Council of 3 - 3 council members, easy) -; atk_len_pindle = 8.0 (Pindle + Eldritch + Shenk - longest fight) -; Pindle stats by difficulty: -; Normal: 1064-1588 HP, 75% fire, 70% poison -; Nightmare: 4773-5859 HP, 100% poison -; Hell: 13094-16070 HP, 75% fire, 50% cold, 33% light, 100% poison -; With Conviction (-33% res), Hell Pindle = 50% fire, 17% cold, 0% light, 67% poison -; CTA adds +100% dmg to hammer. Need ~60%+ FCR and good IAS to kill in 8s. -; atk_len_nihlathak = 4.0 (Nihlathak - single boss) -; atk_len_eldritch = 3.0 (Eldritch only - single boss) -; atk_len_shenk = 4.0 (Shenk only - single boss) -; atk_len_arc = 2.5 (Summoner in Arcane - single boss) -; atk_len_diablo = 10.0 (Diablo in CS - longest single boss) -; atk_len_countess = 3.0 (Countess - single boss, easy) -; atk_len_andariel = 4.0 (Andariel - single boss) -; atk_len_mephisto = 12.0 (Mephisto - single boss, high HP) -; atk_len_baal = 10.0 (Baal - single boss) -; atk_len_baal_waves = 30.0 (Baal's spawn waves before boss) -; -; Chaos Sanctuary (Diablo run) individual fights: -; atk_len_cs_trashmobs = 2.0 (Trash packs in CS) -; atk_len_diablo_vizier = 2.0 (Vizier of Chaos - seal boss A) -; atk_len_diablo_infector = 4.0 (Infector of Souls - seal boss C) -; atk_len_diablo_deseis = 5.0 (Lord De Seis - seal boss B, hardest seal) -; -; Increase these if your hammer kills slower (low IAS/FCR). -; Decrease if your hammer kills faster (high IAS/FCR, good gear). -; If you die during a fight, the attack length is too long for your defense. atk_len_arc=2.5 atk_len_eldritch=3.0 atk_len_nihlathak=4.0 -atk_len_pindle=8.0 +atk_len_pindle=3.0 atk_len_shenk=4.0 -atk_len_diablo=10.0 -atk_len_trav=3.0 +atk_len_diablo=3.0 +atk_len_trav=5.0 ; Boss run attack lengths (per-character defaults in kill_* methods) ; Adjust these if your build is faster/slower against these bosses @@ -302,14 +258,14 @@ belt_mp_columns=1 belt_rejuv_columns=2 ; Potion/chicken settings -take_health_potion=0.95 -take_mana_potion=0.90 -take_rejuv_potion_health=0.80 -take_rejuv_potion_mana=0.55 -heal_merc=0.85 -heal_rejuv_merc=0.55 -chicken=0.50 -merc_chicken=0.20 +take_health_potion=0.60 +take_mana_potion=0.40 +take_rejuv_potion_health=0.40 +take_rejuv_potion_mana=0.10 +heal_merc=0.60 +heal_rejuv_merc=0.25 +chicken=0.45 +merc_chicken=0.25 ; Misc. ; helps reduce accidental pickups when enabled especially on walking characters @@ -319,24 +275,24 @@ fill_shared_stash_first=0 ; to gamble, add any/all of the following: circlet, ring, coronet, talon, amulet gamble_items= ; open_chests: 1 = open clickable chests along path when possible -open_chests=1 +open_chests=0 ; pre_buff_every_run: 1 = always recast buffs at run start pre_buff_every_run=0 ; runs_per_repair: visit repair vendor every X runs (blank/0 disables) -runs_per_repair=5 +runs_per_repair=2000 ; repair_npc: preferred repair vendor strategy. ; - a4_halbu (recommended, most stable) ; - a5_larzuk (faster when templates are reliable) repair_npc=a4_halbu ; runs_per_stash: stash/sell every X runs (blank/0 disables) -runs_per_stash=4 +runs_per_stash=1 ; sell_junk: 1 = vendor non-keep items automatically -sell_junk=1 +sell_junk=0 ; protect_shields_from_sell: 1 = never vendor items with "shield" in detected name (recommended safety) protect_shields_from_sell=1 ; pick_rares_for_gold: 1 = pick all yellow (rare) ground items; non-keep rares will be sold ; Requires sell_junk=1 to convert extra pickups into gold. -pick_rares_for_gold=0 +pick_rares_for_gold=1 ; pick_gold: 1 = pick up ground gold piles, 0 = ignore all ground gold pick_gold=1 @@ -347,12 +303,12 @@ stash_destination=3,2,1,0 ; chipped, flawed, standard, flawless transmute=flawless ;how often we want to run transmute routine(e.g. every 100 games) -transmute_every_x_game=2000 +transmute_every_x_game=500 ; number of stash tabs (ROTW has more than 6, adjust as needed) stash_tabs=6 ; potion transmute settings ; convert_rejuv: 1 = convert regular Rejuv Potions to Full Rejuv via cube (3 -> 1) -convert_rejuv=1 +convert_rejuv=0 ; min_rejuv_to_convert: minimum regular rejuv potions in inventory before starting conversion min_rejuv_to_convert=6 @@ -402,23 +358,22 @@ hydra=f1 ; ==== Builds: Paladin ==== ; ========================= [paladin] -cleansing=f9 -holy_shield=f2 -redemption=f3 -vigor=f4 +cleansing=f2 +holy_shield=f7 +redemption= +vigor=f3 [fohdin] ; foh must be left skill, hotkey required -blessed_hammer=f1 -concentration=f8 -conviction=f5 +blessed_hammer=f9 +concentration=f1 +conviction= foh=f6 holy_bolt=f7 [hammerdin] -blessed_hammer=f1 -concentration=f8 -conviction=f5 +blessed_hammer=f9 +concentration=f1 ; ========================= ; ==== Builds: Warlock ==== @@ -576,13 +531,13 @@ buff_2= ; select_runs_key: open run selector UI select_runs_key=pagedown ; restore_settings_from_backup_key: restore backed-up D2R settings -restore_settings_from_backup_key=insert +restore_settings_from_backup_key=f10 ; settings_backup_key: create backup of current D2R settings settings_backup_key=pause ; auto_settings_key: auto-apply required D2R settings auto_settings_key=pageup ; graphic_debugger_key: toggle on-screen debug layers -graphic_debugger_key=delete +graphic_debugger_key=insert ; resume_key: start/pause bot loop resume_key=f11 ; exit_key: hard stop bot @@ -606,7 +561,7 @@ message_headers= ; ocr_during_pickit: 1 = run OCR while looting (slower, more diagnostics) ocr_during_pickit=0 ;use "can_teleport_natively" or "can_teleport_with_charges" if you want to force certain behavior in case autodetection isn't working properly -override_capabilities=can_teleport_natively +override_capabilities= ; pathing_delay_factor: movement/click delay multiplier (1 fast .. 10 slow) pathing_delay_factor=2 ; If you want to control Hyper-V window from host use 0,51 here diff --git a/debug_full_screen.png b/debug_full_screen.png new file mode 100644 index 0000000..79e84ff Binary files /dev/null and b/debug_full_screen.png differ diff --git a/debug_merc_area.png b/debug_merc_area.png new file mode 100644 index 0000000..d6423d1 Binary files /dev/null and b/debug_merc_area.png differ diff --git a/debug_portal_search.png b/debug_portal_search.png new file mode 100644 index 0000000..8bce80e Binary files /dev/null and b/debug_portal_search.png differ diff --git a/debug_screen.png b/debug_screen.png new file mode 100644 index 0000000..895dfc9 Binary files /dev/null and b/debug_screen.png differ diff --git a/debug_screen_full.png b/debug_screen_full.png new file mode 100644 index 0000000..61a7469 Binary files /dev/null and b/debug_screen_full.png differ diff --git a/src/char/i_char.py b/src/char/i_char.py index 2bbd530..9ae32ca 100644 --- a/src/char/i_char.py +++ b/src/char/i_char.py @@ -100,7 +100,7 @@ class IChar: return False else: mouse.move(pos[0], pos[1]) - wait(0.1, 0.12) + wait(0.04, 0.06) mouse.click(button="left") #Current logic only sets force_run if we previously teled. @@ -157,8 +157,7 @@ class IChar: while time.time() - check_success_start < 2: if success_func is None or success_func(): return True - elapsed = time.time() - start - Logger.error(f"select_by_template: could not find {template_type} after {elapsed:.1f}s (timeout={timeout}s, threshold={threshold})") + Logger.error(f"Wanted to select {template_type}, but could not find it") return False def skill_is_charged(self, img: np.ndarray = None) -> bool: @@ -304,83 +303,56 @@ class IChar: return False def _pre_buff_cta(self): - """Switch to CTA weapon, cast BC + BO, switch back to main. - - Uses the BC skill-bar template to verify each weapon switch rather than - blindly toggling — prevents the character from fighting with the wrong - weapon after a chicken/death interrupted a previous buff cycle and saved - the game with the CTA slot active. - """ - bc_hotkey = Config().char.get("battle_command") - - if not bc_hotkey: - # No hotkey configured → can't verify; fall back to unverified toggle - Logger.warning("_pre_buff_cta: battle_command hotkey not set — using unverified weapon switch") + # Check if we are already on CTA side + if skills.is_right_skill_selected(["BC", "BO"]): keyboard.send(Config().char["weapon_switch"]) - wait(0.3, 0.35) - self._select_skill(skill="battle_command", mouse_click_type="right", delay=(0.1, 0.2)) + wait(0.4, 0.45) + + # Save current skill img + skill_before = cut_roi(grab(), Config().ui_roi["skill_right"]) + # Try to switch weapons and select bo until we find the skill on the right skill slot + start = time.time() + switch_sucess = False + while time.time() - start < 4: + keyboard.send(Config().char["weapon_switch"]) + wait(0.4, 0.45) + keyboard.send(Config().char["battle_command"]) + wait(0.2, 0.3) + if skills.is_right_skill_selected(["BC", "BO"]): + switch_sucess = True + break + else: + Logger.warning("Failed to find Battle Command, swapping weapons again.") + + if not switch_sucess: + Logger.error("You dont have Battle Command bound, or you do not have CTA. Ending CTA buff") + return False + else: + # We switched succesfully, let's pre buff mouse.click(button="right") wait(self._cta_cast_duration, self._cta_cast_duration) - self._select_skill(skill="battle_orders", mouse_click_type="right", delay=(0.1, 0.2)) + self._select_skill(skill = "battle_orders", mouse_click_type="right", delay=(0.1, 0.2)) mouse.click(button="right") wait(self._cta_cast_duration, self._cta_cast_duration) if Config().char["buff_with_cta"]: self.cast_buffs(self._cta_cast_duration) - wait(0.08, 0.08) - keyboard.send(Config().char["weapon_switch"]) - wait(0.3, 0.35) - return True + wait(0.08,0.08) #Give extra time after last cast to allow weapon switch to be available - # --- Step 1: ensure we start on the main weapon slot --- - # If a previous run was interrupted mid-buff (chicken / death), D2R may have - # saved with the CTA slot active. Detect that by pressing the BC hotkey and - # checking if BC appears on the right skill bar. - keyboard.send(bc_hotkey) - wait(0.12, 0.18) - if skills.is_right_skill_selected(["BC"]): - Logger.warning("_pre_buff_cta: game started on CTA slot (leftover from interrupted buff) — correcting to main weapon") + # Make sure the switch back to the original weapon is good + start = time.time() + switch_sucess = False + while time.time() - start < 4: keyboard.send(Config().char["weapon_switch"]) - wait(0.45, 0.55) - - # --- Step 2: switch TO CTA slot and verify --- - keyboard.send(Config().char["weapon_switch"]) - wait(0.3, 0.35) - keyboard.send(bc_hotkey) - wait(0.12, 0.18) - on_cta = skills.is_right_skill_selected(["BC"]) - if not on_cta: - Logger.warning("_pre_buff_cta: switch to CTA slot failed — retrying") - keyboard.send(Config().char["weapon_switch"]) - wait(0.45, 0.55) - keyboard.send(bc_hotkey) - wait(0.12, 0.18) - on_cta = skills.is_right_skill_selected(["BC"]) - if not on_cta: - Logger.error("_pre_buff_cta: could not confirm CTA slot after retry — casting Holy Shield from main and skipping CTA buffs") - self.cast_buffs(self._cast_duration) - return True # buffs cast from main; weapon slot is correct - - # --- Step 3: cast BC (already selected above) then BO --- - mouse.click(button="right") - wait(self._cta_cast_duration, self._cta_cast_duration) - self._select_skill(skill="battle_orders", mouse_click_type="right", delay=(0.1, 0.2)) - mouse.click(button="right") - wait(self._cta_cast_duration, self._cta_cast_duration) - if Config().char["buff_with_cta"]: - self.cast_buffs(self._cta_cast_duration) - wait(0.08, 0.08) - - # --- Step 4: switch back to main weapon slot and verify --- - keyboard.send(Config().char["weapon_switch"]) - wait(0.3, 0.35) - if skills.is_right_skill_selected(["BC"]): - Logger.warning("_pre_buff_cta: switch back to main failed — retrying") - keyboard.send(Config().char["weapon_switch"]) - wait(0.45, 0.55) - if skills.is_right_skill_selected(["BC"]): - Logger.error("_pre_buff_cta: still on CTA slot after retry — CHARACTER WILL FIGHT WITH WRONG WEAPON") - # Buffs are cast; return True so pre_buff() doesn't skip Holy Shield entirely. - return True + wait(0.4, 0.45) + skill_after = cut_roi(grab(), Config().ui_roi["skill_right"]) + _, max_val, _, _ = cv2.minMaxLoc(cv2.matchTemplate(skill_after, skill_before, cv2.TM_CCOEFF_NORMED)) + if max_val > 0.8: + switch_sucess = True + break + else: + Logger.warning("Failed to switch weapon, try again") + wait(0.5) + return switch_sucess def vec_to_monitor(self, target): diff --git a/src/death_manager.py b/src/death_manager.py index 937ee20..5c1af6f 100644 --- a/src/death_manager.py +++ b/src/death_manager.py @@ -14,7 +14,7 @@ class DeathManager: def __init__(self): self._died = False self._do_monitor = False - self._loop_delay = 1.0 + self._loop_delay = 0.5 self._callback = None self._last_death_screenshot = None diff --git a/src/health_manager.py b/src/health_manager.py index 7634df2..255fb21 100644 --- a/src/health_manager.py +++ b/src/health_manager.py @@ -1,20 +1,19 @@ +import cv2 +import time +import random +from threading import Lock from inventory import belt from pather import Location -import cv2 -from threading import Lock -import time from input_layer import keyboard from input_layer import mouse from utils.misc import wait from logger import Logger from utils.log_rotation import safe_imwrite from screen import grab -import time from config import Config from inventory import common from ui import view, meters from ui_manager import ScreenObjects, is_visible -from random import uniform class HealthManager: @@ -92,104 +91,99 @@ class HealthManager: Logger.info("Start health monitoring") self._do_monitor = True self._did_chicken = False - start = time.time() lp_hp_potion_delay = 10.24 - lp_mp_potion_delay = 5.12 + lp_mp_potion_delay = 1.0 merc_hp_potion_delay = 10.24 while self._do_monitor: if self._did_chicken or self.get_pause_state(): - wait(1) + wait(0.5, 0.7) continue - fn_start = time.perf_counter() - img = grab() - if is_visible(ScreenObjects.InGame, img): - health_percentage = meters.get_health(img) - mana_percentage = meters.get_mana(img) + + try: + fn_start = time.perf_counter() + img = grab() + if is_visible(ScreenObjects.InGame, img): + health_percentage = meters.get_health(img) + mana_percentage = meters.get_mana(img) - # check rejuv first - success_drink_rejuv = False - last_drink = time.time() - self._last_rejuv - #It seems that hit recovery can delay the use of juvs and 15 frames is max recovery time. - #To delay two juvs being used back to back, we'll need to wait the recovery time between uses. - #15 frames is 0.60 seconds. - if last_drink > 0.60: - if (health_percentage <= Config().char["take_rejuv_potion_health"]) or \ - (mana_percentage <= Config().char["take_rejuv_potion_mana"]): - # Simulate human reaction time (100-300ms) - wait(0.1, 0.3) - success_drink_rejuv = belt.drink_potion("rejuv", stats=[health_percentage, mana_percentage]) - #failure to drink juv (likely out of juvs). Perform chicken - if not success_drink_rejuv: - Logger.warning(f"Failed to drink rejuv. Trying to chicken, player HP {(health_percentage*100):.1f}%!") - self._do_chicken(img) - continue - self._last_rejuv = time.time() + # check rejuv first + success_drink_rejuv = False + last_drink = time.time() - self._last_rejuv + if last_drink > 0.60: + if (health_percentage <= Config().char["take_rejuv_potion_health"]) or \ + (mana_percentage <= Config().char["take_rejuv_potion_mana"]): + # Critical: Reduce delay to minimum + wait(0.02, 0.05) + success_drink_rejuv = belt.drink_potion("rejuv", stats=[health_percentage, mana_percentage]) + if not success_drink_rejuv: + Logger.warning(f"Failed to drink rejuv. Trying to chicken, player HP {(health_percentage*100):.1f}%!") + self._do_chicken(img) + continue + self._last_rejuv = time.time() - #if we drink two juvs within 8 seconds of one another AND HP is still low, may be in bad state. Perform chicken - # Only chicken on rapid double-rejuv if HP was the actual trigger (not just mana). - # Hammerdins spend mana fast — mana-triggered rejuvs can legitimately fire back-to-back. - if last_drink < 8 and health_percentage <= Config().char["take_rejuv_potion_health"]: - Logger.warning(f"Two juvs drank within {last_drink} seconds. Trying to chicken, player HP {(health_percentage*100):.1f}%!") - self._do_chicken(img) - continue + if last_drink < 8: + Logger.warning(f"Two juvs drank within {last_drink:.1f} seconds. Trying to chicken, player HP {(health_percentage*100):.1f}%!") + self._do_chicken(img) + continue - # Default chicken if health is below threshold. - if health_percentage <= Config().char["chicken"]: - Logger.warning(f"Trying to chicken, player HP {(health_percentage*100):.1f}%!") - self._do_chicken(img) - continue - - # in case no rejuv was used, check for chicken, health pot and mana pot usage - if not success_drink_rejuv: - # check health - last_drink = time.time() - self._last_health - if health_percentage <= Config().char["take_health_potion"] and last_drink > lp_hp_potion_delay: - wait(0.1, 0.3) # human reaction time - belt.drink_potion("health", stats=[health_percentage, mana_percentage]) - self._last_health = time.time() - # check mana - last_drink = time.time() - self._last_mana - if mana_percentage <= Config().char["take_mana_potion"] and last_drink > lp_mp_potion_delay: - wait(0.1, 0.3) # human reaction time - belt.drink_potion("mana", stats=[health_percentage, mana_percentage]) - self._last_mana = time.time() - # check merc health and heal/chicken as needed - if any([Config().char[x] for x in ["heal_rejuv_merc", "merc_chicken", "heal_merc"]]): - merc_health = meters.get_merc_health(img) - last_drink = time.time() - self._last_merc_heal - # chicken if merc is too low - if Config().char["merc_chicken"] and (merc_health < Config().char["merc_chicken"]): - Logger.warning(f"Trying to chicken, merc HP {(merc_health*100):.1f}%!") + if health_percentage <= Config().char["chicken"]: + Logger.warning(f"Trying to chicken, player HP {(health_percentage*100):.1f}%!") self._do_chicken(img) continue - # rejuv if merc is critically low - if Config().char["heal_rejuv_merc"] and (merc_health < Config().char["heal_rejuv_merc"]) and (last_drink > 4.0): - wait(0.1, 0.3) # human reaction time - belt.drink_potion("rejuv", merc=True, stats=[merc_health]) - self._last_merc_heal = time.time() - elif Config().char["heal_merc"] and (merc_health < Config().char["heal_merc"]) and (last_drink > merc_hp_potion_delay): - wait(0.1, 0.3) # human reaction time - belt.drink_potion("health", merc=True, stats=[merc_health]) - self._last_merc_heal = time.time() + + if not success_drink_rejuv: + # check health + last_drink = time.time() - self._last_health + if health_percentage <= Config().char["take_health_potion"] and last_drink > lp_hp_potion_delay: + wait(0.05, 0.1) + if belt.drink_potion("health", stats=[health_percentage, mana_percentage]): + self._last_health = time.time() + # check mana + last_drink = time.time() - self._last_mana + if mana_percentage <= Config().char["take_mana_potion"] and last_drink > lp_mp_potion_delay: + wait(0.05, 0.1) + if belt.drink_potion("mana", stats=[health_percentage, mana_percentage]): + self._last_mana = time.time() + # check merc health + if any([Config().char[x] for x in ["heal_rejuv_merc", "merc_chicken", "heal_merc"]]): + merc_health = meters.get_merc_health(img) + last_drink = time.time() - self._last_merc_heal + if Config().char["merc_chicken"] and (merc_health < Config().char["merc_chicken"]): + Logger.warning(f"Trying to chicken, merc HP {(merc_health*100):.1f}%!") + self._do_chicken(img) + continue + if Config().char["heal_rejuv_merc"] and (merc_health < Config().char["heal_rejuv_merc"]) and (last_drink > 4.0): + wait(0.05, 0.1) + if belt.drink_potion("rejuv", merc=True, stats=[merc_health]): + self._last_merc_heal = time.time() + elif Config().char["heal_merc"] and (merc_health < Config().char["heal_merc"]) and (last_drink > merc_hp_potion_delay): + wait(0.05, 0.1) + if belt.drink_potion("health", merc=True, stats=[merc_health]): + self._last_merc_heal = time.time() + + # Close any open panels that might block detection if not self.get_panel_check_paused() and (is_visible(ScreenObjects.LeftPanel, img) or is_visible(ScreenObjects.RightPanel, img)): - Logger.warning(f"Found an open inventory / quest / skill / stats page. Close it.") self._count_panel_detects += 1 if self._count_panel_detects >= 2: self._count_panel_detects = 0 - Logger.warning(f"Found an open inventory / quest / skill / stats page again. Chicken to dismiss.") + Logger.warning(f"Found open panels (inv/quest/stats) twice. Chickening to be safe.") self._do_chicken(img) continue + Logger.debug("Found an open panel. Closing it.") common.close() - fn_end = time.perf_counter() - # Add timing jitter to avoid perfectly regular polling pattern (anti-cheat) - import random - base_wait = 3/25 - (fn_end - fn_start) - jitter = random.uniform(0.8, 1.2) # ±20% jitter - wait_time = max(0.0, base_wait * jitter) - if wait_time > 0: - wait(wait_time) # wait ~3 frames before rechecking + + fn_end = time.perf_counter() + # Target ~15 FPS polling with anti-cheat jitter + base_wait = 1/15 - (fn_end - fn_start) + wait_time = max(0.01, base_wait * random.uniform(0.8, 1.2)) + wait(wait_time) + + except Exception as e: + Logger.error(f"HealthManager error: {e}") + wait(0.5) + Logger.debug("Stop health monitoring") diff --git a/src/input_layer/mouse_impl.py b/src/input_layer/mouse_impl.py index a56609a..727a573 100644 --- a/src/input_layer/mouse_impl.py +++ b/src/input_layer/mouse_impl.py @@ -260,15 +260,21 @@ class mouse: @staticmethod def click(button): if button != "left" or mouse._is_clicking_safe(): - try: - from utils.stealth import apply_click_delay - apply_click_delay() - except Exception: - from logger import Logger - Logger.warning("[Stealth] apply_click_delay failed, falling back to manual delay") - from utils.misc import wait as _wait - _wait(0.05, 0.3) + # DISABLED STEALTH FOR DEBUGGING + # try: + # from utils.stealth import apply_click_delay + # apply_click_delay() + # except Exception: + # from logger import Logger + # Logger.warning("[Stealth] apply_click_delay failed, falling back to manual delay") + # from utils.misc import wait as _wait + # _wait(0.05, 0.3) + from logger import Logger + Logger.debug(f"Executing native click: {button}") _native_click(button) + else: + from logger import Logger + Logger.debug(f"Click blocked by safety check (button: {button})") @staticmethod def press(button): diff --git a/src/input_layer/win_input.py b/src/input_layer/win_input.py index af08a9c..d90b79a 100644 --- a/src/input_layer/win_input.py +++ b/src/input_layer/win_input.py @@ -177,7 +177,7 @@ def _make_mouse_input(flags: int, dx: int = 0, dy: int = 0, data: int = 0): i.union.mi.dx = dx i.union.mi.dy = dy i.union.mi.mouseData = data - i.union.mi.dwFlags = flags | MOUSEEVENTF_ABSOLUTE + i.union.mi.dwFlags = flags i.union.mi.dwExtraInfo = None return i @@ -285,8 +285,9 @@ def mouse_up(button: str = "left"): raise ValueError(f"Unknown button: {button}") def mouse_click(button: str = "left"): - """Click (press + release) a mouse button.""" + """Click (press + release) a mouse button with a reliable delay.""" mouse_down(button) + time.sleep(0.1) # 100ms hold time is very reliable for games mouse_up(button) def mouse_wheel(delta: int): diff --git a/src/inventory/belt.py b/src/inventory/belt.py index fb8b8df..e41644d 100644 --- a/src/inventory/belt.py +++ b/src/inventory/belt.py @@ -78,7 +78,7 @@ def _potion_type(img: np.ndarray) -> str: roi = [int(w * 0.4), int(h * 0.3), int(w * 0.4), int(h * 0.7)] img = cut_roi(img, roi) avg_brightness = np.average(img) - if avg_brightness < 47: + if avg_brightness < 30: return "empty" score_list = [] # rejuv @@ -92,7 +92,7 @@ def _potion_type(img: np.ndarray) -> str: score_list.append((float(np.sum(mask)) / mask.size) * (1/255.0)) # find max score max_val = np.max(score_list) - if max_val > 0.28: + if max_val > 0.20: idx = np.argmax(score_list) types = ["rejuv", "health", "mana"] return types[idx] diff --git a/src/item/pickit.py b/src/item/pickit.py index d3b3d97..9181a39 100644 --- a/src/item/pickit.py +++ b/src/item/pickit.py @@ -120,9 +120,8 @@ class PickIt: tele_success = True Logger.info(f"Teled to pickup item {ground_item.Name} and now at distance {ground_item.Distance}") char.pick_up_item((ground_item.CenterMonitor['x'], ground_item.CenterMonitor['y']), item_name=ground_item.Name, distance=ground_item.Distance, force_run=True) - # Wait for the pickup animation to complete before moving on - # Issue #939: bot was teleporting away before item was actually grabbed - wait(0.2, 0.3) + # Wait briefly for the pickup animation to start/complete + wait(0.08, 0.12) break if not tele_success: Logger.warning(f"Failed to scan item '{item.Name}' after tele. Items visible: {len(items)}") diff --git a/src/npc_manager.py b/src/npc_manager.py index b80d267..5996c7f 100644 --- a/src/npc_manager.py +++ b/src/npc_manager.py @@ -272,25 +272,46 @@ def open_npc_menu(npc_key: Npc) -> bool: results.append({"pos": res.center_monitor, "score": res.score, "combo": min_dist / (res.score**2)}) # sort by composite of template match score and distance to NPC pose results = sorted(results, key=lambda r: r["combo"]) + if not results: + Logger.debug(f"NPC {npc_key} search - No templates matched in this frame") for result in results: + Logger.debug(f"Hovering over NPC at monitor pos: {result['pos']}") mouse.move(*result["pos"], randomize=3, delay_factor=[0.3, 0.5]) wait(0.2, 0.3) img = grab() img = escape_dialogue(img) _, filtered_inp_w = color_filter(img, Config().colors["white"]) _, filtered_inp_g = color_filter(img, Config().colors["gold"]) - res_w = template_finder.search(npcs[npc_key]["name_tag_white"], filtered_inp_w, 0.9, roi=roi).valid - res_g = template_finder.search(npcs[npc_key]["name_tag_gold"], filtered_inp_g, 0.9, roi=roi).valid - if res_w: + res_w = template_finder.search(npcs[npc_key]["name_tag_white"], filtered_inp_w, 0.5, roi=roi) + res_g = template_finder.search(npcs[npc_key]["name_tag_gold"], filtered_inp_g, 0.5, roi=roi) + + # fallback to grayscale if color filter is too aggressive + if not res_w.valid: + res_w_gray = template_finder.search(npcs[npc_key]["name_tag_white"], img, 0.5, roi=roi, use_grayscale=True) + if res_w_gray.score > res_w.score: + res_w = res_w_gray + Logger.debug(f"NPC {npc_key} hover - using grayscale fallback (score: {res_w.score:.3f})") + + Logger.debug(f"NPC {npc_key} hover - White score: {res_w.score:.3f}, Gold score: {res_g.score:.3f}") + + if res_w.valid: + Logger.info(f"Clicking on {npc_key} at {mouse.get_position()}") mouse.click(button="left") attempts += 1 - wait(0.7, 1.0) - _, filtered_inp = color_filter(grab(), Config().colors["gold"]) - res = template_finder.search(npcs[npc_key]["name_tag_gold"], filtered_inp, 0.9, roi=roi).valid - if res: + # Wait for gold name tag to appear (indicates NPC menu opened or mouse stayed over NPC) + wait(0.8, 1.2) + img_after = grab() + _, filtered_inp_g2 = color_filter(img_after, Config().colors["gold"]) + res_g2 = template_finder.search(npcs[npc_key]["name_tag_gold"], filtered_inp_g2, 0.5, roi=roi) + if res_g2.valid: + Logger.debug(f"NPC {npc_key} - gold name tag confirmed after click") return True - elif res_g: + else: + Logger.warning(f"NPC {npc_key} - clicked but gold name tag not found (score: {res_g2.score:.3f})") + elif res_g.valid: + Logger.debug(f"NPC {npc_key} - already hovered/selected (gold tag score: {res_g.score:.3f})") return True + wait(0.1) # Brief pause before next frame grab if no matches were valid return False def press_npc_btn(npc_key: Npc, action_btn_key: str): diff --git a/src/template_finder.py b/src/template_finder.py index ca3265d..307734d 100644 --- a/src/template_finder.py +++ b/src/template_finder.py @@ -96,7 +96,7 @@ def _single_template_match(template: Template, inp_img: np.ndarray = None, roi: # filter for desired color or make grayscale if color_match: - template_img, = color_filter(template.img_bgr, color_match)[1], + template_img = color_filter(template.img_bgr, color_match)[1] img = color_filter(img, color_match)[1] elif use_grayscale: template_img = template.img_gray @@ -104,25 +104,32 @@ def _single_template_match(template: Template, inp_img: np.ndarray = None, roi: else: template_img = template.img_bgr - if not (img.shape[0] > template_img.shape[0] and img.shape[1] > template_img.shape[1]): - Logger.error(f"Image shape and template shape are incompatible: {template.name}. Image: {img.shape}, Template: {template_img.shape}, roi: {roi}") + if not (img.shape[0] >= template_img.shape[0] and img.shape[1] >= template_img.shape[1]): + from logger import Logger + Logger.debug(f"Incompatible shapes for {template.name}: Image {img.shape}, Template {template_img.shape}, ROI {roi}") else: - res = cv2.matchTemplate(img, template_img, cv2.TM_CCOEFF_NORMED, mask = template.alpha_mask) - np.nan_to_num(res, copy=False, nan=0.0, posinf=0.0, neginf=0.0) - _, max_val, _, max_pos = cv2.minMaxLoc(res) + try: + res = cv2.matchTemplate(img, template_img, cv2.TM_CCOEFF_NORMED, mask = template.alpha_mask) + np.nan_to_num(res, copy=False, nan=0.0, posinf=0.0, neginf=0.0) + _, max_val, _, max_pos = cv2.minMaxLoc(res) - # save rectangle corresponding to matched region - rec_x = int((max_pos[0] + rx)) - rec_y = int((max_pos[1] + ry)) - rec_w = int(template_img.shape[1]) - rec_h = int(template_img.shape[0]) - template_match.region = [rec_x, rec_y, rec_w, rec_h] - template_match.region_monitor = [*convert_screen_to_monitor((rec_x, rec_y)), rec_w, rec_h] - template_match.center = roi_center(template_match.region) - template_match.center_monitor = convert_screen_to_monitor(template_match.center) - template_match.name = template.name - template_match.score = max_val - template_match.valid = True + # save rectangle corresponding to matched region + rec_x = int((max_pos[0] + rx)) + rec_y = int((max_pos[1] + ry)) + rec_w = int(template_img.shape[1]) + rec_h = int(template_img.shape[0]) + template_match.region = [rec_x, rec_y, rec_w, rec_h] + template_match.region_monitor = [*convert_screen_to_monitor((rec_x, rec_y)), rec_w, rec_h] + template_match.center = roi_center(template_match.region) + template_match.center_monitor = convert_screen_to_monitor(template_match.center) + template_match.name = template.name + template_match.score = max_val + template_match.valid = True + except Exception as e: + from logger import Logger + Logger.error(f"Template match failed for {template.name}: {e}") + import traceback + Logger.debug(traceback.format_exc()) return template_match @@ -160,7 +167,8 @@ def search( # Single template — no benefit to parallelize if len(templates) == 1: match = _single_template_match(templates[0], inp_img, roi, color_match, use_grayscale) - return match if match.score >= threshold else TemplateMatch() + match.valid = match.score >= threshold + return match # Multiple templates — parallel search matches = [] @@ -171,10 +179,8 @@ def search( ] for future in concurrent.futures.as_completed(futures): match = future.result() - if match.score >= threshold: - if not best_match: - return match - matches.append(match) + match.valid = match.score >= threshold + matches.append(match) if matches: matches = sorted(matches, key=lambda obj: obj.score, reverse=True) diff --git a/src/ui/meters.py b/src/ui/meters.py index 452d8bd..6adde4a 100644 --- a/src/ui/meters.py +++ b/src/ui/meters.py @@ -20,7 +20,7 @@ def get_mana(img: np.ndarray) -> float: return mana_percentage def get_merc_health(img: np.ndarray) -> float: - health_rec = [Config().ui_pos["merc_health_left"], Config().ui_pos["merc_health_top"], Config().ui_pos["merc_health_width"], 1] + health_rec = [Config().ui_pos["merc_health_left"], Config().ui_pos["merc_health_top"], Config().ui_pos["merc_health_width"], 3] merc_health_img = cut_roi(img, health_rec) merc_health_img = cv2.cvtColor(merc_health_img, cv2.COLOR_BGR2GRAY) _, thresh = cv2.threshold(merc_health_img, 5, 255, cv2.THRESH_BINARY) diff --git a/src/ui/skills.py b/src/ui/skills.py index 2120a3e..ce04c0a 100644 --- a/src/ui/skills.py +++ b/src/ui/skills.py @@ -17,7 +17,7 @@ def is_left_skill_selected(template_list: list[str]) -> bool: """ skill_left_ui_roi = Config().ui_roi["skill_left"] for template in template_list: - if template_finder.search(template, grab(), threshold=0.84, roi=skill_left_ui_roi).valid: + if template_finder.search(template, grab(), threshold=0.8, roi=skill_left_ui_roi).valid: return True return False @@ -73,7 +73,7 @@ def is_right_skill_selected(template_list: list[str]) -> bool: """ skill_right_ui_roi = Config().ui_roi["skill_right"] for template in template_list: - if template_finder.search(template, grab(), threshold=0.84, roi=skill_right_ui_roi).valid: + if template_finder.search(template, grab(), threshold=0.8, roi=skill_right_ui_roi).valid: return True return False @@ -82,7 +82,7 @@ def wait_until_right_skill_selected(template: str, timeout: float = 1) -> bool: :return: Bool if skill gets selected on the right skill slot within the timeout. """ skill_right_ui_roi = Config().ui_roi["skill_right"] - if template_finder.search_and_wait(template, roi=skill_right_ui_roi, timeout = timeout, threshold=0.84).valid: + if template_finder.search_and_wait(template, roi=skill_right_ui_roi, timeout = timeout, threshold=0.8).valid: return True return False diff --git a/src/ui_manager.py b/src/ui_manager.py index 5f47ec3..4a71f1d 100644 --- a/src/ui_manager.py +++ b/src/ui_manager.py @@ -61,13 +61,7 @@ class ScreenObjects: MercIcon=ScreenObject( ref=["MERC_A2", "MERC_A2_2", "MERC_A1", "MERC_A5", "MERC_A3"], roi="merc_icon", - threshold=0.85, - use_grayscale=True - ) - MercPanelText=ScreenObject( - ref=["MERCENARY_SCREEN"], - roi="merc_panel", - threshold=0.85, + threshold=0.75, use_grayscale=True ) PlayBtn=ScreenObject( @@ -182,7 +176,7 @@ class ScreenObjects: YouHaveDied=ScreenObject( ref="YOU_HAVE_DIED", roi="death", - threshold=0.9, + threshold=0.8, color_match=Config().colors["red"], use_grayscale=True ) @@ -257,8 +251,10 @@ class ScreenObjects: threshold=0.8, ) NotEnoughGold=ScreenObject( - ref="MISSING_GOLD", - threshold=0.8, + ref="NOT_ENOUGH_GOLD", + threshold=0.9, + color_match=Config().colors["red"], + use_grayscale=True ) QuestSkillBtn=ScreenObject( ref="QUEST_SKILL_BTN", diff --git a/test_grab.png b/test_grab.png new file mode 100644 index 0000000..a581f5f Binary files /dev/null and b/test_grab.png differ