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 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 

