- Joined
- Oct 5, 2012
- RedCents
- 2,324¢
After playing Live EQ for a bit I decided to revisit P2002, or rather Wayfarer's Haven as it has been re-branded. A new client has been released, which takes us from Titanium to the Underfoot client. They plan to bring the game past PoP to Legacy of Ykesha and Lost Dungeons of Norrath now. I brushed off my old macros and found they needed some maintenance with some of the changes that happened, including a new MQ2 version being used. I've decided instead of trying to make all in one macros for archtypes (Healer, Caster DPS, etc) I should focus on making one for each class as I get them leveled, and more proficient in playing them. Since I already have a Cleric I stripped down my old Simple Healer macro and added a bit to it.
For anyone playing WFH/P2002 I hope this helps, and if there are any problems just let me know. I'll do my best to fix them
**Place it in your MQ2 Macro folder, target the person you plan to have as your Main Assist, and /mac WFHClr to begin.
** I recommend having your Main Assist be someone you are controlling, because once your mana falls lower than 10% you will send a tell to them stating your are low on mana (less than 10%). You could always comment this out though.
[CODE lang="ini" title="Wayfarer's Haven Cleric"]
|++++++++++++++++++++++++++++++++
| Macro Information
|++++++++++++++++++++++++++++++++
| A Cleric Macro for Wayfarer's Haven
| Version 1.0
| Have fun and enjoy EverQuest!
|
| Target who you want to have as your Main Assist and start the macro.
|++++++++++++++++++++++++++++++++
#chat tell
#chat group
#turbo 40
#event Follow "#1# tells you, 'Follow'"
#event Stay "#1# tells you, 'Stay'"
#event ZoneType "You can only cast this spell in the outdoors."
#event ACbuff "#1# tells you, 'ACBuff'"
#event HPbuff "#1# tells you, 'HPBuff'"
#event SymbolBuff "#1# tells you, 'Symbol'"
#event ClericHoT "#1# tells you, 'CHoT'"
#event ClericDebuffTimer1Reset "##has been slain##"
#event ClericDebuffTimer1Reset "You gain party experience!!"
#event ClericDebuffTimer2Reset "##has been slain##"
#event ClericDebuffTimer2Reset "You gain party experience!!"
Sub Main
|++++++++++++++++++++++++++++++++
| General Information
|++++++++++++++++++++++++++++++++
/declare HealAtTANK int outer 70
/declare HoTAtTANK int outer 90
/declare HealAtOTHER int outer 80
/declare HealAtSham int outer 70
/declare AssistAt int outer 80
/declare AssistAtDis int outer 100
/declare ManaToNuke int outer 70
/declare UseMount int outer 1
/declare MountItem string outer "Black Rope Bridle"
/declare CompHeal outer "Complete Healing"
/declare CompHealMana int outer "400"
/declare SpellHeal outer "Supernal Light"
/declare SpellHealMana int outer "600"
/declare SpellHoT string outer "Supernal Elixir"
/declare SpellHoTMana int outer "400"
/declare SpellHoTTimer timer outer "0"
/declare ClrACBuff string outer "Hand of Virtue"
/declare ClrHPBuff string outer "Hand of Virtue"
/declare ClrSymbol string outer "Hand of Virtue"
/declare ClrSelfBuff1 string outer "Armor of the Zealot"
/declare ClrSelfBuff2 string outer "Armor of the Zealot"
/declare ClrSelfBuff3 string outer "Armor of the Zealot"
/declare ClericNuke1 string outer "Condemnation"
/declare ClericDebuff1 string outer "Mark of Kings"
/declare ClericDebuffTimer1 timer outer 0
/declare ClericDebuff2 string outer "Mark of the Righteous"
/declare ClericDebuffTimer2 timer outer 0
/declare MainAssist string outer ${Target.CleanName}
/declare ZoneType int outer 0
/declare count_grp int outer
/echo Wayfarer's Haven Cleric Macro has started
/echo Main Assist is ${MainAssist}
/echo Tank healed at ${HealAtTANK}
/echo Others healed at ${HealAtOTHER}
/echo Shamans healed at ${HealAtSham}
|+++++++++++++++++++++++++++++++++
| Main Loop
|+++++++++++++++++++++++++++++++++
:loop
/doevents
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :loop
/call HoT
/call CheckHeals
/call Debuff1
/call Debuff2
/call Attack
/call ManaCheck
/call SelfBuffs
/call Buffs
/goto :loop
/return
|+++++++++++++++++++++++++++++++++
Sub HoT
/if (${Me.Class.ShortName.NotEqual[CLR]}) /return
/for count_grp 0 to ${Group}
/if (${Group.Member[${count_grp}].Class.Name.Equal[Warrior]} || ${Group.Member[${count_grp}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${count_grp}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HoTAtTANK} &&${Me.CurrentMana}>${SpellHoTMana} &&${Group.Member[${count_grp}].Distance}<=100 && ${SpellHoTTimer}==0) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHoT}|gem3 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset SpellHoTTimer 240
}
}
/next count_grp
/return
|+++++++++++++++++++++++++++++++++
Sub CheckHeals
/for count_grp 0 to ${Group}
|+++++++++++++++++++++++++++++++++
| Tank ##check spell you're casting##
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Warrior]} || ${Group.Member[${count_grp}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${count_grp}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtTANK} &&${Me.CurrentMana}>${CompHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${CompHeal}|gem1 -maxtries|3
}
|+++++++++++++++++++++++++++++++++
| Non Tanks
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Cleric]} || ${Group.Member[${count_grp}].Class.Name.Equal[Druid]} || ${Group.Member[${count_grp}].Class.Name.Equal[Beastlord]} || ${Group.Member[${count_grp}].Class.Name.Equal[Wizard]} || ${Group.Member[${count_grp}].Class.Name.Equal[Magician]} || ${Group.Member[${count_grp}].Class.Name.Equal[Necromancer]} || ${Group.Member[${count_grp}].Class.Name.Equal[Monk]} || ${Group.Member[${count_grp}].Class.Name.Equal[Rouge]} || ${Group.Member[${count_grp}].Class.Name.Equal[Bard]} || ${Group.Member[${count_grp}].Class.Name.Equal[Ranger]} || ${Group.Member[${count_grp}].Class.Name.Equal[Enchanter]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtOTHER} &&${Me.CurrentMana}>${SpellHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/squelch /target clear
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHeal}|gem2 -maxtries|3
}
|+++++++++++++++++++++++++++++++++
| Shaman
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Shaman]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtSham} &&${Me.CurrentMana}>${SpellHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHeal}|gem2 -maxtries|3
}
/next count_grp
/return
|+++++++++++++++++++++++++++++++++
| Debuff 1
|+++++++++++++++++++++++++++++++++
Sub Debuff1
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${ClericDebuffTimer1} != 0) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericDebuff1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt} && ${ClericDebuffTimer1} == 0) {
/casting ${ClericDebuff1}|gem5 -maxtries|3 {
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset ClericDebuffTimer1 2000
/echo ${ClericDebuff1} on ${Target.CleanName} SUCCESS!
/return
}
/if (${Macro.Return.Equal[CAST_RESIST]} || (${Macro.Return.Equal[CAST_CANNOTSEE]}) || (${Macro.Return.Equal[CAST_FIZZLE]}) || (${Macro.Return.Equal[CAST_INTERRUPTED]}) || (${Macro.Return.Equal[CAST_NOTARGET]})) {
/echo Could not cast ${ClericDebuff1} on ${Target.CleanName} UNSUCCESSFUL!
/return
}
}
}
/return
|+++++++++++++++++++++++++++++++++
| Debuff 2
|+++++++++++++++++++++++++++++++++
Sub Debuff2
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${ClericDebuffTimer2} != 0) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericDebuff1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt} && ${ClericDebuffTimer2} == 0) {
/casting ${ClericDebuff2}|gem6 -maxtries|3 {
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset ClericDebuffTimer2 2000
/echo ${ClericDebuff2} on ${Target.CleanName} SUCCESS!
/return
}
/if (${Macro.Return.Equal[CAST_RESIST]} || (${Macro.Return.Equal[CAST_CANNOTSEE]}) || (${Macro.Return.Equal[CAST_FIZZLE]}) || (${Macro.Return.Equal[CAST_INTERRUPTED]}) || (${Macro.Return.Equal[CAST_NOTARGET]})) {
/echo Could not cast ${ClericDebuff2} on ${Target.CleanName} UNSUCCESSFUL!
/return
}
}
}
/return
|+++++++++++++++++++++++++++++++++
| Attack Spells
|+++++++++++++++++++++++++++++++++
Sub Attack
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericNuke1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/casting ${ClericNuke1}|gem7 -maxtries|3
/delay 2
}
}
/return
|+++++++++++++++++++++++++++++++++
| Mana
|+++++++++++++++++++++++++++++++++
Sub ManaCheck
/if (${UseMount}==1 && ${ZoneType}==0 && !${Me.Mount.ID}) {
/casting ${MountItem}|item
}
/if (${Me.Standing}&&!${Stick.Active}&&!${Me.Mount.ID}&&${Me.PctMana}<100&&${ZoneType}==1) {
/sit on
}
/if (${Me.PctMana} < 10) {
/t ${MainAssist} I have ${Me.PctMana}% mana.
}
/return
|+++++++++++++++++++++++++++++++++
| Self Buffs
|+++++++++++++++++++++++++++++++++
Sub SelfBuffs
/call ClickOffFocus
/if (${Me.Buff[${ClrSelfBuff1}].Duration}<5) {
/target ${Me} PC
/delay 1
/casting ${ClrSelfBuff1}|gem8 -maxtries|3
}
/if (${Me.Buff[${ClrSelfBuff2}].Duration}<5) {
/delay 1
/casting ${ClrSelfBuff2}|gem8 -maxtries|3
}
/if (${Me.Buff[${ClrSelfBuff3}].Duration}<5) {
/delay 1
/casting ${ClrSelfBuff3}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Buffs
|+++++++++++++++++++++++++++++++++
Sub Buffs
/return
|+++++++++++++++++++++++++++++++++
| General Events
|+++++++++++++++++++++++++++++++++
Sub Event_Follow
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Following you
/stick
/return
Sub Event_Stay
/stick off
/tell ${MacroQuest.LastTell} Staying here
/delay 1
/if (!${Me.Sitting}&&!${Stick.Active}&&!${Me.Moving}&&${Me.PctMana}<100) {
/sit on
}
/return
Sub Event_ZoneType
/varset ZoneType 1
/echo Adjusting to indoor zone!
/return
Sub ClickOffFocus
/declare i int local
/for i 1 to 20
/if ( ${Me.Buff[${i}].Name.Find[Khura's Focusing]} || ${Me.Buff[${i}].Name.Find[Focusing of the Seventh]} || ${Me.Buff[${i}].Name.Find[Beta Khura]}) {
/notify BuffWindow buff${Math.Calc[${i}-1].Int} leftmouseup
/next i
/echo Clicking off Focus now. Can now cast ${ClrSelfBuff1}.
}
/return
|+++++++++++++++++++++++++++++++++
| AC Buff
|+++++++++++++++++++++++++++++++++
Sub Event_ACBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrACBuff} on you!
/casting ${ClrACBuff}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| HP Buff
|+++++++++++++++++++++++++++++++++
Sub Event_HPBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrHPBuff} on you!
/casting ${ClrHPBuff}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Symbol Buff
|+++++++++++++++++++++++++++++++++
Sub Event_SymbolBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrSymbol} on you!
/casting ${ClrSymbol}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Cleric HoT
|+++++++++++++++++++++++++++++++++
Sub Event_ClericHoT
/if (${Me.Casting.ID} || ${Me.Moving} || ${Me.Combat}) {
/tell ${MacroQuest.LastTell} I am currently busy, try again later.
/return
}
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${SpellHoT} on you!
/casting ${SpellHoT}|gem3 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Cleric Debuff Timer Resets
|+++++++++++++++++++++++++++++++++
Sub Event_ClericDebuffTimer1Reset
/if (${ClericDebuffTimer1}!=0) {
/varset ClericDebuffTimer1 0
}
/return
Sub Event_ClericDebuffTimer2Reset
/if (${ClericDebuffTimer2}!=0) {
/varset ClericDebuffTimer2 0
}
/return
[/CODE]
- Debuffs for Mark of the Righteous and Mark of the King, timers and resets for both so they can be used on each NPC you're engaging (I have an enchanter so I often pull more than one enemy per encounter)
- Auto click off Focus so Cleric self buff can be cast (they don't stack, and Cleric self buff has mana regen)
- A way to send a tell for a HoT rather then have the macro auto cast HoTs (good for FD splitting or pulling, where an unwanted HoT could wipe your group)
For anyone playing WFH/P2002 I hope this helps, and if there are any problems just let me know. I'll do my best to fix them

**Place it in your MQ2 Macro folder, target the person you plan to have as your Main Assist, and /mac WFHClr to begin.
** I recommend having your Main Assist be someone you are controlling, because once your mana falls lower than 10% you will send a tell to them stating your are low on mana (less than 10%). You could always comment this out though.
[CODE lang="ini" title="Wayfarer's Haven Cleric"]
|++++++++++++++++++++++++++++++++
| Macro Information
|++++++++++++++++++++++++++++++++
| A Cleric Macro for Wayfarer's Haven
| Version 1.0
| Have fun and enjoy EverQuest!
|
| Target who you want to have as your Main Assist and start the macro.
|++++++++++++++++++++++++++++++++
#chat tell
#chat group
#turbo 40
#event Follow "#1# tells you, 'Follow'"
#event Stay "#1# tells you, 'Stay'"
#event ZoneType "You can only cast this spell in the outdoors."
#event ACbuff "#1# tells you, 'ACBuff'"
#event HPbuff "#1# tells you, 'HPBuff'"
#event SymbolBuff "#1# tells you, 'Symbol'"
#event ClericHoT "#1# tells you, 'CHoT'"
#event ClericDebuffTimer1Reset "##has been slain##"
#event ClericDebuffTimer1Reset "You gain party experience!!"
#event ClericDebuffTimer2Reset "##has been slain##"
#event ClericDebuffTimer2Reset "You gain party experience!!"
Sub Main
|++++++++++++++++++++++++++++++++
| General Information
|++++++++++++++++++++++++++++++++
/declare HealAtTANK int outer 70
/declare HoTAtTANK int outer 90
/declare HealAtOTHER int outer 80
/declare HealAtSham int outer 70
/declare AssistAt int outer 80
/declare AssistAtDis int outer 100
/declare ManaToNuke int outer 70
/declare UseMount int outer 1
/declare MountItem string outer "Black Rope Bridle"
/declare CompHeal outer "Complete Healing"
/declare CompHealMana int outer "400"
/declare SpellHeal outer "Supernal Light"
/declare SpellHealMana int outer "600"
/declare SpellHoT string outer "Supernal Elixir"
/declare SpellHoTMana int outer "400"
/declare SpellHoTTimer timer outer "0"
/declare ClrACBuff string outer "Hand of Virtue"
/declare ClrHPBuff string outer "Hand of Virtue"
/declare ClrSymbol string outer "Hand of Virtue"
/declare ClrSelfBuff1 string outer "Armor of the Zealot"
/declare ClrSelfBuff2 string outer "Armor of the Zealot"
/declare ClrSelfBuff3 string outer "Armor of the Zealot"
/declare ClericNuke1 string outer "Condemnation"
/declare ClericDebuff1 string outer "Mark of Kings"
/declare ClericDebuffTimer1 timer outer 0
/declare ClericDebuff2 string outer "Mark of the Righteous"
/declare ClericDebuffTimer2 timer outer 0
/declare MainAssist string outer ${Target.CleanName}
/declare ZoneType int outer 0
/declare count_grp int outer
/echo Wayfarer's Haven Cleric Macro has started
/echo Main Assist is ${MainAssist}
/echo Tank healed at ${HealAtTANK}
/echo Others healed at ${HealAtOTHER}
/echo Shamans healed at ${HealAtSham}
|+++++++++++++++++++++++++++++++++
| Main Loop
|+++++++++++++++++++++++++++++++++
:loop
/doevents
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :loop
/call HoT
/call CheckHeals
/call Debuff1
/call Debuff2
/call Attack
/call ManaCheck
/call SelfBuffs
/call Buffs
/goto :loop
/return
|+++++++++++++++++++++++++++++++++
Sub HoT
/if (${Me.Class.ShortName.NotEqual[CLR]}) /return
/for count_grp 0 to ${Group}
/if (${Group.Member[${count_grp}].Class.Name.Equal[Warrior]} || ${Group.Member[${count_grp}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${count_grp}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HoTAtTANK} &&${Me.CurrentMana}>${SpellHoTMana} &&${Group.Member[${count_grp}].Distance}<=100 && ${SpellHoTTimer}==0) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHoT}|gem3 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset SpellHoTTimer 240
}
}
/next count_grp
/return
|+++++++++++++++++++++++++++++++++
Sub CheckHeals
/for count_grp 0 to ${Group}
|+++++++++++++++++++++++++++++++++
| Tank ##check spell you're casting##
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Warrior]} || ${Group.Member[${count_grp}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${count_grp}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtTANK} &&${Me.CurrentMana}>${CompHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${CompHeal}|gem1 -maxtries|3
}
|+++++++++++++++++++++++++++++++++
| Non Tanks
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Cleric]} || ${Group.Member[${count_grp}].Class.Name.Equal[Druid]} || ${Group.Member[${count_grp}].Class.Name.Equal[Beastlord]} || ${Group.Member[${count_grp}].Class.Name.Equal[Wizard]} || ${Group.Member[${count_grp}].Class.Name.Equal[Magician]} || ${Group.Member[${count_grp}].Class.Name.Equal[Necromancer]} || ${Group.Member[${count_grp}].Class.Name.Equal[Monk]} || ${Group.Member[${count_grp}].Class.Name.Equal[Rouge]} || ${Group.Member[${count_grp}].Class.Name.Equal[Bard]} || ${Group.Member[${count_grp}].Class.Name.Equal[Ranger]} || ${Group.Member[${count_grp}].Class.Name.Equal[Enchanter]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtOTHER} &&${Me.CurrentMana}>${SpellHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/squelch /target clear
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHeal}|gem2 -maxtries|3
}
|+++++++++++++++++++++++++++++++++
| Shaman
|+++++++++++++++++++++++++++++++++
/if (${Target.Type.Equal[CORPSE]}) /return
/if (${Group.Member[${count_grp}].Class.Name.Equal[Shaman]}) /if (${Group.Member[${count_grp}].PctHPs}<=${HealAtSham} &&${Me.CurrentMana}>${SpellHealMana} &&${Group.Member[${count_grp}].Distance}<=100) {
/target pc ${Group.Member[${count_grp}].Name}
/delay 3
/casting ${SpellHeal}|gem2 -maxtries|3
}
/next count_grp
/return
|+++++++++++++++++++++++++++++++++
| Debuff 1
|+++++++++++++++++++++++++++++++++
Sub Debuff1
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${ClericDebuffTimer1} != 0) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericDebuff1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt} && ${ClericDebuffTimer1} == 0) {
/casting ${ClericDebuff1}|gem5 -maxtries|3 {
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset ClericDebuffTimer1 2000
/echo ${ClericDebuff1} on ${Target.CleanName} SUCCESS!
/return
}
/if (${Macro.Return.Equal[CAST_RESIST]} || (${Macro.Return.Equal[CAST_CANNOTSEE]}) || (${Macro.Return.Equal[CAST_FIZZLE]}) || (${Macro.Return.Equal[CAST_INTERRUPTED]}) || (${Macro.Return.Equal[CAST_NOTARGET]})) {
/echo Could not cast ${ClericDebuff1} on ${Target.CleanName} UNSUCCESSFUL!
/return
}
}
}
/return
|+++++++++++++++++++++++++++++++++
| Debuff 2
|+++++++++++++++++++++++++++++++++
Sub Debuff2
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${ClericDebuffTimer2} != 0) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericDebuff1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt} && ${ClericDebuffTimer2} == 0) {
/casting ${ClericDebuff2}|gem6 -maxtries|3 {
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/varset ClericDebuffTimer2 2000
/echo ${ClericDebuff2} on ${Target.CleanName} SUCCESS!
/return
}
/if (${Macro.Return.Equal[CAST_RESIST]} || (${Macro.Return.Equal[CAST_CANNOTSEE]}) || (${Macro.Return.Equal[CAST_FIZZLE]}) || (${Macro.Return.Equal[CAST_INTERRUPTED]}) || (${Macro.Return.Equal[CAST_NOTARGET]})) {
/echo Could not cast ${ClericDebuff2} on ${Target.CleanName} UNSUCCESSFUL!
/return
}
}
}
/return
|+++++++++++++++++++++++++++++++++
| Attack Spells
|+++++++++++++++++++++++++++++++++
Sub Attack
/if (${Me.Casting.ID}) /return
/if (${Me.PctMana}<${ManaToNuke}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/assist ${MainAssist}
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${ClericNuke1}]} || ${Target.PctHPs} > ${AssistAt}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/casting ${ClericNuke1}|gem7 -maxtries|3
/delay 2
}
}
/return
|+++++++++++++++++++++++++++++++++
| Mana
|+++++++++++++++++++++++++++++++++
Sub ManaCheck
/if (${UseMount}==1 && ${ZoneType}==0 && !${Me.Mount.ID}) {
/casting ${MountItem}|item
}
/if (${Me.Standing}&&!${Stick.Active}&&!${Me.Mount.ID}&&${Me.PctMana}<100&&${ZoneType}==1) {
/sit on
}
/if (${Me.PctMana} < 10) {
/t ${MainAssist} I have ${Me.PctMana}% mana.
}
/return
|+++++++++++++++++++++++++++++++++
| Self Buffs
|+++++++++++++++++++++++++++++++++
Sub SelfBuffs
/call ClickOffFocus
/if (${Me.Buff[${ClrSelfBuff1}].Duration}<5) {
/target ${Me} PC
/delay 1
/casting ${ClrSelfBuff1}|gem8 -maxtries|3
}
/if (${Me.Buff[${ClrSelfBuff2}].Duration}<5) {
/delay 1
/casting ${ClrSelfBuff2}|gem8 -maxtries|3
}
/if (${Me.Buff[${ClrSelfBuff3}].Duration}<5) {
/delay 1
/casting ${ClrSelfBuff3}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Buffs
|+++++++++++++++++++++++++++++++++
Sub Buffs
/return
|+++++++++++++++++++++++++++++++++
| General Events
|+++++++++++++++++++++++++++++++++
Sub Event_Follow
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Following you
/stick
/return
Sub Event_Stay
/stick off
/tell ${MacroQuest.LastTell} Staying here
/delay 1
/if (!${Me.Sitting}&&!${Stick.Active}&&!${Me.Moving}&&${Me.PctMana}<100) {
/sit on
}
/return
Sub Event_ZoneType
/varset ZoneType 1
/echo Adjusting to indoor zone!
/return
Sub ClickOffFocus
/declare i int local
/for i 1 to 20
/if ( ${Me.Buff[${i}].Name.Find[Khura's Focusing]} || ${Me.Buff[${i}].Name.Find[Focusing of the Seventh]} || ${Me.Buff[${i}].Name.Find[Beta Khura]}) {
/notify BuffWindow buff${Math.Calc[${i}-1].Int} leftmouseup
/next i
/echo Clicking off Focus now. Can now cast ${ClrSelfBuff1}.
}
/return
|+++++++++++++++++++++++++++++++++
| AC Buff
|+++++++++++++++++++++++++++++++++
Sub Event_ACBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrACBuff} on you!
/casting ${ClrACBuff}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| HP Buff
|+++++++++++++++++++++++++++++++++
Sub Event_HPBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrHPBuff} on you!
/casting ${ClrHPBuff}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Symbol Buff
|+++++++++++++++++++++++++++++++++
Sub Event_SymbolBuff
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${ClrSymbol} on you!
/casting ${ClrSymbol}|gem8 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Cleric HoT
|+++++++++++++++++++++++++++++++++
Sub Event_ClericHoT
/if (${Me.Casting.ID} || ${Me.Moving} || ${Me.Combat}) {
/tell ${MacroQuest.LastTell} I am currently busy, try again later.
/return
}
/target ${MacroQuest.LastTell}
/delay 1
/tell ${MacroQuest.LastTell} Casting ${SpellHoT} on you!
/casting ${SpellHoT}|gem3 -maxtries|3
}
/return
|+++++++++++++++++++++++++++++++++
| Cleric Debuff Timer Resets
|+++++++++++++++++++++++++++++++++
Sub Event_ClericDebuffTimer1Reset
/if (${ClericDebuffTimer1}!=0) {
/varset ClericDebuffTimer1 0
}
/return
Sub Event_ClericDebuffTimer2Reset
/if (${ClericDebuffTimer2}!=0) {
/varset ClericDebuffTimer2 0
}
/return
[/CODE]


