Code: Select all
//-----------------------------------------------------------------------------
// DelayedTrigger: Trigger an event only after a set delay.
//-----------------------------------------------------------------------------
class DelayedTrigger expands Triggers;
//-----------------------------------------------------------------------------
// Variables:
//-----------------------------------------------------------------------------
// How long to delay?
var() byte DelaySeconds;
// Trigger more than once?
var() bool bLooping;
var byte OriginalSeconds;
//-----------------------------------------------------------------------------
// Init for play.
//-----------------------------------------------------------------------------
function BeginPlay() {
OriginalSeconds = DelaySeconds;
SetTimer(DelaySeconds, False);
}
//-----------------------------------------------------------------------------
// Time to trigger:
//-----------------------------------------------------------------------------
function Timer() {
local Pawn P;
local Actor A;
// Message all players:
for (P = Level.PawnList; P != None; P = P.nextPawn) {
if (P.bIsPlayer) break;
}
// Trigger:
if (Event != '') {
foreach AllActors(class 'Actor', A, Event) {
A.Trigger(Self, P);
}
}
// Run again?
if (bLooping) {
DelaySeconds = OriginalSeconds;
SetTimer(DelaySeconds, False);
}
}
//-----------------------------------------------------------------------------BTW, Why no UnrealScript forum?