PRC8/nwn/nwnprc/trunk/epicspellscripts/tm_s0_epkillwndb.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

64 lines
2.3 KiB
Plaintext

/////////////////////////////////////////////////
// Tolodine's Killing Wind: On Heartbeat
// tm_s0_epkillwndb.nss
//-----------------------------------------------
// Created By: Nron Ksr
// Created On: 03/07/2004
// Description: This script causes an AOE Death Spell for 10 rnds.
// Fort. save -4 to resist
/////////////////////////////////////////////////
// Last Updated: 03/15/2004, Nron Ksr
/////////////////////////////////////////////////
#include "prc_alterations"
#include "inc_epicspells"
void main()
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY);
object oCaster = GetAreaOfEffectCreator();
//Declare variables
effect eVis = EffectVisualEffect( VFX_IMP_DEATH );
// effect eVis = EffectVisualEffect( VFX_COM_CHUNK_RED_MEDIUM ); // Alternative Death VFX
float fDelay;
//Get the first object in the persistent area
object oTarget = GetFirstInPersistentObject();
while( GetIsObjectValid(oTarget) )
{
if( spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE,
oCaster) )
{
//Fire cast spell at event for the specified target
SignalEvent( oTarget,
EventSpellCastAt(OBJECT_SELF, SPELL_WAIL_OF_THE_BANSHEE) );
//Make a SR check
if( !PRCDoResistSpell(oCaster, oTarget, GetTotalCastingLevel(oCaster)+SPGetPenetr(oCaster)) )
{
//Make a fortitude save (-4) to avoid death
if( !PRCMySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(GetAreaOfEffectCreator(), oTarget)+4,
SAVING_THROW_TYPE_DEATH, oCaster) )
{
//Apply the delay VFX impact and death effect
DelayCommand( fDelay,
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget) );
effect eDeath = EffectDeath();
DelayCommand( fDelay,
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget) );
DeathlessFrenzyCheck(oTarget);
}
}
}
//Get next target in spell area
oTarget = GetNextInPersistentObject();
}
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
}