Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

:moveloop
/if (${Me.XTarget}>=1) /goto :Movepause
/bc [+Y+]Path : [+y+]${CampNum}[+Y+] Point : [+y+]${i} [+x+]
/squelch /moveto loc ${Path[${CampNum},${i},1]} ${Path[${CampNum},${i},2]}
:MoveLoop1
/doevents
:moveloop
/if (${Me.XTarget}>=1) /goto :Movepause
/if (${Group.Member[PutHealerNameHere].CurrentMana}<25) {
/sit
/echo Waiting for mana, 120s
/delay 120s
}
/bc [+Y+]Path : [+y+]${CampNum}[+Y+] Point : [+y+]${i} [+x+]
/squelch /moveto loc ${Path[${CampNum},${i},1]} ${Path[${CampNum},${i},2]}
:MoveLoop1
/doevents
Is there a similar macro you could use with a warrior tank?
I'm still working on a version of this for a warrior. Having some interesting issues with pulling but if I get it working more smoothly I'll gladly post it here.
| This is the grunt of the pulling routine
| This bit is checking for targets while moving....
| This is here incase it tries to pull another mob when it already pulled one.
/if (${Me.XTarget}) {
/face fast
/goto :Movepause
}
/varset CheckMob ${SpawnCount[NPC radius ${PullRange} zradius ${zrange} los noalert 1]}
/if (${CheckMob}>${NumberMobsToCheck}) /varset CheckMob ${NumberMobsToCheck}
/if (${CheckMob}) {
/for tt 1 to ${CheckMob}
/doevents
/if (${ReturnGribble}==1) {
/varcalc i ${i}-1
/goto :ReturnPath
}
/tar id ${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}
/delay 1s ${Target.ID}==${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}||${Me.CombatState.Equal[COMBAT]}
/if (${Target.Type.Equal[NPC]} && ${Target.LineOfSight}) {
/if (!${Me.Moving} && ${Target.LineOfSight} && !${Me.XTarget} && ${Target.Distance}<=250) {
/face fast
/delay 5
/if (!${Me.XTarget}) {/bc Shooting an arrow at [+t+]${Target.Name}
/ranged
}
/delay 2s
}
/delay 4
}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<150 && ${Target.LineOfSight} && ${Me.XTarget}<2) {
/delay 2s ${Me.CombatState.Equal[COMBAT]}
}
| This is here incase it tries to pull another mob when it already pulled one.
/if (${Me.XTarget}) {
/face fast
/goto :Movepause
}
/delay 2s
/next tt
}
}
/delay 1
/if (!${MoveTo.Stopped} && !${Me.XTarget}) /goto :MoveLoop1
| This bit is checking for mobs to pull at the way point.
| This is here incase it tries to pull another mob when it already pulled one.
/if (${Me.XTarget}) {
/face fast
/goto :Movepause
}
/varset CheckMob ${SpawnCount[NPC radius ${PullRange} zradius ${zrange} los noalert 1]}
/if (${CheckMob}>${NumberMobsToCheck}) /varset CheckMob ${NumberMobsToCheck}
/if (${CheckMob}) {
/for tt 1 to ${CheckMob}
/doevents
/if (${ReturnGribble}==1) {
/varcalc i ${i}-1
/goto :ReturnPath
}
/tar id ${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}
/delay 1s ${Target.ID}==${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}||${Me.CombatState.Equal[COMBAT]}
/if (${Target.Type.Equal[NPC]} && ${Target.LineOfSight}) {
/if (!${Me.Moving} && ${Target.LineOfSight} && !${Me.XTarget} && ${Target.Distance}<=250) {
/face fast
/delay 5
/if (!${Me.XTarget}) {/bc Shooting an arrow at [+t+]${Target.Name}
/ranged
}
/delay 2s
}
/delay 4
}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<150 && ${Target.LineOfSight}) {
/delay 2s ${Me.CombatState.Equal[COMBAT]}
}
| This is here incase it tries to pull another mob when it already pulled one.
/if (${Me.XTarget}) {
/face fast
/goto :Movepause
}
/delay 2s
/next tt
}
/varcalc i ${i}+1
/if (${Bool[${Path[${CampNum},${i},1]}]}) /goto :MoveLoop
/delay 1s
