Our macros thus far have been pretty much one-liners. We've played with ways to macro in several options for one button click/smash but we have not come anywhere near our 255 character limit. We can have macros activate spells and abilities that are not on the Global Cooldown (GCD) or we can stack macros to either take advantage of spell cooldowns.
Let's look at how to stack abilities NOT on the GCD before casting an actual spell.
/cast [Conditionals] Spell
See the following post for some of the abilities that are off the GCD.
Another approach is to take advantage of Cooldowns to stack abilities
/cast Survival Instincts
/cast Might of Ursoc
As each ability is cast, it gets put on cooldown, so the next time the macro is invoked, the WoWClient will skip the ability on cooldown and fire the next one. This particular macro is a feral druid "oh crap" survivability macro... so it would get spammed.
But not all abilities have cooldowns beyond the GCD. So not all classes can just stack commands (DoT classes, particularly). That's where Castsequence steps in.Cast Sequence
said by Macro-WoW :
The /castsequence macro is a very useful type of macro code that can make some seriously complicated macros. Lots of players think they can make a DPS in one button macro or a DPS rotation macro and do competitive DPS. That is usually not the case. For a perfect min/max dps sequence, you have too many factors in place to make a decent cast sequence.
However, you can use these macros to improve your gameplay, reduce some clicks and even improve your pvp play considerably. The big thing to remember is it wont make you play perfectly, just a whole lot better.
The syntax for a castsequence macro is as follows:
/castsequence [conditionals] resetparameter spell, spell, spell
All of the conditionals we discussed earlier (targeting, modifiers, stance) will work here. So,
/castsequence [@focus, harm][@focustarget, harm][@target]reset=Target/Combat Curse of the Elements, Agony, Corruption, Drain Soul
So, if your Focus is the bad guy, or your good-guy focus targets a bad guy, the sequence will target that. Otherwise your target will have to do.
But let's talk about how the macro moves through it's sequence and then about the resetparameter. The spell will fire one ability each time the macro is activated. One activation equals one spell within the castsequence. Nothing is allowed to be fully automated (botting). So, if the above macro is spammed (we'll ignore cast time and GCD for right now) the warlock's spells will fire in this order:
• first click: Curse of the Elements
• second click: Agony
• third click: Corruption
• fourth click: Drain Soul
My personal preference is to front load the instant casts (usually dots) and end in a spell that has a cast time (or is channeled) and a visually recognizable spell effect. Why? Because I like to know when I've reached the end of my cast sequence without counting dots or how many times I fired the macro. In the above example the resetparameter was set as "reset=Target/Combat". What this means is that the castsequence macro will be reset if there is a change in either "Target" or "Combat" state. So, if the mob dies before you get to "Drain Soul" then the macro will reset and be ready to fire "Curse of the Elements". Also, if you are multi-dotting, as soon as you change targets the macro will reset and Curse of the Elements will be the first spell that is fired on each new target.
You can also use "Shift" as a reset parameter (not recommended if you are already using Shift to modify a different action). Another option is to give a duration in seconds for the castsequence to reset.
/castsequence [@focus, harm][@focustarget, harm][@target]reset=10 Curse of the Elements, Agony, Corruption, Drain Soul
The castsequence here will reset in 10sec from the time the first Curse of the Elements is cast.