ss44
Active member
- Joined
- Sep 13, 2005
- RedCents
- 31¢
This macro is set up for a lvl 70 pally atm, but can be changed very easily to fit any tank/lvl combo. Target the puller and start the macro. The tank will cast a spell when the target gets within range, and then run to the mob and start tanking.
Botevents.inc
Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~Tank Macro~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~By SS44, and some help from Siddin~~~~~~~~~~~
|~~~~~~~~~~~Changed from Tone's orig tank mac~~~~~~~~~~~
|Made for a paladin atm, but can be changed to warrior/sk
|~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~Just target the puller and start the macro~~~~~~
|~~~~~~~!~edit spells and such to reflect your tank.~~~~~
#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
Botevents.inc
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





