Thursday, March 19, 2009

[General]Toggling Maul part 2 - making a better toggle

Some really nice discussion about the maul macro talked about yesterday. Instead of answering in that post some of the questions that came up, I figured it'd be easier to talk more about it in another post.

First off, you can remove the "if not InCombatLockdown() then...end" part of the macro. That gets you a ton of extra characters, which allows you to do something like this instead:

/run local i=GetMacroIndexByName ("Ma") local mt=GetMacroBody(i) local a=strlen(mt) local v="/cast Mangle" if a < 15 then mt=v.."\n/cast [nomodifier]!Maul" else mt=v end local n,t,_,l=GetMacroInfo(i) EditMacro(i,n,t,mt,l,1)

This will change the mangle to do a mangle in one case, or do a mangle/maul in the other case as long as you don't hold down a modifier key (alt, shift, ctrl). Which might be nice for finer grained control.

Next, thanks to reader Pockie I figured out how to make this a one-button toggle. Though it's a bit involved. Here are the steps (and this should answer your question, secretagentcat)

First, make three macros for your basic attacks: Mangle (Ma), Lacerate (La) and swipe (Sw).
Next, make modifier toggle macros for those three attacks like the ones above. Put them on a bar that is hidden normally.
Next, use another macro to determine what the name of that button is in the WoW UI world. The macro for this is:

/run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end
Bind this to a button with a keypress for now.
Then, hover over one of the three toggle macros and use the macro above. You should see something like "BTBar4Button28" in your chat window. Do that for all three toggle macros.
Finally, write a macro called 'toggle' that looks like this:

/click BTBar4Button28
/click BTBar4Button29
/click BTBar4Button30
Where the BTBar4Button28-30 are the text strings that appeared in your chat window. And bind that to a key. Now you can hide the bar with the three separate toggles and toggle everything with one key while having only 4 visible buttons. Of course, this doesn't work all that well if you have a shortage of bars or don't have hideable bars.

An alternative (as Pockie suggests) is to do something like this:

An alternative would be to have your 3 ability macros have a line "/click MaulButton" instead of "/cast !Maul". MaulButton will be a macro that simply consists of "/cast !Maul", and it's hidden somewhere on your bars. You then have a toggle macro on your main bars that will modify the MaulButton macro to "//cast !Maul". The end result is that you only use up 2 buttons (1 visible 1 hidden).
I like that idea too, though it's not for me personally; I like being able to do it for each type of attack potentially. The big advantage of this is that it allows for a lot of text in that /cast !maul macro, at least in theory. You could easily toggle between it doing /cast [modifier:shift] !maul and /cast [nomodifier] !maul, which might be nice.

If this is daunting to you, don't worry about it too much. There should be an addon soon that fixes this a bit and allows for a lot more complex and maintainable using of this type of feature, and it'll come out soon. At least hopefully.

Nav does what a lot of people out there - he has a castsequence macro and spams it and his maul button. Astrylian (of Rawr fame) had a one-button tanking macro that was good for 95% of all encounters. It was basically mangle, lacerate, swipe with the ability to override in certain circumstances (like on berserk) and did auto-mauling except on overrides. I tried that for a while, but it felt really uncontrolled and awkward. But it was at least one button. I would strongly recommend macroing maul into the basic attacks if you can, though; the difference between spamming one and two buttons is night and day, especially when doing things like moving while doing so.

Felkan asked about the ! in front of maul. I think that they've actually turned off the ability to 'toggle' maul, but it was put in there as a precaution. I've honestly not tested it much to see whether or not the toggle works. My experience is that it doesn't matter, but only actual testing would know for certain. I do know that pressing maul multiple times will turn off the highlighting on the button - but that doesn't seem to affect the actual next cast of maul.

Saroosh asked about extra macro slots in 3.1. And sadly the answer is no - you have only the normal set of macros. Ugh. Again, an addon would help this tremendously.

SecretAgentCat also asked about if you could modify a macro so that it would target different things at various parts of the fight and allow you to spam it. And the answer is no - at least not like this does. You can't modify the text of a macro during combat. Additionally, you can't do a castsequence either for targets; only actual casts works for this. Still, you probably can get away with doing something like this for your specific needs:

/tar Shad
/tar Vesp
/cast Growl
/cast Faerie Fire (feral)
/tar Shad
/tar Teneb
If Tenebron and Shadron are up, it will first target Shad, then fail to target Vesperon (since he's not around), then growl, faerie fire, target Shadron again, then target Tenebron, ending up on Tenebron. If Shadron and Vesperon are up, it'll target Shadron, then target Vesperon, growl and faerie fire Vesperon, target Shadron again and then fail to target Tenebron (since he's not around), ending up on Shadron. I think that's what you want it to do. Alternately, you can do tricky things with setting your focus and then reseting it, but I don't think it's really necessary for something specific like this.


seriallos said...

Quick note on !Maul - I don't think it's necessary given some observations I made last night. I've been running with a

/cast Mangle
/cast Maul

macro for a while and watching my Maul button makes me about 90% sure that this macro doesn't un-toggle the ability while spamming.

Thanks for the continued research and progress in this. Maybe I'm a softie, but I like making the tanking rotation as simple as possible so I can spend more time watching/leading the raids and not have to obsess over GCDs and whether maul is toggled for next swing or not.

Marino said...

Just in general... I don't know if it has been discussed by why would you ever wanna change:
/cast swipe
/cast !maul
/cast swipe

Swipe is an aoe effect and maul hits multiple targets too. So swipe macro could always be like that imo.

Unless you wanna do less damage of course; for some "help I get damage when I hit" and "this mob should not die yet"-achievement.
In those cases best not to use swipe anyway. Just do the mangle thing if you must hit.
So why should swipe macro be only swipe?

Felkan said...


Low rage scenarios that often occur during initial pulls. Happens to me all the time. I avoid maul until I have a full (or nearly full) bar.

Not an issue for most boss fights, but for trash it can be.

Might also want to separate maul from swipe when you are just trying to be #2 on the threat list (OT patchwork).

Jheusse said...

Whoops, composed a PM to you this morning, got called out of the office before sending it, and come back and send it, only to realize it's likely already obsolete.

Another scenario where you might not want maul in with swipe, places like Razuvious where you are holding adds in place as the OT, you don't want to kill them, just do enough damage and threat to hold them until they are MC'ed.

Marino said...

Low threat can simply be solved by simple not hitting. Press escape once and wait till you have enough threat. And on razuvious I think you should not swipe. Just hit the released add with mangle once. Keep up threat that way.

So simply stated, when you don't want to dps just don't use swipe. And I can't imagine a fight where mangle/white hit/lacerate would not be a good alternative to keep threat without the intention to kill them. Maybe faerlina...

Anonymous said...

Woo-hoo! That's EXACTLY what I needed Kal, thank you SO MUCH!

Julian said...

Why not simply switch the whole action bar with addons like Bartender and use the two different macros for each spell? it would not require to be out of combat. I have not checked it yet, just an idea.

Golondrina said...

#showtooltip Mangle (Bear)()
/cast Mangle (Bear)()
/cast [nomodifier] Maul

I use this one, it omits Maul if i use it with a modifier, else it happily Mauls away

wayrachaki said...

Does anyone know if the addon was ever created to finally avoid all this macro spam? If so, where could I find it, or do they need beta testers?

Kalon said...

Here ya go: