Public Macros The LVL 40 ish Cleric macro that know it can and will
Reply
The LVL 40 ish Cleric macro that know it can and will
This one is one of my favorites. Again still learning and haven't perfected everything but this has gotten much more complex. hehe wait till you see one of my others. Also feel free to us it how ever you want.. snippet or edit it for your healer .. it wouldn't be hard to do if you sit down and just look it over.

Macro
More +

|*****************************************************************|
|
|                      My Cleric Macro
|                            By
|                         chrismed
|
|              This Macro was written when my
|            Cleric was LVL 40. Use what you want
|           I hope this helps anyone that needs or
|            or wants a striat forward and simple
|                 Macro for thier cleric.
|
|******************************************************************|


#include Spell_routines.inc
#turbo 40
#chat group
#chat tell




|----------------------------- Events ---------------------------------|

#event buffme "#1# tells the group, 'check buffs'"

#event giveheal     "#1# tells the group, 'plz heal'"
#event evac         "#1# tells the group, 'EVAC'"

#event helpcommands "#1# tells the group, 'whitelite'"






Sub Main

|------------- Spells ------------|
| 1. Frenzied Strength....Armor of Protection
| 2. Resolution
| 3. Armor of Faith
| 4. Gate.................Symbol Of Naltron
| 5. Word of Healing
| 6. Celestial Remedy
| 7. Superior Healing
| 8. Complete Heal
|---------------------------------|



|----------------------------- MySpells --------------------------------|
  /declare    AoP                  string outer    Armor of Protection
  /declare    FastTnkHeal          string outer    Superior Healing
  /declare    TempSTR              string outer    Frenzied Strength
  /declare    HPsACBuff            string outer    Resolution
  /declare    HPBuff               string outer    Symbol of Naltron
  /declare    ACBuff               string outer    Armor of Faith
  /declare    GateSpell            string outer    Gate
  /declare    GrpHeal              string outer    Word of Healing
  /declare    HoTHeal              string outer    Celestial Remedy
  /declare    SuperHeal            string outer    Superior Healing
  /declare    CHeal                string outer    Complete Heal


|----------------------------- Heal Pcts -------------------------------|
|**Group Heal Pct**|
  /declare  GrpLowHp int outer 60

|**Heal Over Time Pct**|
  /declare  HoTMinHP    int outer 60
  /declare  HoTMaxHP    int outer 70

|**Direct Heal Pct**|
|Complete Heal|
  /declare  CHMinHP     int outer 40

|Superior Heal|
  /declare  SprHealHP   int outer 50
|---------------------- Interupt Healing Pct ----------------------------|

|**Stop Healing if Target has Already Been Healed Pct**|
/declare    StopHealPct         int outer 80

|**Stop Complete Heal on Tank to Heal for a Faster Heal**|
/declare    StopTankHealPct     int outer 25
|---------------------- Each timer for Heal Over time -------------------|

  /declare HoTTimer0       timer outer
  /declare HoTTimer1       timer outer
  /declare HoTTimer2       timer outer
  /declare HoTTimer3       timer outer
  /declare HoTTimer4       timer outer
  /declare HoTTimer5       timer outer

|---------------------------- Buff Timers -------------------------------|
  /declare    SuperTankHealTimer timer outer
  /declare    AoPTimer           timer outer
  /declare    HPsACBuffTimer     timer outer
  /declare    HPBuffTimer        timer outer
  /declare    ACBuffTimer        timer outer
  /declare    TempSTRTimer       timer outer
 
|-------------------------- Group Heal Counter --------------------------|

  /declare GrpHealCounter int local 0

|---------------------------- Other Declares ----------------------------|

  /declare MTank string outer Backbreaker
  /declare x int local

|----------  Healing Loop --------------|

:med
  /if ((!${Me.Casting.ID}) && (${Me.State.Equal[STAND]}) & (${Me.PctMana}<98)) /sit
  /doevents
  /delay 10
  /if (${Me.PctMana}>10) /goto :grouphealing
/goto :med

:grouphealing
  /for x 0 to ${Group}
  /if (${Group.Member[${x}].PctHPs}<${GrpLowHp}) /varcalc GrpHealCounter ${GrpHealCounter}+1
  /next x
  /if (${GrpHealCounter}>=3) /call cast "${GrpHeal}" gem5
  /varset GrpHealCounter 0
  /goto :healloop
 
:healloop
  /for x 0 to ${Group}
  /if (${Select[${Group.Member[${x}].Class.ShortName},CLR,DRU,WIZ,ENC,SHM]} && ${Group.Member[${x}].Type.NotEqual[CORPSE]} && ${Group.Member[${x}].PctHPs}<${SprHealHP}) /call SuperiorHeal ${Group.Member[${x}].CleanName}
  /next x
  /goto :tankheal
 
:tankheal
  /target ${MTank}
  /delay 1s
  /if (${Target.Type.NotEqual[CORPSE]} && ${Target.PctHPs}<75  && ${Target.PctHPs}>50 && ${SuperTankHealTimer}==0) /call SuperiorHeal
  /varset SuperTankHealTimer 15s
  /if (${Target.PctHPs}<45) /call CompleteHeal
  /goto :HealOverTime



|------------------ Heal Over Time for Each Group Member --------------|


:HealOverTime
  /if (${Select[${Group.Member[0].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[0].Type.NotEqual[CORPSE]} && ${Group.Member[0].PctHPs}>${HoTMinHP} && ${Group.Member[0].PctHPs}<${HoTMaxHP} && ${HoTTimer0}==0) {
         /target ${Group.Member[0]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer0 24s
}
  /if (${Select[${Group.Member[1].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[1].Type.NotEqual[CORPSE]} && ${Group.Member[1].PctHPs}>${HoTMinHP} && ${Group.Member[1].PctHPs}<${HoTMaxHP} && ${HoTTimer1}==0) {
         /target ${Group.Member[1]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer1 24s
}
  /if (${Select[${Group.Member[2].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[2].Type.NotEqual[CORPSE]} && ${Group.Member[2].PctHPs}>${HoTMinHP} && ${Group.Member[2].PctHPs}<${HoTMaxHP} && ${HoTTimer2}==0) {
         /target ${Group.Member[2]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer2 24s
}
  /if (${Select[${Group.Member[3].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[3].Type.NotEqual[CORPSE]} && ${Group.Member[3].PctHPs}>${HoTMinHP} && ${Group.Member[3].PctHPs}<${HoTMaxHP} && ${HoTTimer3}==0) {
         /target ${Group.Member[3]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer3 24s
}
  /if (${Select[${Group.Member[4].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[4].Type.NotEqual[CORPSE]} && ${Group.Member[4].PctHPs}>${HoTMinHP} && ${Group.Member[4].PctHPs}<${HoTMaxHP} && ${HoTTimer4}==0) {
         /target ${Group.Member[4]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer4 24s
}
  /if (${Select[${Group.Member[5].Class.ShortName},CLR,DRU,WIZ,ENC]} && ${Group.Member[5].Type.NotEqual[CORPSE]} && ${Group.Member[5].PctHPs}>${HoTMinHP} && ${Group.Member[5].PctHPs}<${HoTMaxHP} && ${HoTTimer5}==0) {
         /target ${Group.Member[5]}
         /g casting ${HoTHeal} on [ %t ]
         /call cast "${HoTHeal}" gem6 5s
         /g ${HoTHeal} on [ %t ]
         /varset HoTTimer5 24s
}
/goto :TankTempSTR


:TankTempSTR
  /assist ${MTank}
  /delay 1s
  /if (${Target.PctHPs}<98 && ${Target.Type.Equal["NPC"]} && ${TempSTRTimer}==0) /call TempTankSTR
/goto :med



/return



|---------------------------- Heal Routines -------------------------|

Sub CompleteHeal(Targ)
  /target ${MTank}
  /g ${CHeal} in 10 sec on [ %t ]
  /call cast "${CHeal}" gem8 5s
  /return


Sub SuperiorHeal(Targ)
  /target ${Targ}
  /g ${SuperHeal} on [ %t ]
  /call cast "${SuperHeal}" gem7 4s
  /return


|Sub CheckHP
| /if (${Target.PctHPs}>=${StopHealPct}) /call Interrupt
|  /return

 
|Sub CheckTankHP
|  /if (${Target.PctHPs}>=${StopHealPct}) /call Interrupt
|  /if (${Target.PctHPs}<=${StopTankHealPct} && ${castEndTime}>=20) /call FastTankHeal

 
|Sub FastTankHeal
|  /call Interrupt
|  /g Casting ${FastTnkHeal} on [ %t ]
|  /call cast "${FastTnkHeal} gem6 4s
|  /return


|-------------------- Events and other Routines ------------------|

Sub TempTankSTR
  /target ${MTank}
  /if (${Tager.ID} && ${Target.Distance}<90) /call cast "${TempSTR}" gem1 3s
  /varset TempSTRTimer 3m
  /return
 
Sub Event_buffme(Line,Targ)
  /target ${Targ.Right[-2].Left[-1]}
  /delay 1s
  /g Buffing [ %t ]
  /ssm ClrBuffs
  /if (${Target.ID} && ${HPsACBuffTimer}==0) {
     /call cast "${HPsACBuff}" gem2 4s
         /varset HPsACBuffTimer 58m
  }
  /if (${Target.ID} && ${HPBuffTimer}==0) {
         /call cast "${HPBuff}" gem4 4s
         /varset HPBuffTimer 40m
  }
  /if (${Target.ID} && ${ACBuffTimer}==0) {
         /call cast "${ACBuff}" gem3 4s
         /varset ACBuffTimer 56m
  }
  /target Whitelite
  /if (${Target.ID} && ${AoPTimer}==0) {
         /call cast "${AoP}" gem1 3s
         /varset AoPTimer 56m
  }
  /ssm MySpells
  /return
 
 
Sub Event_evac(Line)
  /call cast "${GateSpell}" gem4 5s
  /return
       
       
Sub Event_giveheal(Line,Targ)
  /assist ${Targ.Right[-2].Left[-1]}
  /delay 1s
  /call cast "${SuperHeal}" gem7 4s
  /return
 
 
Sub Event_helpcommands(Line)
   /g Heal Plz - I will heal you or who you have targeted.
   /delay 1s
   /g Buff Check - I will buff you
   /delay 1s
   /g Evac - I will gate the heck outa here!
   /return


There ya go....
Mon May 28, 2012 7:35 pm
Public Macros The LVL 40 ish Cleric macro that know it can and will
Reply