UE2:Round Robin: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
==One-shot Script== | ==One-shot Script== | ||
{{Infobox class | |||
| class = myCustomRoundRobin | |||
| package = | |||
| within = | |||
| game = UT2004 | |||
| engine = UE2 | |||
| parent1 = Actor | |||
}} | |||
<uscript> | <uscript> | ||
/* A Simple Custom Round Robin Created By Dalin 'MythOpus' Seivewright. | /* A Simple Custom Round Robin Created By Dalin 'MythOpus' Seivewright. | ||
Line 49: | Line 58: | ||
==Repeat-Use Script== | ==Repeat-Use Script== | ||
{{Infobox class | |||
| class = RoundRobinTrigger | |||
| package = | |||
| within = | |||
| game = UT2004 | |||
| engine = UE2 | |||
| parent1 = Info | |||
}} | |||
<uscript> | <uscript> | ||
/* | /* |
Revision as of 00:10, 7 April 2008
Created due to the fact that the RoundRobin actor present in UE1 has been removed. There are two scripts on this page, in created by User: DalinSeivewright and the other by El Muerte. A round robin will cycle through a series of names and trigger the associated event.
One-shot Script
![]() |
Actor >> myCustomRoundRobin |
<uscript> /* A Simple Custom Round Robin Created By Dalin 'MythOpus' Seivewright.
This RoundRobin has a one time use only but it can be set up to do a mass chain of triggering. Customize as needed. Found At: http://wiki.beyondunreal.com
- /
class myCustomRoundRobin extends Actor placeable;
var() array<name> Targets; //The things you wish to trigger (it's a dynamic array) var() float TriggerSeconds; //The number of seconds between each triggering
var bool bTriggered; //Internally Set Bool (Ignore It)
function PostBeginPlay() {
SetTimer(TriggerSeconds, TRUE);
}
simulated function Timer() {
//If this RoundRobin has been triggered and the dynamic array's lenght is not 0 if((bTriggered) && (Targets.Length != 0) ) { TriggerEvent(Targets[0], self, None); //Always trigger the first item in the array Targets.Remove(0,1); //remove the item that has just been triggered } else if(Targets.Length == 0) { SetTimer(0.0, false); //If there is nothing left in the dynamic array.. just disable the timer. }
}
simulated function Trigger( Actor Other, Pawn EventInstigator ) {
//When this actor is triggered, it will set bTriggered as true so the timer can //Trigger all it's targets and remove them from the array. bTriggered = true;
} </uscript>
Repeat-Use Script
![]() |
Info >> RoundRobinTrigger |
<uscript> /* RoundRobinTrigger, based on myCustomRoundRobin by Dalin 'MythOpus' Seivewright. Written by El Muerte http://wiki.beyondunreal.com/CustomRoundRobin
- /
class RoundRobinTrigger extends Info placeable;
/** The things you wish to trigger (it's a dynamic array) */ var() array<name> Targets; /** The number of seconds between each triggering */ var() float TriggerSeconds;
/** all targets will be triggered after eachother, with TriggerSeconds being the interval. Otherwise the targets will be subsequently triggered when triggered */ var() bool TimedTrigger;
/** current index in the targets to trigger */ var int TriggerIndex;
function Reset() { if (TimedTrigger) SetTimer(0.0, false); TriggerIndex = 0; }
event Timer() { if (TriggerIndex < Targets.length) TriggerNext(); else Reset(); }
function TriggerNext() { TriggerEvent(Targets[TriggerIndex++], self, None); }
function Trigger( Actor Other, Pawn EventInstigator ) { if (TimedTrigger) SetTimer(TriggerSeconds, true); else Timer(); // call timer just once } </uscript>
Notes
While these scripts can be useful for a contained and simple actor, the same effect can also be created using a scripted trigger.