45 lines
979 B
Plaintext
45 lines
979 B
Plaintext
|
void main()
|
||
|
{
|
||
|
object oPC=GetEnteringObject();
|
||
|
if (!GetIsPC(oPC))
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// will only do it every so often
|
||
|
// sets "NW_DO_ONCE" back to 0 if nSpawnDelay has passed
|
||
|
int nCurrentHour = (GetCalendarYear()-1)*12*28*24 +
|
||
|
(GetCalendarMonth()-1)*28*24 +
|
||
|
(GetCalendarDay()-1)*24 +
|
||
|
GetTimeHour();
|
||
|
int nLastSpawnHour = GetLocalInt(OBJECT_SELF,"LAST_SPAWN_HOUR");
|
||
|
int nSpawnDelay = 0;
|
||
|
if (nCurrentHour > (nLastSpawnHour + nSpawnDelay))
|
||
|
{
|
||
|
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",0);
|
||
|
}
|
||
|
|
||
|
//return if time has not passed yet
|
||
|
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Set the times
|
||
|
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
|
||
|
SetLocalInt(OBJECT_SELF,"LAST_SPAWN_HOUR",nCurrentHour);
|
||
|
|
||
|
// a one in two chance of simply returning, ie resetting timer and not going off
|
||
|
if (d2()==1)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
object oFungus=GetNearestObjectByTag("jw_nun_pmold");
|
||
|
{
|
||
|
SignalEvent(oFungus,EventUserDefined(50));
|
||
|
}
|
||
|
|
||
|
}
|