Network: WoW Gold | WoW Accounts | MPS Games | FPSowned
MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides
Homepage »      Register »      Hall of Fame »      Ranks And Awards »      Advertise »      Marketplace »
 
Sign up



Do you like this excellent information? Then Donate HERE to remove ads and support the MMOwned community.


Go Back   MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides > WoW Discussions > UI & Macro Discussions

UI & Macro Discussions Talk about User Interface upgrades and World of Warcraft Macros here.
[Questions allowed here]

Reply
 
LinkBack Thread Tools
  #1  
Old 11-04-2009
Elitetech's Avatar
Elitetech is offline.
Site Donator
  
 
Join Date: Oct 2008
Location: Denmark
Posts: 230
Nominated 19 Times in 4 Posts
Reputation: 84
Points: 3,341, Level: 5
Points: 3,341, Level: 5 Points: 3,341, Level: 5 Points: 3,341, Level: 5
Level up: 68%, 259 Points needed
Level up: 68% Level up: 68% Level up: 68%
Activity: 7.0%
Activity: 7.0% Activity: 7.0% Activity: 7.0%

Nominated Star LuaNinja Macro Collection

Please 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 [Only registered and activated users can see links. ]

For most of these macros youll want to use the addon [Only registered and activated users can see links. ] but that should be easy enough.
Also many of the old macros from [Only registered and activated users can see links. ] 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. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]
Druid
  1. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]
Hunter
  1. None worth listing
Mage
  1. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]
  3. [Only registered and activated users can see links. ]
Paladin
  1. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]
  3. [Only registered and activated users can see links. ]
Priest
  1. [Only registered and activated users can see links. ]
Rogue
  1. [Only registered and activated users can see links. ]
Shaman
  1. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]
  3. [Only registered and activated users can see links. ]
Warlock
  1. [Only registered and activated users can see links. ]
Warrior
  1. [Only registered and activated users can see links. ]
  2. [Only registered and activated users can see links. ]


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
Quote:
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");
Quote:
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]

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;
Quote:
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
Quote:
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.

Quote:
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;
Quote:
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]
Quote:
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:

/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;
Quote:
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
Quote:
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
Quote:
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
Quote:
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;
Quote:
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
Quote:
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: [Only registered and activated users can see links. ]

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.

Quote:
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

Quote:
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
Quote:
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
Quote:
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
__________________
Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

Last edited by Elitetech; 12-29-2009 at 02:53 PM.
Reply With Quote


Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx.

  #2  
Old 11-04-2009
malik8u's Avatar
malik8u is offline.
Sergeant
  
 
Join Date: Jan 2009
Location: The Island of Whores
Posts: 68
Reputation: 40
Points: 1,545, Level: 3
Points: 1,545, Level: 3 Points: 1,545, Level: 3 Points: 1,545, Level: 3
Level up: 21%, 555 Points needed
Level up: 21% Level up: 21% Level up: 21%
Activity: 0.9%
Activity: 0.9% Activity: 0.9% Activity: 0.9%

Beautiful. This thread is simply a masterpiece. all the way bro.
Reply With Quote
  #3  
Old 11-07-2009
xolieo is offline.
New User
  
 
Join Date: Jun 2009
Posts: 3
Reputation: 1
Points: 128, Level: 1
Points: 128, Level: 1 Points: 128, Level: 1 Points: 128, Level: 1
Level up: 32%, 272 Points needed
Level up: 32% Level up: 32% Level up: 32%
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%

loking for a working version of this. Tried to replace dump with run and recieved the error.

Quote:
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
Reply With Quote
  #4  
Old 11-07-2009
Garry__ is offline.
Site Donator
  
 
Join Date: Sep 2007
Posts: 119
Reputation: 34
Points: 888, Level: 1
Points: 888, Level: 1 Points: 888, Level: 1 Points: 888, Level: 1
Level up: 98%, 12 Points needed
Level up: 98% Level up: 98% Level up: 98%
Activity: 1.5%
Activity: 1.5% Activity: 1.5% Activity: 1.5%

Nice thread. Thanks.
Reply With Quote
  #5  
Old 11-08-2009
TheBard's Avatar
TheBard is offline.
Site Donator
  
 
Join Date: Nov 2006
Posts: 59
Reputation: 11
Points: 1,467, Level: 3
Points: 1,467, Level: 3 Points: 1,467, Level: 3 Points: 1,467, Level: 3
Level up: 10%, 633 Points needed
Level up: 10% Level up: 10% Level up: 10%
Activity: 0.4%
Activity: 0.4% Activity: 0.4% Activity: 0.4%

Nice, working on a PVP addon atm.
Reply With Quote
  #6  
Old 11-08-2009
Sikas is offline.
Site Donator
  
 
Join Date: Feb 2007
Posts: 175
Reputation: 16
Points: 1,085, Level: 2
Points: 1,085, Level: 2 Points: 1,085, Level: 2 Points: 1,085, Level: 2
Level up: 37%, 315 Points needed
Level up: 37% Level up: 37% Level up: 37%
Activity: 21.8%
Activity: 21.8% Activity: 21.8% Activity: 21.8%

If you like the Lua Macros you see here, please 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.
Reply With Quote
  #7  
Old 11-10-2009
Tmsor is offline.
New User
  
 
Join Date: Feb 2009
Posts: 19
Reputation: 2
Points: 1,069, Level: 2
Points: 1,069, Level: 2 Points: 1,069, Level: 2 Points: 1,069, Level: 2
Level up: 34%, 331 Points needed
Level up: 34% Level up: 34% Level up: 34%
Activity: 0.4%
Activity: 0.4% Activity: 0.4% Activity: 0.4%

FML, wrong thread.

Last edited by Tmsor; 11-10-2009 at 03:02 AM. Reason: Oops..
Reply With Quote
  #8  
Old 11-10-2009
xolieo is offline.
New User
  
 
Join Date: Jun 2009
Posts: 3
Reputation: 1
Points: 128, Level: 1
Points: 128, Level: 1 Points: 128, Level: 1 Points: 128, Level: 1
Level up: 32%, 272 Points needed
Level up: 32% Level up: 32% Level up: 32%
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%

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.

Quote:
/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")
Reply With Quote
  #9  
Old 11-11-2009
Sikas is offline.
Site Donator
  
 
Join Date: Feb 2007
Posts: 175
Reputation: 16
Points: 1,085, Level: 2
Points: 1,085, Level: 2 Points: 1,085, Level: 2 Points: 1,085, Level: 2
Level up: 37%, 315 Points needed
Level up: 37% Level up: 37% Level up: 37%
Activity: 21.8%
Activity: 21.8% Activity: 21.8% Activity: 21.8%

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
Reply With Quote
  #10  
Old 11-11-2009
Elitetech's Avatar
Elitetech is offline.
Site Donator
  
 
Join Date: Oct 2008
Location: Denmark
Posts: 230
Nominated 19 Times in 4 Posts
Reputation: 84
Points: 3,341, Level: 5
Points: 3,341, Level: 5 Points: 3,341, Level: 5 Points: 3,341, Level: 5
Level up: 68%, 259 Points needed
Level up: 68% Level up: 68% Level up: 68%
Activity: 7.0%
Activity: 7.0% Activity: 7.0% Activity: 7.0%

Quote:
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.
Reply With Quote
  #11  
Old 11-11-2009
sensisativa's Avatar
sensisativa is offline.
Site Donator
  
 
Join Date: Feb 2008
Location: Ontario, Canada
Posts: 214
Reputation: 24
Points: 1,248, Level: 2
Points: 1,248, Level: 2 Points: 1,248, Level: 2 Points: 1,248, Level: 2
Level up: 70%, 152 Points needed
Level up: 70% Level up: 70% Level up: 70%
Activity: 13.4%
Activity: 13.4% Activity: 13.4% Activity: 13.4%

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
Reply With Quote
  #12  
Old 11-11-2009
Elitetech's Avatar
Elitetech is offline.
Site Donator
  
 
Join Date: Oct 2008
Location: Denmark
Posts: 230
Nominated 19 Times in 4 Posts
Reputation: 84
Points: 3,341, Level: 5
Points: 3,341, Level: 5 Points: 3,341, Level: 5 Points: 3,341, Level: 5
Level up: 68%, 259 Points needed
Level up: 68% Level up: 68% Level up: 68%
Activity: 7.0%
Activity: 7.0% Activity: 7.0% Activity: 7.0%

Quote:
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.
Reply With Quote
  #13  
Old 11-11-2009
sensisativa's Avatar
sensisativa is offline.
Site Donator
  
 
Join Date: Feb 2008
Location: Ontario, Canada
Posts: 214
Reputation: 24
Points: 1,248, Level: 2
Points: 1,248, Level: 2 Points: 1,248, Level: 2 Points: 1,248, Level: 2
Level up: 70%, 152 Points needed
Level up: 70% Level up: 70% Level up: 70%
Activity: 13.4%
Activity: 13.4% Activity: 13.4% Activity: 13.4%

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
Reply With Quote
  #14  
Old 11-11-2009
Elitetech's Avatar
Elitetech is offline.
Site Donator
  
 
Join Date: Oct 2008
Location: Denmark
Posts: 230
Nominated 19 Times in 4 Posts
Reputation: 84
Points: 3,341, Level: 5
Points: 3,341, Level: 5 Points: 3,341, Level: 5 Points: 3,341, Level: 5
Level up: 68%, 259 Points needed
Level up: 68% Level up: 68% Level up: 68%
Activity: 7.0%
Activity: 7.0% Activity: 7.0% Activity: 7.0%

Quote:
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.
__________________
Knowledge is often mistaken for intelligence. This is like mistaking a cup of milk for a cow.

Last edited by Elitetech; 11-11-2009 at 05:25 PM.
Reply With Quote
  #15  
Old 11-11-2009
sensisativa's Avatar
sensisativa is offline.
Site Donator
  
 
Join Date: Feb 2008
Location: Ontario, Canada
Posts: 214
Reputation: 24
Points: 1,248, Level: 2
Points: 1,248, Level: 2 Points: 1,248, Level: 2 Points: 1,248, Level: 2
Level up: 70%, 152 Points needed
Level up: 70% Level up: 70% Level up: 70%
Activity: 13.4%
Activity: 13.4% Activity: 13.4% Activity: 13.4%

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.

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.

Quote:
/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.
__________________
A friend in need is a friend indeed, but a friend with weed is better

Last edited by sensisativa; 11-11-2009 at 05:48 PM.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On



All times are GMT -4. The time now is 07:26 AM.




Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505