Party & Raid Macros
AQ40 Mount
AQ40 Mount combined with regular mount
/run if GetZoneText()=="Ahn'Qiraj"then CastSpellByName("Summon Green Qiraji Battle Tank")else CastSpellByName("Riding Turtle")end
Drunk toggle
Drunk toggle macro. Useful for the zg spiders
/run local c,m=GetCVar("ffxGlow"),message if c=="1" then SetCVar("ffxGlow","0")m("Drunk GFX OFF")else SetCVar("ffxGlow","1")m("Drunk GFX ON")end
Group finder
This is a macro that aims to slightly enhance "/who whispering".
What is "/who whispering"?
"/who whispering" is where you get a list of players using the /who command and whisper them. I've always found this method to be the quickest and easiest way to build a group, especially when you're looking for specific roles; notably tanks and healers.
Setup
Create the "set message & reset" macro edit the message between the " ":
/run lfm_msg= "LF3M RFC: Lv.14+ Tank, Heal, RDPS";lfm_i=1;message(lfm_msg);
Create the "send message" macro:
/run if(lfm_i<=GetNumWhoResults()) then lfm_target=GetWhoInfo(lfm_i);SendChatMessage(lfm_msg,"WHISPER",nil,lfm_target);lfm_i=lfm_i+1;else message("Finished who list.");end;
Usage
1. Use /who to get a list of players to recruit (ex. /who 18 c-"warrior")
2. Run the "set message & reset" macro once
3. Run the "send message" macro repeatedly to whisper each player in the /who list
- A message will appear when you've finished the list
4. When you finish the list, repeat steps 1-3 with a new list of different players
- * Important * If the /who list contains previously whispered names, it will re-whisper them
- New /who list example: /who 16 c-"warrior"
- Step 2 must be repeated to reset the macro's list position
Heal Nearest Friend
Will heal anyone in range who is low on hp (Set to react on < 90%).
/script for i=1,40 do TargetNearestFriend(); if UnitHealth("target")/UnitHealthMax("target") < 0.9 then if UnitIsPlayer("target") then CastSpellByName("EnterYourHealspellHere"); end end end; TargetLastEnemy();
Loot
Rolls the raidmembers and announce to the chat "Loot goes to X in grp Y !"
/run local w = math.random(1,GetNumRaidMembers()) local n, _, g = GetRaidRosterInfo(w) SendChatMessage(format("Loot goes to %s in group %d", n, g),"RAID")
Set to common loot (white)
/script SetLootMethod("group", 0)
Raid Buffs
This one is for Chromaggus in Blackwing Lair. After this boss there's usually a delay of trading Hourglass sand to get rid of the Brood Affliction: Bronze debuff. This macro will list all players in chat who has it.
/run b="n_Bronze" n="" r="raid" for i=1,GetNumRaidMembers()do for j=1,40 do if(strfind(tostring(UnitDebuff(r..i,j)),b))then n=UnitName(r..i)..", "..n break end end end if n==""then else SendChatMessage("Players with bronze debuff: "..n,"SAY",nil)end
The following is similar to above but will whisper to each player instead. Depending on server spam protection, this might not work.
/run b="n_Bronze" r="raid"for i=1,GetNumRaidMembers()do for j=1,40 do if(strfind(tostring(UnitDebuff(r..i,j)),b))then SendChatMessage("You've got Bronze debuff from Chromaggus use a Hourglass Sand.","WHISPER",nil,UnitName(r..i))break end end end
This checks for players who have NOT popped Fire Protection Potions and list them in chat
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("e_FireA",l)then n=UnitName(r..l)..","..n end end SendChatMessage("Pop Fire pot:"..n,"SAY",nil)
Whisper each player lacking Fire Protection Potion instead
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("e_FireA",l)then SendChatMessage("Pop Fire prot potion!","WHISPER",nil,UnitName(r..l)) end end
List players lacking Nature Protection Potion
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("e_SpiritA",l)then n=UnitName(r..l)..","..n end end SendChatMessage("Pop Nature pot:"..n,"SAY",nil)
Whisper each player lacking Nature Protection Potion
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("e_SpiritA",l)then SendChatMessage("Pop Nature prot potion!","WHISPER",nil,UnitName(r..l)) end end
List players lacking Shadow Protection Potion
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("w_RagingSc",l)then n=UnitName(r..l)..","..n end end SendChatMessage("Pop Shadow pot:"..n,"SAY",nil)
Whisper each player lacking Shadow Protection Potion
/run n=""r="raid"function b(k,l)for i=1,32 do if strfind(tostring(UnitBuff(r..l,i)),k)then return 1 end end end for l=1,GetNumRaidMembers() do if not b("w_RagingSc",l)then SendChatMessage("Pop Shadow prot potion!","WHISPER",nil,UnitName(r..l)) end end
Raid marks
Skull
/run SetRaidTarget("target", 8)
Cross
/run SetRaidTarget("target", 7)
Square
/run SetRaidTarget("target", 6)
Moon
/run SetRaidTarget("target", 5)
Triangle
/run SetRaidTarget("target", 4)
Purple
/run SetRaidTarget("target", 3)
Circle
/run SetRaidTarget("target", 2)
Star
/run SetRaidTarget("target", 1)
Remove mark
/run SetRaidTarget("target", 0)
Target raid marked enemy. Underlined characters: 13 represents the number of mobs to cycle through. Increase it to suit your needs. X represents the number of the raid target index. (8 is skull etc)
/run for i=1,13 do TargetNearestEnemy();if GetRaidTargetIndex("target")==X then do return;end;end;end;
This one is for skull. Change the 8 to something else for different marks.
/run for i=1,18 do if GetRaidTargetIndex('target') == 8 then break end; TargetNearestEnemy(); end
Raid
Swap 2 players in raid
/run local n1,n2,s1,s2="Nicky","Shagu"; for i=1,40 do if UnitName("raid"..i) == n1 then s1 = i elseif UnitName("raid"..i) == n2 then s2 = i end; end; if s1 and s2 then SwapRaidSubgroup(s1, s2) end
Go through the whole raid list and demote and kick every player character that is offline.
/run for i=1,GetNumRaidMembers() do u="raid"..i n=UnitName(u)if not UnitIsConnected(u) then DemoteAssistant(n)UninviteByName(n)end end
Similar to above but will promote every player character.
/run for i=1,GetNumRaidMembers() do u="raid"..i n=UnitName(u)if UnitIsConnected(u) then PromoteToAssistant(n)end end
Combine both above and promote everyone online but demote and kick everyone that is offline.
/run for i=1,GetNumRaidMembers() do u="raid"..i n=UnitName(u)if UnitIsConnected(u) then PromoteToAssistant(n) else DemoteAssistant(n)UninviteByName(n)end end
Reset Instance
This one will reset the instances
/script ResetInstances()
Log out of the dungeon, have it reset and get ported back to the entrence
/script ResetInstances()
/camp