ss44
Active member
- Joined
- Sep 13, 2005
- RedCents
- 31¢
UPDATED CODE 12-15-05:
Added sub for if you are getting the shit kicked out of you. Fixed the buff problem, I think. PLEASE someone try this out lol. I dont have much time anyone to test it on my own, but a couple days ago it worked fine for me.
Please leave comments at the bottom, thanks.
Necro Mac.
Cleric Macro.
DO NOT LEAVE THIS AFK, THERE ARE STILL ISSUES THAT NEED TO BE WORKED
Added sub for if you are getting the shit kicked out of you. Fixed the buff problem, I think. PLEASE someone try this out lol. I dont have much time anyone to test it on my own, but a couple days ago it worked fine for me.
Please leave comments at the bottom, thanks.
Necro Mac.
Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~FHNecro.mac~~~~~~~~~~~~~~~~ ~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~Written by SS44~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~For RedGuides~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|Spells:
|1:Magic DOT
|2:Fire Dot
|3:Fire Dot
|4:FD
|5:Nuke1
|6:Lich / Rune / Shielding
|7:Pet Haste
|8:Dis Dot 1 / Twitch 1
|9:Dis Dot 2 / Twitch 2
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
#turbo
#include spell_routines.inc
#chat group
#chat tell
#event Dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event Invite "#*#invites you to join#*#"
#event Lich_Off "The cold hands release your soul, for now.#*#"
#event Guard_Off "The shadow fades away.#*#"
#event Pet_Haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event Zoned "#*#You have entered Guild Lobby#*#"
#event Dzquit "#*#You have entered Nedaria's Landing#*#"
#event Rune_Off "You can feel pain again.#*#"
#event FD_fail "#*#has fallen to the ground.#*#"
#event PoK "You have entered Guild Lobby."
#Event Twitch_On "#*#TwitchOn#*#"
#Event Twitch_Off "#*#TwitchOff#*#"
#Event Twitch_Off "#*#Stop Twitching#*#"
#event Being_Hit "#*#your magical skin ABSORBES the blow#*#"
#event Being_Hit "#*#bites YOU for#*#"
#event Being_Hit "#*#bites YOU for#*#"
#event Being_Hit "#*#kicks YOU for#*#"
#event Being_Hit "#*#bashes YOU for#*#"
#event Dot1_Off "#*#Your Dark Nightmare spell has worn off of#*#"
#event Dot2_Off "#*#Your Pyre of Mori spell has worn off of#*#"
#event Dot3_Off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event Dot1_Resist "#*#resisted your Dark Nightmare spell.#*#"
#event Dot2_Resist "#*#resisted your Pyre of Mori spell.#*#"
#event Dot3_Resist "#*#resisted your Funeral Pyre of Kelador spell.#*#"
#Event Mob_Died "#*#been slain by#*#"
#Event Mob_Died "#*#You have slain#*#"
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|-- Destroys Copper if you have more than the given amount! 0=disable
#define DESTROY_COPPER_IF_ABOVE 1
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Main
|~~~~~~~~~~~~~~~~~~~~~~~~~Dots~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
/declare Dot1 outer "Dark Nightmare"
/declare Dot2 outer "Pyre of Mori"
/declare Dot3 outer "Funeral Pyre of Kelador"
/declare Nuke1 outer "Acikin"
|~~~~~~~~~~~~~~~~~~~~~~~~~Buffs~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
/declare Rune outer "Dull Pain"
/declare Guard outer "Shadow Guard"
/declare Lich outer "Seduction of Saryrn"
/declare Twitch1 string outer "Sedulous Subversion"
/declare Twitch2 string outer "Covetous Subversion"
/declare FD string outer "Death Peace"
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~Pet Spells~~~~~~~~~~~~~~~~~~~~~~~~~~
/declare Pet outer "Lost Soul"
/declare Pethaste outer "Glyph of Darkness"
|~~~~~~~~~~~~~~~~~~~~~~~~Variables~~~~~~~~~~~~~~~~ ~~~~~~~~~~
/declare diditresist int global
/varset diditresist 0
/declare Twitching int global
/varset Twitching 0
/declare LootAllItems int outer 1
/declare LootSlot int outer 0
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|We are waiting for the hotkey to start the macro
:waitforit
/doevents
/doevents
/goto :waitforit
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Indz
:begin
/delay 1s
/warp loc -599.12 212.05 6.76
/delay 1s
/call GetTarget
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Twitch_On
/rt
If (${Twisting}==0) {
/if (!${Target.ID}) {
/echo is not in zone for me to Twitch!
/r Im not even in the same zone as you!
/return
}
/delay 2
/if (${Target.Distance}<100) {
/rt
:Twitch_Loop
/doevents
If (${Twisting}==0) {
/call cast ${Twitch1} gem8
/call cast ${Twitch2} gem9
/delay 5
/goto :Twitch_Loop
}
/goto :end
}
}else{
/t ${ChatSender} Your oor sry.
}
}
:end
/varset Twitching 0
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Twitch_Off
/varset Twitching 1
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub GetTarget
:loopstart
/delay 1s
/call GM_Check
/if (${Me.PctMana}<=20) /call Med
/if (${Me.PctHPs}<=20) /call Succor
/if (${Me.PctHPs}<=50) /g Heal Me
/if (${Me.PctHPs}<=40) /potionbelt activate 2
/if (${Target.Level}>67) /tar npc next
/if (${Target.Distance}>220) /keypress esc
/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
/Pet Attack
/Call Attack
/doevents
/delay 10
/goto :loopstart
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Med
/echo Need mana, medding
/warp loc -599.12 212.05 6.76
/if (${Me.SpellReady[${Lich}]}) {
/stand on
/call cast ${Lich} gem1
/delay 3s
}
/sit on
:MedLoop
/if (${Me.PctHPs}<=50) /g Heal Me
/if (${Me.PctMana}>=50) /return
/goto :MedLoop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Rune_Off
/if (${Me.SpellReady[${Rune}]}) {
/stand on
/call cast ${Rune} gem8
/delay 4s
}
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Succor
/warp loc 245 -33 0
/stand on
/delay 10s
/fade
/delay 60s
/call Regen
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Regen
/sit on
:regenloop
/potionbelt activate 1
/if (${Me.PctHPs} == 100) /return
/goto :regenloop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub GM_Check
/if (${Spawn[gm].ID}) {
/echo Gm detected
/beep
/beep
/beep
/q
/endmac
/unload
/q
}
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|This next bit removes you from the expdition if you still have it after
| you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen.
Sub Dzquit
/stand on
/doevents
/call GM_Check
/disband
/dzremove PLAYERNAME
/dzremove PLAYERNAME
/delay 2s
/target Eldros Danmor
/warp target
/delay 2s
/say interested in visiting
/delay 3s
/target Nideno Eliagy
/warp target
/delay 2s
/say Forgotten halls
/delay 2s
/doevents
/warp loc 1544 -665 94
/face loc 1540, -675
/look 0
/doortarget
/delay 10s
/keypress u
/keypress u
/delay 1s
/target clear
/call Destroy_Silver
/call Indz
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub PoK
/echo sorry i don't know how or why but you died.
/delay 45s
/sit on
/camp desktop
/q
/endmacro
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Nuke1
/if (${Me.SpellReady[${Nuke1}]}) {
/call cast ${Nuke1} gem4
}
/if (${Me.SpellReady[${FD}]}) {
/call cast ${FD} Gem4
}
/delay 5s
/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
|LOOT SUB
Sub Mob_Died
/doevents
/stand on
/call GMcheck
/keypress forward
/delay 1s
/varset diditresist 0
/squelch /declare LootSlot int inner 0
/declare LootCheck int inner 0
/declare LootTotal int inner 0
/target npc corpse radius 200
:MovementLoop
/face fast nolook
/if (${Int[${Target.Distance}]}>13) /keypress forward hold
/if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) /keypress forward
/if (${Int[${Target.Distance}]}<9) /keypress back
/if (${Int[${Target.Distance}]}>13) /goto :MovementLoop
/keypress forward
/keypress back
/delay 5
/loot
/delay 5
/if (!${Corpse.Items}) {
/echo NO LOOT!
/notify LootWnd DoneButton leftmouseup
/call Destroy_Copper
/delay 1s
/call Check_Anchor
/return
}
/varset LootTotal ${Corpse.Items}
/for LootSlot 1 to ${LootTotal}
/itemnotify loot${LootSlot} leftmouseup
/delay 5
/if (${LootAllItems}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/autoinventory
/autoinventory
/delay 5
} else {
/for LootCheck 1 to ${ItemsToLoot.Size}
/if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/autoinventory
/autoinventory
/delay 5
}
/next LootCheck
}
/if (${Cursor.ID}) {
/echo Destroying a ${Cursor.Name}...
/destroy
/destroy
/delay 5
}
/next LootSlot
/delay 5
/notify LootWnd DoneButton leftmouseup
/delay 2
/call Check_Anchor
/call Buffs
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Check_Anchor
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call Move_To_Anchor
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Move_To_Anchor
/call Indz
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Destroy_Copper
/squelch /windowstate InventoryWindow open
/shift /notify InventoryWindow IW_Money3 leftmouseup
/delay 1s ${Cursor.ID}>0
/destroy
/cleanup
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Pet_Haste
/if (${Me.Pet.ID}) {
/if (!${Me.PetBuff[Glyph of Darkness]} {
/stand on
/call PBuffShieldHaste
/assist
}
} else {
/echo You dont have a pet!
/call cast ${Pet} Gem5
}
/echo Shrinking pet twice!!!
/call cast ${Shrink} Gem5
/delay 10
/call cast ${Shrink} Gem5
/pet taunt on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub PBuffShieldHaste
:DoH
/if (${Me.Pet.ID}) {
/stand on
/delay 2s
/call Cast ${Pethaste} gem7 15s
}
} else {
/echo You dont have a pet!
/call cast ${Pet} Gem5
/goto :DoH
}
/echo Shrinking pet twice!!!
/call cast ${Shrink} Gem5
/delay 10
/call cast ${Shrink} Gem5
/pet taunt on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Buffs
/if (!${Me.Buff[Seduction of Saryrn].ID}) {
/stand on
/call cast ${Lich} gem6
/delay 5s
}
/if (!${Me.Buff[Force Shield].ID}) {
/call cast ${Rune} gem6
/delay 5s
}
/if (!${Me.Buff[Shadow Guard].ID}) {
/call cast ${Shielding} gem6
/delay 5s
}
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot1_Off
/call Dot1
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot2_Off
/call Dot2
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot3_Off
/call Dot3
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot1
:Main_DoT_Loop
/if (${Me.SpellReady[${Dot1}]}) {
/stand on
/delay 1s
/call cast ${Dot1} gem1
/doevents
}
/if (${diditresist}==1) /goto :Main_Dot_Loop
/varset diditresist 0
/echo ${Dot1} is going, on to next spell!
/call cast ${FD} Gem4
/delay 7s
/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot2
:Main_DoT_Loop
/if (${Me.SpellReady[${Dot2}]}) {
/stand on
/delay 1s
/call cast ${Dot2} gem1
/doevents
}
/if (${diditresist}==1) /goto :Main_Dot_Loop
/varset diditresist 0
/echo ${Dot2} is going, on to next spell!
/call cast ${FD} Gem4
/delay 7s
/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot3
:Main_DoT_Loop
/if (${Me.SpellReady[${Dot3}]}) {
/stand on
/delay 1s
/call cast ${Dot3} gem1
/doevents
}
/if (${diditresist}==1) /goto :Main_Dot_Loop
/varset diditresist 0
/echo ${Dot3} is going, on to next spell!
/call cast ${FD} Gem4
/delay 7s
/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Attack
/delay 15
:attackstart
/if (${Target.PctHPs}<=97 && ${Target.PctHPs}>=94) /call Dot1
/if (${Target.PctHPs}<=75 && ${Target.PctHPs}>=70) /call Dot2
/if (${Target.PctHPs}<=55 && ${Target.PctHPs}>=50) /call Dot3
/if (${Target.PctHPs}<=35 && ${Target.PctHPs}>=30) /call Dot1
/if (${Target.PctHPs}<=25 && ${Target.PctHPs}>=10) /call Nuke1
/goto :attackstart
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot1_Resist
/call Dot1
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot2_Resist
/call Dot2
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Dot3_Resist
/call Dot3
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub FD_Fail
/stand on
/if (${Me.SpellReady[${FD}]}) {
/call cast ${FD} Gem4
}
/doevents
/delay 5s
/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Being_Hit
/call FD_Fail
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Lich_Off
/stand on
/if (!${Me.Buff[Seduction of Saryrn].ID}) {
/call cast ${Lich} gem6
}
/delay 5s
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Sub Guard_Off
/stand on
/if (!${Me.Buff[Shadow Guard].ID}) {
/call cast ${Guard} gem6
}
/delay 5s
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
Cleric Macro.
Rich (BB code):
#Event GotHit "#1# #*# YOU for#*#"
#Event MobDead "#*#You have slain#*#"
#Event MobDead "#*#has been slain by#*#"
#Event DamageShield "#1# was burned#*#"
#Event DamageShield "#1# was pierced by#*#"
#Event DamageShield "#1# was tormented#*#"
#Event Zoned "#*#You have entered#*#"
#Event ImDead "You have been slain by#*#"
#Chat Chat
#Chat Tell
#Chat Group
#include spell_routines.inc
#include wait4rez.inc
#include buffbeg.inc
|#include irc.inc
Sub Main
|------------READ THIS SECTION AND EDIT IF NEEDED-----------|
| /declare MasterList string outer "IRCMASTER"
| /declare MasterOnly outer TRUE
|# Calling IRC Declares and joining channel...
| /call IRCDeclares
| /declare mychannel string outer healsl:sl
/declare DEBUG outer FALSE
/declare DEBUG2 outer FALSE
/declare Verbose outer FALSE
/declare MoKed outer FALSE
/declare autohealmode int outer 3
/declare lootleft int outer 0
/declare healspellrange int outer 100
/declare patchhealrange int outer 200
/declare hotspellrange int outer 100
/declare usegroupheal int outer 1
/declare grouphealrange int outer 70
/declare usedivarb int outer 1
/declare healafterdivarb int outer 0
/declare announce int outer 1
/declare autosit int outer 1
/declare distancetosit int outer 40
/declare autointerrupt int outer 1
/declare onlyhealfd int outer 1
/declare interrupt2healself int outer 1
/declare interrupt2healselfhp int outer 50
/declare noInvis int outer 1
/declare defaultstophealpoint int outer 80
/declare healpetmode int outer 0
/declare pethealpoint int outer 65
/declare manatohealpet int outer 25
/declare pethealspell string outer Complete Healing
/declare pethealspellrange int outer 100
/declare followid int outer
/declare meleeClasses string outer "Warrior/Shadow Knight/Paladin"
/declare casterClasses string outer "Cleric/Druid/Enchanter/Wizard/Magician"
/declare dpsClasses string outer "Rogue/Monk/Beastlord/Berserker"
/declare canniClasses string outer "Necromancer/Shaman"
| Tweak Heals Here - tankhealpoint is for War/Pal/SK other
| than MT, casterhotpoint and casterpatchpoint refer to
| wiz/mag/enc/dru, necshmpatchpoint refers to necros and
| shamans, defaultpatchpoint refers to all other classes.
/declare selfhealpoint int outer 70
/declare dacastpoint int outer 29
/declare divarbpoint int outer 25
/declare interrupt2divarb int outer 12
/declare tankhealpoint int outer 65
/declare casterhotpoint int outer 85
/declare casterpatchpoint int outer 60
/declare necshmpatchpoint int outer 60
/declare defaultpatchpoint int outer 70
/declare patchheal string outer Pious Remedy
/declare patchhealgem int outer 1
/declare healspell string outer Complete Healing
/declare healspellgem int outer 2
/declare hotspell string outer Pious Elixir
/declare hotspellgem int outer 3
/declare groupheal string outer Word of Vivification
/declare grouphealgem int outer 4
/declare daspell string outer Divine Barrier
/declare daspellgem int outer 5
/declare yaulpspell string outer Yaulp VII
/declare yaulpspellgem int outer 6
/declare mitigationspell string outer Panoply of Vie
/declare mitigationspellgem int outer 7
| /declare selfbuff string outer Armor of the Pious
| /declare selfbuffgem int outer 8
/declare grouplonghpbuff string outer Hand of Conviction
/declare grouplonghpbuffgem int outer 9
/declare nukeone string outer Reproach
/declare nuketwo string outer Order
/declare stunone string outer Sound of Divinity
/declare stuntwo string outer Shock of Wonder
/declare spellhaste string outer Blessing of Devotion
/declare acbuff string outer Ward of Valiance
/declare longhpbuff string outer Conviction
/declare singlesymbuff string outer Symbol of Balikor
/declare groupsymbuff string outer Balikor's Mark
/declare spellhastebuff string outer Blessing of Devotion
/declare rgcspell string outer Remove Greater Curse
| ############ Self Buff List.
| /declare SpellSelfBuff[2] string outer
| /varset SpellSelfBuff[1] "${selfbuff}"
| /varset SpellSelfBuff[2] "${spellhaste}"
|**---------------------TrickyDA Config---------------------|
The following are HP buffs cleric will click off, in order,
to get above 40% HP and avoid low HP aggro. Clr will then
click off DA and resume duties, beg new buffs, etc. To
enable, set trickyda to 1, 0 will disable
|---------------------------------------------------------**|
/declare trickyda int outer 1
/if (${trickyda}==1) {
/declare intcount int outer 0
/declare trickybuff[20] string outer
/varset trickybuff[1] Virtue
/varset trickybuff[2] Hand of Virtue
/varset trickybuff[3] Conviction
/varset trickybuff[4] Hand of Conviction
/varset trickybuff[5] Focus of Soul
/varset trickybuff[6] Focus of the Seventh
/varset trickybuff[7] Wunshi's Focusing
/varset trickybuff[8] Talisman of Wunshi
/varset trickybuff[9] Protection of the 9
/varset trickybuff[10] Blessing of the Nine
/varset trickybuff[11] Steeloak Skin
/varset trickybuff[12] Blessing of Steeloak
/varset trickybuff[13] Symbol of Kazad
/varset trickybuff[14] Kazad`s Mark
/varset trickybuff[15] Symbol of Balikor
/varset trickybuff[16] Balikor's Mark
/varset trickybuff[17] Brell's Stalwart Shield
/varset trickybuff[18] Brell's Brawny Bulwark
/varset trickybuff[19] Spiritual Vigor
/varset trickybuff[20] Spiritual Vitality
}
|-------------------End TrickyDA Config---------------------|
|------------------------END EDITING------------------------|
/declare MovingCamp outer FALSE
/declare Following outer FALSE
/declare StaticCamp outer FALSE
/declare askforbuffs outer TRUE
/declare HomeX int outer ${Me.X}
/declare HomeY int outer ${Me.Y}
/declare bbtimer timer outer 0
/declare sbtimer timer outer 0
/declare healpct int outer 50
/declare tanknameid int outer 0
/declare minorhurt int outer 0
/declare majorhurt int outer 0
/declare worsthurtid int outer 0
/declare worsthp int outer 100
/declare gmember int outer 0
/declare worsthurt string outer NULL
/declare worstclass string outer NULL
/declare nohotforua string outer NoOne
/declare nohotforub string outer NoOne
/declare nohotforuc string outer NoOne
/declare nohotforud string outer NoOne
/declare tankname string outer ${Target}
/declare DefaultMT string outer YOURTANK
/declare tankclass string outer
/declare rodwait int outer 0
/declare pallycount int outer 0
/declare stophealpoint int outer ${defaultstophealpoint}
/declare oomspam int outer 1
/declare lomspam int outer 1
/declare duckspam int outer 0
/declare duckfdspam int outer 1
/declare duckselfspam int outer 1
/declare nomtspam int outer 1
/declare ghealhurtcount int outer 0
/declare divarboor int outer 0
/declare aetime int outer 0
/declare EpicTimer timer outer 0
/join ${mychannel}
/if (!${Target.ID} && ${Spawn[pc ${DefaultMT}].ID}) {
/varset tanknameid ${Spawn[pc ${DefaultMT}].ID}
/varset tankclass ${Spawn[pc ${DefaultMT}].Class.Name}
} else {
/varset tanknameid ${Target.ID}
/varset tankclass ${Target.Class.Name}
}
/if (${Defined[Param0]}) {
/varset healpct ${Param0}
} else {
/echo No Heal% specified, defaulting to 60%
}
/if (!${Defined[Param1]}) {
/echo Usage: /mac AFCleric % healspell
/echo Example: /mac AFCleric 40 Complete Heal
/echo Defaulting to ${healspell} at ${healpct}%
} else {
/if (!${Defined[Param2]}) {
/varset healspell ${Param1}
} else /if (!${Defined[Param3]}) {
/varset healspell ${Param1} ${Param2}
} else /if (!${Defined[Param4]}) {
/varset healspell ${Param1} ${Param2} ${Param3}
} else {
/varset healspell ${Param1} ${Param2} ${Param3} ${Param4}
}
}
/echo AFCleric Active, running in Autohealmode ${autohealmode}
/echo Casting ${healspell} on ${tankname} at ${healpct}% HP
/if (${autohealmode}==0) /echo ONLY ${tankname} will be healed
/if (${autohealmode}==1) /echo ONLY ${tankname} and myself will be healed
/if (${autohealmode}==2) /echo ${tankname}, myself and my group will be healed
/if (${autohealmode}==3) /echo ${tankname} and myself will be healed before the rest of the group
/call BuffBegDeclares
/call MemSpells
/if (!${InvSlot[charm].Item.Name.Length} && !${InvSlot[chest].Item.Name.Length} && !${InvSlot[head].Item.Name.Length} ) /call Event_ImDead
:tankwatchloop
/if (${Spawn[${tanknameid}].Name.NotEqual[${tankname}]}) /varset tanknameid 0
/if (!${Spawn[${tanknameid}].ID}) /if (${Spawn[${tankname}].ID}) {
/if (${SpawnCount[${tankname} ${tankclass}]}==1) {
/varset tanknameid ${Spawn[${tankname} ${tankclass}].ID}
/echo ${Spawn[${tankname} ${tankclass}].Name} is the designated MT and has ID# ${tanknameid}
}
/if (${SpawnCount[${tankname} ${tankclass}]}>1) {
/if (${SpawnCount[pc ${tankname} ${tankclass}]}==1) {
/beep
/varset tanknameid ${Spawn[pc ${tankname} ${tankclass}].ID}
/echo Defaulting to PC ${Spawn[pc ${tankname} ${tankclass}].Name} as MT. If incorrect, please restart macro
} else {
/beep
/echo Need to restart macro to correctly identify the MT
}
}
}
/if (${Spawn[${tanknameid}].ID}) /if (${Spawn[${tanknameid}].Type.Equal[Corpse]}) {
/if (${SpawnCount[pc ${tankname} ${tankclass}]}==1) {
/varset tanknameid ${Spawn[pc ${tankname ${tankclass}}].ID}
/echo ${Spawn[pc ${tankname} ${tankclass}].Name} is MT and has ID# ${tanknameid}. If incorrect, please restart macro
}
}
/if ((!${Target.ID})||(${Target.ID}!=${tanknameid})) {
/if (${Spawn[${tanknameid}].ID}) /if (${Spawn[${tanknameid}].Type.NotEqual[Corpse]}) {
/if (${DEBUG}) /echo Target 1
/if (${DEBUG}) /echo Targeting id ${tanknameid}, ${Spawn[${tanknameid}].CleanName}
/target id ${tanknameid}
/delay 6 ${Target.ID}==${tanknameid}
}
}
/if (!${Spawn[${tanknameid}].ID}) {
/if (${nomtspam}==1) {
/e Warning No Designated MT is available
/timed 300 /varset nomtspam 1
/varset nomtspam 0
}
}
/if ((${Me.PctMana}<=20)&&(${announce}==1)&&(${lomspam}==1)) {
/g ${Me.PctMana}m
/varset lomspam 0
/timed 300 /varset lomspam 1
}
/if ((${Me.PctMana}<=7)&&(${announce}==1)&&(${oomspam}==1)) {
/g oom
/varset oomspam 0
/timed 300 /varset oomspam 1
/call MedTime
}
/if (${GameState.Equal[CHARSELECT]}) /end
/if (${Target.ID}==${tanknameid}) {
/varcalc stophealpoint ${healpct}*1.1
/if (${Target.Distance} <= ${patchhealrange} && ${Target.PctHPs} <= ${healpct}*.7 && ${Target.Type.NotEqual[corpse]}) {
/if (${announce}==1) /g Casting "${patchheal}" on %T
/call Cast "${patchheal}" gem2 1s CheckHP
/delay 15 ${Me.SpellReady[${patchheal}]}
}
/if (${Target.Distance} <= ${healspellrange} && ${Target.PctHPs}<=${healpct} && ${Target.PctHPs} >= ${healpct}*.7) {
/if (${announce}==1) /g Casting ${healspell} on %T
/call Cast "${healspell}" gem1 1s CheckHP
/delay 15 ${Me.SpellReady[${healspell}]}
}
/varset stophealpoint ${defaultstophealpoint}
/doevents
}
/if ((${autosit}>=1)&&(${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) {
/if ((${Me.PctMana}>98)||(${Me.PctHPs}<=90)) {
/if (${DEBUG2}) /echo Stand 4
/stand
}
}
/if (${autosit} && ${Me.Sitting} && !${Window[SpellBookWnd].Open}) {
/if (${NearestSpawn[NPC].Distance3D} <= ${distancetosit}) {
/if (${DEBUG2}) /echo Stand 5
/stand
}
}
/if (${autohealmode}==0) {
/doevents
/goto :tankwatchloop
}
/if ((${autohealmode}>=1)&&(${Me.PctHPs}<=${selfhealpoint})) /call Healself
/if (${autohealmode}>=2) {
/if ((${Target.PctHPs}>${healpct})||(${Target.Distance}>${healspellrange})||(${Target.PctHPs}<=1)||(!${Target.ID})||(${Target.ID}!=${tanknameid})) {
/call Healgroup
}
}
/if ((${autohealmode}<2)&&(${Me.PctHPs}>${selfhealpoint})&&(${Me.PctMana}<=98)) /call MedTime
/doevents
/if (!${bbtimer} && ${askforbuffs} && ${NearestSpawn[npc].Distance} > ${distancetosit}) {
/call Buffbeg
/varset bbtimer 2m
}
/if (${NearestSpawn[npc].Distance} > ${distancetosit} && !${sbtimer}) /call BuffSelf
/goto :tankwatchloop
/return
Sub Healself
/if (${Me.PctHPs}>${selfhealpoint}) /return
/if (${Me.CurrentMana} < ${Spell[${patchheal}].Mana}) {
/if (${Verbose}) /echo No mana to heal myself, bummer.
/return
}
/varcalc stophealpoint ${selfhealpoint}+5
/if (!${Target.ID} || ${Target.PctHPs} >= ${healpct}*1.1 || ${Target.PctHPs} <= 1 || ${Target.ID}!=${tanknameid}) {
/if (${Me.PctHPs} <= ${selfhealpoint} && ${Me.PctHPs} > ${dacastpoint}) {
/if (${DEBUG}) /echo Target 2
/target myself
/delay 6 ${Target.Name.Equal[${Me}]}
/if (${Target.Name.Equal[${Me}]}) {
/if (${announce}==1) /g Casting ${patchheal} on %T
/call Cast "${patchheal}" gem2 1s CheckHP
/delay 15 ${Me.SpellReady[${patchheal}]}
}
}
/if (${Me.PctHPs} <= ${dacastpoint} && ${Me.SpellReady[${daspell}]}) {
/if (${announce}==1) /g Casting DA!! <<WARNING>> DA!! No Heals for 18 SECONDS
:retryda
/call Cast "${daspell}"
/delay 1
/if (${Macro.Return.Equal[CAST_INTERRUPTED]}) /goto :retryda
/if ((${trickyda}==1)&&(${Me.Buff[${daspell}].ID})) /call TrickyDA
:dawait
/if (${Me.Buff[${daspell}].ID}) {
/delay 1s !${Me.Buff[${daspell}].ID}
/varset stophealpoint ${defaultstophealpoint}
/doevents
/goto :dawait
}
}
}
/if (${Me.PctHPs} <= ${selfhealpoint}*0.7) {
/if (${DEBUG}) /echo Target 3
/target myself
/delay 6 ${Target.Name.Equal[${Me}]}
/if (${Target.Name.Equal[${Me}]}) {
/if (${announce}==1) /g Casting ${patchheal} on %T
/varcalc stophealpoint ${selfhealpoint}+5
/call Cast "${patchheal}" gem2 1s CheckHP
/delay 15 ${Me.SpellReady[${patchheal}]}
}
}
/varset stophealpoint ${defaultstophealpoint}
/return
Sub Healgroup
:healgroup
/varset worsthurt NULL
/varset worsthp 100
/varset worstclass NULL
/varset minorhurt 0
/varset majorhurt 0
/varset ghealhurtcount 0
/for gmember 0 to ${Group.Members}
/if (${onlyhealfd}==0) {
/if (${Group.Member[${gmember}].Distance}<=${patchhealrange}) {
/if (${Group.Member[${gmember}].PctHPs}<=${worsthp}) {
/varset worsthurt ${Group.Member[${gmember}].Name}
/varset worsthurtid ${Group.Member[${gmember}].ID}
/varset worsthp ${Group.Member[${gmember}].PctHPs}
/varset worstclass ${Group.Member[${gmember}].Class.Name}
}
}
}
/if (${onlyhealfd}==1) {
/if (${Group.Member[${gmember}].Distance}<=${patchhealrange}) {
/if ((${Group.Member[${gmember}].Class.Name.NotEqual[Monk]})&&(${Group.Member[${gmember}].Class.Name.NotEqual[Necromancer]})&&(${Group.Member[${gmember}].PctHPs}<=${worsthp})) {
/varset worsthurt ${Group.Member[${gmember}].Name}
/varset worsthurtid ${Group.Member[${gmember}].ID}
/varset worsthp ${Group.Member[${gmember}].PctHPs}
/varset worstclass ${Group.Member[${gmember}].Class.Name}
}
/if ((${Group.Member[${gmember}].Class.Name.Equal[Monk]})||(${Group.Member[${gmember}].Class.Name.Equal[Necromancer]})) {
/if ((${Group.Member[${gmember}].State.Equal[feign]})&&(${Group.Member[${gmember}].PctHPs}<=${worsthp})) {
/varset worsthurt ${Group.Member[${gmember}].Name}
/varset worsthurtid ${Group.Member[${gmember}].ID}
/varset worsthp ${Group.Member[${gmember}].PctHPs}
/varset worstclass ${Group.Member[${gmember}].Class.Name}
}
}
}
}
/if ((${Group.Member[${gmember}].Distance}<=${grouphealrange})&&(${Group.Member[${gmember}].PctHPs}<=85)) /varcalc ghealhurtcount ${ghealhurtcount}+1
/if ((${Group.Member[${gmember}].PctHPs}<=85)&&(${Group.Member[${gmember}].PctHPs}>=60)) /varcalc minorhurt ${minorhurt}+1
/if ((${Group.Member[${gmember}].PctHPs}<=60)&&(${Group.Member[${gmember}].PctHPs}>=1)) /varcalc majorhurt ${majorhurt}+1
/next gmember
/if (${autohealmode}==3) {
/if ((!${Target.ID})||(${Target.Name.NotEqual[${tankname}]})) /if (${Spawn[${tanknameid}].ID}) {
/if (${DEBUG}) /echo Target 4
/target id ${tanknameid}
/delay 6 ${Target.ID}==${tanknameid}
/delay 1
/if ((${Target.ID}==${tanknameid})&&(${Target.PctHPs}<=${healpct})&&(${Target.Distance}<=${healspellrange})) /return
}
/if (${Me.PctHPs}<=${selfhealpoint}) /return
}
/if ((${majorhurt}==0)&&(${minorhurt}==0)) {
/if (${Spawn[${tanknameid}].ID}) {
/if (${DEBUG}) /echo Target 5
/if (${DEBUG}) /echo Targeting id ${tanknameid}, ${Spawn[${tanknameid}].CleanName}
/target id ${tanknameid}
/delay 6 ${Target.ID}==${tanknameid}
/delay 1
}
/if (((${Target.ID}==${tanknameid})&&(${Target.PctHPs}>${healpct}))||(!${Spawn[${tanknameid}].ID})||(${Spawn[${tanknameid}].Type.Equal[corpse]})) {
/if ((${healpetmode}>0)&&(${Me.PctMana}>=${manatohealpet})) /call HealPet
/if (${Me.PctMana}<=98) /call MedTime
}
/doevents
/return
}
/if (${usedivarb} && ${worsthp} <= ${divarbpoint}) /call Divarbcast
/if (${majorhurt}+${minorhurt} >= 3 && ${usegroupheal}==1) {
/if (${announce}==1) /g Inc Grp Heal, get close
/call Cast "${groupheal}" gem4 1s
/delay 15 ${Me.SpellReady[${groupheal}]}
/doevents
/return
}
/if (${worsthurtid}==${tanknameid}) /return
/if (${worsthurtid}==${Me.ID}) {
/call Healself
/doevents
/return
}
/if (${meleeClasses.Find[${worstclass}]}) {
/if (${worsthp} <= ${tankhealpoint} && ${worsthp} >= ${tankhealpoint}*.7 && ${majorhurt} <= 1 && ${minorhurt} <= 1) {
/if (${DEBUG}) /echo Target 6
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varcalc stophealpoint ${tankhealpoint}+5
/if (${announce}==1) /g Casting ${healspell} on %T
/call Cast "${healspell}" gem1 1s CheckHP
/delay 15 ${Me.SpellReady[${healspell}]}
/varset stophealpoint ${defaultstophealpoint}
/doevents
/return
}
/if (${worsthp}<=${tankhealpoint}) {
/if (${DEBUG}) /echo Target 7
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varcalc stophealpoint ${tankhealpoint}+5
/if (${announce}==1) /g Casting ${patchheal} on %T
/call Cast "${patchheal}" gem2 1s CheckHP
/delay 15 ${Me.SpellReady[${patchheal}]}
/varset stophealpoint ${defaultstophealpoint}
/doevents
/return
}
} else /if (${casterClasses.Find[${worstclass}]}) {
/if ((${worsthp}<=${casterhotpoint})&&(${worsthp}>${casterpatchpoint})) {
/if (${worsthurt.Equal[${nohotforua}]} || ${worsthurt.Equal[${nohotforub}]} || ${worsthurt.Equal[${nohotforuc}]} || ${worsthurt.Equal[${nohotforud}]}) /return
/if (${nohotforua.Find[NoOne]}) {
/if (${DEBUG}) /echo Target 8
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varset nohotforua ${Target.Name}
/if (${announce}==1) /g Casting ${hotspell} on %T
/varcalc stophealpoint ${casterhotpoint}+5
/call Cast "${hotspell}" gem3 1s CheckHP
/timed 200 /varset nohotforua NoOne
/delay 15 ${Me.SpellReady[${hotspell}]}
} else /if (${nohotforub.Find[NoOne]}) {
/if (${DEBUG}) /echo Target 9
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varset nohotforub ${Target.Name}
/if (${announce}==1) /g Casting ${hotspell} on %T
/varcalc stophealpoint ${casterhotpoint}+5
/call Cast "${hotspell}" gem3 1s CheckHP
/timed 200 /varset nohotforub NoOne
/delay 15 ${Me.SpellReady[${hotspell}]}
} else /if (${nohotforub.Find[NoOne]}) {
/if (${DEBUG}) /echo Target 10
/target id${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varset nohotforuc ${Target.Name}
/if (${announce}==1) /g Casting ${hotspell} on %T
/varcalc stophealpoint ${casterhotpoint}+5
/call Cast "${hotspell}" gem3 1s CheckHP
/timed 200 /varset nohotforuc NoOne
/delay 15 ${Me.SpellReady[${hotspell}]}
} else /if (${nohotforub.Find[NoOne]}) {
/if (${DEBUG}) /echo Target 11
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varset nohotforud ${Target.Name}
/if (${announce}==1) /g Casting ${hotspell} on %T
/varcalc stophealpoint ${casterhotpoint}+5
/call Cast "${hotspell}" gem3 1s CheckHP
/timed 200 /varset nohotforud NoOne
/delay 15 ${Me.SpellReady[${hotspell}]}
}
/varset stophealpoint ${defaultstophealpoint}
/doevents
/return
}
/if ((${worsthp}<=${casterpatchpoint})&&(${worsthp}>=1)) {
/if (${DEBUG}) /echo Target 12
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/if (${announce}==1) /g Casting ${patchheal} on %T
/call Cast "${patchheal}" gem2 1s CheckHP
/varset stophealpoint ${defaultstophealpoint}
/doevents
/delay 15 ${Me.SpellReady[${patchheal}]}
/return
}
/varset stophealpoint ${defaultstophealpoint}
} else /if (${canniClasses.Find[${worstclass}]}) {
/if ((${worsthp}<=${necshmpatchpoint})&&(${worsthp}>=1)) {
/if (${DEBUG}) /echo Target 13
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/varcalc stophealpoint ${necshmpatchpoint}+5
/if (${announce}==1) /g Casting ${patchheal} on %T
/call Cast "${patchheal}" gem2 1s CheckHP
/varset stophealpoint ${defaultstophealpoint}
/doevents
/delay 15 ${Me.SpellReady[${patchheal}]}
/return
}
} else /if ((${worsthp}<=${defaultpatchpoint})&&(${worsthp}>=1)) {
/if (${DEBUG}) /echo Target 14
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/if (${announce}==1) /g Casting ${patchheal} on %T
/varcalc stophealpoint ${defaultpatchpoint}+5
/call Cast "${patchheal}" gem2 1s CheckHP
/varset stophealpoint ${defaultstophealpoint}
/doevents
/delay 15 ${Me.SpellReady[${patchheal}]}
/return
}
/varset stophealpoint ${defaultstophealpoint}
/if ((${healpetmode}==2)&&(${Me.PctMana}>${manatohealpet})) /call HealPet
/return
Sub Divarbcast
/if (${Me.Casting.ID}) /call Interrupt
/if (${announce}) /g Inc Divine Arbitration
/if (${Me.AltAbilityReady[Divine Arbitration]} && ${Group}-${divarboor} >= 2) {
/call Cast "Divine Arbitration" alt 5s
/if ((${healafterdivarb})&&(${Me.PctMana}>40)) {
/if (${announce}==1) /g Inc Grp Heal, get close
/call Cast "${groupheal}" gem4 2s
/delay 15 ${Me.SpellReady[${groupheal}]}
}
} else /if (${FindItem[Harmony of the Soul].ID} && ${Group}-${divarboor} >= 2 && !${EpicTimer}) {
/call Cast "Harmony of the Soul" item 5s
/if ((${healafterdivarb})&&(${Me.PctMana}>40)) {
/if (${announce}) /g Inc Grp Heal, get close
/call Cast "${groupheal}" gem4 2s
/delay 15 ${Me.SpellReady[${groupheal}]}
}
/varset EpicTimer 360s
}
/declare q int local
/for q 0 to ${Group}
/if (${Group.Member[${q}].PctHPs}<=${DivArbHPs} && ${Me.AltAbilityReady[Bestow Divine Aura]} && ${Group.Member[${q}].ID}!=${tanknameid} && ${Group.Member[${q}].Distance} < 200) {
/if (${Me.Casting.ID}) /call Interrupt
/target id ${Group.Member[${q}].ID}
/delay 1s ${Target.ID}==${Group.Member[${q}].ID}
/if (${announce}) /g Bestowing Divine Aura on: ${Target.CleanName}
/call Cast "Bestow Divine Aura" alt 5s
}
/next q
/return
Sub HealPet
/varset worsthurt NULL
/varset worsthp 100
/for gmember 0 to ${Group}
/if (${Group.Member[${gmember}].Pet.ID}) {
/if (${Group.Member[${gmember}].Pet.Distance}<=${pethealspellrange}) {
/if ((${Group.Member[${gmember}].Pet.PctHPs}<=${worsthp})&&(${Group.Member[${gmember}].Pet.PctHPs}<=${pethealpoint})) {
/varset worsthurt ${Group.Member[${gmember}].Pet.Name}
/varset worsthurtid ${Group.Member[${gmember}].Pet.ID}
/if (${DEBUG}) /echo Is Worsthurt being assigned here?
/varset worsthp ${Group.Member[${gmember}].Pet.PctHPs}
}
}
}
/next gmember
/if (${worsthurt.Length}) {
/if (${DEBUG}) /echo Target 15
/if (${DEBUG}) /echo Targeting id ${worsthurtid}, ${Spawn[${worsthurtid}].CleanName}
/if (${Spawn[${worsthurtid}].Type.NotEqual[Pet]}) /return
/target id ${worsthurtid}
/delay 5 ${Target.ID}==${worsthurtid}
/if (!${Target.ID}) /return
/if (${Target.ID}!=${worsthurtid}) /return
/delay 3
/if (${Target.PctHPs} < ${pethealpoint}) {
/if (${DEBUG}) /echo Is another toon being selected In here?
/if (${announce}==1) /g Casting ${pethealspell} on %T
/varcalc stophealpoint ${pethealpoint}+5
/call Cast "${pethealspell}" spell 1s CheckHP
/varset stophealpoint ${defaultstophealpoint}
/delay 15 ${Me.SpellReady[${pethealspell}]}
}
}
/return
Sub MedTime
:oomwait
/doevents
/If ((${FindItem["Rod of Mystical Transvergance"].InvSlot})&&(${Me.PctMana}<=70)&&(${Me.PctHPs}>=98)&&(${rodwait}==0)) {
/call Cast "Rod of Mystical Transvergance" item
/varset rodwait 1
/timed 3000 /varset rodwait 0
}
/if ((${autosit}>0)&&(${Me.PctMana}<=98)&&(!${Me.Casting.ID})) {
/if ((${Bool[${Me.Standing}]})&&(${Me.PctHPs}>90) && !${Following}) {
/if ((!${NearestSpawn[1,npc radius ${distancetosit} zradius 30].Distance})&&(!${Me.Buff[${yaulpspell}].ID})&&(!${Me.Moving}) ) {
/if (${DEBUG2}) /echo Sit 1
/sit on
}
}
/if ((${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) {
/if (${NearestSpawn[1,npc radius ${distancetosit} zradius 30].Distance}) {
/if (${DEBUG2}) /echo Stand 1
/stand
}
}
}
/if ((${Bool[${Me.Standing}]})&&(${autosit}==2)&&(${Me.PctMana}<=98)&&(${Me.PctHPs}>90)&&(!${Me.Casting.ID})&&(!${Me.Buff[${yaulpspell}].ID}) && !${Following}) {
/if (${DEBUG2}) /echo Sit 2
/sit
}
/if ((${Bool[${Me.Sitting}]})&&(${autosit}>=1)&&(${Me.PctMana}>98)&&(!${Window[SpellBookWnd].Open})) {
/if (${DEBUG2}) /echo Stand 2
/stand
}
/if ((${Bool[${Me.Standing}]})&&(!${Me.Mount.ID})&&(${Me.SpellReady[${yaulpspell}]})&&(!${Me.Buff[${yaulpspell}].ID})) {
/if ((!${Me.Buff[Vallon].ID})&&(!${Me.Buff[Spiritual Vigor].ID})&&(!${Me.Buff[Strength of Tunare].ID})) /call Cast "${yaulpspell}" gem8
}
/if (${Me.PctHPs}<=${selfhealpoint}) /return
/if (${Me.PctMana}<=8) /goto :oomwait
/return
Sub BuffSelf
/declare i int local 1
/for i 1 to ${SpellSelfBuff.Size}
/if (!${Me.Buff[${SpellSelfBuff[${i}]}].ID}) {
/if (${Spell[${SpellSelfBuff[${i}]}].Mana} < ${Me.CurrentMana}) {
:targetloop
/delay 1
/target myself
/if (${Target.ID} != ${Me.ID}) /goto :targetloop
/call cast ${SpellSelfBuff[${i}]} gem9 5s
}
}
/next i
/if ((${Me.Buff[Steeloak Skin].ID} || ${Me.Buff[Blessing of Steeloak].ID}) && ${Me.CurrentMana} > ${Spell[${singlesymbuff}].Mana}) {
/target myself
/delay 1s ${Target.ID} == ${Me.ID}
/call checkCanCast 9 ${singlesymbuff}
/call cast ${singlesymbuff} gem9 5s
}
/if ((${Me.CurrentMana} > ${Spell[${longhpbuff}].Mana}) && (!${Me.Buff[Steeloak Skin].ID} || !${Me.Buff[Blessing of Steeloak].ID}) && (!${Spell[${longhpbuff}].ID} || !${Spell[${grouplonghpbuff}].ID})) {
/target myself
/delay 1s ${Target.ID} == ${Me.ID}
/call checkCanCast 9 ${longhpbuff}
/call cast ${longhpbuff} gem9 5s
}
/varset sbtimer 2m
/return
Sub CheckHP
/if (!${Window[CastingWindow].Open}) /return
/if ((${autointerrupt}>=1)&&(${Target.PctHPs}>=${stophealpoint})) {
/if ((${announce}==1)&&(${duckspam}==1)) {
/g Ducking heal on %T
/e Ducking heal on ${Target.Name}
/varset duckspam 0
/timed 60 /varset duckspam 1
}
/call Interrupt
/return
}
/if ((${interrupt2healself}==1)&&(${Target.Name.NotEqual[${Me}]})&&(${Me.PctHPs}<${interrupt2healselfhp})) {
/if ((${usedivarb}==1)&&(${Me.PctHPs}<=${divarbpoint})&&(${Me.AltAbilityReady[Divine Arbitration]})) {
/call Interrupt
/call Divarbcast
/return
}
/if ((${announce}==1)&&(${duckselfspam}==1)) {
/g Ducking heal on %T so I can heal my (ChickenShit) self
/e Ducking heal on ${Target} so I can heal myself
/varset duckselfspam 0
/timed 60 /varset duckselfspam 1
}
/call Interrupt
/return
}
/if (${onlyhealfd}==1) {
/if ((${Target.Class.Name.Equal[Necromancer]})||(${Target.Class.Name.Equal[Monk]})) {
/if (${Target.State.NotEqual[feign]}) {
/if ((${announce}==1)&&(${duckfdspam}==1)) {
/g Ducking heal on %T because he isn't staying FD
/e Ducking heal on ${Target.Name} because he isn't staying FD
/varset duckfdspam 0
/timed 40 /varset duckfdspam 1
}
/call Interrupt
/return
}
}
}
/if ((${usedivarb}==1)&&(${Target.PctHPs}<=${divarbpoint})&&(${Target.Distance}<=200)&&(${Me.AltAbilityReady[Divine Arbitration]})&&(${castEndTime}>=${interrupt2divarb})) {
/for gmember 0 to ${Group}
/if (${Target.ID}==${Group.Member[${gmember}].ID}) {
/call Interrupt
/call Divarbcast
/return
}
/next gmember
}
/return
Sub TrickyDA
/for intcount 1 to 20
/if ((${Me.PctHPs}<40)&&(${Me.Buff[${trickybuff[${intcount}]}].ID})) /notify BuffWindow Buff${Math.Calc[${Me.Buff[${trickybuff[${intcount}]}].ID}-1].Int} leftmouseup
/next intcount
/if (${Me.Buff[${daspell}].ID}) {
:waitalittle
/delay 1s ${Me.Buff[${daspell}].Duration}<2
/if (${Me.Buff[${daspell}].Duration}>=2) /goto :waitalittle
}
/return
Sub FindExactPC(string name)
/declare nameid int local
/declare counter int local 1
:FindNext
/if (!${NearestSpawn[${counter}, pc ${name}].ID}) /return NOT_FOUND
/varset nameid ${NearestSpawn[${counter}, pc ${name}].ID}
/if (${Spawn[${nameid}].CleanName.Equal[${name}]}) {
/if (${DEBUG}) /echo Target 16
/target id ${nameid}
/delay 1s ${Target.ID}==${nameid}
/if (${Target.ID}==${nameid}) /return TARGET_SUCCESS
}
/varcalc counter ${counter}+1
/if (${NearestSpawn[${counter}, pc ${name}].ID}) /goto :FindNext
/return NOT_FOUND
Sub Event_Chat(string ChatType,string Sender,string ChatText)
/if (${MasterOnly}) /if (!${MasterList.Find[${Sender}]} ) /return
/if (!${Spawn[${Sender}].ID}) {
/e ${Sender} is not in the zone
/return
}
/if (${ChatText.Equal[Follow me]}) {
/target ${Sender}
/delay 3
/varset followid ${Target.ID}
/varset Following TRUE
/if (${DEBUG}) /echo Target 17
/squelch /stick 20 hold
/doevents
}
/if (${ChatText.Equal[Stay Here]}) {
/varset FollowTank FALSE
/varset StaticCamp FALSE
/squelch /stick off
/timed 50 /face pc ${follname}
}
/if (${ChatText.Equal[Make Camp]}) {
/varset MovingCamp FALSE
/varset Following FALSE
/squelch /stick off
/varset HomeX ${Me.X}
/varset HomeY ${Me.Y}
}
/if (${ChatText.Equal[Gbuff now!]}) {
/varset pallycount 0
/if (${DEBUG}) /echo Target 18
/target myself
/call Cast "${acbuff}" gem6 7s
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
/for gmember 1 to ${Group}
/if (${DEBUG}) /echo Target 19
/target id ${Group.Member[${gmember}].ID}
/delay 1s ${Target.ID}==${Group.Member[${gmember}].ID}
/if (${Target.ID}==${Group.Member[${gmember}].ID}) {
/if (${Target.Class.Name.NotEqual[Paladin]}) /call Cast "${acbuff}" gem5 7s
/if (${Target.Class.Name.Equal[Paladin]}) {
/call Cast "${longhpbuff}" gem4 10s
/varcalc pallycount ${pallycount}+1
}
/if ((${Target.Class.Name.NotEqual[Warrior]})&&(${Target.Class.Name.NotEqual[Monk]})&&(${Target.Class.Name.NotEqual[Rogue]})&&(${Target.Class.Name.NotEqual[Berserker]})&&(${Target.Class.Name.NotEqual[Bard]})) {
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
}
}
/next gmember
/if (${Group}-${pallycount} >= 2 && ${groupsymbuff.Length}) /call Cast "${groupsymbuff}" gem5 10s
/if (${Group}-${pallycount} < 2 || !${groupsymbuff.Length}) {
/for gmember 0 to ${Group}
/if (${DEBUG}) /echo Target 20
/target id ${Group.Member[${gmember}].ID}
/delay 1s ${Target.ID}==${Group.Member[${gmember}].ID}
/if (${Target.Class.Name.NotEqual[Paladin]}) /call Cast "${singlesymbuff}" gem5 7s
/next gmember
}
}
/if (${ChatText.Equal[BoR now!]}) {
/if (${DEBUG}) /echo Target 21
/target myself
/delay 5 ${Target.Name.Equal[${Me}]}
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
/for gmember 1 to ${Group}
/if (${DEBUG}) /echo Target 22
/target id ${Group.Member[${gmember}].ID}
/delay 1s ${Target.ID}==${Group.Member[${gmember}].ID}
/if (${Target.ID}==${Group.Member[${gmember}].ID}) {
/if ((${Target.Class.Name.NotEqual[Warrior]})&&(${Target.Class.Name.NotEqual[Monk]})&&(${Target.Class.Name.NotEqual[Rogue]})&&(${Target.Class.Name.NotEqual[Berserker]})&&(${Target.Class.Name.NotEqual[Bard]})) {
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
}
}
/next gmember
}
/if (${ChatText.Equal[nuke]}) {
/if (${Me.PctMana}<30) {
/chat #${mychannel} Cleric Mana ${Me.PctMana}%, holding on nukes!
} else {
/if (${DEBUG}) /echo Assist 1
/assist ${Sender}
/delay 5
/if (${Target.Type.NotEqual[NPC]}) {
/if (${DEBUG}) /echo Assist 2
/assist ${Sender}
/delay 5 ${Target.Type.Equal[NPC]}
}
/if ((${Target.Type.Equal[NPC]})&&(${Target.PctHPs}<=90)) {
/if (${Me.SpellReady[${nukeone}]}) {
/if (${announce}==1) /g Casting ${nukeone} on %T
/call Cast "${nukeone}" spell 3s
} else /if (${Me.SpellReady[${nuketwo}]}) {
/if (${announce}==1) /g Casting ${nuketwo} on %T
/call Cast "${nuketwo}" spell 3s
} else {
/chat #${mychannel} nukes not ready
}
/if (${Me.PctMana}<=60) /chat #${mychannel} FYI Cleric Mana ${Me.PctMana}%
} else {
/chat #${mychannel} wrong target (${Target.Type} at ${Target.PctHPs}% HP)
}
}
}
/if (${ChatText.Equal[stun]}) {
/if (${DEBUG}) /echo Assist 3
/assist ${Sender}
/delay 5
/if (${Target.Type.NotEqual[NPC]}) {
/if (${DEBUG}) /echo Assist 4
/assist ${Sender}
/delay 5 ${Target.Type.Equal[NPC]}
}
/if ((${Target.Type.Equal[NPC]})&&(${Target.PctHPs}<=90)) {
/if (${Me.SpellReady[${stunone}]}) {
/if (${announce}==1) /g Casting ${stunone} on %T
/call Cast "${stunone}" spell 3s
} else /if (${Me.SpellReady[${stuntwo}]}) {
/if (${announce}==1) /g Casting ${stuntwo} on %T
/call Cast "${stuntwo}" spell 3s
} else {
/chat #${mychannel} stuns not ready
}
} else {
/chat #${mychannel} wrong target (${Target.Type} at ${Target.PctHPs}% HP)
}
}
/if (${ChatText.Equal[buffme]}) {
/call FindExactPC ${Sender}
/if (${Macro.Return.NotEqual[TARGET_SUCCESS]}) /return
/if (${Target.Class.Name.Equal[Paladin]}) {
/call Cast "${longhpbuff}" gem4 10s
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
/return
}
/if ((${Target.Class.Name.NotEqual[Warrior]})&&(${Target.Class.Name.NotEqual[Monk]})&&(${Target.Class.Name.NotEqual[Rogue]})&&(${Target.Class.Name.NotEqual[Berserker]})&&(${Target.Class.Name.NotEqual[Bard]})) {
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
}
/memspell 6 "${acbuff}"
/call Cast "${acbuff}" gem6 7s
}
/if ((${ChatText.Equal[patch me]})||(${ChatText.Equal[heal]})||(${ChatText.Equal[heal me]})||(${ChatText.Equal[heal plz]})||(${ChatText.Equal[heal me plz]})||(${ChatText.Equal[need heal]})) {
/call FindExactPC ${Sender}
/if (${Macro.Return.NotEqual[TARGET_SUCCESS]}) /return
/if (${Target.Distance}<=${patchhealrange}) {
/if (${announce}==1) /g Casting ${patchheal} on %T
/call Cast "${patchheal}" gem2 2s
/delay 15 ${Me.SpellReady[${patchheal}]}
} else {
/tell ${Sender} you're OOR
}
}
/if ((${ChatText.Equal[balikor]})||(${ChatText.Equal[wog]})||(${ChatText.Equal[V]})||(${ChatText.Equal[bor]})||(${ChatText.Equal[rgc]})||(${ChatText.Equal[hot me]})||(${ChatText.Equal[ch me]})||(${ChatText.Equal[pb]})) {
/if (${Spawn[pc ${Sender}].Distance}>250) /return
/call FindExactPC ${Sender}
/if (${Macro.Return.NotEqual[TARGET_SUCCESS]}) /return
}
/if (${ChatText.Equal[balikor]}) {
/memspell 9 "${singlesymbuff}"
/delay 7
/call Cast "${singlesymbuff}" gem9 7s
}
/if (${ChatText.Equal[wog]}) /call Cast "${acbuff}" gem6 7s
/if (${ChatText.Equal[V]}) /call Cast "${longhpbuff}" gem4 10s
/if (${ChatText.Equal[bor]}) {
/if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
/if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
}
/if (${ChatText.Equal[rgc]}) {
/if (${FindItem[Blackflame Sphere].ID}) {
/call Cast "Blackflame Sphere" item
} else /if (${FindItem[Wand of Casual Blessings].ID}) {
/call Cast "Wand of Casual Blessings" item
} else {
/call Cast "${rgcspell}" gem8 5s
}
}
/if (${ChatText.Equal[buff pet]}) {
/if (${DEBUG}) /echo Target 23
/target ${Spawn[pc ${Sender}].Pet}
/delay 8
/if (${DEBUG}) /echo Target 24
/target ${Spawn[pc ${Sender}].Pet}
/call Cast "${acbuff}" gem6 7s
/call Cast "${singlesymbuff}" gem5 7s
}
/if (${ChatText.Equal[da pet]}) {
/if (${DEBUG}) /echo Target 25
/target ${Spawn[pc ${Sender}].Pet}
/delay 6
/if (${DEBUG}) /echo Target 26
/target ${Spawn[pc ${Sender}].Pet}
/if (${Me.AltAbilityReady[39]}) /if (${Target.Name.Equal[${Spawn[pc ${Sender}].Pet.Name}]}) {
/call Cast "39" alt
} else {
/chat #${mychannel} Bestow Divine Aura is not ready, or Target (%T) OOR or wrong target
}
}
/if (${ChatText.Equal[pb]}) /call Cast "Pure Blood" gem6 10s
/if (${ChatText.Equal[hot me]}) {
/if (${Target.Distance}<=${hotspellrange}) {
/if (${announce}==1) /g Casting ${hotspell} on %T
/call Cast "${hotspell}" gem2 2s
/delay 15 ${Me.SpellReady[${hotspell}]}
} else {
/tell ${Sender} you're OOR
}
}
/if (${ChatText.Equal[ch me]}) {
/if (${Target.Distance}<=100) {
/if (${announce}==1) /g Casting Complete Healing on %T
/call Cast "Complete Healing" gem2 5s
/delay 15 ${Me.SpellReady[${hotspell}]}
} else {
/tell ${Sender} your OOR
}
}
/if (${ChatText.Equal[mana check]}) /chat #${mychannel} Cleric Mana ${Me.PctMana}%
/if (${ChatText.Equal[slowcamp]}) {
/if (${DEBUG2}) /echo Sit 3
/if (${Me.Standing} && !${Following}) /sit
/delay 5m ${Me.PctMana}>=98
/camp
/end
}
/return
Sub Event_DamageShield(string Line,string Tormentee)
/if (${MoKed} || ${tankname.NotEqual[${Tormentee}]} || ${Spawn[${tanknameid}].PctHPs} < 90) /return
/if (${Target.PctHPs} < 75) /return
/if (${DEBUG}) /echo Assist 6
/assist ${tankname}
/delay 3
/call Cast "Mark of the Blameless" gem6 5s
/varset MoKed TRUE
/return
Sub ReturnHome
/if (${Following} || ${MovingCamp} || !${StaticCamp}) /return
/if (${Me.Sitting}) {
/if (${DEBUG2}) /echo Stand 3
/stand
}
/if (${Math.Distance[${HomeY},${HomeX}]}<10) {
/keypress forward
/keypress back
/return
}
:MoveHome
/delay 1
/doevents
/face fast nolook loc ${HomeY},${HomeX}
/if (${Math.Distance[${HomeY},${HomeX}]}>10) /keypress forward hold
/call AreWeStuck
/if (${Math.Distance[${HomeY},${HomeX}]}<10) {
/keypress forward
/keypress back
/return
}
/goto :MoveHome
/if (${DEBUG}) /echo Target 27
/squelch /target ${tankname}
/face fast nolook
/if (${DEBUG}) /echo Target 28
/squelch /target clear
/return
Sub AreWeStuck
/doevents
/declare StuckXLoc int local ${Me.X}
/declare StuckYLoc int local ${Me.Y}
/delay 4
/if (${StuckXLoc}==${Me.X} && ${StuckYLoc}==${Me.Y}) /call MoveAround
/return
Sub MoveAround
/doevents
/keypress forward
/keypress back hold
/delay 3
/keypress back
/if (${Math.Rand[2]}) {
/keypress strafe_right hold
} else {
/keypress strafe_left hold
}
/delay 10
/keypress strafe_right
/keypress strafe_left
/varset StuckToMob FALSE
/return
Sub Event_MobDead
/squelch /stick off
/keypress forward
/keypress back
/if (${Math.Distance[${HomeY},${HomeX}]}>25) /call ReturnHome
/return
Sub Event_Zoned
/varset HomeX ${Me.X}
/varset HomeY ${Me.Y}
/if (${Following}) {
/target id ${followid}
:targetloop
/delay 3
/if (${Target.ID} != ${followid}) /goto :targetloop
/squelch /stick 20 hold
}
/return
Sub Event_ImDead
/varset Following FALSE
/delay 20s
/call MemSpells
/call Wait4Rez
/return
Sub MemSpells
/declare gemnum int local
/echo Memming spells. Hang on.
/if (${Me.Sitting}) /stand
/if (${Me.Gem[${patchheal}]} && ${Me.Gem[${patchheal}]}!=${patchhealgem}) {
/varset gemnum ${Me.Gem[${patchheal}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${patchhealgem} "${patchheal}"
/delay 25
}
/if (!${Me.Gem[${patchheal}]}) {
/memspell ${patchhealgem} "${patchheal}"
/delay 25
}
/if (${Me.Gem[${healspell}]} && ${Me.Gem[${healspell}]}!=${healspellgem}) {
/varset gemnum ${Me.Gem[${healspell}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${healspellgem} "${healspell}"
/delay 25
}
/if (!${Me.Gem[${healspell}]}) {
/memspell ${healspellgem} "${healspell}"
/delay 25
}
/if (${Me.Gem[${hotspell}]} && ${Me.Gem[${hotspell}]}!=${hotspellgem}) {
/varset gemnum ${Me.Gem[${hotspell}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${hotspellgem} "${hotspell}"
/delay 25
}
/if (!${Me.Gem[${hotspell}]}) {
/memspell ${hotspellgem} "${hotspell}"
/delay 25
}
/if (${Me.Gem[${groupheal}]} && ${Me.Gem[${groupheal}]}!=${grouphealgem}) {
/varset gemnum ${Me.Gem[${groupheal}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${grouphealgem} "${groupheal}"
/delay 25
}
/if (!${Me.Gem[${groupheal}]}) {
/memspell ${grouphealgem} "${groupheal}"
/delay 25
}
/if (${Me.Gem[${daspell}]} && ${Me.Gem[${daspell}]}!=${daspellgem}) {
/varset gemnum ${Me.Gem[${daspell}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${daspellgem} "${daspell}"
/delay 25
}
/if (!${Me.Gem[${daspell}]}) {
/memspell ${daspellgem} "${daspell}"
/delay 25
}
/if (${Me.Gem[${yaulpspell}]} && ${Me.Gem[${yaulpspell}]}!=${yaulpspellgem}) {
/varset gemnum ${Me.Gem[${yaulpspell}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${yaulpspellgem} "${yaulpspell}"
/delay 25
}
/if (!${Me.Gem[${yaulpspell}]}) {
/memspell ${yaulpspellgem} "${yaulpspell}"
/delay 25
}
/if (${Me.Gem[${mitigationspell}]} && ${Me.Gem[${mitigationspell}]}!=${mitigationspellgem}) {
/varset gemnum ${Me.Gem[${mitigationspell}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${mitigationspellgem} "${mitigationspell}"
/delay 25
}
/if (!${Me.Gem[${mitigationspell}]}) {
/memspell ${mitigationspellgem} "${mitigationspell}"
/delay 25
}
/if (${Me.Gem[${selfbuff}]} && ${Me.Gem[${selfbuff}]}!=${selfbuffgem}) {
/varset gemnum ${Me.Gem[${selfbuff}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${selfbuffgem} "${selfbuff}"
/delay 25
}
/if (!${Me.Gem[${selfbuff}]}) {
/memspell ${selfbuffgem} "${selfbuff}"
/delay 25
}
/if (${Me.Gem[${grouplonghpbuff}]} && ${Me.Gem[${grouplonghpbuff}]}!=${grouplonghpbuffgemgem}) {
/varset gemnum ${Me.Gem[${grouplonghpbuff}]}
/notify SpellBookWnd SBW_Spell${gemnum} rightmouseup
/memspell ${grouplonghpbuffgem} "${grouplonghpbuff}"
/delay 25
}
/if (!${Me.Gem[${grouplonghpbuff}]}) {
/memspell ${grouplonghpbuffgem} "${grouplonghpbuff}"
/delay 25
}
/echo Done Memming Spells!
/return
Sub checkCanCast(int spellGem,string spellName)
DEBUG_2 String SpellName: ${spellName}
DEBUG_1 Entering Sub checkCanCast
/if (${Me.SpellReady[${spellName}]}) /return
/if (!${Me.Gem[${spellName}]}) {
/if (${Stick.Status.Equal[ON]}) /squelch /stick off
/delay 3
:mem_spell
/if (${Cursor.ID}) {
/autoinventory
/delay 1
/goto :mem_spell
}
DEBUG_2 memspell ${spellGem} ${spellName}
/memspell ${spellGem} "${spellName}"
/delay 3s ${Me.Gem[${spellName}]}
/delay 3s ${Me.SpellReady[${spellName}]}
/delay 5
}
DEBUG_1 Leaving Sub checkCanCast
/return
Sub Event_GotHit(string Line,string Attacker)
/if (${Me.AltAbility[Divine Retribution]} && ${Me.AltAbilityReady[Divine Retribution]}) {
/call cast "Divine Retribution" alt
}
/if (${Verbose}) /gsay Help Help! ${Attacker} is kicking my ass!
/return
DO NOT LEAVE THIS AFK, THERE ARE STILL ISSUES THAT NEED TO BE WORKED
Last edited:


