Code: Select all
| Spell gem as follow
| 1 : Superior Heal
| 2 : Celestial Healing
| 3 : Armor of Faith
| 4 : Reso
| 5 : Symbol
| 6 : Instill
| 7 : A dd spell
| 8 : complite Heal
#turbo 75
#define MasterName v50
#define CmdArrayNum v51
#define CmdArraySize v52
#define GroupMember v53
#define GroupMax v54
#define ChatInput1 v55
#define ChatInput2 v56
#define ChatInput3 v57
#define SitAfterCast v58
#define MyXLoc v59
#define MyYLoc v60
#include SpellSub.mac
#chat tell
Sub Main
/varset MasterName $p0
/varset a(1,0) afk
/varset a(1,1) accept
/varset a(1,2) reject
/varset a(1,3) invite
/varset a(1,4) hp
/varset a(1,5) heal
/varset a(1,6) ch
/varset a(1,7) ce
/varset a(1,8) dd
/varset a(1,9) symbol
/varset a(1,10) ac
/varset a(1,11) root
/varset a(1,12) mana
/varset a(1,13) follow
/varset a(1,14) break
/varset a(1,15) evac
/varset a(1,16) moveto
/varset CmdArraySize 17
/varset CmdArrayNum 0
/call CheckArgs $p0
:MainLoop
/call CheckGrpHealth
/doevents
/varset CmdArrayNum 0
/goto :MainLoop
/return
Sub CheckArgs
/if "$MasterName"=="" {
/echo Usage: /macro cleric <MasterName>
/endmacro
}
/return
Sub CheckGrpHealth
/varset GroupMember 0
/varcalc GroupMax $group(count)-1
:GroupLoop
/doevents
/if n $spawn($group($GroupMember),hp,pct)<41 {
/if n $spawn($group($GroupMember),hp,pct)>=1 {
/if "$spawn($group($GroupMember),class)"=="Warrior" /call Tankheal
/if "$spawn($group($GroupMember),class)"=="Paladin" /call Tankheal
/if "$spawn($group($GroupMember),class)"=="Shadow Knight" /call Tankheal
/if "$spawn($group($GroupMember),class)"=="Monk" /call Tankheal
/if "$spawn($group($GroupMember),class)"=="Ranger" /call Tankheal
}
}
/if n $spawn($group($GroupMember),hp,pct)>=1 {
/if n $spawn($group($GroupMember),hp,pct)<41 {
/call CasterHeal
}
}
/if n $GroupMember>=$GroupMax /return
/varadd GroupMember 1
/doevents
/goto :GroupLoop
/return
Sub Tankheal
/if n $group($GroupMember)==$char(id) /press F1
/if n $group($GroupMember)!=$char(id) /target id $group($GroupMember)
/stand
/g COMPLETE HEAL on %T in 10seconds
/call SpellSub 8 115
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Casterheal
/if n $group($GroupMember)==$char(id) /press F1
/if n $group($GroupMember)!=$char(id) /target id $group($GroupMember)
/stand
/g Healing %T
/call SpellSub 2 50
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Event_Chat
/varset ChatInput1 "$p1"
/varset ChatInput2 "$p2"
/if "$MasterName"~~"$ChatInput1" {
:ArrayTime
/if "$arg(1,"$p2")"=="$a(1,$CmdArrayNum)" {
/call Do-$a(1,$CmdArrayNum) $ChatInput2
/return
}
/varadd CmdArrayNum 1
/if n $CmdArrayNum>=$CmdArraySize /return
/goto :ArrayTime
}
/return
Sub Do-afk
/afk
/return
Sub Do-accept
/invite
/return
Sub Do-reject
/disband
/return
Sub Do-invite
/invite $MasterName
/return
Sub Do-hp
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/tell "$MasterName" HP Buff on %T
/call SpellSub 4 65
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-heal
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/g HP Healing %T
/call SpellSub 1 50
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-ch
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/g Complete Heal on %T. 10 Seconds.
/call SpellSub 8 105
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-ce
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/g Celestial Healing %T
/call SpellSub 2 45
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-dd
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/tell "$MasterName" Casting DD on %T
/call SpellSub 2 45
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-symbol
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/g Casting Symbol on %T
/call SpellSub 5 55
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-ac
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/tell Casting AC Buff on %T
/call SpellSub 3 85
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-root
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
/stand
/g Rooting %T
/call SpellSub 6 40
/if "$SitAfterCast"=="1" /sit on
/press esc
/return
Sub Do-mana
/dismount
/press F1
/g "$char(mana,pct)"m
/press esc
/press esc
/sit on
/return
Sub Do-follow
/target $MasterName
/face
/follow
/return
Sub Do-break
/press right
/return
Sub Do-moveto
/sit off
/varset countdown 0
/varset MyXLoc $char(x)
/varset MyYLoc $char(y)
/if n $strlen("$arg(1,"$p1"))>0 {
/if "$arg(1,"$p1")"=="$char(name)" {
/press F1
}else{
/target $arg(1,"$p1")
}
}
/if n "$strlen("$arg(1,"$p1"))"<="0" {
/assist $MasterName
/delay 3
}
:gotopointloop
/if $target()==FALSE {
/sendkey up up
/return
}
/face fast
/if n $target(distance)>15 /sendkey down up
/if n $target(distance)<=15 {
/sendkey up up
/return
}
/face fast
/if n $countdown>=3 {
/call Detectobst
/varset countdown 0
}
/varadd countdown 1
/goto :gotopointloop
}
/sendkey up up
/face
/return
Sub Detectobst
/if n $MyXLoc==$char(x) /if $MyYLoc==$char(y) /call Hitobst 5
/varset MyXLoc $char(x)
/varset MyYLoc $char(y)
/return
sub Hitobst
/sendkey up up
/sendkey down down
/if n $rand(99)>50 {
/delay 2s
/sendkey up down
/sendkey down Right
/delay $p0
/sendkey up Right
/sendkey down up
/delay 2
/sendkey up up
} else {
/delay 2
/sendkey up down
/sendkey down left
/delay $p0
/sendkey up left
/sendkey down up
/delay 2s
/sendkey up up
}
/sendkey up down
/sendkey up Right
/sendkey up Left
/sendkey down up
/return
Sub Do-evac
/call Do-moveto evac $MasterName
|| move to master for evac
/return

