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)
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)
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()
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#)
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)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.
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.
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
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
/script CastSpellByName("Inner Fire(Rank 1)");
/in 180 /page Zarquon Inner Fire Cooldown Complete!():
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'
/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
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.
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.