Initial upload
Initial upload.
This commit is contained in:
107
_module/nss/pri_stautodoor.nss
Normal file
107
_module/nss/pri_stautodoor.nss
Normal file
@@ -0,0 +1,107 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Counts guests and Open and Closes doors in Suite Room
|
||||
//:: pri_stautodoor.nss
|
||||
//:: Copyright (c) 2002 Shepherd Software Inc.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
This script is placed on the Trigger just inside the
|
||||
Suite door. It has two functions. First it counts how
|
||||
many guests are in the room. This is done by adding one
|
||||
to the counter everytime someone comes into the room and
|
||||
subtracting one for everytime somebody goes to leave the room.
|
||||
|
||||
Also this controls the open/close stat of the Suite Doors
|
||||
so that if guests aren't being allowed the door will be locked
|
||||
and closed until renter of room goes to leave.
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Russell S. Ahlstrom
|
||||
//:: Created On: July 11, 2002
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "pri_inc"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetEnteringObject();
|
||||
object oTrigger = OBJECT_SELF;
|
||||
|
||||
int iNGuests = GetLocalInt(oTrigger, "RSA_NGuests");
|
||||
int iGuests = GetLocalInt(oTrigger, "RSA_Guests");
|
||||
int iRenter = GetLocalInt(oPC, "RSA_BoughtSuite");
|
||||
|
||||
GetInnArea(oPC);
|
||||
|
||||
//This Script only runs if the Butler is allowing Guests
|
||||
|
||||
if (GetIsPC(oPC))
|
||||
{
|
||||
if (iGuests == 1)
|
||||
{
|
||||
|
||||
//if Renter exit script so not to add to guest counter
|
||||
|
||||
if (iRenter == 1) return;
|
||||
int iEnter = GetLocalInt(oPC, "RSA_Guest");
|
||||
|
||||
//if player not a guest, flag him as guest and add one as counter
|
||||
|
||||
if (iEnter == 0)
|
||||
{
|
||||
SetLocalInt(oPC, "RSA_Guest", 1);
|
||||
iNGuests++;
|
||||
SetLocalInt(oTrigger, "RSA_NGuests", iNGuests);
|
||||
}
|
||||
|
||||
//if player is a guest, flag him as not a guest and minus one from counter.
|
||||
//This is done because player will be crossing trigger again when leaving
|
||||
//the room.
|
||||
|
||||
if (iEnter == 1)
|
||||
{
|
||||
SetLocalInt(oPC, "RSA_Guest", 0);
|
||||
iNGuests--;
|
||||
SetLocalInt(oTrigger, "RSA_NGuests", iNGuests);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
//End of Guest Script
|
||||
|
||||
//Door Automation
|
||||
|
||||
if (GetIsPC(oPC))
|
||||
{
|
||||
object oDoor = GetNearestObjectByTag("SuiteRoomDoor");
|
||||
if (GetLocked(oDoor) == 1)
|
||||
{
|
||||
SetLocked(oDoor, FALSE);
|
||||
ActionOpenDoor(oDoor);
|
||||
int nIdx = 0;
|
||||
object oDoor = GetNearestObjectByTag("SuiteDoor", OBJECT_SELF, nIdx);
|
||||
while (GetIsObjectValid(oDoor))
|
||||
{
|
||||
ActionCloseDoor(oDoor);
|
||||
nIdx++;
|
||||
oDoor = GetNearestObjectByTag("SuiteDoor", OBJECT_SELF, nIdx);
|
||||
}
|
||||
nIdx = 0;
|
||||
object oDoor2 = GetNearestObjectByTag("SuiteBedDoor", OBJECT_SELF, nIdx);
|
||||
while (GetIsObjectValid(oDoor2))
|
||||
{
|
||||
ActionCloseDoor(oDoor2);
|
||||
SetLocked(oDoor2, FALSE);
|
||||
nIdx++;
|
||||
oDoor2 = GetNearestObjectByTag("SuiteBedDoor", OBJECT_SELF, nIdx);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (GetLocked(oDoor)== 0)
|
||||
{
|
||||
ActionCloseDoor(oDoor);
|
||||
SetLocked(oDoor, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user