objectdef oClass inherits oBase { ;Shaman Spell settings - set these variable string WeapEnchant = "Flametongue Weapon" ;What weapon enchant to use, ex Windfury Weapon variable string OffhandEnchant = "Frostbrand Weapon" ;What offhand enchant to use if dualwielding variable bool RandomizeWeapEnchant = TRUE ;Whether or not to randomize the enchants variable string ShockToUse = "Earth Shock" ;What shock to use, ex Frost Shock variable bool RandomizeShock = TRUE ;Whether or not to randomize the shock variable bool CastInsteadOfMelee = FALSE ;Cast (lightning bolt/shocks) instead of melee variable bool LightningPull = FALSE ;Pull with lightning instead of shocks variable bool DualWielding = FALSE ;Whether or not you're using two weapons ;More shaman settings - don't touch these variable int NumberWeapEnchants variable int NumberShocks variable int RandomInt variable string MainHandEnchant variable string OffHandEnchant variable string RandomShock variable string RandomEnchant variable int AntiDoublecast ;---------------------- ;--- Rest Variables --- ;---------------------- variable int RestHP = 80 variable int RestMP = 80 variable int StandHP = 95 variable int StandMP = 95 ;---------------------- ;--- Range Settings --- ;---------------------- variable int PullRange = 19 ;This needs to be set at or under 20 for shock ;pulling, and at or under 30 for lightning. variable int MaxRanged = 19 variable int MinRanged = 10 variable int MaxMelee = 4.9 variable int MinMelee = 1.9 method Initialize() { } ;Stealthy's shaman members method SetNumberEnchants() { echo "set num enchants" if ${Spell["Windfury Weapon"](exists)} { NumberWeapEnchants:Set[4] } if ${Spell["Frostbrand Weapon"](exists)} && !${Spell["Windfury Weapon"](exists)} { echo "weap enchants 3" NumberWeapEnchants:Set[3] } if ${Spell["Flametongue Weapon"](exists)} && !${Spell["Frostbrand Weapon"](exists)} { NumberWeapEnchants:Set[2] } if ${Spell["Rockbiter Weapon"](exists)} && !${Spell["Flametongue Weapon"](exists)} { NumberWeapEnchants:Set[1] } if !${Spell["Rockbiter Weapon"](exists)} { NumberWeapEnchants:Set[0] } } method SetNumberShocks() { if ${Spell["Frost Shock"](exists)} { NumberShocks:Set[3] } if ${Spell["Flame Shock"](exists)} && !${Spell["Frost Shock"](exists)} { NumberShocks:Set[2] } if ${Spell["Earth Shock"](exists)} && !${Spell["Flame Shock"](exists)} { NumberShocks:Set[1] } if !${Spell["Earth Shock"](exists)} { NumberShocks:Set[0] } } method GetRandomShock() { This:SetNumberShocks if ${NumberShocks} == 3 { RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}] if ${RandomInt} == 3 { return "Frost Shock" } if ${RandomInt} == 2 { return "Flame Shock" } if ${RandomInt} == 1 { return "Earth Shock" } } if ${NumberShocks} == 2 { RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}] if ${RandomInt} == 2 { return "Flame Shock" } if ${RandomInt} == 1 { return "Earth Shock" } } if ${NumberShocks} == 1 { return "Earth Shock" } if ${NumberShocks} == 0 { return "Lightning Bolt" } } method GetRandomEnchant() { echo "get random" This:SetNumberEnchants if ${NumberWeapEnchants} == 4 { RandomInt:Set[${Math.Calc[${Math.Rand[4]}+1]}] if ${RandomInt} == 4 { This.RandomEnchant:Set[Windfury] return } if ${RandomInt} == 3 { This.RandomEnchant:Set[Frostbrand] return } if ${RandomInt} == 2 { This.RandomEnchant:Set[Flametongue] return } if ${RandomInt} == 1 { This.RandomEnchant:Set[Rockbiter] return } } if ${NumberWeapEnchants} == 3 { RandomInt:Set[${Math.Calc[${Math.Rand[3]}+1]}] if ${RandomInt} == 3 { This.RandomEnchant:Set[Frostbrand] return } if ${RandomInt} == 2 { This.RandomEnchant:Set[Flametongue] return } if ${RandomInt} == 1 { This.RandomEnchant:Set[Rockbiter] return } } if ${NumberWeapEnchants} == 2 { RandomInt:Set[${Math.Calc[${Math.Rand[2]}+1]}] if ${RandomInt} == 2 { This.RandomEnchant:Set[Flametongue] return } if ${RandomInt} == 1 { This.RandomEnchant:Set[Rockbiter] return } } if ${NumberWeapEnchants} == 1 { This.RandomEnchant:Set[Rockbiter] return } } ;------------------ ;--- Rest SetUp --- ;------------------ member NeedRest() { if ${Me.PctHPs} < ${RestHP} { return TRUE } if ${Me.PctHPs} < ${StandHP} && ${Me.Sitting} { return TRUE } return FALSE } method RestPulse() { if !${Me.Buff[Food](exists)} && !${Me.Buff[Drink](exists)} { Toon:Standup } if ${Me.CurrentMana} >= ${Spell["Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Healing Wave"](exists)} { Toon:CastSpell[Healing Wave] } elseif ${Me.CurrentMana} >= ${Spell["Lesser Healing Wave"].Mana} && ${Me.PctHPs} < ${This.StandHP} && ${Spell["Lesser Healing Wave"](exists)} { Toon:CastSpell[Lesser Healing Wave] } Toon:Sitdown if ${Movement.Speed} { Move -stop } if ${Me.PctHPs} >= ${StandHP} && ${Me.Sitting} { Toon:Standup } return if ${Consumable.HasFood} && ${Me.PctHPs} < ${This.StandHP} && !${Me.Buff[Food](exists)} { Consumable:useFood } if ${Consumbale.HasFood} && ${Me.PctMana} < ${This.StandMP} && !${Me.Buff[Drink](exists)} { Consumable:useDrink } } ;------------------ ;--- Buff SetUp --- ;------------------ member NeedBuff() { if !${DualWielding} && !${Me.Equip[mainhand].Enchantment[${This.MainHandEnchant}](exists)} && !${Me.Equip[mainhand].Enchantment[${This.WeapEnchant}](exists)} { return TRUE } if ${DualWielding} && !${Me.Equip[mainhand].Enchantment[${MainHandEnchant}](exists)} || !${Me.Equip[offhand].Enchantment[${OffHandEnchant}](exists)} { return TRUE } return FALSE } method BuffPulse() { if ${Me.Sitting} { Toon:Standup } if !${DualWielding} { if ${RandomizeWeapEnchant} { This:GetRandomEnchant Toon:CastSpell[${RandomEnchant} Weapon] This:Output["Random weapon enchant: ${RandomEnchant}"] This.MainHandEnchant:Set[${RandomEnchant} Weapon ${Spell[${RandomEnchant} Weapon].Rank}] return } elseif !${RandomizeWeapEnchant} { This:CastSpell[${WeapEnchant}] This:Output["Weapon Enchant: ${WeapEnchant}"] This.MainHandEnchant:Set[${WeapEnchant}] return } } elseif ${DualWielding} { if ${RandomizeWeapEnchant} { This:SetNumberEnchants This:GetRandomEnchant This:CastSpell[${Return}] This.MainHandEnchant:Set[${Return}] This:Output["Random mainhand weapon enchant is: ${Return}"] This:GetRandomEnchant This:CastSpell[${Return}] This.OffHandEnchant:Set[${Return}] This:Output["Random offhand weapon enchant is: ${Return}"] return } if !${RandomizeWeapEnchant} { This:CastSpell[${WeapEnchant}] This:Output["Mainhand Enchant: ${WeapEnchant}"] This.MainHandEnchant:Set[${WeapEnchant}] This:CastSpell[${OffhandEnchant}] This:Output["Offhand Enchant: ${OffhandEnchant}"] This.OffHandEnchant:Set[${OffhandEnchant}] return } } } ;------------------ ;--- Pull SetUp --- ;------------------ member NeedPullBuff() { return FALSE } method PullBuffPulse() { } ;------------------------ ;--- CombatBuff SetUp --- ;------------------------ member NeedCombatBuff() { if !${Me.Buff["Lightning Shield"](exists)} { return TRUE } return FALSE } method CombatBuffPulse() { if !${Me.Buff["Lightning Shield"](exists)} && ${Spell["Lightning Shield"](exists)} { Toon:CastSpell[Lightning Shield] return } } ;------------------ ;--- Pull SetUp --- ;------------------ method PullPulse() { if ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange} { move forward do { } while ${Math.Distance[${Me.Location},${Target.Location}]} > ${PullRange} move -stop } if ${LightningPull} { Toon:CastSpell[Lightning Bolt] This:Output["Pulling: Lightning Bolt"] return } if !${LightningPull} && ${RandomizeShock} { This:GetRandomShock Toon:CastSpell[${Return}] This:Output["Pulling: ${Return}"] return } if !${LightningPull} && !${RandomizeShock} { Toon:CastSpell[${ShockToUse}] This:Output["Pulling: ${ShockToUse}"] return } } ;-------------------- ;--- Combat SetUp --- ;-------------------- method AttackPulse() { } }