# castSpellNPC ! Used for NPCs to cast a spell. ! ! $ARGS[0] is the spell being cast ! $ARGS[1] = Target Type ('opp','pcs') ! ARGS[2] = Target party member number ! $ARGS[3] = Caster Type ('opp','pcs') ! ARGS[4] = Caster party member number ! ARGS[5-n] are any parameters that need to be passed to the Spell ! ! Example: ! gs 'castSpell', 'teleport', 'CentralPark' gs 'spellList' spellSuccess = 1 $SpellID = $ARGS[0] $SpellArgs = "" i=5 :ArgLoopNPC if i < arrsize('$ARGS'): if $ARGS[i] = '': $SpellArgs += ", <>" else $SpellArgs += ", '<<$ARGS[i]>>'" end i += 1 jump 'ArgLoopNPC' end killvar 'i' manaCost = spellMana[$SpellID] casterMana = dyneval('result=<<$ARGS[3]>>_mana[<>]') if casterMana >= manaCost: dynamic '<<$ARGS[3]>>_mana[<>] -= <>' $SpellExec = "gs 'spell', '<<$SpellID>>', '<>', '<<$ARGS[1]>>', <>, <><<$SpellArgs>>" dynamic $SpellExec else 'Not enough mana to cast the spell.' end killvar '$SpellID' killvar '$SpellExec' killvar 'spellSuccess' killvar 'manaCost' killvar 'casterMana' --- castSpellNPC ---------------------------------