Assist Macro

eqmacjunkie

New member
Joined
Aug 7, 2013
Messages
21
Reaction score
0
Points
0
help

Help

Hello everyone, i am currently having one hell of a time trying to write myself a macro to assist my main tank and /stick when the mob gets to camp.

i have tried to modify current assist macros and even peice out some of the bot macros all to no avail.

i currently use the EQMac compile. any assistance would be great. i think once i can get this code straight it would be extremely easy for me to modify it to run on the tank to taunt and cast.



 
anyone able to give me a starting point or some pointers on how to write this thing?
 
Play with this.

Code:
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

Sent from my SAMSUNG-SGH-I317 using Tapatalk 4
 
that will just turn killthis on over and over. You need to add in a check to see if it is already in combat
 
That's why it isn't Sub Main. :p

Figured if he was working on modifying an already made assist macro then he'd know how to call a sub or something.

Sent from my SAMSUNG-SGH-I317 using Tapatalk 4
 
Add in the name of tank. If it does not have a target / targets a corpse / or target is over 50 distance it should reassist the MA
Code:
/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
 
Last edited:
so it should stick to the mob and be attacking if it looks like this

Code:
/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
 
maybe this will help, this is the one im trying to use, it seems to assist the tank and turn attack on, but never moves to the mob.

Code:
|	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

i believe the movement code is broken for the eqmac compile, i was trying to get around the movement code by just telling the macro to /stick 10 behind as soon as it assists but cant seem to get that to work
 
Melee works does it not? if so just use the /killthis command and it handles the movement based on your ini on melee.

The /killthis should handle the sticking for you but in the macro you are referencing i would just change this to add

Code:
 /if (${Spawn[${AssistGuy}].Type.Equal[PC]} && ${Spawn[${AssistGuy} radius 100].ID}) {
			/delay 1s
			/assist ${AssistGuy}
			/stick 15 behind
                       [COLOR="Yellow"] /killthis[/COLOR]
 
Last edited:
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

ah ok maybe thats what im missing if you are refering to mq2melee. that plugin has not been released for the eqmac compile. is there a way to do this without that plugin?
 
Edited the macro above to remove the melee stuff and just use /attack on with a stick behind 15
 
ok i got it to work with this

Code:
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

some reason i couldnt get the health percent to work and the corpse line was causing it to hang up also.

next question how would i add in a doability to modify this for a tank, for example taunt or to cast a stun. i have no spellroutines.inc or mq2cast.
 
Last edited:
I No longer play and have not actually writen a macro in years, so my syntax may be off at times. But you should be able t use it as reference to get the right spot on the wiki
Code:
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
 
i have a old assist mac that use to work great for all melee including bards, i don't rember where i got it but it was made by edud, if your still around, thank you. i don't know if i can post it here, so pm me with a email address and ill share it with you