LuaNinja Macro Collection menu

User Tag List

Page 1 of 42 12345 ... LastLast
Results 1 to 15 of 629
  1. #1
    Elitetech's Avatar Contributor
    Reputation
    98
    Join Date
    Oct 2008
    Posts
    279
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    LuaNinja Macro Collection

    Please +Rep the people who made the macros. All the macros in Quote tags have the creators name in the top. All the macros in CODE tags are ones I've created.

    I figured that since the /Dump collection thread is outdated and the /dump command doesnt work, this should be where we store currently working macros.

    For these macros youll need http://www.mmowned.com/forums/bots-p...-lua-code.html

    For most of these macros youll want to use the addon Super Duper Macro : WoWInterface Downloads : Miscellaneous but that should be easy enough.
    Also many of the old macros from http://www.mmowned.com/forums/ui-mac...on-wip-mo.html will work if you replace /dump with /run .

    Edit 18 december 2009: If you want more detailed view on what the macro does, ask or press the "show quote" button on the top of the macros and it'll take you to the original post where more information might be stored.

    You can post working macros here and Ill add them to the main post or tell me if some macros dont work and Ill remove them.

    As with the previous thread Ill split this up in:
    General
    1. None worth listing

    Death Knight
    1. DK Rotation for any spec!
    2. DK Unholy

    Druid
    1. Moonkin Rotation
    2. Feral DPS Rotation

    Hunter
    1. None worth listing

    Mage
    1. Mage Arcane DPS
    2. Mage Frostfire
    3. Mage Fireball

    Paladin
    1. Holy Paladin Rotation
    2. Prot Paladin (969) Rotation
    3. Retribution Paladin DPS

    Priest
    1. Shadow DPS

    Rogue
    1. Mutilate Rogue

    Shaman
    1. Elemental
    2. Enhancement
    3. Restoration

    Warlock
    1. Felguard / Emberstorm Rotation

    Warrior
    1. Arms
    2. Protection



    General
    auto prospect/mill/DE/whatsoever
    Code:
    /cast Prospecting
    /use [Insert stuff]
    /in 3 /run RunMacro(1)
    spammable interrupt when casting for any class.
    Code:
    /run if UnitCastingInfo("target") then SpellStopCasting() CastSpellByName("INSERT INTERRUPT SPELL HERE") end
    Death Knight
    Originally Posted by deadca7 View Post
    Updated Gifteds UH DK macro, to work with LuaNinja
    We don't need all the crap anymore


    Druid
    Druid Remove Curse & Abolish macro
    Code:
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Curse" or d[5]=="Poison") and d[7]>m then w=tt; m=d[7]; if d[5]=="Curse" then s="Remove Curse" else s="Abolish Poison" end end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] "..s) end;
    Feral Druid DPS cycle
    Code:
    Feral Druid
    /run if UnitBuff("player", "Clearcasting") then CastSpellByName("Shred") end
    /run local _,d,_ = GetSpellCooldown("Tiger's Fury") if (d == 0) and UnitPower("Player") < 30 then CastSpellByName("Tiger's Fury") end
    /run p=GetComboPoints("player","target");if not UnitBuff("player", "Savage Roar") and p>0 then RunMacroText("/cast Savage Roar") end
    /run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitBuff("player","Savage Roar"); if(  (n-GetTime()<5) and p<4) then c("Savage Roar"); end;
    /run p=GetComboPoints("player","target");
    /run i=1 while(i<=40)do a={UnitDebuff("target",i)} if(a[1]=="Rip" and a[8]=="player") then break elseif(i==40) and p>4 then RunMacroText("/cast Rip") i=i+1 else i=i+1 end end
    /run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitDebuff("target","Rip"); if(  (n-GetTime()<5) and p>4) then c("Rip")end;
    /run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitDebuff("target","Rip"); if(  (n-GetTime()<7)) then else if (p>4) then c("Ferocious Bite") end end;
    /run if  UnitDebuff("target", "Mangle (Cat)") or UnitDebuff("target", "Mangle (Bear)") or  UnitDebuff("target", "Trauma",unitCaster~="player") then else CastSpellByName("Mangle (Cat)") end
    /run i=1 while(i<=40)do a={UnitDebuff("target",i)} if(a[1]=="Rake" and a[8]=="player") then break elseif(i==40) then RunMacroText("/cast Rake") i=i+1 else i=i+1 end end
    /run local _,d,_ = GetSpellCooldown("Shred") if (d == 0) then CastSpellByName("Shred") end
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
    Originally Posted by garyrbaker View Post
    I use the Moonkin one that was posted originally but changed it for SuperMacro
    All in one

    /run RegisterCVar("eclipse","Wrath")
    /run if (UnitMana('player')/UnitManaMax('player')<0.45) and (GetSpellCooldown("Innervate") == 0) then CastSpellByName("Innervate") end
    /run if not UnitDebuff('target','Faerie Fire') and UnitHealth('target')>150000 and not UnitDebuff('target','Faerie Fire (Feral)') then CastSpellByName('Faerie Fire')end
    /run a={UnitDebuff('target','Moonfire')}if(a[8]~='player')then CastSpellByName('Moonfire')end
    /run b={UnitDebuff('target','Insect Swarm')}if(b[8]~='player')then CastSpellByName('Insect Swarm')end
    /run a={UnitBuff('player','Eclipse')}if(a[3]=="Interface\\Icons\\Ability_Druid_Eclipse")then SetCVar("eclipse","Starfire")elseif(a[3]=="Interface\\Icons\\Ability_Druid_EclipseOrange")then SetCVar("eclipse","Wrath")end CastSpellByName(GetCVar("eclipse"))

    I changed it to cast innervate when I get below 45% mana and to only put on FF if health is over 150k because less than that and they are dead before I start casting



    Resto Druid healing cycle
    Code:
    /run if not UnitBuff("target", "Rejuvenation") then CastSpellByName("Rejuvenation") end 
    /run local _,_,_,c,_,_,_,_,_=UnitBuff("target","Lifebloom"); if (c~=3) then CastSpellByName("Lifebloom") end
    /run if not UnitBuff("target", "Regrowth") then CastSpellByName("Regrowth") end
    /run local _,d,_ = GetSpellCooldown("Healing Touch") if (d == 0) then CastSpellByName("Healing Touch") end
    Hunter
    Marksmanship Hunter DPS cycle
    Code:
    /run if not UnitDebuff("target", "Serpent Sting") then CastSpellByName("Serpent Sting") end
    /run local _,d,_ = GetSpellCooldown("Silencing Shot") if (d == 0) then CastSpellByName("Silencing Shot") end
    /run local _,d,_ = GetSpellCooldown("Kill Command") if (d == 0) then CastSpellByName("Kill Command") end
    /run local _,d,_ = GetSpellCooldown("Chimera Shot") if (d == 0) then CastSpellByName("Chimera Shot") end
    /run local _,d,_ = GetSpellCooldown("Aimed Shot") if (d == 0) then CastSpellByName("Aimed Shot") end
    /run local _,d,_ = GetSpellCooldown("Arcane Shot") if (d == 0) then CastSpellByName("Arcane Shot") end
    /run local _,d,_ = GetSpellCooldown("Steady Shot") if (d == 0) then CastSpellByName("Steady Shot") end
    Mage

    Mage Frost
    Code:
    /run c=CastSpellByName;if UnitHealth("target")/UnitHealthMax("target")<0.1) then c("Ice Lance") elseif UnitDebuff("target", "Frostbite",unitCaster~="player") then c("Deep Freeze") elseif UnitDebuff 
    
    ("target", "Deep Freeze",unitCaster~="player") then c("Ice lance") elseif UnitDebuff("target", "Frostbite",unitCaster~="player") then c("Ice Lance") elseif (GetSpellCooldown("Summon Water Elemental") == 0) 
    
    then c("Summon Water Elemental") elseif not UnitBuff("player", "Ice Barrier") then (GetSpellCooldown("Ice Barrier") == 0) (c("Ice Barrier"))() elseif (GetSpellCooldown("Icy Veins") == 0)  then c("Icy Veins") 
    
     else c("FrostBolt") end
    Hope there of use to some one.[/QUOTE]

    Originally Posted by Elitetech View Post
    Fixed the Arcane Rotation by adding a third macro casting Arcane Blast once and changed Missile Barrage (Not part of current top dps builds) to Arcane Blast(should've plenty of mana)

    Code:
    Arcane =Spamming macro
    /run local s,_,_,_,_,_,_,_=UnitChannelInfo("player"); if( s~="Arcane Missiles" ) then RunMacro("Arcane3"); end;
    Code:
    Arcane2
    /run c=CastSpellByName; local _,_,_,n,_,_,_,_,_=UnitDebuff("player","Arcane Blast"); if( n>=3 ) then if( UnitBuff("player","Missile Barrage") ) then c("Arcane Missiles"); else c("Arcane Blast"); end; else c("Arcane Blast"); end;
    Code:
    Arcane3
    /run if not UnitDebuff("player", "Arcane Blast") then CastSpellByName("Arcane Blast") else RunMacro("Arcane2") end




    Mage decursive macro
    Code:
    /run ut="raid";s="25"; for p="1",s do for d="1", "3" do local _,_,_,_,t,_,_,_,_ = UnitDebuff(ut..p, d); if t == "Curse" then TargetUnit(ut..p); CastSpellByName("Remove Curse"); TargetLastTarget(); p="25"; end end end;
    Originally Posted by Sikas View Post
    Mage Frostfire Macro:

    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Frostfire Bolt") end
    Mage Fireball Macro:
    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Fireball") end

    Paladin
    Originally Posted by Viral Fly-by View Post
    Ok...here goes...but these are written off the cuff and totally untested guys...
    I'm not on a WoW comp at the moment to test them:

    Standard 969 (Judge, HotR, HS, SoR, Cons):
    Code:
    /run if _G["ProtTS"]==nil then _G["ProtTS"]=GetTime() end; if _G["Prot6"]==nil then _G["Prot6"]=0 end; if _G["Prot9"]==nil then _G["Prot9"]=0 end; if _G["Prot969"]==nil then _G["Prot969"]=9 end; 
    /run if GetTime()-_G["ProtTS"]>9 then _G["Prot6"]=0; _G["Prot9"]=0; _G["Prot969"]=9; end; _G["ProtTS"]=GetTime();
    /run if _G["Prot969"]==9 and _G["Prot9"]==0 and GetSpellCooldown("Judgement of Wisdom")==0 then CastSpellByName("Judgement of Wisdom"); _G["Prot9"]=1; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==1 and GetSpellCooldown("Holy Shield")==0 then CastSpellByName("Holy Shield"); _G["Prot9"]=2; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==2 and GetSpellCooldown("Consecration")==0 then CastSpellByName("Consecration"); _G["Prot9"]=0; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==0 and GetSpellCooldown("Hammer of the Righteous")==0 then CastSpellByName("Hammer of the Righteous"); _G["Prot6"]=1; _G["Prot969"]=9; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==1 and GetSpellCooldown("Shield of Righteousness")==0 then CastSpellByName("Shield of Righteousness"); _G["Prot6"]=0; _G["Prot969"]=9; end;
    I actually think you could just do a standard /castsequence for that one...lol.

    969 with SS for Cons (Judge, HotR, HS, SoR, SS/Cons):
    Code:
    /run if _G["ProtTS"]==nil then _G["ProtTS"]=GetTime() end; if _G["Prot6"]==nil then _G["Prot6"]=0 end; if _G["Prot9"]==nil then _G["Prot9"]=0 end; if _G["Prot969"]==nil then _G["Prot969"]=9 end; 
    /run if GetTime()-_G["ProtTS"]>9 then _G["Prot6"]=0; _G["Prot9"]=0; _G["Prot969"]=9; end; _G["ProtTS"]=GetTime();
    /run if _G["Prot969"]==9 and _G["Prot9"]==0 and GetSpellCooldown("Judgement of Wisdom")==0 then CastSpellByName("Judgement of Wisdom"); _G["Prot9"]=1; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==1 and GetSpellCooldown("Holy Shield")==0 then CastSpellByName("Holy Shield"); _G["Prot9"]=2; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==2 then i=1 while(i<=40) do a={UnitBuff("player",i)} if a[1]=="Sacred Shield" and a[8]=="player" then break else i=i+1 end end if i>40 then RunMacroText("/cast [@player] Sacred Shield"); _G["Prot9"]=0; _G["Prot969"]=6; elseif GetSpellCooldown("Consecration")==0 then CastSpellByName("Consecration"); _G["Prot9"]=0; _G["Prot969"]=6; end end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==0 and GetSpellCooldown("Hammer of the Righteous")==0 then CastSpellByName("Hammer of the Righteous"); _G["Prot6"]=1; _G["Prot969"]=9; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==1 and GetSpellCooldown("Shield of Righteousness")==0 then CastSpellByName("Shield of Righteousness"); _G["Prot6"]=0; _G["Prot969"]=9; end;

    969 with SS for Judgement (SS/Judge, HotR, HS, SoR, Cons):
    Code:
    /run if _G["ProtTS"]==nil then _G["ProtTS"]=GetTime() end; if _G["Prot6"]==nil then _G["Prot6"]=0 end; if _G["Prot9"]==nil then _G["Prot9"]=0 end; if _G["Prot969"]==nil then _G["Prot969"]=9 end; 
    /run if GetTime()-_G["ProtTS"]>9 then _G["Prot6"]=0; _G["Prot9"]=0; _G["Prot969"]=9; end; _G["ProtTS"]=GetTime();
    /run if _G["Prot969"]==9 and _G["Prot9"]==0 then i=1 while(i<=40) do a={UnitBuff("player",i)} if a[1]=="Sacred Shield" and a[8]=="player" then break else i=i+1 end end if i>40 then RunMacroText("/cast [@player] Sacred Shield"); _G["Prot9"]=1; _G["Prot969"]=6; elseif GetSpellCooldown("Judgement of Wisdom")==0 then CastSpellByName("Judgement of Wisdom"); _G["Prot9"]=1; _G["Prot969"]=6; end end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==1 and GetSpellCooldown("Holy Shield")==0 then CastSpellByName("Holy Shield"); _G["Prot9"]=2; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==2 and GetSpellCooldown("Consecration")==0 then CastSpellByName("Consecration"); _G["Prot9"]=0; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==0 and GetSpellCooldown("Hammer of the Righteous")==0 then CastSpellByName("Hammer of the Righteous"); _G["Prot6"]=1; _G["Prot969"]=9; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==1 and GetSpellCooldown("Shield of Righteousness")==0 then CastSpellByName("Shield of Righteousness"); _G["Prot6"]=0; _G["Prot969"]=9; end;
    969 with SS for Cons and HoW for every other Judgement (HoW/Judge, HotR, HS, SoR, SS/Cons):
    Code:
    /run if _G["ProtTS"]==nil then _G["ProtTS"]=GetTime() end; if _G["ProtJudge"]==nil then _G["ProtJudge"]=0 end; if _G["Prot6"]==nil then _G["Prot6"]=0 end; if _G["Prot9"]==nil then _G["Prot9"]=0 end; if _G["Prot969"]==nil then _G["Prot969"]=9 end; 
    /run if GetTime()-_G["ProtTS"]>9 then _G["Prot6"]=0; _G["Prot9"]=0; _G["Prot969"]=9; end; _G["ProtTS"]=GetTime();
    /run if _G["Prot969"]==9 and _G["Prot9"]==0 and (UnitHealth("target")/UnitHealthMax("target")>0.2 or _G["ProtJudge"]==1) and GetSpellCooldown("Judgement of Wisdom")==0 then CastSpellByName("Judgement of Wisdom"); _G["Prot9"]=1; _G["Prot969"]=6; _G["ProtJudge"]=0; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==0 and UnitHealth("target")/UnitHealthMax("target")<=0.2 and _G["ProtJudge"]==0 and GetSpellCooldown("Hammer of Wrath")==0 then CastSpellByName("Hammer of Wrath"); _G["Prot9"]=1; _G["Prot969"]=6; _G["ProtJudge"]=1; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==1 and GetSpellCooldown("Holy Shield")==0 then CastSpellByName("Holy Shield"); _G["Prot9"]=2; _G["Prot969"]=6; end;
    /run if _G["Prot969"]==9 and _G["Prot9"]==2 then i=1 while(i<=40) do a={UnitBuff("player",i)} if a[1]=="Sacred Shield" and a[8]=="player" then break else i=i+1 end end if i>40 then RunMacroText("/cast [@player] Sacred Shield"); _G["Prot9"]=0; _G["Prot969"]=6; elseif GetSpellCooldown("Consecration")==0 then CastSpellByName("Consecration"); _G["Prot9"]=0; _G["Prot969"]=6; end end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==0 and GetSpellCooldown("Hammer of the Righteous")==0 then CastSpellByName("Hammer of the Righteous"); _G["Prot6"]=1; _G["Prot969"]=9; end;
    /run if _G["Prot969"]==6 and _G["Prot6"]==1 and GetSpellCooldown("Shield of Righteousness")==0 then CastSpellByName("Shield of Righteousness"); _G["Prot6"]=0; _G["Prot969"]=9; end;
    They will all "reset" the rotation if you don't push the macro for more than 9 seconds (between pulls). The Sacred Shield versions will rebuff Sacred Shield rather than the normal ability. (So 2nd one above will buff Sacred Shield rather than dropping consecrate...but of course only if your Sacred Shield is down.) They will NOT reset if you change target (useful for switching targets during trash). It will also not "skip" if you do somethign else with your GCD. If you do a Hand of Reckoning to taunt, it will just go right back to where it was...it won't skip over an ability because you used that GCD elsewhere.

    For those who care, it is controlled by a few global variables to persist state between executions of the macro:
    1. _G["ProtTS"] :: Used to detect if been more than 9 seconds since the macro ran so it can reset.
    2. _G["Prot969"] :: Used to determine if the next ability is a 9-second one or a 6-second one.
    3. _G["Prot9"] :: Used to determine where in the sequence of the 9-second abilities the macro is...in first above, 0 = judge next, 1 = holy shield next, 2 = consecrate next.
    4. _G["Prot6"] :: Used to determine where in the sequence of the 6-second abilities the macro is...in first above, 0 = HotR next, 1 = SoR next.
    5. _G["ProtJudge"] :: Used in the last macro above to alternate the "judgement" spot in the rotation between HoW and JoW. You only want to HoW every other to maintain the judgement effect.


    Again...TOTALLY untested...but it should just be spammable and as soon as abilities come of cooldown it will use them in the correct order.

    Originally Posted by Viral Fly-By
    Paladin Cleansing macro
    Code:
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Magic" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Cleanse") end;
    Originally Posted by Viral Fly-by View Post
    Ok so here's my Holy Paladin macro...
    Code:
    /run if UnitHealth("player")/UnitHealthMax("player")<0.10 and GetSpellCooldown("Divine Shield")==0 and IsUsableSpell("Divine Shield") then CastSpellByName("Divine Shield") end;
    /run if GetSpellCooldown("Divine Plea") ==0 and UnitPower("player")/UnitPowerMax("player")<=0.10 then CastSpellByName("Divine Plea") end;
    /run f=0; if UnitExists("focus") then for i=1,40 do d={UnitBuff("focus",i)}; if d~=nil and d[1]=="Beacon of Light" and d[8]=="player" and d[7]-GetTime()>=3 then f=1; break end end if f==0 then RunMacroText("/cast [@focus] Beacon of Light") end end;
    /run FoL=3000; HS=6000; HL=8000; t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; e=UnitExists; n=UnitName; h=UnitHealth; hm=UnitHealthMax; s=nil; f="focus"; fh=0; if e(f) then fh=hm(f)-h(f) end; m=0; w=f; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if e(tt) and (e(f)==nil or n(tt)~=n(f)) then a=hm(tt)-h(tt); if a>m and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then m=a w=tt end end end; if fh>2*m then m=fh end; if GetSpellCooldown("Holy Shock")==0 and m>=HS then s="Holy Shock" elseif m>=HL then s="Holy Light" elseif m>=FoL then s="Flash of Light" end; if s~=nil then RunMacroText("/cast [@"..w.."] "..s) end;
    /run if GetSpellCooldown("Judgement of Light") == 0 then RunMacroText("/cast [@focustarget] Judgement of Light") end;
    /run f=0; if UnitExists("focus") then for i=1,40 do d={UnitBuff("focus",i)}; if d~=nil and d[1]=="Sacred Shield" and d[8]=="player" and d[7]-GetTime()>=3 then f=1; break end end if f==0 then RunMacroText("/cast [@focus] Sacred Shield") end end;
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Magic" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Cleanse") end;
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
    Customization:
    There are 3 variables at the beginning of the 4th line. These control which spell is chosen for which situation and should be adjusted for how big your heals hit.
    1. FoL: The minimum damage taken to be healed by a Flash of Light (3000 in code above).
    2. HS: The minimum damage taken to be healed by Holy Shock (6000 in code above).
    3. HL: The minimum damage taken to be healed by Holy Light (8000 in code above).
    [/SIZE]
    Originally Posted by pinhe1ro View Post
    Hi, i just want to share with you guys my retribution paladin rotation, tested in raids and work like a charm, you will need the addon Super Duper Macro that allows you to create macros beyond the 255-character limit, enjoy: :Sylvia:

    /startattack
    /run if GetSpellCooldown("Divine Plea") ==0 and UnitPower("Player")<=1500 then CastSpellByName("Divine Plea") end
    /run if UnitCastingInfo("target") then SpellStopCasting() CastSpellByName("Hammer of Justice") end
    /run if (UnitHealth("target")/UnitHealthMax("target")<0.2) and GetSpellCooldown("Hammer of Wrath") ==0 then CastSpellByName("Hammer of Wrath") end
    /run if GetSpellCooldown("Crusader Strike") ==0 then CastSpellByName("Crusader Strike") end
    /run if GetSpellCooldown("Judgement of Wisdom") ==0 then CastSpellByName("Judgement of Wisdom") end
    /run if GetSpellCooldown("Divine Storm") ==0 then CastSpellByName("Divine Storm") end
    /run if GetSpellCooldown("Consecration") ==0 then CastSpellByName("Consecration") end
    /run if UnitBuff("player", "The Art of War") then CastSpellByName("Exorcism") end
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");




    Priest
    Priest Abolish & Dispel
    Code:
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Magic" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7]; if d[5]=="Magic" then s="Dispel Magic" else s="Abolish Disease" end end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] "..s) end;
    Originally Posted by mrbob View Post
    I use macaroon so have unlimited Macro length, some Macros I have put together for my priest and mage Multibox team.

    Priest Shadow one button farming.
    Code:
    /run c=CastSpellByName;if (UnitHealth("target")/UnitHealthMax("target")<0.2) then (GetSpellCooldown("Shadow word: death") == 0) (c("Shadow word: death"))() elseif (UnitMana("player")/UnitManaMax("Player")
    
    <0.5) then (GetSpellCooldown("Shadowfiend") == 0) (c("Shadowfiend"))() elseif not UnitDebuff("target", "Vampiric Embrace",unitCaster~="player") then c("Vampiric Embrace") elseif not UnitDebuff("target", 
    
    "Shadow Word: Pain",unitCaster~="player") then c("Shadow Word: Pain") elseif (GetSpellCooldown("Inner Focus") == 0)  then c("Inner Focus") elseif (GetSpellCooldown("Mind Blast") == 0)  then c("Mind Blast") 
    
    elseif not UnitDebuff("target", "Mind Flay",unitCaster~="player") then c("Mind Flay") end
    Rogue
    Originally Posted by armen View Post
    Mutilate macro
    Code:
    #show Mutilate
    /run RunMacro(1)
    /run RunMacro(2)
    /run RunMacro(3)
    /run RunMacro(4)
    /startattack
    /run RunMacro("i")
    /run RunMacro("h")
    /run RunMacro("f")
    /run RunMacro("d")
    /run RunMacro("e")
    /run RunMacro("g")
    These are the first four macros that I just recycled; these are very good at interrupting casters/channelers:

    Code:
    Macro 1: "1":
    /run loadstring("local _, _, _, _, _, _, _, _, interruptAble = UnitCastingInfo(\"target\"); if UnitCastingInfo(\"target\") and not interruptAble then SpellStopCasting() CastSpellByName(\"Kick\") end")()
    
    Macro 2: "2":
    /run loadstring("local _, _, _, _, _, _, _, _, interruptAble = UnitChannelInfo(\"target\"); if UnitChannelInfo(\"target\") and not interruptAble then SpellStopCasting() CastSpellByName(\"Kick\") end")()
    
    Macro 3: "3":
    /run loadstring("local _, _, _, _, _, _, _, _, interruptAble = UnitCastingInfo(\"focus\"); if UnitCastingInfo(\"focus\") and not interruptAble then SpellStopCasting() CastSpellByName(\"Kick\",\"focus\") end")()
    
    Macro 4: "4":
    /run loadstring("local _, _, _, _, _, _, _, _, interruptAble = UnitChannelInfo(\"focus\"); if UnitChannelInfo(\"focus\") and not interruptAble then SpellStopCasting() CastSpellByName(\"Kick\",\"focus\") end")()

    Here is my creation, please be kind, I cry easily when my Lua code is critiqued! (jk, I love being mocked for craptastic code):

    Code:
    i
    /run if GetComboPoints("player","target")>3 then RunMacroText("/cast Eviscerate")end
    
    h
    /run p=GetComboPoints("player","target");ub=UnitBuff;r=RunMacroText;if ub("player", "Hunger For Blood") and ub("player","Slice and Dice") and p < 5 then r("/cast Mutilate")end
    
    f
    /run if(UnitAffectingCombat("player")) and GetComboPoints("player","target") < 1 then RunMacroText("/cast Mutilate")end
    
    d
    /run p=GetComboPoints("player","target");if not UnitBuff("player", "Slice and Dice") and p>0 then RunMacroText("/cast Slice and Dice")end
    
    
    e
    /run r=RunMacroText;ud=UnitDebuff;if not UnitBuff("player", "Hunger  For Blood") and (ud("target","Rupture") or ud("target","Garrote"))then r("/cast Hunger For Blood") end
    
    g
    /run r=RunMacroText;if not UnitBuff("player", "Hunger For Blood") and not UnitDebuff("target","Rupture") and GetComboPoints("player","target") > 0 then r("/cast Rupture") else r("/cast Mutilate")end


    Shaman
    Restoration Shaman Macro
    Originally Posted by Viral Fly-by View Post
    This macro is mostly untested ingame by me. I have proofread it extensively but there still may be some flaws.

    Code:
    /run if UnitIsEnemy("player", "target") and (UnitCastingInfo("target") or UnitChannelInfo("target")) and GetSpellCooldown("Wind Shear")==0 and IsSpellInRange("Wind Shear", "target")==1 then SpellStopCasting() CastSpellByName("Wind Shear") end
    /run if GetSpellCooldown("Mana Tide Totem")==0 and UnitPower("player")/UnitPowerMax("player")<=0.10 and UnitAffectingCombat("player")==1 then CastSpellByName("Mana Tide Totem") end;
    /run f=0; if UnitExists("focus") then for i=1,40 do d={UnitBuff("focus",i)}; if d~=nil and d[1]=="Earth Shield" and d[8]=="player" and d[4]>1 and d[7]-GetTime()>=60 then f=1; break end end if f==0 then RunMacroText("/cast [@focus] Earth Shield") end end;
    /run RT=2500; RT2=5000; LHW=4000; HW=10000; CH=10000; NS=0.10; t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; s=nil; m=0; w=f; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if GetSpellCooldown("Riptide")==0 and m>=RT and m<RT2 then s="Riptide" elseif m>=HW then if GetSpellCooldown("Nature's Swiftness")==0 and UnitHealth(w)/UnitHealthMax(w)<NS then s="NS" elseif UnitBuff("player","Tidal Waves") or UnitBuff("player","Bloodlust") or UnitBuff("player","Heroism") then s="Healing Wave" else s="Lesser Healing Wave" end elseif m>=LHW then if UnitPowerMax(w) < CH then s="Chain Heal" else s="Lesser Healing Wave" end end; if s=="NS" then SpellStopCasting(); CastSpellByName("Nature's Swiftness"); SpellStopCasting(); s="Healing Wave" end; if s~=nil then RunMacroText("/cast [@"..w.."] "..s) end;
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Curse" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Cleanse Spirit") end;
    /run if not UnitBuff("player", "Water Shield") then CastSpellByName("Water Shield") end
    /run if UnitAffectingCombat("player")==1 then t={GetTotemInfo(1)}; if t[2]==nil or t[2]=="" then CastSpellByName("Call of the Elements") end end
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");

    Enhancement Shaman Macro
    Originally Posted by Viral Fly-by View Post
    I think you're right about Fire Nova...I wasn't negating the check for the fire totem for Fire Nova. I've updated all my previous posts on the topic. Here is also the updated version:
    Code:
    /run if UnitCastingInfo("target") and GetSpellCooldown("Wind Shear")==0 then SpellStopCasting() CastSpellByName("Wind Shear") end
    /run if GetSpellCooldown("Shamanistic Rage")==0 and UnitMana("player")/UnitManaMax("Player")<0.20 then CastSpellByName("Shamanistic Rage") end
    /run local _,_,_,c=UnitBuff("player","Maelstrom Weapon") if c==5 then CastSpellByName("Lightning Bolt") end
    /run local i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Flame Shock" and a[8]=="player" then break else i=i+1 end end; if i>40 and GetSpellCooldown("Flame Shock")==0 then CastSpellByName("Flame Shock") end
    /run local i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Stormstrike" and a[8]=="player" then break else i=i+1 end end; if i<=40 and GetSpellCooldown("Earth Shock")==0 then CastSpellByName("Earth Shock") end
    /run local i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Stormstrike" and a[8]=="player" then break else i=i+1 end end; if i>40 and GetSpellCooldown("Stormstrike")==0 then CastSpellByName("Stormstrike") end
    /run if GetSpellCooldown("Earth Shock")==0 then CastSpellByName("Earth Shock") end
    /run local _,t,_,_ = GetTotemInfo(1); if t==nil or t=="" then CastSpellByName("Magma Totem") end
    /run local _,_,_,c=UnitBuff("player","Lightning Shield") if c==nil or c<=1 then CastSpellByName("Lightning Shield") end
    /run if GetSpellCooldown("Lava Lash")==0 then CastSpellByName("Lava Lash") end
    /run local _,t,_,_ = GetTotemInfo(1); if t~=nil and t~="" and GetSpellCooldown("Fire Nova")==0 then CastSpellByName("Fire Nova") end
    Also, it doesn't re-stormstrike by design...that was how it was originally defined in the guy who wanted his macro "fixed". If you want it to recast SS even if the debuff is still present, then do this:
    Code:
    /run if UnitCastingInfo("target") and GetSpellCooldown("Wind Shear")==0 then SpellStopCasting() CastSpellByName("Wind Shear") end
    /run if GetSpellCooldown("Shamanistic Rage")==0 and UnitMana("player")/UnitManaMax("Player")<0.20 then CastSpellByName("Shamanistic Rage") end
    /run local _,_,_,c=UnitBuff("player","Maelstrom Weapon") if c==5 then CastSpellByName("Lightning Bolt") end
    /run local i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Flame Shock" and a[8]=="player" then break else i=i+1 end end; if i>40 and GetSpellCooldown("Flame Shock")==0 then CastSpellByName("Flame Shock") end
    /run local i=1 while(i<=40) do a={UnitDebuff("target",i)} if a[1]=="Stormstrike" and a[8]=="player" then break else i=i+1 end end; if i<=40 and GetSpellCooldown("Earth Shock")==0 then CastSpellByName("Earth Shock") end
    /run if GetSpellCooldown("Stormstrike")==0 then CastSpellByName("Stormstrike") end
    /run if GetSpellCooldown("Earth Shock")==0 then CastSpellByName("Earth Shock") end
    /run local _,t,_,_ = GetTotemInfo(1); if t==nil or t=="" then CastSpellByName("Magma Totem") end
    /run local _,_,_,c=UnitBuff("player","Lightning Shield") if c==nil or c<=1 then CastSpellByName("Lightning Shield") end
    /run if GetSpellCooldown("Lava Lash")==0 then CastSpellByName("Lava Lash") end
    /run local _,t,_,_ = GetTotemInfo(1); if t~=nil and t~="" and GetSpellCooldown("Fire Nova")==0 then CastSpellByName("Fire Nova") end

    Cleanse Spirit Macro
    Code:
    /run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Curse" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Cleanse Spirit") end;
    Originally Posted by Viral Fly-By
    Elemental Shaman Macro
    Code:
    /run if not UnitBuff("player", "Water Shield") then CastSpellByName("Water Shield") end;
    /run if UnitAffectingCombat("player")==1 and ({GetTotemInfo(4)})[2]=="" then CastSpellByName("Call of the Elements") end;
    /run if GetSpellCooldown("Thunderstorm")==0 and UnitPower("player")/UnitPowerMax("player")<0.40 and UnitAffectingCombat("player")==1 then CastSpellByName("Thunderstorm") end;
    /run i=1 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Flame Shock" and a[8]=="player" and a[7]-GetTime()>2 then break else i=i+1 end end; if i>40 and GetSpellCooldown("Flame Shock")==0 then CastSpellByName("Flame Shock") end;
    /run if GetSpellCooldown("Lava Burst")==0 then CastSpellByName("Lava Burst") end;
    /run gcd=({GetSpellInfo("Lesser Healing Wave")})[7]/1000; lvb={GetSpellCooldown("Lava Burst")}; if lvb[1]==0 then lvb=0 else lvb=lvb[2]+lvb[1]-GetTime() end; if lvb>gcd and ({GetTotemInfo(1)})[2]=="Magma Totem VII" then if GetSpellCooldown("Fire Nova")==0 then CastSpellByName("Fire Nova") elseif GetSpellCooldown("Thunderstorm")==0 then CastSpellByName("Thunderstorm") end end;
    /run t=({GetSpellInfo("Chain Lightning")})[7]/1000; lvb={GetSpellCooldown("Lava Burst")}; if lvb[1]==0 then lvb=0 else lvb=lvb[2]+lvb[1]-GetTime() end; if lvb>t and GetSpellCooldown("Chain Lightning")==0 and UnitBuff("player", "Clearcasting") then CastSpellByName("Chain Lightning") end;
    /run gcd=({GetSpellInfo("Lesser Healing Wave")})[7]/1000; lvb={GetSpellCooldown("Lava Burst")}; if lvb[1]==0 then lvb=0 else lvb=lvb[2]+lvb[1]-GetTime() end; if lvb>gcd and ({GetTotemInfo(1)})[2]=="" and ({GetTotemInfo(4)})[2]~="" then CastSpellByName("Magma Totem") end;
    /run t=({GetSpellInfo("Lightning Bolt")})[7]/1000; lvb={GetSpellCooldown("Lava Burst")}; if lvb[1]==0 then lvb=0 else lvb=lvb[2]+lvb[1]-GetTime() end; if lvb>t then CastSpellByName("Lightning Bolt") end;
    /run gcd=({GetSpellInfo("Lesser Healing Wave")})[7]/1000; lvb={GetSpellCooldown("Lava Burst")}; if lvb[1]==0 then lvb=0 else lvb=lvb[2]+lvb[1]-GetTime() end; be=({GetTalentInfo(1,18)})[5]; rev=({GetTalentInfo(1,6)})[5]; fscd=8-be-5*rev; fs=0 i=1 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Flame Shock" and a[8]=="player" then fs=a[7]-GetTime() break else i=i+1 end end; if lvb>gcd and fs>fscd and GetSpellCooldown("Frost Shock")==0 then CastSpellByName("Frost Shock") end;
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");


    Warlock
    Originally Posted by Viral Fly-by View Post
    So here's a macro for the once-popular Felguard/Emberstorm spec. This was extremely popular a few patches ago and is still one of the best and probably the simplest to play (hence easy to macro).

    The spec: Talent Calculator - World of Warcraft

    The macro:
    Code:
    /run if UnitHealth("player") > 7000 and (UnitPower("Player") < 3000 or not UnitBuff("player", "Life Tap")) then CastSpellByName("Life Tap") end
    /run _,_,_,_,_,d = UnitBuff("player", "Decimation"); if d~=nil and d-GetTime()>0.5 then CastSpellByName("Soul Fire") end
    /run if UnitHealthMax("target") > 200000 then i=1 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Corruption" and a[8]=="player" then break else i=i+1 end end; if i>40 and UnitHealth("target") > 100000 then CastSpellByName("Corruption") end end
    /run if UnitHealthMax("target") > 200000 then i=1 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Curse of Agony" and a[8]=="player" then break else i=i+1 end end; if i>40 and UnitHealth("target") > 100000 then CastSpellByName("Curse of Agony") end end
    /run i=1 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Immolate" and a[8]=="player" then break else i=i+1 end end; if i>40 and UnitHealth("target") > 100000 then CastSpellByName("Immolate") end
    /run CastSpellByName("Incinerate")
    The logic:
    1. If you have at least 7K hp, then Life Tap if either you don't have the buff or you have less than 3K mana.
    2. If you have Decimation for another half second, cast Soul Fire (half-second because of latency).
    3. If the target has at least 200K hp total...check if it has your Corruption...if not, cast Corruption if the mob has at least 100K hp remaining.
    4. If the target has at least 200K hp total...check if it has your CoA...if not, cast CoA if the mob has at least 100K hp remaining.
    5. If the target does not have your Immolate and has at least 100K hp remaining, then cast Immolate.
    6. Cast Incinerate (filler spell)



    The macro does do anything fancy like automatically eating your healthstone...but it could if desired. It also doesn't try to check if you should be doing CoE (no other source of the debuff up on target). It could also of course be changed to do CoD instead....or only use CoD if mob has above a certain health. It could also automatically Drain Life if you're below a certain threshold.

    Originally Posted by Elitetech View Post
    I've read up on Affliction warlocks on Elitistjerks and as far as I know this should be a PERFECT rotation. They say on EJ that you should clip Drain Soul if a dot is missing so I've set it to do that.

    2 macros. Spam Gnu.
    In addition to what you wrote it also checks if you have the Life Tap buff from the glyph and checks your mana.
    The priority in dots and stuff is also from EJ. Have fun
    (THIS ONLY CLIPS DRAIN SOUL IF YOUR TARGET IS MISSING A BUFF, OTHERWISE IT DOESN'T CLIP )
    Code:
    Gnu
    #showtooltip Haunt
    /run if not UnitDebuff("target", "Haunt",unitCaster~="player") then (GetSpellCooldown("Haunt") == 0) (RunMacroText("/castsequence reset=2 Haunt, Corruption")) end
    /run if not UnitDebuff("target", "Corruption",unitCaster~="player") then RunMacroText("/castsequence reset=2 Corruption, Unstable Affliction") end
    /run if not UnitDebuff("target", "Unstable Affliction",unitCaster~="player") then RunMacroText("/castsequence reset=2 Unstable Affliction, Curse of Agony") end
    /run if not UnitDebuff("target", "Curse of Agony",unitCaster~="player") then RunMacroText("/castsequence reset=2 Curse of Agony, Shadow Bolt") end
    /run local s,_,_,_,_,_,_,_=UnitChannelInfo("player"); if( s~="Drain Soul" ) then RunMacro("Julegoder") end
    
    Julegoder
    #showtooltip Haunt
    /run if not UnitBuff("player", "Life Tap") then CastSpellByName("Life Tap") end
    /run if UnitPower("Player") < 3000 then CastSpellByName("Life Tap") end
    /run if not UnitDebuff("target", "Haunt",unitCaster~="player") then (GetSpellCooldown("Haunt") == 0) (RunMacroText("/castsequence reset=2 Haunt, Corruption")) end
    /run if not UnitDebuff("target", "Corruption",unitCaster~="player") then RunMacroText("/castsequence reset=2 Corruption, Unstable Affliction") end
    /run if not UnitDebuff("target", "Unstable Affliction",unitCaster~="player") then RunMacroText("/castsequence reset=2 Unstable Affliction, Curse of Agony") end
    /run if not UnitDebuff("target", "Curse of Agony",unitCaster~="player") then RunMacroText("/castsequence reset=2 Curse of Agony, Shadow Bolt") end
    /run if (UnitHealth("target")/UnitHealthMax("target")<0.25) then CastSpellByName("Drain Soul") else CastSpellByName("Shadow Bolt") end

    Originally Posted by Rombot View Post
    It goes like this: UA-Corr-CoA-SP-SP-SP-proc(ST)=SB and over and over again.
    Note: it take raw 0.2 sec for UA to appear, so dont be surprised to see double UA cast.
    Code:
    #showtooltip Unstable Affliction
    /run loadstring("local _,_,_,_,_,_,_,caster,_ = UnitDebuff(\"target\", \"Unstable Affliction\")if(caster~=\"player\")then CastSpellByName(\"Unstable Affliction\")end") ()
    /run  loadstring("local _,_,_,_,_,_,_,caster,_ = UnitDebuff(\"target\", \"Corruption\")if(caster~=\"player\")then CastSpellByName(\"Corruption\") end") ()
    /run  loadstring("local _,_,_,_,_,_,_,caster,_ = UnitDebuff(\"target\", \"Curse of Agony\")if(caster~=\"player\")then CastSpellByName(\"Curse of Agony\") end") ()
    /run loadstring("if UnitBuff(\"Player\", \"Shadow trance\") then CastSpellByName(\"Shadow bolt\") else CastSpellByName(\"Searing Pain\") end") ()
    Fear spam
    Code:
    #showtooltip Fear
    /run loadstring("local _,_,_,_,_,_,_,caster,_ = UnitDebuff(\"target\", \"Fear\")if(caster~=\"player\")then CastSpellByName(\"Fear\") end") ()
    Warrior
    Fury DPS cycle
    Code:
    /run local _,d,_ = GetSpellCooldown("Bloodrage") if (d == 0) then CastSpellByName("Bloodrage") end
    /run if not UnitBuff("player", "Battle Shout") then CastSpellByName("Battle Shout") end
    /run if UnitBuff("player", "Slam!") then CastSpellByName("Slam") end
    /run if UnitCastingInfo("target") then SpellStopCasting() CastSpellByName("Pummel") end
    /run local _,d,_ = GetSpellCooldown("Bloodthirst") if (d == 0) then CastSpellByName("Bloodthirst") end
    /run local _,a,_ = GetSpellCooldown("Whirlwind") if (a == 0) then CastSpellByName("Whirlwind") end
    /run if UnitPower("Player") > 79 then CastSpellByName("Heroic Strike") end
    /run local _,d,_ = GetSpellCooldown("Execute") if (d == 0) then CastSpellByName("Execute") end
    Originally Posted by Ssateneth View Post
    Arms warrior 1button
    Code:
    #showtooltip Charge
    /startattack
    /run if(IsSpellInRange('Charge','target')==1 and GetSpellCooldown('Charge')==0)then CastSpellByName('Charge')end
    /run if(UnitPower('player'))<=35 and GetSpellCooldown('Bloodrage')==0 then CastSpellByName('Bloodrage')end
    /run if(UnitPower('player'))>=70 and IsShiftKeyDown() then CastSpellByName('Cleave')end
    /run if(UnitPower('player'))>=30 and IsShiftKeyDown() and GetSpellCooldown('Sweeping Strikes')==0 then CastSpellByName('Sweeping Strikes')end
    /run if(UnitPower('player'))>=85 and (UnitHealth("target")/UnitHealthMax("target")>0.2) and not IsShiftKeyDown() then CastSpellByName('Heroic Strike')end
    /run i=1 while(i<=40)do a={UnitDebuff("target",i)} if(a[1]=="Rend" and a[8]=="player")then break elseif(i==40 and UnitPower('player')>=10) then CastSpellByName("Rend") i=i+1 else i=i+1 end end
    /run if (UnitHealth("target")/UnitHealthMax("target")<=0.2) or  (IsSpellInRange('Slam','target'))==0 then return elseif (GetSpellCooldown("Mortal Strike"))==0 and not UnitBuff("player","Sudden Death") and (UnitPower('player'))>=30 then CastSpellByName("Mortal Strike") elseif not UnitBuff("player","Sudden Death") and UnitBuff("player","Taste for Blood") and (UnitPower('player'))>=5 then CastSpellByName("Overpower") elseif UnitBuff("player","Sudden Death") and (UnitPower('player'))>=10 then CastSpellByName("Execute") elseif not UnitIsPlayer('target') and GetSpellCooldown('Mortal Strike')~=0 and (UnitPower('player'))>=15 and not UnitBuff('player','Sudden Death') and not UnitBuff('player','Taste for Blood') then CastSpellByName('Slam') end
    /run if (UnitHealth("target")/UnitHealthMax("target")>=0.2) or  (IsSpellInRange('Slam','target'))==0 then return elseif not UnitBuff("Player","Sudden Death") and UnitBuff("Player","Taste for Blood") and (UnitPower('player'))>=5 then CastSpellByName("Overpower")elseif (UnitPower('player'))>=10 then CastSpellByName("Execute")end
    /run if (GetSpellCooldown("Heroic Throw"))==0 and (IsSpellInRange('Heroic Throw','target'))==1 then CastSpellByName("Heroic Throw") end
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
    Prot warrior
    Originally Posted by Elitetech View Post
    Will take a look at it.

    Anyways, to finish up the warrior macro, this is what I have.

    Code:
    /startattack
    /run if IsUsableSpell("Charge")==1 and GetSpellCooldown("Charge")==0 and IsSpellInRange("Charge", "target")==1 then CastSpellByName("Charge") elseif IsUsableSpell("Intercept")==1 and GetSpellCooldown("Intercept")==0 and IsSpellInRange("Intercept", "target")==1 then CastSpellByName("Intercept") end
    /run if UnitCastingInfo("target") and GetSpellCooldown("Shield Bash")==0 then CastSpellByName("Shield Bash") end
    /run local _,a,_ = GetSpellCooldown("Shield Block") if (a == 0) then CastSpellByName("Shield Block") end
    /run if UnitHealth('player')<10000 and GetSpellCooldown("Enraged Regeneration")==0 and IsUsableSpell("Enraged Regeneration")==1 then CastSpellByName("Enraged Regeneration") end
    /run if UnitHealth('player')<11000 and GetSpellCooldown("Shield Wall")==0 then CastSpellByName("Shield Wall") end
    /run if UnitHealth('player')<10000 and GetSpellCooldown("Last Stand")==0 then CastSpellByName("Last Stand") end
    /run local _,d,_ = GetSpellCooldown("Bloodrage") if (d == 0) then CastSpellByName("Bloodrage") end
    /run if not UnitDebuff("target", "Demoralizing Shout") and not UnitDebuff("target", "Demoralizing Roar") and not UnitDebuff("target", "Vindication") and not UnitDebuff("target", "Curse of Weakness") and IsSpellInRange("Shield Slam", "target")==1 then CastSpellByName("Demoralizing Shout") end
    /run if UnitBuff("player", "Glyph of Revenge") then CastSpellByName("Heroic Strike") end
    /run local _,a,_ = GetSpellCooldown("Shield Slam") if (a == 0) and IsSpellInRange("Shield Slam", "target")==1 then CastSpellByName("Shield Slam") end
    /run i=1 d=120 while(i<=40)do a={UnitDebuff("target",i)} if a[1]=="Sunder Armor" and a[8]=="player" then d=a[7]-GetTime() if a[4]==5 then break end end i=i+1 end if i>40 or d<4 then CastSpellByName("Devastate") end
    /run if GetSpellCooldown("Revenge")==0 and IsUsableSpell("Revenge")==1 then CastSpellByName("Revenge") end
    /run local _,a,_ = GetSpellCooldown("Thunder Clap") if (a == 0) then CastSpellByName("Thunder Clap") end
    /run local _,a,_ = GetSpellCooldown("Shockwave") if (a == 0) and IsSpellInRange("Shockwave", "target")==1 then CastSpellByName("Shockwave") end
    /run local _,a,_ = GetSpellCooldown("Concussion blow") if (a == 0) and IsSpellInRange("Concussion blow", "target")==1 then CastSpellByName("Concussion blow") end
    /run local _,a,_ = GetSpellCooldown("Heroic Throw") if (a == 0) and IsSpellInRange("Heroic Throw", "target")==1 then CastSpellByName("Heroic Throw") end
    /run if UnitPower("Player") > 79 then CastSpellByName("Heroic Strike") end
    /run if UnitPower("Player") > 20 then CastSpellByName("Devastate") end
    /run if UnitHealth('player')<10000 then RunMacroText("/use Medallion of Heroism") end
    /run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
    I've run like 100 heroics with it and it works really well. I have the trinket Medallion of Heroism, which explains the last line lol. Just remove it or change to something else
    Last edited by Elitetech; 12-29-2009 at 01:53 PM.
    Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

    LuaNinja Macro Collection
  2. #2
    malik8u's Avatar Active Member
    Reputation
    42
    Join Date
    Jan 2009
    Posts
    93
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Beautiful. This thread is simply a masterpiece. +Rep all the way bro.

  3. #3
    xolieo's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    21
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    loking for a working version of this. Tried to replace dump with run and recieved the error.

    Originally Posted by i2lurchi View Post
    Macro 1: "PHFOCUS":
    /tar focus
    /dump c=CastSpellByName;_,_,_,_,_,_,_,b,_=UnitBuff("target","Beacon of Light");if b~="player" then c("Beacon of Light") end;_,_,_,_,_,_,_,s,_=UnitBuff("target","Sacred Shield");if s~="player" then c("Sacred Shield") end; RunMacro("H1")

    Macro 2 (10 Man Raid): "PHRAID":
    /dump m=0;w=0;t="raid";for n="1","10" do a=UnitHealthMax(t..n)-UnitHealth(t..n);if a>m and UnitInRange(t..n)==1 and UnitIsDeadOrGhost(t..n)~=1 then m=a w=n end end;TargetUnit(t..w) RunMacro("H1")

    Macro 2 (25 Man Raid): "PHRAID":
    /dump m=0;w=0;t="raid";for n="1","25" do a=UnitHealthMax(t..n)-UnitHealth(t..n);if a>m and UnitInRange(t..n)==1 and UnitIsDeadOrGhost(t..n)~=1 then m=a w=n end end;TargetUnit(t..w) RunMacro("H1")

    Macro 3: "H1":
    /dump _,d,_=GetSpellCooldown("Holy Shock");c=CastSpellByName;a=UnitHealthMax("target")-UnitHealth("target");if a>7000 and d==0 then c("Holy Shock") else c("Flash of Light") end

  4. #4
    Garry__'s Avatar Active Member
    Reputation
    55
    Join Date
    Sep 2007
    Posts
    137
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice thread. Thanks.

  5. #5
    TheBard's Avatar Member
    Reputation
    11
    Join Date
    Nov 2006
    Posts
    62
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice, working on a PVP addon atm.

  6. #6
    Sikas's Avatar Active Member
    Reputation
    69
    Join Date
    Feb 2007
    Posts
    386
    Thanks G/R
    6/2
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you like the Lua Macros you see here, please +Rep the people who've created them for you as well!

    And as well, you might want to remove the /click StaticPopup1Button1 from my code. If you die, it'll release you.

  7. #7
    Tmsor's Avatar Member
    Reputation
    2
    Join Date
    Feb 2009
    Posts
    24
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    FML, wrong thread.
    Last edited by Tmsor; 11-10-2009 at 02:02 AM. Reason: Oops..

  8. #8
    xolieo's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    21
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The following worked in /dump macros and now it returns an error in run macros. Its purpose is to cycle raid members and see if they were at full health. If health is not full run healing macro.

    /dump m=0;w=0;t="raid";for n="1","10" do a=UnitHealthMax(t..n)-UnitHealth(t..n);if a>m and UnitInRange(t..n)==1 and UnitIsDeadOrGhost(t..n)~=1 then m=a w=n end end;TargetUnit(t..w) RunMacro("H1")

  9. #9
    Sikas's Avatar Active Member
    Reputation
    69
    Join Date
    Feb 2007
    Posts
    386
    Thanks G/R
    6/2
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mage Frostfire Macro:

    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Frostfire Bolt") end
    Mage Fireball Macro:
    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Fireball") end

  10. #10
    Elitetech's Avatar Contributor
    Reputation
    98
    Join Date
    Oct 2008
    Posts
    279
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sikas View Post
    Mage Frostfire Macro:

    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Frostfire Bolt") end
    Mage Fireball Macro:
    Code:
    /run c=CastSpellByName;if not UnitDebuff("target", "Living Bomb") then c("Living Bomb") elseif UnitBuff("player", "Hot Streak") then c("Pyroblast") else c("Fireball") end
    Added to the above post, thanks
    Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

  11. #11
    Sensisativa's Avatar Contributor
    Reputation
    151
    Join Date
    Feb 2008
    Posts
    551
    Thanks G/R
    1/7
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I just wanted to let you know that if you are raiding with more than 1 hunter and they put their serpent sting up on the target, this script will not use the shot.

    Is there a way to check if it is our sting on the target? At the moment it just looks to see if serpent sting is on the target, not who's.
    "A friend in need is a friend indeed, but a friend with weed is better"

  12. #12
    Elitetech's Avatar Contributor
    Reputation
    98
    Join Date
    Oct 2008
    Posts
    279
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sensisativa View Post
    I just wanted to let you know that if you are raiding with more than 1 hunter and they put their serpent sting up on the target, this script will not use the shot.

    Is there a way to check if it is our sting on the target? At the moment it just looks to see if serpent sting is on the target, not who's.
    Just tried making it, please test it and tell me if it's working. Then I'll update the original post

    Code:
    /run local _,_,_,_,_,_,_,caster,_ = UnitDebuff("target", "Serpent Sting") if (caster~="player") then CastSpellByName("Serpent Sting") end
    /run local _,d,_ = GetSpellCooldown("Silencing Shot") if (d == 0) then CastSpellByName("Silencing Shot") end
    /run local _,d,_ = GetSpellCooldown("Kill Command") if (d == 0) then CastSpellByName("Kill Command") end
    /run local _,d,_ = GetSpellCooldown("Chimera Shot") if (d == 0) then CastSpellByName("Chimera Shot") end
    /run local _,d,_ = GetSpellCooldown("Aimed Shot") if (d == 0) then CastSpellByName("Aimed Shot") end
    /run local _,d,_ = GetSpellCooldown("Arcane Shot") if (d == 0) then CastSpellByName("Arcane Shot") end
    /run local _,d,_ = GetSpellCooldown("Steady Shot") if (d == 0) then CastSpellByName("Steady Shot") end
    Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

  13. #13
    Sensisativa's Avatar Contributor
    Reputation
    151
    Join Date
    Feb 2008
    Posts
    551
    Thanks G/R
    1/7
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I will test tonight in raid, thank you for your quick resonse.

    I was wondering if someone could get this old /dump macro to work for me.

    If Arcane Blast is at 4 stacks on yourself, if Missile Barrage is procced it will cast Arcane Missiles, otherwise it will cast Arcane Barrage. If you don't have 4 Arcane Blasts it will cast Arcane Blast.

    Code:
    Originally Posted by ronzaa 
    Macro 3: "3":
    /dump loadstring("local _,_,_,c,_,_,_,_,_=UnitBuff(\"player\",\"Arcane Blast\"); if (c=4) then RunMacro(\"4\") else CastSpellByName(\"Arcane Blast\") end") ()
    
    Macro 4: "4":
    /dump loadstring("if (UnitBuff(\"player\", \"Missile Barrage\")) then CastSpellByName(\"Arcane Missiles\" else CastSpellByName(\"Arcane Barrage\") end")()
    I am changing the /dump to /run.
    "A friend in need is a friend indeed, but a friend with weed is better"

  14. #14
    Elitetech's Avatar Contributor
    Reputation
    98
    Join Date
    Oct 2008
    Posts
    279
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sensisativa View Post
    I will test tonight in raid, thank you for your quick resonse.

    I was wondering if someone could get this old /dump macro to work for me.

    If Arcane Blast is at 4 stacks on yourself, if Missile Barrage is procced it will cast Arcane Missiles, otherwise it will cast Arcane Barrage. If you don't have 4 Arcane Blasts it will cast Arcane Blast.

    Code:
    Originally Posted by ronzaa 
    Macro 3: "3":
    /dump loadstring("local _,_,_,c,_,_,_,_,_=UnitBuff(\"player\",\"Arcane Blast\"); if (c=4) then RunMacro(\"4\") else CastSpellByName(\"Arcane Blast\") end") ()
    
    Macro 4: "4":
    /dump loadstring("if (UnitBuff(\"player\", \"Missile Barrage\")) then CastSpellByName(\"Arcane Missiles\" else CastSpellByName(\"Arcane Barrage\") end")()
    I am changing the /dump to /run.
    Well I read a little on Elitistjerks and ************ about mages arcane rotation. And in most cases they say that Arcane Barrage will lower you dps. I have no idea if it's true or not, or if this macro is gonna work. (Don't have a mage to test it on yet, botting one up starting today tho)

    Well here it is. Should cast Arcane blast until it has 4 stacks, then check if you have Missile Barrage, if you do it'll cast arcane missiles and if you don't it'll cast Arcane Blast again. If you really need Arcane Barrage in your rotation, tell me and i'll look a little more at it :P
    Code:
    /run local _,_,_,c,_,_,_,_,_=UnitBuff("player","Arcane Blast"); if (c~=4) and UnitBuff("player", "Missile Barrage") then CastSpellByName("Arcane Missiles") else CastSpellByName("Arcane Blast") end
    Edit: **** it, I'll just recreate the macro, it's so simple. Here you go
    Code:
    Macro 3
    /run local _,_,_,c,_,_,_,_,_=UnitBuff("player","Arcane Blast"); if (c~=4) then RunMacro("4") else CastSpellByName("Arcane Blast") end
    Macro 4
    /run if UnitBuff("player", "Missile Barrage") then CastSpellByName("Arcane Missiles") else CastSpellByName("Arcane Barrage") end
    Should do EXACTLY the same thing as the previous one.
    Last edited by Elitetech; 11-11-2009 at 04:25 PM.
    Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

  15. #15
    Sensisativa's Avatar Contributor
    Reputation
    151
    Join Date
    Feb 2008
    Posts
    551
    Thanks G/R
    1/7
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow, I copy/paste the wrong macro and you get me the information I needed anyways. Nice!

    Arcane Barrage should not be used unless you are on the run.

    I'll test this and the hunter one tonight.

    +Rep now for your quick responses.

    Edit - I tested the first mage one and it is firing Arcane Missiles as soon as I get the Missile Barrage buff, not stacking 4 Arcane Blasts first.

    Hoping you can take a look. Thanks again.

    Edit 2- If you spam the macro it will clip Arcane Missiles to fire Arcane Blast, not the biggest thing, but if there is a command that let's it wait till channeled spells are finished that would be great.

    /dump loadstring("local _, _, _, _, _, _, _, _, interruptAble = UnitChannelInfo(\"target\"); if UnitChannelInfo(\"target\") and not interruptAble then SpellStopCasting() CastSpellByName(\"Counterspell\") end")()
    might be of help, as it deals with channeled spells, but I could not make adaptions work with the macro.
    Last edited by Sensisativa; 11-11-2009 at 04:48 PM.
    "A friend in need is a friend indeed, but a friend with weed is better"

Page 1 of 42 12345 ... LastLast

Similar Threads

  1. [Macro-Collection] All-In-One-Button Macro for all Classes from Level 15-90!
    By Classicclean in forum WoW UI, Macros and Talent Specs
    Replies: 21
    Last Post: 01-21-2014, 08:16 AM
  2. Addon For LuaNinja Macros
    By Tracerv0 in forum WoW UI, Macros and Talent Specs
    Replies: 7
    Last Post: 01-06-2010, 02:21 PM
  3. /Dump Macro Collection (WIP at mo!)
    By Anotherfox in forum WoW UI, Macros and Talent Specs
    Replies: 97
    Last Post: 01-04-2010, 03:21 PM
  4. [HOW TO] Ascii Macro + my collection
    By wickermanz in forum World of Warcraft Guides
    Replies: 12
    Last Post: 01-05-2009, 12:58 PM
  5. Macro Love - My Collection of useful and/or Space saving Macro's!
    By Anotherfox in forum World of Warcraft Guides
    Replies: 15
    Last Post: 12-28-2008, 12:29 AM
All times are GMT -5. The time now is 01:41 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search