Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
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));
|
|
|
|
}
|
|
|
|
|