RATDOG/_module/nss/ra_lvl01a_onentr.nss

90 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

//::////////////////////////////////////////////////////////////////////////////
/*//
Level 1a: Latrene 3
onEnter script
ra_lvl01a_onentr.nss
Wandering Monsters: None
Detections: Faint evil from the whole place; slightly more to the south east.
Continuous Effects: The stench of this level requires all characters to make
a Fortitude save (DC 10) upon entering the level and every 30 minutes
thereafter or all rolls are at 2 morale penalty due to the distraction
caused by the overpowering smell.
*///
//::////////////////////////////////////////////////////////////////////////////
#include "spawn_functions"
#include "tgdc_explore_inc"
void StenchMessage(object oPC = OBJECT_SELF)
{
//:: Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
//:: Have text appear over the PC's head.
FloatingTextStringOnCreature("The smell of this cesspool is making you physically ill.", oPC, FALSE);
}
void main()
{
//:: Get the entering object (usually a PC)
object oPC = GetEnteringObject();
//:: Only fire once per PC.
if (!GetLocalInt(oPC, "DO_ONCE__" + GetTag(OBJECT_SELF)) )
{
StenchMessage(oPC);
SetLocalInt(oPC, "DO_ONCE__" + GetTag(OBJECT_SELF), TRUE);
}
/*
Spawn_OnAreaEnter() can take three arguments - the name of the heartbeat
script to execute, the heartbeat duration, and a delay for the first
heartbeat. They default to spawn_sample_hb, 6.0, and 0.0 respectively; as
if it were called like: Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 0.0 );
*/
if ( GetIsAreaAboveGround( OBJECT_SELF ) && ! GetIsAreaNatural( OBJECT_SELF ) )
{
//:: Indoors - no delay on the first HB
Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 0.0 );
}
else
{
//:: Outdoors or underground - do a 3 second delay on the first HB
Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 3.0 );
}
//:: Records that the PC has entered Rappan Athuk at least once.
SetLocalInt(oPC, "bEnteredDungeon", 1);
SetLocalInt(oPC, "bEnteredLevelOne", 1);
}