Code: Select all
#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 Fail v94
#define DoAgain v95
#define StartCast v96
#define SpellSlot v97
#define SpellName v98
#define CastTime v99
#define CTimer t39
sub main
/call SpellSub "Embracing Darkness"
/return
Sub SpellSub
/sendkey up up
/varset Fail 0
/if n $strlen("$p0")<=0 {
/return
} else /if n $strlen("$p1")<=0 {
/varset SpellName "$p0"
} else /if n $strlen("$p2")<=0 {
/varset SpellName "$p0 $p1"
} else /if n $strlen("$p3)<=0 {
/varset SpellName "$p0 $p1 $p2"
} else {
/varset SpellName "$p0 $p1 $p2 $p3"
}
/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_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_Sitting
/stand
/delay 2
/varset DoAgain 1
/return
Sub Event_CastTooFar
/varset Fail 1
/varset CTimer 0
/return
Sub Event_Distracted
/varset Fail 1
/varset CTimer 0
/return
Sub Event_NoTarget
/varset Fail 1
/varset CTimer 0
/return
Sub Event_NoMem
/varset Fail 1
/varset CTimer 0
/return
Sub Event_CastNoMana
/sit off
/sit on
/varset Fail 1
/varset DoAgain 1
/return
Sub Event_Stunned
/delay 3s
/varset DoAgain 1
/return
Sub Event_Recovered
/delay 2s
/varset DoAgain 1
/return
Sub Event_CastResist
/varset DoAgain 1
/return
Sub Event_Collapse
/varset DoAgain 1
/return
Sub Event_NoLOS
/varset Fail 1
/varset CTimer 0
/return
