Saturday, 24 May 2008

The Pew-Pew Macro

So I sometimes have people ask me why I have so many damn macros and addons.  "I can play just fine without any!" they cry.  I know you can; back when WoW first came out, I didn't even know you could make addons.  Oh wait... when WoW first came out, you couldn't.

That's beside the point; the important thing is that while you don't need addons or macros, they do help you play more effectively or efficiently.  Even really simple things can make the game a lot more fun and/or less annoying.

I thought I might share one of my Hunter macros today.  I don't think it would be an understatement to say that this macro has not only made grouping easier, but has saved both myself and my group a number of times.

So, let's cut straight to the macro itself.

#show [mod:alt]Parry;[mod:shift]Flare;Auto Shot
/stopcasting [mod:alt]
/stopattack
/stopmacro [mod:alt]
/startattack [nomod:shift]
/stopmacro [nomod:shift]
/stopmacro [target=focustarget,noexists]
/target focustarget
/petattack
/startattack

The function of this macro is three-fold, depending on which modifiers I'm holding down.  For the purposes of this post, assume the macro is bound to the '1' key.  The macro's functions are:

  1. It turns auto shot on (1),
  2. it stops me shooting (Alt+1) and
  3. it makes both myself and my pet attack the target of my focus (Shift+1).

"But," I hear you say, "I already have a button to turn auto shot on and off; it's called 'Auto Shot.'"

Aah, not quite.  The regular auto shot button doesn't turn it on or off, it toggles it.  It's an important distinction.  With this macro, you can spam 1 all you like to start auto shot up.  But more importantly, you can hit Alt+1 to not only turn auto shot off, but cancel whatever you may be casting at the time.

Imagine you're trying to pull a mob off someone that's pulled aggro and draw them on to your trap.  You're blasting away, trying to generate threat, when the mob aggroes on you.  It's sailing towards you, and you need to stop shooting it or you'll break your own trap.  Without this macro, I would often toggle auto shot off and then back on again by accident, or not cancel my steady shot in time.  With this macro, it's much harder to mess up.

You can also use it to do things like hit a mob in a Freezing Trap with a Scorpid Sting without risk of breaking the trap itself (hit Scorpid Sting followed immediately by Alt+1.)

The last function is basically building an assist-like command into the button.  The way I use this is to have the main assist (or failing that, the tank) focused.  This means I can instantly start attacking their target, and sick my pet on it, by hitting Shift+1.  This is actually harder to do than it sounds.

Y'see, WoW does a lot of things to "help" the player.  For instance, if you get within range of a mob, but don't have it targetted, and hit an offensive spell, WoW will automatically target the closest mob for you.  Nifty, huh?

Umm, no.  Not when the closest mob happens to be the one you right just five seconds ago trapped.  Bam.  Bye-bye trap, hello irate mob.  You would not believe how many times I nearly wiped groups while trying to work the kinks out of this macro.  "It's OK, I'm sure it's working this ti... yeah, OK, I think I know what went wrong.  Hang on..."

So, if that all sounds handy, you can copy and paste the macro code into one of your character's macro slots, and off you go (make sure to select the "?" icon.)  If you'd rather know how the macro works before using it, read on.

Let's pull this puppy apart to see how it works.

#show [mod:alt]Parry;[mod:shift]Flare;Auto Shot

This line just controls what icon is shown for the macro.  I prefer to have each unique action have its own icon, as a kind of visual reminder to myself that the modifier keys actually do something.  It will show the Parry icon for the "stop shooting" action, Flare for "assist" and your gun's image for "start shooting."

/stopcasting [mod:alt]
/stopattack
/stopmacro [mod:alt]

These three lines are how the "stop shooting" bit works.  First of all, we use /stopcasting (if Alt is held down) to cancel the current cast.  We then use /stopattack to turn off Auto Shot irrespective of modifiers.  Finally, if Alt was being held down, we stop the macro (we've already done our job.)

But wait... why stop auto shot?  Because we don't know if it's already on or not.  We explicitly turn it off here so that we know what state it's in.

/startattack [nomod:shift]
/stopmacro [nomod:shift]

Now, we do the "start shooting" part; we turn auto shot back on and stop the macro if Shift wasn't being held down.  One nice thing is that this /startattack cancels out the previous /stopattack, so the auto shot timer won't reset if you spam this macro.

/stopmacro [target=focustarget,noexists]
/target focustarget
/petattack
/startattack

Now for the "assist my focus" part.  First of all, we stop the macro if our focus doesn't have anything targeted.  This is what prevents WoW from simply finding and targeting some random mob in front of us.  We then manually switch our target to our focus' target, send the pet in to attack, and turn on auto shot.

And that's all she wrote.  Not too bad, huh?  Admittedly, it took a bit of trial and error to get all the commands in the right order, but at least I've already done that part.

So there you have it: one instance where some macro magic can make life as a hunter a lot easier.

3 comments:

ma' said...

hi hi.
i was so happy to see your post about lightbox on blogger. i did every thing you said as you had explained or as how i understood it at least (because i'm doing something wrong and the lightbox just don't appear) just a simple link to the image is being done.
oh help help. i've been spending days over this. i even bought the $3-license on lightview but couldn't do it as well.
i hope you could help me. :(

thank you thank you.

-ma'

Itsnoteasy said...

Using my incredible powers of divination, I believe the problem is the URLs you've used in your page template. Specifically, you've used "lightbox-prototype.js.js" when you need "lightbox-prototype.js" (the bits before that are fine.)

You want to replace all the ".js.js" with ".js" and the "lightbox.css.css" with "lightbox.css". That should (hopefully) fix it.

If you've got any further problems, please post them back in the Blog Azeroth.

Itsnoteasy said...

...back in the Blog Azeroth thread. The brain, she is no worky tonight! Is needing moar coffee...