• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
  • Unfortunately, yes, there is a suspension wave happening around the new tlp launch. :'( Please keep regular discussion to Suspension MegaThread and please consider submitting a Suspension report to RG.

anyone (1 Viewer)

Completely untested, but just one way to try it.

save as assist.mac

start it like this /mac assist TANKNAMHERE
Rich (BB code):
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
 
Last edited:
i get
failed to parse /if command. Could not find command to execute
assist.mac@8 (main): /if (${Target.ID} /goto :start
the current macro has ended.
Usage: /if (<conditions>) <command>


Thanks btw for looking into it for me :)
 
im getting another error now after i cut and pasted your code again.. this one is

No such 'string' member 'Distance'
assist.mac@16 (main): /if (${Tank.Distance}>60) /goto :start
[MQ2] Assisting NULL
You must specify something to stick to!
the current macro has ended


I appreciate you taking the time to help me btw !! Thanks
 
main reason i needed this was to go afk, have them assist my merc and have him tank with the 2 cleric mercs in group so i can afk group exp.. instead of kiting
 
i got a monk bst and bard, i just needed a simple assist mac to assist at 95% kinda like the first one i posted but it was giving me errors then i got 2 cleric mercs and 1 tank merc
 
something I made a while back, should be everything you need.

MQ2MoveUtils is required for this one, I never added the check to load it, This also uses MQ2Melee, with mq2melee auto sticking you to the mob (macro ensures mq2melee is loaded).

If your bot dies, it will go into a loop and wait for a rez, then start fighting again.

Rich (BB code):
|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
 
yeah but what i wanted was to never have to touch my other toons, i just pull with the bard and call it a day and bst and monk jump in and go from there *i had a hotbutton like that till i just asked.. LOL his macro works wonderfully
 
Glad that macro is working out for you, I have had that thing running for over 24 hours straight, no problems, there is still some room for improvment, but it is functional.
 
anyone

Users who are viewing this thread

Back
Top