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.
79 lines
2.5 KiB
Plaintext
79 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Web: On Enter
|
|
//:: NW_S0_WebA.nss
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Creates a mass of sticky webs that cling to
|
|
and entangle targets who fail a Reflex Save
|
|
Those caught can make a new save every
|
|
round. Movement in the web is 1/5 normal.
|
|
The higher the creatures Strength the faster
|
|
they move within the web.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Aug 8, 2001
|
|
//:://////////////////////////////////////////////
|
|
|
|
//:: modified by mr_bumpkin Dec 4, 2003
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
|
|
|
//Declare major variables
|
|
effect eWeb = EffectEntangle();
|
|
effect eVis = EffectVisualEffect(VFX_DUR_WEB);
|
|
effect eLink = EffectLinkEffects(eWeb, eVis);
|
|
object oCaster = GetAreaOfEffectCreator();
|
|
object oTarget = GetEnteringObject();
|
|
int nDC;
|
|
|
|
// * the lower the number the faster you go
|
|
int nSlow = 65 - (GetAbilityScore(oTarget, ABILITY_STRENGTH)*2);
|
|
if (nSlow <= 0)
|
|
{
|
|
nSlow = 1;
|
|
}
|
|
|
|
if (nSlow > 99)
|
|
{
|
|
nSlow = 99;
|
|
}
|
|
|
|
int nPenetr = SPGetPenetrAOE(oCaster);
|
|
|
|
effect eSlow = EffectMovementSpeedDecrease(nSlow);
|
|
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oCaster))
|
|
{
|
|
if(!GetHasFeat(FEAT_WOODLAND_STRIDE, oTarget) &&(GetCreatureFlag(oTarget, CREATURE_VAR_IS_INCORPOREAL) != TRUE) )
|
|
{
|
|
//Fire cast spell at event for the target
|
|
SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_WEB));
|
|
//Spell resistance check
|
|
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr))
|
|
{
|
|
nDC = PRCGetSaveDC(oTarget, oCaster);
|
|
//Make a Reflex Save to avoid the effects of the entangle.
|
|
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC))
|
|
{
|
|
//Entangle effect and Web VFX impact
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(1));
|
|
}
|
|
//Slow down the creature within the Web
|
|
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlow, oTarget);
|
|
}
|
|
}
|
|
}
|
|
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
// Getting rid of the integer used to hold the spells spell school
|
|
|
|
}
|