Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
82 lines
2.5 KiB
Plaintext
82 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: 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
|
|
//:://////////////////////////////////////////////
|
|
|
|
|
|
//:: modified by mr_bumpkin Dec 4, 2003
|
|
#include "prc_alterations"
|
|
|
|
#include "inv_inc_invfunc"
|
|
#include "inv_invokehook"
|
|
|
|
void main()
|
|
{
|
|
|
|
if (!PreInvocationCastCode())
|
|
{
|
|
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
|
|
return;
|
|
}
|
|
|
|
//Declare major variables
|
|
int nCasterLevel = GetInvokerLevel(OBJECT_SELF, GetInvokingClass());
|
|
int nDuration = 24;
|
|
effect eSummon;
|
|
string sResRef;
|
|
int nHD;
|
|
//Summon the appropriate creature based on the summoner level
|
|
if (nCasterLevel <= 5)
|
|
{
|
|
//Tyrant Fog Zombie
|
|
eSummon = EffectSummonCreature("NW_S_ZOMBTYRANT",VFX_FNF_SUMMON_UNDEAD);
|
|
sResRef = "NW_S_ZOMBTYRANT";
|
|
nHD = 4;
|
|
}
|
|
else if ((nCasterLevel >= 6) && (nCasterLevel <= 9))
|
|
{
|
|
//Skeleton Warrior
|
|
eSummon = EffectSummonCreature("NW_S_SKELWARR",VFX_FNF_SUMMON_UNDEAD);
|
|
sResRef = "NW_S_SKELWARR";
|
|
nHD = 6;
|
|
}
|
|
else
|
|
{
|
|
//Skeleton Chieftain
|
|
eSummon = EffectSummonCreature("NW_S_SKELCHIEF",VFX_FNF_SUMMON_UNDEAD);
|
|
sResRef = "NW_S_SKELCHIEF";
|
|
nHD = 7;
|
|
}
|
|
//Apply the summon visual and summon the two undead.
|
|
//ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, PRCGetSpellTargetLocation());
|
|
MultisummonPreSummon();
|
|
if(GetPRCSwitch(PRC_PNP_ANIMATE_DEAD))
|
|
{
|
|
int nMaxHD = nCasterLevel*4;
|
|
int nTotalHD = GetControlledUndeadTotalHD();
|
|
if((nTotalHD+nHD)<=nMaxHD)
|
|
{
|
|
//eSummon = ExtraordinaryEffect(eSummon); //still goes away on rest, use supernatural instead
|
|
eSummon = SupernaturalEffect(eSummon);
|
|
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, eSummon, PRCGetSpellTargetLocation());
|
|
}
|
|
else
|
|
FloatingTextStringOnCreature("You cannot create more undead at this time.", OBJECT_SELF);
|
|
FloatingTextStringOnCreature("Currently have "+IntToString(nTotalHD+nHD)+"HD out of "+IntToString(nMaxHD)+"HD.", OBJECT_SELF);
|
|
}
|
|
else
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, PRCGetSpellTargetLocation(), HoursToSeconds(nDuration));
|
|
|
|
}
|
|
|
|
|