1. Action Bar Page Switching
In order to change from any action bar page to action bar page
2 use the following macro
/script CURRENT_ACTIONBAR_PAGE=2;
/script ChangeActionBarPage();
2. Change Action Bar Execute A Hot Button and Back to Previous Action Bar
This macro will change the currnet action bar page to action bar page #2. Then press the 3rd button on action bar #2. Then change the action bar page from #2 to action bar page #1.
/script CURRENT_ACTIONBAR_PAGE=2;
/script ChangeActionBarPage();
/script ActionButtonDown(3);
/script ActionButtonUp(3);
/script CURRENT_ACTIONBAR_PAGE=1;
/script ChangeActionBarPage();]
1. Basic Assist Macros
Assisting a team mate in defeating a mob or a member of the opposing faction is a nesscary and desired ability. In World of Warcraft there are many ways to build assist macros and scripts. Many are simple and easy to achieve and we start with those examples first.
In the following example you only need changed the first line in each of these macros. By doing so you change the target of your intended assist.
/assist (nameofplayer)
i.e. /assist Frank
/script AttackTarget();
Add this line to the macro for those with pets
/script PetAttack();
Add this line to the macro for casters
/cast (name of Spell)
i.e. /cast Frostbolt(Rank 4)
You can substitute the first line with this %T Variable but you will have to manually target the character you want to assist prior to firing on a new target.
/assist %T
/assist Attacktarget();
Add this line to the macro for those with pets
/script PetAttack();
Add this line to the macro for casters
/cast (name of Spell)
i.e. /cast Frostbolt(Rank 4)
You can substitute the first line with the following and the macro will pick the nearest party member
/assist NearestPartyMember();
/script AttackTarget();
Add this line to the macro for those with pets
/script PetAttack();
Add this line to the macro for casters
/cast (name of Spell)
i.e. /cast Frostbolt(Rank 4)
2. Assign and Re-Assign Main Assist with Alt Key & Macro
By Steven Collins
Credit goes to Steven Collins for the following Assist script. 1 macro to assign a "Main Assist." No more editing by hand the assist macro. The only thing you have to do to assign a "Main Assist" is press Alt + "Macro Button created". Once you set who the "main assist" is you let them run around and attack creatures and you will automatically get their "target". Totally cool and probally the best assist script out there.
To assign or change the "Main Assist" press the Alt key + "Macro Button" you created simutaneously. You will receive a message that you have assigned a "Main Assist" and that you are assisting the "Main Assist"
/script if IsAltKeyDown() or not MA then MA=UnitName("target")
DEFAULT_CHAT_FRAME:AddMessage(MA.." is now Main Assist") end
/script AssistByName(MA) DEFAULT_CHAT_FRAME:AddMessage("Assisting ".. MA)
3. Assist Warlock Specific Script
Posted by Lacerous here
/script if (UnitIsFriend("player","target"))then AssistUnit("target")PetAttack()end
/script AttackTarget()
or
/script if (UnitIsFriend("player","target")) then AssistUnit("target") PetAttack() end
/script CastSpellByName("Immolate(Rank 3)")
4. Assist, Target & Attack Macro
Posted by Fesra Here
This so far is the best all round Target/attack macro I have used. Nice Elseif switch!! Nice work Fesra..Big Grin
/script if (UnitName("target")~=nil and UnitInParty("target")) then AssistUnit("target") elseif UnitIsEnemy ("target", "player") then TargetLastEnemy() else TargetNearestEnemy(); end;
/cast Attack
1. Fast Quest Scrolling With Message
This macro turns on/off fast text scrolling. Keep in mind the macro will have to be run each time you load the game since the state of the variable is not saved and by default will always be on, which means slow quest text. This version actually puts up prompts in your client that the fast text has been enabled or disabled, and you need to click an Okay button to continue.
/script if(QUEST_FADING_ENABLE) then QUEST_FADING_ENABLE = nil; message("Fast Quest Text Enabled") else QUEST_FADING_ENABLE =1; message("Fast Quest Text Disabled") end
1. Fast Quest Text Scrolling Without Message
If you prefer to fly blind you can remove the message calls which makes the macro look like this instead:
/script if(QUEST_FADING_ENABLE)
then QUEST_FADING_ENABLE = nil else QUEST_FADING_ENABLE = 1 end
1. Feed Your Pet
This will feed your pet without having to open your bag and click food. You can choose any bag and slot. But once chossen you must have your pets food in that slot otherwise the macro will not work. In this case the (4,6) refers to Bag #4 and its slot #6.
/cast Feed Pet
/script PickupContainerItem (4,6);
Or this script
/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(4, 1)) then OpenBag(4); else CastSpellByName("Feed Pet"); PickupContainerItem(4, 1); end end
1. Follow Macro
A simple follow macro is extremely easy and useful. Target the person you wish to follow and you can simply use the %T variable in the macro and any person you have targeted you will follow by using the macro. The %T variable makes this a very good all around macro to use for following either in a party or out of a party.
/follow %T
Another way to make a follow macro is the following example, however it is less useful due to the fact that you can only use when in a party.
/script TargetNearestFriend();
/follow
1. Pulling Macro
/script TargetNearestEnemy();
/script AttackTarget();
2. More advanced Pulling macro:
/script ClearTarget();TargetNearestEnemy(); if UnitExists("target")
then SendChatMessage ("Attacking: " ..UnitName")"target"), "PARTY")
CastSpellByName("Frostbolt(Rank 3)"); if not PlayerFrame.inCombat
then AttackTarget(); end end
1. All Weapon variation switches with a single script
You can save allot of macro slots with this macro and make them more universal across all your characters. This script assumes the static bag slots for your weapons:
In the case of Going from
A. 1HD and OffHand to 2HD:
1H weapon = Bag 3, slot 1
Offhand weapon item = bag 3 slot 2
2hd weapon = bag 3, slot 1
B. 2HD to 1HD and OffHand:
1HD weapon = Bag 3, slot 1
Offhand weapon = bag 3 slot 2
2HD weapon = bag 3, slot 1
C. 2HD to 2HD and OffHand:
2HD weapon = Bag 3, slot 1
2HD weapon = bag 3, slot 1
Advantages: 1 macro fits all weapon switches within the WoW User Interface. There is room to program stance switches as well. Current script is 146 characters out of the allowable 255. Save macro slot with this script and make them universal over all your characters. (best way to do stance switches would be to add a UseAction(#); function on both the then and the else side of the script.)
Disadvantages: Make take a couple miliseconds more than other scripts due to the use of if/then and else statements.
/script PII,PCI=PickupInventoryItem,PickupContainerItem;
PII(17); if CursorHasItem()) then PCI(3,2); PCI(3,1); PII(16);
else PII(16); PCI(3,1);PCI(3,2);PII(17); end
2. 2H Weapon to 1H Weapon and Off Hand Item
This assumes the static bag slots for bag #4 where:
1H weapon = Bag 4, slot 1
Offhand weapon item = bag 4 slot 2
2hd weapon = bag 4, slot 3
Disadvantage: This is all this macro does. It will not reverse and repeat.
/script PickupContainerItem(4,1);
/script Pickup inventoryItme(16);
/script PickupContainerItem(4,2);
/script PickipInventoryItem(17); end
3. 2H Weapon to 1H Weapon and Off Hand Item
This assumes the static bag slots for
This assumes the static bag slots for bag #4 where:
1H weapon = Bag 4, slot 1
Offhand weapon item = bag 4 slot 2
2hd weapon = bag 4, slot 3
Disadvantage: This is all this macro does. It will not reverse and repeat.
/script PickupContainerItem(4, 1);
/script PickupInventoryItem(16);
/script PickupContainerItem(4, 3);
/script PickupContainerItem(4, 2);
/script PickupInventoryItem(17);
4. 2H-Weapon to another 2H Weapon
This assumes the static bag slots for (For explanation of Bag slots go to Bag & Slots)
This assumes the static bag slots for bag #4 where:
1H weapon = Bag 4, slot 1
Offhand weapon item = bag 4 slot 2
2hd weapon = bag 4, slot 3
Disadvantage: This is all this macro does. It will not reverse and repeat.
/script PickupInventoryItem(17);
/script PickupContainerItem(4, 2);
/script PickupContainerItem(4, 3);
/script PickupInventoryItem(16);
/script PickupContainerItem(4, 1);
5. Weapon Switching In Cosmos User Interface
If you use the Cosmos user interface add-on there is no need to look any further than this section. The Cosmos team built in a /equip and a /unequip command into the cosmos User Interface. This makes the entire equip/unequip issue allot easier. I found these and other cosmos commands many users of Cosmos may not be aware of at the WoWikki sight posted by Sarf @ http://www.wowwiki.com/Item_equipping
/equip (Item Nmae)
/unequip (Item Name)
i.e.
/unequip Consecrated Wand
/equip Staff of Westfall
1. Basic Self Bandage Macro that re-targets enemy
This macro allows you to target yourself, bandage your self and re-target last enemy. The example below requires bandage item to be placed in bag#3 slot#3.
/target YourNameHere
/script UseContainerItem(3,3);
/script TargetLastEnemy();
i.e.
/target Aljah
/script UseContainerItem(3,3);
/script TargetLastEnemy();
2. Bandage Party Member if not Bandage Yourself
Okay A more complex but more versatile macro for bandaging a friend in your party. If the target is not a member of your party or not a friend then it will automatically bandage you. This way no need for multiple macros on your hot bar for bandaging. You still have to target the party member you want bandaged via F2-F5 keys or mouse select an out of party friend. In this example the bandages have to be in bag#4 and Slot#1.
/script if (UnitName("target")~nil and UnitInParty("target"))
then UseContainerItem(4,1) else TargetUnit("player") UseContainerItem(4,1)
TargetLastEnemy(); end;
1. Basic Heal Macro
This is a basic heal macro for a priest. It uses the variable that is availbale in the WoW user interface programming of %T. The %T variable will replace what you have targeted in the macro with the targets name. If that is a party member or yourself or even another friendly unit then the script will continue to cast the Flash Heal(Rank 1). If what you have targeted is a hostile you wil not heal them nor anything else.
/target %T
/cast Flash Heal(Rank 1)
2. Heal target and send whisper message letting the the party member know
This is a bit more advanced script that will send the player you are healing a whisper message telling them that you are healing them. Be cautioned allot of people hate these message scripts.
/script if((UnitName(“target”)~=nil AND(UnitIsPlayer(“target”)=1)) then
SendChatMessage(“Incoming flash Heal!”,”WHISPER”, “COMMOM”, UnitName(“target”));end
/cast Flash Heal(Rank1)
3. Cast heal on party member if not cast on self then re-target enemy
This script cast a Power Word Shield Rank 1 on a party member when targeted. How it works:
1. The script checks to see if there is a target
2. If the target is a party member.
3. If the Target is a party member then the macro will cast the heal on the target.
5. If not the script will cast the spell on you
6. Then it will retarget the last enenmy if it is still alive.
The advantage here is that you do not have to worry about miss casting on a mob or enemy target and you will not manually have to retarget yourself to cast the spell on you or retarget your previous enemy.
/script if (UnitName("target")~=nil and UnitInParty("target"))then CastSpellByName("Power Word: Shield(Rank 1)") else TargetUnit("player") CastSpellByName("Power Word: Shield(Rank 1)") TargetLastEnemy(); end;
/script TargetLastEnemy()
4. Cast heal on lowest health in party
This script selects the party member with the lowest health so you can cast on them. Personally with this script I would use the /script UseAction(Actionbutton#) function with this script. Where Actionbutton# is the actionbar button number where you have place the spells icon. This way you can replace the next rank level spell on your action bar instead of Editing the script istself.
/script TargetUnit("player"); for a=1,GetNumPartyMembers()
do t="target"; p="party"..a; if ( UnitHealth(p) > 1 and
UnitHealth(t)/UnitHealthMax(t) > UnitHealth(p)/UnitHealthMax(p) )
then TargetUnit(p) end end /script UseAction(Actionbutton#)
5. Cycle through party members casting Lesser Heal
This script acts as a cycle but is not a true cycle script. How it works:
1. With the first press of the macro it will select party member 1 and cast the Lesser Heal(Rank 1)
2. With the 2nd press of the macro button it will select party member and cast the spell
3. So forth and so on until party member 5 has been selected.
4. The 6th press of the macro will start the cycle again.
A true cycle script would be able to cycle the 5 players automatically and cannot be done in the WoW scripting codes due to limitations placed on 1 press of the keyboard = 1 spell cast maximum.
ADVANTAGE: You do not have to be bothered with pressing the F1-F5 keys to cast.
DISADVANTAGE: you cannot determin which party member needs the most attention first. For example you are in a fight and party member 5 is at 25% health you would have to cycle 5 times through this script. By that time party member 5 is probally dead. It is probally best for buffing outside of combat situations.
/script local lastPlayer=0 lastPlayer= (lastPlayer +1)
%5;if lastPlayer=0 thenTargetUnit(player’); else While
(lastPlayer~=0 and not UnitExists(‘party’..lastPlayer))
do LastPlayer= (lastPlayer +1) %5;end If (lastPlayer~=0)
then TargetUnit(‘party’..lastPlayer);end end If UnitExists
(‘target’) do CastSpellByName(‘Lesser Heal(Rank #)’); end
ClearTarget(); TargetLastEnemy();If not UnitExists(‘target’)
or UnitIsDead(‘target’); end
6. Cosmos User Interface Timers Used in Healing spells
Cosmos is a user interface add-on many players in WoW use instead of the store bought user interface provided by Blizzard in the game of World of Warcraft. The following scripts use some of the functions that are inherent in Cosmos interface but not in the standard WoW user interface.
A. Renew Fading Notification Scipt(Cosmos Only): This script is similar to #3 above as far as the body of the script but it is arranged somewhat differently. It accomplishes pretty much the same objective as #3 above. The big differnce is that Cosmos users can take advantage of the built in timer that the Cosmos developers have programmed by including in the script the /in # function that allows a timer capability. Where # = seconds; i.e 15 = 15 seconds or 180 = 3 minutes. The /page (message) function (again Cosmos only) sends a message in the case of both examples below the messages are sent to the users character.
/script CastSpellByName("Renew(Rank 1)");
if((SpellIsTargeting())and(not UnitIsFriend("player","target")))
then SpellTargetUnit("player");end;TargetLastEnemy()
/in 15 /page Aljah RENEW is Over
B. Inner Fire Cooldown Notification(Cosmos Only): Like the Renew macro, this gives a notification when the inner fire spell wears off. This spell is irritating as it only lasts 3 minutes (180 seconds)and many people forget to recast it. Innner fire being a self cast spell there is no reason to determin if the target is a friend or enemy.
/script CastSpellByName("Inner Fire(Rank 1)");
/in 180 /page Zarquon Inner Fire Cooldown Complete!():
7. FLEXBAR User Interface events
Inner Fire: The buff every priest needs to recast every three minutes. The 2 following events will need to programed into Flexbar. 'GainBuff' event Hides the Flexbar button when the Spell is active on your character. In this case Button #71. 'LoseBuff' event shows the Flexbar button when the spell has faded from your character.
/flexbar hide button=71 on='GainBuff' target='Inner Fire'
/flexbar show button=71 on='LoseBuff' target='Inner Fire'
8. Renew a lowbie without opening a spell book:
Tossing a buff on a player that is significantly lower than you is a hassle because it means opening the spell book and looking for the apppropriate rank of the spell. But this Script below takes that pain out of buffing lowbies with "Renew" buff. This is a complicated script and as with any script any typo results in a error message.
/script r=0;l={8,14,20,26,32,38,44,50,56};if not
UnitIsFriend("player","target")then TargetUnit("player");
end;t=UnitLevel("target");for i=r,1,-1 do if (t>=l[i]-10)
then CastSpellByName("Renew(Rank "..i..")");break;end;end
How it works:
1. < for i=r,1,-1 do if (t>=l[i]-10) > This means to start at 1.. and count up while checking the target's level to see if the target is within 10 lvls of the level of each rank of your buff.
2. < if not UnitIsFriend("player","target")then TargetUnit("player")> means if your target isn't friendly (ie.. a mob) then it targets you.
Essential knowledge for customizing this script for your character:
1. < r=#; > This is used as a placeholder. You must replace the # with whatever is your current highest rank in the particular buff that the script is designed to cast. This is the only thing you will have to change in the entire script. You will not have to swap anything on your action bars either.
2. < l={8,14,20,26,32,38,44,50,56} > This is what the script uses to check against the players ranking and the targets level. This is done to determine the appropriate rank of the spell to be cast on the target. so the script always casts the highest buff (available to the caster) based on target level. These numbers are the level at which a player gains a new rank level for the buff used in this script. In this case "Renew" has rank change at levels {8,14,20,26,32,38,44,50,56}. So in total there are 9 ranks of the renew spell.
3. < CastSpellByName("Renew(Rank "..i..")") > Name of the buff in the script must be programmed this way.
1. Cast Holy Light based on remaining mana
I felt this was too important a macro for healer classes not to dedicate a seperate page to. Also I wanted to get it up on the site for immediate usage by priests and other healers. Basically if you have 100 mana left and your rank 5 heal costs 200 mana so you cannot cast it but your Rank 4 only costs 100 you could cast the Rank 4. However you don't have time to fumble through your spell book to find the rank 4 nor is it on your hotbar for you to quickly click on. Well this script eases that pain. It will determine the the appropriate rank of the spell to be cast based on the mana available to the priest. It is very similar in construction as the cast spell by the targets rank scripts on the healing page. It uses only 145 characters of wow 255 script limitation so you could feasibly add a target selection portion. I will try to add examples for other heal scripts from other professions at a later date.
/script HL={110,190,275,365}; for x=getn(HL),1,-1 do if HL[x] UnitMana("player") then CastSpellByName("Holy Light(Rank "..x..")"); return; end end
1. Randomizing Comment Sent to Chat
To randomly say any particular type of chat comment in the game there are various choices to make.
1. What % of random chance do you want a particular comment to have each comment have the same %.
2. How many random comments do you want to select from.
3. Which actual WoW chat channel do you want this broadcast into.
In the following example random(5) will "roll" a number between 1 and 5. There will be a chance that 20% of the time it'll say "say1" and 20% of the time it'll say "say2" and the rest of the time it will not say anything.
/script x=random(5);if(x==1)then SendChatMessage("say1","SAY","COMMON"); elseif
(x==2)then SendChatMessage("say2","SAY","COMMON");end
2. Randomizing Emote Sent to Voice
The following Random voice emote script will send a voice command and the associated emote to the emote channel naming your target as the recipient of the emote. In this example the laugh emote will include the targets name but the train emote will not do this. So replace witha suitable emote if you want that action.
/cast Eviscerate(Rank 8)
/script x==random(5);if(x==1)then DoEmote("laugh",("target"))
elseif (x==2) then DoEmote("train",("target"));
1) Pickpocket then Opener macro:
/cast Pick Pocket
/Stopcasting
/cast Ambush
Auto pickpocket before you attack a mob, saves time, and you don't have to remember. I've got one for all my openers, just replace Ambush with Garrote, and so on.
2) For the combat rogues, a simple DPS macro so I can spam one button when I want to pop my trinket and Adrenaline Rush
/cast Adrenaline Rush
/use Abacus of Violent Odds
Replace Abacus of Violent Odds with trinket of your choice. So far I haven't been able to get the macro to work with two trinkets or two different spells. E.g.:
/cast Adrenaline Rush
/cast Blade Flurry
/use Abacus of Violent Odds
won't use both AR and BF just AR and the Trinket. If anyone has any ideas, I'd love to hear them.
3) This is my special attack macro.
Backstab:
/equip Riftmaker
/startattack
/cast Backstab
Sinister Strike:
/equip Big Bad Wolf's Paw
/startattack
/cast Sinister Strike
#showtooltip Blade Flurry
/castsequence reset=120 Blade Flurry, Adrenaline Rush
This also works with trinkets, such as:
#showtooltip Blade Flurry
/castsequence reset=90 Bladefist's Breadth, Blade Flurry, Adrenaline Rush
Basically, it allows you to cast your cooldowns and trinket "use" effects as you wanted to, but let's you do it for more than 2 different trinkets/spells.
My suggestions is to put the one with the shortest cooldown first in the list and make the "reset" value equal to the cooldown of that spell/trinket. That way, if you click your macro 3 times, it'll case Bladefist's Breadth, BF, and AR. Or, if you just want to cast Bladefist's Breadth and not the others, you click it once, and if you don't click it again for 90 seconds, the macro resets and you can cast Bladefist's Breadth again when it's cooled. Or if you click again before 90 seconds are up, you can cast Blade Flurry.
You just have to remember that every time you click the macro, the reset timer starts over again, so it's best to use all 3 cooldowns at once or the macro bugs out occasionally.
While we're at it, here's a nice macro for applying poisons to your weapons without having to open the paper doll frame or your bag:
#showtooltip Deadly Poison VII
/use Deadly Poison VII
/use [button:2] 17; 16
If you left-click the macro, it applies Deadly Poison to your Main Hand, or if you Righ-click it, it applies to your Off Hand. I also made a slightly more robust version of the macro so that you need less macro icons in your UI for all your poisons:
#showtooltip [modifier:shift] Crippling Poison II; Deadly Poison VII
/use [modifier:shift] Crippling Poison II; Deadly Poison VII
/use [button:2] 17; 16
This macro does the same thing, but if you hold the SHIFT key, it'll show the icon for Crippling Poison and apply that to your MH/OH as long as you hold SHIFT when you right-click or left-click. I pair up the poisons I use mostly for PvP with the ones I use for PvE so holding shift shows me my PvP poisons, and not holding shift shows my PvE poisons.
Use Bandage On Target Or Self
/use [help] Heavy Runecloth Bandage; [target=player] Heavy Runecloth Bandage
Activating a trinket
/use 13
/use 14
.(13 = top trinket, 14 = bottom)
Hybrid Assist
/cleartarget
/assist [player name]
Moonfire Spam
/castsequence reset=9/target/combat/ctrl Moonfire(Rank 10), Moonfire(Rank 9), Moonfire(Rank 9), Moonfire(Rank 9), Moonfire(Rank 9)
Stun and Self-Heal (Tauren)
# show War Stomp
/cancelaura [stance:1] Dire Bear Form; [stance:2] Aquatic Form; [stance:3] Cat Form; [stance:4] Travel Form; [stance:5] Moonkin Form
/castsequence [target=player] reset=120/combat War Stomp, Regrowth, Rejuvenation
Kill Command
/cast [exists,target=pettarget] Kill Command
Smart Ammo
#show Steady Shot
/equip Sharp Arrow
/cast Steady Shot
/equip Wicked Arrow
Warlock Attack Chain
/petattack
/castsequence reset=combat/target Corruption, Curse of Agony, Life Tap, Drain Life, Shoot
Announce a Summoning to Raid or Party
/script local C; if(GetNumRaidMembers()==0) then C = “PARTY” else C = “RAID” end SendChatMessage(”Summoning %t to << "..GetMinimapZoneText().." >>. Please assist.”, C)
/cast Ritual of Summoning
Self Heal Button
/castsequence reset=600 Last Stand, Major Healthstone, Major Healing Potion
Tanking Macro
/castsequence reset=5 Shield Block, Revenge(Rank 6), Sunder Armor(Rank 5)
Stance Dancing
/cast [modifier:ctrl,nostance:3] Berserker Stance; [stance:1] Defensive Stance; Battle Stance
Stealth if not in combat, else Vanish (mashable)
/cast [combat] Vanish; [nostealth] Stealth
Expose Armor without breaking gouge/sap/blind
/equip Bow of Love
/cast Expose Armor
/stopattack
Arcane Missiles Spam
/cast [nochanneling:Arcane Missiles] Arcane Missiles
Eat/Drink Macro
/use Conjured Crystal Water
/use Conjured Cinnamon Roll
Sheep Macros
/script if UnitSex(”target”)==1 then g=”female ” else g=”male ” end;s=”Sheeping “..g..UnitLevel(”target”)..” %T”;c=”say”;if GetNumRaidMembers()>0 then c=”raid” elseif GetNumPartyMembers()>0 then c=”party” end;SendChatMessage(s,c)
/cast Polymorph
Thanks to:
Azzor.com
wowmacros.com
gotwarcraft.com
thottbot.com
worldofwarcraft.com
Tuesday, June 19, 2007
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment