rendered paste bodyobjectdef oClass inherits oBase
{
;******************************************************************************** /
;** Variables * /
;******************************************************************************** /
;--- Rest
variable int RestMana = 35
variable int StandMana = 85
variable int RestHP = 70
variable int StandHP = 80
;--- Range
variable int AttackRange = 40
variable int FollowRange = 50
;--- Trinkets
variable string TrinketName1 = "Battlemaster's Audacity"
variable int TrinketMyHealth1 = 30 /* 100 for always use */
variable int TrinketMyMana1 = 100 /* 100 for always use */
variable int TrinketPvP1 = FALSE /* Only PvP Trinket */
variable string TrinketName2 = "Medallion of the Horde"
variable int TrinketMyHealth2 = 50 /* 100 for always use*/
variable int TrinketMyMana2 = 100 /* 100 for always use*/
variable int TrinketPvP2 = TRUE /* Only PvP Trinket */
;--- Prebuff
variable bool usePrebuffTable = TRUE
variable int PrebuffTableStacks = 10
variable bool usePrebuffSoulwell = TRUE
;--- CombatBuff
variable bool useCombatBuffRacial = TRUE
variable bool useCombatBuffTrinket = TRUE
variable bool useCombatBuffStone = TRUE
variable int CombatBuffMyHealthStone = 20
variable bool useCombatBuffStandards = TRUE
variable string Standards = "Frostwolf Battle Standard"
;--- Buff
variable bool useBuffAspect = TRUE
variable string BuffAspect = "Aspect of the Hawk"
;--- Melee
variable bool useMeleeTrap = TRUE
variable string MeleeTrap = "Frost Trap"
variable bool useMeleeMongoose = TRUE
variable bool useMeleeWing = TRUE
variable bool useMeleeRaptor = TRUE
;--- Shot
variable bool useShotAimed = TRUE
variable bool useShotArcane = TRUE
variable bool useShotMulti = TRUE
variable bool useShotConcussive = TRUE
variable bool useShotSteady = TRUE
variable bool useShotSting = TRUE
variable string ShotSting = "Serpent Sting"
variable bool useShotTrap = TRUE
variable string ShotTrap = "Snake Trap"
;--- Guard
variable bool useGuardTrap = TRUE
variable string GuardTrap = "Freezing Trap"
variable bool useGuardFlare = TRUE
;-------------------------------------------------------------------------------- /
;*** DO NOT TOUCH VARIABLES BELOW ***
;--- Flags
variable bool OutOfAmmo = FALSE /* will be set TRUE if we have run out of ammo */
variable bool NeedCallPet = TRUE /* TRUE: try call pet, FALSE: rez pet */
variable bool NoPet = FALSE /* set when we do not have a pet */
;--- Timers
variable int LastPetCallTime = ${LavishScript.RunningTime} /* last time we tried to call our pet */
variable int LastFlareTime = ${LavishScript.RunningTime} /* last time we flared the ground */
variable int LastPetAttackTime = ${LavishScript.RunningTime} /* last time we sended pet out to attack */
variable int LastSteadyShotTime = ${LavishScript.RunningTime} /* last time we Shot steady */
variable int LastStingTime = ${LavishScript.RunningTime} /* last time we stinged */
;******************************************************************************** /
;** Pull & Attack Functions * /
;******************************************************************************** /
;** - Pull Setup - ************************************************************** /
;** - Attack Setup - ************************************************************ /
;******************************************************************************** /
;** - Pull Setup - ************************************************************** /
variable int RandomPull = 99
method PullPulse()
{
if ${Me.InCombat} || ${Me.Casting}
return
if !${Toon.ValidTarget[${Target.GUID}]}
{
This:Output["Need a target"]
Toon:NeedTarget[1]
return
}
if !${Toon.TargetIsBestTarget}
{
This:Output["Target is no longer best target. Getting new target. Calling Pet back."]
Toon:BestTarget
WoWScript PetFollow()
return
}
if ${Target.Distance} > ${This.FollowRange}
{
This:Output["Target is to far away! ${Target.Distance} Calling Pet back."]
WoWScript ClearTarget()
Toon:Stop
Toon:NextBestTarget
WoWScript PetFollow()
return
}
if ${Target.Distance} > ${This.AttackRange}
{
This:Output["Target is to far away, moving closer."]
Toon:ToRanged
return
}
elseif !${Target.LineOfSight}
{
This:Output["Target is out of sight! ${Target.LineOfSight}."]
Toon:ToMelee
return
}
elseif ${Movement.Speed} && ${Target.Distance} < ${This.AttackRange} - 2
{
Toon:Stop
}
if ${This.NeedPetCommand}
{
This:PetCommandPulse
return
}
if ${This.NeedFaceForSpell}
{
This:FaceForSpellPulse
return
}
if ${Target.Distance} < 5
{
if ${This.NeedMelee}
{
This:MeleePulse
return
}
elseif !${Me.Attacking}
{
WoWScript AttackTarget()
return
}
}
if ${This.OutOfAmmo}
{
Toon:ToMelee
return
}
if ${Me.Action[Auto Shot].Usable}
{
if ${This.NeedShot}
{
This:ShotPulse
return
}
}
return
}
;** - Attack Setup - ************************************************************ /
method AttackPulse()
{
if !${Toon.ValidTarget[${Target.GUID}]} || !${Me.Target(exists)}
{
Toon:Stop
Toon:NeedTarget[1]
return
}
if !${Toon.TargetIsBestTarget} && ${Object[${Toon.BestTarget}](exists)} && ${Toon.BestTarget.NotEqual[NULL]}
{
This:Output["Target is no longer best target. Getting new target. Calling Pet back."]
Toon:BestTarget
WoWScript PetFollow()
return
}
if ${Target.Distance} > ${This.FollowRange}
{
This:Output["Target is to far away! ${Target.Distance} Calling Pet back."]
WoWScript ClearTarget()
Toon:Stop
Toon:NextBestTarget
WoWScript PetFollow()
return
}
if ${Target.Distance} > ${This.AttackRange}
{
This:Output["Target is to far away, moving closer."]
Toon:ToRanged
return
}
elseif !${Target.LineOfSight}
{
This:Output["Target is out of sight! ${Target.LineOfSight}."]
Toon:ToMelee
return
}
elseif ${Movement.Speed} && ${Target.Distance} < ${This.AttackRange} - 2
{
Toon:Stop
}
if ${This.NeedPetCommand}
{
This:PetCommandPulse
return
}
if ${This.NeedFaceForSpell}
{
This:FaceForSpellPulse
return
}
if ${This.NeedNoMoreSpell}
{
This:NoMoreSpellPulse
return
}
if ${This.NeedClassAttack} && ${Target.Type.Equal["player"]} && ${Target.FactionGroup.NotEqual[${Me.FactionGroup}]}
{
This:ClassAttackPulse
return
}
if ${Target.Distance} < 5
{
if ${This.NeedMelee}
{
This:MeleePulse
return
}
}
if ${This.OutOfAmmo}
{
Toon:ToMelee
return
}
if ${Me.Action[Auto Shot].Usable}
{
if ${This.NeedShot}
{
This:ShotPulse
return
}
}
else
{
if ${This.NeedRandomMove}
{
This:RandomMovePulse
}
Toon:ToRanged
return
}
return
}
;******************************************************************************** /
;** Need & Pulse Functions * /
;******************************************************************************** /
;** - Rest - ******************************************************************** /
member NeedRest()
{
if ${Me.InCombat}
{
return FALSE
}
if ${Me.Buff[Resurrection Sickness](exists)}
{
return TRUE
}
if ${Me.PctHPs} < ${This.RestHP} && ${Item["Conjured Manna Biscuit"](exists)}
{
return TRUE
}
if ${Me.PctMana} < ${This.RestMana} && ${Item["Conjured Manna Biscuit"](exists)}
{
return TRUE
}
if ${Me.PctMana} < ${This.StandMana} && ${Me.Sitting}
{
return TRUE
}
return FALSE
}
method RestPulse()
{
if ${Me.Casting}
{
return
}
if ${Movement.Speed} || ${Movement.Forward} || ${Movement.Backward}
{
Toon:Stop
}
if ${Item["Conjured Manna Biscuit"](exists)} && ${Me.PctHPs} < ${This.RestHP} && !${Me.Buff[Food](exists)}
{
Item["Conjured Manna Biscuit"]:Use
return
}
if ${Item["Conjured Manna Biscuit"](exists)} && ${Me.PctMana} < ${This.RestMana} && !${Me.Buff[Drink](exists)}
{
Item["Conjured Manna Biscuit"]:Use
return
}
if ${Me.Buff[Resurrection Sickness](exists)}
{
Toon:Sitdown
return
}
if ${Me.PctHPs} >= ${This.StandHP} && ${Me.Sitting} && ${Me.PctMana} >= ${This.StandMana}
{
Toon:Standup
return
}
}
;** - Buff Setup - ************************************************************** /
member NeedBuff()
{
if ${useBuffAspect} && ${Toon.canBuff[${Me.GUID}, ${BuffAspect}]}
{
return TRUE
}
return FALSE
}
method BuffPulse()
{
if ${useBuffAspect} && ${Toon.canBuff[${Me.GUID}, ${BuffAspect}]}
{
Toon:CastSpellGUID[${Me.GUID}, ${BuffAspect}]
return
}
return
}
;** - Pull Setup - ************************************************************** /
member NeedPullBuff()
{
return FALSE
}
method PullBuffPulse()
{
return
}
;** - CombatBuff Setup - ******************************************************** /
member NeedCombatBuff()
{
if ${useCombatBuffRacial} && ${This.NeedRacial}
{
return TRUE
}
if ${useCombatBuffTrinket} && ${This.NeedTrinket}
{
return TRUE
}
if ${useCombatBuffStone} && ${Item[Master Healthstone](exists)} && ${Me.PctHPs} < ${This.CombatBuffMyHealthStone}
{
return TRUE
}
if ${useCombatBuffStandards} && ${Item[${Standards}](exists)} && ${Me.Action[${Standards}].Usable} && ${Target.Classification.Equal[Elite]}
{
return TRUE
}
if ${Toon.canCast[Bestial Wrath]} && ${Me.Target.PctHPs} > 70
{
return TRUE
}
if ${Toon.canCast[Rapid Fire]} && ${Me.Target.PctHPs} > 60
{
return TRUE
}
return FALSE
}
method CombatBuffPulse()
{
if ${useCombatBuffRacial} && ${This.NeedRacial}
{
This:RacialPulse
return
}
if ${useCombatBuffTrinket} && ${This.NeedTrinket}
{
This:TrinketPulse
return
}
if ${useCombatBuffStone} && ${Item[Master Healthstone](exists)} && ${Me.PctHPs} < ${This.CombatBuffMyHealthStone}
{
This:Output["Using Master Healthstone!"]
Item[Master Healthstone]:Use
return
}
if ${useCombatBuffStandards} && ${Item[${Standards}](exists)} && ${Me.Action[${Standards}].Usable} && ${Target.Classification.Equal[Elite]}
{
This:CustOutput["Using Standards ${Standards} to help on ${Target.Name}!"]
Item[${Standards}]:Use
return
}
if ${Toon.canCast[Bestial Wrath]} && ${Me.Target.PctHPs} > 70
{
This:Output["Casting Bestial Wrath, AAAAAATTTTTACK!"]
Toon:CastSpell[Bestial Wrath]
return
}
if ${Toon.canCast[Rapid Fire]} && ${Me.Target.PctHPs} > 60
{
This:Output["Casting Rapid Fire, Shot after Shot gona kick ${Target.Name}'s Ass now...!"]
Toon:CastSpell[Rapid Fire]
return
}
return
}
;** - Pet Action - ************************************************************** /
member NeedPetCommand()
{
if ${This.NoPet} || ${This.PetDead}
{
return FALSE
}
if ${Toon.canCast[Mend Pet]} && !${Me.Pet.Buff[Mend Pet](exists)} && ${Me.Pet.PctHPs} < 30
{
return TRUE
}
if ${Me.Pet.Target.GUID.Equal[${Target.GUID}]} && ${This.isCCed[${Target.GUID}, "root"]} || ${This.isCCed[${Target.GUID}, "immo"]} || ${This.isCCed[${Target.GUID}, "fear"]}
{
return TRUE
}
if !${Me.Pet.Target.GUID.Equal[${Target.GUID}]} && ${This.LastPetAttackTime} < ${LavishScript.RunningTime} - 2000
{
return TRUE
}
if ${Me.Pet.Target.GUID.Equal[${Target.GUID}]}
{
if ${Me.Action[Intimidation].Usable}
{
return TRUE
}
if ${Me.Action[Kill Command].Usable}
{
return TRUE
}
}
return FALSE
}
method PetCommandPulse()
{
if ${Toon.canCast[Mend Pet]} && !${Me.Pet.Buff[Mend Pet](exists)} && ${Me.Pet.PctHPs} < 30
{
This:Output["Casting: Mend Pet on Pet (${Me.Pet.Name})"]
Toon:CastSpell[Mend Pet]
return
}
if ${Me.Pet.Target.GUID.Equal[${Target.GUID}]} && ${This.isCCed[${Target.GUID}, "root"]} || ${This.isCCed[${Target.GUID}, "immo"]} || ${This.isCCed[${Target.GUID}, "fear"]}
{
This:Output["Calling Pet back ${Target.Name} is CCed"]
WoWScript PetFollow()
return
}
if !${Me.Pet.Target.GUID.Equal[${Target.GUID}]} && ${This.LastPetAttackTime} < ${LavishScript.RunningTime} - 2000
{
This:Output["Casting: PetAttack on ${Target.Name}"]
WoWScript PetAttack()
LastPetAttackTime:Set[${LavishScript.RunningTime}]
return
}
if ${Me.Pet.Target.GUID.Equal[${Target.GUID}]}
{
if ${Me.Action[Intimidation].Usable}
{
Toon:CastSpellGUID[${Target.GUID}, Intimidation]
return
}
if ${Me.Action[Kill Command].Usable}
{
Toon:CastSpellGUID[${Target.GUID}, Kill Command]
return
}
}
return
}
;** - Melee - ******************************************************************* /
member NeedMelee()
{
if ${Target.IsTotem} || ${Me.Casting}
{
return FALSE
}
if ${useMeleeTrap} && ${Toon.canCast[${MeleeTrap}]}
{
return TRUE
}
if ${This.isCCed[${Target.GUID}, "root"]} || ${This.isCCed[${Target.GUID}, "immo"]} || ${This.isCCed[${Target.GUID}, "fear"]}
{
return FALSE
}
if ${useMeleeMongoose} && ${Toon.canCast[Mongoose Bite]} && ${Me.Action[Mongoose Bite].Usable}
{
return TRUE
}
if ${useMeleeWing} && ${Toon.canCast[Wing Clip]} && ${Toon.canBuff[${Target.GUID}, Wing Clip]} && ${Toon.isFacingAway}
{
return TRUE
}
if ${useMeleeRaptor} && ${Toon.canCast[Raptor Strike]}
{
return TRUE
}
if !${Me.Attacking}
{
return TRUE
}
return FALSE
}
method MeleePulse()
{
if ${useMeleeTrap} && ${Toon.canCast[${MeleeTrap}]}
{
This:Output["Casting: ${MeleeTrap} to trap?! ${Target.Name}"]
Toon:CastSpell[${MeleeTrap}]
return
}
if ${useMeleeMongoose} && ${Toon.canCast[Mongoose Bite]} && ${Me.Action[Mongoose Bite].Usable}
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Mongoose Bite]
return
}
if ${useMeleeWing} && ${Toon.canCast[Wing Clip]} && ${Toon.canBuff[${Target.GUID}, Wing Clip]} && ${Toon.isFacingAway}
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Wing Clip]
return
}
if ${useMeleeRaptor} && ${Toon.canCast[Raptor Strike]}
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Raptor Strike]
return
}
if !${Me.Attacking}
{
WoWScript AttackTarget()
return
}
return
}
;** - Shot - ******************************************************************** /
member NeedShot()
{
if ${Target.IsTotem} || ${Me.Casting} || ${This.OutOfAmmo}
{
return FALSE
}
if ${useShotAimed} && ${Toon.canCast[Aimed Shot]} && ${This.PvPAggroWithin[15, TRUE]} < 1 || !${Me.InCombat}
{
return TRUE
}
if ${useShotArcane} && ${Toon.canCast[Arcane Shot]}
{
return TRUE
}
if ${useShotMulti} && ${Toon.canCast[Multishot]} && ${This.PvPAggroWithin[30, FALSE]} > 3
{
return TRUE
}
if ${useShotConcussive} && ${Toon.canCast[Concussive Shot]} && ${Toon.canBuff[${Target.GUID}, Concussive Shot]}
{
return TRUE
}
if ${useShotSteady} && ${Toon.canCast[Steady Shot]} && ${Me.Buff[Concussive Shot](exists)} && ${This.PvPAggroWithin[15, TRUE]} < 1 && ${This.LastSteadyShotTime} < ${LavishScript.RunningTime} - 15000
{
return TRUE
}
if ${useShotSting} && ${Toon.canCast[${ShotSting}]} && ${Toon.canBuff[${Target.GUID}, ${ShotSting}]} && ${This.LastStingTime} < ${LavishScript.RunningTime} - 15000
{
return TRUE
}
if ${useShotTrap} && ${Toon.canCast[${ShotTrap}]}
{
return TRUE
}
if !${Me.Action[Auto Shot].AutoRepeat}
{
return TRUE
}
return FALSE
}
method ShotPulse()
{
if ${useShotAimed} && ${Toon.canCast[Aimed Shot]} && ${This.PvPAggroWithin[15, TRUE]} < 1
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Aimed Shot]
return
}
if ${useShotArcane} && ${Toon.canCast[Arcane Shot]}
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Arcane Shot]
return
}
if ${useShotMulti} && ${Toon.canCast[Multishot]} && ${This.PvPAggroWithin[30, FALSE]} > 3
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Multishot]
return
}
if ${useShotConcussive} && ${Toon.canCast[Concussive Shot]} && ${Toon.canBuff[${Target.GUID}, Concussive Shot]}
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Concussive Shot]
return
}
if ${useShotSteady} && ${Toon.canCast[Steady Shot]} && ${Me.Buff[Concussive Shot](exists)} && ${This.PvPAggroWithin[15, TRUE]} < 1 && ${This.LastSteadyShotTime} < ${LavishScript.RunningTime} - 15000
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, Steady Shot]
LastSteadyShotTime:Set[${LavishScript.RunningTime}]
return
}
if ${useShotSting} && ${Toon.canCast[${ShotSting}]} && ${Toon.canBuff[${Target.GUID}, ${ShotSting}]} && ${This.LastStingTime} < ${LavishScript.RunningTime} - 15000
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpellGUID[${Target.GUID}, ${ShotSting}]
LastStingTime:Set[${LavishScript.RunningTime}]
return
}
if ${useShotTrap} && ${Toon.canCast[${ShotTrap}]}
{
This:Output["Casting: ${ShotTrap} to kick ... whatever to ${Target.Name}"]
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
Toon:CastSpell[${ShotTrap}]
return
}
if !${Me.Action[Auto Shot].AutoRepeat}
{
Toon:CastSpellGUID[${Target.GUID}, Auto Shot]
return
}
return
}
;** - Racial - ****************************************************************** /
member NeedRacial()
{
;--- Blood Elf
if ${Toon.canCast[Arcane Torrent]} && ${Me.Buff[Mana Tap].Application} < 3 && ${Me.Target.PctMana} > 0
return TRUE
if ${Toon.canCast[Mana Tap]} && ${Target.Casting(exists)} && ${Target.Distance} < 10 && ${Me.Target.PctMana} > 0
return TRUE
;--- Tauren
if ${Toon.canCast[War Stomp]} && ( ${Target.Casting(exists)} && ${Target.Distance} < 8 || ${This.PvPAggroWithin[8, FALSE]} > 1 && ${Me.PctHPs} < 50 )
return TRUE
;--- Dwarf
if ( ${Me.Buff[Poisoned](exists)} || ${Me.Buff[Diseased](exists)} || ${Me.Buff[Bleeding](exists)} ) && ${Toon.canCast[Stoneform]}
return TRUE
;--- Orc
if ${Toon.canCast[Blood Fury]} && ${Me.PctHPs} > 90 && ${Target.PctHPs} > 50 && ${This.PvPAggroWithin[10, TRUE]} < 1
return TRUE
;--- Troll
if ${Toon.canCast[Berserking]} && ${Me.PctHPs} > 90 && ${Target.PctHPs} > 50 && ${This.PvPAggroWithin[10, TRUE]} < 1
return TRUE
return FALSE
}
method RacialPulse()
{
;--- Blood Elf
if ${Toon.canCast[Arcane Torrent]} && ${Me.Buff[Mana Tap].Application} < 3 && ${Me.Target.PctMana} > 0
{
This:Output["Casting: Racial Arcane Torrent"]
Toon:CastSpell[Arcane Torrent]
return
}
if ${Toon.canCast[Mana Tap]} && ${Target.Casting(exists)} && ${Target.Distance} < 10 && ${Me.Target.PctMana} > 0
{
This:Output["Casting: Racial Mana Tap"]
Toon:CastSpell[Mana Tap]
return
}
;--- Tauren
if ${Toon.canCast[War Stomp]} && ( ${Target.Casting(exists)} && ${Target.Distance} < 8 || ${This.PvPAggroWithin[8, FALSE]} > 1 && ${Me.PctHPs} < 50 )
{
This:Output["Casting: Racial War Stomp"]
Toon:CastSpell[War Stomp]
return
}
;--- Dwarf
if ( ${Me.Buff[Poisoned](exists)} || ${Me.Buff[Diseased](exists)} || ${Me.Buff[Bleeding](exists)} ) && ${Toon.canCast[Stoneform]}
{
This:Output["Casting: Racial Stoneform"]
Toon:CastSpell[Stoneform]
return
}
;--- Orc
if ${Toon.canCast[Blood Fury]} && ${Me.PctHPs} > 90 && ${Target.PctHPs} > 50 && ${This.PvPAggroWithin[10, TRUE]} < 1
{
This:Output["Casting: Racial Blood Fury"]
Toon:CastSpell[Blood Fury]
return
}
;--- Troll
if ${Toon.canCast[Berserking]} && ${Me.PctHPs} > 90 && ${Target.PctHPs} > 50 && ${This.PvPAggroWithin[10, TRUE]} < 1
{
This:Output["Casting: Racial Berserking"]
Toon:CastSpell[Berserking]
return
}
return
}
;** - Prebuff All - ************************************************************* /
variable bool HookBGPrebuff = TRUE
member NeedBGPrebuff()
{
This:SortAmmo
if ${This.PetDead} && ${This.LastPetCallTime} < ${LavishScript.RunningTime} - 2000
{
if ${This.NeedCallPet} && ${Toon.canCast[Call Pet]}
{
return TRUE
}
elseif ${Toon.canCast[Revive Pet]}
{
return TRUE
}
}
if ${usePrebuffTable} && ${This.NeedBGObjects["Refreshment Table","Conjured Manna Biscuit", ${PrebuffTableStacks}]}
{
return TRUE
}
if ${usePrebuffSoulwell} && ${This.NeedBGObjects["Soulwell","Master Healthstone", 1]}
{
return TRUE
}
return FALSE
}
method BGPrebuffPulse()
{
if ${This.PetDead} && ${LastPetCallTime} < ${LavishScript.RunningTime} - 2000
{
Toon:Standup
if ${This.NeedCallPet} && ${Toon.canCast[Call Pet]}
{
This:Output["Casting: Call Pet"]
Toon:CastSpell[Call Pet]
return
}
elseif ${Toon.canCast[Revive Pet]}
{
This:Output["Casting: Revive Pet"]
Toon:CastSpell[Revive Pet]
return
}
LastPetCallTime:Set[${LavishScript.RunningTime}]
}
if ${usePrebuffTable} && ${This.NeedBGObjects["Refreshment Table","Conjured Manna Biscuit", ${PrebuffTableStacks}]}
{
This:BGObjectsPulse["Refreshment Table","Conjured Manna Biscuit", ${PrebuffTableStacks}]
return
}
if ${usePrebuffSoulwell} && ${This.NeedBGObjects["Soulwell","Master Healthstone", 1]}
{
This:BGObjectsPulse["Soulwell","Master Healthstone", 1]
return
}
return
}
;** - Guarding All - ************************************************************ /
variable bool HookBGGuard = TRUE
member NeedBGGuard()
{
This:SortAmmo
; pulse in here because of randomness ...
if ${This.NeedRandomMove}
{
return TRUE
}
if ${This.PetDead} && ${This.LastPetCallTime} < ${LavishScript.RunningTime} - 2000
{
if ${This.NeedCallPet} && ${Toon.canCast[Call Pet]}
{
return TRUE
}
elseif ${Toon.canCast[Revive Pet]}
{
return TRUE
}
}
if ${useGuardTrap} && ${Toon.canCast[${GuardTrap}]}
{
return TRUE
}
if ${useGuardFlare} && ${Toon.canCast[Flare]} && ${This.LastFlareTime} < ${LavishScript.RunningTime} - 60000
{
return TRUE
}
return FALSE
}
method BGGuardPulse()
{
This:RandomMovePulse
if ${This.PetDead} && ${This.LastPetCallTime} < ${LavishScript.RunningTime} - 2000
{
if ${This.NeedCallPet} && ${Toon.canCast[Call Pet]}
{
This:Output["Casting: Call Pet"]
Toon:CastSpell[Call Pet]
return
}
elseif ${Toon.canCast[Revive Pet]}
{
This:Output["Casting: Revive Pet"]
Toon:CastSpell[Revive Pet]
return
}
LastPetCallTime:Set[${LavishScript.RunningTime}]
}
if ${useGuardTrap} && ${Toon.canCast[${GuardTrap}]}
{
This:Output["Casting: ${GuardTrap}"]
Toon:CastSpell[${GuardTrap}]
return
}
if ${useGuardFlare} && ${Toon.canCast[Flare]} && ${This.LastFlareTime} < ${LavishScript.RunningTime} - 60000
{
This:Output["Casting: Flare to see hidden...!"]
Toon:CastSpell[Flare]
ISXWoW:ClickTerrain[${Me.X},${Me.Y},${Me.Z}]
LastFlareTime:Set[${LavishScript.RunningTime}]
return
}
return
}
;** - Dead Setup - ************************************************************** /
member NeedDead()
{
return FALSE
}
method DeadPulse()
{
return
}
;** - Trinket - ***************************************************************** /
member NeedTrinket()
{
if ${Item[${TrinketName1}](exists)} && ${Me.Action[${TrinketName1}].Usable} && ${Me.PctHPs} < ${This.TrinketMyHealth1} && ${Me.PctMana} < ${This.TrinketMyMana1} && ( !${This.TrinketPvP1} || ${This.TrinketPvPDebuff} )
{
return TRUE
}
if ${Item[${TrinketName1}](exists)} && ${Me.Action[${TrinketName2}].Usable} && ${Me.PctHPs} < ${This.TrinketMyHealth2} && ${Me.PctMana} < ${This.TrinketMyMana2} && ( !${This.TrinketPvP2} || ${This.TrinketPvPDebuff} )
{
return TRUE
}
return FALSE
}
method TrinketPulse()
{
if ${Item[${TrinketName1}](exists)} && ${Me.Action[${TrinketName1}].Usable} && ${Me.PctHPs} < ${This.TrinketMyHealth1} && ${Me.PctMana} < ${This.TrinketMyMana1} && ( !${This.TrinketPvP1} || ${This.TrinketPvPDebuff} )
{
This:CustOutput["Use Trinket ${TrinketName1}"]
Item[${TrinketName1}]:Use
return
}
if ${Item[${TrinketName1}](exists)} && ${Me.Action[${TrinketName2}].Usable} && ${Me.PctHPs} < ${This.TrinketMyHealth2} && ${Me.PctMana} < ${This.TrinketMyMana2} && ( !${This.TrinketPvP2} || ${This.TrinketPvPDebuff} )
{
This:Output["Use Trinket ${TrinketName2}"]
Item[${TrinketName2}]:Use
return
}
return
}
;** - NeedClassAttack - ********************************************************* /
member NeedClassAttack()
{
;--- All Class -----------------------------------------------------------
;--- Druid ---------------------------------------------------------------
if ${Target.Class.Equal["Druid"]}
{
if ${Toon.canBuff[${Target.GUID}, "Hunter's Mark"]} && ${Toon.canCast["Hunter's Mark"]}
{
return TRUE
}
}
;--- Hunter --------------------------------------------------------------
if ${Target.Class.Equal["Hunter"]}
{
}
;--- Mage ----------------------------------------------------------------
if ${Target.Class.Equal["Mage"]}
{
}
;--- Paladin -------------------------------------------------------------
if ${Target.Class.Equal["Paladin"]}
{
}
;--- Priest --------------------------------------------------------------
if ${Target.Class.Equal["Priest"]}
{
}
;--- Rogue ---------------------------------------------------------------
if ${Target.Class.Equal["Rogue"]}
{
if ${Toon.canBuff[${Target.GUID}, "Hunter's Mark"]} && ${Toon.canCast["Hunter's Mark"]}
{
return TRUE
}
}
;--- Shaman --------------------------------------------------------------
if ${Target.Class.Equal["Shaman"]}
{
}
;--- Warlock -------------------------------------------------------------
if ${Target.Class.Equal["Warlock"]}
{
}
;--- Warrior -------------------------------------------------------------
if ${Target.Class.Equal["Warrior"]}
{
}
return FALSE
}
method ClassAttackPulse()
{
;--- All Class -----------------------------------------------------------
;--- Druid ---------------------------------------------------------------
if ${Target.Class.Equal["Druid"]}
{
if ${Toon.canBuff[${Target.GUID}, "Hunter's Mark"]} && ${Toon.canCast["Hunter's Mark"]}
{
Toon:CastSpellGUID[${Target.GUID}, "Hunter's Mark"]
return
}
return
}
;--- Hunter --------------------------------------------------------------
if ${Target.Class.Equal["Hunter"]}
{
return
}
;--- Mage ----------------------------------------------------------------
if ${Target.Class.Equal["Mage"]}
{
return
}
;--- Paladin -------------------------------------------------------------
if ${Target.Class.Equal["Paladin"]}
{
return
}
;--- Priest --------------------------------------------------------------
if ${Target.Class.Equal["Priest"]}
{
return
}
;--- Rogue ---------------------------------------------------------------
if ${Target.Class.Equal["Rogue"]}
{
if ${Toon.canBuff[${Target.GUID}, "Hunter's Mark"]} && ${Toon.canCast["Hunter's Mark"]}
{
Toon:CastSpellGUID[${Target.GUID}, "Hunter's Mark"]
return
}
return
}
;--- Shaman --------------------------------------------------------------
if ${Target.Class.Equal["Shaman"]}
{
return
}
;--- Warlock -------------------------------------------------------------
if ${Target.Class.Equal["Warlock"]}
{
return
}
;--- Warrior -------------------------------------------------------------
if ${Target.Class.Equal["Warrior"]}
{
return
}
return
}
;** - SpellOn - ***************************************************************** /
variable objectref kPlayer
member NeedSpellOn(string unityp="all", string name1="none", string name2="none", int value1=0, int value2=0, int kMinRange=0, int kMaxRange=25)
{
variable int i = 1
variable guidlist kPlayerList
kPlayerList:Search[-players, -${unityp}, -noself, -alive, -lineofsight, -range ${kMinRange}-${kMaxRange}]
i:Set[1]
if ${kPlayerList.Count}
{
do
{
kPlayer:Set[${kPlayerList.Object[${i}].GUID}]
if !${kPlayer.Buff[${name1}](exists)}&& ${Toon.canCast[${name1}]} && (!${kPlayer.Buff[${name2}](exists)} || ${name2.Equal["none"]}) && (${kPlayer.PctHPs} < ${value1} || !${value1}) && (${kPlayer.PctHPs} > ${value2} || !${value2})
{
return TRUE
}
}
while ${i:Inc} <= ${kPlayerList.Count}
}
kPlayerList:Clear
return FALSE
}
method SpellOnPulse(string unityp, string name1="none", string name2="none", int value1=0, int value2=0, int kMinRange=0, int kMaxRange=25)
{
Toon:CastSpellGUID[${kPlayer}, ${name1}]
;WoWScript ClearTarget()
return
}
;** - BGObjects Get - *********************************************************** /
member NeedBGObjects(string objectName, string objectItem, int objectValue)
{
variable int i = 1
variable guidlist UsableObjs
variable objectref UseableObject
UsableObjs:Search[-gameobjects, -usable, -range 0-40]
i:Set[1]
if ${UsableObjs.Count}
{
do
{
UseableObject:Set[${UsableObjs.Object[${i}].GUID}]
if ${UseableObject.Name.Equal[${objectName}]} && ${Consumable.ItemX[${objectItem}]} < ${objectValue}
{
return TRUE
}
}
while ${i:Inc} <= ${objectref.Count}
}
UsableObjs:Clear
return FALSE
}
method BGObjectsPulse(string objectName, string objectItem, int objectValue)
{
variable int i = 1
variable guidlist UsableObjs
variable objectref UseableObject
UsableObjs:Search[-gameobjects, -usable, -range 0-40]
i:Set[1]
if ${UsableObjs.Count}
{
do
{
UseableObject:Set[${UsableObjs.Object[${i}].GUID}]
if ${UseableObject.Name.Equal[${objectName}]} && ${Consumable.ItemX[${objectItem}]} < ${objectValue}
{
if ${UseableObject.Distance} > 4 && !${Navigator.MovingToPoint[${UseableObject.X},${UseableObject.Y},${UseableObject.Z}]}
{
This:CustOutput["Moving towards ${UseableObject.Name} at distance ${UseableObject.Distance}!"]
Navigator:MoveToLoc[${UseableObject.X},${UseableObject.Y},${UseableObject.Z}]
}
if ${UseableObject.Distance} < 4
{
Toon:Stop
This:CustOutput["Inventory ${Consumable.ItemX[${objectItem}]} ${objectItem} or Stacks!"]
This:CustOutput["Using ${UseableObject.Name} at distance ${UseableObject.Distance}!"]
UseableObject:Use
Bot.RandomPause:Set[16]
}
return
}
}
while ${i:Inc} <= ${objectref.Count}
}
UsableObjs:Clear
return
}
;** - FaceForSpell - ************************************************************ /
member NeedFaceForSpell()
{
variable string currentSpell
currentSpell:Set[${WoWScript[UnitCastingInfo("player")]}]
if ${currentSpell.Equal[Aimed Shot]}
{
return TRUE
}
return FALSE
}
method FaceForSpellPulse()
{
Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
return
}
;** - NoMoreSpell - ************************************************************* /
member NeedNoMoreSpell()
{
variable string currentSpell
currentSpell:Set[${WoWScript[UnitCastingInfo("player")]}]
if ${Object[${Target.GUID}].Buff[${currentSpell}](exists)}
{
return TRUE
}
return FALSE
}
method NoMoreSpellPulse()
{
WoWScript SpellStopCasting()
return
}
;** - RandomMove - ************************************************************** /
variable int randomMove = 0
member NeedRandomMove()
{
randomMove:Set[${Math.Rand[100]}]
if ${randomMove} == 13
{
return TRUE
}
if ${randomMove} == 66
{
return TRUE
}
if ${randomMove} == 99
{
return TRUE
}
return FALSE
}
method RandomMovePulse()
{
variable int randomheading = ${Math.Rand[360]}
variable int headingdiff
if ${randomMove} == 13
{
do
{
randomheading:Set[${Math.Rand[360]}]
headingdiff:Set[${Math.Abs[${Me.Heading}-${randomheading}]}]
if ${headingdiff} > 180
{
headingdiff:Set[${Math.Calc[360-${headingdiff}]}]
}
}
while ${headingdiff} < 30
This:Output["Random Facing ... lets make them believe we look around"]
Face -heading ${randomheading}
return
}
if ${randomMove} == 66
{
This:Output["One-eighty-bowgrab-petbite take this! ohe-oho!"]
if ${Me.Heading} > 180
{
Face -heading ${Math.Calc[${Me.Heading}-180]}
}
else
{
Face -heading ${Math.Calc[${Me.Heading}+180]}
}
WoWPress Jump
return
}
if ${randomMove} == 99
{
This:Output["Random Jump oheeee oho... lets jump ohe...!"]
WoWPress Jump
return
}
return
}
;******************************************************************************** /
;** Functions, no code * /
;******************************************************************************** /
;** - Assist Mode - ************************************************************* /
;** - Flee Setup - ************************************************************** /
;** - Idle Setup - ************************************************************** /
;** - Event Hooking - *********************************************************** /
;** - CombatEvent - ************************************************************* /
;******************************************************************************** /
;** - Assist Mode - ************************************************************* /
member IsAssistMode()
{
; returns a check that determines if the bot is in party mode
if ${UIElement[chkAssistMode@Overview@Pages@openbot].Checked}
return TRUE
return FALSE
}
;** - Flee Setup - ************************************************************** /
variable bool HookFlee = FALSE
method FleePulse()
{
}
;** - Idle Setup - ************************************************************** /
variable bool NeedCombatIdle = FALSE
method CombatIdle()
{
return
}
;** - Event Hooking - *********************************************************** /
; ---------------------------------------------------------------------
; --- Event and Message Hooking
; ---------------------------------------------------------------------
variable bool needUIHook = TRUE
method UIErrorMessage(string Id, string Msg)
{
if ${Msg.Find[You are too far away]} && !${Bot.PauseFlag} && !${Movement.Speed}
CMovement:MoveForward
elseif ${Msg.Find[Out of range]} && !${Bot.PauseFlag} && !${Movement.Speed}
CMovement:MoveForward
elseif ${Msg.Find[You are facing the wrong way]} && !${Bot.PauseFlag} && !${Movement.Speed}
CMovement:MoveBackward
elseif ${Msg.Find[You can't mount here]} && !${Bot.PauseFlag} && !${Movement.Speed}
CMovement:MoveForward
; elseif ${Msg.Find[Target not in line of sight]} && !${Bot.PauseFlag}
; {
; GlobalBlacklist:Insert[${Target.GUID},5000]
; WoWScript ClearTarget()
; }
elseif ${Msg.Find[Can't attack while dead]}
NeedCallPet:Set[FALSE] /* we will need to use Revive Pet */
elseif ${Msg.Find[You already control a summoned creature]}
NeedCallPet:Set[FALSE] /* we will need to use Revive Pet */
elseif ${Msg.Find[Your pet is dead]}
NeedCallPet:Set[FALSE] /* we will need to use Revive Pet */
elseif ${Msg.Find[Your pet is not dead]}
NeedCallPet:Set[TRUE] /* we need to use Call Pet */
elseif ${Msg.Find[You do not have a pet to summon]}
NoPet:Set[TRUE]
elseif ${Msg.Find[Ammo needs to be in]}
This:UseAmmo /* try to find some ammo to use */
}
;** - CombatEvent - ************************************************************* /
variable bool needCombatHook = TRUE
method CombatEvent(string unitID, string unitAction, string isCrit, string amtDamage, string damageType)
{
}
;******************************************************************************** /
;** Special Functions * /
;******************************************************************************** /
;** - Inventory Counter Items - ************************************************* /
;** - CustOutput - ************************************************************** /
;** - PvPAggroWithin - ********************************************************** /
;** - myWait - ****************************************************************** /
;** - canBuff - ***************************************************************** /
;******************************************************************************** /
;** - PvP Trinket Debuffed - **************************************************** /
/*
TODO: Add all emergency Debuffs
*/
member TrinketPvPDebuff()
{
if ${Me.Buff[Fear](exists)}
{
return TRUE
}
if ${Me.Buff[Psychic Scream](exists)}
{
return TRUE
}
if ${Me.Buff[Howl of Terror](exists)}
{
return TRUE
}
if ${Me.Buff[Intimidating Shout](exists)}
{
return TRUE
}
if ${Me.Buff[Polymorph](exists)}
{
return TRUE
}
if ${Me.Buff[Freezing Trap Effect](exists)}
{
return TRUE
}
return FALSE
}
;** - CustOutput - ************************************************************** /
method CustOutput(string Txt)
{
UIElement[ClassGUI].FindChild[Pages].FindChild[Output].FindChild[Console]:Echo["${Txt}"]
return
}
;** - PvPAggroWithin - ********************************************************** /
member PvPAggroWithin(int Range, bool TargetingMe = FALSE)
{
variable guidlist Aggros
if ${TargetingMe}
{
Aggros:Search[-players,-pvp,-targetingme,-alive,-notflying,-attackable,-range 0-${Range}]
}
else
{
Aggros:Search[-players,-pvp,-alive,-notflying,-attackable,-range 0-${Range}]
}
return ${Aggros.Count}
}
;** - myWait - ****************************************************************** /
variable int myTimer = 0
member myWait()
{
if ${This.myTimer} < ${LavishScript.RunningTime}
{
This.myTimer:Set[${This.InSeconds[3]}]
return TRUE
}
return FALSE
}
;** - PetDead - ***************************************************************** /
; test if our pet is dead or missing
member PetDead()
{
if (${Me.Pet(exists)} && ${Me.Pet.Dead}) || !${Me.Pet(exists)} || !${Me.Pet.PctHPs}
return TRUE
return FALSE
}
;** - sortAmmo - **************************************************************** /
; try to move spare ammo to quiver or ammo pouch
method SortAmmo()
{
variable int ContainerIndex = 0
variable int Index
variable int SpotIndex
variable int EmptySpot = 0
variable int ApiIndex = 19
; serarch for a quiver or ammo pouch
Index:Set[1]
do
{
if ${Me.Bag[${Index}](exists)} && (${Me.Bag[${Index}].Name.Find["Quiver"]} || ${Me.Bag[${Index}].Name.Find["Ammo Pouch"]})
ContainerIndex:Set[${Index}]
}
while ${Me.Bag[${Index:Inc}](exists)}
; if we have a quiver or ammo pouch, try to fill it
if ${ContainerIndex} && ${Me.Bag[${ContainerIndex}].EmptySlots} > 0
{
Index:Set[1]
do
{
if !${Me.Bag[${ContainerIndex}].Item[${Index}].Name(exists)}
EmptySpot:Set[${Index}]
}
while ${Index:Inc} <= ${Me.Bag[${ContainerIndex}].Slots}
if ${EmptySpot}
{
Index:Set[0]
do
{
if ${Index} != ${ContainerIndex}
{
SpotIndex:Set[1]
do
{
if ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Arrow"]} || ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Shot"]} || ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Slugs"]} || ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Shells"]}
{
Me.Bag[${Index}].Item[${SpotIndex}]:PickUp
This:Timeout
ApiIndex:Set[${Math.Calc[${ApiIndex} + ${ContainerIndex}]}]
WoWScript "PutItemInBag(${ApiIndex})"
return
}
}
while ${SpotIndex:Inc} <= ${Me.Bag[${Index}].Slots}
}
}
while ${Me.Bag[${Index:Inc}](exists)}
}
}
}
;** - UseAmmo - ***************************************************************** /
; try to find ammo to use
method UseAmmo()
{
variable int Index = 0
variable int SpotIndex
OutOfAmmo:Set[TRUE]
do
{
SpotIndex:Set[1]
do
{
if ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Arrow"]} || ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Shot"]} || ${Me.Bag[${Index}].Item[${SpotIndex}].Name.Find[" Slugs"]}
{
Me.Bag[${Index}].Item[${SpotIndex}]:Use
OutOfAmmo:Set[FALSE]
return
}
}
while ${SpotIndex:Inc} <= ${Me.Bag[${Index}].Slots}
}
while ${Me.Bag[${Index:Inc}](exists)}
}
;** - isCCed - ****************************************************************** /
member isCCed(string theGUID, string debuffTyp="none")
{
if (${debuffTyp.Equal["none"]} || ${debuffTyp.Equal["root"]})
{
if ${Object[${theGUID}].Buff[Entangling Roots](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Counterattack](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Frost Nova](exists)}
return TRUE
}
if (${debuffTyp.Equal["none"]} || ${debuffTyp.Equal["immo"]})
{
if ${Object[${theGUID}].Buff[Cyclone](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Freezing Trap Effect](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Polymorph](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Sap](exists)}
return TRUE
}
if (${debuffTyp.Equal["none"]} || ${debuffTyp.Equal["slow"]})
{
if ${Object[${theGUID}].Buff[Concussive Shot](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Frostbolt](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Hamstring](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Frost Shock](exists)}
return TRUE
}
if (${debuffTyp.Equal["none"]} || ${debuffTyp.Equal["fear"]})
{
if ${Object[${theGUID}].Buff[Fear](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Howl of Terror](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Psychic Scream](exists)}
return TRUE
if ${Object[${theGUID}].Buff[Intimidating Shout](exists)}
return TRUE
}
return FALSE
}
; ;** - ToRangedSpecial - ********************************************************* /
; method ToRangedSpecial()
; {
;
; if !${Target(exists)} || ${Target.Dead}
; {
; Toon:Stop
; return
; }
;
; if ${Target.Distance} < ${Toon.MaxRanged} && ${Target.Distance} > ${Toon.MinRanged} && ${Movement.Speed}
; {
; Navigator:FaceXYZ[${Target.X},${Target.Y},${Target.Z}]
; Toon:Stop
; return
; }
; elseif ${Target.Distance} > ${Toon.MaxRanged}
; {
; Navigator:MoveToMob[${Target.GUID}]
; }
; elseif ${Target.Distance} < ${Toon.MinRanged}
; {
; Navigator:MoveBackward[1500]
; }
; }
;******************************************************************************** /
;** Gui Functions * /
;******************************************************************************** /
;** - Initialize - ************************************************************** /
;** - Shutdown - **************************************************************** /
;** - GUI Setup - *************************************************************** /
;** - SaveGUI - ***************************************************************** /
;******************************************************************************** /
;** - Initialize - ************************************************************** /
method Initialize()
{
This:SetGUI
This:InitHunterGUI
This:CustOutput["Darkfriend's HunterPimp v0.1!"]
if ${Toon.canCast[Track Hidden]} && !${Me.Buff[Track Hidden](exists)}
{
This:CastSpell[Track Hidden]
}
This:SortAmmo
This:UseAmmo
}
;** - Init Hunter GUI - ********************************************************* /
method InitHunterGUI()
{
if ${This.UseVar[Output]}
{
UIElement[EnableOutput@Output@Pages@ClassGUI]:SetChecked
}
}
;** - Class GUI Change - ******************************************************** /
method ClassGUIChange(string Action)
{
switch ${Action}
{
case EnableOutput
Class:SetUse[Output,${UIElement[EnableOutput@Output@Pages@ClassGUI].Checked}]
break
}
}
;** - Shutdown - **************************************************************** /
method Shutdown()
{
This:SaveGUI
}
;** - GUI Setup - *************************************************************** /
method SetGUI()
{
variable string uniqueToon = "${Me.Name}:${Me.Class}:${ISXWoW.RealmName.Replace[',REMOVE,.,REMOVE]}"
Config:SetSlider[${uniqueToon},"sldRestHP","sldRestHP@Main@Pages@ClassGUI",60]
Config:SetSlider[${uniqueToon},"sldStandHP","sldStandHP@Main@Pages@ClassGUI",100]
Config:SetSlider[${uniqueToon},"sldPullBailOutTimer","sldPullBailOutTimer@Main@Pages@ClassGUI",60]
; Abilities, Shadow Stuff
Config:SetCheckBox[${uniqueToon},"chkUseMBL","chkUseMBL@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseSWP","chkUseSWP@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseSWD","chkUseSWD@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseMFL","chkUseMFL@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseVEM","chkUseVEM@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseDPL","chkUseDPL@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUsePSC","chkUsePSC@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseSIL","chkUseSIL@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseSFO","chkUseSFO@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseTOW","chkUseTOW@Main@Pages@ClassGUI",TRUE]
; Abilities, Disciple Stuff
Config:SetCheckBox[${uniqueToon},"chkUsePWS","chkUsePWS@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUsePWF","chkUsePWF@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseIFI","chkUseIFI@Main@Pages@ClassGUI",TRUE]
; Abilities, Holy Stuff
Config:SetCheckBox[${uniqueToon},"chkUseREN","chkUseREN@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseFHE","chkUseFHE@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseLHE","chkUseLHE@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseHHE","chkUseHHE@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseGHE","chkUseGHE@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseDMA","chkUseDMA@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseCDI","chkUseCDI@Main@Pages@ClassGUI",TRUE]
; Abilities, Special Stuff
Config:SetCheckBox[${uniqueToon},"chkUseTR1","chkUseTR1@Main@Pages@ClassGUI",TRUE]
Config:SetCheckBox[${uniqueToon},"chkUseTR2","chkUseTR2@Main@Pages@ClassGUI",TRUE]
}
;** - SaveGUI - ***************************************************************** /
method SaveGUI()
{
variable string uniqueToon = "${Me.Name}:${Me.Class}:${ISXWoW.RealmName.Replace[',REMOVE,.,REMOVE]}"
Config:SaveSlider[${uniqueToon},"sldRestHP"]
Config:SaveSlider[${uniqueToon},"sldStandHP"]
Config:SaveSlider[${uniqueToon},"sldPullBailOutTimer"]
; Abilities, Shadow Stuff
Config:SaveCheckBox[${uniqueToon},"chkUseMBL"]
Config:SaveCheckBox[${uniqueToon},"chkUseSWP"]
Config:SaveCheckBox[${uniqueToon},"chkUseSWD"]
Config:SaveCheckBox[${uniqueToon},"chkUseMFL"]
Config:SaveCheckBox[${uniqueToon},"chkUseVEM"]
Config:SaveCheckBox[${uniqueToon},"chkUseDPL"]
Config:SaveCheckBox[${uniqueToon},"chkUsePSC"]
Config:SaveCheckBox[${uniqueToon},"chkUseSIL"]
Config:SaveCheckBox[${uniqueToon},"chkUseSFO"]
Config:SaveCheckBox[${uniqueToon},"chkUseTOW"]
; Abilities, Disciple Stuff
Config:SaveCheckBox[${uniqueToon},"chkUsePWS"]
Config:SaveCheckBox[${uniqueToon},"chkUsePWF"]
Config:SaveCheckBox[${uniqueToon},"chkUseIFI"]
; Abilities, Holy Stuff
Config:SaveCheckBox[${uniqueToon},"chkUseREN"]
Config:SaveCheckBox[${uniqueToon},"chkUseFHE"]
Config:SaveCheckBox[${uniqueToon},"chkUseLHE"]
Config:SaveCheckBox[${uniqueToon},"chkUseHHE"]
Config:SaveCheckBox[${uniqueToon},"chkUseGHE"]
Config:SaveCheckBox[${uniqueToon},"chkUseDMA"]
Config:SaveCheckBox[${uniqueToon},"chkUseCDI"]
; Abilities, Special Stuff
Config:SaveCheckBox[${uniqueToon},"chkUseTR1"]
Config:SaveCheckBox[${uniqueToon},"chkUseTR2"]
}
}