Ancordia_PRC8/_removed/nw_s0_animdead.nss

90 lines
2.8 KiB
Plaintext
Raw Permalink Normal View History

2024-06-14 00:06:09 -04:00
//::///////////////////////////////////////////////
//:: 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));
}