(Bard) Melee assist macro

Hey Thez, your change to the macro was great, but I have another problem. I have been just dealing with it, but wondering how I could fix it.

I am on progression server and only have the aura of the muse. If the aura goes down it wont resume twisting until it is back up, and for some reason it is trying to cast it from an item.

Any way to take this part out? I had tried deleting stuff from the macro but broke it a number of times heh.

Any suggestions on what I should edit out or change in the mac? Once again thanks for your help, this macro works awesome besides this little problem.
 
That is...odd. There's nowhere in the code where it should try to do that. There literally isn't a place where, in my code, it should do that. I never could get it to work right while I was working on it, so I settled for a message. That said, this modified code should remove the aura code entirely:

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.Buff[Resonance].Duration}) {
        /if (!${Defined[RedoTwist]}) /declare RedoTwist local int
        /varset RedoTwist 1
        /squelch /twist off
    }
/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.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

If that's not what you wanted, then please be more specific. I'll be happy to work with you on this.
 
Thez you're pretty awesome for responding so quickly. What happens specifically is that once the aura goes down it interrupts twisting (except when in combat). I get a red message in mq2 window saying the aura is not working and I think its trying to redo the aura. I'm going to pour over the code again and see if I can find it.
 
That's easy to find, it's in sub event_buff_check. The way that the macro is set up right now, it will check for the aura once you finish combat...which is finishing a single mob, rather than a group of mobs, now that I think of it.

The line that's causing problems is this one in the main loop:
Code:
/if (!${Me.Aura.ID} && ${Attacking}==0) /call event_BuffCheck

One option could be to change that line to this:
Code:
/if (!${Me.Aura.ID} && ${Attacking}==0) {
        /assist ${MA}
        /if (${Target.Type.Equal[NPC]}) /varset Attacking 1
        /if (${Target.Type.Equal[corpse]}) /target clear
        /if (${Target.Type.NotEqual[NPC]}) /call event_BuffCheck
        }

That is, like all my code these days, untested, but what that *should* do is assist the MA, and if he's got an NPC target, go through the attack cycle again. If not, *then* it will check for buffs (and specifically, aura).

The other option is to just remove that line entirely. What will happen then is that your bard won't automatically keep his buffs up...*but*, if you're running this macro as an "at the keyboard" type afk macro, then that's not a problem, because you'll just be able to "/echo buffcheck" any time that you want (when it's the right time) and do the buffing then.
 
Any chance to updat?

Been playing around with this one and it works pretty well but would be nice to get the buffing/clickies working on it, maybe even a looting option too...

Like the quirkiness of this mac and some great features.