ok well i found this on worldofwar.net helped me out though i would post it here for the lazy people that dont want to go there and read it
To create a macro, do the following:
Type /macro, /m, or or click on the Macros button in the Main Chat Menu. A box will appear with your current macros. You should have no macros to start.
Click on "New" at the bottom of that box. Another box will pop up, with a place to enter the macro name and a choice of an icon for the macro.
Name your macro. Select a name that will make sense to you when you see it again. For example, "Assist". Select an icon. Let's pick a sword.
Select "Okay" - You should now see the icon you selected (sword) along with your icon name in your current macros box (assist). Now Left-Click on the assist icon to highlight it. There is a button there to change the name or icon for your macro if you later decide to rename it or select a different icon. Once your assist icon is highlighted, move your mouse pointer into the "Enter Macro Commands" box. This is where you can type what you want the button to do when you press it. You will need to add a "/;jsessionid=2F9C80DBD07487F18658D0B92DBC21C9.app04 " in front of the command, if it is a slash command, just as you would enter in your text entry box.
Type "/Assist Nebu".
Move your mouse pointer back over the sword icon (assist) and left-click and hold down the button over the icon. Now, drag the icon over to an empty slot on your action bar. To use your new macro icon, press the number associated with that action button, or right-click on the button itself.
You now have a macro button that will assist another player (Nebu) in their attack. When Nebu attacks a player or monster, press your Assist macro button and you will automatically select the same target Nebu is attacking. ~ Blizzard
Finishing Macros
When you are done editing or creating macros, click the "x" in the top right-hand side of the box to close the macro window.
Editing Existing Macros
Type /macro then left-click on the macro button you wish to change. You can now make changes in the "Enter Macro Commands" box. Click the "x" to close the macro box when you are done.
Macro Limit
There is a character limit for each macro you create. If your message is too long, make it shorter!
Some simple commands used in macros
Targeting
%t
If you do not want to type out "There's a Murloc incoming" or someone in your party has a complicated name you cant type, like "Regís"or something, you can use %t. When you send a message using %t, %t will take the place of your target. So if you make a macro "Watch out! That %t is near!" and you're targeting a Murloc, it'll appear as "Watch out! That Murloc is near!". Likewise if you have Regís targeted, "/tell zekryn His name is %t" will appear "To [Zekryn]: This name is Regís".
Attacking & Assisting
/script AttackTarget();
This will start attacking the target with your weapon.
By itself, it does not have much use because of all of the other skills used in battle and during PvP. But it gets put to better use when used with other macros, or as part of other macros
/assist %t
/assist ****
These two are good if your a caster/ranger and stand in the back where your
tank's back completely covers the enemy. /assist %t will change the target from
the party member you're currently targeting to the mob they're fighting. The
second one, /assist ****, replace the **** with the players name to target
the mob whoever you have listed for ****. You can put the tank's name there
so that you can automatically target whatever the tank is fighting.
/script TargetLastEnemy();
This is pretty handy for shamans/druids. If you heal someone and the mob
you where attacking is hidden in a crowd, use this and it'll auto-target
the last enemy you where fighting.
Bags, Bags, Bags and ... More Bags!
The most important thing to know first when dealing with bags and macros for them is Location.
First, let me explain how to figure the location of each of your items. Say
you have a healing potion in the bottom most right hand corner of your mageweave bag. Lets look down at our tool bar. After our Latency bar, we have 5 slots for
bags. The numbers go backwards:
|| [4] [3] [2] [1] [0]
First, let me explain how to figure the location of each of your items. Say
we have a potion in the bottom most right hand corner of your Green Sack.
Lets look down at our tool bar. After our Latency bar, we have 5 slots for
bags. The numbers go backwards:
|| [4] [3] [2] [1] [0]
As you can see, our Backpack is 0. It will always be 0, since you can't move it.
Now we see that our Backpack ID # is 0, Our Small Pouch is 1, Bag 2, Green Sack 3,
and our small quiver is 4. So, we know our potion is in the green bag. So for
location so far, we have (3,#). I said it's in the bottom most right hand corner,
so looking at our Green sack, we can see that is 10. Our potion's location is (3,10).
Bag 0
Backpack
[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
[ 9][10][11][12]
[13][14][15][16]
Bag 1
Small Pouch
[ 1][ 2]
[ 3][ 4][ 5][ 6]
Bag 2
Small Bag
[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
Bag 3
Small Bag
[ 1][ 2][ 3][ 4]
[ 5][ 6][ 7][ 8]
Bag 4
Small Quiver/small bag/ammo pouch
[ 1][ 2]
[ 3][ 4][ 5][ 6]
Putting Location to Use
/script PickupContainerItem(#,#);
So you know how to find location, how can we use it? If you place our location of
our potion in /script PickupContainerItem(#,#);, then when we use this macro, our
potion then appears on our cusor.
5c. Open/Close all your bags
/script ToggleBag(0);
/script ToggleBag(1);
/script ToggleBag(2);
/script ToggleBag(3);
/script ToggleBag(4);
This is a handy little macro. When you run this, it will open all your bags. If you
press it again, it'll close them all. Basically this just reverses what you have so
if you have bag 1 and 2 open, and 0, 3, and 4 close, using this macro will close 1
and 2, and open 0, 3 and 4.
When looking at your characters equipment:
[ 1]**********[10]
[ 2]**********[ 6]
[ 3]**********[ 7]
[15]**********[ 8]
[ 5]**********[11]
[ 4]**********[12]
[19]**********[13]
[ 9]**********[14]
[16][17][18]<-[0]
0. Ammo
1. Head
2. Neck
3. Shoulders
4. Shirt
5. Chest
6. Waist
7. Legs
8. Feet
9. Wrist
10. Hands
11. Finger
12. Finger
13. Trinket
14. Trinket
15. Back
16. Main Hand
17. Off Hand
18. Ranged Weapon
19. Tabard
/script PickupInventoryItem(#);
This is best paired with the bag use. The script above will equip whatever is on your mouse to the item selected. For example we're using a Sword and have an axe in our backpack (location 0,1). Looking back, we can take:
/script PickupContainerItem(#,#); <- put in item location, 0,1
/script PickupInventoryItem(#); <- put in equip location, 16
Now we have:
/script PickupContainerItem(0,1)
/script PickupInventoryItem(16);
Now when we press this macro, it'll replace our sword with the axe. The sword will be placed where our axe was, so if we press it again, our axe will be replaced with the sword.
Switch to a 1H weapon and shield from a 2H weapon.
/script oi=(GetInventoryItemLink("player",17));if (not oi) then PickupContainerItem(4,1);PickupInventoryItem(16);P ickupContainerItem(4,2);
PickupInventoryItem(17);end;
This one should be exactly 167 characters. Note that this one can also be modified to switch from a Fishing pole to a 1H weapon and shield for those encounters with A Murloc, or Fluffy as we call him. Just be sure to include the correct container and inventory item numbers so it works right.
Switch to a 2H weapon from a 1H weapon and shield.
/script oi=(GetInventoryItemLink("player",17));if(oi) then PickupInventoryItem(17);PickupContainerItem(4,2);P ickupContainerItem(4,1);
PickupInventoryItem(16);end;
This one should be 162 characters.
Pets
Pet Attack
/script PetAttack();
Useful for Hunters attach this macro with Concussive Shot so that when used, your pet attacks.
Target Pet's Target
/script TargetUnitsPet("Player");
This will simply target what your pet is targeting.
Feed Pet
/cast Feed Pet
This works just like the ability feed pet, but i you add Item Location:
/cast Feed Pet
/script PickupContainerItem (0,1)
This will automatically feed your pet the item in Backpack, slot 1. It's
very useful, as I don't have to search for the right food, then click my pet.
Warlock cast fear, pet stops
/cast Fear(Rank #)
/script PetFollow();
Using this, you'll cast Fear and your pet will turn and sit beside you.
Warlock Pets
Tells the Succubus to attack the target so you can assist it later, makes her cast seduce on the target, and you cast Curse of Shadows which greatly improves seduce times.
/party Seducing %T - Don't attack the mob with the hearts! <3 <3
/script PetAttack();
/script CastPetAction(6);
/cast Curse of Shadow(Rank 2)
Casts Amplify Curse if spell is available - otherwise cast Curse of Agony.
/script local e, f, g = GetSpellCooldown(16, SpellBookFrame.bookType); if (f <= 0) then CastSpellByName("Amplify Curse"); else CastSpellByName("Curse of Agony(Rank 5)"); end;
Casts immolate and gets pet to attack the same target
/script PetAttack();
/cast Immolate(Rank 3)
Fel Domination/Summon
Imp
/script local e, f, g = GetSpellCooldown(89, SpellBookFrame.bookType); if (f <= 0) then CastSpellByName("Fel Domination"); else CastSpellByName("Summon Imp(Summon))"); end'
VoidWalker
/script local e, f, g = GetSpellCooldown(89, SpellBookFrame.bookType); if (f <= 0) then CastSpellByName("Fel Domination"); else CastSpellByName("Summon Voidwalker(Summon))"); end;
Succubus
/script local e, f, g = GetSpellCooldown(89, SpellBookFrame.bookType); if (f <= 0) then CastSpellByName("Fel Domination"); else CastSpellByName("Summon Succubus(Summon))"); end;
Felhunter
Casts fel domination and summons pet of choice.
/script local e, f, g = GetSpellCooldown(89, SpellBookFrame.bookType); if (f <= 0) then CastSpellByName("Fel Domination"); else CastSpellByName("Summon Felhunter(Summon))"); end;
5. This will target YOU, cast devour magic, then retarget what you were attacking.
script if (UnitCreatureFamily("pet") == "Felhunter") then TargetUnit("player");CastPetAction(4);TargetLastEnemy();end;
Other useful Macros
Change your Macro page
/script CURRENT_ACTIONBAR_PAGE = X;
/script ChangeActionBarPage();
Change X to the Page.
Casting Spells
Cast allows you to cast spells by name.
/cast (spell subtext)
Example: "/cast Fireball (Rank 1)". To add spell casting to a macro you can type it manually, or shift-click a spell in your spell book to add the proper /cast line to the macro.
Macro to show Map Location
/script px,py=GetPlayerMapPosition("player")
/script DEFAULT_CHAT_FRAME:AddMessage(format("[ %s ] %s , %s",GetZoneText(),px,py));
Once you hit level 60 there is a Macro to join you to the LFG channel of your choice.
It does screw up your normal LFG channel, so if you are still gaining levels and going off to a zone to LFG for an instance in that zone you will be seriously handicapped. However, once you are 60, you will find that the Major instance runs are organised from the main Capitals for each faction.
Strat, Scholo, L&UBRS DME,W,N etc. all get tells from the capital, rather than the area the instance is situated in. If you want to quest and still be aware of any groups or raids forming open a macro and copy/paste the following:
/script JoinChannelByName("LookingForGroup - Ironforge", nil, 1); ChatFrame1.channelList[5]="LookingForGroup - Ironforge"; ChatFrame1.zoneChannelList[5]=0;
or
/script JoinChannelByName("LookingForGroup - Orgrimmar", nil, 1); ChatFrame1.channelList[5]="LookingForGroup - Orgrimmar"; ChatFrame1.zoneChannelList[5]=0;
Also, you will need to rejoin the channel each time you log in.
Guide by aragorn_elessar.