|
@@ -0,0 +1,46 @@
|
|
|
+# 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 = 0
|
|
|
+
|
|
|
+$SpellID = $ARGS[0]
|
|
|
+$SpellArgs = ""
|
|
|
+i=5
|
|
|
+:ArgLoopNPC
|
|
|
+if i < arrsize('$ARGS'):
|
|
|
+ i += 1
|
|
|
+ $SpellArgs = $SpellArgs + ", '<<$ARGS[i - 1]>>'"
|
|
|
+ jump 'ArgLoopNPC'
|
|
|
+end
|
|
|
+killvar 'i'
|
|
|
+
|
|
|
+manaCost = spellMana[$SpellID]
|
|
|
+casterMana = dyneval('result=<<$AGS[3]>>_mana[<<ARGS[4]>>]')
|
|
|
+if casterMana <= manaCost:
|
|
|
+ dynamic '<<$AGS[3]>>_mana[<<ARGS[4]>>] -= <<manaCost>>'
|
|
|
+ $SpellExec = "gs 'spell', '<<$SpellID>>', '<<spellSuccess>>', '<<$ARGS[1]>>', <<ARGS[2]>>, <<ARGS[4]>><<$SpellArgs>>"
|
|
|
+ dynamic $SpellExec
|
|
|
+else
|
|
|
+ 'Not enough mana to cast the spell.'
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+killvar '$SpellID'
|
|
|
+killvar '$SpellExec'
|
|
|
+killvar 'spellSuccess'
|
|
|
+killvar 'manaCost'
|
|
|
+killvar 'casterMana'
|
|
|
+
|
|
|
+--- castSpellNPC ---------------------------------
|