;Thanks for the pointers, M^3. member ArmorType() { ;Thanks to Complex for supplying me with the skill # info ;WoWSkill for Plate is 293 if ${Me.Skill[293]} > 0 { return Plate } ;wowSkill for Mail is 413 elseif ${Me.Skill[413]} > 0 { return Mail } ;WoWSkill for Leather is 414 elseif ${Me.Skill[414]} > 0 { return Leather } ;WoWSkill for cloth is 415 elseif ${Me.Skill[415]} > 0 { return Cloth } echo "ArmorType returned nothing, something is wrong with the Skill values" } member ShouldEquip(string ItemGUID, string ItemType) { if ${ItemType.Equal[Armor]} { if ${This.ArmorWeight[${ItemGUID}]} > ${This.ArmorWeight[${Me.Equip[${Item[${ItemGUID}].EquipSlot}].GUID}]} { return TRUE } return FALSE } if ${ItemType.Equal[Weapon]} { if ${This.WeaponWeight[${ItemGUID}]} > ${This.WeaponWeight[${Me.Equip[${Item[${ItemGUID}].Equipslot}].GUID}]} { return TRUE } return FALSE } if ${ItemType.Equal[Bag]} { if ${This.Bagweight[${ItemGUID}]} > 0 { return TRUE } return FALSE } } member ArmorWeight(string NewItemGUID) { return ${Math.Calc[${Item[${NewItemGUID}].${PrimStat}} + (${Item[${NewItemGUID}].${SecStat}}*.9) + (${Item[${NewItemGUID}].Armor}*${This.ClassArmorweight})]} } member WeaponWeight(string NewItemGUID) { return ${Math.Calc[${Item[${NewItemGUID}].${PrimStat}} + (${Item[${NewItemGUID}].${SecStat}}*.9) + (${Item[${NewItemGUID}].DPS}*${This.ClassDPSWeight})]} } member BagWeight(string NewItemGUID) { ;This will just go slots. if ${Item[${NewItemGUID}].Slots} > (${Me.Bag[1].Slots} || ${Me.Bag[2].Slots} || ${Me.Bag[3].Slots} || ${Me.Bag[4].Slots}) { if ${Item[${NewItemGUID}].Slots} > ${Me.Bag[1].Slots} return 1 if ${Item[${NewItemGUID}].Slots} > ${Me.Bag[2].Slots} return 2 if ${Item[${NewItemGUID}].Slots} > ${Me.Bag[3].Slots} return 3 if ${Item[${NewItemGUID}].Slots} > ${Me.Bag[4].Slots} return 4 } } member ClassArmorWeight() { if ${Me.Class.Equal[Warrior]} || ${Me.Class.Equal[Paladin]} { return .75 } if ${Me.Class.Equal[Rogue]} || ${Me.Class.Equal[Shaman]} || ${Me.Class.Equal[Hunter]} { return .4 } if ${Me.Class.Equal[Warlock]} || ${Me.Class.Equal[Priest]} || ${Me.Class.Equal[Mage]} { return .25 } } member ClassDPSWeight() { if ${Me.Class.Equal[Rogue]} || ${Me.Class.Equal[Warrior]} { return .9 } if ${Me.Class.Equal[Shaman]} || ${Me.Class.Equal[Paladin]} || ${Me.Class.Equal[Hunter]} { return .75 } if ${Me.Class.Equal[Warlock]} || ${Me.Class.Equal[Priest]} || ${Me.Class.Equal[Mage]} { return .25 } } method AutoEquip() { variable int counter = 1 variable guidlist ItemSearch ;For now, using PrimStat and SecStat as the stat vars ;Also using WeapType as the preferred weapon type ItemSearch:Search[-items,-inventory] echo "AutoEquip: ItemSearch Count - ${ItemSearch.Count}, ItemSearch[${Math.Calc[${ItemSearch.Count}-1]}] - ${ItemSearch[${Math.Calc[${ItemSearch.Count}-1]}]}" do { if ${ItemSearch[${counter}].SubType.Equal[${This.ArmorType}]} { echo "AutoEquip: Entered This.ArmorType if" if ${This.ShouldEquip[${ItemSearch[${counter}].GUID},Armor]} { echo "AutoEquip: Attempting to equip ${ItemSearch[${counter}].Name}" ItemSearch[${counter}]:Use WoWScript EquipPendingItem(0) } } if ${ItemSearch[${counter}].SubType.Equal[${WeapType}]} { echo "AutoEquip: Entered WeapType if" if ${This.ShouldEquip[${ItemSearch[${counter}].GUID},Weapon]} { echo "AutoEquip: Attempting to equip ${ItemSearch[${counter}].Name}" ItemSearch[${counter}]:Use WoWScript EquipPendingItem(0) } } if ${ItemSearch[${counter}].SubType.Equal[Bag]} { echo "AutoEquip: Entered Bag if" if ${This.ShouldEquip[${ItemSearch[${counter}].GUID},Bag]} { echo "AutoEquip: Attempting to equip ${ItemSearch[${counter}].Name}" ItemSearch[${counter}]:PickUp WoWScript PickupInventoryItem(ContainerIDToInventoryID(${This.BagWeight})) WoWScript EquipPendingItem(0) } } counter:Inc } while ${ItemSearch[${counter}](exists)} }