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.

Sub DoWeChase(string SentFrom)
/if (!${ChaseAssist}) /return
/if (${Me.Hovering}) /return
/declare StuckCount int local 0
/declare X1 int local
/declare Y1 int local
/declare MeshLoadedCheck bool local FALSE
| Stop sticking if mobs are on xtarget
/if (${ChaseAssist}==1) {
/if (${SpawnCount[npc xtarhater]} && !${Role.Find[pull]} && ${MainAssist.NotEqual[${Me}]} && ${Spawn[=${WhoToChase}].Distance} < ${CampRadius}) {
/if (${Stick.Active}) {
/if (${DebugMove}) /echo \atDEBUG Not gonna be an idiot and move during fight cause I dont have to.
/stick off
/moveto off
/if (${PullMoveUse.Equal[nav]}) {
/if (${Navigation.Active}) /nav stop
}
}
/return
}
}
/if (${PullMoveUse.Equal[nav]}) {
/varset MeshLoadedCheck ${Navigation.MeshLoaded}
}
/doevents
/call EndMacroIf
/declare DWMWPCurrent int local 0
/declare DWMTimer timer local 0
/if (${Debug}) /echo \atDEBUG DoWeChase: Enter ${SentFrom} \agLine#: ${Macro.CurLine}
/if (${DebugMove}) /echo \atDEBUG DoWeChase:(ChaseAssist) My distance from (${WhoToChase}) is: (${Spawn[=${WhoToChase}].Distance}). \agLine#: ${Macro.CurLine}
/if (${JustZoned}==0 && (${Spawn[=${WhoToChase}].Distance} > ${CampRadiusExceed} && !${MeshLoadedCheck}) || (${Math.Calc[${Spawn[=${WhoToChase}].Z}-${Me.Z}]}>100 && ${Math.Calc[${Spawn[=${WhoToChase}].Z}-${Me.Z}]}<100)) {
/if (${Debug} || ${DebugMove}) /echo \atDEBUG ChaseAssist exceed camp check \agLine#: ${Macro.CurLine}
/varset ChaseAssist 0
/echo ChaseAssist distance exceeded: Turning off ChaseAssist
/call BroadCast ${IRCOn} ${EQBCOn} r "Hey! I got left behind please run me to " ${WhoToChase}
}
/if (${Spawn[=${WhoToChase}].Distance} > ${ChaseDistance}) {
/if (${Debug} || ${DebugMove}) /echo \atDEBUG ChaseAssist MA distance check \agLine#: ${Macro.CurLine}
/if (${MeshLoadedCheck}) {
/if (${Navigation.PathExists[id ${Spawn[=${WhoToChase}].ID}]}) {
/nav id ${Spawn[=${WhoToChase}].ID}
} else /if (${Spawn[=${WhoToChase}].LineOfSight}) {
/moveto id ${Spawn[=${WhoToChase}].ID} uw mdist ${ChaseDistance}
} else {
/echo Chase Failed due to ${WhoToChase} is not in Line of sight and Navigation couldn't find a path. Will try /Sticking.
}
} else /if (${Spawn[=${WhoToChase}].LineOfSight}) {
/moveto id ${Spawn[=${WhoToChase}].ID} uw mdist ${ChaseDistance}
}
/delay 10 ${Me.Moving}
/while (${Me.Moving}) {
/if (${Spawn[=${WhoToChase}].Distance3D}<=${ChaseDistance}) {
/if (${PullMoveUse.Equal[nav]}) {
/if (${Navigation.Active}) /nav stop
}
}
/delay 5
}
}
/if (!${Stick.Active} && !${MeshLoadedCheck}) {
/if (${Spawn[=${WhoToChase}].Type.Equal[Pet]}) {
/target ${Spawn[=${WhoToChase}].Master}
/delay 10
/if (${Me.FeetWet}) {
/stick ${ChaseDistance} id ${Target.ID} loose uw
} else {
/stick ${ChaseDistance} id ${Target.ID} loose
}
} else /if ( ${Spawn[=${WhoToChase}].Type.Equal[mercenary]}) {
/target ${Spawn[=${WhoToChase}].Owner}
/delay 10
/if (${Me.FeetWet}) {
/stick ${ChaseDistance} id ${Target.ID} loose uw
} else {
/stick ${ChaseDistance} id ${Target.ID} loose
}
} else {
/if (${Me.FeetWet}) {
/stick ${ChaseDistance} id ${Spawn[=${WhoToChase}].ID} loose uw
} else {
/stick ${ChaseDistance} id ${Spawn[=${WhoToChase}].ID} loose
}
}
/delay 10
/while (${Me.Moving}) {
/delay 10
}
}
/while (${ChaseAssist}==3) {
/delay 10
}
/if (${Debug}) /echo \atDEBUG DoWeChase: Leave \agLine#: ${Macro.CurLine}
/return
