//:://///////////////////////////////////////////// //:: Summon Shadow //:: NW_S0_SummShad.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Spell powerful ally from the shadow plane to battle for the wizard */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 26, 2001 //::////////////////////////////////////////////// //:: modified by mr_bumpkin Dec 4, 2003 #include "prc_inc_spells" void main() { DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION); /* Spellcast Hook Code Added 2003-06-23 by GeorgZ If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } // End of Spell Cast Hook //Declare major variables int nMetaMagic = PRCGetMetaMagicFeat(); int nCasterLevel = PRCGetCasterLevel(OBJECT_SELF); int nDuration = nCasterLevel; effect eSummon; //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); //Check for metamagic extend if ((nMetaMagic & METAMAGIC_EXTEND)) { nDuration = nDuration *2; //Duration is +100% } //Set the summoned undead to the appropriate template based on the caster level if (nCasterLevel <= 7) { eSummon = EffectSummonCreature("NW_S_SHADOW",VFX_FNF_SUMMON_UNDEAD); } else if ((nCasterLevel >= 8) && (nCasterLevel <= 10)) { eSummon = EffectSummonCreature("NW_S_SHADMASTIF",VFX_FNF_SUMMON_UNDEAD); } else if ((nCasterLevel >= 11) && (nCasterLevel <= 14)) { eSummon = EffectSummonCreature("NW_S_SHFIEND",VFX_FNF_SUMMON_UNDEAD); // change later } else if ((nCasterLevel >= 15)) { eSummon = EffectSummonCreature("NW_S_SHADLORD",VFX_FNF_SUMMON_UNDEAD); } //Apply VFX impact and summon effect MultisummonPreSummon(); float fDuration = HoursToSeconds(nDuration); if(GetPRCSwitch(PRC_SUMMON_ROUND_PER_LEVEL)) fDuration = RoundsToSeconds(nDuration*GetPRCSwitch(PRC_SUMMON_ROUND_PER_LEVEL)); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, PRCGetSpellTargetLocation(), fDuration); //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, PRCGetSpellTargetLocation()); DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); // Getting rid of the integer used to hold the spells spell school }