52 lines
2.0 KiB
Plaintext
52 lines
2.0 KiB
Plaintext
void CreateObject2(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE);
|
|
|
|
//::///////////////////////////////////////////////
|
|
//:: Minor Sonic Trap
|
|
//:: Copyright (c) 2000 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
//:: Will save or the creature is stunned
|
|
//:: for 2 rounds.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Nov 16, 2001
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "NW_I0_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
//Declare major variables
|
|
object oTarget;
|
|
effect eStun = EffectStunned();
|
|
effect eFNF = EffectVisualEffect(VFX_FNF_SOUND_BURST);
|
|
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
|
effect eLink = EffectLinkEffects(eStun, eMind);
|
|
effect eDam = EffectDamage(d4(2), DAMAGE_TYPE_SONIC);
|
|
//Apply the FNF to the spell location
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eFNF, GetLocation(GetEnteringObject()));
|
|
//Get the first target in the spell area
|
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,GetLocation(GetEnteringObject()));
|
|
while (GetIsObjectValid(oTarget))
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
|
//Make a Will roll to avoid being stunned
|
|
if(!MySavingThrow(SAVING_THROW_WILL, oTarget, 12, SAVING_THROW_TYPE_SONIC))
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(2));
|
|
}
|
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(GetEnteringObject()));
|
|
}
|
|
|
|
//respawn trap
|
|
DelayCommand(598.0, CreateObject2(GetObjectType(OBJECT_SELF), GetResRef(OBJECT_SELF), GetLocation(OBJECT_SELF)));
|
|
DelayCommand(600.0, DestroyObject(OBJECT_SELF));
|
|
}
|
|
|
|
void CreateObject2(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE)
|
|
{
|
|
CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation);
|
|
return;
|
|
}
|
|
|