Alangara_PRC8/_removed/NW_S0_TIMESTOP.nss
Jaysyn904 86feb9ca6f Initial commit
Initial commit.
2024-06-05 21:21:06 -04:00

51 lines
2.1 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Time Stop
//:: NW_S0_TimeStop.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All persons in the Area are frozen in time
except the caster.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
/*This is a modified version of kaltors PW friendly time stop script
It has been modified to do several new functions
--It not will not dominate summoned units, to prevent them from becomine masterless
--It follows standard 9.0 second timestop with a .75 delay
--It applies a small visual affect to all units to show a timestop in effect
--It applies a knockdown effect to summoned units to prevent them doing anything(no summoned unit has
immune to knockdown to my knowledge
--it applies a Immobilize effect to prevent units from moving (an occasional bug with big PW's on high CPU load).
*/
void main()
{
object oArea = GetArea(OBJECT_SELF);
location lLocation = GetLocation(OBJECT_SELF);
object oTG = GetFirstObjectInArea(oArea);
while (oTG != OBJECT_INVALID)
{
if(GetObjectType(oTG) == OBJECT_TYPE_CREATURE && oTG != OBJECT_SELF && !GetIsDM(oTG)){
if(!GetIsObjectValid(GetMaster(oTG))){
DelayCommand(0.75f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectCutsceneDominated(), oTG, 9.0f)));
}
else{
DelayCommand(0.75f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(), oTG, 9.0f)));
}
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_BLUR), oTG, 9.75f);
DelayCommand(0.75f, AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectCutsceneImmobilize(), oTG, 9.75f)));
}
oTG = GetNextObjectInArea(oArea);
}
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_TIME_STOP, FALSE));
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_TIME_STOP), lLocation);
}