• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Pay not attention to this (1 Viewer)

ss44

Active member
Joined
Sep 13, 2005
RedCents
31¢
Necro macro. This is not the public release of these macros, they will be released but I am posting them right now to have some people clean them up for me, if you choose to, you can use them, but you might want to check back in a couple days to get the updated versions of them. Thanks for the cooperation. :D
Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~FHNecro.mac~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~Written by SS44~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~For RedGuides~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~Thanks Siddin and Alat~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~For Helping Clean it up~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Spells:
|1:Magic DOT
|2:Fire Dot
|3:Fire Dot
|4:Disease Dot
|5:Nuke1
|6:Lich / Rune / Shielding
|7:Pet Haste
|8:Dis Dot 1  / Twitch 1
|9:Dis Dot 2  / Twitch 2
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Target the main assist in the group then start the macro
|The person that you have targeted will be the assist in the
|Macro, so make sure its someone that will not be mezzing
|Targets and whatnot for best results.

#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 dark spirit fades.#*#"
#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 Ancient: Curse of Mori spell has worn off of#*#"
#event Dot3_Off "#*#Your Pyre of Mori 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 LifeTapRestist "#*#resisted your Ancient: Touch of Orshilak spell.#*#"
#Event MobDied "#*#been slain by#*#"
#Event MobDied "#*#You have slain#*#"
#Event MobDied "#*#experience#*#"
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main
|~~~~~~~~~~~~~~~~~~~~~~~~~Dots~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/declare MASTER			   string outer ${Target.Name}
/declare Dot1 outer "Dark Nightmare" 
/declare Dot2 outer "Ancient: Curse of Mori" 
/declare Dot3 outer "Pyre of Mori"
/declare Nuke1 outer "Acikin"
/declare LifeTap Outer "Ancient: Touch of Orshilak"
|~~~~~~~~~~~~~~~~~~~~~~~~~Buffs~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/declare Rune outer "Dull Pain"
/declare MW outer "Mind Wrack"
/declare Guard outer "Shadow Guard"
/declare Lich outer "Dark Possesion"
/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 outer 0
 /declare gettarget int outer 0
 /declare Twitching int outer 0

 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/if (${gettarget}==1) {
	/call GetTarget
	/varset gettarget 0
	}
	/goto :waitforit
/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
 	/call GM_Check  
 	/ASSIST ${MASTER}
 	/delay 5
 	/if (${Target.PctHPs}>=97) {
 /goto :loopstart
 }	
 	/if (${Me.PctMana}<=20) /call Med
 	/if (${Me.PctHPs}<=20) /fd_FAIL
 	/if (${Me.PctHPs}<=40) /potionbelt activate 1
 	/if (${Target.Distance}>220) /keypress esc
 	/if (!${Target.ID}) /goto :loopstart
 	/Pet Attack
 	/Call Attack
 	/doevents
 	/delay 5
 /return  
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Med
 	/echo Need mana, medding
 	/if (${Me.SpellReady[${Lich}]}) { 
 	/stand on
 	/call cast ${Lich} gem9
 	/delay 3s
 }
 	/sit on
 	:MedLoop
 	/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 120s
 	/fade
 	/delay 60s		
 	/call Regen
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Regen
 	:regenloop
 	/potionbelt activate 1
 	/sit
 	/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
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 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}]}) { 
 	/stand on
 	/delay 1s
 	/call cast ${Nuke1} gem1 
 	/doevents
 }
 	/if (${diditresist}==1)  /goto :Main_Dot_Loop  
 	/varset diditresist 0
 	/echo ${Nuke1} LANDED, on to next spell! 
 	/call cast "Death Peace" alt
 	/delay 1s
 	/stand on
 /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 5 
 } 
 	/if (!${Me.Buff[Force Shield].ID}) { 
 	/call cast ${Rune} gem6
 } 
 	/if (!${Me.Buff[Shadow Guard].ID}) { 
 	/call cast ${Shielding} gem6
 }
 /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 "Death Peace" alt
 	/delay 1s
 	/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 "Death Peace" alt
 	/delay 1s
 	/stand on
 	/if (${gettarget}==1) {
 	/call GetTarget
 	/varset gettarget 0
 	}
 /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 "Death Peace" alt
 	/delay 1s
 	/stand on
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Attack
 	/delay 15
 	:attackstart

	/face
	/if (${Target.PctHPs}<=90 && ${Target.PctHPs}>=80 && ${Target.Type.NotEqual[PC]}) /call Dot1
	/face
	/if (${Target.PctHPs}<=80 && ${Target.PctHPs}>=70 && ${Target.Type.NotEqual[PC]}) /call Dot2
 	/face
	/if (${Target.PctHPs}<=70 && ${Target.PctHPs}>=60 && ${Target.Type.NotEqual[PC]}) /call Dot3  	
	/face
	/if (${Target.PctHPs}<=98 && ${Target.PctHPs}>=88 && ${Target.Type.NotEqual[PC]}) /call cast "Dagger of Death" item
	/face
|	/if (${Target.PctHPs}<=45 && ${Target.PctHPs}>=25 && ${Target.Type.NotEqual[PC]}) /call cast "Ossein of Limitless Time" item
 	/face
	/if (${Target.PctHPs}<=40 && ${Target.PctHPs}>=20 && ${Target.Type.NotEqual[PC]}) /call MW	
 	/face
	/if (${Target.PctHPs}<=60 && ${Target.PctHPs}>=50 && ${Target.Type.NotEqual[PC]}) /call LifeTap
	/face
	/if (${Target.PctHPs}<=25 && ${Target.PctHPs}>=15 && ${Target.Type.NotEqual[PC]}) /call Nuke1
 	/face
	/if (!${Target.ID}) /return
 	/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}]}) {  
 	/delay 10
 	/call cast "Death Peace" alt
 }
	/doevents
 	/delay 1s
 	/stand on
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Being_Hit
 	/call FD_Fail
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Lich_Off
 	/if (!${Me.Buff[Dark Possession].ID}) {  
 	/stand on
 	/call cast ${Lich} gem6	 
 	/delay 5
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Guard_Off
 	/if (!${Me.Buff[Dull Pain].ID}) {  
 	/stand on
 	/call cast ${Guard} gem6	 
 	/delay 5
 /return
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Sub Event_MobDied
 /varset diditresist 0
 /varset gettarget 1
 /return

 Sub MW
 	/if (${Me.SpellReady[${MW}]}) { 
 	/stand on
 	/call cast ${MW} gem1 
 	/doevents
 }
 	/if (${diditresist}==1)  /goto :Main_Dot_Loop  
 	/varset diditresist 0
 	/echo ${MW} is going, on to next spell! 
 /return
 
Sub LifeTapResist
	/call LifeTap
/return

Sub LifeTap
 	:Main_DoT_Loop
 	/if (${Me.SpellReady[${LifeTap}]}) { 
 	/stand on
 	/call cast ${LifeTap} gem1 
 	/doevents
 }
 	/if (${diditresist}==1)  /goto :Main_Dot_Loop  
 	/varset diditresist 0
 	/echo ${LifeTap} LANDED, on to next spell! 
 	/call cast "Death Peace" alt
 	/delay 1s
 	/stand on
 /return
Target the main assist in the group, the tank works the best that way you dont break any mezz, but it will break mezz if the assist has the mezzed target targeted and it is under 95%. I havent figured out how to fix that yet. Target the main assist and start the macro. Make sure that you edited the spells in the macro and that you have the spells memmed. I am using the AA 'Death Peace' rather than the spell, so if you need to use the spell I will post how to change it.
 
Last edited:
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 MobDied "#*#been slain by#*#"
#Event MobDied "#*#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 MASTER			   string outer ${Target.Name}
/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 outer 0
 /declare gettarget int outer 0
 /declare Twitching int outer 0

 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/CALL INDZ
	/if (${gettarget}==1) {
	/call GetTarget
	/varset gettarget 0
	}
	/goto :waitforit
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Indz
	/if (${gettarget}==1) {
	/call GetTarget
	/varset gettarget 0
	}
	:begin
	/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
	/call GM_Check  
	/ASSIST ${MASTER}
	/delay 5
	/if (${Target.PctHPs}>=97) {
/call GetTarget
}	
	/if (${Me.PctMana}<=20) /call Med
	/if (${Me.PctHPs}<=20) /fd_FAIL
	/if (${Me.PctHPs}<=40) /potionbelt activate 1
	/if (${Target.Distance}>220) /keypress esc
	/if (!${Target.ID}) /goto :loopstart
	/Pet Attack
	/Call Attack
	/doevents
	/delay 5
/return  
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Med
	/echo Need mana, medding
	/if (${Me.SpellReady[${Lich}]}) { 
	/stand on
	/call cast ${Lich} gem1
	/delay 3s
}
	/sit on
	:MedLoop
	/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 120s
	/fade
	/delay 60s		
	/call Regen
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Regen
	:regenloop
	/potionbelt activate 1
	/sit
	/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  
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
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
}
	/keypress 5
	/delay 5s
	/keypress 9
/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 5 
} 
	/if (!${Me.Buff[Force Shield].ID}) { 
	/call cast ${Rune} gem6
} 
	/if (!${Me.Buff[Shadow Guard].ID}) { 
	/call cast ${Shielding} gem6
}
/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
	/if (${gettarget}==1) {
	/call GetTarget
	/varset gettarget 0
	}
/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 && ${Target.Type.NotEqual[PC]}) 

/call Dot1
	/if (${Target.PctHPs}<=75 && ${Target.PctHPs}>=70 && ${Target.Type.NotEqual[PC]}) 

/call Dot2
	/if (${Target.PctHPs}<=55 && ${Target.PctHPs}>=50 && ${Target.Type.NotEqual[PC]}) 

/call Dot3
	/if (${Target.PctHPs}<=35 && ${Target.PctHPs}>=30 && ${Target.Type.NotEqual[PC]}) 

/call Dot1
	/if (${Target.PctHPs}<=25 && ${Target.PctHPs}>=10 && ${Target.Type.NotEqual[PC]}) 

/call Nuke1
	/if (!{Target.ID} || ${Target.Type.Equal[PC]}) /return
	/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}]}) {  
	/sit on
	/delay 10
	/call cast ${FD} gem1 
	/doevents
	/delay 5s
	/stand on
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Being_Hit
	/call FD_Fail
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Lich_Off
	/if (!${Me.Buff[Seduction of Saryrn].ID}) {  
	/stand on
	/call cast ${Lich} gem6	 
	/delay 5
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Guard_Off
	/if (!${Me.Buff[Shadow Guard].ID}) {  
	/stand on
	/call cast ${Guard} gem6	 
	/delay 5
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~
Sub Event_MobDied
/varset diditresist 0
/varset gettarget 1
/return
 
Last edited:
Paladin macro, I still need to add some checks for if the spell is avail, but I can do that later.
Rich (BB code):
#turbo
#Event EXP                      "You gain#*#"
#Event Slain                    "You have been slain by#*#"
#Event DPS   "<#*#> DPS"
#Event Returntoanchor           "<#*#> Returntoanchor"
#Event Tag                      "<|${Puller}|> Tag#*#"
#Event Pull                     "<#*#> TAG#*#"
#Include Wait4rez.inc
#Include Spell_Routines.inc
#Include botevents.inc
#Chat tell
#Chat group
#Chat channel
#Chat guild

Sub Main
  /call BotDeclares
   
|=================================================  ==========
|Edit this stuff
|=================================================  ==========
   /declare Master               string outer ${Target}
   /declare Tells                int outer 1
   |                             1 echos tells to channel; 0 is no echoing
   /declare Spam                 int outer 0
   |                             1 echos events to private channel; 0 no echoing
   /declare Puller               string outer ${Target}
   /declare PullerID             int outer
   /varset PullerID              ${Target.ID}
   /declare Anchor   int outer 0
|=================================================  ==========
| Assist %
|=================================================  ==========
 /declare RV_Assistat          int outer 99


|=================================================  ==========
| End of Editing
|=================================================  ==========
   /declare RV_Looper            int outer  0
   /declare RV_MyTargetID        int outer  0
   /declare RV_MyTargetName      string outer
   /declare RV_MyTargetDead      int outer  0
   /declare RV_RandomWait        int outer  0
   /declare RV_CheckLook         int outer  0
   /declare RV_Fighting          int outer  0
   /declare RV_TargetDead        int outer  0
   /declare RV_MyXLOC            int outer  0
   /declare RV_MyYLOC            int outer  0
   /declare AnchorX              int outer ${Me.X}
   /declare AnchorY              int outer ${Me.Y}
   /declare RV_resetheading      int outer ${Me.Heading.DegreesCCW.Int}
   /declare SitBooBooID          int outer
   /declare RV_FastRange         int outer
   /declare RV_RangeMax          int outer
   /declare RV_RangeMin          int outer
   /declare RV_Subreset          int outer 0
   /declare RV_Rangedw           int outer
   /declare Exper                float outer
   /declare AAExp                float outer
   /declare Mobs_Killed          int outer 0
   /varset  Exper                ${Me.PctExp}
   /varset  AAExp                ${Me.PctAAExp}
   /varcalc RV_FastRange         ${RV_Range}+3
   /varcalc RV_RangeMax          ${RV_Range}+1
   /varcalc RV_RangeMin          ${RV_Range}-1
   /varcalc RV_Rangedw           ${RV_Rangedw} - 10

  
|=================================================  =======

/combat on
/combat save
/join ${MyChannel}:${MyChannelPass}
:Start
/call GetTarget
/call CheckBuffs
/doevents
/goto :Start   

/return

Sub GetTarget
:NotYet
/doevents
/assist ${Puller}
/delay 4
/if (!${Target.ID}) /goto :NotYet
/if ((${Target.ID}!=${PullerID})&&(${Target.Distance}<35)&& ${Target.Type.Equal[NPC]}) /call Combat
/goto :NotYet
/delay 3s
/return

Sub Combat
   /if (${Target.Type.Equal[NPC]}) /call cast "Force of Piety" gem4 1s
   /varset RV_Fighting 1
   /varset RV_TargetDead 0
   /if ((${Target.ID}) && (${Target.Type.Equal["NPC"]})) {
	/attack on
	/stick 9
}   
	/if (${Target.Type.Equal[NPC]}) /gsay Attacking >>> [+p+]${Target.CleanName}[+x+] <<<
   :CombatLoop
   /doevents
   /attack on
   /call SpecialIT

   }
   :nocombat
   /if (!${Target.ID}) {
      /varcalc Mobs_Killed (${Mobs_Killed}+1) 
      /attack off
      /keypress forward
      /keypress back
      /keypress esc
      /varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
      /varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}
      /echo EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /popup EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /echo Total Mobs killed so far:  ${Mobs_Killed}
      /varset Exper ${Me.PctExp}
      /varset AAExp ${Me.PctAAExp}
      /varset RV_TargetDead 1
      /varset RV_Fighting 0
   }
   /if (!${RV_TargetDead}) {
        /goto :CombatLoop
   }
/return

Sub SpecialIT
/if (!${Me.TargetOfTarget.Name.Equal[${Me}]} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}>20) { 
/call Event_Agro
/delay 2s
}
/if (${Me.SpellReady[Force of Piety]}) /call cast "Force of Piety"
/if (${Me.SpellReady[Serene Command]}) /call cast "Serene Command"
    /if (${Me.AbilityReady[Bash]}) /doability "Bash"
     /doevents
/if (${Me.AbilityReady[Taunt]}) /doability "Taunt"
/return


Sub ResetSub
   /call CheckAnchor
   /varset RV_TargetDead 0
   /varset RV_Fighting 0
   /doevents
   /attack off
   /keypress ESC
   /call CheckBuffs
   /return


Sub Event_EXP
/call CheckAnchor
/call ResetSub
/return

Sub CheckAnchor   
   /if (${Math.Distance[${AnchorY},${AnchorX}]}>25 && ${Anchor}==1) /call MoveToAnchor   
/return


Sub MoveToAnchor
    /declare iCount int local
    /varset iCount 0

|    /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
    /varset RV_MyXLOC ${Int[${Me.X}]}
    /varset RV_MyYLOC ${Int[${Me.Y}]}
    /declare RV_DistanceTimer timer 15
:AnchorMoveLoop
    /delay 1
    /doevents
    /face fast nolook loc ${AnchorY},${AnchorX}
   
    /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
       /keypress forward hold
    } else {
       /keypress forward
       /return
    }

    /if (${iCount}>2) {
        /face fast nolook loc ${AnchorY},${AnchorX}
        /varset iCount 0
    }
    /if (!${RV_DistanceTimer}) {
      /if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle
      /varset RV_MyXLOC ${Int[${Me.X}]}
      /varset RV_MyYLOC ${Int[${Me.Y}]}
      /varset RV_DistanceTimer 15
      } 
     }   
   
    /varcalc iCount ${iCount}+1
    /goto :AnchorMoveLoop

/return

sub HitObstacle 
   /keypress forward 
   /keypress back hold 
   /delay 5 
   /keypress back 
   /if (${Math.Rand[2]}) { 
      /keypress strafe_right hold 
      /delay 3 
      /keypress strafe_right 
   } else { 
      /keypress strafe_left hold 
      /delay 3 
      /keypress strafe_left 
   } 
   /keypress forward hold 
/return

Sub Event_Slain
/delay 20s
/load spellset
/call Wait4Rez 
/return



Sub Event_DPS

/return





Sub Event_Returntoanchor
/stand
/call CheckAnchor
/return


/return

Sub Event_Tag
/stick off
/attack off
/assist ${Puller}
/face fast
/stick 12
/gsay Tagging >>> ${Target.CleanName} <<<
/call cast "Serene Command" gem2 2s
/delay 3s
/call cast "Force of Piety" gem1 1s
/return


Sub Event_Attack
/attack off
/keypress esc
/stand
/attack off
/call CheckAnchor
/return

Sub CheckBuffs


/return
Sub Event_Agro
/doability "taunt"
/call cast "Force of Piety" gem1 1s 
/return
 
lmao! This is not the publishing of these macros, they will be released, but after some people try them out. they work fine, but need cleaning up. Below is botevents.inc
 
BotEvents.inc this needs to go in your macro folder
Rich (BB code):
#Event Stay			"<#*#> |${Me}| Stay"
#Event Follow			"<#*#> |${Me}| Follow #1#"
#Event Moveto                   "<#*#> |${Me}| Moveto #1#"
#Event Zoned        		"#*#You have entered#*#"
#Event BotTells			"#1# tells you, '#2#'"
#Event ClericBuffs              "<#*#> V #1#"
#Event BCVie			"<#*#> vie #1#"
#Event BCDevotion		"<#*#> Devotion 
#Event BCBlessing		"<#*#> Blessing #1#"
#Event HoT			"<#*#> HoT #1#"
#Event Heal			"<#*#> Heal #1#"
#Event CH			"<#*#> CH #1#"
#Event Arb			"<#*#> Arb"
#Event RC                       "<#*#> RC"
#Event GHoT                     "<#*#> GHoT"
#Event Speed			"<#*#> Speed #1#"
#Event C6			"<#*#> C6 #1#	
#Event Gspeed			"<#*#> Gspeed"
#Event Gc6			"<#*#> Gc6"
#Event Skele			"<#*#> Skele #1#"
#Event Illusion                 "<#*#> Give #1# #2#"
#Event BuffStats                "<#*#> |${Me}| BuffStats"
#Event Focus                    "<#*#> Focus #1#"
#Event Stamina			"<#*#> Stamina #1#"
#Event Might			"<#*#> Might #1#"
#Event Sense			"<#*#> Sense #1#"
#Event Q			"<#1#> Q me"
#Event Q2			"<#*#> Q #1#" 
#Event Heal2			"<#*#> |${Me}| heal #1#"	
#Event Mana			"<#*#> Mana"
#Event Gfocus			"<#*#> Gfocus"
#Event Gsta			"<#*#> Gsta"
#Event Gregen			"<#*#> Gregen"
#Event TL			"<#*#> TL #1# on #2#"
#Event Port			"<#*#> Port #1#"
#EVent Invis			"<#*#> Invis #1#"
#Event Invisgrp			"<#*#> |${Me}| Invisgrp"
#Event Pause			"<#*#> |${Me}| pauseit"
#Event Unpause			"<#*#> |${Me}| unpauseit"
#event HoV			"<#*#> |${Me}| HOV"
Sub BotDeclares
   /declare Follow 		int outer
   /declare FollowPerson 	string outer
   /declare Pauseit 		int outer 0
/return

Sub Event_Stay
   /Varset AnchorX               ${Me.X}
   /Varset AnchorY               ${Me.Y}
   /stick off
   /varset Follow 0
   /varset FollowPerson NULL

 /bc Camp set here, I will now return here after combat.
/return

Sub Event_Follow(string Line,string Sender)
/delay 10
/target ${Sender}
/stick 35% hold
/bc  Following ${Target.CleanName}...
/varset Follow 1
/varset FollowPerson ${Sender}
:following
/if (${Follow}==0) /return
/doevents
/if (!${Target.ID}) /target ${FollowPerson}
/if (!${Stick.Status.Equal[ON]}) /stick 35% hold
/doevents
/goto :following
/return

Sub Event_Moveto(string Line,string MovetoPerson)
/target ${MovetoPerson}
/stick
/bc Moving to << ${Target.CleanName} >>
:stick
/if (${Target.Distance}<15) { 
/stick off
/return
} else {
/goto :stick
}

/return

Sub Event_Zoned
/if (${Follow}==1) { 
/target ${FollowPerson}
/delay 10
/stick 35% hold
}
/return

Sub Event_BotTells(string Line,string Sender,string Chat)
/bc ${Sender} told me: ${Chat}
/return

Sub Event_ClericBuffs(string Line,string Vtarget)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Vtarget}
/bc Casting ${longhpbuff} on ${Vtarget}
/call cast ${longhpbuff} gem9 10s
/return

Sub Event_BCVie(string Line,string Vietarget)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Vietarget}
/bc Casting Panoply of Vie on ${Vietarget}
/call cast "Panoply of Vie" gem7 4s
/return

Sub Event_BCDevotion
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Me}
/bc casting Aura of Devotion 
/call cast "Aura of Devotion" gem9 8s
/return

Sub Event_BCBlessing(string Line,string Blessing)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Blessing}
/bc casting Blessing of Devotion on ${Blessing}
/call cast "Blessing of Devotion" gem9 6s
/return

Sub Event_HoT(string Line,string Elixir)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Elixir}
/bc casting Pious Elixir on ${Elixir}
/call cast "Pious Elixir" gem3 4s
/return

Sub Event_Heal(string Line,string Healee)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Healee}
/bc casting Pious Remedy on ${Healee}
/call cast "Pious Remedy" gem1 2s
/return

Sub Event_CH(string Line,string CHer)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${CHer}
/bc Complete Healing >> ${CHer} <<
/call cast "COmplete Healing" gem2 10s
/return

Sub Event_Arb
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/stopcast
/alt act 169
/bc << BALANCING HPs >>
/delay 1s
/bc Inc Group Heal, hug me !
/call cast "Word of Vivification" gem4 5s
/return

Sub Event_RC
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/alt act 153
/bc You are << Cured >>
/return

Sub Event_GHoT
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/alt act 394
/bc Group >> Hotage <<
/return

Sub Event_Speed(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/target ${Person}
/bc Casting Speed of Salik on >> ${Person} <<
/call cast "Speed of Salik" gem9 6s
/return

Sub Event_C6(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/target ${Person}
/bc Clairvoyance on >> ${Person} <<
/call cast Clairvoyance gem9 4s
/return

Sub Event_Gc6
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/bc Get close casting << Voice of Clairvoyance >>
/call cast "Voice of Clairvoyance" gem9 12s
/return

Sub Event_Gspeed
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/bc Get close casting << Hastening of Salik >>
/call cast "Hastening of Salik" gem9
/return 

Sub Event_Skele(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/alt act 217
/target ${Person}
/bc << Illusion Skelly for ${Person} >>
/call cast "Illusion: Skeleton" gem9 3s
/return

Sub Event_Illusion(string Line,string Person,string Illusion)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/alt act 217
/target ${Person}
/bc << Turning ${Person} into ${Illusion} >>
/call cast "Illusion: ${Illusion}" gem9 3s
/return

Sub Event_BuffStats 
/bc == [+g+]${Me}'s Buff List[+x+] ==
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}>=600) /bc ** ${Me.Buff[1]} - [+g+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<600 && ${Me.Buff[1].Duration}>=300) /bc ** ${Me.Buff[1]} - [+o+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<300 && ${Me.Buff[1].Duration}>100) /bc ** ${Me.Buff[1]} - [+y+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<=100) /bc ** ${Me.Buff[1]} - [+r+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}>=600) /bc ** ${Me.Buff[2]} - [+g+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<600 && ${Me.Buff[2].Duration}>=300) /bc ** ${Me.Buff[2]} - [+o+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<300 && ${Me.Buff[2].Duration}>100) /bc ** ${Me.Buff[2]} - [+y+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<=100) /bc ** ${Me.Buff[2]} - [+r+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}>=600) /bc ** ${Me.Buff[3]} - [+g+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<600 && ${Me.Buff[3].Duration}>=300) /bc ** ${Me.Buff[3]} - [+o+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<300 && ${Me.Buff[3].Duration}>100) /bc ** ${Me.Buff[3]} - [+y+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<=100) /bc ** ${Me.Buff[3]} - [+r+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}>=600) /bc ** ${Me.Buff[4]} - [+g+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<600 && ${Me.Buff[4].Duration}>=300) /bc ** ${Me.Buff[4]} - [+o+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<300 && ${Me.Buff[4].Duration}>100) /bc ** ${Me.Buff[4]} - [+y+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<=100) /bc ** ${Me.Buff[4]} - [+r+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}>=600) /bc ** ${Me.Buff[5]} - [+g+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<600 && ${Me.Buff[5].Duration}>=300) /bc ** ${Me.Buff[5]} - [+o+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<300 && ${Me.Buff[5].Duration}>100) /bc ** ${Me.Buff[5]} - [+y+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<=100) /bc ** ${Me.Buff[5]} - [+r+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}>=600) /bc ** ${Me.Buff[6]} - [+g+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<600 && ${Me.Buff[6].Duration}>=300) /bc ** ${Me.Buff[6]} - [+o+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<300 && ${Me.Buff[6].Duration}>100) /bc ** ${Me.Buff[6]} - [+y+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<=100) /bc ** ${Me.Buff[6]} - [+r+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}>=600) /bc ** ${Me.Buff[7]} - [+g+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<600 && ${Me.Buff[7].Duration}>=300) /bc ** ${Me.Buff[7]} - [+o+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<300 && ${Me.Buff[7].Duration}>100) /bc ** ${Me.Buff[7]} - [+y+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<=100) /bc ** ${Me.Buff[7]} - [+r+]${Me.Buff[7].Duration.TimeHMS}[+x+] **
 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}>=600) /bc ** ${Me.Buff[8]} - [+g+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<600 && ${Me.Buff[8].Duration}>=300) /bc ** ${Me.Buff[8]} - [+o+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<300 && ${Me.Buff[8].Duration}>100) /bc ** ${Me.Buff[8]} - [+y+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<=100) /bc ** ${Me.Buff[8]} - [+r+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}>=600) /bc ** ${Me.Buff[9]} - [+g+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<600 && ${Me.Buff[9].Duration}>=300) /bc ** ${Me.Buff[9]} - [+o+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<300 && ${Me.Buff[9].Duration}>100) /bc ** ${Me.Buff[9]} - [+y+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<=100) /bc ** ${Me.Buff[9]} - [+r+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}>=600) /bc ** ${Me.Buff[10]} - [+g+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<600 && ${Me.Buff[10].Duration}>=300) /bc ** ${Me.Buff[10]} - [+o+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<300 && ${Me.Buff[10].Duration}>100) /bc ** ${Me.Buff[10]} - [+y+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<=100) /bc ** ${Me.Buff[10]} - [+r+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}>=600) /bc ** ${Me.Buff[11]} - [+g+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<600 && ${Me.Buff[11].Duration}>=300) /bc ** ${Me.Buff[11]} - [+o+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<300 && ${Me.Buff[11].Duration}>100) /bc ** ${Me.Buff[11]} - [+y+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<=100) /bc ** ${Me.Buff[11]} - [+r+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}>=600) /bc ** ${Me.Buff[12]} - [+g+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<600 && ${Me.Buff[12].Duration}>=300) /bc ** ${Me.Buff[12]} - [+o+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<300 && ${Me.Buff[12].Duration}>100) /bc ** ${Me.Buff[12]} - [+y+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<=100) /bc ** ${Me.Buff[12]} - [+r+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}>=600) /bc ** ${Me.Buff[13]} - [+g+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<600 && ${Me.Buff[13].Duration}>=300) /bc ** ${Me.Buff[13]} - [+o+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<300 && ${Me.Buff[13].Duration}>100) /bc ** ${Me.Buff[13]} - [+y+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<=100) /bc ** ${Me.Buff[13]} - [+r+]${Me.Buff[13].Duration.TimeHMS}[+x+] **
 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}>=600) /bc ** ${Me.Buff[14]} - [+g+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<600 && ${Me.Buff[14].Duration}>=300) /bc ** ${Me.Buff[14]} - [+o+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<300 && ${Me.Buff[14].Duration}>100) /bc ** ${Me.Buff[14]} - [+y+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<=100) /bc ** ${Me.Buff[14]} - [+r+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}>=600) /bc ** ${Me.Buff[15]} - [+g+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<600 && ${Me.Buff[15].Duration}>=300) /bc ** ${Me.Buff[15]} - [+o+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<300 && ${Me.Buff[15].Duration}>100) /bc ** ${Me.Buff[15]} - [+y+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<=100) /bc ** ${Me.Buff[15]} - [+r+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}>=600) /bc ** ${Me.Buff[16]} - [+g+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<600 && ${Me.Buff[16].Duration}>=300) /bc ** ${Me.Buff[16]} - [+o+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<300 && ${Me.Buff[16].Duration}>100) /bc ** ${Me.Buff[16]} - [+y+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<=100) /bc ** ${Me.Buff[16]} - [+r+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}>=600) /bc ** ${Me.Buff[17]} - [+g+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<600 && ${Me.Buff[17].Duration}>=300) /bc ** ${Me.Buff[17]} - [+o+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<300 && ${Me.Buff[17].Duration}>100) /bc ** ${Me.Buff[17]} - [+y+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<=100) /bc ** ${Me.Buff[17]} - [+r+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}>=600) /bc ** ${Me.Buff[18]} - [+g+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<600 && ${Me.Buff[18].Duration}>=300) /bc ** ${Me.Buff[18]} - [+o+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<300 && ${Me.Buff[18].Duration}>100) /bc ** ${Me.Buff[18]} - [+y+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<=100) /bc ** ${Me.Buff[18]} - [+r+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}>=600) /bc ** ${Me.Buff[19]} - [+g+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<600 && ${Me.Buff[19].Duration}>=300) /bc ** ${Me.Buff[19]} - [+o+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<300 && ${Me.Buff[19].Duration}>100) /bc ** ${Me.Buff[19]} - [+y+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<=100) /bc ** ${Me.Buff[19]} - [+r+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}>=600) /bc ** ${Me.Buff[20]} - [+g+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<600 && ${Me.Buff[20].Duration}>=300) /bc ** ${Me.Buff[20]} - [+o+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<300 && ${Me.Buff[20].Duration}>100) /bc ** ${Me.Buff[20]} - [+y+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<=100) /bc ** ${Me.Buff[20]} - [+r+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/bc == [+y+]End of ${Me}'s List[+x+] ==

/if (${Me.Pet.ID}) /bc === ${Me}'s [+p+] Pet Buff List [+x+] ===

/if (${Me.PetBuff[1].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[1]} - [+g+]${Me.PetBuff[1].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[2].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[2]} - [+g+]${Me.PetBuff[2].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[3].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[3]} - [+g+]${Me.PetBuff[3].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[4].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[4]} - [+g+]${Me.PetBuff[4].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[5].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[5]} - [+g+]${Me.PetBuff[5].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[6].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[6]} - [+g+]${Me.PetBuff[6].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[7].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[7]} - [+g+]${Me.PetBuff[7].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[8].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[8]} - [+g+]${Me.PetBuff[8].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[9].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[9]} - [+g+]${Me.PetBuff[9].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[10].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[10]} - [+g+]${Me.PetBuff[10].Duration.TimeHMS}[+x+] **

/if (${Me.Pet.ID}) /bc === End of [+p+] ${Me.Pet.CleanName}'s Buff List [+x+] ===
/return

Sub Event_Focus(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Focus on << ${Target.CleanName} >>
/call cast "Wunshi's Focusing" gem8 4s
/return

Sub Event_Stamina(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Stamina on << ${Target.CleanName} >>
/call cast "Spirit of Fortitude" gem8 4s
/return

Sub Event_Might(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Might on << ${Target.CleanName} >>
/call cast "Spirit of Might" gem8 4s
/return

Sub Event_Sense(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Sense on << ${Target.CleanName} >>
/call cast "Talisman of Sense" gem8 4s
/return

Sub Event_Q(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Spiritual Serenity on << ${Target.CleanName} >>
/call cast "Spiritual Serenity" gem5 4s
/return

Sub Event_Q2(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Spiritual Serenity on << ${Target.CleanName} >>
/call cast "Spiritual Serenity" gem5 4s
/return

Sub Event_Heal2(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Yoppa`s Mending on << ${Target.CleanName} >>
/call cast "Yoppa's Mending" gem6 5s
/return

Sub Event_Gsta
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Stamina **
/call cast "Talisman of Fortitude" gem8
/return

Sub Event_Gfocus
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Focus **
/call cast "Talisman of Wunshi" gem8
/return

Sub Event_Gregen
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Regen **
/call cast "Talisman of Perseverance" gem8 6s
/return

Sub Event_Mana
/bc ${Me.PctMana}m
/return

Sub Event_TL(string Line, string TLspell, string Person)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/target ${Person}
/delay 10
/call cast "Translocate: ${TLspell}" gem8
/bc << TLing [+p+]${Target.CleanName}[+x+] to [+g+]${TLspell}[+x+]
/return

Sub Event_Port(string Line, string Portspell)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/bc [+y+]**Get Close Porting !**[+x+]
/call cast "${Portspell} Portal" gem8
/return

Sub Event_Invis(string Line, string Person)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/target ${Person}
/delay 10
/call cast "Phase Walk" gem 8
/bc Casting Invis on >> [+g+]${Target.CleanName}[+x+] <<
/return

Sub Event_Invisgrp
/declare j 	int local
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/delay 10
/for j 1 to ${Group.Members}
/target ${Group.Member[${j}]}
/delay 10
/bc ** Invising <<[+g+]${Target.CleanName}[+x+]>> **
/call cast "Phase Walk" gem8 5s
/next j
/delay 10
/target ${Me}
/bc ** Invising <<[+g+]${Target.CleanName}[+x+]>> **
/call cast "Phase Walk" gem8 5s
/return

Sub Event_Pause
/varset Pauseit 1
:pauseloop
/doevents
/if (${Me.Sitting}) /stand
/if (${Pauseit}==0) {
/return
} else {
/goto :pauseloop
}
/return

Sub Event_Unpause
/varset Pauseit 0
/return

Sub event_HoV
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/delay 10
/call cast "Hand of Virtue"
/return
 
BotEvents.inc was origionally posted by Tone from his tank macro (which is what mine is modified from, just in case you were wanting to know. Thanks Tone!
 
fixed a couple of math equations in the macro, but otherwise looks good. as for cleaning it up, i'm not sure there's anything more you can clean up.
"If its not broke, Don't Fix IT!"
The next problem would be... I'm drunk atm lol.
Rich (BB code):
  #turbo
  #Event EXP                      "You gain#*#"
  #Event Slain                    "You have been slain by#*#"
  #Event DPS   "<#*#> DPS"
  #Event Returntoanchor           "<#*#> Returntoanchor"
  #Event Tag                      "<|${Puller}|> Tag#*#"
  #Event Pull                     "<#*#> TAG#*#"
  #Include Wait4rez.inc
  #Include Spell_Routines.inc
  #Include botevents.inc
  #Chat tell
  #Chat group
  #Chat channel
  #Chat guild
  
  Sub Main
    /call BotDeclares
     
  |=================================================    ==========
  |Edit this stuff
  |=================================================    ==========
     /declare Master               string outer ${Target}
     /declare Tells                int outer 1
     |                             1 echos tells to channel; 0 is no echoing
     /declare Spam                 int outer 0
     |                             1 echos events to private channel; 0 no echoing
     /declare Puller               string outer ${Target}
     /declare PullerID             int outer
     /varset PullerID              ${Target.ID}
     /declare Anchor   int outer 0
  |=================================================    ==========
  | Assist %
  |=================================================    ==========
   /declare RV_Assistat          int outer 99
  
  
  |=================================================    ==========
  | End of Editing
  |=================================================    ==========
     /declare RV_Looper            int outer  0
     /declare RV_MyTargetID        int outer  0
     /declare RV_MyTargetName      string outer
     /declare RV_MyTargetDead      int outer  0
     /declare RV_RandomWait        int outer  0
     /declare RV_CheckLook         int outer  0
     /declare RV_Fighting          int outer  0
     /declare RV_TargetDead        int outer  0
     /declare RV_MyXLOC            int outer  0
     /declare RV_MyYLOC            int outer  0
     /declare AnchorX              int outer ${Me.X}
     /declare AnchorY              int outer ${Me.Y}
     /declare RV_resetheading      int outer ${Me.Heading.DegreesCCW.Int}
     /declare SitBooBooID          int outer
     /declare RV_FastRange         int outer
     /declare RV_RangeMax          int outer
     /declare RV_RangeMin          int outer
     /declare RV_Subreset          int outer 0
     /declare RV_Rangedw           int outer
     /declare Exper                float outer
     /declare AAExp                float outer
     /declare Mobs_Killed          int outer 0
     /varset  Exper                ${Me.PctExp}
     /varset  AAExp                ${Me.PctAAExp}
     /varcalc RV_FastRange         ${RV_Range}+3
     /varcalc RV_RangeMax          ${RV_Range}+1
     /varcalc RV_RangeMin          ${RV_Range}-1
     /varcalc RV_Rangedw           ${RV_Rangedw} - 10
  
    
  |=================================================    =======
  
  /combat on
  /combat save
  /join ${MyChannel}:${MyChannelPass}
  :Start
  /call GetTarget
  /call CheckBuffs
  /doevents
  /goto :Start   
  
  /return
  
  Sub GetTarget
  :NotYet
  /doevents
  /assist ${Puller}
  /delay 4
  /if (!${Target.ID}) /goto :NotYet
  /if ((${Target.ID}!=${PullerID})&&(${Target.Distance}<=35)&& ${Target.Type.Equal[NPC]}) /call Combat
  /goto :NotYet
  /delay 3s
  /return
  
  Sub Combat
     /if (${Target.Type.Equal[NPC]}) /call cast "Force of Piety" gem4 1s
     /varset RV_Fighting 1
     /varset RV_TargetDead 0
     /if ((${Target.ID}) && (${Target.Type.Equal["NPC"]})) {
  	/attack on
  	/stick 9
  }   
  	/if (${Target.Type.Equal[NPC]}) /gsay Attacking >>> [+p+]${Target.CleanName}[+x+] <<<
     :CombatLoop
     /doevents
     /attack on
     /call SpecialIT
  
     }
     :nocombat
     /if (!${Target.ID}) {
        /varcalc Mobs_Killed (${Mobs_Killed}+1) 
        /attack off
        /keypress forward
        /keypress back
        /keypress esc
        /varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
        /varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}
        /echo EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
        /popup EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
        /echo Total Mobs killed so far:  ${Mobs_Killed}
        /varset Exper ${Me.PctExp}
        /varset AAExp ${Me.PctAAExp}
        /varset RV_TargetDead 1
        /varset RV_Fighting 0
     }
     /if (!${RV_TargetDead}) {
          /goto :CombatLoop
     }
  /return
  
  Sub SpecialIT
  /if (!${Me.TargetOfTarget.Name.Equal[${Me}]} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}>20) { 
  /call Event_Agro
  /delay 2s
  }
  /if (${Me.SpellReady[Force of Piety]}) /call cast "Force of Piety"
  /if (${Me.SpellReady[Serene Command]}) /call cast "Serene Command"
      /if (${Me.AbilityReady[Bash]}) /doability "Bash"
       /doevents
  /if (${Me.AbilityReady[Taunt]}) /doability "Taunt"
  /return
  
  
  Sub ResetSub
     /call CheckAnchor
     /varset RV_TargetDead 0
     /varset RV_Fighting 0
     /doevents
     /attack off
     /keypress ESC
     /call CheckBuffs
     /return
  
  
  Sub Event_EXP
  /call CheckAnchor
  /call ResetSub
  /return
  
  Sub CheckAnchor   
     /if (${Math.Distance[${AnchorY},${AnchorX}]}>25 && ${Anchor}==1) /call MoveToAnchor   
  /return
  
  
  Sub MoveToAnchor
      /declare iCount int local
      /varset iCount 0
  
  |    /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
      /varset RV_MyXLOC ${Int[${Me.X}]}
      /varset RV_MyYLOC ${Int[${Me.Y}]}
      /declare RV_DistanceTimer timer 15
  :AnchorMoveLoop
      /delay 1
      /doevents
      /face fast nolook loc ${AnchorY},${AnchorX}
     
      /if (${Math.Distance[${AnchorY},${AnchorX}]}>=12) {
         /keypress forward hold
      } else {
         /keypress forward
         /return
      }
  
      /if (${iCount}>2) {
          /face fast nolook loc ${AnchorY},${AnchorX}
          /varset iCount 0
      }
      /if (!${RV_DistanceTimer}) {
        /if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle
        /varset RV_MyXLOC ${Int[${Me.X}]}
        /varset RV_MyYLOC ${Int[${Me.Y}]}
        /varset RV_DistanceTimer 15
        } 
       }   
     
      /varcalc iCount ${iCount}+1
      /goto :AnchorMoveLoop
  
  /return
  
  sub HitObstacle 
     /keypress forward 
     /keypress back hold 
     /delay 5 
     /keypress back 
     /if (${Math.Rand[2]}) { 
        /keypress strafe_right hold 
        /delay 3 
        /keypress strafe_right 
     } else { 
        /keypress strafe_left hold 
        /delay 3 
        /keypress strafe_left 
     } 
     /keypress forward hold 
  /return
  
  Sub Event_Slain
  /delay 20s
  /load spellset
  /call Wait4Rez 
  /return
  
  
  Sub Event_Returntoanchor
  /stand
  /call CheckAnchor
  /return
  
  Sub Event_Tag
  /stick off
  /attack off
  /assist ${Puller}
  /face fast
  /stick 12
  /gsay Tagging >>> ${Target.CleanName} <<<
  /call cast "Serene Command" gem2 2s
  /delay 3s
  /call cast "Force of Piety" gem1 1s
  /return
  
  
  Sub Event_Attack
  /attack off
  /keypress esc
  /stand
  /attack off
  /call CheckAnchor
  /return
  
  Sub CheckBuffs
  /echo no buff checking atm!
  
  /return
  
  Sub Event_Agro
  /doability "taunt"
  /call cast "Force of Piety" gem1 1s 
  /return
 
Pay not attention to this

Users who are viewing this thread

Back
Top