Advanced Macroing
#1
So, tonight --being Sunday the 30th-- I was waiting for a vendor to restock the Shadow Oil recipe. One I overlooked while leveling, and need to be able to make Greater Shadow Protection pots.

While I waited, I grew bored. And it was then that I recalled how there were some impressive macros for druids. Yep, druids are just that cool to each other. No really, I basically cranked out and learned how to create a macro to cast MotW on anyone with one button. That's right, I can cast Rank 3 on a level 10 and Rank 6 -- Don't have 7 yet-- on a sixty with the same mouse click. Yes, I click my buttons, not use my keyboard.

So, here goes:
Code:
/script r=6;l={1,10,20,30,40,50};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for i=r,1,-1 do if (t>=l[i]-10) then CastSpellByName("Mark of The Wild(Rank "..i..")");break;end;end
As you can see, it's quite complex. But the game takes all that hibbity-jibbity and makes sense of it.

It really becomes too complex to explain it all. My macro is for me, at my level. If I was level sixty it would looke more like this:
Code:
/script r=7;l={1,10,20,30,40,50,60};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for i=r,1,-1 do if (t>=l[i]-10) then CastSpellByName("Mark of The Wild(Rank "..i..")");break;end;end

So yeah, lots of info there. But Zema asked me to show her how to do this for PW:Fort. So, here goes:
Code:
/script r=67;l={1,12,24,36,48,60};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for i=r,1,-1 do if (t>=l[i]-10) then CastSpellByName("Power Word: Fortitude(Rank "..i..")");break;end;end
That should do it.

Now, to further spice this up, after the last ";end" you could pop on a
Code:
;x=random(10); if x==1 then SendChatMessage("insert message here");end
This basically tells the game to pick a random number out of 10. If it picks one, it will say that. If you want this to be said more frequently, lower the number in x=random(#). If you want it to be said less often, make that number bigger. Note, you may have to delete the
Code:
if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target")

So, an end result might look like this:
Code:
/script r=67;l={1,12,24,36,48,60};t=UnitLevel("target");for i=r,1,-1 do if (t>=l[i]-10) then CastSpellByName("Power Word: Fortitude(Rank "..i..")");break;end;end;x=random(10); if x==1 then SendChatMessage("Hope this doesn't tickle too much! Hee hee");end
It has been a while, my friends. Time to come back in time.
Reply
#2
(( <crosses her eyes> Oiye. I'm too sleepy to process this yet..but WOW...thank you so much, Haida! ))
Reply
#3
I'm giving this one a bump, as people like Rose and Kernasas expressed interest in how to make a macro say things only x% of the time. Hopefully you can infer what I mean in the latter part of that message I typed up for Zema way back in the day. I'm a bit too lazy right now to further clarify, but I will if I must. ^_^
It has been a while, my friends. Time to come back in time.
Reply
#4
((Has a patch broken this I wonder? Diddn't work on my priest Sad ))
Reply
#5
Non-advanced macroing!

/target YourName
/cast Innervate

Stick this on your hotbar, and no more innervating the tank!
If you're the generous sort, you can have the unadorned spell on there somewhere too, so you can cast it on your priest or whathaveyou.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)