• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

warrior macro

Ghostyrus

New member
Joined
Aug 9, 2007
RedCents
just a simple warrior macro ... could probably be made a lil simpler but hey it was my frist try :D put in a few hotkeys to add in guild attack calls / bazu kinda stuff , hope it helps someone =)


Macro:


Rich (BB code):
#event xp "#*#party experience#*#
#event enraged "#*#enraged#*#"
#event stick "#*#Your target is too far away#*#"
sub main
/if (${Me.GroupLeader}) /makeleader ( char name )
/declare HomeXLoc		  int	outer ${Me.X}
/declare HomeYLoc		  int	outer ${Me.Y}
/declare incite int   outer 0
/declare enraged int outer 0
/declare dostick1 int outer 0
:Start
/doevents
/if (${enraged}==1) /goto :Start


/if (!${Target.ID}) /squelch /target npc radius 50 zradius 50
/if (${Target.ID}) {
/face fast nolook
/if (!${Target.LineOfSight}) {
/squelch /target clear
/goto :Start
}
/if ( ${Target.Type.Equal[NPC]} && ${Target.Distance} <= 100) {
/if (!${Target.LineOfSight}) /goto :Start
/if (${dostick1}==0) {
/squelch /stick 12 moveback
/varset dostick1 1
}
/attack on

}
/keypress 2
/if (${Target.Distance} <= 25 && ${Me.AbilityReady["Taunt"]} && ${Target.ID}) /doability "Taunt"
/keypress 8
/delay 5s
/if (${incite} == 0) /if (${Target.Type.Equal[NPC]}) {
/disc Incite
/keypress 2

   /varset incite 1
}
/doevents
/if (${Target.Type.NotEqual[NPC]}) /squelch /target clear
} 
/goto :Start
/return


Sub ReturnHome
:returnhome
  /if (${Me.State.Equal[SIT]}) /stand
  /face fast nolook loc ${HomeYLoc},${HomeXLoc}
  /if (${Math.Distance[${HomeYLoc},${HomeXLoc}]}>2) /nomodkey /keypress forward hold
  /if (${Math.Distance[${HomeYLoc},${HomeXLoc}]}<=5) {
	/nomodkey /keypress back
/return
  }
/goto :returnhome
/return

sub event_xp
/varset dostick1 0
/attack off
/varset incite 0
/varset enraged 0
/call ReturnHome
/return

sub event_enraged
/varset enraged 1
/attack off
/if (${Me.PctHPs}>60
/attack on
/return

sub event_stick
/varset dostick1 0
/return
 
Last edited:
I haven't touched macro code in over a year.. but with under 6 months left before the end of my deployment.... its time i started lookin at it again. 8-)

SOOOOOOO

/if (${enraged}==1) /goto :Start

Your going to stay in a loop here if the mob is enraged.

because you only set your Variable back to 0 if a mob dies

Change:
Rich (BB code):
:Start
/doevents
/if (${enraged}==1) /goto :Start

to:
Rich (BB code):
:Start
/varset enraged 0
/doevents
/if (${enraged}==1) /goto :Start

Just incase for some odd reason the mob is enrage before anything else...
maybe someone else is attacking it or something ... or you start the macro late..

it may be unlikely but you plan for everything

8-)
 
ok I it has been a while since I have been a tank ....

When a mob enrages... you turn off attack .. and wait for the enrage to pass,

is that right?


is there a message when enrage drops?

"XXX is no longer enraged"




now here is why I ask .....

First change
Rich (BB code):
sub event_enraged
/varset enraged 1
/attack off
/if (${Me.PctHPs}>60
/attack on
/return

to
Rich (BB code):
sub event_enraged
/varset enraged 1
/attack off
/if (${Me.PctHPs}>60) /attack on
/return

Added the closing ) and put the /attack on on the same line as if statement




in this bit of code .... on enrage..

you are turning off attack .. checking your health to see if its above 60 and only turning attack on if it is, right?

can most tanks handle enrage if their health is above 60?

should there be a check to see when enrage ends?

or maybe add a pause in the enrage event... to allow a little time for the enrage to pass?

just a few thoughts
 
Ok last thing... /keypress commands

you do not tell the user what commands each keypress should be set to

when your coding a generic macro like this .. it is better to use the /doability command

just like you do here

/if (${Target.Distance} <= 25 && ${Me.AbilityReady["Taunt"]} && ${Target.ID}) /doability "Taunt"


no only are you checking if the ability is ready .. but now the user does not have to have his hotkeys mirror yours.
 
Good first attempt at a macro ..

But if you had used this macro .. on your own warrior you would have seen some of the missing codes and loops you created.

I hope some of this helps you with your current and future macros

ARMY
 
Also if you use the Mq2melee plugin to do some of the attacking, it handles enrage for you. It turns attack off only if the mob is facing you, or you are not behind the mob. So if you wanted to handle it the same way, you might also do a check for the mobs facing the player or if he is behind it at that point.
 
you also want to check that Your mob is enraged, and not just a close by mob or even a pet
 
warrior macro

Users who are viewing this thread

Back
Top
Cart