Áƒ*žE_@2ž-5',ŕ,֐B֣§ N2_NoneFastCapClientMessageEngineCoreSetProgressMessageSystemShowHighScoreDeleteHighScoreBotpackRegisterScoreShowAllHighScoresDeleteAllHighScoresTickClearProgressMessagesFC_HighScores FC_RedFlagTouch BeginState FC_BlueFlag FC_MutatorMutatehomeSkin LightHueBroadcastMessage HighScoreSetProgressTime PlayerPawnLevelGameReplicationInfoPlayerReplicationInfo GameInfo LevelInfoMutator BoolPropertyPawnActorS ScriptTextXTitleTextureStateTeam LocationStaticSaveConfig TextBufferTagClass NamePropertyP MutateStringObjectHasFlagbAdminGameOwner TimeSecondsbHidden HomeBase RotationSenderPackageS2 LevelNameSkinsObjectProperty FlagBaseCTFFlagRedFlagCTFReplicationInfo FlagListJpflagR PickupTime Function BytePropertyStructFloatProperty IntProperty PlayerNameNoobFlagClassMehFlag NoobFlagFlaggotPP TimeUsed HighScores StrPropertyStructPropertyClassProperty DeltaTimeOtherbNewHighScore bOverwrite@D„€…‡(+˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙I˙Ž‡œÔX…> ŁY…> ŁY…> ŁY…> ŁY†Ž”…> ŁY…> ŁY†Ž”…> ŁYŒ{#Uż…> ŁY…> ŁY†Ž”šŠŮŤ…> ŁYŒ{#Uż…> ŁY†Ž”…> ŁY†Ž”„-%˙˙˙˙˙˙˙˙B™˙˙˙˙˙˙˙˙˙˙ fúJ„j\şĽ…> ŁYŒ{#Uż†Ž”…> ŁYŒ{#UżfúJfúJ‰I˙Ž†Ž”fúJ  @€…@„ €@…€‰„@@€‡@@ €… €† €†#˙˙˙˙˙˙˙˙B™˙˙˙˙˙˙˙˙˙˙!׺Ď.fúJ ł€…\// ============================================================ // FastCap.FC_RedFlag: put your comment here // Created by UClasses - (C) 2000 by meltdown@thirdtower.com // ============================================================ class FC_RedFlag expands FC_BlueFlag; !‡ %– uz6  ‘6  6  6 Ľ ›  1*/!˙˙˙˙˙˙˙˙˙˙/" ?LÉ%ǖ˝{6 €U6’,}SD6"Vp¨¨¨¨6 has a captime ofseconds on6 .Ľ  úlƒ‚|DeleteHighScore -   ‹ 4¨¨Score for‹‘has been reset!Zô‚|DeleteAllHighScores -    #All scores have been reset!Z)|ShowHighScore ‹ ZZ|ShowAllHighScores     d3// ============================================================ // FastCap.FC_HighScores: put your comment here // Created by UClasses - (C) 2000 by meltdown@thirdtower.com // ============================================================ class FC_HighScores expands Actor config(FastCap); struct HighScore { var string LevelName; var string PlayerName; var float TimeUsed; }; var globalconfig HighScore HighScores[256]; static function DeleteHighScore(LevelInfo Level) { // Deletes score for this level local int x; for (x = 0; x < 256; x++) { if (Default.HighScores[x].LevelName == Level.Title) { Default.HighScores[x].LevelName = ""; Default.HighScores[x].PlayerName = ""; Default.HighScores[x].TimeUsed = 0.0; } } StaticSaveConfig(); } static function ShowHighScore(LevelInfo Level, PlayerPawn P) { // Deletes score for this level local int x; local string s; for (x = 0; x < 256; x++) { if (Default.HighScores[x].LevelName == Level.Title) { s = Left(Default.HighScores[x].TimeUsed, 4+Len(int(Default.HighScores[x].TimeUsed))); P.ClientMessage(Default.HighScores[x].PlayerName@"has a captime of"@s@"seconds on this map!"); } } } static function DeleteAllHighScores() { // Deletes ALL highscores local int x; for (x = 0; x < 256; x++) { Default.HighScores[x].LevelName = ""; Default.HighScores[x].PlayerName = ""; Default.HighScores[x].TimeUsed = 0.0; } StaticSaveConfig(); } static function ShowAllHighScores(PlayerPawn P) { // Deletes score for this level local int x; local string s; for (x = 0; x < 256; x++) { if (Default.HighScores[x].LevelName != "") { s = Left(Default.HighScores[x].TimeUsed, 4+Len(int(Default.HighScores[x].TimeUsed))); P.ClientMessage(Default.HighScores[x].PlayerName@"has a captime of"@s@"seconds on"@Default.HighScores[x].LevelName$"."); } } } static function RegisterScore(float TimeUsed, PlayerPawn PP) { local string s,s2; local int x; local bool bNewHighScore,bOverwrite; s = Left(TimeUsed,4+Len(int(TimeUsed))); PP.ClearProgressMessages(); PP.SetProgressTime(5); PP.SetProgressMessage("Flag was capped in"@s@"seconds!",0); bNewHighScore = True; for (x = 0; x < 256; x++) { if (Default.HighScores[x].TimeUsed != 0.0 && Default.HighScores[x].LevelName == PP.Level.Title) { s2 = Left(Default.HighScores[x].TimeUsed,4+Len(int(Default.HighScores[x].TimeUsed))); PP.SetProgressMessage("Old record is"@s2@"seconds by"@Default.HighScores[x].PlayerName$".",1); if (TimeUsed >= Default.HighScores[x].TimeUsed) bNewHighScore = False; else bOverwrite = True; break; } } if (bNewHighScore) { if (!bOverwrite) { // Find first free spot for (x = 0; x < 256; x++) { if (Default.HighScores[x].TimeUsed == 0.0) { break; } } } Default.HighScores[x].TimeUsed = TimeUsed; Default.HighScores[x].LevelName = PP.Level.Title; Default.HighScores[x].PlayerName = PP.PlayerReplicationInfo.PlayerName; PP.SetProgressMessage("NEW HIGHSCORE!",3); PP.Level.Game.BroadCastMessage(PP.PlayerReplicationInfo.PlayerName@"capped the flag in"@s@"seconds which is a NEW RECORD!"); } StaticSaveConfig(); } Ł˘÷.…ęw*U›:—Ľ:‹žę.—§ꂂw*›::ľ ) Ż‹žŁ •0.˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙*ö§Օ=$:e„j\şĽ„j\şĽ„j\şĽ„j\şĽ„j\şĽ„j\şĽ„j\şĽ„j\şĽ­3e Єj\şĽ„j\şĽ†Ž”šŠŮŤ˜réćĺ„j\şĽ…> ŁY‰I˙Ž…> ŁY†Ž”…> ŁY‰I˙Ž…> ŁY‰I˙Ž‰I˙Ž& Oč€U’,}SD  @.¨¨Flag was capped inseconds!%-'%‘–‡‚ľ6*z6 ‹‘€U6’,}SD6Bp¨¨¨Old record isseconds by6 .&|ł6-(„-'‘Ľ„ŕ-â-%â–Ř´6⼏66 ‹‘6 —ŸNEW HIGHSCORE!,‹œ\¨¨¨—Ÿcapped the flag inseconds which is a NEW RECORD!›  €u// ============================================================ // FastCap.FC_BlueFlag: put your comment here // Created by UClasses - (C) 2000 by meltdown@thirdtower.com // ============================================================ class FC_BlueFlag expands CTFFlag; var float PickupTime; auto state Home { function Touch(Actor Other) { local FC_BlueFlag Flaggot; local PlayerPawn PP; PP = PlayerPawn(Other); if (PP != None) { if (PP.PlayerReplicationInfo.Team != Team) // It's a pawn on some other team touching me, what a perv. PickupTime = Level.TimeSeconds; else // Hey! Same team! { Flaggot = FC_BlueFlag(PP.PlayerReplicationInfo.HasFlag); if (Flaggot != None && Flaggot.Team != Team && Flaggot.PickupTime != 0.0) { // He's touching his own flag with another teams' Flag! Class'FC_HighScores'.Static.RegisterScore(Level.TimeSeconds - Flaggot.PickupTime,PP); } } } Super.Touch(Other); } function BeginState() { PickupTime = 0.0; Super.BeginState(); } } Š', /ř@/a0 „65w*5r.*Iw.´* !T aaľ¨ Ż Ś™™™-ą(:.˜‹œ¤˛10v!  2 2d%\–6 6 6Ľ›  R// ============================================================ // FastCap.FC_Mutator: put your comment here // Created by UClasses - (C) 2000 by meltdown@thirdtower.com // ============================================================ class FC_Mutator expands Mutator; /* Using spawnnotify caused some accessed nones, and other weird stuff :( event PreBeginPlay() { Spawn(Class'FC_SpawnNotify'); Super.PreBeginPlay(); } */ function Mutate(string MutateString, PlayerPawn Sender) { if (MutateString ~= "DeleteHighScore" && Sender.bAdmin) { Class'FC_HighScores'.Static.DeleteHighScore(Level); Sender.ClientMessage("Score for"@Level.Title@"has been reset!"); } else if (MutateString ~= "DeleteAllHighScores" && Sender.bAdmin) { Class'FC_HighScores'.Static.DeleteAllHighScores(); Sender.ClientMessage("All scores have been reset!"); } else if (MutateString ~= "ShowHighScore") { Class'FC_HighScores'.Static.ShowHighScore(Level,Sender); } else if (MutateString ~= "ShowAllHighScores") { Class'FC_HighScores'.Static.ShowAllHighScores(Sender); } Super.Mutate(MutateString,Sender); } event Tick(float deltaTime) { local Class NoobFlagClass; local CTFFlag MehFlag; local CTFFlag NoobFlag; ForEach AllActors(Class'CTFFlag',MehFlag) { if (MehFlag != None) { if (FC_BlueFlag(MehFlag) == None) { if (RedFlag(MehFlag) != None) NoobFlagClass = Class'FC_RedFlag'; else NoobFlagClass = Class'FC_BlueFlag'; MehFlag.Destroy(); NoobFlag = Spawn(NoobFlagClass,MehFlag.Owner,MehFlag.Tag,MehFlag.Location,MehFlag.Rotation); NoobFlag.HomeBase = MehFlag.HomeBase; NoobFlag.HomeBase.bHidden = False; // Destroying the old flag causes this to become True, nasty :( NoobFlag.Team = MehFlag.Team; CTFReplicationInfo(Level.Game.GameReplicationInfo).FlagList[NoobFlag.Team] = NoobFlag; } } } Disable('Tick'); // Stop doing this after it's done ffs. } Ą)'Ą $ %˘Č %Ɩ źz6   ‘€U6 ’,}SD6 I¨¨¨6  has a captime ofseconds on this map!Ľ   ??? 1ý˙˙˙E1˙˙˙˙1˙˙˙˙!1˙˙˙˙%1ţ˙˙˙C1ţ˙˙˙11ţ˙˙˙KCů˙˙˙1˙˙˙˙1ţ˙˙˙51ţ˙˙˙XLü˙˙˙,+ü˙˙˙Xú˙˙˙)1ţ˙˙˙O1˙˙˙˙$1ţ˙˙˙/1˙˙˙˙"1ţ˙˙˙NCí˙˙˙1ý˙˙˙GCü˙˙˙<1˙˙˙˙ Kó˙˙˙.Cú˙˙˙8Kë˙˙˙Nú˙˙˙:Xô˙˙˙P#ű˙˙˙7Kđ˙˙˙1ţ˙˙˙#Kđ˙˙˙Cć˙˙˙Lô˙˙˙,Yů˙˙˙=Cô˙˙˙62ů˙˙˙0Ků˙˙˙ 1ţ˙˙˙+1ţ˙˙˙M1ţ˙˙˙Z1ý˙˙˙D?ý˙˙˙BYů˙˙˙-1ţ˙˙˙Y#ů˙˙˙;Cč˙˙˙H*Ň˙˙˙I1ý˙˙˙FCů˙˙˙9°W J’+( W–V cˆ.R oˆ+U |‡II„yR’&( KŽA Wˆ'> c’$( p’2( |ŽP H ˆ.S T ’/( a Ž'4 m ˆ)U y ˆ)T F!–J S!–+V _!Ź.Qk!˘+] y!Ž+& E"Ž2& Q"ˆ)\ ]"Ž+@ j"Ž&& v"˘+^ B#ˆ23 N#ˆ$ [#Ťh#ˆ2 z#\G$ˆ&3 c%”!'4gp%ŠjW*ސ)A,Š `j,Š*nJ/”'4o3x3ŠŁ%sgg•QZjŠ Zko–.[ Ex”'4@QxŠŠ* [Q‰Š VlŒ”*'4]BŽŠĄ%&_­ŠbEŽ