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 main
/declare Tank string outer ${Param0}
/assist off
/squelch /target clear
:start
/if (${Target.Type.NotEqual[NPC]}) {
/squelch /target clear
/goto :start
}
/if (${Target.ID}) /goto :start
|Is tank close enough to us to assist??
/if (${${Tank}.Distance}>60) /goto :start
|Lets see if he has something near him
/if (!${Target.ID} && ${Spawn[${Tank}].Type.Equal[PC]} && ${Spawn[${Tank} radius 30].ID}) /assist ${Tank}
|Is the tanks Target low enough HP's for us to attack?
/if (${Target.PctHps}>95) /goto :start
|Looks like he's ready for us! ASSISTING!!
/echo Assisting ${Tank}
/stick behind on
/delay 2
/attack on
/goto :start
/return
|Simple Combat Macro v2.0
|Ripped from Various Macro's
|By HardOne
|To start, /mac assisttank <TankName> <Assist%> ex. /mac assisttank ubertank 97
#event ImDead "#*#You have been slain by#*#"
#event ImDead "Returning to home point, please wait..."
#event ImDead "#*#Returning to Bind Location#*#"
Sub Main
|SYSTEM VARS - DO NOT MODIFY.
/declare maintank string outer ${Param0}
/declare attackat int outer ${Param1}
/declare attackid int outer
/declare RT_MyXLOC int outer ${Me.X}
/declare RT_MyyLOC int outer ${Me.Y}
/declare MyHeading int outer ${Me.Heading.DegreesCCW}
/declare Camp_Zone int outer ${Zone.ID}
/if (!${Param0.Length} && !${Param1.Length}) {
/echo You must start the macro including the main assist's name and the percent to attack after.
/echo i.e.:
/echo /mac assisttank UberTank 98
/end
}
/bc AFK AssistTank Running. Assisting ${Param0} at ${Param1}%
/bc Camp Set to: ${Me.X} ${Me.Y}, Facing: ${Me.Heading.DegreesCCW} in ${Zone}
/echo Ensuring MQ2Melee is loaded
/plugin mq2melee
/delay 2s
/squelch /target clear
/squelch /assist off
:mainloop
/if (!${SpawnCount[${maintank}]}) {
/echo Maintank Dead/Missing. Delaying 30 seconds and restarting.
/delay 30s
/goto :mainloop
}
/assist ${maintank}
/delay 5
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}<${attackat}) /call Attacking
/doevents
/goto :mainloop
/end
Sub Attacking
/echo Attacking ${Target.CleanName}!
/varset attackid ${Target.ID}
:attackloop
/if (!${Target.ID}) /goto :endcombat
/if (${Target.ID}!=${attackid}) /goto :newtarget
/if (!${Me.Combat}) /attack on
/doevents
/goto :attackloop
:newtarget
/echo Somehow got new target. Re-assisting maintank.
/squelch /target clear
:endcombat
/varset attackid 0
/delay 2s
/if (${Camp_Zone} == ${Zone.ID}) /call MoveToLoc ${RT_MyyLOC} ${RT_MyXLOC}
/face fast heading ${MyHeading}
/return
Sub MoveToLoc(MoveToY, MoveToX)
/declare running int local
/declare distanceNow float local
/declare distanceBefore float local
/declare distanceModifier int local
/declare distanceTimer timer 15
/varset running 0
/varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/varset distanceModifier 1
/echo Moving to Location: ${MoveToY}, ${MoveToX}.
/echo Distance: ${distanceBefore}
:moveToLocation
/face fast nolook loc ${MoveToY},${MoveToX}
/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<10) {
/keypress forward
/return
}
/if (${distanceTimer}==0) {
/if (${Me.Sneaking}) {
/varset distanceModifier 2
} else {
/varset distanceModifier 1
}
/varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
/call HitObstacle
}
/varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
/varset distanceTimer 15
}
/if (${running}==0) {
/keypress forward
/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>10) {
/varset running 1
/keypress forward hold
}
} else {
/if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<11) {
/varset running 0
/keypress forward
}
}
/goto :moveToLocation
/return
Sub HitObstacle
/echo Obstacle hit, moving around it...
/keypress forward
/keypress back hold
/delay 3
/keypress back
/if (${Math.Rand[2]}) {
/keypress strafe_right hold
} else {
/keypress strafe_left hold
}
/delay 5
/keypress strafe_right
/keypress strafe_left
/keypress forward hold
/return
Sub Event_ImDead
/doevents
/if (${Stick.Status.Equal[ON]}) /squelch /stick off
/keypress forward
/keypress back
/keypress Left
/keypress Right
/delay 2s
/echo I've been Killed! Going into Sleep Mode...
/beep
/beep
:DeathSleep
/doevents
/delay 5s
/if (${Me.State.Equal[HOVER]} || ${Zone.ID} != ${Camp_Zone}) /goto :DeathSleep
/return