Further file organization
Further file organization
This commit is contained in:
62
nwn/nwnprc/trunk/smp/phs_s_antiplnts.nss
Normal file
62
nwn/nwnprc/trunk/smp/phs_s_antiplnts.nss
Normal file
@@ -0,0 +1,62 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: Spell Name Antiplant Shell
|
||||
//:: Spell FileName PHS_S_AntiPlntS
|
||||
//:://////////////////////////////////////////////
|
||||
//:: In Game Spell desctiption
|
||||
//:://////////////////////////////////////////////
|
||||
Casting Time: 1 standard action
|
||||
Range: 3.3 M.
|
||||
Area: 3.3-M.-radius emanation, centered on you
|
||||
Duration: 10 min./level (D)
|
||||
Saving Throw: None
|
||||
Spell Resistance: Yes
|
||||
|
||||
The antiplant shell spell creates an invisible, mobile barrier that keeps
|
||||
all creatures within the shell protected from attacks by plant creatures or
|
||||
animated plants. As with many abjuration spells, forcing the barrier against
|
||||
creatures that the spell keeps at bay strains and collapses the field.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Spell Effects Applied / Notes
|
||||
//:://////////////////////////////////////////////
|
||||
It is a mobile barrier, with a special AOE.
|
||||
|
||||
Basically, if the caster is doing an ACTION_TYPE_MOVE_TO_POINT and someone
|
||||
activates the OnEnter script, that creature makes the barrier collapse.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jasperre
|
||||
//::////////////////////////////////////////////*/
|
||||
|
||||
#include "PHS_INC_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
// Spell Hook Check.
|
||||
if(!PHS_SpellHookCheck()) return;
|
||||
|
||||
// Declare major variables
|
||||
object oTarget = GetSpellTargetObject();// Should be OBJECT_SELF.
|
||||
object oCaster = OBJECT_SELF;
|
||||
int nCasterLevel = PHS_GetCasterLevel();
|
||||
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||||
|
||||
// Make sure they are not immune to spells
|
||||
if(PHS_TotalSpellImmunity(oTarget)) return;
|
||||
|
||||
// Duration in 10 minutes/level
|
||||
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel * 10, nMetaMagic);
|
||||
|
||||
// Declare effects - only an enter script.
|
||||
// - Use scripts defined in the 2da.
|
||||
effect eMob = EffectAreaOfEffect(PHS_AOE_MOB_ANTIPLANT_SHELL);
|
||||
|
||||
// Remove previous effects
|
||||
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_ANTIPLANT_SHELL, oTarget);
|
||||
|
||||
// Set local integer so that the first ones will not be affected, which
|
||||
// is removed after 1.0 seconds.
|
||||
SetLocalInt(oTarget, PHS_MOVING_BARRIER_START, TRUE);
|
||||
DelayCommand(1.0, DeleteLocalInt(oTarget, PHS_MOVING_BARRIER_START));
|
||||
|
||||
// Apply effects
|
||||
PHS_ApplyDuration(oTarget, eMob, fDuration);
|
||||
}
|
Reference in New Issue
Block a user