//:://///////////////////////////////////////////// //:: Animate Dead //:: NW_S0_AnimDead.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Summons a powerful skeleton or zombie depending on caster level. */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: April 11, 2001 //::////////////////////////////////////////////// #include "70_inc_spells" #include "x2_inc_spellhook" void main() { /* 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 spellsDeclareMajorVariables(); int nDuration = 24; //effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); effect eSummon; //Metamagic extension if needed if (spell.Meta == METAMAGIC_EXTEND) { nDuration = nDuration * 2; //Duration is +100% } //Summon the appropriate creature based on the summoner level if (spell.Level <= 5) { //Tyrant Fog Zombie eSummon = EffectSummonCreature("NW_S_ZOMBTYRANT",VFX_FNF_SUMMON_UNDEAD); } else if ((spell.Level >= 6) && (spell.Level <= 9)) { //Skeleton Warrior eSummon = EffectSummonCreature("NW_S_SKELWARR",VFX_FNF_SUMMON_UNDEAD); } else { //Skeleton Chieftain eSummon = EffectSummonCreature("NW_S_SKELCHIEF",VFX_FNF_SUMMON_UNDEAD); } //Apply the summon visual and summon the two undead. //ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation()); //Apply better summons instead if a caster is a level 11 or better Pale Master and the spell is not cast from an item. if ( GetLevelByClass(CLASS_TYPE_PALE_MASTER, OBJECT_SELF) > 29 ) { switch(d3()) { case 1: eSummon = EffectSummonCreature("s_skelhero2",VFX_FNF_SUMMON_UNDEAD);break; case 2: eSummon = EffectSummonCreature("S_SKELMAGE",VFX_FNF_SUMMON_UNDEAD);break; case 3: eSummon = EffectSummonCreature("S_SKELPRIEST",VFX_FNF_SUMMON_UNDEAD);break; } } else if ( GetLevelByClass(CLASS_TYPE_PALE_MASTER, OBJECT_SELF) > 10 ) { switch(d3()) { case 1: eSummon = EffectSummonCreature("S_SKELHERO",VFX_FNF_SUMMON_UNDEAD);break; case 2: eSummon = EffectSummonCreature("S_SKELMAGE",VFX_FNF_SUMMON_UNDEAD);break; case 3: eSummon = EffectSummonCreature("S_SKELPRIEST",VFX_FNF_SUMMON_UNDEAD);break; } } ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, spell.Loc, HoursToSeconds(nDuration)); }