// By: Alex // Major fixes by Marco. class KFElevator extends Mover; var() float ElevatorMoveSpeed; var() name ElevatorFloorTags[8]; // The tag of the desired doors/triggers. var() name ElevatorCenterTriggerTag; // The tag of the trigger inside elevator. var sound DummySound; struct DoorMType { var array Doors; }; var DoorMType FloorMovers[ArrayCount(ElevatorFloorTags)]; var KFElevatorTrigger FloorTriggers[ArrayCount(ElevatorFloorTags)],ElevCenterTrigger; var LiftExit MyExits[ArrayCount(ElevatorFloorTags)]; // Our desired lift exits for AI hint. var byte GoalKeyFrame,NumberOfFloors; var bool bElevatorActive; function PostBeginPlay() { local KFElevatorDoorMover K; local KFElevatorTrigger T; local byte i; local NavigationPoint N; Super.PostBeginPlay(); DummySound = AmbientSound; ForEach DynamicActors(class'KFElevatorTrigger',T) { for( i=0; i 0 ) { bDelaying = true; Sleep(DelayTime); } DoOpen(); FinishInterpolation(); FinishedOpening(); bElevatorActive = false; if ( SavedTrigger != None ) SavedTrigger.EndEvent(); ToggleDoors(GoalKeyFrame,True); Stop; Close: DoClose(); FinishInterpolation(); FinishedClosing(); SetResetStatus( false ); } defaultproperties { TransientSoundVolume=100.000000 ElevatorMoveSpeed=500 InitialState="Elevator" MoverEncroachType=ME_IgnoreWhenEncroach }