genbot.mac Generic Bot macro for any class. V8 with ini

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

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

Post by grimjack » Thu Nov 13, 2003 4:49 pm

crisdan wrote:Think we can come up with a readme for genbot Grim ?

You da man....Grim
If I get some extra time I may. If someone who uses it a lot would want to spearhead the project It'd be greatly appriciated. I'll add any comments that get missed.

Thanks
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

LordGiddion
a snow griffon
a snow griffon
Posts: 352
Joined: Sat Sep 13, 2003 6:12 pm
Contact:

Post by LordGiddion » Fri Nov 14, 2003 10:32 am

Attack ID code as requested add to your personal.inc

Code: Select all

   Sub Do-dttackid
        /target ID @param0
        /if $target(id)==@param0 /attack on
    /return


Bilbos

Heal

Post by Bilbos » Tue Nov 18, 2003 7:55 am

My boted cleric wont heal himself. Only others in group.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Tue Nov 18, 2003 9:00 am

hehe mine heals himself after ever CH or zone dont kow whats better oom cleric or one that wont heal himself.

rencro
Custom Builder
Custom Builder
Posts: 56
Joined: Sat Sep 27, 2003 12:39 am

Post by rencro » Tue Nov 18, 2003 12:18 pm

Mine works flawlessly :D

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Tue Nov 18, 2003 12:28 pm

Mine works great also. Might be your INI settings. Maybe delete it and have it regenerate and re-fill in the settings.

User avatar
Undies
a ghoul
a ghoul
Posts: 94
Joined: Mon Oct 20, 2003 9:12 pm

Post by Undies » Wed Nov 19, 2003 12:10 am

How do you command the bot in a chat channel?

I figured

ListenChat=1

and

ListenChan=Fred

in the ini file, then /join Fred inside eq then just send commands in that channel. eg. if it is the first new chanel for the master

;1 cmds

should return the command response, but instead I get nothing.

What am I doing wrong?

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

Post by grimjack » Wed Nov 19, 2003 1:42 am

Undies wrote:How do you command the bot in a chat channel?

I figured

ListenChat=1

and

ListenChan=Fred

in the ini file, then /join Fred inside eq then just send commands in that channel. eg. if it is the first new chanel for the master

;1 cmds

should return the command response, but instead I get nothing.

What am I doing wrong?
Try /1 cmds
Messages sent with ; don't trigger events properly for some reason.
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

Guest

Commands from the bot itself?

Post by Guest » Wed Nov 19, 2003 3:22 pm

Is there a way to do commands to the bot from the botted character itself? like /anchor or /stick?

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Thu Nov 20, 2003 11:45 am

Grimjack,
Is there a way currently in the genbot script to twist songs with a bard? I don't see anything bard specific in here. Do you plan on adding that?

The script works great for all my other characters but I'm just trying to find a way to allow my bard not only to twist but melee, follow etc..

gnome001
a ghoul
a ghoul
Posts: 109
Joined: Fri Jan 24, 2003 1:01 am

Post by gnome001 » Thu Nov 20, 2003 8:51 pm

you would add the bard twisting in the personal.inc file i'd imagine, just like i had to add the shammy canning in mine.

no clue how to do it, but i'd image that would be where you'd put it...

maybe take something from some of the other bard twist macros and try to work it into the personal.inc file.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Sat Nov 22, 2003 4:46 pm

Hacked in some twisting code from twist.mac. Seems to work fine. Had to get my bard working as a bot :D

This is just Grimjack's personal.inc with that code added in. Thanks to grimjack and the authors of twist.mac.

Code: Select all

|personal.inc 
|Personal commands module example. 
|Version 8.51 
|Date:11/06/2003 9:23am 
| 
| 
| 
| 
| 


[color=red]#event twistMissedNote "You miss a note, bringing your song to a close!" 
#event twistRecovered "You haven't recovered yet..."[/color]

Sub PersonalCommands 
   /varset Commands(0,0) stick 
   /varset Commands(0,1) fire 
   /varset Commands(0,2) ice 
   /varset Commands(0,3) root 
   /varset Commands(0,4) snare 
   /varset Commands(0,5) invis 
   /varset Commands(0,6) door 
   /varset Commands(0,7) mountup 
   /varset Commands(0,8) dismount 
   /varset Commands(0,9) lure 
   /varset Commands(0,10) lev 
   /varset Commands(0,11) hide 
   /varset Commands(0,12) sneak 
   /varset Commands(0,13) mask 
   /varset Commands(0,14) bp 
   /varset Commands(0,15) patch 
   /varset Commands(0,16) disc 
   /varset Commands(0,17) thorn 
   /varset Commands(0,18) buff 
   /varset Commands(0,19) groupbuff 
   /varset Commands(0,20) regen 
   /varset Commands(0,21) hot 
   /varset Commands(0,22) wood 
   /varset Commands(0,23) cure 
   /varset Commands(0,24) nuke 
   /varset Commands(0,25) slow 
   /varset Commands(0,26) debuff 
   /varset Commands(0,27) petbuff 
   /varset Commands(0,28) reportlom 
   /varset Commands(0,29) setlompct 
   /varset Commands(0,30) ear 
   /varset Commands(0,31) shield 
   /varset Commands(0,32) cobalt 
   /varset Commands(0,33) camo 
   /varset Commands(0,34) dcharm 
   /varset Commands(0,35) stuna 
   /varset Commands(0,36) stunb 
   /varset Commands(0,37) chainstun 
   /varset Commands(0,38) ddstuna 
   /varset Commands(0,39) ddstunb 
   /varset Commands(0,40) mezlow 
   /varset Commands(0,41) mezhigh 
   /varset Commands(0,42) mezae 
   /varset Commands(0,43) autobehind 
   /varset Commands(0,44) exp 
   /varset Commands(0,45) random 

[color=red]| --- Start Twist hack
   /varset Commands(0,46) twist
   /varset ArrayPers 46 
| --- End Twist hack[/color]


/return 

Sub SetupPersonalVars 
   /declare FireSpell global 
   /varset FireSpell "$ini(@IniFile,"Personal",FireSpell)" 
   /if "@FireSpell"=="NOTFOUND" /ini "@IniFile" Personal FireSpell "Fire Spell" 
   /declare IceSpell global 
   /varset IceSpell "$ini(@IniFile,"Personal",IceSpell)" 
   /if "@IceSpell"=="NOTFOUND" /ini "@IniFile" Personal IceSpell "Ice Spell" 
   /declare NukeSpell global 
   /varset NukeSpell "$ini(@IniFile,"Personal",NukeSpell)" 
   /if "@NukeSpell"=="NOTFOUND" /ini "@IniFile" Personal NukeSpell "Nuke Spell" 
   /declare RootSpell global 
   /varset RootSpell "$ini(@IniFile,"Personal",RootSpell)" 
   /if "@RootSpell"=="NOTFOUND" /ini "@IniFile" Personal RootSpell "Root Spell" 
   /declare SnareSpell global 
   /varset SnareSpell "$ini(@IniFile,"Personal",SnareSpell)" 
   /if "@SnareSpell"=="NOTFOUND" /ini "@IniFile" Personal SnareSpell "Snare Spell" 
   /declare InvisSpell global 
   /varset InvisSpell "$ini(@IniFile,"Personal",InvisSpell)" 
   /if "@InvisSpell"=="NOTFOUND" /ini "@IniFile" Personal InvisSpell "Invis Spell" 
   /declare SelfInvisSpell global 
   /varset SelfInvisSpell "$ini(@IniFile,"Personal",SelfInvisSpell)" 
   /if "@SelfInvisSpell"=="NOTFOUND" /ini "@IniFile" Personal SelfInvisSpell "Self Invis Spell" 
   /declare LureSpell global 
   /varset LureSpell "$ini(@IniFile,"Personal",LureSpell)" 
   /if "@LureSpell"=="NOTFOUND" /ini "@IniFile" Personal LureSpell "Lure Spell" 
   /declare SlowSpell global 
   /varset SlowSpell "$ini(@IniFile,"Personal",SlowSpell)" 
   /if "@SlowSpell"=="NOTFOUND" /ini "@IniFile" Personal SlowSpell "Slow Spell" 
   /declare DebuffSpell global 
   /varset DebuffSpell "$ini(@IniFile,"Personal",DebuffSpell)" 
   /if "@DebuffSpell"=="NOTFOUND" /ini "@IniFile" Personal DebuffSpell "Debuff Spell" 
   /declare LevSpell global 
   /varset LevSpell "$ini(@IniFile,"Personal",LevSpell)" 
   /if "@LevSpell"=="NOTFOUND" /ini "@IniFile" Personal LevSpell "Levitation Spell" 
   /declare RegenSpell global 
   /varset RegenSpell "$ini(@IniFile,"Personal",RegenSpell)" 
   /if "@RegenSpell"=="NOTFOUND" /ini "@IniFile" Personal RegenSpell "Regen Spell" 
   /declare HotSpell global 
   /varset HotSpell "$ini(@IniFile,"Personal",HotSpell)" 
   /if "@HotSpell"=="NOTFOUND" /ini "@IniFile" Personal HotSpell "Heal Over Time Spell" 
   /declare MountItem global 
   /varset MountItem "$ini(@IniFile,"Personal",MountItem)" 
   /if "@MountItem"=="NOTFOUND" /ini "@IniFile" Personal MountItem "Name of Mount Item" 
   /declare BuffSpell1 global 
   /varset BuffSpell1 "$ini(@IniFile,"Personal",BuffSpell1)" 
   /if "@BuffSpell1"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell1 "Name of Buff spell 1" 
   /declare BuffSpell2 global 
   /varset BuffSpell2 "$ini(@IniFile,"Personal",BuffSpell2)" 
   /if "@BuffSpell2"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell2 "Name of Buff spell 2" 
   /declare BuffSpell3 global 
   /varset BuffSpell3 "$ini(@IniFile,"Personal",BuffSpell3)" 
   /if "@BuffSpell3"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell3 "Name of Buff spell 3" 
   /declare BuffSpell4 global 
   /varset BuffSpell4 "$ini(@IniFile,"Personal",BuffSpell4)" 
   /if "@BuffSpell4"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell4 "Name of Buff spell 4" 
   /declare BuffSpell5 global 
   /varset BuffSpell5 "$ini(@IniFile,"Personal",BuffSpell5)" 
   /if "@BuffSpell5"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell5 "Name of Buff spell 5" 
   /declare BuffSpell6 global 
   /varset BuffSpell6 "$ini(@IniFile,"Personal",BuffSpell6)" 
   /if "@BuffSpell8"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell6 "Name of Buff spell 6" 
   /declare BuffSpell7 global 
   /varset BuffSpell7 "$ini(@IniFile,"Personal",BuffSpell7)" 
   /if "@BuffSpell7"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell7 "Name of Buff spell 7" 
   /declare BuffSpell8 global 
   /varset BuffSpell8 "$ini(@IniFile,"Personal",BuffSpell8)" 
   /if "@BuffSpell8"=="NOTFOUND" /ini "@IniFile" Personal BuffSpell8 "Name of Buff spell 8" 
   /declare GBuffSpell1 global 
   /varset GBuffSpell1 "$ini(@IniFile,"Personal",GBuffSpell1)" 
   /if "@GBuffSpell1"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell1 "Name of Group Buff spell 1" 
   /declare GBuffSpell2 global 
   /varset GBuffSpell2 "$ini(@IniFile,"Personal",GBuffSpell2)" 
   /if "@GBuffSpell2"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell2 "Name of Group Buff spell 2" 
   /declare GBuffSpell3 global 
   /varset GBuffSpell3 "$ini(@IniFile,"Personal",GBuffSpell3)" 
   /if "@GBuffSpell3"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell3 "Name of Group Buff spell 3" 
   /declare GBuffSpell4 global 
   /varset GBuffSpell4 "$ini(@IniFile,"Personal",GBuffSpell4)" 
   /if "@GBuffSpell4"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell4 "Name of Group Buff spell 4" 
   /declare GBuffSpell5 global 
   /varset GBuffSpell5 "$ini(@IniFile,"Personal",GBuffSpell5)" 
   /if "@GBuffSpell5"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell5 "Name of Group Buff spell 5" 
   /declare GBuffSpell6 global 
   /varset GBuffSpell6 "$ini(@IniFile,"Personal",GBuffSpell6)" 
   /if "@GBuffSpell6"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell6 "Name of Group Buff spell 6" 
   /declare GBuffSpell7 global 
   /varset GBuffSpell7 "$ini(@IniFile,"Personal",GBuffSpell7)" 
   /if "@GBuffSpell7"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell7 "Name of Group Buff spell 7" 
   /declare GBuffSpell8 global 
   /varset GBuffSpell8 "$ini(@IniFile,"Personal",GBuffSpell8)" 
   /if "@GBuffSpell8"=="NOTFOUND" /ini "@IniFile" Personal GBuffSpell8 "Name of Group Buff spell 8" 
   /declare PetBuffSpell1 global 
   /varset PetBuffSpell1 "$ini(@IniFile,"Personal",PetBuffSpell1)" 
   /if "@PetBuffSpell1"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell1 "Name of Pet Buff spell 1" 
   /declare PetBuffSpell2 global 
   /varset PetBuffSpell2 "$ini(@IniFile,"Personal",PetBuffSpell2)" 
   /if "@PetBuffSpell2"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell2 "Name of Pet Buff spell 2" 
   /declare PetBuffSpell3 global 
   /varset PetBuffSpell3 "$ini(@IniFile,"Personal",PetBuffSpell3)" 
   /if "@PetBuffSpell3"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell3 "Name of Pet Buff spell 3" 
   /declare PetBuffSpell4 global 
   /varset PetBuffSpell4 "$ini(@IniFile,"Personal",PetBuffSpell4)" 
   /if "@PetBuffSpell4"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell4 "Name of Pet Buff spell 4" 
   /declare PetBuffSpell5 global 
   /varset PetBuffSpell5 "$ini(@IniFile,"Personal",PetBuffSpell5)" 
   /if "@PetBuffSpell5"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell5 "Name of Pet Buff spell 5" 
   /declare PetBuffSpell6 global 
   /varset PetBuffSpell6 "$ini(@IniFile,"Personal",PetBuffSpell6)" 
   /if "@PetBuffSpell6"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell6 "Name of Pet Buff spell 6" 
   /declare PetBuffSpell7 global 
   /varset PetBuffSpell7 "$ini(@IniFile,"Personal",PetBuffSpell7)" 
   /if "@PetBuffSpell7"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell7 "Name of Pet Buff spell 7" 
   /declare PetBuffSpell8 global 
   /varset PetBuffSpell8 "$ini(@IniFile,"Personal",PetBuffSpell8)" 
   /if "@PetBuffSpell8"=="NOTFOUND" /ini "@IniFile" Personal PetBuffSpell8 "Name of Pet Buff spell 8" 
   /declare ReportLom global 
   /varset ReportLom "$ini(@IniFile,"Personal",ReportLom)" 
   /if "@ReportLom"=="NOTFOUND" /ini "@IniFile" Personal ReportLom 0 
   /declare LomPct global 
   /varset LomPct "$ini(@IniFile,"Personal",LomPct)" 
   /if "@LomPct"=="NOTFOUND" /ini "@IniFile" Personal LomPct 10 
   /declare LomMsg global 
   /varset LomMsg $ini(@IniFile,"Personal",LomMsg)" 
   /if "@LomMsg"=="NOTFOUND" /ini "@IniFile" Personal LomMsg "I'm getting LOM" 
   /declare StunA global 
   /varset StunA "$ini(@IniFile,"Personal",StunA)" 
   /if "@StunA"=="NOTFOUND" /ini "@IniFile" Personal StunA "StunA Spell" 
   /declare StunB global 
   /varset StunB "$ini(@IniFile,"Personal",StunB)" 
   /if "@StunB"=="NOTFOUND" /ini "@IniFile" Personal StunB "StunB Spell" 
   /declare StunC global 
   /varset StunC "$ini(@IniFile,"Personal",StunC)" 
   /if "@StunC"=="NOTFOUND" /ini "@IniFile" Personal StunC "StunC Spell" 
   /declare DDStunA global 
   /varset DDStunA "$ini(@IniFile,"Personal",DDStunA)" 
   /if "@DDStunA"=="NOTFOUND" /ini "@IniFile" Personal DDStunA "DDStunA Spell" 
   /declare DDStunB global 
   /varset DDStunB "$ini(@IniFile,"Personal",DDStunB)" 
   /if "@DDStunB"=="NOTFOUND" /ini "@IniFile" Personal DDStunB "DDStunB Spell" 
   /declare MezLow global 
   /varset MezLow "$ini(@IniFile,"Personal",MezLow)" 
   /if "@MezLow"=="NOTFOUND" /ini "@IniFile" Personal MezLow "MezLow Spell" 
   /declare MezHigh global 
   /varset MezHigh "$ini(@IniFile,"Personal",MezHigh)" 
   /if "@MezHigh"=="NOTFOUND" /ini "@IniFile" Personal MezHigh "MezHigh Spell" 
   /declare MezAE global 
   /varset MezAE "$ini(@IniFile,"Personal",MezAE)" 
   /if "@MezAE"=="NOTFOUND" /ini "@IniFile" Personal MezAE "MezAE Spell"    
   /declare AutoBehind global 
   /varset AutoBehind "$ini(@IniFile,"Personal",AutoBehind)" 
   /if "@AutoBehind"=="NOTFOUND" /ini "@IniFile" Personal AutoBehind 0 

[color=red]| --- Start Twist hack
   /declare twistncSongList   global 
   /varset twistncSongList "$ini(@IniFile,"Personal",twistncSongList)" 
   /if "@twistncSongList"=="NOTFOUND" /ini "@IniFile" Personal twistncSongList "Non Combat Spell gem twist order"

   /declare twistcSongList   global 
   /varset twistcSongList "$ini(@IniFile,"Personal",twistcSongList)" 
   /if "@twistcSongList"=="NOTFOUND" /ini "@IniFile" Personal twistcSongList "Combat Spell gem twist order"
| --- End Twist hack[/color]


    
   |||||||||||||||||||||||| 
   |Non INI vars. 
   /declare LomTimer timer 

[color=red]| --- Start Twist hack
   /declare twistCASTTIME   global 
   /declare twistcursong    global 
   /declare twistnncsongs   global 
   /declare twistncsongs   global 
   /declare twistprevsong   global 
   /declare twistSingTime   timer 
   /declare twistI      global 
   /declare twistJ      global 
   /declare twistncSongArray   array 
   /declare twistcSongArray   array 
   /declare DoTwist     global

   /varset twistCASTTIME   31 
   /varset twistcursong    1 
   /varset twistnncsongs $strlen(@twistncSongList) 
   /varset twistncsongs $strlen(@twistcSongList) 

   /for twistI 1 to @twistnncsongs 
      /varcalc twistJ $int(@twistI-1) 
      /varset twistncSongArray(@twistI) $mid(@twistJ,1,@twistncSongList) 
   /next twistI 
   /for twistI 1 to @twistncsongs 
      /varcalc twistJ $int(@twistI-1) 
      /varset twistcSongArray(@twistI) $mid(@twistJ,1,@twistcSongList) 
   /next twistI 
| --- End Twist hack[/color]

/return 

Sub TellCmds-personal 
   /declare counter local 
   /declare cmds local 
   /varset cmds "" 
   /for counter 0 to @ArrayPers 
      /varcat cmds "@Commands(0,@counter), " 
   /next counter 
   /call ChatOut 2 @MasterName "@cmds." 
/return 


|Things that you want to happen every loop through the macro go in this sub. 
Sub PersonalMain 
   /if n @ReportLom==1 /call CheckMana 
   /if n @AutoBehind==1 { 
      /if n @Combatstatus==1 { 
         /if $target()==TRUE { 
            /if n $distance($calc($target(y)-$cos($target(heading))*10),$calc($target(x)-$sin($target(heading))*10))>6 { 
               /call Do-behind 
            } 
         } 
      } 
   } 


[color=red]| --- Start Twist hack
    /if n @DoTwist==1 {
    /if "$char(state)"!="SIT" { 
       /if "$combat"=="TRUE" /if n @twistSingTime<=0 /call twistSing @twistcSongArray(@twistcursong) 
       /if "$combat"!="TRUE" /if n @twistSingTime<=0 /call twistSing @twistncSongArray(@twistcursong) 
    } 
    /if $char(state)=="DUCK" /press d 
    /doevents
  }
| --- End Twist hack[/color]

/return 

Sub CheckMana 
   /if @LomTimer>0 { 
      /if $char(mana,pct)<@LomPct { 
         /call ChatOut 5 @MasterName "@LomMsg" 
         /varset LomTimer 2m 
      } 
   } 
/return 

||||||||||||||||||||||||||||||||||||||||||| 

[color=red]| --- Start Twist hack
Sub Do-twist 
    /if n @DoTwist==1 {
    /varset DoTwist 0
    } else {
    /varset DoTwist 1
    }
/return 
| --- End Twist hack[/color]

Sub Do-fire 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-fireParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-fireParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @FireSpell on %t." 
   /call SpellSub "@FireSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-lure 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-lureParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-lureParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @LureSpell on %t." 
   /call SpellSub "@LureSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-ice 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-iceParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-iceParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @IceSpell on %t." 
   /call SpellSub "@IceSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-root 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-rootParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-rootParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @RootSpell on %t." 
   /call SpellSub "@RootSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-snare 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-snareParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-snareParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @SnareSpell on %t." 
   /call SpellSub "@SnareSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-stick 
   /if $char(state)==SIT /stand 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $target(id)!=$char(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $target(id)!=$char(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-stickParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-stickParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Using Staff of Temprate Flux on %t." 
   /stand 
   /cast item "staff of temperate flux" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-invis 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if $defined(Param2)==FALSE { 
        /if "@Param1"=="me" { 
           /target @MasterName 
        } else /if "@Param1"=="yourself" { 
           /press F1 
           /if n $char(id)!=$target(id) /press F1 
           /call ChatOut 5 @MasterName "Casting @SelfInvisSpell on %t." 
           /call SpellSub "@SelfInvisSpell" 
           /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
           /press esc 
           /return 
        } else /if "@Param1"=="$char(name)" { 
           /press F1 
           /if n $char(id)!=$target(id) /press F1 
           /call ChatOut 5 @MasterName "Casting @SelfInvisSpell on %t." 
           /call SpellSub "@SelfInvisSpell" 
           /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
           /press esc 
           /return 
        } else /target "@Param1" 
   } else /if $defined(Param3)==FALSE { 
      /target "@Param1 @Param2" 
   } else /if $defined(Param4)==FALSE { 
      /target "@Param1 @Param2 @Param3" 
   } else /target "@Param1 @Param2 @Param3 @Param4" 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @InvisSpell on %t. 
   /call SpellSub "@InvisSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
   /press esc 
/return 


Sub Do-lev 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-levParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-levParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 3 @MasterName "Casting @LevSpell on %t." 
   /call SpellSub "@LevSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
Sub Do-setlompct 
   /if $defined(Param1)==FALSE /return 
   /varset LomPct @Param1 
   /call ChatOut 3 @MasterName "I'll let you know if I get below @LomPct percent mana" 
/return 

Sub Do-reportlom 
   /if n @ReportLom==1 { 
      /varset ReportLom 0 
      /call ChatOut 5 @MasterName "I'll stop spaming you about being LOM." 
      /return 
   } 
   /if n @ReportLom==0 { 
      /varset ReportLom 1 
      /call ChatOut 5 @MasterName "I'll let you know when I'm LOM." 
      /return 
   } 
/return 

Sub Do-mountup 
   /if $char(state)==SIT /stand 
   /cast item "@MountItem" 
   /call ChatOut 5 @MasterName "Summoning my mount." 
/return 

Sub Do-dismount 
   /dismount 
   /call ChatOut 5 @MasterName "I put away that damn mount." 
/return 

Sub Do-Door 
   /doort 
   /face door 
   /press u 
/return 

Sub Do-disc 
  /disc @Param1 
/return 

Sub Do-shield 
   /if "@Param1"=="me" { 
      /shield @MasterName 
      /return 
   } 
   /shield @Param1 
/return 


||||||||||||||||||||||||||||||||||||||||||||||||| 

Sub Do-hide 
   /doability Hide 
   /delay 2s 
   /if n $char(ability,"Hide")>0 /call ChatOut 5 @MasterName "I'm not hiding" 
   /if n $char(ability,"Hide")<=0 /call ChatOut 5 @MasterName "I am hiding." 
/return 

Sub Do-sneak 
   /doability Sneak 
   /delay 2s 
   /if n $char(ability,"Sneak")>0 /call ChatOut 5 @MasterName "I'm not sneaking atm" 
   /if n $char(ability,"Sneak")<=0 /call ChatOut 5 @MasterName "I'm sneaking" 
/return 

Sub Do-mask 
/if $char(state)==SIT /stand 
  /cast item "Mask of Deception" 
/return 

Sub Do-bp 
/if $char(state)==SIT /stand 
  /cast item "Brigand's Chestguard" 
/return 

Sub Do-patch 
/if $char(state)==SIT /stand 
   /cast item "Eyepatch of Plunder" 
/return 

Sub Do-ear 
/if $char(state)==SIT /stand 
   /cast item "Shrunken Goblin Skull Earring" 
/return 

|||||||||||||||||||||||||||||||||||||||||||| 

Sub Do-thorn 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-thornParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-thornParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 GROUP "Thorns on %t." 
   /call SpellSub "Shield of Bracken" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-buff 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-buffParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-buffParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /if $target()==FALSE { 
      /call ChatOut 5 @MasterName "What did you want me to target?" 
      /return 
   } 
   /if "@BuffSpell1"~~"Name of Buff" /got :EndBuffs 
   /call ChatOut 5 @MasterName "Buffing %t." 
   /call SpellSub "@BuffSpell1" 
   /if "@BuffSpell2"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell2" 
   /if "@BuffSpell3"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell3" 
   /if "@BuffSpell4"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell4" 
   /if "@BuffSpell5"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell5" 
   /if "@BuffSpell6"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell6" 
   /if "@BuffSpell7"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell7" 
   /if "@BuffSpell8"~~"Name of Buff" /got :EndBuffs 
   /call SpellSub "@BuffSpell8" 
   :EndBuffs 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-groupbuff 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-groupbuffParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-groupbuffParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $target()==FALSE { 
      /call ChatOut 5 @MasterName "What did you want me to target?" 
      /return 
   } 
   /if "@GBuffSpell1"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell1 on %t." 
   /call SpellSub "@GBuffSpell1" 
   /if "@GBuffSpell2"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell2 on %t." 
   /call SpellSub "@GBuffSpell2" 
   /if "@GBuffSpell3"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell3 on %t." 
   /call SpellSub "@GBuffSpell3" 
   /if "@GBuffSpell4"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell4 on %t." 
   /call SpellSub "@GBuffSpell4" 
   /if "@GBuffSpell5"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell5 on %t." 
   /call SpellSub "@GBuffSpell5" 
   /if "@GBuffSpell6"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell6 on %t." 
   /call SpellSub "@GBuffSpell6" 
   /if "@GBuffSpell7"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell7 on %t." 
   /call SpellSub "@GBuffSpell7" 
   /if "@GBuffSpell8"~~"Name of Group" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@GBuffSpell8 on %t." 
   /call SpellSub "@GBuffSpell8" 
   :EndGBuffs 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-petbuff 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-petbuffParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-petbuffParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $target()==FALSE { 
      /call ChatOut 5 @MasterName "What did you want me to target?" 
      /return 
   } 
   /if "@PetBuffSpell1"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell1 on %t." 
   /call SpellSub "@PetBuffSpell1" 
   /if "@PetBuffSpell2"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell2 on %t." 
   /call SpellSub "@PetBuffSpell2" 
   /if "@PetBuffSpell3"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell3 on %t." 
   /call SpellSub "@PetBuffSpell3" 
   /if "@PetBuffSpell4"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell4 on %t." 
   /call SpellSub "@PetBuffSpell4" 
   /if "@PetBuffSpell5"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell5 on %t." 
   /call SpellSub "@PetBuffSpell5" 
   /if "@PetBuffSpell6"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell6 on %t." 
   /call SpellSub "@PetBuffSpell6" 
   /if "@PetBuffSpell7"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell7 on %t." 
   /call SpellSub "@PetBuffSpell7" 
   /if "@PetBuffSpell8"~~"Name of Pet" /got :EndGBuffs 
   /call ChatOut 5 GROUP "@PetBuffSpell8 on %t." 
   /call SpellSub "@PetBuffSpell8" 
   :EndGBuffs 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-regen 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-regenParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-regenParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 GROUP "@RegenSpell on %t." 
   /call SpellSub "@RegenSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-hot 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-hotParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-hotParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 GROUP "Casting Heal over time - @HotSpell on %t." 
   /call SpellSub "@HotSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-wood 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-woodParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-woodParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $char(state)==SIT /stand 
   /call ChatOut 5 GROUP "Activating Spirit of Wood (22 minute reset)." 
   /alt activate 185 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 


Sub Do-cure 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-cureParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-cureParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $char(state)==SIT /stand 
   /call ChatOut 5 GROUP "Activating Radiant Cure (3 minute reset)." 
   /alt activate 153 
   /delay 50 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-nuke 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-nukeParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-nukeParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Nuking %t." 
   /call SpellSub "@NukeSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-slow 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-slowParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-slowParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @SlowSpell on %t." 
   /call SpellSub "@SlowSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-debuff 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-debuffParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-debuffParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @DebuffSpell on %t." 
   /call SpellSub "@DebuffSpell" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-cobalt 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-cobaltParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-cobaltParamLoop 
      } 
      /target pc @ParamString 
   } 
   /call ChatOut 3 @MasterName "Shrinking %t" 
   /cast item "cobalt bracer" 
/return 

Sub Do-camo 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-camoParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-camoParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $char(state)==SIT /stand 
   /call ChatOut 5 GROUP "Activating Camo" 
   /alt activate 80 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-dcharm 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-dcharmParamLoop 
      /if $defined(Param$int(@ParamCount))==TRUE { 
         /varcat ParamString " @Param$int(@ParamCount)" 
         /varadd ParamCount 1 
         /goto :Do-dcharmParamLoop 
      } 
      /target @ParamString 
   } 
   /delay 5 
   /if $char(state)==SIT /stand 
   /call ChatOut 5 GROUP "Dire Charming %T" 
   /alt activate 46 
   /delay 80 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-stuna 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-stunaParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-stunaParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @StunA on %t." 
   /call SpellSub "@StunA" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-stunb 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-stunbParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-stunbParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @StunB on %t." 
   /call SpellSub "@StunB" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-chainstun 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-chainstunParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-chainstunParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Chain Stunning." 
   :StunLoop 
   /if $target()==FALSE /return 
   /if @BreakOut==1 /return 
   /call SpellSub "@StunA" 
   /if $target()==FALSE /return 
   /if @BreakOut==1 /return 
   /call SpellSub "@StunB" 
   /if $target()==FALSE /return 
   /if @BreakOut==1 /return 
   /call SpellSub "@StunC" 
   /if $target()==FALSE /return 
   /if @BreakOut==1 /return 
   /goto :StunLoop 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-ddstuna 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-ddstunaParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-ddstunaParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @DDStunA on %t." 
   /call SpellSub "@DDStunA" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-ddstunb 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-ddstunbParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-ddstunbParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @DDStunB on %t." 
   /call SpellSub "@DDStunB" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-mezlow 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-mezlowParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-mezlowParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @MezLow on %t." 
   /call SpellSub "@MezLow" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-mezhigh 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-mezhighParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-mezhighParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @MezHigh on %t." 
   /call SpellSub "@MezHigh" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-mezae 
   /if $defined(Param1)==FALSE { 
      /assist @MasterName 
   } else /if "@Param1"=="me" { 
      /target pc @MasterName 
   } else /if "@Param1"=="yourself" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else /if "@Param1"=="$char(name)" { 
      /press F1 
      /if n $char(id)!=$target(id) /press F1 
   } else { 
      /declare ParamString local 
      /declare ParamCount local 
      /varset ParamCount 2 
      /varset ParamString "@Param1" 
      :Do-mezaeParamLoop 
         /if $defined(Param$int(@ParamCount))==TRUE { 
            /varcat ParamString " @Param$int(@ParamCount)" 
            /varadd ParamCount 1 
            /goto :Do-mezaeParamLoop 
         } 
      /target @ParamString 
   } 
   /delay 5 
   /call ChatOut 5 @MasterName "Casting @MezAE on %t." 
   /call SpellSub "@MezAE" 
   /if n @SitAfterCast==1 /varset SitTimer @DelayBeforeSit 
/return 

Sub Do-autobehind 
   /if $defined(Param1)==FALSE { 
      /if n @AutoBehind==0 /call ChatOut 3 @MasterName "I won't position myself behind the mob." 
      /if n @AutoBehind==1 /call ChatOut 3 @MasterName "I will position myself behind the mob." 
      /return 
   } 
   /if "@Param1"=="Off" { 
      /varset AutoBehind 0 
      /call ChatOut 5 @MasterName "I will no longer position myself behind the mob." 
   } 
   /if "@Param1"=="On" { 
      /varset AutoBehind 1 
      /call ChatOut 5 @MasterName "I will now position myself behind the mob." 
   } 
/return 

Sub Do-exp 
   /call ChatOut 5 @MasterName "I am at $int($char(exp)) percent exp. 
/return 

Sub Do-random 
   /if $defined(Param1)==FALSE /return 
   /if $defined(Param2)==FALSE { 
      /random @Param1 
      /return 
   } 
   /random @Param1 @Param2 
/return


[color=red]| --- Start Twist hack
Sub twistSing 
   /varset twistSingTime @twistCASTTIME 
   /stopsong 
   /cast @Param0 
   /varset twistprevsong @twistcursong 
   /varadd twistcursong 1 
   /if n @twistcursong>@twistnncsongs /varset twistcursong 1 
   /doevents 
/return 

Sub Event_twistMissedNote 
   /varset twistcursong @twistprevsong 
   /varset twistSingTime 0 
   /doevents 
/return 

Sub Event_twistRecovered 
   /varset twistSingTime 0 
   /varset twistcursong @twistprevsong 
   /doevents 
/return 
| --- End Twist hack[/color]

Narces
a lesser mummy
a lesser mummy
Posts: 37
Joined: Thu Aug 07, 2003 7:50 am

Post by Narces » Sun Nov 23, 2003 2:32 am

Hey GJ. Haven't had any problems with the script just an add on feature.

Idea:
Auto recast for items.
Monk epic/gloves, and some bard items have a real short duration and need to be constantly recast during fights. Now you don't want to spam these casts during the fight so I would prolly go on events, just recasting as they fade since most are instant.
Also, sometimes mobs like to dispell, so this would also keep from people having to make sure those things are recast since most people keep their instaclicks up top.

Love the script, really nice job and very flexible.

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

Post by grimjack » Sun Nov 23, 2003 6:58 am

Narces wrote:Hey GJ. Haven't had any problems with the script just an add on feature.

Idea:
Auto recast for items.
Monk epic/gloves, and some bard items have a real short duration and need to be constantly recast during fights. Now you don't want to spam these casts during the fight so I would prolly go on events, just recasting as they fade since most are instant.
Also, sometimes mobs like to dispell, so this would also keep from people having to make sure those things are recast since most people keep their instaclicks up top.

Love the script, really nice job and very flexible.
This can be done easily from the personal.inc. It's not really possible for me to add every feature for every class and every level. This is why I have designed it so that you can add your own subs and events in the personal.inc.

You need an event:
#Event ItemWoreOff "text here that triggers event."

and a sub:
Sub Event_ItemWoreOff
|code to eqip item if needed would go here.
/cast item "my item name"
|code to put item away would go here.
/return

Thanks
GrimJack
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

rencro
Custom Builder
Custom Builder
Posts: 56
Joined: Sat Sep 27, 2003 12:39 am

Post by rencro » Sun Nov 23, 2003 12:43 pm

Code: Select all

Sub PersonalMain  
   /if @Combatstatus=="1" /call Epic  
   /if @Combatstatus=="1" /call Mend
/return 

Sub Mend  
   /if n $char(ability,"Mend")<1 /return 
   /if n $char(hp,pct)<68 { 
      /if @Combatstatus=="1" {  
            /doability mend 
      } 
   } 
/return 

Sub Epic 
   /if n $char(buff,"Celestial Tranquility)<1 { 
      /if @Combatstatus=="1" { 
         /press 4 
      } 
   }    
/return 

This is how I did my monk before the individual ini settings came in. I just renamed genbot.mac to genmonk.mac and had it include permonk.inc instead of personal.inc, that had this code just fot the monk. Obviously I had Monk epic in hotkey 4. You can modify it even more if you have highest level of chanter haste, so that it will skip over the epic, but since no high level chanter in my group I left it like this. Dont have monk any longer so never updated to ini settings.