(Bard) Melee assist macro

thez

Rhymes well with Pez
Joined
Oct 25, 2006
Messages
966
Reaction score
0
Points
0
Location
Santa Cruz
This is currently set up more for bards, but it'd be easy to convert it to melee...

Features:

--Because I was in a quirky mode when I wrote it, the macro's echoes are quotes or paraphrases of quotes from the movie Galaxy Quest. Why? Why not?
--Syntax for the macro: "/mac afkassist NameofyourMAhere"
--Changing the macro:
--Setting a new MA: /echo MA NewMAhere
--Toggling camp mode (you run back to this spot after each fight): /echo makecamp
--Changing the location where you run back to while camping: /echo setcamp
--Setting the % of your HP that you use the Fade AA at: /echo Escape #
--Toggle autoclicking your epic when in combat: /echo epicon
--Checking your settings: /echo status
--Changing to manual mode (will automatically happen if your tank dies or zones out). If you are in manual mode, you won't autotarget or autoengage mobs...in fact, you'll be just as if the macro wasn't running. This is useful in case the tank dies and you need to take over tanking, to stop the macro from interfering with you. Also nice if you are running somewhere and don't want the macro to drop your invis, or what not. Command is: /echo manual
--Buff checking / redoing -- These are set in the Event_Buffcheck subroutine. For whatever reason, I've never been able to get the bard aura to keep itself up...so it'll echo a message to let you know that your aura is down: "/echo buffcheck"

The macro does not do your twisting for you -- so set your twist before you start the macro. Once started, it will assist the tank until you have a target that is an NPC, in LOS, within a distance of 400, and below 98% hp. At that point, it will wait for the mob to get within a distance of 150, then stick to it to get into position, lock onto the mob, then engage MQ2Melee-driven attack.

The macro requires MQ2Melee, MQ2MoveUtils, and MQ2Cast (for epic and buff support).

Code:
|afkassist.mac
|Written and directed by TheZ, starring TheZ, yada yada, produced by the MMOBugs Group for the use of MMOBugs members!
#Event HitMe "#*#hits you for#*#"
#Event HitMe "#*#kicks you for#*#"
#Event HitMe "#*#bites you for#*#"
#Event HitMe "#*#bashes you for#*#"
#Event HitMe "#*#slashes you for#*#"
#Event HitMe "#*#pierces you for#*#"
#Event HitMe "#*#crushes you for#*#"
#Event HitMe "#*#You will not evade me |${Me}|!#*#"
#Event MAChange "[MQ2] ma #1#"
#event Camping "[MQ2] makecamp"
#event SetCamp "[MQ2] setcamp"
#event EscapeHP "[MQ2] Escape #1#"
#event DoEpic "[MQ2] epicon"
#event Status "[MQ2] status"
#event Manual "[MQ2] manual"
#event BuffCheck "[MQ2] buffcheck"


Sub main
/echo Welcome to the continuing adventures of the Galaxy Quest crew!

|==========================|
|=========Declares=========|
|=========Declares=========|
|=========Declares=========|
|==========================|

/if (!${Defined[EscapeHP]}) /declare EscapeHP int outer 75
/if (!${Defined[FadeOnce]}) /declare FadeOnce int outer 0
/if (!${Defined[Attacking]}) /declare Attacking int outer 0
/if (!${Defined[CurrentTarget]}) /declare CurrentTarget int outer
/if (!${Defined[ManualMode]}) /declare ManualMode int outer 0
/if (!${Defined[CampTime]}) /declare CampTime int outer 0
/if (!${Defined[HomeY]}) /declare HomeY int outer 0
/if (!${Defined[HomeX]}) /declare HomeX int outer 0
/if (!${Defined[DoEpic]}) /declare DoEpic int outer 0
/if (!${Defined[MA]}) /declare MA string outer ${Param0}
/if (!${Defined[HomeHeading]}) /declare HomeHeading int outer

/varset HomeHeading 0
/varset CurrentTarget 0
/varset FadeOnce 0
/varset CampTime 0
/varset ManualMode 0
/varset Attacking 0

|===========================|
|=========Main Loop=========|
|=========Main Loop=========|
|=========Main Loop=========|
|===========================|
:continueloop
/doevents
/if (${Me.PctHPs}<=${EscapeHP} && ${FadeOnce}==1) /varset FadeOnce 0
/if (${ManualMode}==0) {
	/if (${Attacking}==0) {
		/assist ${MA}
		/if (${Target.Type.Equal[NPC]}) /varset Attacking 1
		/if (${Target.Type.Equal[corpse]}) /target clear
		}
	/if (${Spawn[${MA}].Type.Equal[corpse]}) {
		/echo ${MA}... by Grabthar's hammer... by the Sons of Warvan... you shall be... avenged. (Manual Mode On)
		/varset ManualMode 1
		}	
	/if (${Target.Type.Equal[NPC]} && ${CurrentTarget}!=${Target.ID} && ${Attacking}==1 && !${Melee.Combat} && ${Target.LineOfSight} && ${Target.PctHPs}<=98 && ${Target.Distance}<=400) {
			/face
			:looptime
			/if (${Target.Distance}>=150) {
				/delay 1s
				/goto :looptime
				}
			/stick 10
			/varset CurrentTarget ${Target.ID}
			/popup Target Aquired >>${Target.CleanName}<<
			/echo Target Aquired >>${Target.CleanName}<<
			:waitlooptime
			/if (${Target.Distance}>=50) {
				/delay 1s
				/goto :waitlooptime
				}
			/stick off
			/keypress melee
			/call DoEpic
			}
	/if (${Spawn[${CurrentTarget}].Type.Equal[corpse]}) {
			/echo By Grabthar's hammer, we live to tell the tale!
			/varset Attacking 0
			/varset CurrentTarget 0
			/call GoHome
		}
	/if (${Target.Type.Equal[corpse]}) /target clear
	/if (!${Me.Aura.ID} && ${Attacking}==0) /call event_BuffCheck
}
/if (${ManualMode}==1) {
	/if (${Spawn[${MA}].Type.NotEqual[Corpse]}) {
		/varset ManualMode 0
		/echo Maybe you're the plucky comic relief... (${MA} lives!)
		}
}
/delay 1s
/goto :continueloop
/return

|======================|
|=========Subs=========|
|=========Subs=========|
|=========Subs=========|
|======================|

Sub GoHome
/if (${HomeX}!=0 && ${HomeY}!=0 && ${CampTime}==1) {
	/moveto loc ${HomeY} ${HomeX}
	/echo Well, the Protector got super-accelerated coming out of the black hole...engaging Roman Candle guidance system!
	/delay 3s ${Me.Speed}==0
	/face heading ${HomeHeading}
	}
/return

sub doepic
/if (!${FindItem[Blade of Vesagran].Timer.Ticks}) {
	/squelch /twist off
	/casting "Blade of Vesagran|item"
	|/delay 5s ${Me.Song[Spirit of Vesagran].Duration}
	|/if (${Me.Song[Spirit of Vesagran].Duration}) /gs Spirit of Vesagran on! Spell crits +12% and Accuracy +140% for 1m!
	/squelch /twist
	}
/return

|========================|
|=========Events=========|
|=========Events=========|
|=========Events=========|
|========================|

sub event_BuffCheck
/if (${Twist}==TRUE && (!${Me.Aura.ID} || !${Me.Buff[Resonance].Duration} || !${Me.Buff[Form of Endurance III].Duration})) {
		/if (!${Defined[RedoTwist]}) /declare RedoTwist local int
		/varset RedoTwist 1
		/squelch /twist off
	}
/if (!${Me.Aura.ID}) {
	/echo Activate the Omega 13! (Your aura is down)
	}
/if (!${Me.Buff[Resonance].Duration}) {
	/casting "Voice of the Serpent|item"
	/delay 4s !${Me.Casting.ID}
	}
/if (!${Me.Buff[Form of Endurance III].Duration}) {
	/casting "Ring of the Beast|item"
	/delay 4s !${Me.Casting.ID}
	}
/if (${RedoTwist}==1) {
	/squelch /twist
	/varset RedoTwist 0
	}
/return

Sub Event_MAChange(Zero, Name)
	/echo Changing MA to ${Name}
	/varset MA ${Name}
/return

Sub Event_EscapeHP(Zero, EscapeAt)
	/echo Escaping at ${EscapeAt}
	/varset EscapeHP ${EscapeAt}
/return

Sub event_HitMe
/if (${Me.PctHPs}<=${EscapeHP} && ${FadeOnce}==0) {
	/alt activate 212
	/echo Using the digital conveyor is more, hmm, art than science...
	/varset FadeOnce 1
	}
/return

sub event_camping
/if (${CampTime}==0) {
	/varset CampTime 1
	/echo Now making camp!
	/if (${HomeY}==0 && ${HomeX}==0 && ${HomeHeading}==0) {
		/varset HomeY ${Me.Y}
		/varset HomeX ${Me.X}
		/varset HomeHeading ${Me.Heading.Degrees}
		}
	/return
	}
/if (${CampTime}==1) {
	/varset CampTime 0
	/echo No longer making camp!
	/return
	}
/return

sub event_setcamp
/echo Resetting Camp to current location!
/varset HomeY ${Me.Y}
/varset HomeX ${Me.X}
/varset HomeHeading ${Me.Heading.Degrees}
/return

sub event_doepic
/if (${DoEpic}==0) {
	/varset DoEpic 1
	/echo Now autoclicking epic when it's ready!
	/return
	}
/if (${DoEpic}==1) {
	/varset DoEpic 0
	/echo No longer autoclicking epic!
	/return
	}
/return

sub event_status
/echo ----Settings----
/echo MA: ${MA}
/echo Manual: ${ManualMode}
/echo Escape HP : ${EscapeHP}
/echo Making Camp: ${CampTime}
/if (${CampTime}==1) /echo Home Loc: ${HomeY},${HomeX} ::: Home Heading: ${HomeHeading}
/if (${DoEpic}==1) /echo Autoclicking Epic
/if (${DoEpic}==0) /echo Not autoclicking Epic
/echo Fade status: ${FadeOnce}
/if (!${Me.Aura.ID}) /echo Need Aura
/if (!${Me.Buff[Resonance].Duration}) /echo Need Resonance
/if (!${Me.Buff[Form of Endurance III].Duration}) /echo Need Form of Endurance
/return

sub_event manual
/if (${ManualMode}==0) {
	/echo Manual Mode on!
	/varset ManualMode 1
	/return
	}
/if (${ManualMode}==1) {
	/echo Manual Mode off!
	/varset ManualMode 0
	/return
	}
/return
 
Last edited:
everything is working for this mac but wont stick when target gets in range, it says im sticking to it but it dont. anyone know what im missing here thanks
 
Try unloading and reloading mq2moveutils.

eqisdead
 
Did you set it to the correct epic weapon? This is configured to use the 2.0.
 
yes its 2.0 well 2.5 but that shouldnt matter should it, cant get it to stick, so i messed around and changed a line that said stick off to on and now seems to be sticking
 
question

question for you bards out thare

what do you use to get agro if you have to take over tanking?
as a bard i cant find anything that will give me more agro unless im just newb:mad:
 
is MQ2Casting the same as MQ2Cast?
 
AE mana/health song, AE resist song, AE snare, melody all 3 and you will get aggro. Hope that helps.
 
ty

thanks for info. thats what i been doing lol dont seam to not work when thay say hay you bard kite the cloud things in vish :(
 
question for you bards out thare

what do you use to get agro if you have to take over tanking?
as a bard i cant find anything that will give me more agro unless im just newb:mad:

If you have a back-up weapon you use that you don't mind binding it to there is a hate aug in the Don camp for 680 crystals... does not always work bt it does get them off the cleric..... just be careful which weapon you bind it to
 
I've been trying to use this for my paladin and it works great, but wont stick to the mob, does this have to do with the opticode changes making stick not work anymore, or do I need to fix something.
 
So i am wanting to use this has any one tried it lately?
 
can someone compile this for me??!?!?!? /dur


small joke.

I am gonna try it this weekend, I'll post my findings, though I don't have a bard with more than 1.0 atm so I'll have to turn that part off,
 
Can you add a followme command to say follow at 10 to 20? thanks
Theicon
 
having problems with this---how can i make the ring of the beast clicky and epic clicky turn off? i have neither and it interupts my /twist. Pissing me off not sure if i can delete that part from the macro or what
 
This code should do it. Let me know if there are any problems.

Code:
|afkassist.mac
|Written and directed by TheZ, starring TheZ, yada yada, produced by the MMOBugs Group for the use of MMOBugs members!
#Event HitMe "#*#hits you for#*#"
#Event HitMe "#*#kicks you for#*#"
#Event HitMe "#*#bites you for#*#"
#Event HitMe "#*#bashes you for#*#"
#Event HitMe "#*#slashes you for#*#"
#Event HitMe "#*#pierces you for#*#"
#Event HitMe "#*#crushes you for#*#"
#Event HitMe "#*#You will not evade me |${Me}|!#*#"
#Event MAChange "[MQ2] ma #1#"
#event Camping "[MQ2] makecamp"
#event SetCamp "[MQ2] setcamp"
#event EscapeHP "[MQ2] Escape #1#"
#event Status "[MQ2] status"
#event Manual "[MQ2] manual"
#event BuffCheck "[MQ2] buffcheck"


Sub main
/echo Welcome to the continuing adventures of the Galaxy Quest crew!

|==========================|
|=========Declares=========|
|=========Declares=========|
|=========Declares=========|
|==========================|

/if (!${Defined[EscapeHP]}) /declare EscapeHP int outer 75
/if (!${Defined[FadeOnce]}) /declare FadeOnce int outer 0
/if (!${Defined[Attacking]}) /declare Attacking int outer 0
/if (!${Defined[CurrentTarget]}) /declare CurrentTarget int outer
/if (!${Defined[ManualMode]}) /declare ManualMode int outer 0
/if (!${Defined[CampTime]}) /declare CampTime int outer 0
/if (!${Defined[HomeY]}) /declare HomeY int outer 0
/if (!${Defined[HomeX]}) /declare HomeX int outer 0
/if (!${Defined[MA]}) /declare MA string outer ${Param0}
/if (!${Defined[HomeHeading]}) /declare HomeHeading int outer

/varset HomeHeading 0
/varset CurrentTarget 0
/varset FadeOnce 0
/varset CampTime 0
/varset ManualMode 0
/varset Attacking 0

|===========================|
|=========Main Loop=========|
|=========Main Loop=========|
|=========Main Loop=========|
|===========================|
:continueloop
/doevents
/if (${Me.PctHPs}<=${EscapeHP} && ${FadeOnce}==1) /varset FadeOnce 0
/if (${ManualMode}==0) {
    /if (${Attacking}==0) {
        /assist ${MA}
        /if (${Target.Type.Equal[NPC]}) /varset Attacking 1
        /if (${Target.Type.Equal[corpse]}) /target clear
        }
    /if (${Spawn[${MA}].Type.Equal[corpse]}) {
        /echo ${MA}... by Grabthar's hammer... by the Sons of Warvan... you shall be... avenged. (Manual Mode On)
        /varset ManualMode 1
        }   
    /if (${Target.Type.Equal[NPC]} && ${CurrentTarget}!=${Target.ID} && ${Attacking}==1 && !${Melee.Combat} && ${Target.LineOfSight} && ${Target.PctHPs}<=98 && ${Target.Distance}<=400) {
            /face
            :looptime
            /if (${Target.Distance}>=150) {
                /delay 1s
                /goto :looptime
                }
            /stick 10
            /varset CurrentTarget ${Target.ID}
            /popup Target Aquired >>${Target.CleanName}<<
            /echo Target Aquired >>${Target.CleanName}<<
            :waitlooptime
            /if (${Target.Distance}>=50) {
                /delay 1s
                /goto :waitlooptime
                }
            /stick off
            /keypress melee
            }
    /if (${Spawn[${CurrentTarget}].Type.Equal[corpse]}) {
            /echo By Grabthar's hammer, we live to tell the tale!
            /varset Attacking 0
            /varset CurrentTarget 0
            /call GoHome
        }
    /if (${Target.Type.Equal[corpse]}) /target clear
    /if (!${Me.Aura.ID} && ${Attacking}==0) /call event_BuffCheck
}
/if (${ManualMode}==1) {
    /if (${Spawn[${MA}].Type.NotEqual[Corpse]}) {
        /varset ManualMode 0
        /echo Maybe you're the plucky comic relief... (${MA} lives!)
        }
}
/delay 1s
/goto :continueloop
/return

|======================|
|=========Subs=========|
|=========Subs=========|
|=========Subs=========|
|======================|

Sub GoHome
/if (${HomeX}!=0 && ${HomeY}!=0 && ${CampTime}==1) {
    /moveto loc ${HomeY} ${HomeX}
    /echo Well, the Protector got super-accelerated coming out of the black hole...engaging Roman Candle guidance system!
    /delay 3s ${Me.Speed}==0
    /face heading ${HomeHeading}
    }
/return

|========================|
|=========Events=========|
|=========Events=========|
|=========Events=========|
|========================|

sub event_BuffCheck
/if (${Twist}==TRUE && (!${Me.Aura.ID} || !${Me.Buff[Resonance].Duration})) {
        /if (!${Defined[RedoTwist]}) /declare RedoTwist local int
        /varset RedoTwist 1
        /squelch /twist off
    }
/if (!${Me.Aura.ID}) {
    /echo Activate the Omega 13! (Your aura is down)
    }
/if (!${Me.Buff[Resonance].Duration}) {
    /casting "Voice of the Serpent|item"
    /delay 4s !${Me.Casting.ID}
    }
/if (${RedoTwist}==1) {
    /squelch /twist
    /varset RedoTwist 0
    }
/return

Sub Event_MAChange(Zero, Name)
    /echo Changing MA to ${Name}
    /varset MA ${Name}
/return

Sub Event_EscapeHP(Zero, EscapeAt)
    /echo Escaping at ${EscapeAt}
    /varset EscapeHP ${EscapeAt}
/return

Sub event_HitMe
/if (${Me.PctHPs}<=${EscapeHP} && ${FadeOnce}==0) {
    /alt activate 212
    /echo Using the digital conveyor is more, hmm, art than science...
    /varset FadeOnce 1
    }
/return

sub event_camping
/if (${CampTime}==0) {
    /varset CampTime 1
    /echo Now making camp!
    /if (${HomeY}==0 && ${HomeX}==0 && ${HomeHeading}==0) {
        /varset HomeY ${Me.Y}
        /varset HomeX ${Me.X}
        /varset HomeHeading ${Me.Heading.Degrees}
        }
    /return
    }
/if (${CampTime}==1) {
    /varset CampTime 0
    /echo No longer making camp!
    /return
    }
/return

sub event_setcamp
/echo Resetting Camp to current location!
/varset HomeY ${Me.Y}
/varset HomeX ${Me.X}
/varset HomeHeading ${Me.Heading.Degrees}
/return

sub event_status
/echo ----Settings----
/echo MA: ${MA}
/echo Manual: ${ManualMode}
/echo Escape HP : ${EscapeHP}
/echo Making Camp: ${CampTime}
/if (${CampTime}==1) /echo Home Loc: ${HomeY},${HomeX} ::: Home Heading: ${HomeHeading}
/echo Fade status: ${FadeOnce}
/if (!${Me.Aura.ID}) /echo Need Aura
/if (!${Me.Buff[Resonance].Duration}) /echo Need Resonance
/return

sub_event manual
/if (${ManualMode}==0) {
    /echo Manual Mode on!
    /varset ManualMode 1
    /return
    }
/if (${ManualMode}==1) {
    /echo Manual Mode off!
    /varset ManualMode 0
    /return
    }
/return
 
Thanks alot friend. This is great. I appreciate the help works great!!!!!!!!!!!!!!!!!!!!!!!

Again I really appreciate it!

-A