Áƒ*ž~5@Ť!ărg.?C8Gž:6 ĺ5NoneBEscapeVolume TeamMessageSayPlayerControllerCoreEngineEndGameBEscape ServerTravelSuccessMessagePawnEnteredVolumePawnLeavingVolumePostBeginPlayGetThereMessage TimerPopSystemActorPawnLevelVolumePhysicsVolumeClass ControllerPlayerReplicationInfoPackage LevelInfoTimer TextBufferX ScriptTextObject Function StrProperty VolumeTimerListHealthnextControllerControllerListGamePOtherAdvancedEngineAdvancedPlayerController dumbcounterArrayPropertyObjectProperty PlayersInVol MessageTimer IntProperty GameInfo GoToLevelalive‚‚@@ €…€…€ @@™ *Š”™ / •a/!Ľ‹Żw*˜w.œ*˜‚w”*—”ž%Ľ‘C’‚—% ™a(‹Fw*/w.‰*.‰– !‘苚*Everyone Escaped’{‹  ' “ a “ l//----------------------------------------------------------- // $DATETIME: 01/04/2006 8:25:12 AM$ //----------------------------------------------------------- class BEscapeVolume extends PhysicsVolume; var int PlayersInVol, dumbcounter; var VolumeTimer MessageTimer; var() string SuccessMessage, GetThereMessage, GoToLevel; var array list; function PostBeginPlay() { MessageTimer = spawn(class'VolumeTimer', self); super.PostBeginPlay(); } function TimerPop(VolumeTimer timer) { local Controller P; local int x; super.TimerPop(timer); //log(self@"TimerPop"); if(timer == MessageTimer && dumbcounter++ % 30 == 0) { for(P = Level.ControllerList; P != None; P = P.NextController) { if(AdvancedPlayerController(P) != None) { for(x = 0; x < list.Length; x++) { if(list[x] == P) return; } AdvancedPlayerController(P).TeamMessage(P.PlayerReplicationInfo, GetThereMessage, 'Say'); //Level.Game.Broadcast( P, GetThereMessage, class'AdvancedHud'.default.INFO ); list[list.length] = p; } } } } event PawnEnteredVolume(Pawn Other) { local Controller P; local int alive; super.PawnEnteredVolume(Other); if(Other.Controller.IsA('PlayerController')) PlayersInVol++; for ( P = Level.ControllerList; P!=None; P=P.nextController ) { if(PlayerController(p) != None) { if(p.Pawn != None && p.Pawn.Health > 0) alive++; } } if(alive > 0 && PlayersInVol >= alive) { SetTimer(0, false); for(P = Level.ControllerList; P != None; P = P.NextController) { if(AdvancedPlayerController(p) != None) AdvancedPlayerController(P).TeamMessage(P.PlayerReplicationInfo, SuccessMessage, 'Say'); } Level.Game.EndGame(none, "Everyone Escaped"); if(GoToLevel != "") { Level.ServerTravel(GoToLevel, true); } } } event PawnLeavingVolume(Pawn Other) { super.PawnLeavingVolume(Other); if(Other.Controller.IsA('PlayerController')) PlayersInVol--; } ‚˜ ,ń˜ ď‚r ´­9?Ľ9?,9?%‹ďw*Řw.‰*%š–7r Ľi.‰– !7‘G — @†1— / •a/!Ś †˙˙˙˙˙˙˙˙@` €˙˙˙˙˙˙˙˙˙˙26ťŔ†Žé‰Ş…Lą‚9‚sߊ…Lą‚9‚sߊ„J€qÁ‚sߊ‚sߊ‚sߊ…Lą‚9‚sߊ„J€qÁ‚sߊ‰ƒZ•‚sߊ‚sߊ„J€qÁĄK8 ň„J€qÁ„J€qÁ‚sߊ‰ƒZ•‚sߊ‚sߊ  ]'&Everyone made it to the escape point!]Get to the escape point!˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ý˙˙˙.*ř˙˙˙+˙˙˙˙.ö˙˙˙ý˙˙˙ ý˙˙˙1ý˙˙˙!˙˙˙˙".ü˙˙˙&.ţ˙˙˙%˙˙˙˙ î˙˙˙ .ţ˙˙˙.ű˙˙˙.ţ˙˙˙ ú˙˙˙  ú˙˙˙ ú˙˙˙ .ü˙˙˙'ý˙˙˙-˙˙˙˙ý˙˙˙1ű˙˙˙$ý˙˙˙ý˙˙˙˙˙˙˙2‡( s ‡( @ M›# Y4 f/ rŽ3 ~‡0 J‡) W‡) d‡ qŽ  ~Ž J, VŒ™ abŒ“ (C4wk‡# b5Œ˜no5Œ— 9]8†nV9