- Joined
- Aug 7, 2013
- Messages
- 21
- Reaction score
- 0
- Points
- 0
Sub Target
:loop
/assist Tankname
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs} < 97 && ${Target.Distance} < 50) {
/stick
/delay 1s
/killthis
/return
}
/goto :loop
/return
/declare TankName string PUT_TANK_NAME_HERE
Sub Main
:Main
/if (!${Target.ID} || ${Target.Type.Equal[Corpse]} || ${Target.Distance} < 50) /call Assist_MA
/if (${Target.ID} && (${Target.Distance}<50|| ${Target.Type.Equal[Corpse]})) /squelch /target clear
/goto :Main
Sub Assist_MA
/assist ${TankName}
/delay 5
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Combat} && ${Target.Distance} < 50 && ${Target.PctHPs} < 97) {
/stick behind 15
/attack on
}
/return
/declare TankName string PUT_TANK_NAME_HERE
Sub Main
:Main
/if (!${Target.ID} || ${Target.Type.Equal[Corpse]} || ${Target.Distance} < 50 ) /call Assist_MA
/goto :Main
Sub Assist_MA
/assist ${TankName}
/delay 5
[COLOR="Yellow"]/stick 10 behind[/COLOR]
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Melee.Combat} && ${Target.Distance} < 50) /killthis
/delay 15
/return
| Standard Melee assist Macro. Scrapped together by Villageidiot
|
|
| This macro will assist whoever is designated
| and will return to starting point after mob
| dies.
|
| Usage: /mac assist (char's name your assisting)
|
|
| This has been mainly scrapped together from a few
| different macro's. I do not take full credit for
| this macro but through it together and decided to
| share this with everyone.
Sub Main
/if (!${Defined[Param0]}) {
/echo Proper usage: /macro assist TankName
/end
}
/declare RT_MyXLOC int outer ${Me.X}
/declare RT_MyyLOC int outer ${Me.Y}
/declare AssistGuy string outer ${Param0}
:Loop
/if (${Zone.ShortName.Equal[GuildLobby]}) {
/sit
/endmac
}
/if (${Spawn[${AssistGuy}].Type.Equal[PC]} && ${Spawn[${AssistGuy} radius 100].ID}) {
/delay 1s
/assist ${AssistGuy}
/stick 15 behind
}
/if (!${Target.ID}) /call MoveToLoc ${RT_MyyLOC} ${RT_MyXLOC}
/delay 3s
/goto :Loop
/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
/if (${Spawn[${AssistGuy}].Type.Equal[PC]} && ${Spawn[${AssistGuy} radius 100].ID}) {
/delay 1s
/assist ${AssistGuy}
/stick 15 behind
[COLOR="Yellow"] /killthis[/COLOR]
Melee works does it not? if so just use the /killthis command and it handles the movement based on your ini on melee.
Code:/if (${Spawn[${AssistGuy}].Type.Equal[PC]} && ${Spawn[${AssistGuy} radius 100].ID}) { /delay 1s /assist ${AssistGuy} /stick 15 behind /killthis
Sub Main
:Main
/if (!${Target.ID} || ${Target.Type.Equal[Corpse]} || ${Target.Distance} < 50)
/call Assist_MA
/goto :Main
Sub Assist_MA
/assist Tank
/delay 5
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Combat} &&
${Target.Distance} < 50) {
/stick behind 15
/attack on
}
/return
Sub Main
:Main
/if (!${Target.ID} || ${Target.Type.Equal[Corpse]} || ${Target.Distance} < 50)
/call Assist_MA
/goto :Main
Sub Assist_MA
/assist Dubstep
/delay 5
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Combat} &&
${Target.Distance} < 50) {
/stick behind 15
/attack on
}
:Combat
|Check target CombatState AbilityReady -- UseSkill
/if (${Target.Type.Equal[NPC]} && ${Me.Combat} && ${Me.AbilityReady[YourSkill]}) /doability YourSkill
|loops to :Combat while in Me.Combat=TRUE
/if (${Me.Combat}) /goto :Combat
/return