druidbot and chanterbot KISS

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

Moderator: MacroQuest Developers

Scriptless
orc pawn
orc pawn
Posts: 16
Joined: Fri Apr 23, 2004 4:20 pm

druidbot and chanterbot KISS

Post by Scriptless » Sat Apr 24, 2004 12:26 am

Real simple stuff, I'm having more fun writing this stuff then playing.
Thank you to those that gave me a hand.
These work and suggestions are appreciated.
you can use these in an XP group or have them stand around at a raid and buff people.
Both of these autowatch 2 self buffs.
The magic word only tells people how to get buffs.
You do not want people to know how to evac your group out of an XP area. :)

edit:: added "heal" for those begger monks
edit:: fixed the druid "stay"

Code: Select all

| druidbot KISS (keep it simple ...)
| Thank you to s16z, bob_the_builder, and Lax

#chat tell 
#Include Spellcast

Sub Main 
    /cleanup 
    /delay 1s 
    /g ok ready 

  :Mainloop 

/if (!${Me.Buff[Mask of the Stalker].ID}) {
    /tar myself
    /call cast "Mask of the Stalker"
}
 
/if (!${Me.Buff[Bladecoat].ID}) {
    /tar myself
    /call cast "Bladecoat"
} 
    /doevents chat 
    /goto :Mainloop 

Sub Event_Chat(ChatType,Sender,ChatText) 

/if (${String[@ChatText].Equal[magic]}) { 
        /target @Sender
        /delay 1s
        /ttell SEASONS, DS, LEV, SOW, P9, B9, HEAL,  mind your stupid pet
    }

| **assist stuff**

    /if (${String[@ChatText].Equal[snare]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s 
        /pet attack
        /call Cast "ensnare" 
    } 

    /if (${String[@ChatText].Equal[flame]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s
        /pet attack 
        /call Cast "summer's flame" 
    } 

    /if (${String[@ChatText].Equal[frost]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s
        /pet attack 
        /call Cast "winter's frost" 
    } 

| ** buff stuff **

    /if (${String[@ChatText].Equal[heal]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "karana's renewal" 
    } 

    /if (${String[@ChatText].Equal[seasons]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "circle of seasons" 
    } 

    /if (${String[@ChatText].Equal[ds]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "shield of bracken" 
    } 

    /if (${String[@ChatText].Equal[lev]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "flight of eagles" 
    } 

    /if (${String[@ChatText].Equal[sow]}) { 
        /target @Sender 
        /call Cast "pack spirit" 
    } 

    /if (${String[@ChatText].Equal[b9]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "blessing of the nine" 
    } 

    /if (${String[@ChatText].Equal[p9]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "protection of the nine" 
    } 

| ** other stuff **

    /if (${String[@ChatText].Equal[invis]}) { 
        /call Cast "foilage shield" 
    } 

    /if (${String[@ChatText].Equal[evac]}) { 
        /call Cast "succor" 
    } 

    /if (${String[@ChatText].Equal[gate]}) { 
        /call Cast "gate" 
    } 

    /if (${String[@ChatText].Equal[pet]}) { 
        /call Cast "nature walkers behest" 
    } 

    /if (${String[@ChatText].Equal[follow]}) { 
        /target @Sender 
        /delay 1s 
        /face fast
        /follow         
    } 

    /if (${String[@ChatText].Equal[stay]}) { 
        /keypress back hold
        /delay 1
        /keypress back
    } 

    /return 

Chanter

Code: Select all

| chanterbot KISS ( keep it simple ...)
| thank you to s16z, bob_the_builder, and Lax


#chat tell 
#Include Spellcast

Sub Main 
    /cleanup 
    /delay 1s 
    /g ok ready 

  :Mainloop 
/if (!${Me.Buff[overwhelming splendor].ID}) {
    /tar myself
    /call cast "overwhelming splendor"
}
 
/if (!${Me.Buff[arcane rune].ID}) {
    /tar myself
    /call cast "arcane rune"
}

    /doevents
    /goto :Mainloop 
    /return 

Sub Event_Chat(ChatType,Sender,ChatText) 

/if (${String[@ChatText].Equal[magic]}) { 
        /target @Sender
        /delay 1s
        /ttell VoQ, VQ, GoD, SOV= your target, mind your stupid pet
    }

    /if (${String[@ChatText].Equal[debuff]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s 
        /pet attack
        /call Cast "Howl of tashan" 
        /call Cast "forlorn deeds" 
    } 

    /if (${String[@ChatText].Equal[tash]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s
        /pet attack 
        /call Cast "Howl of tashan" 
    } 

    /if (${String[@ChatText].Equal[nuke]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s 
        /pet attack
        /call Cast "insanity" 
    } 

    /if (${String[@ChatText].Equal[mez]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s 
        /call Cast "bliss" 
    } 

    /if (${String[@ChatText].Equal[pac]}) { 
        /target @Sender 
        /delay 1s 
        /assist 
        /delay 1s 
        /call Cast "pacification" 
    } 



    /if (${String[@ChatText].Equal[voq]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "voice of quellious" 
    } 

    /if (${String[@ChatText].Equal[sov]}) { 
        /target @Sender 
        /delay 1s 
        /assist
        /delay 1s
        /call Cast "speed of vallon" 
    } 

    /if (${String[@ChatText].Equal[vq]}) { 
        /target @Sender 
        /delay 1s 
        /call Cast "vallon's quickening"  
    } 

    /if (${String[@ChatText].Equal[god]}) { 
        /target @Sender 
        /call Cast "guard of druzzil"
    } 



    /if (${String[@ChatText].Equal[invis]}) { 
        /call Cast "invisibility" 
    } 

    /if (${String[@ChatText].Equal[gate]}) { 
        /call Cast "gate" 
    } 

    /if (${String[@ChatText].Equal[pet]}) { 
        /call Cast "aeldorb's animation" 
    } 

    /if (${String[@ChatText].Equal[shield]}) { 
        /call Cast "shield of maelin" 
    } 

    /if (${String[@ChatText].Equal[follow]}) { 
        /target @Sender 
        /delay 1s 
        /face fast
        /follow         
    } 

    /if (${String[@ChatText].Equal[stay]}) { 
        /keypress down hold
        /delay 1
        /keypress down
    } 

    /return 
This spellcast works for me but memming B9 takes longer then 10 sec
I do not know how to set a wait timer for the spell to refresh.

Code: Select all

| SpellCast.inc 
| This will cast a spell reliably for you... 
| 
| Usage: 
|       /call Cast "spellname|itemname|AA#" [item|activate] 
| 
| This would essentially: /cast "Death Peace" 
| example: /call Cast "Death Peace" 
| 
| This would essentially: /cast item "White Rope Bridle" 
| example: /call Cast "White Rope Bridle" item 
| 
| This would essentially: /alt activate 169 
| example: /call Cast "169" activate 
| 
| It will return the following values: 
| CAST_SUCCESS 
| CAST_UNKNOWNSPELL 
| CAST_OUTOFMANA 
| CAST_OUTOFRANGE 
| CAST_CANNOTSEE 
| CAST_STUNNED 
| CAST_RESISTED 
| CAST_TOOK2LONG 
| CAST_ABILITYNOTREADY 
| 
| New Vars Modification 
| Plazmic's no globals needed version 
| 
| Oct 09, 2003 - Updated to work with new vars and $char(casting) -gf 
| Oct 11, 2003 - switched some logic, removed defines -gf 
| Oct 15, 2003 - Item support added by -EqMule 
| XXX xx, xxxx - Modified to add automeming of spells. -Goofmester1 
| Dec 26, 2003 - fd fail 1 added -m0nk 
| Jan 01, 2004 - timeout(5s) added to stop "dead-time" -m0nk 
| Jan 01, 2004 - switchd fdfail to a standing check. -m0nk 
| Jan 01, 2004 - added silence checking as a stun check -m0nk 
| Feb 17, 2004 - added AA activate capabilities -ml2517 
| Apr 11, 2004 - Updated for new Parm system -ml2517 
| Apr 12, 2004 - Will spit out a different message on immune to slows. -ml2517 
| Apr 16, 2004 - Removed /sendkeys and replaced with /keypress. -ml2517 
| Apr 17, 2004 - Various code enhancements. -Wassup 
| Apr 20, 2004 - Updated all of the /if's to have parenthesis. -ml2517 
| 

#event Fizzle "Your spell fizzles" 
#event Interrupt "Your casting has been interrupted" 
#event Interrupt "Your spell is interrupted." 
#event Recover "You haven't recovered yet..." 
#event Recover "Spell recovery time not yet met." 
#event Resisted "Your target resisted the " 
#event OutOfMana "Insufficient Mana to cast this spell!" 
#event OutOfRange "Your target is out of range, get closer!" 
#event NoLOS "You cannot see your target." 
#event Stunned "You cannot cast while stunned" 
#event Stunned "You *CANNOT* cast spells, you have been silenced!" 
#event Standing "You must be standing to cast a spell" 
#event Standing "has fallen to the ground." 
#event Collapse "Your gate is too unstable, and collapses." 
#event Ability "You can use the ability " 
#event ImmuneSlow "Your target is immune to changes in its attack speed." 


Sub Cast(SpellName,Item) 
   /if (!${Defined[CastGiveUpTime]}) /declare CastGiveUpTime timer 
   /if (!${Defined[Item]}) /declare Item local 
   /if (${Me.Speed}>0) { 
       /keypress forward 
       /keypress back 
       /delay 8 
   } else { 
       /delay 4 
   } 
   /if ((${String["@Item"].Equal["Item"]})||(${String["@Item"].Equal["Activate"]})) /goto :StartCast 

   /if (!${Me.Gem["@SpellName"]}) { 
      /memspell 8 "@SpellName" 
      /delay 8s 
   } 
   :StartCast 
      /varset CastGiveUpTime 10s 
   :CastNow 
/echo casting "@Spellname" on %T
      /if (${String["@Item"].Equal["Item"]}) { 
         /call ClearReturnValue 
         /cast item "@SpellName" 

      } else /if (${String["@Item"].Equal["Activate"]}) { 
         /call ClearReturnValue 
         /alt activate "@SpellName" 
      } else { 
         /if (!${Me.Gem["@SpellName"]}) /return CAST_UNKNOWNSPELL 
         /call ClearReturnValue 
         /if (!${Me.SpellReady["@SpellName"]}) { 
            /if (@CastGiveUpTime==0) /return CAST_TOOK2LONG 
            /delay 1 
            /goto :CastNow 
            } 
         /cast "@SpellName" 
         } 
   :WaitCast 
      /newif (${Me.Casting.ID}) { 
      /delay 1 
      /goto :WaitCast 
      } 
   /delay 1 
   /doevents Fizzle 
   /doevents Interrupt 
   /doevents Interrupt 
   /doevents Recover 
   /doevents Standing 
   /doevents OutOfRange 
   /doevents OutOfMana 
   /doevents NoLOS 
   /doevents Resisted 
   /doevents ImmuneSlow 
   /doevents Stunned 
   /doevents Collapse 
   /doevents Ability 
   /if (${Macro.Return.Equal["CAST_RESTART"]}) /goto :StartCast 
   /if (${Macro.Return.NotEqual["NULL"]}) /return ${Macro.Return} 
/return CAST_SUCCESS 

Sub ClearReturnValue 
/return NULL 

Sub Event_Fizzle 
/g fizz
/return CAST_RESTART 

Sub Event_Interrupt 
/return CAST_RESTART 

Sub Event_Recover 
   /delay 5 
/return CAST_RESTART 

Sub Event_Standing 
   /stand 
/return CAST_RESTART 

Sub Event_Collapse 
/return CAST_RESTART 

Sub Event_OutOfMana 
/g HOS NOS I'M OOM
/return CAST_OUTOFMANA 

Sub Event_OutOfRange
/g %T is out of range 
/return CAST_OUTOFRANGE 

Sub Event_NoLOS 
/g No LoS stupid
/return CAST_CANNOTSEE 

Sub Event_Stunned 
   /delay 1s 
   /g I'm stunned
/return CAST_RESTART 

Sub Event_Resisted 
/g Resist
/return CAST_RESISTED 

Sub Event_ImmuneSlow 
/return CAST_IMMUNESLOW 

Sub Event_Ability 
/return CAST_ABILITYNOTREADY 
Last edited by Scriptless on Sun Apr 25, 2004 4:33 pm, edited 2 times in total.

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

Post by ml2517 » Sat Apr 24, 2004 12:33 am

This line:

Code: Select all

/varset CastGiveUpTime 10s

Apelsin
decaying skeleton
decaying skeleton
Posts: 3
Joined: Thu Apr 22, 2004 8:38 am

Post by Apelsin » Thu Apr 29, 2004 8:37 am

Very nice macros, thanx!

Any chance to make them compatible with the latest patch? The new MQ2Data.