Here are some macros that are useful on this server.


Companion macros

These macros help you work with the Companions.


macros.jpg Most useful commands

The best commands to macro and keybind somewhere accessible are:

Other commands you might want quick access to:

Most of the others are safe to leave to the CCP addon, but if you want to macro them all, go for it! In particular, using the role arguments with the movement commands like .z comestay can be pretty helpful for positioning your party in dungeons.


dead.jpg Give your Companions orders even if you are dead

You might have noticed that you can't use .z commands while you are dead. That's because the commands are a custom module that isn't native to the client. The default channel is /say, so the client thinks you are just trying to talk in /say, which you cannot do while dead.

There is an easy way around this. Simply prefix your macros with /p. This puts you into the party-chat channel, which you can communicate in whether you are dead or not.

For example:

/p .z start


tankpull.jpg Tank pull macro

This will have your tank use their ranged ability.

For druids:

/p .z stay tank
/w Tanksname cast Faerie Fire (Feral)

For warriors:

/p .z stay tank
/w Tanksname cast Shoot Bow

The stay tank is necessary because without it, the tank will immediately run towards the mobs instead of waiting for them to come to him, defeating the purpose of the macro. Ideally, you should have the rest of your party stayed somewhere safe behind the tank.

Unfortunately, you have to change the tank's name in your macro every time you hire a new one. You also need 3 macros for Warriors: one for Shoot Bow, one for Shoot Crossbow, and one for Shoot Gun. Since this is a vanilla server, they are all separate abilities instead of being combined into Shoot.


zfollow.jpg .z follow & .z unfollow 1 button macro

This will use .z follow if your target is friendly; otherwise, it will use .z unfollow.

/run if UnitIsFriend("player", "target") then SendChatMessage(".z follow", "party") else SendChatMessage(".z unfollow", "party")end


General 1.12 macros

These macros are not specific to the Companions, but are generally helpful on this 1.12 server.


findherbs.jpgCombined Find Herbs and Find Minerals

Since you can learn all professions on this server, this macro will switch between Find Herbs and Find Minerals.

/run if n~= 1 then CastSpellByName("Find Herbs") n=1 else CastSpellByName("Find Minerals") n=0 end


listtalents.jpgCombined Shoot macro

This combines all three Shoot abilities into one macro.

/run s="Shoot "r="Crossbow"c=CastSpellByName _,_,i= string.find(GetInventoryItemLink("player",18),"item:(%d+).+%[(.+)%]")_,_,_,_,_,w=GetItemInfo(i)if w==r.."s"then c(s..r)elseif w=="Bows"then c(s.."Bow")else c(s.."Gun")end —CastSpellByName("Shoot Gun")


sinister.jpgAutoattack macro

To use this macro, you should place your Attack ability in the 1st slot of actionbar 2. This is the "page 2" of the main actionbar that most people do not use. In the default UI you can access it by clicking the little arrows next to the actionbar.

/cast Sinister Strike
/script if not IsCurrentAction(13) then AttackTarget() end;


SuperMacros

These require the SuperMacro addon.


blessing.jpg Order a Companion to buff you

This SuperMacro will let you ask a Companion for a specific buff without needing to change the macro for the Companion's name every time you hire a new one.

function IsAlive(id)
    if not id then return end
    if UnitName(id) and (not UnitIsDead(id) and UnitHealth(id)>1 and not UnitIsGhost(id) and UnitIsConnected(id)) then return true end
end}}

function CompanionBuffMe(class, buff)
    if buffed(buff,"player") then return end
    TargetUnit("player")
    if UnitName("target") ~= UnitName("player") then return end
    if GetNumPartyMembers() == 0 then return end
    local n=GetNumPartyMembers()
    local timer = 0
    IndicatorFrame = CreateFrame("Frame",nil,UIParent)
    IndicatorFrame:SetScript("OnUpdate", function()
        timer = timer + 1
        if (timer == 100) then 
            for i=1,n do
                if UnitName("party"..i) and IsAlive("party"..i) and CheckInteractDistance("party"..i, 4) and UnitClass("party"..i) == class then
                    SendChatMessage("cast "..buff,WHISPER,nil,UnitName("party"..i))
                end
            end
        end 
        if (timer >= 200) then IndicatorFrame:SetScript("OnUpdate", nil) end        
    end)
end
supermacro.jpg

How to use this macro:

1. Download SuperMacro.
2. Unzip it in your Inferface/Addon folder.
3. Open the SuperMacro folder.
4. Open the SM_Extend.lua file.
5. Copy the 2 functions from above (function IsAlive() and function CompanionBuffMe(class, buff)) inside the SM_Extend.lua file.
6. Create a macro in game containing the following:
/script CompanionBuffMe(class, buff)
The class and buff need to be specified in quotations.
E.g. /script CompanionBuffMe("Paladin", "Blessing of Might")
7. Move the macro button to your hotbar.
8. Reload your user interface (can be done by relogging).
9. Use the macro.

What this macro does is to look at your party members and whisper those with the specified class to cast the specified buff on you.


Feel free to add your own!