Initial Upload
Initial Upload
This commit is contained in:
58
_module/nss/pac_haunt.nss
Normal file
58
_module/nss/pac_haunt.nss
Normal file
@@ -0,0 +1,58 @@
|
||||
float DISTANCE_TO_HAUNT = 4.0; // in meters
|
||||
|
||||
void ToggleLight(int iState = 0, object oObject = OBJECT_SELF)
|
||||
{
|
||||
|
||||
switch (iState)
|
||||
{
|
||||
case 1 : // HAUNT_ON
|
||||
AssignCommand(oObject, ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
|
||||
DelayCommand(0.4,SetPlaceableIllumination(oObject, TRUE));
|
||||
SetLocalInt(oObject,"NW_L_AMION",1);
|
||||
DelayCommand(0.5,RecomputeStaticLighting(GetArea(oObject)));
|
||||
break;
|
||||
case -1 : //HAUNT_OFF
|
||||
AssignCommand(oObject, ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
|
||||
DelayCommand(0.4,SetPlaceableIllumination(oObject, FALSE));;
|
||||
SetLocalInt(oObject,"NW_L_AMION",0);
|
||||
DelayCommand(0.9,RecomputeStaticLighting(GetArea(oObject)));
|
||||
break;
|
||||
default :
|
||||
// Execute "nw_02_onoff" as the toggle
|
||||
// Calls RecomputeStaticLighting each time, so no...
|
||||
ExecuteScript("nw_02_onoff", oObject);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
if (!GetLocalInt(OBJECT_SELF,"haunt_once"))
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF,"NW_L_AMION",1);
|
||||
ToggleLight();
|
||||
SetLocalInt(OBJECT_SELF,"haunt_once",1);
|
||||
}
|
||||
|
||||
int iHaunt = FALSE;
|
||||
|
||||
object oPC = GetFirstPC();
|
||||
while (GetIsObjectValid(oPC) == TRUE)
|
||||
{
|
||||
float fNewDist = GetDistanceToObject(oPC);
|
||||
if (fNewDist>-1.0 && fNewDist<=DISTANCE_TO_HAUNT)
|
||||
iHaunt=1;
|
||||
oPC = GetNextPC();
|
||||
}
|
||||
|
||||
if (iHaunt != GetLocalInt(OBJECT_SELF,"haunting") || GetLocalInt(OBJECT_SELF,"haunting")!=GetLocalInt(OBJECT_SELF,"NW_L_AMION") )
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF,"NW_L_AMION",!iHaunt);
|
||||
|
||||
ToggleLight();
|
||||
SetLocalInt(OBJECT_SELF,"haunting",iHaunt);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user