cleric ds or viral counted towards the cleric
u are correct pete u have to outdps cleric, which is too much work for PLee imo
|
Controller Macro
| Usage : /macro Controller
| Requirements:
|-spell_routines.inc
|-MQ2MoveUtils
|-MQ2ReachIt
|-MQ2AutoAcceptTrades
|-MQ2AutoGroup
|-MQ2Reward
|-MQ2Exchange
|-----------------------------------------------------------
#Event Dead "You have been slain by #*#"
#Event Dead "You died."
#Event Come "#1# tells #*#'!Come'"
#Event Gate "#1# tells #*#'!Gate'"
#Event Fade "#1# tells #*#'!Fade'"
#turbo 20
#include spell_routines.inc
Sub Main
/declare tank string outer TANKNAMEHERE
/declare cleric string outer CLERICNAMEHERE
/declare HoTTimer timer outer
/if (${Me.Class.Name.Equal[Cleric]}) {
/declare dot1 string outer Mark of the Righteous
/declare dot2 string outer Mark of the Devoted
/declare fastheal string outer Solemn Light Rk. II
/declare promised string outer Promised Restoration
/declare hot string outer Pious Elixir
/declare yaulp string outer Yaulp X Rk. II
/declare stopmana int outer 20
/declare BuffSub int outer 1
/declare BuffSpells int outer 3
/declare BuffSpell1 string outer "Armor of the Solemn"
/declare BuffSpell2 string outer "Blessing of Resolve Rk. II"
/declare BuffSpell3 string outer "Knowledge of the Past III"
/declare BuffSpell4 string outer
/declare BuffSpellName1 string outer "Armor of the Solemn"
/declare BuffSpellName2 string outer "Blessing of Resolve Rk. II"
/declare BuffSpellName3 string outer "Twisted Ring of Madness"
/declare BuffSpellName4 string outer
/declare BuffSpellGem1 string outer gem7
/declare BuffSpellGem2 string outer gem8
/declare BuffSpellGem3 string outer item
/declare BuffSpellGem4 string outer item
/call Cleric
}
/echo Unusable class - ending.
/end
|--------------------------------------------------------------------------------
|Code: Cleric
|--------------------------------------------------------------------------------
Sub Cleric
/echo Starting Cleric Controller...
/declare TempID1 int inner 0
/declare TempID2 int inner 0
/declare assistTimer timer local 0s
/declare currID int local 0
:topCleric
/doevents
/if (${Me.PctMana}<20) /call MedTime
/call ClericBuffs
/assist ${tank}
/if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]} && ${Me.CombatState.NotEqual[COMBAT]}) /sit
/if (!${Target.ID} || ${Target.Type.NotEqual[NPC]} || ${Target.Distance}>150 || ${Target.PctHPs}>98) /goto :topCleric
|--------------------------------------------------------------------------------
|Code: Cleric Combat
|--------------------------------------------------------------------------------
/delay 1s
/stand
/tar ${tank}
/call Cast "${promised}"
:combatCleric
/assist ${tank}
/if (${Me.SpellReady[${yaulp}]}) /call Cast "${yaulp}"
/doevents
/if (!${Target.ID} || ${Target.Type.NotEqual[NPC]} || ${Target.Distance}>150 || ${Target.PctHPs}>98) /goto :topCleric
/if (!${assistTimer} || !${Target.ID} || ${Target.Type.NotEqual[NPC]}) {
/varset currID ${Target.ID}
/assist ${tank}
/delay 2s ${Target.ID}!=${currID}
/varset assistTimer 5s
}
/if (${Target.PctHPs}>10 && ${Me.PctMana}>${stopmana}) {
/if (!${dot1${Target.ID}} && ${Me.SpellReady[${dot1}]}) {
/call Cast "${dot1}"
/if (!${Defined[dot1${Target.ID}]}) /declare dot1${Target.ID} timer outer
/varset dot1${Target.ID} 1m
}
/if (!${dot2${Target.ID}} && ${Me.SpellReady[${dot2}]}) {
/call Cast "${dot2}"
/if (!${Defined[dot2${Target.ID}]}) /declare dot2${Target.ID} timer outer
/varset dot2${Target.ID} 1m
}
}
/call HealGroup
/goto :combatCleric
/return
|--------------------------------------------------------------------------------
|Code: Cleric Check BUffs
|--------------------------------------------------------------------------------
Sub ClericBuffs
/if (!${Me.Buff[Familiar: Emerald Sokokar].ID}) {
/call Cast "Familiar of the Emerald Jungle" item
/delay 5s
}
/if (${Me.Pet.Name.Equal[#CLERIC`s_familiar00]}) /pet get lost
/delay 1s
/for BuffSub 1 to ${BuffSpells}
/if (${Me.Buff[${BuffSpell${BuffSub}}].Duration}<2) {
/target ${Me.Name}
/call Cast ${BuffSpellName${BuffSub}} ${BuffSpellGem${BuffSub}}
}
/next BuffSub
/return
|--------------------------------------------------------------------------------
|Code: Cleric Heal Group
|--------------------------------------------------------------------------------
Sub HealGroup
/if (!${Defined[TempID3]}) /declare TempID3 int outer 0
/declare assistTimer timer local 0s
/declare currID int local 0
/declare i int local 0
/declare j int local 100
/declare k int local
/for i 0 to ${Math.Calc[${Group.GroupSize}-1]}
/echo ${i} ${Group.Member[${i}].PctHPs}
/if (${Group.Member[${i}].PctHPs} < (${j}-1)) {
|/echo less than ${j} - ${i} ${Group.Member[${i}].PctHPs}
/varset j ${Group.Member[${i}].PctHPs}
/varset k ${i}
}
/next i
/if (${j} > 80) {
|/echo ${Group.Member[${k}]} has ${j}% HP
|/echo Not missing enough to heal
/return
}
/echo ${Group.Member[${k}]} has ${j}% HP
/if (${Me.SpellReady["${fastheal}"]}) {
/echo Healing ${Target}
/varset TempID3 ${Target.ID}
/echo Healing ${Target}
/target ID ${Group.Member[${k}].ID}
/delay 2s ${Target.ID}==${Group.Member[${k}].ID}
/echo Healing ${Target}
/call Cast "${fastheal}"
/delay 2s ${Me.Casting.ID}
/delay 3s !${Me.Casting.ID}
/target ID ${TempID3}
/delay 2s ${Target.ID}==${TempID3}
}
/return
|--------------------------------------------------------------------------------
|Code: HP/Mana Upkeep
|--------------------------------------------------------------------------------
Sub MedTime
/if (${Me.State.Equal[Stand]}) /echo Med time...
/sit
:Meditate
/delay 6s
/if (${Me.PctMana}<100) /goto :Meditate
/return
|--------------------------------------------------------------------------------
|Code: Cleric Local Events
|--------------------------------------------------------------------------------
Sub Event_Gate
/fsay Gating OUT!...
/varset TankBuffTimer 0
/varset HasteTimer 0
/gate
/return
Sub Event_Come
/squelch /target pc ${Group.MainTank.Name}
/warp t
/return
#Event rTellHot "#1# tells the group, 'hot'"
Sub Event_rTellHot(string line,string Requester)
/if (${Requester.Left[1].Compare[ ]} < 0) /varset Requester ${Requester.Right[-2].Left[-1]}
/if ((${Me.Gem[${hot}]})&&(${Me.SpellReady[${hot}]})) {
/gsay HoT in ${Spell[${hot}].MyCastTime} secs.
/target ${Requester}
/call Cast "${hot}"
}
/return
#Event rTellHl "#1# tells the group, 'fh'"
Sub Event_rTellHl(string line,string Requester)
/if (${Requester.Left[1].Compare[ ]} < 0) /varset Requester ${Requester.Right[-2].Left[-1]}
/if ((${Me.Gem[${fastheal}]})&&(${Me.SpellReady[${fastheal}]})) {
/target ${Requester}
/declare TempID4 int inner 0
/varset TempID4 ${Target.ID}
/call Cast "${fastheal}"
/target id ${TempID4}
}
/return
#Event RCReq "#1# tells the group, 'rc'"
Sub Event_RCReq(string line,string Requester)
/alt activate 153
/delay 4s
/return
Sub Event_Dead
/gsay I'm Dead... Poop!
:waitforrez
/delay 10s ${Window[ConfirmationDialogBox].Open}
/if (!${Window[ConfirmationDialogBox].Open}) /goto :waitforrez
/gsay Accepting Rez...
/nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
/if (${Window[RespawnWnd].Open}) {
/nomodkey /notify RespawnWnd RW_OptionsList listselect 2
/delay 1s
/nomodkey /notify RespawnWnd RW_SelectButton leftmouseup
/delay 2s
}
/call MedTime
/return
Sub Event_Camp
/fsay Camping OUT!...
/dismount
/camp
/endmacro
Sub Event_Fade
/fade
/return