Further file organization
Further file organization
This commit is contained in:
46
nwn/nwnprc/trunk/scripts/archmage_spelllk.nss
Normal file
46
nwn/nwnprc/trunk/scripts/archmage_spelllk.nss
Normal file
@@ -0,0 +1,46 @@
|
||||
#include "prc_alterations"
|
||||
#include "x2_inc_spellhook"
|
||||
|
||||
/*
|
||||
* This is the spellhook code, called when the Spell-Like feat is activated
|
||||
*/
|
||||
void main()
|
||||
{
|
||||
object focus = GetItemPossessedBy(OBJECT_SELF, "ArchmagesFocusofPower");
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
string nSpellLevel = Get2DACache("spells", "Wiz_Sorc", PRCGetSpellId());
|
||||
string nEpicSpell = Get2DACache("spells", "Innate", PRCGetSpellId());
|
||||
|
||||
/* Whatever happens next we must restore the hook */
|
||||
PRCSetUserSpecificSpellScript(GetLocalString(OBJECT_SELF, "spelllike_save_overridespellscript"));
|
||||
|
||||
/* Tell to not execute the original spell */
|
||||
PRCSetUserSpecificSpellScriptFinished();
|
||||
|
||||
/* Paranoia -- should never happen */
|
||||
if (!GetHasFeat(FEAT_SPELL_LIKE, OBJECT_SELF)) return;
|
||||
|
||||
/* Only wizard/sorc spells */
|
||||
if ((nSpellLevel == "") && (nEpicSpell != "10" ))
|
||||
{
|
||||
FloatingTextStringOnCreature("Spell-Like can only use arcane spells.", OBJECT_SELF, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
/* No item casting */
|
||||
if (GetIsObjectValid(GetSpellCastItem()))
|
||||
{
|
||||
FloatingTextStringOnCreature("Spell-Like may not be used with scrolls.", OBJECT_SELF, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Setup is done */
|
||||
SetLocalInt(focus, "spell_like_setup", 0);
|
||||
|
||||
/* Store all the info needed */
|
||||
SetLocalInt(focus, "spell_like_spell", PRCGetSpellId());
|
||||
SetLocalInt(focus, "spell_like_meta", nMetaMagic);
|
||||
SetLocalInt(focus, "spell_like_present", TRUE);
|
||||
|
||||
FloatingTextStringOnCreature("Spell-Like ability ready.", OBJECT_SELF, FALSE);
|
||||
}
|
Reference in New Issue
Block a user