This is a generic wizard / nuke support bot script adapted from Nuad's Druid.mac, and it intended to use while grouped, although it can be used outside of a group as well.
Spell delays on /call spellsub's are not fully tested nor optimized.
If you see anything wrong or have suggestions( other than auto-memming spell sets...
Code: Select all
| Wiz.mac - Wizard nuke & support bot script, for LVL 50+ Wizards
| Altered from Druid.mac by Nuad
| Slapped together by: Samefudge, 11-8-2002
|
| Start with /macro wiz <Controller Name>
|
| ** Not used at this time ** Start with /macro wiz <Controller Name> <Type>
| ** Not used at this time ** e.g. /macro wiz Owner 1
| ** Not used at this time ** Spells for Hunting (Type 1)......: Diamondskin, LesserEvac, IC, Conflag, Atol, Root, Harvest, DS
| ** Not used at this time ** Spells for Porting (Type 2)......:
#include SpellSub.mac
#chat tell
#event SnareOff "Your Bonds of Force spell has worn off."
#event SnareOff2 "Your Atol's Spectral Shackles spell has worn off."
#event LOM "Insufficient mana to cast this spell."
#event SkinDown "Your skin returns to normal."
/afk
Sub Main
/varset v30 $p0
/varset v29 0
/varset v34 $p1
/tell $v30 Ready
:loop
/doevents
/goto :loop
/return
Sub Event_Chat
/stand
/varset v33 $p1
| Check if Tell is from the Controller, if not inform Controller
/if "$v33"!="$v30" {
/mqlog Tell from $p1 : $p2
| /tell $p1 Sorry i'm really busy at the moment and not available for tells
/delay 2
/tell $v30 Tell from $p1 to $char(name)
/sit
/return
}
/target $v33
/if $p2~~"00nuke1" /call Nuke1Sub
/if $p2~~"00nuke2" /call Nuke2Sub
/if $p2~~"00snare" /call SnareSub
/if $p2~~"00evac" /call EvacSub
/if $p2~~"00DS" /call DsSub
/if $p2~~"00DsPet" /call DsPetSub
/if $p2~~"00root" /call RootSub
/if $p2~~"00come" /call GoTargetSub
/if $p2~~"00self" /call SelfBuffSub
/if $p2~~"00home" /call GoHomeSub
/if $p2~~"00debuff" /call DebuffSub
/if $p2~~"00help" /call HelpSub
/if $p2~~"00status" /tell $v33 Mana: $char(mana,pct), HP: $char(hp,pct)
/sit
/doevents
/return
Sub DsSub
/tell $v33 INC Damage Shield for %T
/call SpellSub 8 8
/tell $v33 DS Buff done, Mana: $char(mana,pct), HP: $char(hp,pct)
/return
Sub DsPetSub
/press ESC
/press F2
/press F2
/tell $v33 INC Damage Shield for pet %T
/call SpellSub 8 8
/tell $v33 DS Buff done, Mana: $char(mana,pct), HP: $char(hp,pct)
/return
Sub SnareSub
/assist $v33
/delay 2s
/tell $v33 Snaring %T
/call SpellSub 5 6
/tell $v33 %T is snared, Mana: $char(mana,pct), HP: $char(hp,pct)
/target $v33
/return
Sub RootSub
/assist $v33
/delay 2
/tell $v33 Rooting %T
/call SpellSub 6 6
/tell $v33 %T is rooted, Mana: $char(mana,pct), HP: $char(hp,pct)
/target $v33
/return
Sub SelfBuffSub
/press F1
/tell $v33 Casting Diamondskin
/Call SpellSub 1 10
/target $v33
/tell $v33 Selfbuffs done, Mana: $char(mana,pct), HP: $char(hp,pct)
/target $v33
/return
Sub GoHomeSub
/stand
/sit
/tell $v33 Camping...
/camp desktop
/endmacro
/return
Sub EvacSub
/target $v33
/invite $v33
/tell $v33 You have 8 Seconds now to press Follow
/call SpellSub 2 1
/tell $v33 EVAC INC
/g EVAC INC... GET CLOSE OR BE LEFT BEHIND!
/endmacro
/return
Sub GoTargetSub
/stand
/target $v33
/face
/varset v90 $target(id)
/varset t0 5m
/tell $v33 I'm coming
:CloserAF
/doevents
/if "$target(id)"!="$v90" /goto :EndAF
/if n $target(distance)>14 /call AutoRunSub 1
/if n $target(distance)<15 /goto :EndAf
/face
/doevents
/if n $t0==0 /press esc
/goto :CloserAF
:EndAF
/call AutoRun 0
/tell $v33 Stopped
/doevents
/return
Sub AutoRunSub
/if $p0==$v80 /return
/varset v80 $p0
/if $p0==1 /sendkey down up
/if $p0==0 /sendkey up up
/return
Sub Nuke1Sub
/assist $v33
/delay 6
/tell $v33 Nuking %T
/call SpellSub 3 10.3
/tell $v33 Nuke on %T done, Mana: $char(mana,pct), HP: $char(hp,pct)
/target $v33
/return
Sub Nuke2Sub
/assist $v33
/delay 6
/tell $v33 Nuking %T
/call SpellSub 4 9.5
/tell $v33 Nuke on %T done, Mana: $char(mana,pct), HP: $char(hp,pct)
/target $v33
/return
Sub DebuffSub
/assist $v33
/delay 3
/tell $v33 Debuffing %T
/press 1
/press 1
/tell $v33 Lower element (-6FR -6CR) done on %T, Mana: $char(mana,pct) HP: $char(hp,pct)
/target $v33
/return
Sub Event_SnareOff
/tell $v33 Bonds of Force from $char(name) has worn off.
/return
Sub Event_SnareOff2
/tell $v33 Atol's Spectral Shackles from $char(name) has worn off.
/return
Sub Event_LOM
/tell $v33 I am LOM, firing off Harvest and sitting down.
/call SpellSub 7 15
/tell $v33 Stunned for 10 seconds, cannot accept action commands.
/sit on
/delay 10s
/tell $v33 Un-stunned, accepting all commands again.
/return
Sub Event_SkinDown
/tell $v33 Diamondskin fell.
/return
Sub Help
/tell $v33 DS(O'Keils), Dspet(as long as you are group slot F2), Snare(Atol's), Root(Immobilize), GoTarget(I come to you),
/tell $v33 SelfBuff(Diamondskin), GoHome(Sit&CampDesktop), Evac(In-zone LesserEvac, invites you), Nuke1(IceComet),
/tell $v33 Nuke2(Conflaguration), Debuff(SoTF), Help(This Message).
/return
