NWScript:
#include "NW_I0_GENERIC"
void main()
{
//
//
object oDoor = GetNearestObjectByTag("Gate");
//
//
int iClosed;
int iNight = 0;
int iDay = 0;
int iDoneDay = 0;
int iDoneNight = 0;
//
//
int nUser = GetUserDefinedEventNumber();
if(nUser == 1001)
{
if(!IsInConversation(OBJECT_SELF) && !GetIsFighting(OBJECT_SELF))
{
//
//
if
((
GetIsNight() == TRUE
||
GetIsDusk() == TRUE
) &&
GetLocalInt(OBJECT_SELF, "iNight") == 0
)
{
SetLocalInt(OBJECT_SELF, "iNight", 1);
SetLocalInt(OBJECT_SELF, "iDay", 0);
}
if
((
GetIsDay() == TRUE
||
GetIsDawn() == TRUE
) &&
GetLocalInt(OBJECT_SELF, "iDay") == 0
)
{
SetLocalInt(OBJECT_SELF, "iNight", 0);
SetLocalInt(OBJECT_SELF, "iDay", 1);
}
//
//
if
(
GetIsOpen(oDoor)
)
{
SetLocalInt(OBJECT_SELF, "iClosed", 0);
}
else
{
SetLocalInt(OBJECT_SELF, "iClosed", 1);
}
//
//
if
(GetLocalInt(OBJECT_SELF, "iNight") == 1)
{
if
(GetIsObjectValid(oDoor))
{
if
(GetLocalInt(OBJECT_SELF, "iClosed") == 0)
{
if
(GetLocalInt(OBJECT_SELF, "iDoneNight") == 0)
{
ClearAllActions();
ActionCloseDoor(oDoor);
SetLocked(oDoor, TRUE);
SetLocalInt(OBJECT_SELF, "iDoneNight", 1);
SetLocalInt(OBJECT_SELF, "iDoneDay", 0);
ActionDoCommand(WalkWayPoints());
}
}
}
}
if
(GetLocalInt(OBJECT_SELF, "iNight") == 1)
{
if
(GetIsObjectValid(oDoor))
{
if
(GetLocalInt(OBJECT_SELF, "iClosed") == 1)
{
if
(GetLocalInt(OBJECT_SELF, "iDoneNight") == 0)
{
ClearAllActions();
SetLocked(oDoor, TRUE);
SetLocalInt(OBJECT_SELF, "iDoneNight", 1);
SetLocalInt(OBJECT_SELF, "iDoneDay", 0);
ActionDoCommand(WalkWayPoints());
}
}
}
}
if
(GetLocalInt(OBJECT_SELF, "iDay") == 1)
{
if
(GetIsObjectValid(oDoor))
{
if
(GetLocalInt(OBJECT_SELF, "iClosed") == 1)
{
if
(GetLocalInt(OBJECT_SELF, "iDoneDay") == 0)
{
ClearAllActions();
SetLocked(oDoor, FALSE);
ActionOpenDoor(oDoor);
SetLocalInt(OBJECT_SELF, "iDoneDay", 1);
SetLocalInt(OBJECT_SELF, "iDoneNight", 0);
ActionDoCommand(WalkWayPoints());
}
}
}
}
}
}
}