Įƒ*ž‚D@»"'¦!©uō’éŸA‘¶×oLµDNonepureCTF GameplayCoreSystem statClasses statClassbaseDeviceClassoffensePointsPerStatdefensePointsPerStat Collision LightColorForceKarmaEngine Lighting Movement killStatbaseDeviceDestroyStatsbaseDeviceRepairStatsstatdestroygeneratorGameDescription MapListType GameName killstatctfstatrepairinventorystatdestroysensorstatrepairgeneratorstatrepairsensorMapList GameClasses GetNextMap LevelSummary BoolProperty GameInfoActorMapsLevel ScriptTextProcessedTextLSupportedModesGameMapNum CurrentMapi ReturnValueDynamicLoadObject startIdx bSupportedClassPackage TextBufferObject FunctionName StrPropertyArrayPropertyClassProperty NamePropertyObjectProperty IntPropertyModeCTF LevelInfoBaseObjectClasses BaseSensorBasePowerGeneratorBaseInventoryStationŠ@–’’’’’’’’’’’’’’’’’’2˜ÓT–Ģ`h‡,‚=:l#Ę,‚=:l#Ę{ defensePointsPerStat=0 '..\pureCTF\Classes\statrepairsensor.uc "’’’’’’’’’’’’’’’’’’’2rdĒG’Łži‡Ņ;:l#Ę,‚=:l#Ę{ offensePointsPerStat=0 (..\pureCTF\Classes\statdestroysensor.uc"“’’’’’’’’’’’’’’’’’’2÷lؓņ€ę‡Ņ;:l#Ę,‚=:l#Ę{ offensePointsPerStat=0 +..\pureCTF\Classes\StatDestroyGenerator.uc"š’’’’’’’’’’’’’’’’’’2 ł4¾šĶ {‡ÖųK̵"ĘÖųK̵"Ę{ offensePointsPerStat=0 "..\pureCTF\Classes\killstatctf.uc"’’’’’’’’’’’’’’’’’’2  °Ó­DŸ‡,‚=:l#Ę,‚=:l#Ę{ defensePointsPerStat=0 *..\pureCTF\Classes\statrepairgenerator.uc "•’’’’’’’’’’’’’’’’’’2 Ū*„–•¢&}‡,‚=:l#Ę,‚=:l#Ę{ defensePointsPerStat=0 *..\pureCTF\Classes\statrepairinventory.uc "Ž ’’’’’’’’€’’’’’’’’’’€ f ^ŽzŐ¬Š›Ż>Š›Ż>‘ė_p›8ƒlcˆ›8ƒlc‡  ß`ĶE#ĘlAcĶE#Ę..\pureCTF\Classes\MapList.uc ĀXb#˜7‰&k{%k–7‰a|‰…k„.…„…——…“7‰&…%°z…‰…%.Š„p…‰.LevelSummary ŠSr*ēppGetNextMap: no level summary for level …‰, unable to determine game type support§%§–7—a— Œ-'§„Z--ēppppGetNextMap: current game type 9W Ÿ¤£ not supported by map …‰, skippingv„- š…b…‰ Oclass statrepairinventory extends statClasses.statrepairinventory; ?class killstatctf extends statClasses.killstatctf; Iclass statrepairsensor extends statClasses.statrepairsensor; ?class killstatctf extends statClasses.killstatctf; Oclass statrepairgenerator extends statClasses.statrepairgenerator; Qclass statdestroygenerator extends statClasses.statdestroygenerator; Kclass statdestroysensor extends statClasses.statdestroysensor; Oclass statrepairgenerator extends statClasses.statrepairgenerator; Oclass statrepairinventory extends statClasses.statrepairinventory; Iclass statrepairsensor extends statClasses.statrepairsensor; Rclass MapList extends Gameplay.MapList; function string GetNextMap() { local int startIdx; local LevelSummary l; local int i; local bool bSupported; local string CurrentMap; CurrentMap = GetURLMap(); if (Maps.Length <= 1) return CurrentMap; if ( CurrentMap != "" ) { for ( i=0; i Maps.Length - 1 ) MapNum = 0; if ( Maps[MapNum] == "" ) MapNum = 0; l = LevelSummary(DynamicLoadObject(Maps[MapNum]$".LevelSummary", class'LevelSummary')); if (l == None) { LOG("GetNextMap: no level summary for level "$Maps[MapNum]$", unable to determine game type support"); } else { for (i = 0; i < l.SupportedModes.Length; i++) { if (ClassIsChildOf(l.SupportedModes[i], class'GameClasses.ModeCTF')) { bSupported = true; break; } } } if (!bSupported) LOG("GetNextMap: current game type "$Level.Game.class.name$" not supported by map "$Maps[MapNum]$", skipping"); } until (bSupported || MapNum == startIdx); SaveConfig(); return Maps[MapNum]; } Rclass MapList extends Gameplay.MapList; function string GetNextMap() { local int startIdx; local LevelSummary l; local int i; local bool bSupported; local string CurrentMap; CurrentMap = GetURLMap(); if (Maps.Length <= 1) return CurrentMap; if ( CurrentMap != "" ) { for ( i=0; i Maps.Length - 1 ) MapNum = 0; if ( Maps[MapNum] == "" ) MapNum = 0; l = LevelSummary(DynamicLoadObject(Maps[MapNum]$".LevelSummary", class'LevelSummary')); if (l == None) { LOG("GetNextMap: no level summary for level "$Maps[MapNum]$", unable to determine game type support"); } else { for (i = 0; i < l.SupportedModes.Length; i++) { if (ClassIsChildOf(l.SupportedModes[i], class'GameClasses.ModeCTF')) { bSupported = true; break; } } } if (!bSupported) LOG("GetNextMap: current game type "$Level.Game.class.name$" not supported by map "$Maps[MapNum]$", skipping"); } until (bSupported || MapNum == startIdx); SaveConfig(); return Maps[MapNum]; } €@Œ’’’’’’’’€’’’’’’’’’’6€ŽĆtŒ£ØŠÖ‡  €)łxb#ĘŚ‹ūxb#Ę^{ GameName="Pure Capture The Flag" GameDescription="Retrieve the enemy team's flag and bring it back to your team's flag stand. Your flag must be at its stand in order to capture their flag. Points will be awarded only for flag and style related actions." basedevicedestroystats(0)=(statClass=Class'pureCTF.StatDestroyGenerator',baseDeviceclass=Class'BaseObjectClasses.BasePowerGenerator') basedevicedestroystats(1)=(statClass=Class'pureCTF.StatDestroySensor',baseDeviceclass=Class'BaseObjectClasses.BaseSensor') basedevicerepairstats(0)=(statClass=Class'pureCTF.StatRepairGenerator',baseDeviceclass=Class'BaseObjectClasses.BasePowerGenerator') basedevicerepairstats(1)=(statClass=Class'pureCTF.StatRepairSensor',baseDeviceclass=Class'BaseObjectClasses.BaseSensor') basedevicerepairstats(2)=(statClass=Class'pureCTF.StatRepairInventory',baseDeviceclass=Class'BaseObjectClasses.BaseInventoryStation') killstat=Class'pureCTF.killstatctf' MapListType="purectf.maplist" ..\pureCTF\Classes\purectf.uc Y˜™Y ˜™ §]purectf.maplist]Pure Capture The Flag]ĪLRetrieve the enemy team's flag and bring it back to your team's flag stand. Your flag must be at its stand in order to capture their flag. Points will be awarded only for flag and style related actions.Qclass pureCTF extends GameClasses.ModeCTF; Kclass statdestroysensor extends statClasses.statdestroysensor; Qclass statdestroygenerator extends statClasses.statdestroygenerator; Qclass pureCTF extends GameClasses.ModeCTF; 332ž’’’2’’’’4=ż’’’+32’’’’52’’’’29ż’’’$2ž’’’ 3@2ń’’’>32ó’’’32ś’’’2ž’’’?2ś’’’2ś’’’2’’’’82ś’’’2ś’’’9ö’’’)2õ’’’B2õ’’’A2ś’’’2ž’’’"2’’’’=6ņ’’’2’’’’<<ļ’’’*<ß’’’%2ž’’’#2’’’’!;ł’’’7:ł’’’26ł’’’/2’’’’62õ’’’Cœ -dž (A” ,_¢ 1|œ 0Y–Gv’H}“KEšBPJR!•J\$ŽXf'¦ d~*„ &4fb2„ &4UH4„&4`]5„ '4U}6„ &4fR8„'4hx9„'4b`;„ '4fB=„ '4fh>„'4`N@„ &4inA„ '4iWU” .@iŒo]i„&4hL€„&4bt„&4hVƒ„'4h~„