Macros used to be a very mysterious thing, involving lots of "if" clauses, "/script" commands, and parenthetical programming language that lots of people don't understand. For some, of course, it's exciting to try and figure it all out, but many people play for a long time before realizing that macros even exist, and then get intimidated by them once they do.
When WoW 2.0 was released, however, so much of that changed. Many of the most complicated scripting functions were disabled, but many simpler functions were put in to help common people get a better sense of how to use them. There are still strange elements in it sometimes, but overall it's much easier for an amateur to understand. I managed to learn the basics and design some of my own shapeshifting macros to replace both my old copy/pasted macros, as well as an addon I had used originally to help make shapeshifting more manageable. I love being able to tailor my macros to my own play style.
So today I'm going to share with you some examples of handy shapeshifting macros to illustrate how to work with your own, and give you some resources to continue using macros if you are interested. For those of you who are expert macro users and just want a list of macros you can copy/paste into your game, have a look at this excellent list. Some of you may already be very familiar with macro construction, but to many of us it is enlightening to discover how to use macros to do several things in one step, activate different abilities in different situations with a single button, or even make existing functions more efficient and useful. You'll get a good sense of how macros can work from these few examples and be ready to go out and find some more that you might like to use, or even design your own. (Non-druids interested in getting started with macros might like this too.)
So now lets look at my shapeshifting macro set up. I'm a feral druid, so I have four basic shifting needs: I need to get from whatever form I'm in to Caster form, Bear form, Cat form, or one of my fast-moving forms: Flight for Outland, Aquatic for water, and Travel for gaining distance on an enemy. Caster form is of course the intermediate form for shifting between feral forms, so I decided that I didn't need a special button for that. Instead, I wanted to make three buttons: Bear, Cat, and Travel, and let all of them shift me into caster form again too. So for example, here is my Bear macro:
/cast [nostance] Dire Bear Form
The first line, "/cancelform," will bring me back to the default Caster form, or do nothing if I'm a there already. If I'm already in Caster form, the next line will put me into Dire Bear Form. Putting "nostance" in brackets is like telling the computer to do this only if I'm not in a form already. (They use the word "stance" based on the Warrior's Battle, Defensive, and Berserker stances, but the equivalent of stances for other classes works too, such as stealth for rogues or forms for druids.) This macro is the simplest of my shapeshifting macros, and it just lets me press once to shift out of anything and then again to swifly shift into Bear form, or even out of Bear form again so that I can heal. This is sort of a panic button I can press, depending only on one condition: whether I need survivability or healing. (Note, I am careful not to panic too much and press repeatedly, or else who knows what form I'll end up in.)
So next is my Cat Form macro:
/cast [nostance] Cat Form; [stance:1] Enrage; [stance:3] Prowl
This is a bit more complicated. Stances for any class are numbered. For warriors, their three stances are just 1, 2 and 3, and for a rogue, stealth is just [stance:1]. But for a druid, these stance numbers are in the order you get them as you level up, so it goes as follows: Bear is [stance:1], Aquatic [stance:2], Cat [stance:3], Travel [stance:4], and Flight [stance:5]. (Moonkin and Tree-of-Life druids -- Beware! for *you*, [stance:5] is your Moonkin or Tree of Life form, and [stance:6] is your Flight form.) Now personally I would argue that since druids have more "stances" than warriors do, these should be called [form:1], [form:2] and so on. But anyway...
So in this macro, "/cancelform" has a conditional too, to only work in stances 2, 4 or 5: Aquatic, Travel, or Flight. Also, the ";" semicolon lets me assign multiple spells to be cast in different situations. It basically means "or" and makes it so that you don't have to type "/cast" on separate lines for each stance, although that would work too. I assigned this one to depend on more conditions because I can use it in more calm and strategic situations. I already have my Bear macro for simple panic shifting, and I found that using the Cat macro to add a bit more depth works best for me. So the way I set it up, it'll shift to Cat form of course, or cast Enrage if I'm a bear, or cast Prowl if I'm already a cat. Now, if this doesn't work for you, you can add similar conditionals to other forms. Take these alternate Bear and Cat form macros as examples:
Sticky Bear Form:
/cast [nostance] Dire Bear Form
This one is "sticky," which is to say, pressing this will cancel any form as long as your form is not Bear form. This one you can mash repeatedly without fear of shifting back to Caster form accidentally, if that's your style.
Dire Bear Form > Feral Charge (Sticky too!):
/cast [nostance] Dire Bear Form; [stance:1] Feral Charge
This one lets you shift to Bear form and Feral Charge something with the next press of the button
Cat Form > Prowl > Pounce > Cower (Sticky three!):
/cast [nostance] Cat Form; [stance:3, nocombat, nostealth] Prowl; [stance:3, stealth] Pounce; [stance:3, combat, nostealth] Cower
This one lets you cast different things while in cat form. Adding the [nocombat] and [nostealth] conditionals means that it only does anything if you are out of combat, and pressing the button again won't bring you out of stealth. Also it lets you cast Pounce if you're already prowling and Cower if you're already in combat.
So finally, we'll come to my last shapeshifting macro, which is for traveling, and which builds on the principles in this last Cat Form example:
All Travel Forms
/cast [nostance, flyable, nocombat, noswimming] Flight Form; [nostance, swimming] Aquatic Form; [nostance, outdoors] Travel Form
You can probably see clearly what this does based on the examples above. It'll bring you out of any form and into Travel form (good for running away in a panic), or else Flight or Aquatic forms. There are quite a number of conditionals such as [flyable] and [outdoors] that you can play with, as well as many more functions and tricks that I haven't covered here, including some ways you can cast certain spells together at the same time. To learn more about macros for druids and to see tons and tons of excellent examples, have a look at this post in the druid forums by Beirras. He goes into much greater depth than I can in this column and he explains everything in his own systematic way. To just give you just a taste of more, I'll leave you with this super-mega-ultra combination Travel/Flight/Aquatic/Mount macro for you to have a look at! Happy macroing!
Flight Form / Travel Form / Aquatic Form / Mount Macro
(remember to change stance:5 to stance:6 for Moonkins and Trees-of-Life!)
/canceform [stance:1/3] [stance:4, nocombat] [stance:5, noflying, nocombat]
/use [nostance, outdoors, noflyable, nocombat] <Insert Your Ground Mount Name Here>; [nostance, flyable, nocombat] <Insert Your Flying Mount Name Here>
/cast [nostance, swimming] Aquatic Form; [nostance, flyable, nocombat] Flight Form; [nostance, outdoors] Travel Form
[Awesome doing-everything-with-just-one-HUGE-macro Druid art by Jonathan Sullivan at cleverninja.com]