Code: Select all
|Plazmic + 1 line change by Imperfect
| SpellCast.inc
| This will cast a spell reliably for you...
| Usage:
| /call Cast "spellname"
| It will return the following values:
| CAST_SUCCESS
| CAST_UNKNOWNSPELL
| CAST_OUTOFMANA
| CAST_OUTOFRANGE
| CAST_CANNOTSEE
| CAST_STUNNED
| CAST_RESISTED
| CAST_FDFAIL
| New Vars Modification
| Plazmic's no globals needed version
|
|Oct 9, 2003 - Updated to work with new vars and $char(casting) - gf
|Oct 11, 2003 - switch some logic, removed defines - gf
#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 Standing "You must be standing to cast a spell"
#event Collapse "Your gate is too unstable, and collapses."
#event OnlyAtNight "Spell can only be cast during the night."
#event FDFAIL "has fallen to the ground"
Sub CastSpell(SpellName)
/if n $char(gem,"@SpellName")==0 /return CAST_UNKNOWNSPELL
| /echo Casting @SpellName
:StartCast
/call ClearReturnValue
/cast "@SpellName"
:WaitCast
/if "$char(casting)"=="TRUE" {
/delay 1
/goto :WaitCast
}
/doevents Fizzle
/doevents Interrupt
/doevents Recover
/doevents Standing
/doevents OutOfRange
/doevents OutOfMana
/doevents NoLOS
/doevents Resisted
/doevents OnlyAtNight
/doevents FDFAIL
/if "$return"=="CAST_RESTART" {
/goto :StartCast
}
/if "$return"!="CAST_SUCCESS" /return "$return"
/return CAST_SUCCESS
Sub ClearReturnValue
/return CAST_SUCCESS
Sub Event_Fizzle
| /echo Event_Fizzle
/return CAST_RESTART
Sub Event_Interrupt
| /echo Event_Interrupt
/return CAST_RESTART
Sub Event_Recover
| /echo Waiting for recovery...
/delay 5
/return CAST_RESTART
Sub Event_Standing
| /echo Event_Standing
/stand
/return CAST_RESTART
Sub Event_Collapse
| /echo Event_Collapse
/return CAST_RESTART
Sub Event_OutOfMana
/return CAST_OUTOFMANA
Sub Event_OutOfRange
/return CAST_OUTOFRANGE
Sub Event_NoLOS
/return CAST_CANNOTSEE
Sub Event_Stunned
/return CAST_STUNNED
Sub Event_Resisted
/return CAST_RESISTED
Sub Event_OnlyAtNight
| /echo Event_OnlyAtNight
/return CAST_SUCCESS
Sub Event_FDFAIL
| /echo Event_FDFAIL
/return CAST_RESTART 

