shaman.mac Basic shaman script

Macro depository for macros written before the user variable changes that broke all of them.

Moderator: MacroQuest Developers

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

shaman.mac Basic shaman script

Post by grimjack » Thu Jun 05, 2003 2:28 pm

Edit: Added say, gooup, and tell commands. 9 word max.
Edit: Added duck command to interupt spells.
Edit: Added stop command. This command will stop spells being cast and stop movement commands. Also added autoheal command.
/msg botname autoheal off will turn groupwatch and autohealing off
/msg botname autoheal on will turn groupwatch and autohealing on
/msg botname autoheal will report what it is currently set to.
Edit: Added a ton of melee commands and fixed tell.
Edit: Fixed melee commands that did not get pasted.
Edit: Fixed group tell and say bug. Now 9 word max.
Edit: Updated sn to use SpellSub as intended.
Edit: Added Kagonis' Array counter sub.

Code: Select all

|shaman.mac
|Generic bot for shaman.
|Make sure you edit this macro where I have marked.
|/tell botname cmds
|This command will send the master a list of commands.
|Version 2.06
|Grimjack

#turbo 75
#Event Enraged "has become ENRAGED" 
#Event Offrage "is no longer enraged"
#event Collapse "Your gate is too unstable, and collapses."
#event FollowOff "You are no longer auto-following"
#event RootOff "Your Immobilize spell has worn off."
#event NoLOS "You cannot see your target." 
#Event CastStart "You begin casting"
#Event CastFizzle "Your spell fizzles!"
#Event CastInterrupt "Your spell is interrupted."
#Event CastNoMana "Insufficient Mana to cast this spell"
#Event CastTooFar "Your target is out of range, get closer!"
#Event Recovered "You haven't recovered yet..."
#Event CastResist "Your target resisted "
#Event Distracted "You are too distracted to cast a spell now!"
#Event NoTarget "You must first select a target for this spell!"
#Event Sitting "You must be standing to cast a spell."
#Event NoMem "You do not seem to have that spell memorized."
#Event Stunned "You can't cast spells while stunned!"
#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
#define IsHealer v61
#define countdown v62
#define CmdList v70
#define RangeMin v71
#define RangeMax v72
#define FastRange v73
#define Combatstatus v70
#define Fail v94
#define DoAgain v95
#define StartCast v96
#define SpellSlot v97
#define SpellName v98
#define CastTime v99
#define CTimer t39
#chat tell

Sub Main
   /if n $strlen("$p0")<=0 {
     /echo Usage: /macro shaman <Master Name>
     /endmacro
   }
   /varset MasterName $p0
   /varset IsHealer 0
   /varset RangeMin 10
   /varset RangeMax 12
   /varset FastRange 15
   /varset Combatstatus 0
   /varset a(1,0) afk
   /varset a(1,1) accept
   /varset a(1,2) reject
   /varset a(1,3) invite
   /varset a(1,4) mana
   /varset a(1,5) follow
   /varset a(1,6) stop
   /varset a(1,7) evac
   /varset a(1,8) moveto
   /varset a(1,9) sit
   /varset a(1,10) stand
   /varset a(1,11) sn
   /varset a(1,12) camp
   /varset a(1,13) duck
   /varset a(1,14) run
   /varset a(1,15) say
   /varset a(1,16) tell
   /varset a(1,17) group
   /varset a(1,18) cmds
   /varset a(1,19) autoheal
   /varset a(1,20) target
   /varset a(1,21) notarget
   /varset a(1,22) assist
   /varset a(1,23) saytarget
   /varset a(1,24) attack
   /varset a(1,25) noattack
|||||||||||||||||||||||Personal Commands|||||||||||||||||||||||||||||||||
   /varset a(1,26) focus
   /varset a(1,27) heal
   /varset a(1,28) ch
   /varset a(1,29) slow
   /varset a(1,30) malo
   /varset a(1,31) avatar
   /varset a(1,32) regen
   /varset a(1,33) root
|||||||||||||||||||||||Personal Commands|||||||||||||||||||||||||||||||||
   /call CountArraySize 1
   /varset CmdArraySize $int($return)
   /varset CmdList "$a(1,0), $a(1,1), $a(1,2), $a(1,3), $a(1,4), $a(1,5) $a(1,6), $a(1,7), $a(1,8), $a(1,9), $a(1,10), $a(1,11), $a(1,12), $a(1,13), $a(1,14), $a(1,15), $a(1,16), $a(1,17), $a(1,18), $a(1,19), $a(1,20) $a(1,21), $a(1,22), $a(1,23), $a(1,24), $a(1,25), $a(1,26), $a(1,27), $a(1,28), $a(1,29), $a(1,30), $a(1,31), $a(1,32), $a(1,33), "$a(1,34), $a(1,35), $a(1,36), $a(1,37), $a(1,38), $a(1,39), $a(1,40)"
   /varset CmdArrayNum 0
   :MainLoop
   /call CheckGrpHealth
   /call Combatcheck
   /if $Combatstatus=="1" /call RangeSub 
|||||||||||||||||||||||Personal Commands|||||||||||||||||||||||||||||||||
|||||||||||||||||||||||Personal Commands|||||||||||||||||||||||||||||||||
   /doevents
   /varset CmdArrayNum 0
   /goto :MainLoop
/return

sub CountArraySize
   /varset l0 0
   :CountArrayLoop
    /if n $strlen("$a($p0,$l0)")<=0 {
       /goto :CountArrayEnd
   }
   /varadd l0 1
   /goto :CountArrayLoop
   :CountArrayEnd
/return $l0 

Sub CheckGrpHealth
   /varset GroupMember 0
   /varcalc GroupMax $group(count)-1
   /if n "$IsHealer"==0 /return
   :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 Combatcheck
   /if $EnrageVar=="1" {
      /if $target()=="TRUE" {
         /return
      } else {
         /varset EnrageVar 0
         /varset Combatstatus 0
      }
   }
   /if $target()=="FALSE" {
      /varset Combatstatus 0
      /if $combat=="TRUE" {
         /attack off
      }
      /return
   }
   /if $target()=="TRUE" {
      /if $combat=="TRUE" {
         /varset Combatstatus 1
         /return
      }
   }
/varset Combatstatus 0
/return



Sub Rangesub
   /face fast nopredict
   /if n $target(distance)>=$FastRange /call Fastmove
   /if n $target(distance)>$RangeMax {
      /press up
   }
   /if n $target(distance)<$RangeMin {
      /press down
   }
/return

Sub Fastmove
   :fastmoveloop
   /doevents
   /if $target()=="FALSE" {
      /varset Combatstatus 0
      /sendkey up up
      /if $combat=="TRUE" {
         /attack off
         /return
      }
   }
   /face fast nopredict
   /if n $target(distance)>$FastRange {
      /sendkey down up
   }
   /if n $target(distance)<=$FastRange {
         /if $Combatstatus=="1" {
            /if $EnrageVar=="0" {
            }
         }
      /sendkey up up
      /return
   }
   /goto :fastmoveloop
/return

Sub Event_Chat 
   /varset CmdArrayNum 0 
   /if "$MasterName"=="$p1" { 
      :ArrayTime 
      /if "$arg(1,"$p2")"=="$a(1,$CmdArrayNum)" { 
         /call Do-$a(1,$CmdArrayNum) $p2 
         /return 
      } 
      /varadd CmdArrayNum 1 
      /if n $CmdArrayNum>=$CmdArraySize /return 
      /goto :ArrayTime 
   } else { 
       /tell $MasterName $p1 told me: $p2 
   } 
/return 

Sub Do-target
   /if n $strlen("$p1")<=0 {
      /return
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /tell $MasterName my target is %t
/return

Sub Do-saytarget
   /tell $MasterName my target is %t
/return

Sub Do-assist
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 5
   } else /if n $strlen("$p2")<=0 {
      /assist "$p1"
   } else /if n $strlen("$p3")<=0 {
      /assist "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /assist "$p1 $p2 $p3"
   } else /assist "$p1 $p2 $p3 $p4"
   /tell $MasterName my target is %t
/return

Sub Do-attack
   /sit off
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /tell $MasterName Attacking %t
   /attack on
/return

Sub Do-noattack
   /attack off
/return

Sub Do-sit
   /sit off
   /sit
/return

Sub Do-stand
   /sit off
/return

Sub Do-notarget
   /press esc
   /press esc
   /press esc
/return

Sub Do-sn
   /assist $MasterName
   /if n $strlen("$p1")<=0 {
      /return
   } else /if n $strlen("$p2")<=0 {
      /tell "$MasterName" Casting $p1 on %T
      /call SpellSub $p1
   } else /if n $strlen("$p3")<=0 {
      /tell "$MasterName" Casting $p1 $p2 on %T
      /call SpellSub $p1 $p2
   } else /if n $strlen("$p4)<=0 {
      /tell "$MasterName" Casting $p1 $p2 $p3 on %T
      /call SpellSub $p1 $p2 $p3
   } else {
      /tell "$MasterName" Casting $p1 $p2 $p3 $p4 on %T
      /call SpellSub $p1 $p2 $p3 $p4
   /stand
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return 

Sub Do-afk
   /varset CmdArrayNum 0
   /if n $strlen("$p1")<=0 {
      /afk
   } else /if n $strlen("$p2")<=0 {
      /afk $p1
   } else /if n $strlen("$p3")<=0 {
      /afk $p1 $p2
   } else /if n $strlen("$p4")<=0 {
      /afk $p1 $p2 $p3
   } else /if n $strlen("$p5")<=0 {
      /afk $p1 $p2 $p3 $p4
   } else /if n $strlen("$p6")<=0 {
      /afk $p1 $p2 $p3 $p4 $p5
   } else /if n $strlen("$p7")<=0 {
      /afk $p1 $p2 $p3 $p4 $p5 $p6
   } else /if n $strlen("$p8")<=0 {
      /afk $p1 $p2 $p3 $p4 $p5 $p6 $p7
   } else /if n $strlen("$p9")<=0 {
      /afk $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8
   } else {
      /afk $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9
   }
   /afk
/return

Sub Do-say
   /varset CmdArrayNum 0
   /if n $strlen("$p1")<=0 {
      /return
   } else /if n $strlen("$p2")<=0 {
      /say $p1
   } else /if n $strlen("$p3")<=0 {
      /say $p1 $p2
   } else /if n $strlen("$p4")<=0 {
      /say $p1 $p2 $p3
   } else /if n $strlen("$p5")<=0 {
      /say $p1 $p2 $p3 $p4
   } else /if n $strlen("$p6")<=0 {
      /say $p1 $p2 $p3 $p4 $p5
   } else /if n $strlen("$p7")<=0 {
      /say $p1 $p2 $p3 $p4 $p5 $p6
   } else /if n $strlen("$p8")<=0 {
      /say $p1 $p2 $p3 $p4 $p5 $p6 $p7
   } else /if n $strlen("$p9")<=0 {
      /say $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8
   } else /if n $strlen("$p10")<=0 {
   } else {
      /say $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9
   }
/return

Sub Do-group
   /varset CmdArrayNum 0
   /if n $strlen("$p1")<=0 {
      /return
   } else /if n $strlen("$p2")<=0 {
      /g $p1
   } else /if n $strlen("$p3")<=0 {
      /g $p1 $p2
   } else /if n $strlen("$p4")<=0 {
      /g $p1 $p2 $p3
   } else /if n $strlen("$p5")<=0 {
      /g $p1 $p2 $p3 $p4
   } else /if n $strlen("$p6")<=0 {
      /g $p1 $p2 $p3 $p4 $p5
   } else /if n $strlen("$p7")<=0 {
      /g $p1 $p2 $p3 $p4 $p5 $p6
   } else /if n $strlen("$p8")<=0 {
      /g $p1 $p2 $p3 $p4 $p5 $p6 $p7
   } else /if n $strlen("$p9")<=0 {
      /g $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8
   } else /if n $strlen("$p10")<=0 {
   } else {
      /g "$p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9
   }
/return

Sub Do-tell
   /varset CmdArrayNum 0
   /if n $strlen("$p1")<=0 {
      /return
   } else /if n $strlen("$p2")<=0 {
      /return
   } else /if n $strlen("$p3")<=0 {
      /tell $p1 $p2
   } else /if n $strlen("$p4")<=0 {
      /t $p1 $p2 $p3
   } else /if n $strlen("$p5")<=0 {
      /t $p1 $p2 $p3 $p4
   } else /if n $strlen("$p6")<=0 {
      /t $p1 $p2 $p3 $p4 $p5
   } else /if n $strlen("$p7")<=0 {
      /t $p1 $p2 $p3 $p4 $p5 $p6
   } else /if n $strlen("$p8")<=0 {
      /t $p1 $p2 $p3 $p4 $p5 $p6 $p7
   } else /if n $strlen("$p9")<=0 {
      /t $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8
   } else {
      /t $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9
   }
/return


Sub Do-accept
   /press esc
   /press esc
   /invite
/return

Sub Do-reject
   /press esc
   /press esc
   /disband
/return

Sub Do-invite
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /tell $MasterName Inviting %t
   /invite
/return

Sub Do-mana
   /dismount
   /press F1
   /tell $MasterName $char(mana,pct)m
   /press esc
/return

Sub Do-follow
   /target $MasterName
   /face
   /follow
   /tell $MasterName Autofollow on %t.
/return

Sub Do-stop
   /tell $MasterName Stoping.
   /sendkey up up
   /varset Fail 1
   /press d
   /press d
   /press esc
   /press esc
   /press esc
   /press right
/return

Sub Do-evac
   /tell $MasterName Moving to you and casting Evac!
   /call Do-moveto evac $MasterName
   /delay 2s
   /call SpellSub "Evacuate"
/return 

Sub Do-sit
   /stand
   /sit on
/return

Sub Do-stand
   /stand
/return

Sub Do-camp
   /tell $MasterName Camping out.
   /stand
   /sit 
   /camp
/return  

Sub Do-duck
   /press d
   /varset Fail 1
   /varset CTimer 0
   /press d
/return  

Sub Do-autoheal
   /if n $strlen("$p1")<=0 {
      /tell $MasterName Autoheal=$IsHealer
      /return
   }
   /if $p1=="off" /varset IsHealer 0
   /if $p1=="on" /varset IsHealer 1
   /tell $MasterName Autoheal=$IsHealer
/return

Sub Do-cmds
   /tell "$MasterName" Commands: "$CmdList"
/return  

Sub Do-moveto
   /sit off
   /varset countdown 0
   /varset MyXLoc $char(x)
   /varset MyYLoc $char(y)
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /if $p1=="me" /target $MasterName
   /tell $MasterName Moving to %t.
   :gotopointloop
   /doevents
   /if $target()==FALSE {
      /sendkey up up
      /return
   }
   /face fast nopredict
   /if n $target(distance)>15 /sendkey down up
   /if n $target(distance)<=15 {
      /sendkey up up
      /return
   }
   /face fast nopredict
   /if n $countdown>=3 {
      /call Detectobst
      /varset countdown 0
   }
   /varadd countdown 1
   /doevents
   /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 2s
      /sendkey up up
   } else {
      /delay 2s
      /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 SpellSub
   /sendkey up up
   /if n Combatstatus==1 /delay 3s
   /varset Fail 0
   /varset SpellName "$p0"
   /varset SpellSlot "$char(gem,"$SpellName")"
   /varset CastTime "$spell("$SpellName",casttime)"
   :BeginCast
   /varset DoAgain 0
   /varset StartCast 0
   /call WaitForStart
   :TimerLoop
   /doevents
   /if n $DoAgain==1 /goto :BeginCast
   /if n $Fail==1 /return
   /doevents
   /if n $DoAgain==1 /goto :BeginCast
   /if n $Fail==1 /return
   /if n $CTimer>0 /goto :TimerLoop
   /delay 2
   /doevents
   /if n $DoAgain==1 /goto :BeginCast
/return


Sub WaitForStart
   /cast $SpellSlot
   :StartLoop
   /doevents
   /if n $Fail==1 /return
   /if n $DoAgain==1 /return
   /if n $StartCast==0 {
      /goto :StartLoop
   }
   /varset CTimer "$CastTime"s
/return

Sub Event_Enraged
   /if $target()=="TRUE" {
      /if n $Combatstatus==1 {
         /varset EnrageVar 1
         /attack off
      }
      /varset EnrageVar 1
   }
/return 

Sub Event_Offrage
   /if $target()=="TRUE" {
      /if n $Combatstatus==1 {
         /varset EnrageVar 0
         /attack
      
      }
      /varset EnrageVar 0
   }
/return

Sub Event_CastStart
   /varset StartCast 1
/return

Sub Event_CastFizzle
   /delay 2
   /varset DoAgain 1
/return

Sub Event_CastInterrupt
   /delay 2
   /varset DoAgain 1
/return

Sub Event_FollowOff
   /press esc
   /press esc
   /delay 5
   /tell $MasterName Auto Follow Off.
/return

Sub Event_Sitting
   /stand
   /delay 2
   /varset DoAgain 1
/return

Sub Event_CastTooFar
   /varset Fail 1
   /tell $MasterName Too far away.
   /varset CTimer 0
/return

Sub Event_Distracted
   /tell $MasterName I can't cast. I'm too distracted.
   /varset Fail 1
   /varset CTimer 0
/return

Sub Event_NoTarget
   /varset Fail 1
   /tell $MasterName I have no target to cast on.
   /varset CTimer 0
/return

Sub Event_NoMem
   /tell $MasterName That spell is not memed.
   /varset Fail 1
   /varset CTimer 0
/return

Sub Event_RootOff
   /tell $MasterName Root has worn off.
/return

Sub Event_CastNoMana
   /tell $MasterName OOM. Medding 16 seconds and trying again.
   /sit off
   /sit on
   /delay 16s
   /sit off
   /varset DoAgain 1
/return

Sub Event_Stunned
   /tell $MasterName Stunned waiting 3 seconds to try again.
   /delay 3s
   /varset DoAgain 1
/return

Sub Event_Recovered
   /delay 2s
   /varset DoAgain 1
/return

Sub Event_CastResist
   /tell $MasterName Resisted. Trying again.
   /varset DoAgain 1
/return

Sub Event_Collapse
   /varset DoAgain 1
/return

Sub Event_NoLOS
   /tell $MasterName I can't see my target.
   /varset Fail 1
   /varset CTimer 0
/return


Sub Tankheal
         /if n $group($GroupMember)==$char(id) /press F1
         /if n $group($GroupMember)!=$char(id) /target id $group($GroupMember)
         /stand
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||| Edit Edit heal message
||| Edit Spell to auto cast on Melee
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
         /g COMPLETE HEAL on %T in 10seconds
         /call SpellSub "Complete Heal"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
         /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
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||| Edit Edit heal message
||| Edit Spell to auto cast on Non Melee
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
         /g Healing %T
         /call SpellSub "Supernal Remedy"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
         /if "$SitAfterCast"=="1" /sit on
         /press esc
/return


|||||||||||||||||||||||Personal Commands|||||||||||||||||||||||||||||||||


Sub Do-focus
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting focus on %T
   /call SpellSub "Name of focus spell"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-heal
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting quick heal on %T
   /call SpellSub "Name of quick heal"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-ch
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting Shaman c-heal on %T. 10 Seconds.
   /call SpellSub "Name of Shaman C-heal"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-slow
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting slow on %T
   /call SpellSub "Name of slow"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-malo
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting malo on %T
   /call SpellSub "Name of malo or resist debuff"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-avatar
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting avatar on %T
   /call SpellSub "Name of avatar"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-regen
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting regen on %T
   /call SpellSub "Name of regen spell"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return

Sub Do-root
   /if n $strlen("$p1")<=0 {
      /assist $MasterName
      /delay 3
   } else /if n $strlen("$p2")<=0 {
      /target "$p1"
   } else /if n $strlen("$p3")<=0 {
      /target "$p1 $p2"
   } else /if n $strlen("$p4)<=0 {
      /target "$p1 $p2 $p3"
   } else /target "$p1 $p2 $p3 $p4"
   /stand
|||||||||||||||||||Begin Edit|||||||||||||||||||||||||||||||||||||||||||||||
   /tell "$MasterName" Casting root on %T
   /call SpellSub "Name of root spell"
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
   /if "$SitAfterCast"=="1" /sit on
   /press esc
/return
Last edited by grimjack on Thu Jun 12, 2003 4:05 am, edited 10 times in total.

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Thu Jun 05, 2003 4:13 pm

hehe...shamans don't get evac ...though they'd love it! :)

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

evac

Post by grimjack » Thu Jun 05, 2003 4:15 pm

They don't BUT they may want to move to group wh en evac is called.

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

Update

Post by grimjack » Thu Jun 05, 2003 4:45 pm

Minor logic update.

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

Revamp

Post by grimjack » Mon Jun 09, 2003 12:12 am

Revamp to be in line with my generic , cleric, and wizard bot macro's.
Last edited by grimjack on Tue Jun 10, 2003 7:34 am, edited 10 times in total.

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Mon Jun 09, 2003 12:14 am

Btw Grimjack ..I officially nominate you to be the keeper of the MQ Readme.html file. ;) ...you seem to know the scripting language well, and that's the core of the readme.html file...and god knows it needs a keeper ..hehe