forked from Jaysyn/PRC8
67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Wall of Fire
|
||
|
//:: NW_S0_WallFire.nss
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
Creates a wall of fire that burns any creature
|
||
|
entering the area around the wall. Those moving
|
||
|
through the AOE are burned for 4d6 fire damage
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Preston Watamaniuk
|
||
|
//:: Created On: July 17, 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_ABJURATION);
|
||
|
/*
|
||
|
Spellcast Hook Code
|
||
|
Added 2003-06-20 by Georg
|
||
|
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 Area of Effect object using the appropriate constant
|
||
|
effect eAOE = EffectAreaOfEffect(AOE_PER_WALLDISPEL);
|
||
|
//Get the location where the wall is to be placed.
|
||
|
location lTarget = PRCGetSpellTargetLocation();
|
||
|
int nCasterLevel = PRCGetCasterLevel();
|
||
|
int nDuration = nCasterLevel / 2;
|
||
|
if(nDuration == 0)
|
||
|
{
|
||
|
nDuration = 1;
|
||
|
}
|
||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||
|
|
||
|
//Check fort metamagic
|
||
|
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
|
||
|
{
|
||
|
nDuration = nDuration *2; //Duration is +100%
|
||
|
}
|
||
|
//Create the Area of Effect Object declared above.
|
||
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eAOE, lTarget, TurnsToSeconds(nDuration));
|
||
|
|
||
|
object oAoE = GetAreaOfEffectObject(lTarget, "VFX_PER_WALLDISPEL");
|
||
|
SetAllAoEInts(SPELL_GREAT_WALL_OF_DISPEL, oAoE, PRCGetSpellSaveDC(SPELL_GREAT_WALL_OF_DISPEL, SPELL_SCHOOL_ABJURATION), 0, nCasterLevel);
|
||
|
|
||
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||
|
// Getting rid of the integer used to hold the spells spell school
|
||
|
}
|