World of Warcraft

1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 0. Rogue Macro Guide   08/31/2006 09:32:56 AM PDT
limit-reached limit-reached
LINK TO ROGUE MACROS FOR 2.0 (v2) THREAD:

http://forums.worldofwarcraft.com/thread.html?topicId=65161140&postId=649256681&sid=1#0


Macro’s Made Easy; A Rogue’s Guide
Yeah, every other class has a dedicated Macro thread except Rogues. Why is that? We have needs too! So this will hopefully get stickied for future reference. I am by no means a Macro Expert – most of the info here has been culled from other sources (the origins of which I don’t recall), and this is definitely not a complete do-it-all page. There is a lot of redundant info here that can be found in the other various forums or threads. The idea is that my Stealthy Bruthahs and Sistahs won’t have to hunt around to find macro info. Hopefully you will find this useful. Please feel free to add in your favorite macros, or variations that you use.

Thanks,

~ Lir ~



Need Some Basic Macro Help?
This is a great Macro thread by Cairenn. A lot of the basics I touch on here are explained in more detail there.

http://12.129.252.27/thread.html?topicId=11381238&sid=1


Most Used Macros?
These link to pages containing various macros, some of which are useful, but not necessarily “optimized” for best use of text limits, or “roguish” needs.

http://www.wowwiki.com/Most_Used_Macros

http://wowmacros.com


Gotta Have More Cowbell?
Lir, this stuff is too simple. I want some MEAT!
…Try these pages. Lots of cool commands and such that you can spin to fit nearly any purpose, as well as some info on how to shrink your macros better to cram in more killing power.

http://www.wowwiki.com/UI_FAQ/Macros_and_Scripts

http://www.wowwiki.com/World_of_Warcraft_API

http://www.wowwiki.com/HOWTO:_Shrink_a_Macro


Potentially Useful Macro Addons?
Super Macro – adds to your text limits, as well as shortening text strings into simpler commands.
http://sagez.net/amuseum/wow/addons.html#supermacro

IsBuffActive – this addon will allow you to shorten your buff / de-buff checking macros. It scans all the buff / de-buff slots.
http://www.curse-gaming.com/en/wow/addons-974-1-isbuffactive.html

UseByName - this addon will allow you to shorten your “item name” checking macros.
http://www.curse-gaming.com/en/wow/addons-108-1-usebyname.html

This adds equipped item slots to your macro icons, showing what is currently equipped. Useful for Trinket and Weapon swappers.
http://gello.wowinterface.com/downloads/info4737-Equipped_Macro_Icons.html

Trying to swap daggers for BS / Ambush? Here ya go.
http://www.curse-gaming.com/en/wow/addons-110-1-weaponquickswap.html

Want the “one button does it all” macro? LazyRogue builds a template that makes your “one button” do something specific for any given situation.
http://ithilyn.com/pmwiki/index.php?n=LazyRogue.LazyRogue



Ok, Now For Some Macro Basics…

Want to use an item in one of your bags? For example; UseContainerItem(x,y), where x is the bagslot, and y is the itemslot.
    X = Bags; [4][3][2][1][0]. They count from 4 to 0, LEFT to RIGHT. 0 is your backpack.
    Y = Slots inside the bag count, from top left to bottom right;

    [1] [2] [3] [4]
    [5] [6] [7] [8]
    [9] [10][11][12]
    [13][14][15][16]
NOTE: Do NOT use any “UseContainerItem” script with a vendor screen open. You will automatically sell all the items, all at once.

Want to do something with an item that you have equipped? For example; UseInventoryItem(#) or PickupInventoryItem(#).
Inventory / Equipped Item Slots:
    0 = ammo
    1 = head
    2 = neck
    3 = shoulder
    4 = shirt
    5 = chest
    6 = belt
    7 = legs
    8 = feet
    9 = wrist
    10 = gloves
    11 = finger 1
    12 = finger 2
    13 = trinket 1 (top)
    14 = trinket 2 (bottom)
    15 = back
    16 = main hand
    17 = off hand
    18 = ranged
    19 = tabard
    20 = first bag (the rightmost one)
    21 = second bag
    22 = third bag
    23 = fourth bag (the leftmost one)
Want to use a particular action on an Action-Bar? For example; UseAction(#), or GetActionCooldown(#), or IsUsableAction(#).
Here are the Actionbar numbers (1-6), and their associated Slot numbers:
    1: 1 2 3 4 5 6 7 8 9 10 11 12
    2: 13 14 15 16 17 18 19 20 21 22 23 24
    3: 25 26 27 28 29 30 31 32 33 34 35 36
    4: 37 38 39 40 41 42 43 44 45 46 47 48
    5: 49 50 51 52 53 54 55 56 57 58 59 60
    6: 61 62 63 64 65 66 67 68 69 70 71 72
Yeah yeah, that’s great, but how do I make a string of spells / abilities fire from the same click or button press? Well, you are limited by Global Cooldowns. So you can string together as many as you want if they have NO global cooldown, and then at the end you can put in ONE that DOES have the global cooldown. For example;
    /cast Spell WITHOUT Global Cooldown
    /script SpellStopCasting()
    /cast Spell WITHOUT Global Cooldown
    /script SpellStopCasting()
    /cast Spell WITH Global Cooldown


Code-Shrinking Basics…
See the above link for the full scoop, but for basics; assign variables to anything that that is repeated more than once inside your macro. Also note that the Rank of the spell is no longer required - the highest Rank that is available to you is automatically used. Semi-colons are not necessary – you can use spaces, or use the “)” as you delimiter. Be sure to remove as many unnecessary spaces as you can – they count against your text limit of 255 characters. One more thing; “/run” and “/script” are the same, except /run is shorter…

For example, this string has 184 characters…

    /script if (GetComboPoints()>=5) and UnitMana(“Player”)>=45 then CastSpellByName(“Eviscerate(Rank8)”);end
    /script if UnitMana(“Player”)>=35 CastSpellByName("Sinister Strike(Rank8)");end
But can be shortened easily with…

    /script C=CastSpellByName;U=UnitMana(“Player”);if (GetComboPoints()>=5) and U>=45 then C("Eviscerate");end;if U>=35 C("Sinister Strike");end
That gets us down to 140 words. But, even better, if we are gonna be spamming SS anyhow, who cares how much energy we have? Lets make it shorter…

    /run C=CastSpellByName;if (GetComboPoints()>=5) then C("Eviscerate") else C("Sinister Strike");end
Yeah Lir, but who cares if it’s down to 98 characters? What am I gonna do with the other 157 characters?” Well, now you can throw in more specifics for your macro and tailor it to your needs. Want some instant energy via ThistleTea, or some Riposte or Cold Blood action? Now you have room…

    /run C=CastSpellByName;G=GetComboPoints()if IsUsableAction(5)then C("Riposte")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
So now we have a squeezed macro that will automatically fire off Riposte when it can, and will Evis when we get 5 CPs or if the target’s health is below 20% and we have 2 or more CP’s on it. Otherwise it will just spam SS until another condition is met. All that in 198 characters! Heck, you could probably squeeze in a “use potion if low on health” string if we wanted to…

Ok Lir, Stop Screwing Around and Lets See The Good Stuff…

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 1. Rogue Macros   08/31/2006 09:33:34 AM PDT
limit-reached limit-reached
STEALTH MACROS:

MASHABLE STEALTH MACRO:
This macro allows you to mash the stealth button without de-stealthing yourself.

    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)end
MASHABLE SHADOWMELD MACRO:
A little more complex since Shadowmeld doesn't use the ShapeshiftForm API. It works by scanning your buffline for Shadowmeld and casting it if it is not present.

    /run local i=0 local s while 1 do local b=GetPlayerBuff(i)if b<0 then break end GameTooltip:SetPlayerBuff(b)if getglobal("GameTooltipTextLeft1")GetText()=="Shadowmeld" then s=1 end i=i+1 end if not s then CastSpellByName("Shadowmeld")end
STEALTH IF NOT IN COMBAT -> VANISH IF IN COMBAT
In theory, this one will allow you to mash for stealth. If you are NOT stealthed and NOT in combat then it should stealth you. If you ARE in combat then it should Vanish you. I think...

    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)else if PlayerFrame.inCombat then CastSpellByName(“Vanish”)end
GOUGE -> RE-STEALTH -> CHEAP SHOT

    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)end
    /cast Cheap Shot
    /cast Gouge
If you can stealth, it will stealth then Cheap Shot the target. Otherwise it will cast Gouge, then you can spam it until Stealth becomes available and it will re-stealth you and fire off a Cheap Shot automatically. The restealth depends on you dropping out of combat, of course, so it may not always work since Gouge may end early depending on the level of your target.
Drawback with this one is that if you are charging an opponent you may drop into stealth and Gouge them if the range / timing isn’t quite right. I’ve found that it works to use 2 separate buttons; one for gouge, one for “stealth -> cheap shot”…

STEALTH (Spammable) -> CHEAP SHOT

    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)end
    /cast Cheap Shot
MOUNT / DISMOUNT / STEALTH MACRO:
This will activate your Mount on the first click – dismounting you if mounted, or mounting you if you are standing still (even if you are stealthed, thus breaking stealth). Once you are dismounted it will activate Stealth on the next click if you are moving. Generally, if you are riding at an opponent the first click will dismount you, the second click will stealth you so long as you keep moving. Specify your mount location for the “UseContainerItem(x,y)”.

    /run UseContainerItem(x,y)
    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)end

EXPOSE ARMOR MACROS:

EXPOSE ARMOR WITHOUT BREAKING GOUGE
This has been going around for a while now. Here is a good Forum Thread on the subject.

http://forums.worldofwarcraft.com/thread.html?topicId=28327783&sid=1

In summary, it shows a macro and steps to follow, but also includes a template for use with the Super Macro addon.

    /cast Expose Armor
    /run ClearTarget()
    /run TargetLastTarget()
However, it seems that occasionally after EA is fired off an attack will still “sneak” in there. To prevent this, you should turn away from your target or try swapping weapons to stop the attack.

To add in a weapon swap to stop your attacks...

    /cast Expose Armor
    /run UseContainerItem(x,y)
    /run ClearTarget()
    /run TargetLastTarget()
In theory this will do your EA and immediately swap your weapon as well as clear your targets, which should stop your attack. To swap your weapon back, just hit this macro again. If you have no combo points it will say "unable to perform EA", but should still swap weapons...


WEAPON-SWAPS with AMBUSH or BACKSTAB…

AMBUSH: Hit it once to switch to a dagger (placed in the appropriate bag-slot), then spam it to cast Ambush as soon as it's ready. Replace “Hammer” with your main-hand weapon.

    /run l=GetInventoryItemLink("player",16)n=string.find(l,"Hammer")if n then UseContainerItem(0,13)else CastSpellByName(“Ambush”)end
BACKSTAB: This will swap your weapon on first click, then cast Backstab AND swap weapon back on the second click.

    /cast Backstab
    /run UseContainerItem(x,y)
I find it easiest to use the above 2 together. After I do an Ambush, I can just hit my Backstab macro and it will swap my weapons back to normal, without the Backstab, of course. I also use the Equipped Macro Icon addon for these so that I can see exactly what I have equipped in my main hand after I fire off an ambush or a backstab.


OTHER AMBUSH / BACKSTAB MACROS:

If a Dagger is Equipped then Backstab, otherwise Sinister Strike:

    /run C=CastSpellByName;l=GetInventoryItemLink("player",16)n=string.find(l,"Dagger")if n then C(“Backstab”)else C(“Sinister Strike”)end
AMBUSH IF STEALTHED -> BACKSTAB IF NOT

    /run C=CastSpellByName;if string.find(GetShapeshiftFormInfo(1),"Invis")then C("Ambush")else C("Backstab")end
MASHABLE “ATTACK” -> BACKSTAB
This will auto-attack if the requirements for backstab are not met (60 Energy, behind the target) without toggling off the auto-attack.

    /cast Backstab
    /run if not UnitAffectingCombat("player")then CastSpellByName("Attack")end


SINISTER STRIKE -> EVISCERATE MACROS

SINISTER STRIKE -> EVISCERATE @ 5CPs or < 20% Health…

    /run C=CastSpellByName;G=GetComboPoints()if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end

AUTO-RIPOSTE MACROS:

SINISTER STRIKE -> EVISCERATE @ 5CPs or < 20% Health…With RIPOSTE:
Be sure to modify “IsUsableAction(##)” with the location of your Riposte button.

    /run C=CastSpellByName;G=GetComboPoints()if IsUsableAction(##)then C("Riposte")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
…With a RIPOSTE Cooldown Check:

    /run C=CastSpellByName;G=GetComboPoints()if IsUsableAction(##)and GetActionCooldown(##)==0 then C("Riposte")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
…With “In Combat” Check to Initiate Auto-Attack:

    /run C=CastSpellByName;G=GetComboPoints()if not UnitAffectingCombat("player")then C("Attack")end;if IsUsableAction(##)then C("Riposte")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end

COLD BLOOD MACROS:
For these, Cold Blood MUST be on one of your action bars - although it doesn’t have to be the visible one. Replace the "##" with the action bar number for its location.

SINISTER STRIKE -> 5pt COLD BLOOD - EVISCERATE (or EVIS @ < 20% Health)
Will check for 5cp's and enough energy to cast Evis, then it will cast Cold Blood then Evis. Or, if the target is below 20% health it will cast Evis if you have 2 or more CP's. Otherwise it will just cast SS. Note; the “mana” check is there to make sure you will be able to pull off your Eviscerate in a timely manner. You may find that it is not actually needed…

    /run C=CastSpellByName;G=GetComboPoints()if UnitMana("Player")>=35 and G>=5 then C("Cold Blood")end;if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
…With Cooldown Check on COLD BLOOD:
This one will check the cooldown on Cold Blood and cast if it can, otherwise it will cast Eviscerate. Replace the ## with your action bar slot.

    /run C=CastSpellByName;G=GetComboPoints()if GetActionCooldown(##)==0 and G>=5 then C("Cold Blood")end;if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
COLD BLOOD or EVISCERATE
Check for cooldown on Cold Blood and casts it, or casts Eviscerate.

    /run C=CastSpellByName;if GetActionCooldown(##)==0 then C("Cold Blood")else C(“Eviscerate”)end
5pt COLD BLOOD -> EVISCERATE
If you have 5 combo points this will activate Cold Blood on the first click if it is not on cooldown. The second click will fire off Eviscerate, unless Cold Blood IS on cooldown, in which case the first click will just do Eviscerate.

    /run if GetActionCooldown(##)==0 and GetComboPoints()>=5 then CastSpellByName("Cold Blood")else C(“Eviscerate”)end

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 2. More Rogue Macros...   08/31/2006 03:21:19 PM PDT
limit-reached limit-reached
HEMORRHAGE MACROS:
Please note that these haven't been tested very thoroughly. It may be neccessary to change the name "Hemorrhage" to the actual Debuff icon name -> LifeDrain. Also note that I have changed "UnitBuff" to "UnitDebuff", as Hemorrhage is a debuff.

HEMORRHAGE DEBUFF CHECK -> REAPPLY HEMORRHAGE
Debuff loop to check all the filled debuff slots for Hemorrhage then cast Hemorrhage.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"LifeDrain")then z=1 end end if z==1 then C("Hemorrhage")end
HEMO -> SS
This will check all the debuff slots for Hemo and reapply it as you spam SS.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"LifeDrain")then z=1 end end if z==1 then C("Hemorrhage")else C("Sinister Strike")end
HEMO -> SS -> 5cp EVIS
This will check all the debuff slots for Hemo and reapply it as you spam SS. At 5cp’s it will Eviscerate.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"LifeDrain")then z=1 end end if z==1 then C("Hemorrhage")end;if GetComboPoints()>=5 then C(“Eviscerate”)else C(“Sinister Strike”)end
HEMO -> GHOSTLY STRIKE -> SS
This will check all the debuff slots for Hemo and reapply it as you spam SS. It will also fire off Ghostly Strike when able to.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"LifeDrain")then z=1 end end if z==1 then C("Hemorrhage")end;if GetActionCooldown(##)==0 and IsUsableAction(##)then C(“Ghostly Strike”)else C(“Sinister Strike”)end
CHEAP SHOT -> GHOSTLY STRIKE -> HEMO -> SS -> 5cp EVIS
This won’t check all the debuff slots for Hemo or Cheap Shot.

    /run C=CastSpellByName;T=UnitDebuff("Target",i)if strfind(T,"Hemorrhage")~=nil then C(“Hemorrhage”)end;if strfind(T,"Cheap Shot")~=nil then C(“Ghostly Strike”)end;if GetComboPoints()>=5 then C(“Eviscerate”)else C("Sinister Strike")end
IF GHOSTLY STRIKE IS ON COOLDOWN, THEN HEMO:
Be sure to replace the "##" with the Slot of your Hemo on your action bar.

    /run C=CastSpellByName;if GetActionCooldown(##)==0 then C(“Ghostly Strike”)else C(“Hemorrhage”)end
HEMO -> Ghostly Strike -> SS -> 5cp EVIS
This won’t check ALL the debuff slots for Hemo.

    /run C=CastSpellByName;if strfind(UnitDebuff("Target",i),"Hemorrhage")~=nil)then C(“Hemorrhage”)end;if IsUsableAction(##)then C("Ghostly Strike")end;if GetComboPoints()>=5 then C(“Eviscerate”)else C("Sinister Strike")end
HEMO -> SS -> EVIS @ 5cp or < 20% Health:
This won’t check all the debuff slots for Hemo.

    /run C=CastSpellByName;G=GetComboPoints()if strfind(UnitDebuff("Target",i),"Hemorrhage")~=nil)then C(“Hemorrhage”)end;if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C(“Eviscerate”) else C("Sinister Strike")end

GHOSTLY STRIKE MACROS:
Please note that these haven't been tested very thoroughly. It may be neccessary to change the name "Cheap Shot" to the actual Debuff icon name -> CheapShot. Also note that I have changed "UnitBuff" to "UnitDebuff", as Hemorrhage is a debuff.

SINISTER STRIKE -> GHOSTLY STRIKE -> EVISCERATE @ 5CPs or < 20% Health
This checks that Ghostly Strike is finished cooldown then fires it off. Otherwise it spams SS to 5cp’s then Eviscerates – unless the target is below 20% health, in which case if there are 2 or more cp’s it will Evis.

    /run C=CastSpellByName;G=GetComboPoints()if GetActionCooldown(##)==0 then C("Ghostly Strike")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
…With “In Combat” Check to Initiate Auto-Attack:

    /run C=CastSpellByName;G=GetComboPoints()T=”Target”;if not UnitAffectingCombat("player")then C("Attack")end;if GetActionCooldown(##)==0 then C("Ghostly Strike")end;if G>=5 then C(“Eviscerate”)else C("Sinister Strike")end
In theory, these macros will not SS if Ghostly Strike is done its cooldown, thus “saving up” energy until there is enough to use Ghostly Strike. Maybe.

CHEAP SHOT -> GHOSTLY STRIKE -> SS
Lead off with your Cheap Shot, then spam this macro. It will check all the debuff slots for Cheap Shot and when Cheap Shot fades from the target it will cast Ghostly Strike if able to. Otherwise it will spam SS.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"CheapShot")then z=1 end end if z==1 and GetActionCooldown(##)==0 and IsUsableAction(##)then C(“Ghostly Strike”)else C(“Sinister Strike”)end
HEMO -> GHOSTLY STRIKE -> SS
This will check all the debuff slots for Hemo and reapply it as you spam SS. It will also fire off Ghostly Strike when able to.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"LifeDrain")then z=1 end end if z==1 then C("Hemorrhage")end;if GetActionCooldown(##)==0 and IsUsableAction(##)then C(“Ghostly Strike”)else C(“Sinister Strike”)end
SLICE AND DICE MACROS:
These will generally spam SS until you get 5cps, then it will fire off Slice & Dice. If your targets health drops to a certain level it will switch to Eviscerate. You can change your Combo Point settings (G>=5) and Target Health settings (H>=.5) to your tastes.

Please note that I have not fully tested all of these. Provide feedback if you find problems and / or fixes.

SLICE AND DICE FOREVER!
This will cast Slice and Dice if you do not already have it running and have at least 1 combo point. Otherwise, it will spam Sinister Strike.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitBuff("player",i)if x and strfind(x,"SliceDice")then z=1 end end if z==1 then C("Sinister Strike")elseif GetComboPoints()>=0 then C("Slice and Dice")end
SS -> 5pt SnD -> @<50% = 5pt Evis

    /run C=CastSpellByName;G=GetComboPoints()H=UnitHealth("Target")/UnitHealthMax("Target")if H>.5 and G>=5 then C(“Slice and Dice”)elseif H<=.5 and G>=5 then C(“Eviscerate”)else C(“Sinister Strike”)end
SS -> 5pt SnD -> @<50% = 5pt Evis -> @<20% = 2+pt Evis

    /run C=CastSpellByName;G=GetComboPoints()H=UnitHealth("Target")/UnitHealthMax("Target")if H>.5 and G>=5 then C(“Slice and Dice”)elseif H<=.5 and G>=5 or H<=.2 and G>=2 then C(“Eviscerate”)else C(“Sinister Strike”)end
Auto-Riposte -> SS -> 5pt SnD -> @<50% = 5pt Evis
Be sure to change the ## for your Riposte.

    /run C=CastSpellByName;G=GetComboPoints()H=UnitHealth("Target")/UnitHealthMax("Target")if IsUsableAction(##)then C("Riposte")end;if H>.5 and G>=5 then C(“Slice and Dice”)elseif H<=.5 and G>=5 then C(“Eviscerate”)else C(“Sinister Strike”)end
“In Combat” Check -> SS -> 5pt SnD -> @<50% = 5pt Evis

    /run C=CastSpellByName;G=GetComboPoints()H=UnitHealth("Target")/UnitHealthMax("Target")if not UnitAffectingCombat("player")then C("Attack")end;if H>.5 and G>=5 then C(“Slice and Dice”)elseif H<=.5 and G>=5 then C(“Eviscerate”)else C(“Sinister Strike”)end

“I WANNA KILL!” MACROS:

WHIRLWIND OF DEATH…
Evasion -> Blade Flurry -> Adrenalin Rush -> Sinister Strike -> Riposte -> Eviscerate…
You can reorder the Eva/BF/AR based on how you want to start your combat, and delete the Riposte string if you don’t have Riposte.

    /cast Blade Flurry
    /cast Evasion
    /cast Adrenaline Rush
    /run C=CastSpellByName;G=GetComboPoints()if IsUsableAction(5)then C("Riposte")end;if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C("Eviscerate")else C("Sinister Strike")end
PREMEDITATION -> CHEAP SHOT:
This will check if you are in combat, then cast Premeditation on the first click and Cheap Shot the target on the second click.

    /run if (not PlayerFrame.inCombat) then CastSpellByName("Premeditation");
    /cast Cheap Shot

STUN-LOCK FTW!
Please note, this one is very rough and seems a bit twitchy, so use caution with your spamming.

CHEAP SHOT -> GOUGE -> KIDNEY SHOT -> SS
Lead off with your Cheap Shot, then spam this macro. It will check all the debuff slots for Cheap Shot and when Cheap Shot fades from the target it will cast Gouge. Once Gouge lands be patient and watch your Stun Timer (a must-have addon). When Gouge is about up or your energy is back to 100%, hit this macro again and if you have 3 or more CP’s it will Kidney Shot, then spam SS. I recommend using this for openers then switch to a SS -> Evis macro.

    [/run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"CheapShot")then z=1 end end if z==1 then C(“Gouge”)end;if G>=3 then C(“Kidney Shot”)else C(“Sinister Strike”)end

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
60
View All Posts by This User Toggle Ignore / Unignore This User
  • Blackhand
  • 3. Re: Mashable Stealth Macro   08/31/2006 03:28:03 PM PDT
limit-reached limit-reached
How about a "Ghostly Strike on cooldown, else Hemo" macro?

I never was good at coding.
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 4. Re: Mashable Stealth Macro   08/31/2006 03:30:26 PM PDT
limit-reached limit-reached
Please, go to the original post on this thread, and submit a report, requesting that it be stickied! This is exactly the kind of material we want to be available to all rogues learning about their class!

If, while raiding, the raid leader or the class lead for your guild asks you to justify your role on the raid, be ready to answer well.
http://ctprofiles.net/3185537
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 6. Re: Mashable Stealth Macro   08/31/2006 04:19:37 PM PDT
limit-reached limit-reached
/bump
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 7. More Rogue Macros...   08/31/2006 04:20:59 PM PDT
limit-reached limit-reached
THISTLE TEA MACROS:

This will see if the “Renataki” trinket is equipped and check that it is not on cooldown, then use it. Otherwise it will drink the Tea. You can change the Trinket slot you are using (13 is top, 14 is bottom), and define the location of your ThistleTea in the “UseContainerItem” slots. Also, specify some part of the trinket name ("Renataki” trinket in the case of this question) – you may need to fiddle with the name a bit so it works properly.

    /run C=CastSpellByName;i=GetInventoryItemLink("player",13)n=strfind(i,"Renataki")if n==1 and GetInventoryItemCooldown(“player”,13)==0 then UseInventoryItem("13")else UseContainerItem(x,y)end
USE TEA @ <30 ENERGY -> BLIND -> BANDAGE SELF
This should use your Tea if you have <30, otherwise it will blind. Then with the next button tap it should go into the Bandage portion of the macro. But if your Blind misses you may find yourself getting hit while bandaging...

    /run if UnitMana("Player")<30 then UseContainerItem(x,y)else CastSpellByName("Blind");end
    /run UseContainerItem(x,y)
    /run TargetUnit("player")
    /run TargetLastEnemy()
CHEAP SHOT -> BACKSTAB -> THISTLE TEA -> BACKSTAB…
When you spam this it should check for low energy first, fire off a CS.... keep spamming 'til you get your energy tick... then it will do your Backstab... keep spamming. At this point your energy should drop below 10 (you may need to adjust this number - maybe set it to 20?) and you'll drink your Tea. Of course you are out of stealth, so it won't do CS any more, but once the Tea kicks in you will fire off your 2nd Backstab.

    /run C=CastSpellByName;If UnitMana("Player")<=10 then UseContainerItem(x,y)end;C("Cheap Shot")end;C("Backstab")end
In theory, if the energy ticks are just right, you might even get 3 BS out of it. So line up your target and spam away :-)


APPLYING POISONS MACROS:

Poison Main Hand Weapon with One-Click:

    /run UseContainerItem(x,y)PickupInventoryItem(16)
Poison Off-Hand with First Click, Main Hand with Second Click:

    /run if GetWeaponEnchantInfo(nil)then UseContainerItem(x,y)PickupInventoryItem(17)else UseContainerItem(x,y)PickupInventoryItem(16)end
Poison Main-Hand with Click, Off-Hand with Alt-Click:

    /run UseContainerItem(x,y)
    /run if IsAltKeyDown()then PickupInventoryItem(17)else PickupInventoryItem(16)end
Poison Main-Hand with Click, Off-Hand with Alt-Click – using 2 different poisons…

    /run if IsAltKeyDown()then UseContainerItem(x,y)PickupInventoryItem(17)else UseContainerItem(x,y)PickupInventoryItem(16)end

HEALING / BANDAGE / “GOT THE LIFE?” MACROS:

THE EVER-REQUESTED BANDAGE-SELF MACRO:

    /run UseContainerItem(x,y)
    /run TargetUnit("player")
    /run TargetLastEnemy()
This variation should do the same thing, but without dropping your target and losing your Combo Points…

    /run UseContainerItem(x,y)SpellTargetUnit(“Player”)end
USE APPROPRIATE BANDAGES:
This macro will use the appropriate battleground bandage or “normal world” bandage depending on where you are located.

    /run TargetUnit("Player")
    /run U=UseContainerItem;i= GetRealZoneText()W=strfind(i,"Warsong")if W then U(x,y)end;A=strfind(i,"Basin")if A then U(x,y)end;V=strfind(i,"Valley")if V then U(x,y)else U(x,y)end
    /run TargetLastEnemy();
USE APPROPRIATE FOOD:
This macro will use the appropriate battleground food or “normal world” food depending on where you are located.

    /run U=UseContainerItem;i= GetRealZoneText()W=strfind(i,"Warsong")if W then U(x,y)end;A=strfind(i,"Basin")if A then U(x,y)end;V=strfind(i,"Valley")if V then U(x,y)else U(x,y)end
USE AN ITEM AT xx% HEALTH OR LESS:

    /run if UnitHealth(“Player”)/UnitHealthMax(“Player”)<.25 then UseContainerItem(x,y)
This could be useful to string in stages so you can use various heal items (that use different cooldown timers, of course) at different health levels with just one button. Specify the location of your healing item and the health level you want to use it at.

    /run H=UnitHealth(“Player”)/UnitHealthMax(“Player”);U=UseContainerItem;if H<=.3 then U(x,y)if H<=.2 then U(x,y)if H<=.15 then U(x,y)end


MOUNT MACROS:

MOUNT / DISMOUNT / STEALTH MACRO:
This will activate your Mount on the first click – dismounting you if mounted, or mounting you if you are standing still (even if you are stealthed, thus breaking stealth). If you are dismounted it will activate Stealth on the next click if you are moving. Generally, if you are riding at an opponent the first click will dismount you, the second click will stealth you. Specify your mount location for the “UseContainerItem(x,y)”.

    /run UseContainerItem(x,y)
    /run local _,_,active,castable=GetShapeshiftFormInfo(1)if not active and castable then CastShapeshiftForm(1)end
MOUNT + 3 ITEM SWAP (For Equipping Mount Speed Items):
Replace the container locations with the locations of your trinket, riding gloves, and spur-boots. If you're already riding, the items get switched back and you dismount. Note that activating the macro while moving will switch your items without summoning the mount, and you’ll be running around in your riding gear.

    /run U=UseContainerItem;U(x,y)U(x,y)U(x,y)U(x,y)


USE TRINKET MACROS
I generally use the Equipped Macro Icon addon for these so that I can see exactly what trinkets I have equipped.

WILL OF THE FORSAKEN or PvP TRINKET MACRO
This will use Will of the Forsaken first, if not on cooldown, otherwise it will try to use the Trinket in the Top slot (ideally your PvP trinket). Replace the "##" with the location of Will of the Forsaken on your action bar (it does not have to be your visible action bar).

    /run if GetActionCooldown(##)==0 and IsUsableAction(##)then CastSpellByName("Will of the Forsaken")else UseInventoryItem(13)end
Use Trinket in Top Slot:

    /run UseInventoryItem("13")
Use Trinket in Bottom Slot:

    /run UseInventoryItem("14")
Check Trinket Cooldown and Use it if Possible:
13 is top trinket, 14 is the bottom.

    /run if GetInventoryItemCooldown("player",13)==0 then UseInventoryItem(13)end


RANGED ATTACKS MACROS:

SHOOT WHATEVER YOU HAVE EQUIPPED:

    /cast Shoot Bow
    /cast Shoot Crossbow
    /cast Shoot Gun
    /cast Throw
…OR; This one eliminates the “item not equipped” messages.

    /run C=CastSpellByName;L=GetInventoryItemLink("Player",GetInventorySlotInfo("RangedSlot"));_,_,ic=strfind(L,"(%d+):");_,_,_,_,_,it=GetItemInfo(ic)t=strfind(it,"Thrown")a=strsub(it,0,-2)if(t)then C(a)else C("Shoot "..a)end
SHOOT or BOMB – DEPENDING ON RANGE TO TARGET
Put the shoot action AND your bomb / grenade on your action bar and replace the pound sign with the action bar slot numbers. If the target is too far away to shoot it will still activate bomb…

    /run if IsActionInRange(##)==0 then UseAction(##,0,nil)else CastSpellByName(“Shoot Gun”)end

OTHER USEFUL MACROS:

FLIP CAMERA VIEW / LOOK BEHIND YOU…
Just how close on your heels are those guys? Better take a look…

    /run FlipCameraYaw(180)
GET YOUR MAIL
First click opens mail and takes items, second click deletes the mail.

    /run GetInboxText(1);TakeInboxItem(1);TakeInboxMoney(1);DeleteInboxItem(1);
BLOCK TRADES
This will eliminate those pesky trade windows that pop open when you are at the mailbox by toggling your "block trades" option. Click once TO block unwanted lockboxes in a city, click again to unblock.

    /run if GetCVar("BlockTrades") == "1" then SetCVar("BlockTrades", "0") else SetCVar("BlockTrades", "1"); end

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 8. Re: Ghostly Strike / Hemorrhage Macro   08/31/2006 05:16:27 PM PDT
limit-reached limit-reached
Sticky please...this can be a valuable reference point for those looking to enhance their play.
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 9. Re: Rogue Macro Guide   08/31/2006 08:23:05 PM PDT
limit-reached limit-reached
Very good post.

This is the bandage macro i use.

/script UseContainerItem (x,x);
/script if(SpellIsTargeting()) then TargetUnit ("player"); end


60
View All Posts by This User Toggle Ignore / Unignore This User
  • 10. Re: Rogue Macro Guide   08/31/2006 08:26:59 PM PDT
limit-reached limit-reached
Sticky this imo.
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 11. Macro Line Examples...   09/01/2006 07:36:45 AM PDT
limit-reached limit-reached
Examples of Lines That Can Be Used In Your Macros…
Please note that some of these are not fully “optimized” and are meant only as an example of a string that you might apply to an existing macro to make it more versatile. Also please note that not all of the following strings have been fully tested; I apologize in advance for any problems this may cause.

Example of a UnitDebuff Check String:
Please note that this checks your Target for a debuff, and that the debuff name may be different from the name of the spell you are casting.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitDebuff("target",i)if x and strfind(x,"-Debuff you are checking-")then z=1 end end if z==1 then C(“-spell you want to cast if target is NOT debuffed-”)else C(“Sinister Strike”)end
Example of a UnitBuff Check String:
Please note that “target” has been changed to “player”, so this will check if YOU are buffed.

    /run local C,z=CastSpellByName,0 for i=1,16 do x=UnitBuff("player",i)if x and strfind(x,"-Buff you are looking for-")then z=1 end end if z==1 then C(“-spell you want to cast if player is NOT buffed-”)else C(“Sinister Strike”)end
Example of a “Cast Spell by Class” string:
This might be useful in automating if you want to Gouge, Kidney Shot, Kick, or Sunder Armor your opponent.

    /run U=UnitClass;C=CastSpellByName;if U(“Target”)=="Warrior" or "Rogue" then C("Blessing of Might")else if U(“Target”)=="Priest" or “Mage" then C("Blessing of Salvation")else C("Blessing of Wisdom")end
Example of Checking a Cooldown:
This checks the cooldown for Action Bar 2, Slot 0 = (13)

    /run if GetActionCooldown(13)==0 then …
Example of a string to check Player health and auto-cast:

    /run if UnitHealth("player")/UnitHealthMax("player")<=.7 then CastSpellByName("Berserking(Racial)")end
Simple Attack Macros:

    /run if not PlayerFrame.inCombat then CastSpellByName("Attack")end

    /run if not UnitAffectingCombat("player")then CastSpellByName("Attack")end
Example of a Spell / Ability Queue:

    /run local s={"Renew","Inner Fire","Flash Heal","Shadow Protection"} LSQ=LSQ or GetTime() SPQ=SPQ or 1 if GetTime()>(LSQ+10) then LSQ=nil SPQ=1 end CastSpellByName(s[SPQ]) SPQ=SPQ+1 if SPQ>table.getn(s) then SPQ=nil LSQ=nil end
Each click it will cast the next in a series of spells. After it reaches the end, or a specified amount of time has passed, it starts at the beginning again. Edit the spell/ability names within the {}’s, separating each spell/ability by a comma and surrounding it with quotation marks. Then change 10 to the time (in seconds) you'd like before the spell queue restarts from the beginning.

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 12. Re: Rogue Macro Guide   09/01/2006 07:51:37 AM PDT
limit-reached limit-reached
Get this stickied, do it!

http://ctprofiles.net/582381
60
View All Posts by This User Toggle Ignore / Unignore This User
  • Frostmane
  • 13. Re: Rogue Macro Guide   09/01/2006 07:56:34 AM PDT
limit-reached limit-reached
Lir... just as a tiny tip... you see where you have your bag shown like

[1][2]etc etc? Make it like [01][02] etc etc so it lines up with the 10-16 slots... looks nicer. =)
60
View All Posts by This User Toggle Ignore / Unignore This User
  • Thrall
  • 14. Re: Rogue Macro Guide   09/01/2006 07:58:06 AM PDT
limit-reached limit-reached
Great info here....

Can someone help me out with a macro that:
-activates riposte if available
-if riposte not available then it backstabs.


Thanks.
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 15. More Hemo Stuff...   09/01/2006 08:04:39 AM PDT
limit-reached limit-reached
This was asked about in another thread, so i'm summarizing it here to add to our Macro List...


Q u o t e:
...whenever i press a macro that stands for Sinister Strike/Hemmorhage - i would first equip a sword, than use SS/Hemmorhage if a sword is already equipped


For your "SS/Hemo" it should go something like this...

    /run C=CastSpellByName;if strfind(UnitDebuff("Target",i),"Hemorrhage")~=nil)then C(“Hemorrhage”)else C("Sinister Strike")end
In theory, this will check to see if the Target has the Hemorrhage debuff, and if not then it will cast Hemo first, then fire off SS.

If you really wanna get tricky, try this...

    /run C=CastSpellByName;G=GetComboPoints()if strfind(UnitDebuff("Target",i),"Hemorrhage")~=nil)then C(“Hemorrhage”)end;if G>=5 or UnitHealth("Target")/UnitHealthMax("Target")<.2 and G>=2 then C(“Eviscerate”) else C("Sinister Strike")end
This SHOULD fire Hemo first, then spam SS until you get 5cp or target is at 20% or less, then it will Evis. I'm not certain of the "UnitDebuff" part though, so give it a try.

Oops! Didn't address the "equip sword" issue... Ok, so you can replace "Sword" with the weapon-type of choice. Also, set the "UseContainerItem" slots to the location where your sword WILL be if it is not equipped.

    /run C=CastSpellByName;l=GetInventoryItemLink("player",16)n=strfind(l,"Sword")if n~=nil then UseContainerItem(0,13)end;if strfind(UnitDebuff("Target",i),"Hemorrhage")~=nil)then C(“Hemorrhage”)else C("Sinister Strike")end
Well, this should do what you want... maybe. The string idea is sound, but the order and details may be a bit buggy.

Let us know how it works out.

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 16. Riposte / Backstab Macro   09/01/2006 08:20:18 AM PDT
limit-reached limit-reached

Q u o t e:
Great info here....

Can someone help me out with a macro that:
-activates riposte if available
-if riposte not available then it backstabs.

Thanks.


Hi Virui, I'll make one, but you have to explain to me when / why you are using something like this. I can't seem to wrap my brain around the situation that it would be useful.

As always, replace the "IsUsableAction" with the location of Riposte in your action bar. Also, this will not check for facing of the target, so it may still fail to fire off.

    /run C=CastSpellByName;if IsUsableAction(5)then C("Riposte")else C("Backstab")end
If you want a "just in case my target's facing sucks AND riposte is not active" countermeasure, I recommend...

    /run C=CastSpellByName;G= GetComboPoints()if IsUsableAction(5)then C("Riposte")else C("Backstab")end;if G>=5 or UnitHealth(“Target”)/UnitHealthMax(“Target”)<.2 and G>=2 then C(“Eviscerate”)else C("Sinister Strike")end
In case you couldn't already tell, i'm a big fan of automating SS / Evis vs Target Health...

[ Post edited by Lir ]


~ Lir ~

"Twink-Light"

"Come Get Some!!"
60
View All Posts by This User Toggle Ignore / Unignore This User
  • Thrall
  • 17. Re: Riposte / Backstab Macro   09/01/2006 08:57:46 AM PDT
limit-reached limit-reached
Well, as a combat dagger pvp'r I find myself spamming backstab alot (while trying to get into position/waiting for energy) and often miss an opportunity to riposte melee opponents after I parry an attack.

So basically it would be a failsafe since I'm spamming backstab anyways and not always aware of when i get a parry off or riposte becomes availble.

Thanks for the help)
49
View All Posts by This User Toggle Ignore / Unignore This User
Lir
  • Ner'zhul
  • 18. Check Trinket Cooldown vs Use Thistle Tea   09/01/2006 09:00:43 AM PDT
limit-reached limit-reached
This is from another thread where it was asked "i want to check if a trinket is equipped or if it is on cooldown, use it if possible, otherwise use Thistle Tea".

You can change the Trinket slot you are using (13 is top, 14 is bottom), and define the location of your ThistleTea in the “UseContainerItem” slots. Also, specify some part of the trinket name ("Renataki” trinket in the case of this question) – you may need to change the name a bit so it works properly.

    /run C=CastSpellByName;i=GetInventoryItemLink("player",13)n=strfind(i,"Renataki")if n==1 and GetInventoryItemCooldown(“player”,13)==0 then UseInventoryItem("13")else UseContainerItem(x,y)end


So this will see if a trinket is equipped and check that it is not on cooldown, then use it. Otherwise it will drink the Tea.

~ Lir ~

"Twink-Light"

"Come Get Some!!"
60
View All Posts by This User Toggle Ignore / Unignore This User
  • 19. Re: Check Trinket Cooldown vs Use Thistle Tea   09/01/2006 09:09:34 AM PDT
limit-reached limit-reached
I want to bump this one more time before I log. Nice work lir keep it up.

http://ctprofiles.net/582381
1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16
Forum Nav : Jump To This Forum
Blizzard Entertainment