Moderator: MacroQuest Developers
Code: Select all
/if (${underAttackBy} && ${DoRootParking}) {
/target id ${underAttackBy}
/call FullStop
/call cast "${SpellRoot}" gem${SpellRootGem} 0 CheckForHeal
/if (${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_CANNOTSEE]} || ${Macro.Return.Equal[CAST_IMMUNE]}) {
/echo Rooted ${Target.CleanName}
}
/call AttemptAvoid
/goto :Main_Loop
} Code: Select all
/if (${underAttackBy} && ${DoRootParking}) {
/target id ${underAttackBy}
/call FullStop
/call cast "${SpellRoot}" gem${SpellRootGem} 0 CheckForHeal
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/echo Rooted ${Target.CleanName}
/call AttemptAvoid
} else /if (${Macro.Return.Equal[CAST_IMMUNE]}) {
/echo ${Target.CleanName} is immune to root.
}
/goto :Main_Loop
} The root code was another artifact from my shaman macro, I cut it up quite a bit during the cleric portion (along with a lot of the rest)... the AttemptAvoid call in mine was being called regardless of success or failure (based on the idea that the tank may have gotten agro by now, and I just need to move out of melee range to drop agro, regardless of whether root held). Personally, I don't look much at the clerics screen, and could care less about any potential spam... and I havn't tried root parking with him either, so not sure if it still works (anyone want to let me know on that? It used to work on my shammy, but....)notadruid wrote:I would not say it's rooted if you got cannot see target when you tried... would also use a different message if the mob is immune. Here's what I would do:Code: Select all
/if (${underAttackBy} && ${DoRootParking}) { /target id ${underAttackBy} /call FullStop /call cast "${SpellRoot}" gem${SpellRootGem} 0 CheckForHeal /if (${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_CANNOTSEE]} || ${Macro.Return.Equal[CAST_IMMUNE]}) { /echo Rooted ${Target.CleanName} } /call AttemptAvoid /goto :Main_Loop }
Code: Select all
/if (${underAttackBy} && ${DoRootParking}) { /target id ${underAttackBy} /call FullStop /call cast "${SpellRoot}" gem${SpellRootGem} 0 CheckForHeal /if (${Macro.Return.Equal[CAST_SUCCESS]}) { /echo Rooted ${Target.CleanName} /call AttemptAvoid } else /if (${Macro.Return.Equal[CAST_IMMUNE]}) { /echo ${Target.CleanName} is immune to root. } /goto :Main_Loop }
As I said earlier, the Slow routine is MISNAMED by functional... it's used as part of the Mark of Righteousness spell now, to put a DS on EVERY mob in camp. Likewise, the malo routine is part of the Mark of Kings to put the reverse heal debuff on the mob (or any other debuff you'd like...)notadruid wrote: I believe the shaman Slow subroutine can be harmlessly removed. It looks like your mark of karn uses the debuff routine, but you could probably remove malo too.
notadruid wrote:I haven't reviewed the code in depth, but something cool that I think is the main difference between my cleric when I macro and when I play manually is interrupting a spell that's not going to land in time, to cast a faster one. A lot of times I CH late and interrupt to Pious Light, or DivArb. As far as I know, spell_routines.inc won't allow for that as it doesnt turn the command flow back to the macro until the casting bar is done.
I could be wrong. I have to look at the code more closely.




Code: Select all
/if (${ChatText.Equal["follow me"]}) {
/if (!${AllowAutoFollow}) /return
/squelch /stick off
/squelch /moveto off
/target ${ChatSender}
/call FollowFunction "${Target.CleanName}"
/return
}