Áƒ*žEŠ@ {¼ó´Á5v�qÖA®²l¸„­Þð ŠNone DebugLogCreateControlSetTextConsoleCommand BDBMapVote MapVoteLA13tCoreSystem SetValueUWindowGetPureMapname GetValueSetFontClientMessage FixPrefixBroadcastMessage SetTextColorEngineMakeSelectedVisibleSetSelectedItemClearSetNumericOnlyCloseCreated MapVoteLA SelectMapFindPlayerIndex DeSelectAllOtherMapListBoxItemsKeyDownPaint CloseUWindowLoadMapCycleListNotify LoadMapTypesAddItemAppend SpectatorUpdateKickVoteResults DestroyWRIUpdateMapVoteResults ShowWindowRemovePlayerNamegetSelectedItemTickWRIFocusStartWindowSendReportTextCleanUpPlayerIDs FindIndex FocusWindow MatchFilterUpdatePlayerVoted AddNewPlayerCompare SelectPlayerGetMapSequence SetupWindow SetupGameMapBrowseWebPage DrawItemMapVoteHistory_INIGetMapPriority ItemHeightExecuteSettingSave ListClass isMapInList TallyVotesSetMOTDUpdateOpenWRIAssault OpenWindow GetPrefixGetServerConfigAddPageOpenVoteWindowGetMapListNumberTimer GetRandomMapSetKey RemovePrefix ServerTravelLoadExistingKeysFailureSuccessGetWinningTeamDoubleClickItemLoadingSwapUMenu KickPlayerQuerySetHTMLRemoveMapByIndex AnswereQGetPlayerScore GetAccVote IsCrashedMap!CreateMapnameIncludingListnumberSetInfoServerAddressCloseAllVoteWindowsbAlwaysRelevant MapReport SetPlayCount getListNumStartActorMutator PlayerPawnAddPlayerNameSetMapSequence CloseWindowAddMapGetPlayerNameOpenIfNecessary WindowClassMapVoteHistory2MapVoteHistory1 MapListTempMapVoteHistory4 HotKeyBoundMapVoteHistory3BeginRequested RunRport formatingGetQExecuteMessage CustConfigSetMapTournamentPlayer List2FilterProcessMenuKeyHandleServerEmpty CheckForTie TeamColor TimeMessagesorting ProcessDataBrowseCurrentURI SubmitVoteSubmitKickVote AddKickIPWinTop WinWidth WinHeightWinLeft WindowTitle AddKickName CheckKickIPCheckKickPlayerOpenWelcomeWindow SaveAccVotes SortMapListRemoveOldestMapColor ClientClassPostBeginPlay SetEditable PreBeginPlayLoadMapListConfigSaveMapListConfigUpdatePrefixes ResetAssault GetMapIndexGetRealMapnameHandleFailedMapSaveMapVoteConfig SaveKeyBind AddMapNameStartMutatorsAndSettings ClearList MaxFloatEnableKickWindow RemoveMap GetPlayCount BeforePaintbShowWelcomeWindowBeginModeHandleEndGameFindRemoveTrigger BeginState SendReportFocusOtherWindowGetMostPlayedMapGetLeastPlayedMap RemoteRoleMutatorPostNetBeginPlay HideConsole NetPriority LifeSpan GetItemName SetHistoryLaunchUWindow SetMaxLengthMutate List4Filter List3Filter AddMutatorCloseActiveWindow List1FilterCustomGameConfigCreateRootWindowbList4ObeyRepeatLimitbList3ObeyRepeatLimitbList2ObeyRepeatLimitbList1ObeyRepeatLimitbFixCTFModificationsbLoadScreenShot MsgTimeOutEmptyServerLevelSwitchTimeMinsMapListIfNooneVotedbASbCTFbDOMbDM MutActConfigClearPlayerListClientPlaySoundAskQ ResetGameASClassbUseExcludeFilterList4PriorityList3PriorityList2PriorityList1Priority MapVoteTitle List4Title List3Title List2Title List1TitlebSortWithPreFix MinMapCountMidGameVotePercentMapVoteHistoryType RepeatLimitScoreBoardDelay bAutoOpen SetMultiLine KickPercentVoteTimeLimit bKickVoteDestroyOnClose ConfigWindow MapVoteWRIKeyBinderListItemServerInfoLinkMapVoteClientWindowMapVotePageControlMessageHelperPlainVScrollBarMapVoteListBoxPlayerVoteListBoxKickStatusListBox MapVoteRIUMenuMapVoteListKickStatusListItemMapVoteReportMapStatusListBoxMapVoteTabWindowServerInfoWindowMVKeyBinderFrameWindowMVWelcomeWindowMVKeyBinderListBoxMapVoteHistoryMVKeyBinderClientWindowMapStatusListItem MVWelcomeWRIPlayerVoteListItemMapVoteNavBarEmptyServerLevelSwitch AdminWindowAdminTabWindowGetMap Domination TeamGamePlusUpdateServerTimeout QueryText FailureText LinkClass NumTriesTextAreaClassBrowseHTTPReceivedData HTTPErrorIpDrv UBrowser DesiredWidthIdealPlayerCount bByParentChild TimeSecondsOwner nextPawn MaxValue MinValueGamePageNextBest Sentinel bBottomGrowBottomClientWindowUBrowserHTTPClientUBrowserMainWindowUBrowserUpdateServerTextAreaTopClientWindowData ServerPort ErrorCodePortPart VSplitter InfoWindowServerAddressOldPlayerName PageControl bGotMOTDbHadInitialQueryMOTD UpdateWindow CloseButton MainWindow GameType MapTitlebAdmin StartTimeTeamsbFoundScore TeamInfo MaxTeamsPickups WeaponPickup bDontRestartNextMapmyList LoopCount PlayerCount TeamIndexAlias ClassStringBeltSndTeamID PlayerName NumPlayers GameClassItemUMenuRaisedButtonUMenuLabelControlUMenuDialogClientWindowUMenuPageControlM RealKeyNameSelectedButton bPolling bInitializedPages MutatorList FirstMapTestMap MapAuthorBotpackDeathMatchPlus ThumbHeightCTFGameLFontsLastManStanding ThumbStartTeamSayMessagePlusSayMessagePlusStringMessagePlusRedSayMessagePlusDeathMessagePlusCriticalStringPlusReal Attacker SavedTime NumDefensesCurrentDefender bDefenseSet bTiePartOne GameCode bAssaultWonrank Defender WebServerURIIdStatusBarTextFixedAreaClass ClientAreaDesiredHeight TextAreaVertSB bSelected SplitPosRoot bCreatedRootaPawnMouseXMouseY bShowConsolebLeaveOnscreenbQuickKeyEnable ScreenshotNetMode MutateStringPrev PawnListbAcceptsFocus EditBoxWidthItems DownSound BlackTexturetries WhiteTextureNextURLEventInstigator ParentWindowAlignbTyping bDisabledFirstChildWindowIndexLastChildWindowPrevSiblingWindowP OwnerWindow TheWindow TicksPassedbDestroyRequestedMsgIPOther DeltaTimePrefixServerInfoURL MapInfoURLbHasStartWindowKeyBinderWindow bHotKeyBoundMapName ActorClassGetPlayerNetworkAddressMapVoteMutator MapListNum MapList1 MapList2GetEntryLevel MapList4 MapCount gPlayerCountbWindowVisibleMapVoteResultsKickVoteResults GameTypes OtherClassNextSwitchCountdown bGameEnded bUseMapListFindChildWindowpos bAutoDetectbCheckOtherGameTie ReportText DrawUpBevel ClipTextDrawStretchedTexture CreateWindowMapPreFixOverRide PreFixSwap OtherPreFixHasStartWindowbEntryWindowsSetAcceptsFocus bDebugModebRemoveCrashedMapsbReloadMapsOnRequestOnly ActGameClassActGamePrefix BringToFrontSetSize MapListTypeGetPlayerOwnerUWindowListBoxItemUWindowListBoxbIgnoreRDoubleClickbIgnoreMDoubleClickUWindowWindow CustomGamesCustomGamesStateUWindowButtonPrefixDictionaryLastMapsCountLastMapListCountXUWindowDialogControl bUpdated blastCheckgAdminChechsumgPlayerChecksumgTitleChecksum bAdminDone LogoTexturebOpenWindowDispatchedbSetupWindowDelayDoneMyCountMyPlayerCount bHasVoted repMapsCountrepMapListCountXrepAdminChechsumTitleChecksumrepPlayerCountUWindowCheckboxNewPlayerName LifetimeMaps Location bIsPlayerMapList p_ReportText LocalMessagetestenUWindowRootWindow GetNextIntPPTeamaMTheSoundString bEnabled SoundString dynSound DrawColorUWindowClientWindowUWindowComboControl MutatorsUWindowFramedWindow PrefixesClassesUWindowListControlbLMSbTDM UWindowListUWindowDialogClientWindowUWindowSmallButtonbShowWhoKicksWhoUWindowPageControlPagebEnableEmptyServerLevelSwitchUWindowPageWindowUWindowVSplitterUWindowScrollingDialogClientbUseMsgTimeoutUWindowHSliderControlUWindowEditControlUWindowVScrollbar MapPrefixWindowConsole TextColorDefaultSettings CurrentID bSizable BaseMutatorKeyExcludeFilter CrashedMapsAccName AccVotesTmpNextVirtualPrefixTmpNextRealPrefix PlayerIDList PlayerVotePlayerKickVoteMapStatusTextKickStatusText KickIPListKickPlayerList EndGameTime bMidGameVoteCurrentPlayerCountJoinTickCount MaxPriority TravelMap bAutoGame AutoGame TimeLeftScoreBoardTimeServerTravelTimeAutoGameClassCustomGameClassMapVoteHistoryClassbLevelSwitchPendingServerTravelStringbInitMapsLoadedbMapReloadRequested GamePackage bBunnyshitActualMapPrefixbIgnoreLDoubleClick VoterNum NoVoteCountmwriPID PlayerIndexaWRIValueBestPTextVoter MapIndexMapNum VoteCountLamerFilterMVWRItempShortIPAXCESLSdefaultPrefixseq MVReport ObjectCount MVHistory CustSettingEbSpecsAllowed bManualOpen CustStateZMVWWRIYbAddIfNotFoundWKeyNamej PlayerScoreiPlayerAccVotes ScriptTextWinningMapIndextbForceMapSwitchtopmapRankingPlayersThatVoted TieCount textlinePlayersLeftToVoteSB TempMapNameAMapBMapAMapPreBMapPreRG mapnameXlocked ReturnValueStaticSaveConfigDynamicLoadObjectSetPropertyText modFilterGetPropertyText CurrentMapKeyNo TempList LevelInfo GameInfoPlayerReplicationInfo PreFixChange FilteredMap ignoreCount bIsPureCTFInfo MapCycleListReplicationInfo LevelSummaryCanvasFontrandmap securityLevelActor ActualPrefix TestPrefixPawnPlayerSettingbIsDefaultSettingNetConnectionval1val2WindowListAuthorServerEmptyTimeMinsServerEmptyTimeMapVote SettingsSoundTextureTitleConsoleNewSeqLink NewPlayCountRole ReportTypeSeqNum PlayerID bChecked LastMapIndexMapLowestClassPackage p_ReportType p_MVReportSenderpc SelectedItemHistoryMaxMaps bSendResults Property TextBufferMapItemObject PlayerItem ItemPointer CapMapName FunctionH SearchTextWelcomeWindow cbLoadDM cbLoadLMS cbLoadTDM cbLoadAS cbLoadDOM cbLoadCTF cbAutoDetectcbCheckOtherGameTiecbReloadMapsOnRequestOnly cbCustGameRemoteSaveButtonReloadMapsButtonListCrashButtonClearCrashButtonsldVoteTimeLimitlblVoteTimeLimitsldKickPercentlblKickPercenttxtRepeatLimittxtMinMapCountsldMidGameVotePercentcboModetxtServerInfoURLtxtMapInfoURLcboMapVoteHistoryTypelblMidGameVotePercentlblGameTypeSectionlblMiscSectionlblOtherClasslblLimitsLabellblMapPreFixOverRidelblRepeatLimitlblMinMapCountlblAdvancedSectionlblServerInfoURLlblMapInfoURL lblASClass lblActGame lblActPrefix lblCustGamelblTemp cbUseMapList cbAutoOpen cbKickVotecbEntryWindowssldScoreBoardDelaylblScoreBoardDelaycbSortWithPreFix cbDebugModetxtList1TitletxtList2TitletxtList3TitletxtList4TitletxtMapVoteTitletxtList1PrioritytxtList2PrioritytxtList3PrioritytxtList4Priority txtASClasscbRemoveCrashedMapscbUseExcludeFiltergap CustString FilePathversionState p_URLStringP1P2qp_ServerInfoURL p_MapInfoURL MapListBox1 MapListBox2 MapListBox3 MapListBox4 VoteButton InfoButtonPlayerListBoxKickVoteButton lstMapStatuslstKickStatuscbLoadScreenShotlblStatusTitles lblTitle1 lblTitle2 lblTitle3 lblTitle4 lblTitle lblMaptxt1 lblMaptxt2 lblMaptxt3 lblPriority1 lblPriority2 lblPriority3 lblPriority4 lblMapCounttxtFind SendButton txtMessagelblMode LastVoteTimeSelectionTime MapListwidthPlayerListwidth ListHeightbMapAlreadySetTextColorTitlesTextColorTitleLowSectionStartRightSectionStartStruct selListBoxlistNum UnrealShare StrProperty RealPreFix RealMapNameStructProperty VirtualMap Dictionaryvirt TempText lblMenuKey cmdMenuKey OldHotKeysldMsgTimeOutlblMsgTimeOut sizefactorbSliderInitedcbUseMsgTimeoutClassProperty bSaveNeededServerInfoButtonMapInfoButtonReportButton1ReportButton2 TipsButton AboutButtonStepCurrentMapName ByParent lstKeyList SaveButtonCloseRequestTime lblMessageKeyItemCommandStringObjectProperty MapWindowPrevSelectedMapPrevSelectedPlayerInfoServerAddressInfoServerPort InfoFilePathServerInfoFileFloatProperty BoolProperty IntProperty NewPrefix ByteProperty MapList3ÐcdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaÒ»×�Ð=$:e‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«�œÔ�X‰Ž�”–©Ù«Ð=$:e‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž Îôªª‘‰Ž�”¨—¬ž ‰Ž�”¨—¬ž Îôªª‘‰Ž�”–©Ù«‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ‰Ž�”¨—¬ž ë˜ë˜/Ú™x똉Ž�”/Ú™x‰Ž�”‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‘¨—¬ž ‘ú©€'‘Ã-¤%n‘÷ïÙL�‘È}"›#‘öbb·³‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«/Ú™x‘–©Ù«@"sáM@"sáM@"sáM@"sáM@"sáM@"sáM@"sáM@"sáM‘@"sáM‘@"sáM/Ú™x‘@"sáM/Ú™x‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù«‘–©Ù« Mß� Mß� Mß� Mß� Mß� Mß� Mß� Mß�‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”‰Ž�”–©Ù«‰Ž�”–©Ù«/Ú™x/Ú™x/Ú™x‘Ò»×�‘Ò»×�‰Ž�”’žtÈ…> £Y˜{#U¿…> £Y˜{#U¿’žtȑһ×�‘Ò»×�‘Ò»×�‰Ž�”’žtÈ…> £Y˜{#U¿…> £Y˜{#U¿’žtȉŽ�”’žtÈ…> £Y˜{#U¿…> £Y˜{#U¿’žtȉŽ�”’žtÈ…> £Y˜{#U¿’žtȘ{#U¿’žtȉŽ�”’žtÈ’žtÈ…> £Y˜{#U¿’žtÈ Mß� Mß� Mß�…> £YaŠWüs…> £YaŠWüs…> £Y…> £Y Mß�…> £Y Mß� Mß� Mß� Mß� Mß� Mß� Mß� Mß� Mß� Mß�…> £Y Mß� Mß� Mß� Mß�‰Ž�”’žtÈ’žtÈ…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿ Mß�…> £Y˜{#U¿ Mß�…> £Y˜{#U¿’žtÈ Mß� Mß� Mß� Mß� Mß�‰Ž�”‰Ž�”…> £Y…> £Y…> £YAžõÚ…> £Y…> £Y…> £Y…> £Y‰Ž�”…> £Y…> £Y˜{#U¿…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y…> £Y/Ú™x/Ú™x/Ú™x…> £Y…> £Y…> £Y…> £Y/Ú™x/Ú™x/Ú™x…> £Y…> £Y…> £Y‰Ž�”YüÅ3kYüÅ3k‰Ž�”’žtÈ’žtȘ{#U¿…> £Y’žtȘ{#U¿…> £Y’žtȘ{#U¿ Mß� Mß� Mß�’žtÈ’žtÈ�œÔ�X…> £Y˜{#U¿‰Ž�”’žtÈ’žtȘ{#U¿…> £Y…> £Y…> £Y…> £Y˜{#U¿’žtȘ{#U¿…> £Y˜{#U¿’žtȘ{#U¿’žtȘ{#U¿’žtȉŽ�”–©Ù«…> £Y˜{#U¿�œÔ�X…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿‰Ž�”–©Ù«‰Ž�”–©Ù«‘–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”È}"›#Îôªª‘‰Ž�”È}"›#Îôªª‘‰Ž�”È}"›#‰Ž�”È}"›#Îôªª‘Îôªª‘‰Ž�”È}"›#Îôªª‘‰Ž�”’žtÈ’žtȘ{#U¿’žtȘ{#U¿’žtȉŽ�”’žtÈ’žtȘ{#U¿’žtȘ{#U¿’žtȉŽ�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”–©Ù«‰Ž�”’žtÈ’žtÈ’žtȘ{#U¿’žtÈ’žtÈ’žtÈ’žtȘ{#U¿…> £Y…> £Y’žtȘ{#U¿’žtÈ…> £Y˜{#U¿’žtȘ{#U¿’žtÈ’žtÈ…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿…> £Y˜{#U¿’žtȉŽ�”–©Ù«‰Ž�”¨—¬ž ‰Ž�”–©Ù«‰Ž�”‰Ž�”‰Ž�”‰Ž�”‰Ž�”‰Ž�”‰Ž�”‰Ž�”‰Ž�”’žtÈ’žtÈ…> £Y˜{#U¿’žtȉŽ�”’žtÈ’žtÈÒÒxxœ’žtȉŽ�”’žtÈ’žtÈÒÒxxœ’žtȉŽ�”’žtÈ…> £Y˜{#U¿’žtȉŽ�”‰Ž�”–©Ù«‰Ž�”¨—¬ž ‰Ž�”Ã-¤%n�YÓXÓWÓVÓjÓ_]Botpack.Assaults"2r"3o" pÓtÓn"U"m]MapVoteLA13.MapVoteHistory1l"3q] Majorityk"T"S"RÓQÓe] Welcomed$€?c$€?b$€?a$€?i] Assaulth= Deathmatchg]Capture the Flagf]OthersPÓOÓNÓMÓ`ÓKZ~J]AS-*A]DM-*AÝiDM-*G]CTF-*F]*·R|FÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpMË2�·ÚãÌ~ (?„»P8r«“ (?„»P8r«“ŠÜm (?„»P8r«“žK4èž (?„»P8r«“ (?„»P8r«“ŠÜmŠÜmžK4èž (?„»P8r«“žK4螊ÜmŠÜm (?„»P8r«“ (?„»&Cnöf (?„»&CnöfŸÊ€ (?„»&CnöfžK4èž (?„»&CnöfŸÊ€ŸÊ€ŸÊ€žK4èž (?„»&CnöfžK4螟ʀŸÊ€ŸÊ€ (?„»&Cnöf (?„»�×7Xà (?„»�×7Xà (?„»G.GÆò (?„»G.GÆòIA¤­IA¤­žK4èž (?„»G.GÆòIA¤­žK4èžžK4èž (?„»G.GÆòžK4èž (?„»G.GÆòIA¤­žK4èž (?„»G.GÆòžK4èžIA¤­IA¤­ (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èž (?„»_·Ú½žK4èždà·6³o û³o ûäIÄ(›äIÄ(›à?{äIÄ(›à?{äIÄ(›à?{…> £Y˜{#U¿äIÄ(›à?{ �FFUwJ� š:â:$ÿÿÿÿÿÿÿÿÿÿR Mß�FC÷ ¿MË2�XØamMË2�MË2�MË2�MË2�MË2�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�…> £Y‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‰Ž�”–©Ù«‰Ž�”–©Ù«‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�‘Ò»×�MË2�MË2�MË2�…> £Y˜{#U¿MË2�tÄ�­Æ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Ÿ|ë[$²éŸ�Ÿ|ë[$²éŸ�Ÿ|ë[$²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�“tµð²éŸ�µ_ã‰4²éŸ�Ÿ|ë[$²éŸ�µ_ã‰4²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�“tµð²éŸ�Œ|.XÚ²éŸ�“tµð²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Ž�᱘²éŸ�Ž�᱘²éŸ�Œ|.XÚ²éŸ�Œ|.XÚ²éŸ�Ž�᱘²éŸ�Œ|.XÚ²éŸ�Ž�᱘²éŸ�Œ|.XÚ…> £Y˜{#U¿MË2�MË2�MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»Ž�᱘MË2� (?„»MË2�XØamMË2�MË2�tÄ�­Æ²éŸ�“tµðMË2�XØam¿c1Q`O^e3�×7XÃMË2�XØam¿c1Q`O^e3�×7XÃMË2�XØam¿c1Q`O^e3�×7XÃMË2� (?„»MË2�MË2�tÄ�­Æ²éŸ��×7XÑÒ»×�‘ñÕD“‘Ò»×�‘ólï‘Ò»×�‘ü�¬Åû‘Ò»×�‘ø9Û Ó‘Ò»×�‘ò0¸ ‘Ò»×�‘ô^¦M‘Ò»×�…> £Y¶R@G¢øIò&/�rP"2M"N"—O"šWR~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿB_·Ú½š¤dà·6dà·6·ÚãÌ~dà·6dà·6dà·6dà·6…> £Y…> £Y£yŸ&.£yŸ&.…> £Y…> £Y£yŸ&.£yŸ&.£yŸ&.£yŸ&.…> £Y£yŸ&.£yŸ&.…> £Y£yŸ&.£yŸ&.£yŸ&.£yŸ&.„.ü'ldà·6‹x�‹x�‹x�‹x�‹x�‹x�‹x�³o ûdà·6‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�žK4èž‹x�‹x�‹x�‹x�‹x�‹x� �?$@ABs£rWBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdà·6£yŸ&.dà·6dà·6 �£xLMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÊ€£yŸ&.ŸÊ€ŸÊ€ �éVmRÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ²éŸ�éôŒÇË‹x�‹x�‹x�…> £Y…> £Y„.ü'l„.ü'l„.ü'l…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŸ|ë[$…> £YŸ|ë[$…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŸ|ë[$…> £YŒ|.XÚ…> £YŒ|.XÚ…> £Y“tµð…> £Yµ_ã‰4…> £Y“tµð…> £Y“tµð…> £YŸ|ë[$…> £Yµ_ã‰4…> £Y“tµð…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚ…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð…> £Y“tµð“tµð“tµð“tµð…> £Y“tµð…> £YŒ|.XÚ…> £YŒ|.XÚ…> £YŒ|.XÚŒ|.XÚ…> £Y…> £Y…> £Y„.ü'l„.ü'l„.ü'lŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŽ�᱘Ÿ|ë[$Ž�᱘Ÿ|ë[$Ž�᱘Ÿ|ë[$Ž�᱘Ÿ|ë[$Ž�᱘Œ|.XÚŽ�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘“tµð“tµðŽ�᱘Ž�᱘Ž�᱘Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ž�᱘Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ž�᱘Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ž�᱘Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ž�᱘Ÿ|ë[$“tµð“tµð“tµðŽ�᱘“tµð“tµð“tµðŽ�᱘Ž�᱘Œ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚµ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4Ž�᱘“tµð“tµð“tµðŽ�᱘“tµð“tµð“tµðŽ�᱘µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4µ_ã‰4Œ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚ�×7XÃ�×7XÃŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŽ�᱘“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð“tµð�×7XÃ�×7XÃ�×7XÃ�×7XÃŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚ�×7XÃ�×7Xà �}„ @@A géayzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\ (?„»éôŒÇˑһ×�Œ|.XÚ‘Ò»×�Œ|.XÚ‘Ò»×�„.ü'l‹x�‹x�‹x�Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Œ|.XÚávÅ?ïávÅ?ïávÅ?ï…> £Y‰Ž�”dà·6_·Ú½_·Ú½_·Ú½_·Ú½…> £Y‰Ž�”_·Ú½dà·6…> £Y˜{#U¿…> £Y_·Ú½dà·6…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”_·Ú½dà·6…> £Y˜{#U¿…> £Y_·Ú½dà·6…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”_·Ú½dà·6…> £Y˜{#U¿…> £Y_·Ú½dà·6…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”_·Ú½dà·6…> £Y˜{#U¿…> £Y_·Ú½dà·6…> £Y‰Ž�”…> £Y‰Ž�”&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€…> £Y‰Ž�”…> £Y&CnöfŸÊ€…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”…> £YG.GÆòIA¤­…> £Y‰Ž�”G.GÆòP8r«“ŠÜmP8r«“ŠÜm…> £Y‰Ž�”…> £YG.GÆòIA¤­…> £Y‰Ž�”“tµð…> £Y“tµð“tµð…> £Y‰Ž�”dà·6…> £Y˜{#U¿dà·6…> £Ydà·6…> £Y‰Ž�”„.ü'l„.ü'l…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”…> £Y‰Ž�”&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€_·Ú½&CnöfŸÊ€…> £Y‰Ž�”…> £Y‰Ž�”…> £YG.GÆòIA¤­…> £Y‰Ž�”G.GÆòP8r«“ŠÜm“tµð…> £Y“tµð“tµð“tµð_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½_·Ú½£yŸ&._·Ú½_·Ú½_·Ú½£yŸ&._·Ú½_·Ú½_·Ú½£yŸ&._·Ú½_·Ú½_·Ú½£yŸ&._·Ú½_·Ú½_·Ú½žK4èž_·Ú½žK4èž_·Ú½žK4èž_·Ú½žK4èž�×7XÃ�×7XÃ�×7XÃG.GÆòžK4èžG.GÆò�×7XÃ…> £Y˜{#U¿�×7XÃ�×7XÃ�×7XÃ�×7XÃŽ�᱘Ž�᱘Ž�᱘&Cnöf&CnöfžK4èžP8r«“P8r«“žK4螎�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Ž�᱘Œ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚ‘Ò»×�“tµð“tµð“tµð�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7Xà �s  £EOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIA¤­£yŸ&.IA¤­IA¤­ �K@^£sRCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÜm£yŸ&.ŠÜmŠÜm �F<€…@V  @êj|Kÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/Ú™xêU[¥Ú�A €‹s éSVGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2XØaméôŒÇËq®nq®nq®nq®nìoÐÁ÷ìoÐÁ÷q®nq®n‰Ž�”q®nq®nXØamXØam„.ü'l„.ü'lìoÐÁ÷¿c1Q`¿c1Q`¿c1Q`¿c1Q`„.ü'l¿c1Q`¿c1Q` �X]Querying Server...Y]The server did not respond.Zq\ì["i ’x€@k£L]xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×*2’£yŸ&.×*2’×*2’ �{%@=Jk‘–N&E@=šA|Eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&Cnöfš¤·ÚãÌ~ŸÊ€ŸÊ€ŸÊ€‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�³o ûŸÊ€ŸÊ€ŸÊ€‹x�‹x�‹x�Ü£½þË �?$PABn€‹Z^@Q@@€‹9@\€‹!@= €@@U€@7U@]W5I @Q@\w/@@=êu uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@"sáMêU[¥Ú�u_€‹i €‹c YŽXšbgÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4G.GÆòš¤·ÚãÌ~IA¤­IA¤­…> £Y…> £Y£yŸ&.£yŸ&.…> £Y…> £Y£yŸ&.£yŸ&.£yŸ&.£yŸ&.…> £Y£yŸ&.£yŸ&.…> £Y£yŸ&.£yŸ&.£yŸ&.£yŸ&.„.ü'lIA¤­IA¤­‹x�‹x�‹x�‹x�‹x�‹x�IA¤­‹x�‹x�‹x�‹x�‹x�‹x�IA¤­‹x�‹x�‹x�‹x�IA¤­‹x�³o ûIA¤­IA¤­‹x�‹x�‹x� �E*YÿEªYÿ?$@AB]@X0 SGc’NPèCoPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿO^e3è±²�p‘O^e3„.ü'lXØamXØam…> £YXØamXØam…> £Y…> £YXØamXØamìoÐÁ÷³o û�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7XÃ�×7XÃZ �oÓšct@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP8r«“š¤·ÚãÌ~ŠÜmŠÜmŠÜmŠÜm‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�³o ûŠÜmŠÜmŠÜm‹x�‹x�‹x�Ü£½þË �?$PABe @n @A•A @K Ÿm~’o] ’y ’b@lK @@v@š_HJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿa¦o"cš¤×*2’‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�³o û×*2’×*2’‹x�‹x�‹x� �?$PAB| @A€@J@P @M’QŒlqqT @@J‘v pg’R\£ËR_yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿq®nË釅mXØamXØamXØamXØama`�W" j@^@@L„„p“#‘–„yVŸI€~asž~£ê@QDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ AžõÚêU[¥Ú/Ú™x Mß�/Ú™x Mß� Mß� Mß� Mß� Mß�/Ú™x�FO€‹m@V Ÿ` Ÿi¿JŸ\µBB µ]ŒfžH@d$�E@4}i@€v €‹b[ € @Œ@6@>G €‹O’h“;gT@@*G’E€@I @@k @@PY=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmá³§/Ú™xAžõÚAžõÚ�J’h @à]€@o’~J wŒbŒp @Rq €‹U@M @w…d €|€žq•ŽC  €x`€c…L O @h@R@UŒªV@b€@WŒv@A�Zt[Œ\Œ_Œ^€�DGŒN @F}gN ; š:â:$ÿÿÿÿÿÿÿÿÿÿCaŠWüsFC÷ ¿…> £Y…> £Y…> £Y¶R@G¢ª/Tã2³o û„.ü'l„.ü'lª/Tã2„.ü'laŠWüs„.ü'lª/Tã2„.ü'l„.ü'l„.ü'l‘Ò»×�‘Ò»×�‘O^e3@©d-Ú„.ü'lXØam„.ü'lXØam…> £Y¶R@G¢ª/Tã2³o ûY¯‹Œy„.ü'l„.ü'l‘O^e3ª/Tã2‘Ò»×�‘ñÕD“‘Ò»×�‘ólï‘Ò»×�‘ü�¬Åû‘Ò»×�‘ø9Û Ó‘Ò»×�‘ò0¸ ‘Ò»×�‘ô^¦M‘Ò»×�‘O^e3�r@P"2M"N"•O"YA@f@L’C}Œuep i…\ €@V€@t @q€S €@O �N€‹j €‹O@sÏC €‹([€` €@€W �u €…x pM G€@b @s @HMŒOŒ]@PŒQŒRŒgŒ~@h@M@ äWŒ[“ßUcHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2Y¯‹ŒyßüM»ï³o û„.ü'l„.ü'l…> £Y¶R@G¢ª/Tã2„.ü'lY¯‹Œy„.ü'l…> £Y¶R@G¢ª/Tã2„.ü'l„.ü'l„.ü'l³o û…> £Y¶R@G¢ª/Tã2³o û³o û �Z| Q]MapVote Key BindertI“]“M“_žž` d“^ e“f“g“h“i“j“k“c“t  @J @d@m @t ì] @€æ[eSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÄ�­ÆæÑ$ �b @@@@h €@rëH R @@€@J�r Rdy@g@@{€X€I€H€Y €‹W@I @lAP R S T T  @V @W @X @„@^�_�`ŽaŽgŽbn€@zvsjŽtf€@kŽmŽ_ nŽYŽv�e ŽrÁs@t@=@_ €@a áL Ïou €¦n€�|€}�g�M’SßV[Iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2@©d-ÚßüM»ï…> £Y‰Ž�”³o û„.ü'l„.ü'l„.ü'l³o û„.ü'l„.ü'l…> £Y¶R@G¢ª/Tã2„.ü'l@©d-Ú„.ü'l…> £Y¶R@G¢ª/Tã2„.ü'l„.ü'l„.ü'l³o û…> £Y¶R@G¢ª/Tã2…> £Y‰Ž�”³o û³o û �ZQ]Map Vote Welcome WindowQ8Îkž~€@ùOs -Ïš:â:$–:â:$ÿÿÿÿÿÿÿÿÿÿFC÷ ¿ùYQ²Z…> £Y¶R@G¢ª/Tã2„.ü'l…> £Y¶R@G¢ª/Tã2³o ûª/Tã2ª/Tã2„.ü'l„.ü'l„.ü'l…> £Y¶R@G¢ª/Tã2ª/Tã2ª/Tã2ª/Tã2ª/Tã2…> £Y…> £Y¶R@G¢�uÓfS{$@d@Z  @g @l ªO @S @[T@U  @ U€@X@[@êJ`QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYüÅ3kêU[¥Ú‰Ž�”–©Ù«‰Ž�”–©Ù«Ò»×��c€@]@z€ž`@E @J€žb@d e@z€x @@Dv Žs €¦o@b€@~[€@wvB•l@N@T[@vxh�uX €@nP eV @asŽAŽBŽQAgI €s„‘�DŽ@Y@L €EŽC@•J Q` a @N€\KŽ…if9e�Ù^.ª.…ÂÊ× ^Î#îp ?n ?l ?i ?h ”r *ç#### -- CreateWindow Failed'(µ^-æ^~ -Æ' )' e€@_Žªk€…a @ @^yEh z  r@i D v a f jam q x M@R…j€@@j €IªX€@x€ÐU@]   H�f\  R•X @@I�M�L @F@w @z�@ @ZK@P@Lx €aYS@FŽKh€@g€DC�M@N@@L€_P åd\�V @e�|�}€@e€@@D @@H€ž@ C @|@@réA^vÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPt¢æ±éôŒÇˑһ×�Ÿ|ë[$‘Ò»×�Œ|.XÚ‘Ò»×�Ÿ|ë[$‘Ò»×�Œ|.XÚ‘Ò»×�‘Ò»×�‘ñÕD“‘Ò»×�‘ólï‘Ò»×�‘ü�¬Åû‘Ò»×�‘ø9Û Ó‘Ò»×�‘ò0¸ ‘Ò»×�‘ô^¦M‘Ò»×�…> £Y϶ŒsÖ…> £Y϶ŒsÖ„.ü'l„.ü'lŽ�᱘Ÿ|ë[$…> £Y…> £Y϶ŒsÖ϶ŒsÖŽ�᱘϶ŒsÖ϶ŒsÖ϶ŒsÖ϶ŒsÖŸ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$Ÿ|ë[$‘Ò»×�Ž�᱘Ÿ|ë[$Œ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚŒ|.XÚ‘Ò»×��×7XÃ�×7XÃ�×7XÃ�×7Xà �y^ @U €@Œcg €¦hŽr D G€@:f m ŽU@t @wDO@U @N XŽQ  @k @W  s€c  @m [vŽ@} @d  N f @@@i €@j €S €@l ÿ@wŽo ^@]ÜDO}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp $œ:@Ü£½þË‹x�‹x�‹x� �M€K€@€CŽ{€u@EŽ€@@{ @\@B Žq@@F ŽT@E @@O @@I Ž€J ŽKŽG €@€K €@j@M €w@Q €@c€@`@Y Ž)@PŽ\ €¦E€@v€|ÿ@w€Bb @@De €m€h €¦tkH8Nu.…Ânru*ç#### -- Attempted to open a window on something other than a PlayerPawn'(R.ªuÊ×¹rR*ç#### -- No Console'(ó„�R-ñrRÎ*RL*R-ù'RC}&' ÂH€Gk €€€@h €b€@ªAG@c'„û a  l @q @@ao@F|  €@e  @w  @ @B @@„W€žC 0@@D 0@@F 0@@s @G 0@@l@@E  @J @I @T €dH  @y €@N  @@Q R N€aI@}€b@r@l€[ €Z @@wY€@` €zC@Y @^P€B@X„Q@^P€@{€o €@€r€@G €@y €@C €P€€u €@z €@~ ‘qw €{ €@v€@B ‘ì@ €@€AY pG€@F €G €H €^ €@{@L Eg$€ M A 8 P Gh O €‹Q €S KmÜ M€P€‹W Omž €@[ €@e @\ W8j Y €@Z €…€‘€@] Xl 4 ^o }€@€S€_ €@@d €�€’qu@ -g -h -k €€i -€l -m €@n -‘„€@€@}€w €@€@w €€t €@x €‘ë€@€{ €@€€€@|€@h~ädL{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿB k�—‡äIÄ(›„.ü'lZ �D €k€F €I €H €€€{�L€@�C @X @P @@Q@@n€m€€`€ž•q€B[ @@Z €€g @@{€b  @_ €@c €@i €` €@l @r @e €A€l €@l @@M€k €B€@€m @@n @o @p @~ @r €€Xt@ �T€`M A€@[€_€@`€@èoNLÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/| Ž‚çè±²�p‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�‹x�³o û…> £Ya¦o"c×*2’a¦o"c×*2’„.ü'la¦o"cžK4èž…> £Y×*2’…> £Y×*2’a¦o"ca¦o"c…> £Y‰Ž�”Ž�᱘Ž�᱘a¦o"c×*2’a¦o"ca¦o"c×*2’a¦o"ca¦o"cžK4èž�×7XÃ�×7XÃ�×7XÃ�×7XÃŽ�᱘Ž�᱘Ž�᱘Ž�᱘Z �~ €žH€ž@€C€B€žO€žZ€E€žU€žF€@H€žZ€žW€@j �Y €LT €žq €QG£Tn sÓhrG.°pwG*Txën ë€G2}n GpG.G¼ €£ÐXSWʧ.·¹ !$  ÏK ?x-ñ(ÏK™”±ç¯¬Æ´?,¬´?,毬Ʋ?,¬²?, ÕUJHoÕ-Jj Æ ê Y'F‚-l  rj *.m.ª™Ê× O€ZICº–UO.°QwO*5|IO2'O.O¼( Vu.$•'uÆãÁwu*Š„z€Vu¸,UTMenuz€Vu¸,UMenu.ª™Êתªwu¸¸Áuuàöru*.ª™Ê×%u-Æ'u2u) ]F§@eF.°cwF*G|FF2FcF.F¼ ÛYC,C²¥‚±K?%%±™”±®K?,K2Á)ZÆ ê Y'¥wZ*Z2ZÁZ)ÛC K×bDe‘ `K™z„šD:K$íšD:K$(z‚w¡*w¡¼*.£¡¼ „šD:K$ìšD:K$& ‚‚w¡*w¡Ú*w¡Ó¡Ú.£¡Ú”šD:K$"”w¡*p¡C%ƒ–C,`rp¼* p.£p¼¥C>p@šD:K$!@w¡*p¡C%/–C, „rpÚ*rpÚ¡Ó p.£pÚ¥CÇp¹D @ U ÏW  7p-ñ(Ï´ðC²HC篬ƴ?,¬´?,毬Ʋ?,¬²?, Õ_t 5mÕ-t @ Æ ê @'kr@ *D-W .k.ª™Ê× } Äd<ñ+�.A -Þ6­›$6¬›$6®›=,ÿ§WNL ¯T ?& ©-i'6­›=,ÿ6¬›=,ÿ6®›=,ÿ§WNL ¯T ?& ©-i(ð%Æ(÷N.A 2¶z€N,[X]6­›=,ÿ6¬›$6®›$Ù®W?,NN,)-i6­›=,ÿ6¬›=,ÿ6®›=,ÿ WëN�„z€W,AS-|€W,BT-6­›$6¬›$6®›$€ î„|€W,TDM|€W,DM-6­›$6¬›$@6®›$ [„|€W,DOM|€W,iAS6­›$@6¬›$6®›$@ È„|€W,RA-|€W,CTF6­›$6¬›$@6®›$@ 6­›$6¬›$6®›$Ù®W?,NN `x.'‰'xÆãÁwx*Š„z€Vx¸,UTMenuz€Vx¸,UMenu.ª™Êתªwx¸¸Áxxàörx*.ª™Ê×%x-Æ'x2x) Ýz'Ù\w°¼*6­z›=,ÿ6¬z›=,ÿ6®z›=,ÿž6­z›$d6¬z›$d6®z›$d§z´² ©Ýzq r  ÄÑ Ý*Ä €£ÐhfW�U$ - .·¹ !$  mj 7‡® ‡ - x €j ,B.°…wB*izx ê€BT,,B…B.B¼* g A jHQ D4.…ÂÊ×-éa?((-w 'g  Âÿÿ€[in9^Ü [�-oa?((Ö -N ñÇ ) óÇ ) üÇ ) øÇ ) òÇ ) ôÇ )MapVoteWRI: SetupWindow()Q %&D%,D%,D%,D%:[a€?(YçSuper.SetupWindow() = false c  @×p@µk - ~™…„š:~$íš:~$(…‚w¡*w¡¼*.£¡¼„š:~$ìš:~$&‚‚w¡*w¡Ú*w¡Ó¡Ú.£¡ÚŸš:~$"Ÿw¡*¡A%Ž–A,kr¼* .£¼¥AIKš:~$!Kw¡*¡A%:–A,„rÚ*rÚ¡Ó .£Ú¥AÒ¹d e  o€Är+<f¶-.@-Þ(è.@-Þ6­+›$6¬+›$6®+›$€§+|xj ¯k ?& ©6­+›=,ÿ6¬+›=,ÿ6®+›=,ÿAE.@-A 6­+›$ 6¬+›=,ÿ6®+›$ Š6­+›=,ÿ6¬+›=,ÿ6®+›=,ÿ§+|xj ¯k ?& ©z€.@T&96­+›$Š6¬+›$¤6®+›$¦A+›J€.@T&U +ð%Æ(÷Ù+®|?,xpp€.@T&, - .@T, ÜkN‰¾�-w H ,�-o-o'9timer()-t(%g–†–gD­??P  ³–gD­??N  à–gD­??H   –gD­??E ]{gY g%“}g,bJêg&¥bH¥J@&0˜@,&—@H@D. i@%–ýšb@. g@Y ¥µ@D@H-t'¥@nK’’’&H,H,H,HŽ„—KQ  ›Ks-t'Q Kb ‚w. X*.…Â¥-å .. XáxD®®®®®®®®®®®®®®®®®®®®?’’’’’’’’’’’’}}V }Se}Sh}S\ }T-i}T-D}T-a}T-c }Y}X}W}VUTSR?}b ?}T-m?}T-f?U ?}N?@?}T??}] ?}c ?}O?}T-r?}T-q?}M ?}I?}T-Z %g–,¡x}P¥=‰›f x-t'f x L-¤K%& M-¤K&& O-¤K,& P-¤K,& Q-¤K,& R-¤K,& z  ?e F  ?h G  ?\  Y-¤-i [-¤-D \-¤-a g-¤-c  Q-¤-d  U-¤-z  }-¤-Z  X  SU  M  N I  ?@ J  T [  S g  T  b  Y d  X e  W f  V h  UU i  UT j  US k  UR c  M  h-¤-f ]  O _-¤-r v-¤-q w-¤-m W ¨pClass:|  Y ¨Map Prefix:e b —}I, %b –,• zI&1 @W-¤'µ  @W-¤( {P @PP @W-Ã(X  @P empty @W-Ã'¥Q ¡ „-a.…Â¥-å. k%à ‚–, {xU’&¥¨ ¤ ›Upp‘ –UZ zêx,&?&!&xx%“}x,-W'b -W(. lx-W¥ú pU-t'%ë ‚{` –,(`¥« %2 ‚{a –,&a¥ò .  A)pppSK/Ss Maps loaded.  ppMode: T.  _ Y.  ` X.  a W.  g V.  j T .  Y¨Priority:€UU,.  K¨Priority:€UT,.  D¨Priority:€US,.  B¨Priority:€UR,.  l} xD®®®®®?’’’}Y}X}W}VUTSR?}W ›xU U x-t'—{N. ZdNO”w. X*.. Xá\  NÖ.O. ZHÔy-Ã'.O. ZHÔ|-Ã(.O. ZHÔ}-Ã(.  @ W Ý‚�-t-J Ûw. X*.. XáW-Ã( û�-t-J 'a€?( -J (a?( ÝU M ]€6­M›=,ÿ6¬M›=,ÿ6®M›=,ÿ§M´² ©ÝMY Z  uÐv_WGÅ.·¹ !$  Ww[ 76GE.°}wE*a„|[ Ee|[ EeE}E.E¼ ÄyA<ÈYE._-Þ6­A›$6¬A›$6®A›$€§AJ®I?&`¯L?, ©6­A›=,ÿ6¬A›=,ÿ6®A›=,ÿ§AJ¯®IL?&`€? ©§AI€?L ©§AðBI€?L ©¹6­A›=,ÿ6¬A›=,ÿ6®A›=,ÿ§AJ¯®IL?&`€? ©Að%Æ(÷ÙA®J?,Ipp€._e, - ._e,ÙA®J?,}IS._P  q}Jˆþ1"-a -|\   N D O E T j-r -V -m -`}  P Y X X [ W g V l T  O  .…Â-ÒAdmin is logged in. Sending admin vars...p -X1y0ž -[p1®p0Ó -]p1ãp0 -ep1p0= -`p1Mp0r -bp1‚p0™(p1©p0| V”¢¸e ”¢¾-z  -] T -c  -WU  Th } -i -\-D -qe b -d  -C N m@ O -q -x -f -M  u-Z  -~  ÝzaÔø6­a›=,ÿ6¬a›=,ÿ6®a›=,ÿ§a´€? ©§a€?¯²?& ©§aðB€?¯²?& ©§a¯²?&´€? ©ÝaG H  Í FÍÚÚ.Üî p ¯´?, @A² €£Ð~{WJ .·¹ !$  A@ 9Íe|.°cw|*G|@ |:|c|.|¼ x| 5Øh<53-a3w *. l| -{  Âu *ã5=/--a-w *. *u  ÂÄB.<‹i.\-Þ6­.›$6¬.›$6®.›$€§.z®[?&[ ¯s?, ©6­.›=,ÿ6¬.›=,ÿ6®.›=,ÿ§.z¯®[s?&[ €? ©§. A[€?s ©§.[€?s ©§. C[€?s ©Ý6­.›=,ÿ6¬.›=,ÿ6®.›=,ÿ§.z¯®[s?&[ €? ©.ð%Æ(÷Ù.®z?,[S.\H Ù.®z?,[.\:Ù.®z?,¥[€U.\I , ÝDYÒ 6­Y›=,ÿ6¬Y›=,ÿ6®Y›=,ÿ§Y´€? ©§Y€?¯²?& ©§Y A€?¯²?& ©§Y C€?¯²?& ©§Y¯²?&´€? ©ÝYv w  y ŽÍ FÍÚÚ.Üî p ¯´?, @A² ~ Ž@q 4î÷=&$w *. 4q  ÂFo (öœ>+)w *. (o m  ÂÄJ'<�Èi.n-Þ6­'›$6¬'›$6®'›$€§'H®{?&I¯X?, ©6­'›=,ÿ6¬'›=,ÿ6®'›=,ÿ§'H¯®{X?&I€? ©§'¾B{€?X ©§'{€?X ©§'I{€?X ©M6­'›=,ÿ6¬'›=,ÿ6®'›=,ÿ§'H¯®{X?&I€? ©§'¾B{€?¯X?& ©§'{€?X ©§'I{€?X ©'ð%Æ(÷Ù'®H?,{.nrÙ'®H?,d{.n]  Ga &þC?+)w *. &a _  ÂÝu/¨6­u›=,ÿ6¬u›=,ÿ6®u›=,ÿ§u´€? ©§u¯²?& ©Ýuj k  W Ž×S (5×S Q M ¹S Q M  €M€Ït"Â6­t›=,ÿ6¬t›=,ÿ6®t›=,ÿ§t€?² ©§t¯´?&€?² ©À�-çÛtà@Aß © €öRP,'áÌÊ-d%rR*Eaa a—y}DR/-d(EaaÊR/Dy,úy’y,úÊ–y}DR/Dy,úy’y,ú DX z»,/a0 R,+rY RÂ,10UrR*çFailed to find MVWRIa Rf/


Please Wait.....
R/EaZ rE*çFailed to spawn MapVoteHistorya E gX  I{ /å?XDz{ 9w *. Z ESSVSpS{  Âs S'Õ@s  ÂÿÿTD AçpMV D  ÕXvvø

Map Report nzQSEQp2ŒzQPCp1p

p          0zQSEQpSequence  \zQPCpPlayCount p Map Name
p          p------------ -------------------------------
H& n€öW,;{ôn&ò˜n,*—%,dj,d5j%Œ˜Hjp          ùzQSEQpSH!]&ù–]“,}SH!p ¥]¾bzQPCpSH/]&b–]“,}SH/p ¥]'ppH?
¥Hèp¹rE*a EDE-d'q!ò¥n \V{�ÿÿÿÿÿÿÿÿÿÿz€öZ, çßz&ݘz,ɘH“%&]’H&¿˜]%|zQSEQ|—H!]!YH]µzQPCµ—]/H/YH]¥]3¥HÓq!{Ý¥z ^[G2 ÿÿÿÿÿÿÿÿÿÿ@_pYû­Q p?p?q?q?Q S p/p/q/q/S R p!p!q!q!R  `wó·  K c gëG &E@ Q H&q!G ]| ]ˆ|| { w  f€ik1Ç| Ë š%%%f&C%këkÉ'd’‘“Cf,fh|d?kdyšfC%žtëd?kCdÆ»šfdfCÆfd, ÓLeK¶ ÓÜDåúC;,h.Ž Ž A A´B AhVisual Configg.Œ ŒÒCðA A Ag-Ø(E.Ž ŽÜCðApB AEAuto DetectL.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;pB AE DMO.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;pB AE TDMM.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;pB AE LMSR.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;pB AE CTFQ.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;pB AE DOMP.Œ ŒÒC®ÈA?�,; A AE.Ž ŽÜC®ÈA?�,;C AEAssault:c.“ “ðC®ÀA?�,; C Ac(cÔ Cd% –d,dW.Œ ŒÒC® A?�’, d; A AdP.Ž ŽÜC® A?�’, d;HC AdP empty¥dR}.Œ ŒÒC® A?�,; A AE.Ž ŽÜC® A?�,;*C AEUse Exclude Filtery .Ž Ž AÜBHB Ay Limitsz.Ÿ Ÿ AC*C Az-Ø(zÉ Azþ4Czÿ, zVoting Time LimitV.Ž Ž>CC B AVpUzÉ secF.Ÿ Ÿ AC*C AFÉ AFþÈBFÿ&FKick Votes Req.V .Ž Ž>CC B AV pUFÉ %G.Ÿ Ÿ A*C4C AGÉ€?GþðAGÿ&GScoreBoard Delay` .Ž Ž>C*C B A` pUGÉ secI.Ÿ Ÿ A>C9C AIÉ€?IþÈBIÿ&IMid-Game Voter Req.B .Ž ŽCC>C B AB pUIÉ %X.“ “fCC¾B AX'XDon't Show LastXÔ A~ .Ž Ž¥CCpB A~ maps Played[.“ “fCCðB A['[Reload Map List when[Ô AB .Ž ŽfC%CHC AB +maps remain. (Elimiation Mode only)v .Ž Ž ARCHB Av Misc.Y.Œ Œ AfC–C AY2Use the Map Cycle List instead of all mapsY %Y»$YÛHC€?[.Œ Œ AzC–C A[&Open Voting Window at Game End[ %[»$[ÛHC€?\.Œ Œ A‡C–C A\!Enable Player Kick Voting\ %\»$\ÛHC€?Q.Œ Œ A‘C–C AQ#Check Sudden Death OverTimeQ %Q»$QÛHC€?J.µ µfCfCðB€?J ModeJ\(Jí´BJ#MajorityJ#EliminationJ #ScoreJ#AccumulationW .Ž ŽfC‚CHC AY .Ž ŽfCŒCHC AF .Ž Ž A›CHB AF Advanced\.“ “ A¥C¹CpA\(\#Welcome Page Web Server URL\ÔRCI .Ž Ž A€¬CÈC AI @Example: www.MyServer.com:80/UnrealStuff/WelcomePage.htm].“ “ A€¶C¹CpA](]&Map Information Web Server URL]ÔRCJ .Ž Ž A¾CÈC AJ .Example: www.MyServer.com:80/MapFiles/M.µ µ A€ÅC¹C€?M#Map Vote History Class TypeM\'MíRCM##MapVoteLA13.MapVoteHistory1M##MapVoteLA13.MapVoteHistory2M##MapVoteLA13.MapVoteHistory3M##MapVoteLA13.MapVoteHistory4_.Œ Œ AÒC C A_COpen Welcome Window and KeyBinder when player enters server_ %_»$_Û C€?v.Œ Œ A€ÞC C AvSort Maps with PreFixv %v»$vÛðB€?v-Ø(w.Œ Œ AëC C AwDebug Modew %w»$wÛ B€?w-Ø(I.� �*CëCÈB AIÀList crashed mapsM.� �ŒCëCÈB AMÀClear crash Listh.Œ Œ*CáC C AhRemove crashed mapsh %h»$hÛðB€?h.Ž ŽÒC AðB AhGame Typesg.“ “ AðA>C Ag(gMapvote TitlegÔðBb.“ “ A4B>C Ab(bList 1 TitlebÔðBd.“ “ ApB>C Ad(dList 2 TitledÔðBe.“ “ A–B>C Ae(eList 3 TitleeÔðBf.“ “ A´B>C Af(fList 4 TitlefÔðBh.“ “fC4B C Ah(hPriorityhÔðBi.“ “fCpB C Ai(iPriorityiÔðBj.“ “fC–B C Aj(jPriorityjÔðBk.“ “fC´B C Ak(kPrioritykÔðBW.� �€ÔCÈC>C AWÀSaveWÙW2W-Ã'U.Œ Œ€ÔC×C–C AU#Reload Maps on request onlyU %U»$UÛC€?A.� �€ÔCáC>C AAÀReload MapsH.� �€ÔC€íC>C AHÀClose d•n€nfwz¯ ±n%­–n,ÿw.…ÂpKEYNAME Sn£{w^ .…ÂpKEYBINDING w£zë^ MUTATE BDBMAPVOTE VOTEMENU'¥n( õd@ !-ú=sõ@ g g œ$@ bI™)MUTATE BDBMAPVOTE LISTCRASHEDMAPS™ ¢M™*MUTATE BDBMAPVOTE CLEARCRASHEDMAPS™ ÎH¹¹¹™ ¤ W™?pADMIN SET MapVoteLA13.BDBMapVote bDM TL-¤™@pADMIN SET MapVoteLA13.BDBMapVote bLMS TM-¤™@pADMIN SET MapVoteLA13.BDBMapVote bTDM TO-¤™?pADMIN SET MapVoteLA13.BDBMapVote bAS TP-¤™@pADMIN SET MapVoteLA13.BDBMapVote bDOM TQ-¤™@pADMIN SET MapVoteLA13.BDBMapVote bCTF TR-¤™HpADMIN SET MapVoteLA13.BDBMapVote VoteTimeLimit UzÉ™FpADMIN SET MapVoteLA13.BDBMapVote KickPercent UFÉ™GpADMIN SET MapVoteLA13.BDBMapVote bUseMapList TY-¤™EpADMIN SET MapVoteLA13.BDBMapVote bAutoOpen T[-¤™EpADMIN SET MapVoteLA13.BDBMapVote bKickVote T\-¤™JpADMIN SET MapVoteLA13.BDBMapVote ScoreBoardDelay UGÉ™GpADMIN SET MapVoteLA13.BDBMapVote bAutoDetect Tg-¤™NpADMIN SET MapVoteLA13.BDBMapVote bCheckOtherGameTie TQ-¤™FpADMIN SET MapVoteLA13.BDBMapVote RepeatLimit X ™MpADMIN SET MapVoteLA13.BDBMapVote MapVoteHistoryType M ™HpADMIN SET MapVoteLA13.BDBMapVote ServerInfoURL \ ™EpADMIN SET MapVoteLA13.BDBMapVote MapInfoURL ] ™MpADMIN SET MapVoteLA13.BDBMapVote MidGameVotePercent UIÉ™?pADMIN SET MapVoteLA13.BDBMapVote Mode J ™FpADMIN SET MapVoteLA13.BDBMapVote MinMapCount [ ™IpADMIN SET MapVoteLA13.BDBMapVote bEntryWindows T_-¤™KpADMIN SET MapVoteLA13.BDBMapVote bSortWithPreFix Tv-¤™FpADMIN SET MapVoteLA13.BDBMapVote bDebugMode Tw-¤™GpADMIN SET MapVoteLA13.BDBMapVote MapVoteTitle g ™EpADMIN SET MapVoteLA13.BDBMapVote List1Title b ™EpADMIN SET MapVoteLA13.BDBMapVote List2Title d ™EpADMIN SET MapVoteLA13.BDBMapVote List3Title e ™EpADMIN SET MapVoteLA13.BDBMapVote List4Title f ™HpADMIN SET MapVoteLA13.BDBMapVote List1Priority h ™HpADMIN SET MapVoteLA13.BDBMapVote List2Priority i ™HpADMIN SET MapVoteLA13.BDBMapVote List3Priority j ™HpADMIN SET MapVoteLA13.BDBMapVote List4Priority k ” „zc –}c , c Botpack.Assault™BpADMIN SET MapVoteLA13.BDBMapVote ASClass c ™NpADMIN SET MapVoteLA13.BDBMapVote bRemoveCrashedMaps Th-¤™TpADMIN SET MapVoteLA13.BDBMapVote bReloadMapsOnRequestOnly TU-¤™MpADMIN SET MapVoteLA13.BDBMapVote bUseExcludeFilter T}-¤P%I –P,/ PW-¤[p[1? [p[0¥Pø ™,¨Mutate BDBMAPVOTE CUSTSETTING[™Settings saved!™ ÿ A™$MUTATE BDBMAPVOTE RELOADMAPS¹¹¹™ -L*L-¤g-¤(™ [MXM-¤g-¤(™ ‰O†O-¤g-¤(™ ·P´P-¤g-¤(™ åRâR-¤g-¤(™ QQ-¤g-¤(™ –g“g-¤L-¤(M-¤(O-¤(P-¤(R-¤(Q-¤(™ ÿÿq n$@ ÙzVpUzÉ seck FV pUFÉ %k 9G` pUGÉ seck hIB pUIÉ %k ÿÿq ÿÿ jv ^±F £Pv r–P%P?’P&?P/’P&/P!’P&!¥P %?%/%%!%¦% \ ls l¦³ )G 1s '—G %^G  am| a–:â,l.…Âwl*Åš[ ,clûmiŸ{cIppIc,¥iclûmiSÂ{II€I“}I&¤Šš[ ,V ëm,i%‡–icl¨KEYNAMESi}{cfl¨KEYBINDINGc}™~ëfV %IppIf|¥ié¤Il m{Iÿ—}I�_\ u%m€I�II�¥u°_\ u&mI  oBX“Ë[R&B,N˜B%D–B!R!RB¥B^R ïhDÄïX1ïDOq 6­D›$6¬D›$6®D›$§D A A¾C@ ©§DÒC AHC@ ©§D AðB¾C@ ©§D A\C¾C@ ©§D A C¾C@ ©§D€ÊC A@õC © qt.X3 ;çFocusStartWindowL.ª.…ÂÊ×tLÎãíwt*¶„z€Vt¸,UTMenuz€Vt¸,UMenuLÖÖwt¸¸íttàX rt*L9t-Æ't2t) L pA‹qb M tp h‚/{1p -—{%{/o  YJO_ *l D t  E  X €N „S ur muK/X 1r !šX %%-X / P wx mj·/C 1x -—C %C !u  y€W x} 8]þ3y1} %šy%1y! ] ?no'zn #™%XVš%%&?n&/&&!&%& -p(V&ܘV%®znV?V!&¥V/-p'ÐЗV!ÿÿÿÿ¥V!Ò‚tëV?ën �-pm%ž™mV’m&?m?’m&/m/’m&!m!”‚›mV—m!ÿÿÿÿ¥’m&!¦mV?nV/&V!&¥% ¥Ve�-p¥%%?n%/&%!&  ckE _`h�‹š:â,/a0 Ð}Љ|êV}¸,SC}FAppppppppSE $$$SF $$$SG $$$H $$$^ 10 €@~{y0 €@A}z,Û €@€K @T(­ €AÓH AÓJ €V¸~V¸.Û¹´¹²H.¿î ¿´²q.ì~ ´²qü]



Map Vote LA13



Core developement: BDB (Bruce Bickar)

Enhancements by: Cratos (cratos@gmx.at)

Support: http://forums.utassault.net
HäqH-á(H-Ò(HÞ¯¹²?,-HÔH$î O´²ØÙ C{;.åX~{/,˜X%çInvalid URL {€{XU{X\~{:v˜\%S,PÒª–J{’\&,çInvalid web server port {€{\SJ{’\&çpWebServer={çpFilePath=UçpPort=SS\ B€@€F€@D\K÷˜çQuery()...-C 'pt Hwi*iu*iaiÈaz iuiI{US-B ( ÂHN n]n 0ÂN O Q qÛ´² €J€@€ÇïIR cç &§R ´² À L€@Q€€NT Eh] q ]T  €RTm” ÔçBrowse Failureiu*iai*¥GS–GI \ py G%E


Information Unavailable
 TU~ã 4piu*iai*G% UU d‡š J U I [  S€@€@Ü]yN2°‹„‚{l O-C.@ -l -l. Ådlt . Å ;ly.ª.…ÂÊ×-N w5�-N IyÎî YðCpC.YI-W -lI-Æ'I)ƒ‚„zl� O-C-N t-l.ƒy' ªZ[€[l\9ó"À -N ñÇ ) óÇ ) üÇ ) øÇ ) òÇ ) ôÇ )‚{l O-Cõ[a€?(çSuper.SetupWindow() = false a€?( €@L�ÜaNË£ç¨NumPlayers: S”¢Ñç¨Server empty for: SA‘š”¢Ñ%Ž™£Ap r CA% ˜A%apB( óp ] móA%apB( €@[o nzR To .ª.…ÂÊ×o -ù(Rw *  Âgn Q¹ >n ’~n -& €@^€l\¯ š-%zê\&-€\“}\&+\ €ög h,RJo&›}%&š¥},9}%m‚‚‚-g  w *� -ó �-P -P '' €@u€nvI¦ õ5|€v,CTF-BTCTF-BTë€v~v- €od jœ y ±d e d e  q{@Œ “S€{~{=V{’~{=&Ž-` ç¨p¨p¨Execute default Setting:{. Property:S. Value:V!×ç¨p¨p¨Execute Setting:{. Property:S. Value:V!a ”¢ üS”¢×SVb ”¢ üS¨p¨p¨Changed Setting:S. Previous value:a . new value:b  Ìb c u„%#‚rc * rd *}b  xjm Uç¨StartMutator:!J�Ë ‘�rJ*ç¨Starting Actor/Mutator FAILED. Could not DynamicLoadObject:! /a0J@Êç¨Actor already spawned:!0 10@aJr@*ç¨Spawning Actor/Mutator FAILED:! S@a/!|”¢âH.Ð@ pU }?_ç¨AnnouncerMessage:U c.åËU å]wc*.… \c ' Âo“uZq)QcawÂ*Z.…Âa‚‚wZ*wZÊ*wZÊ×*H Ðv}!â[q  Æp [‡Æq _@z~h ö÷à§-M§|êV”¢¸, MultiCTFGameMultiCTF detected. Fixing Mapprefix to CTFM”¢¾CTFM”¢¾CTFM~”¢¾pppp¨NextVirtualPrefix/NextRealPrefix/ActualPrefix:s/^/~Š‚z^~ {s~sMapVote: Prefix OK. Mapchange seems to have been successful&{ 6 &—}6%4~6;Ù–4%4~6,û–4%@6'6#@€64'66’4&¡U%Þ–U,Ô-6hU R 6QU Ô|~R "{6e U _6e U "—}_%4~_;×–4%4~_,ø–4%j__j€_4__’4&ŸÔ{6f U 66f U Ô—}6%4~6;‡–4%4~6,©–4%@6(6Ñ@€64(66’4&O¥U- f N I �Dçppppbrowsing N K :SG ]N K G f  |Edé ÁõÃE E¨Crashed map:EG%t‚–G,{GljzGlE ¥G3GlE¨¨¨Added failed map:Eto slotSGbÇ L€~{OÒ }ó\„–L&›MLEL’§&Y—£L ,dL’§&\ž—L ,dç¨Error: GetRandomMap() failed for ListSE!稨¨¨GetRandomMap() configured for ListSEtook the random map:SLLL }€@jb½ Vòbj j}&Z˜}P| }jH }Z¥}H  €EV¦ µðŽ.¨”¢-Öi.¨”¢-ì.¨”¢è麴�.¨”¢-î.¨”¢ãéºÿÿÿÿÃÿÿÿÿ WR//================================================================================ // ConfigWindow. //================================================================================ class ConfigWindow extends UWindowPageWindow; var string RealKeyName[255]; var UMenuLabelControl lblMenuKey; var UMenuRaisedButton cmdMenuKey; var UWindowSmallButton CloseButton; var bool bPolling; var UMenuRaisedButton SelectedButton; var string OldHotKey; var UWindowHSliderControl sldMsgTimeOut; var UMenuLabelControl lblMsgTimeOut; var int sizefactor; var bool bSliderInited; var UWindowCheckbox cbUseMsgTimeout; function Created () { local Color C; Super.Created(); lblMenuKey=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',20.00,23.00,120.00,20.00)); lblMenuKey.SetText("Map Voting Menu Hot Key"); cmdMenuKey=UMenuRaisedButton(CreateControl(Class'UMenuRaisedButton',145.00,20.00,50.00,1.00)); cmdMenuKey.bAcceptsFocus=False; cmdMenuKey.bIgnoreLDoubleClick=True; cmdMenuKey.bIgnoreMDoubleClick=True; cmdMenuKey.bIgnoreRDoubleClick=True; sldMsgTimeOut=UWindowHSliderControl(CreateControl(Class'UWindowHSliderControl',20.00,80.00,170.00,20.00)); sldMsgTimeOut.bAcceptsFocus=False; sldMsgTimeOut.MinValue=3.00; sldMsgTimeOut.MaxValue=60.00; sldMsgTimeOut.Step=1; sldMsgTimeOut.SetText("Message Expiration"); sldMsgTimeOut.SetValue(Class'BDBMapVote'.Default.MsgTimeOut); bSliderInited=True; lblMsgTimeOut=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',200.00,80.00,40.00,20.00)); lblMsgTimeOut.SetText(string(sldMsgTimeOut.Value) $ " sec"); cbUseMsgTimeout=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',20.00,55.00,200.00,20.00)); cbUseMsgTimeout.SetText("Change Message Expiration"); cbUseMsgTimeout.SetFont(0); cbUseMsgTimeout.Align=TA_Right; cbUseMsgTimeout.SetSize(200.00,1.00); cbUseMsgTimeout.bChecked=Class'BDBMapVote'.Default.bUseMsgTimeout; sizefactor=WinHeight - 415; CloseButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',570.00,385.00 + sizefactor,80.00,20.00)); CloseButton.Text="Close"; CloseButton.DownSound=Sound'WeaponPickup'; CloseButton.bDisabled=False; CloseButton.bAcceptsFocus=False; SetAcceptsFocus(); LoadExistingKeys(); } function KeyDown (int Key, float X, float Y) { if ( bPolling ) { ProcessMenuKey(Key,RealKeyName[Key]); bPolling=False; SelectedButton.bDisabled=False; } } function LoadExistingKeys () { local int i; local string KeyName; local string Alias; i=0; JL0007: if ( i < 255 ) { KeyName=GetPlayerOwner().ConsoleCommand("KEYNAME " $ string(i)); RealKeyName[i]=KeyName; if ( KeyName != "" ) { Alias=GetPlayerOwner().ConsoleCommand("KEYBINDING " $ KeyName); if ( Caps(Alias) == "MUTATE BDBMAPVOTE VOTEMENU" ) { cmdMenuKey.SetText(KeyName); OldHotKey=KeyName; } } i++; goto JL0007; } } function Notify (UWindowDialogControl C, byte E) { Super.Notify(C,E); switch (E) { case 2: if ( UMenuRaisedButton(C) != None ) { SelectedButton=UMenuRaisedButton(C); if ( SelectedButton != None ) { bPolling=True; SelectedButton.bDisabled=True; } } switch (C) { case CloseButton: ParentWindow.ParentWindow.Close(); break; default: } break; case 1: switch (C) { case sldMsgTimeOut: if ( !bSliderInited ) { return; } if ( sldMsgTimeOut != None ) { lblMsgTimeOut.SetText(string(sldMsgTimeOut.Value) $ " sec"); } break; default: } break; default: } } function ProcessMenuKey (int KeyNo, string KeyName) { if ( (KeyName == "") || (KeyName == "Escape") || (KeyNo >= 112) && (KeyNo <= 121) || (KeyNo >= 48) && (KeyNo <= 57) ) { return; } SetKey(KeyNo,KeyName); } function SetKey (int KeyNo, string KeyName) { GetPlayerOwner().ConsoleCommand("SET Input " $ KeyName $ " mutate bdbmapvote votemenu"); SelectedButton.SetText(KeyName); if ( OldHotKey != "" ) { GetPlayerOwner().ConsoleCommand("SET Input " $ OldHotKey); } } function Close (optional bool bByParent) { SaveMapVoteConfig(); Super.Close(bByParent); } function SaveMapVoteConfig () { local bool bSaveNeeded; if ( (sldMsgTimeOut == None) || (cbUseMsgTimeout == None) ) { return; } bSaveNeeded=(Class'BDBMapVote'.Default.MsgTimeOut != sldMsgTimeOut.Value) || (Class'BDBMapVote'.Default.bUseMsgTimeout != cbUseMsgTimeout.bChecked); if ( bSaveNeeded ) { Class'BDBMapVote'.Default.MsgTimeOut=sldMsgTimeOut.Value; Class'BDBMapVote'.Default.bUseMsgTimeout=cbUseMsgTimeout.bChecked; Class'BDBMapVote'.StaticSaveConfig(); } if ( Class'BDBMapVote'.Default.bUseMsgTimeout ) { Class'SayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'CriticalStringPlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'RedSayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'TeamSayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'StringMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'DeathMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; } } yT+uT |€Ó,S:Ÿ Ó6­S=,ÿ6¬S=,ÿ6®S=,ÿ6­A=,ÿ6¬A$ 6®A$ 6­q=,ÿ6¬q=,ÿ6®q$ ,xF,xXDB’X,QF�,.  AÐA??X,°9. ® A?ÐA??X9°5. ®® B?�,?FÐA??X5°7. ®®HB?�,?FÐA??X7°^.� � A?’X,.®® B?�,?F¨A^Å ÿ^ÀVote^-Ã(L.G G®ðA?�,,C?F®(Ã?XL°L-'S.� �®ðA?�,?’X, ?F�ASÅ ÿ{„-e ™¥-åSÀKickS-Ã'�SÀS-Ã(].Ž Ž A?“B,®®ðA?�,?F A]aRank Map name Votes Player name Votes] %] S$.& & A?BHC´B$-Ø($°N.P PfC?BC´BN-Ø(N°k.Ž Ž®ðA?�, C?F Ak Sk»$m.Ž Ž®ðA?�,C?F Am Sm»$n.Ž Ž®ðA?�,C?F An Sn»$_.Ž Ž A?’, A_ &_»$_ A`.Ž Ž® A? A?’, A` &`»$` Aj.Ž Ž®pA?�, A?’F, Aj &j»$j qa.Ž Ž®®ðA?�,?F A?’, Aa &a»$a Ag.Ž Ž®® B?�,?F A?’, Ag &g»$g AY.Ž Ž?’X,?’, AY»$Y SK.Ž Ž® A??’X,?’, AK»$K SD.Ž Ž®®ðA?�,?F?’X,?’, AD»$D SB.Ž Ž®® B?�,?F?’X,?’, AB»$B SA.Ž Ž?F?BÜB AA %A Sp.Ž Ž?’F,x?BÈB Ap Mode:p %p SN.Œ Œ?F?’B,ŒB ANScreenShotN»$N %N SN-¤ -^v.“ “?““F,K?’B,-®«@??,– Av(vB'vD,–o.� �?“’F�,,?’B,- B AoÀSendo-Ã(].� �?F?’B,K®«@??,  A]Å è]ÀClose]-Ã( GCaˆ íîꔢa/!GÏ›VÿÿÿÿçppBDBMapVote: Team SV won the round.tšV&|%{|&çppBDBMapVote: Setting Team S| as the defending team for the next map.Ö|%.¨”¢^.¨”¢-Ö(.¨”¢ò%.¨”¢ê.¨”¢ë.¨”¢í&.¨”¢-î(.¨”¢ï|.¨”¢b% l„//================================================================================ // MapVoteWRI. //================================================================================ class MapVoteWRI extends WRI; var BDBMapVote MapVoteMutator; var string MapList[1024]; var int MapListNum[1024]; var string MapList1[256]; var string MapList2[256]; var string MapList3[256]; var string MapList4[256]; var int MapCount; var string PlayerName[32]; var int gPlayerCount; var bool bKickVote; var string MapVoteResults[32]; var string KickVoteResults[32]; var string GameTypes; var string OtherClass; var int VoteTimeLimit; var int KickPercent; var bool bUseMapList; var bool bAutoOpen; var int ScoreBoardDelay; var bool bAutoDetect; var bool bCheckOtherGameTie; var string ServerInfoURL; var string MapInfoURL; var string ReportText; var string Mode; var int RepeatLimit; var string MapVoteHistoryType; var int MidGameVotePercent; var int MinMapCount; var string MapPreFixOverRide; var string PreFixSwap; var string OtherPreFix; var string HasStartWindow; var bool bEntryWindows; var bool bSortWithPreFix; var bool bDebugMode; var bool bRemoveCrashedMaps; var bool bReloadMapsOnRequestOnly; var string ActGameClass; var string ActGamePrefix; var string List1Title; var string List2Title; var string List3Title; var string List4Title; var string MapVoteTitle; var float List1Priority; var float List2Priority; var float List3Priority; var float List4Priority; var string CustomGames[16]; var string CustomGamesState; var bool bUseExcludeFilter; var string PrefixDictionary; var int LastMapsCount; var int LastMapListCountX[5]; var string ASClass; var bool bUpdated; var bool blastCheck; var int gAdminChechsum; var int gPlayerChecksum; var int gTitleChecksum; var bool bAdminDone; var string LogoTexture; var bool bOpenWindowDispatched; var bool bSetupWindowDelayDone; replication { reliable if( Role==ROLE_Authority ) SendReportText,UpdateKickVoteResults,UpdateMapVoteResults,UpdatePlayerVoted,RemovePlayerName,AddNewPlayer,MapList1,MapList2,MapList3,MapList4,MapCount,PlayerName,bKickVote,MapVoteResults,KickVoteResults,GameTypes,OtherClass,VoteTimeLimit,KickPercent,bUseMapList,bAutoOpen,ScoreBoardDelay,bAutoDetect,bCheckOtherGameTie,ServerInfoURL,MapInfoURL,Mode,RepeatLimit,MapVoteHistoryType,MidGameVotePercent,MinMapCount,MapPreFixOverRide,PreFixSwap,OtherPreFix,HasStartWindow,bEntryWindows,bSortWithPreFix,bDebugMode,bRemoveCrashedMaps,bReloadMapsOnRequestOnly,ActGameClass,ActGamePrefix,List1Title,List2Title,List3Title,List4Title,MapVoteTitle,List1Priority,List2Priority,List3Priority,List4Priority,CustomGames,CustomGamesState,bUseExcludeFilter,PrefixDictionary,ASClass,LogoTexture; } simulated function bool OpenWindow () { if ( PlayerPawn(Owner).Player.Console.bTyping ) { SetTimer(0.50,False); return False; } bOpenWindowDispatched=True; Super.OpenWindow(); } simulated function bool SetupWindow () { local int i; if ( !bSetupWindowDelayDone ) { SetTimer(0.50,False); return False; } if ( Class'BDBMapVote'.Default.bUseMsgTimeout ) { Class'SayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'CriticalStringPlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'RedSayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'TeamSayMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'StringMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; Class'DeathMessagePlus'.Default.Lifetime=Class'BDBMapVote'.Default.MsgTimeOut; } DebugLog("MapVoteWRI: SetupWindow()"); LastMapsCount=0; LastMapListCountX[1]=0; LastMapListCountX[2]=0; LastMapListCountX[3]=0; LastMapListCountX[4]=0; if ( Super.SetupWindow() ) { SetTimer(1.00,False); } else { Log("Super.SetupWindow() = false"); } } simulated function Timer () { local int i; local int MyCount; local int MyPlayerCount; local bool bHasVoted; local int repMapsCount; local int repMapListCountX[5]; local int repAdminChechsum; local int TitleChecksum; local int repPlayerCount; local AdminWindow Window; local string temp; local int List; if ( !bOpenWindowDispatched ) { OpenWindow(); return; } if ( !bSetupWindowDelayDone ) { bSetupWindowDelayDone=True; SetupWindow(); } DebugLog("timer()"); bUpdated=False; i=0; JL004A: if ( i < 1024 ) { if ( i < 256 ) { temp=MapList1[i % 256]; } else { if ( i < 512 ) { temp=MapList2[i % 256]; } else { if ( i < 768 ) { temp=MapList3[i % 256]; } else { if ( i < 1024 ) { temp=MapList4[i % 256]; } } } } if ( temp != "" ) { MapList[i]=Mid(temp,0,Len(temp) - 2); MapListNum[i]=int(Right(temp,1)); repMapListCountX[MapListNum[i]]++; } i++; goto JL004A; } List=1; JL016E: if ( List <= 4 ) { if ( repMapListCountX[List] > LastMapListCountX[List] ) { MapVoteTabWindow(TheWindow).ClearList(List); i=0; JL01B5: if ( i < 1024 ) { if ( MapListNum[i] == List ) { MapVoteTabWindow(TheWindow).AddMapName(List,MapList[i]); } i++; goto JL01B5; } LastMapListCountX[List]=repMapListCountX[List]; bUpdated=True; } List++; goto JL016E; } repMapsCount=repMapListCountX[1] + repMapListCountX[2] + repMapListCountX[3] + repMapListCountX[4]; if ( (repMapsCount > LastMapsCount) || (repMapsCount != MapCount) ) { bUpdated=True; LastMapsCount=repMapsCount; } if ( (MapVoteTabWindow(TheWindow).AdminWindow != None) && PlayerPawn(Owner).PlayerReplicationInfo.bAdmin ) { Window=AdminWindow(MapVoteTabWindow(TheWindow).AdminWindow.ClientArea); repAdminChechsum=Len(GameTypes) + Len(OtherClass) + Len(string(VoteTimeLimit)) + Len(string(KickPercent)) + Len(string(ScoreBoardDelay)) + Len(string(bUseMapList)) + Len(string(bAutoOpen)) + Len(string(bKickVote)) + Len(string(bAutoDetect)) + Len(List1Title) + Len(List2Title) + Len(List3Title) + Len(List4Title) + List1Priority + List2Priority + List3Priority + List4Priority + Len(PreFixSwap) + Len(string(bDebugMode)) + Len(string(bRemoveCrashedMaps)) + RepeatLimit + Len(MapVoteHistoryType) + MidGameVotePercent + Len(Mode) + MinMapCount + Len(MapPreFixOverRide) + Len(HasStartWindow) + Len(MapInfoURL) + Len(string(bEntryWindows)) + Len(string(bSortWithPreFix)) + Len(ASClass) + Len(CustomGamesState) + Len(string(bUseExcludeFilter)); i=0; JL043D: if ( i < 16 ) { repAdminChechsum += Len(CustomGames[i]); i++; goto JL043D; } if ( gAdminChechsum != repAdminChechsum ) { bUpdated=True; gAdminChechsum=repAdminChechsum; } Window.cbLoadDM.bChecked=bool(Mid(GameTypes,0,1)); Window.cbLoadLMS.bChecked=bool(Mid(GameTypes,1,1)); Window.cbLoadTDM.bChecked=bool(Mid(GameTypes,2,1)); Window.cbLoadAS.bChecked=bool(Mid(GameTypes,3,1)); Window.cbLoadDOM.bChecked=bool(Mid(GameTypes,4,1)); Window.cbLoadCTF.bChecked=bool(Mid(GameTypes,5,1)); Window.sldVoteTimeLimit.SetValue(VoteTimeLimit); Window.sldKickPercent.SetValue(KickPercent); Window.sldScoreBoardDelay.SetValue(ScoreBoardDelay); Window.cbUseMapList.bChecked=bUseMapList; Window.cbAutoOpen.bChecked=bAutoOpen; Window.cbKickVote.bChecked=bKickVote; Window.cbAutoDetect.bChecked=bAutoDetect; Window.cbCheckOtherGameTie.bChecked=bCheckOtherGameTie; Window.cbReloadMapsOnRequestOnly.bChecked=bReloadMapsOnRequestOnly; Window.cbUseExcludeFilter.bChecked=bUseExcludeFilter; Window.txtRepeatLimit.SetValue(string(RepeatLimit)); Window.cboMapVoteHistoryType.SetValue(MapVoteHistoryType); Window.sldMidGameVotePercent.SetValue(MidGameVotePercent); Window.cboMode.SetValue(Mode); Window.txtMinMapCount.SetValue(string(MinMapCount)); Window.txtMapVoteTitle.SetValue(MapVoteTitle); Window.txtList1Title.SetValue(List1Title); Window.txtList2Title.SetValue(List2Title); Window.txtList3Title.SetValue(List3Title); Window.txtList4Title.SetValue(List4Title); Window.txtList1Priority.SetValue(string(List1Priority)); Window.txtList2Priority.SetValue(string(List2Priority)); Window.txtList3Priority.SetValue(string(List3Priority)); Window.txtList4Priority.SetValue(string(List4Priority)); Window.txtASClass.SetValue(ASClass); Window.cbRemoveCrashedMaps.bChecked=bRemoveCrashedMaps; Window.txtMapInfoURL.SetValue(MapInfoURL); Window.cbEntryWindows.bChecked=bEntryWindows; Window.cbSortWithPreFix.bChecked=bSortWithPreFix; Window.cbDebugMode.bChecked=bDebugMode; Window.lblActGame.SetText("C" $ "lass:" @ ActGameClass); Window.lblActPrefix.SetText("Map Prefix:" @ ActGamePrefix); if ( Len(CustomGamesState) > 10 ) { i=0; JL0951: if ( i < 16 ) { if ( Mid(CustomGamesState,i,1) == "1" ) { Window.cbCustGame[i].bChecked=True; } else { Window.cbCustGame[i].bChecked=False; } if ( CustomGames[i] != "" ) { Window.lblCustGame[i].SetText(CustomGames[i]); Window.cbCustGame[i].bDisabled=False; } else { Window.lblCustGame[i].SetText("empty"); Window.cbCustGame[i].bDisabled=True; } i++; goto JL0951; } } } if ( bKickVote || PlayerPawn(Owner).PlayerReplicationInfo.bAdmin ) { MapVoteTabWindow(TheWindow).EnableKickWindow(); } i=0; JL0AA8: if ( (i < 32) && (PlayerName[i] != "") ) { repPlayerCount=i + 1; i++; goto JL0AA8; } if ( repPlayerCount != gPlayerCount ) { i=gPlayerCount; JL0AFA: if ( i < repPlayerCount ) { if ( Right(PlayerName[i],5) == "&?&!&" ) { PlayerName[i]=Mid(PlayerName[i],0,Len(PlayerName[i]) - 5); bHasVoted=True; } else { bHasVoted=False; } MapVoteTabWindow(TheWindow).AddPlayerName(PlayerName[i],bHasVoted); i++; goto JL0AFA; } gPlayerCount=repPlayerCount; bUpdated=True; } i=0; JL0BAB: if ( (MapVoteResults[i] != "") && (i < 31) ) { UpdateMapVoteResults(MapVoteResults[i],i); i++; goto JL0BAB; } i=0; JL0BF2: if ( (KickVoteResults[i] != "") && (i < 31) ) { UpdateKickVoteResults(KickVoteResults[i],i); i++; goto JL0BF2; } MapVoteTabWindow(TheWindow).MapWindow.lblMapCount.SetText(string(repMapsCount) $ "/" $ string(MapCount) $ " Maps loaded"); MapVoteTabWindow(TheWindow).MapWindow.lblMode.SetText("Mode: " $ Mode); MapVoteTabWindow(TheWindow).MapWindow.lblTitle1.SetText(List1Title); MapVoteTabWindow(TheWindow).MapWindow.lblTitle2.SetText(List2Title); MapVoteTabWindow(TheWindow).MapWindow.lblTitle3.SetText(List3Title); MapVoteTabWindow(TheWindow).MapWindow.lblTitle4.SetText(List4Title); MapVoteTabWindow(TheWindow).MapWindow.lblTitle.SetText(MapVoteTitle); MapVoteTabWindow(TheWindow).MapWindow.lblPriority1.SetText("Priority:" @ Left(string(List1Priority),3)); MapVoteTabWindow(TheWindow).MapWindow.lblPriority2.SetText("Priority:" @ Left(string(List2Priority),3)); MapVoteTabWindow(TheWindow).MapWindow.lblPriority3.SetText("Priority:" @ Left(string(List3Priority),3)); MapVoteTabWindow(TheWindow).MapWindow.lblPriority4.SetText("Priority:" @ Left(string(List4Priority),3)); MapVoteTabWindow(TheWindow).MapWindow.LogoTexture=LogoTexture; TitleChecksum=Len(List1Title) + Len(List2Title) + Len(List3Title) + Len(List4Title) + List1Priority + List2Priority + List3Priority + List4Priority + Len(PrefixDictionary); if ( TitleChecksum != gTitleChecksum ) { gTitleChecksum=TitleChecksum; bUpdated=True; } if ( ServerInfoURL != "" ) { MapVoteTabWindow(TheWindow).InfoWindow.SetInfoServerAddress(ServerInfoURL,MapInfoURL); if ( MapVoteTabWindow(TheWindow).AdminWindow != None ) { AdminWindow(MapVoteTabWindow(TheWindow).AdminWindow.ClientArea).txtServerInfoURL.SetValue(ServerInfoURL); } } else { MapVoteNavBar(MapVoteTabWindow(TheWindow).InfoWindow.VSplitter.BottomClientWindow).ServerInfoButton.bDisabled=True; } MapVoteNavBar(MapVoteTabWindow(TheWindow).InfoWindow.VSplitter.BottomClientWindow).ReportButton1.bDisabled=False; MapVoteNavBar(MapVoteTabWindow(TheWindow).InfoWindow.VSplitter.BottomClientWindow).ReportButton2.bDisabled=False; MapVoteTabWindow(TheWindow).MapWindow.PrefixDictionary=PrefixDictionary; if ( !bUpdated && blastCheck ) { if ( MapVoteTabWindow(TheWindow).AdminWindow != None ) { AdminWindow(MapVoteTabWindow(TheWindow).AdminWindow.ClientArea).RemoteSaveButton.bDisabled=False; } return; } if ( !bUpdated ) { blastCheck=True; SetTimer(1.00,False); return; } blastCheck=False; SetTimer(0.50,False); } function GetServerConfig () { local int i; bKickVote=Class'BDBMapVote'.Default.bKickVote; ScoreBoardDelay=Class'BDBMapVote'.Default.ScoreBoardDelay; ServerInfoURL=Class'BDBMapVote'.Default.ServerInfoURL; MapInfoURL=Class'BDBMapVote'.Default.MapInfoURL; Mode=Class'BDBMapVote'.Default.Mode; bEntryWindows=Class'BDBMapVote'.Default.bEntryWindows; bDebugMode=Class'BDBMapVote'.Default.bDebugMode; LogoTexture=Class'BDBMapVote'.Default.LogoTexture; List1Title=Class'BDBMapVote'.Default.List1Title; List2Title=Class'BDBMapVote'.Default.List2Title; List3Title=Class'BDBMapVote'.Default.List3Title; List4Title=Class'BDBMapVote'.Default.List4Title; MapVoteTitle=Class'BDBMapVote'.Default.MapVoteTitle; if ( PlayerPawn(Owner).bAdmin ) { DebugLog("Admin is logged in. Sending admin vars..."); if ( Class'BDBMapVote'.Default.bDM ) { GameTypes="1"; } else { GameTypes="0"; } if ( Class'BDBMapVote'.Default.bLMS ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } if ( Class'BDBMapVote'.Default.bTDM ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } if ( Class'BDBMapVote'.Default.bAS ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } if ( Class'BDBMapVote'.Default.bDOM ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } if ( Class'BDBMapVote'.Default.bCTF ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } if ( False ) { GameTypes=GameTypes $ "1"; } else { GameTypes=GameTypes $ "0"; } ActGameClass=string(Level.Game.Class); ActGamePrefix=Level.Game.MapPrefix; bReloadMapsOnRequestOnly=Class'BDBMapVote'.Default.bReloadMapsOnRequestOnly; MinMapCount=Class'BDBMapVote'.Default.MinMapCount; bAutoDetect=Class'BDBMapVote'.Default.bAutoDetect; RepeatLimit=Class'BDBMapVote'.Default.RepeatLimit; KickPercent=Class'BDBMapVote'.Default.KickPercent; bUseMapList=Class'BDBMapVote'.Default.bUseMapList; bAutoOpen=Class'BDBMapVote'.Default.bAutoOpen; VoteTimeLimit=Class'BDBMapVote'.Default.VoteTimeLimit; bCheckOtherGameTie=Class'BDBMapVote'.Default.bCheckOtherGameTie; MapVoteHistoryType=Class'BDBMapVote'.Default.MapVoteHistoryType; MidGameVotePercent=Class'BDBMapVote'.Default.MidGameVotePercent; bSortWithPreFix=Class'BDBMapVote'.Default.bSortWithPreFix; bRemoveCrashedMaps=Class'BDBMapVote'.Default.bRemoveCrashedMaps; ASClass=Class'BDBMapVote'.Default.ASClass; bUseExcludeFilter=Class'BDBMapVote'.Default.bUseExcludeFilter; } } simulated function AddNewPlayer (string NewPlayerName, bool bHasVoted) { if ( bKickVote ) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).AddPlayerName(NewPlayerName,bHasVoted); } } } simulated function RemovePlayerName (string OldPlayerName) { if ( bKickVote ) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).RemovePlayerName(OldPlayerName); } } } simulated function UpdatePlayerVoted (string PlayerID) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).UpdatePlayerVoted(PlayerID); } } simulated function UpdateMapVoteResults (string Text, int i) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).UpdateMapVoteResults(Text,i); } } simulated function UpdateKickVoteResults (string Text, int i) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).UpdateKickVoteResults(Text,i); } } simulated function SendReportText (string p_ReportText) { if ( p_ReportText == "" ) { if ( TheWindow != None ) { MapVoteTabWindow(TheWindow).InfoWindow.SetMOTD(ReportText); } ReportText=""; } else { ReportText=ReportText $ p_ReportText; } } function DestroyWRI () { Super.DestroyWRI(); } function DebugLog (string Msg) { Log("MV " $ Msg); } Qr ~ ýì-`çpMV r ! K//================================================================================ // MapVoteHistory2. //================================================================================ class MapVoteHistory2 extends MapVoteHistory_INI Config(MapVoteHistory2); mHsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIB�͸má³§�sDs ±!QI›}&9w,¡*,¡-Þ(,¡*“›},ƒw9¡*9¡-Þ(9¡*Ý›},Íw5¡*5¡-Þ(5¡*'›},w7¡*7¡-Þ(7¡*O‚™}& ˜},s  BUbuU W//================================================================================ // KeyBinderListItem. //================================================================================ class KeyBinderListItem extends UWindowListBoxItem; var string KeyName; var string CommandString; function int Compare (UWindowList t, UWindowList B) { if ( Caps(KeyBinderListItem(t).KeyName) < Caps(KeyBinderListItem(B).KeyName) ) { return -1; } return 1; } JN+Ù$Ž#w,¡*,¡Fw9¡*9¡iw5¡*5¡Œw7¡*7¡ €£õMi!ïÆ%ƒ õis s )$i ÿÿ� ±$ i >,±™”±®=?,„{€.,¡2,[X]™¥-å™<pMUTATE BDBMAPVOTE MAP .,¡2=™”±\™”±,&® H9±™”±®=?,„{€.9¡2,[X]™¥-å™<pMUTATE BDBMAPVOTE MAP .9¡2=™”±\™”±9,® R5$±™”±®=?,$„{€.5¡2,[X]™¥-å™<pMUTATE BDBMAPVOTE MAP .5¡2=™”±\™”±5,® \7.±™”±®=?,.„{€.7¡2,[X]™¥-å™<pMUTATE BDBMAPVOTE MAP .7¡2=™”±\™”±7,® $Ki.$¡:,%ΚK&,".$¡:šK,9".$¡:<šK,5".$¡:sšK,7".$¡:ÿ±™”±®=?,™<pMUTATE BDBMAPVOTE MAP .$¡:=™”±\™”±® ¸Lµ±™”±®=?,™=pMUTATE BDBMAPVOTE KICK .L¡T=™”±® «NL"7.N¡eç¨Select Player:.N¡e¨±™”±®=?,™=pMUTATE BDBMAPVOTE KICK .L¡T=™”±® ÿÿ�  $i o{v ™pSAY v v  ^ ±™”±®=?, w+* „{€.+2,[X]™¥-åì{.+2™4pMUTATE BDBMAPVOTE MAP .+2=™”± 0 ]¹¹ e ,\™”±,& › 9\™”±9, Ñ 5\™”±5,  7\™”±7, ? $Ki.$¡:,%y šK&,".$¡:° šK,9".$¡:ç šK,5".$¡: šK,7".$¡:\™”± × SÔ ±™”±®=?,™=pMUTATE BDBMAPVOTE KICK .L¡T=™”± NL"7.N¡e ÿÿ� ~ ${ {v ™pSAY v v v xo� ÿÿ Kz H¨u Ez  Wy O éÒ87{ay ¸w{*o%©‚–o, {o{Ãr¥o{Ãv~ër.UNR¥›vÿÿÿÿr€rvrpt r}x ûww *û˜w 8rTrp[X]rjcrd{j¥ja-`¨ppLoading Map[S]j¦¦-`¨Map ignored cause no filter matches: r*{aÐçMapList Spawn Failed f//================================================================================ // ServerInfoLink. //================================================================================ class ServerInfoLink extends UBrowserHTTPClient; var config int UpdateServerTimeout; var ServerInfoWindow UpdateWindow; function BrowseCurrentURI (string ServerAddress, string URI, int ServerPort) { Log("browsing " $ ServerAddress $ URI $ ":" $ string(ServerPort)); Browse(ServerAddress,URI,ServerPort,UpdateServerTimeout); } function Failure () { UpdateWindow.Failure(); } function Success () { UpdateWindow.Success(); } function ProcessData (string Data) { UpdateWindow.SetMOTD(Data); } function HTTPError (int ErrorCode) { if ( ErrorCode == 404 ) { Log("404 Error"); UpdateWindow.SetMOTD("


Information or Server Unavailable
"); } else { Failure(); } } function HTTPReceivedData (string Data) { ProcessData(Data); Success(); } OViµU@i, CV&39 CV,M5 CV,g7 CV, ÊP} _ ò§Ÿš} ”ç404 ErroruwE


Information or Server Unavailable
¥T €ÛS~ ,ÉzAre‚µ\?%$±™”±®\?&ew+*.+2\Û~  Zz" xár86¨p¨¨¨Going to load gametype:j using maps with Prefix:z. PreFixChange:h ¨|j Botpack.CTFGame-r 'Pure CTF DetectedS ” bz%OS �|S n ÷™ÿ¥D îRO}‚‚-M-r ,„�|€R,CTF-|€R,CTF-BT¨CTF prevented from loading wrong map:RîE ~ëR.UNR³›E ÿÿÿÿR€RE Rph R}z~ëOTUTORIALÿÿÿÿš~ëOINTROÿÿÿÿBwi *B˜i 8RTRp[X]R^cR¬{^¥^©-`¨ppLoading Map[S]:^îî-`¨Map ignored cause no filter matches: RO”bzO&n OÍp—D %稨¨¨IgnoredSD Maps with Prefixzcause mapcount > 1023! VuÝ&Cz�N-¤ -o'_ ~ëu.UNRT›_ ÿÿÿÿu€u_ a cuq.ÁËpa .Screenshot Áv.áËpa .LevelSummary áz€u,[X]rYou can NOTsvote for this map.txPwv*rvÚsvÍtvÉxrDownLoadsRequiredt K//================================================================================ // MapVoteHistory1. //================================================================================ class MapVoteHistory1 extends MapVoteHistory_INI Config(MapVoteHistory1); cX: #Í| -z'Maplist is reloading...'84a84b`kËm ‘ akÃr *89kËMapVoteLA13.MapVoteHistory1 ‘ ak%-%ø–--¥-Ñò-WçpDetected GameType = V”¢¸-e(-b(-X(-[(-](-`(-h(˜|V”¢¸u-e'òÑ|V”¢¸Botpack.CTFGame-b'ò|V”¢¸Botpack.DeathMatchPlus-X'òR|V”¢¸Botpack.LastManStanding-['ò�|V”¢¸Botpack.TeamGamePlus-]'òÌ|V”¢¸Botpack.Domination-`'ò-h'tV”¢¸-hw–Ët ‘x-eL-\  ¨íASAS p"ASAS Botpack.AssaultaÞ-b°-\  úíCTFCTF Ö"CTFCTF Botpack.CTFGameaG-X-\  ÃíDMDM ?"DMDM Botpack.DeathMatchPlusa°-`-\  ÷íDOMDOM ¨"DOMDOM Botpack.Dominationa-]ç-\  ÈíDMTDM "DMTDM Botpack.TeamGamePlusa…-[P-\  öíDMLMS }"DMLMS Botpack.LastManStandinga.‚-h ww*85bw¾ý-\ wíw¾b &"w¾b taZ�-W-%Z–-,P‚-6h- {6*- #–Ë6*- ‘‚-M%|ê6*- , MultiCTFGameMultiCTF detected. Fixing Mapprefix to CTFM#¾CTFM†r#*ç¨ppMapVote: Error. CustomGameConfig[S-]: Failed to load GameClass:6*- Hºz6Q- b#¾Öb6Q- -\ #í#¾b H"#¾b 6*- a¥-@ a´zjElimination´„–T ‚š% —T%T%q!XWçpBDBMapVote: Maps Reloaded. Total Maps = SJ -zMapVote configuration has been changed, Re-Open Voting window for updates.'-z(a -]_ p3yÿÿÿÿÿÿÿÿÿÿd \]@v@mYtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^Î/#má³§�tËT ^+ÿH U XTc’FdpTDM;DM;LMS;DM;@ ?|€T,[X]TT,HT{dJ€d~d;dd’~d;&g €d~d;dd’~d;&‚{€T,CTF-|€T’}J&pJ-Hpg T}JHJH lº//================================================================================ // MapVoteClientWindow. //================================================================================ class MapVoteClientWindow extends UWindowPageWindow; var MapVoteListBox MapListBox1; var MapVoteListBox MapListBox2; var MapVoteListBox MapListBox3; var MapVoteListBox MapListBox4; var UWindowSmallButton CloseButton; var UWindowSmallButton VoteButton; var UWindowSmallButton InfoButton; var PlayerVoteListBox PlayerListBox; var UWindowSmallButton KickVoteButton; var MapStatusListBox lstMapStatus; var KickStatusListBox lstKickStatus; var UWindowCheckbox cbLoadScreenShot; var UMenuLabelControl lblStatusTitles; var UMenuLabelControl lblTitle1; var UMenuLabelControl lblTitle2; var UMenuLabelControl lblTitle3; var UMenuLabelControl lblTitle4; var UMenuLabelControl lblTitle; var UMenuLabelControl lblMaptxt1; var UMenuLabelControl lblMaptxt2; var UMenuLabelControl lblMaptxt3; var UMenuLabelControl lblPriority1; var UMenuLabelControl lblPriority2; var UMenuLabelControl lblPriority3; var UMenuLabelControl lblPriority4; var UMenuLabelControl lblMapCount; var UWindowEditControl txtFind; var UWindowSmallButton SendButton; var UWindowEditControl txtMessage; var UMenuLabelControl lblMode; var bool bKickVote; var Texture Screenshot; var string MapTitle; var string MapAuthor; var string IdealPlayerCount; var float LastVoteTime; var float SelectionTime; var string LogoTexture; var int MapListwidth; var int PlayerListwidth; var int ListHeight; var bool bMapAlreadySet; var string PrefixDictionary; function Created () { local Color TextColor; local Color TextColorTitles; local Color TextColorTitle; local int LowSectionStart; local int RightSectionStart; Super.Created(); TextColor.R=255; TextColor.G=255; TextColor.B=255; TextColorTitles.R=255; TextColorTitles.G=10; TextColorTitles.B=10; TextColorTitle.R=255; TextColorTitle.G=255; TextColorTitle.B=10; MapListwidth=120; PlayerListwidth=120; ListHeight=324; LowSectionStart=ListHeight + 81; RightSectionStart=400; MapListBox1=MapVoteListBox(CreateControl(Class'MapVoteListBox',10.00,26.00,MapListwidth,ListHeight)); MapListBox1.Items.Clear(); MapListBox2=MapVoteListBox(CreateControl(Class'MapVoteListBox',20.00 + MapListwidth,26.00,MapListwidth,ListHeight)); MapListBox2.Items.Clear(); MapListBox3=MapVoteListBox(CreateControl(Class'MapVoteListBox',40.00 + 2 * MapListwidth + PlayerListwidth,26.00,MapListwidth,ListHeight)); MapListBox3.Items.Clear(); MapListBox4=MapVoteListBox(CreateControl(Class'MapVoteListBox',50.00 + 3 * MapListwidth + PlayerListwidth,26.00,MapListwidth,ListHeight)); MapListBox4.Items.Clear(); VoteButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',10.00,ListHeight + 46,40.00 + 4 * MapListwidth + PlayerListwidth,21.00)); VoteButton.DownSound=Sound'BeltSnd'; VoteButton.Text="Vote"; VoteButton.bDisabled=False; PlayerListBox=PlayerVoteListBox(CreateControl(Class'PlayerVoteListBox',30.00 + 2 * MapListwidth,172.00,PlayerListwidth,-168.00 + ListHeight)); PlayerListBox.Items.Clear(); PlayerListBox.bDisabled=True; KickVoteButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',30.00 + 2 * MapListwidth,ListHeight + 11,PlayerListwidth,18.00)); KickVoteButton.DownSound=Sound'BeltSnd'; if ( bKickVote || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { KickVoteButton.Text="Kick"; KickVoteButton.bDisabled=True; } else { KickVoteButton.Text=""; KickVoteButton.bDisabled=False; } lblStatusTitles=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,LowSectionStart - 15,30.00 + 2 * MapListwidth + PlayerListwidth,10.00)); lblStatusTitles.SetText("Rank Map name Votes Player name Votes"); lblStatusTitles.SetFont(0); lblStatusTitles.SetTextColor(TextColor); lstMapStatus=MapStatusListBox(CreateControl(Class'MapStatusListBox',10.00,LowSectionStart,200.00,90.00)); lstMapStatus.bAcceptsFocus=False; lstMapStatus.Items.Clear(); lstKickStatus=KickStatusListBox(CreateControl(Class'KickStatusListBox',230.00,LowSectionStart,150.00,90.00)); lstKickStatus.bAcceptsFocus=False; lstKickStatus.Items.Clear(); lblMaptxt1=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',30.00 + 2 * MapListwidth,140.00,PlayerListwidth,10.00)); lblMaptxt1.SetTextColor(TextColor); lblMaptxt1.Align=TA_Center; lblMaptxt2=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',30.00 + 2 * MapListwidth,149.00,PlayerListwidth,10.00)); lblMaptxt2.SetTextColor(TextColor); lblMaptxt2.Align=TA_Center; lblMaptxt3=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',30.00 + 2 * MapListwidth,158.00,PlayerListwidth,10.00)); lblMaptxt3.SetTextColor(TextColor); lblMaptxt3.Align=TA_Center; lblTitle1=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',0.00,10.00,MapListwidth + 20,20.00)); lblTitle1.SetFont(1); lblTitle1.Align=TA_Center; lblTitle1.SetTextColor(TextColorTitles); lblTitle2=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00 + MapListwidth,10.00,MapListwidth + 20,20.00)); lblTitle2.SetFont(1); lblTitle2.Align=TA_Center; lblTitle2.SetTextColor(TextColorTitles); lblTitle=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',15.00 + 2 * MapListwidth,10.00,PlayerListwidth + 30,20.00)); lblTitle.SetFont(1); lblTitle.Align=TA_Center; lblTitle.SetTextColor(TextColorTitle); lblTitle3=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',30.00 + 2 * MapListwidth + PlayerListwidth,10.00,MapListwidth + 20,20.00)); lblTitle3.SetFont(1); lblTitle3.Align=TA_Center; lblTitle3.SetTextColor(TextColorTitles); lblTitle4=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',40.00 + 3 * MapListwidth + PlayerListwidth,10.00,MapListwidth + 20,20.00)); lblTitle4.SetFont(1); lblTitle4.Align=TA_Center; lblTitle4.SetTextColor(TextColorTitles); lblPriority1=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',0.00,ListHeight + 30,MapListwidth + 20,20.00)); lblPriority1.Align=TA_Center; lblPriority1.SetTextColor(TextColor); lblPriority2=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00 + MapListwidth,ListHeight + 30,MapListwidth + 20,20.00)); lblPriority2.Align=TA_Center; lblPriority2.SetTextColor(TextColor); lblPriority3=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',30.00 + 2 * MapListwidth + PlayerListwidth,ListHeight + 30,MapListwidth + 20,20.00)); lblPriority3.Align=TA_Center; lblPriority3.SetTextColor(TextColor); lblPriority4=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',40.00 + 3 * MapListwidth + PlayerListwidth,ListHeight + 30,MapListwidth + 20,20.00)); lblPriority4.Align=TA_Center; lblPriority4.SetTextColor(TextColor); lblMapCount=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',RightSectionStart,LowSectionStart,110.00,20.00)); lblMapCount.SetFont(0); lblMapCount.SetTextColor(TextColor); lblMode=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',RightSectionStart + 120,LowSectionStart,100.00,20.00)); lblMode.SetText("Mode:"); lblMode.SetFont(0); lblMode.SetTextColor(TextColor); cbLoadScreenShot=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',RightSectionStart,LowSectionStart + 20,70.00,20.00)); cbLoadScreenShot.SetText("ScreenShot"); cbLoadScreenShot.Align=TA_Right; cbLoadScreenShot.SetFont(0); cbLoadScreenShot.SetTextColor(TextColor); cbLoadScreenShot.bChecked=Class'BDBMapVote'.Default.bLoadScreenShot; txtMessage=UWindowEditControl(CreateControl(Class'UWindowEditControl',RightSectionStart - 75 - MapListwidth,LowSectionStart + 45,2.00 * MapListwidth + 150,20.00)); txtMessage.SetNumericOnly(False); txtMessage.SetHistory(True); txtMessage.SetMaxLength(150); SendButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',RightSectionStart + 2 * MapListwidth - 30,LowSectionStart + 45,40.00,20.00)); SendButton.Text="Send"; SendButton.bDisabled=False; CloseButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',RightSectionStart,LowSectionStart + 75,2.00 * MapListwidth + 10,20.00)); CloseButton.DownSound=Sound'WeaponPickup'; CloseButton.Text="Close"; CloseButton.bDisabled=False; } function DeSelectAllOtherMapListBoxItems (MapVoteListBox selListBox, int listNum) { if ( listNum != 1 ) { if ( MapListBox1.SelectedItem != None ) { MapListBox1.SelectedItem.bSelected=False; } MapListBox1.SelectedItem=None; } if ( listNum != 2 ) { if ( MapListBox2.SelectedItem != None ) { MapListBox2.SelectedItem.bSelected=False; } MapListBox2.SelectedItem=None; } if ( listNum != 3 ) { if ( MapListBox3.SelectedItem != None ) { MapListBox3.SelectedItem.bSelected=False; } MapListBox3.SelectedItem=None; } if ( listNum != 4 ) { if ( MapListBox4.SelectedItem != None ) { MapListBox4.SelectedItem.bSelected=False; } MapListBox4.SelectedItem=None; } if ( (listNum >= 1) && (listNum <= 4) ) { selListBox.MakeSelectedVisible(); } } function UWindowListBoxItem getSelectedItem () { if ( MapListBox1.SelectedItem != None ) { return MapListBox1.SelectedItem; } if ( MapListBox2.SelectedItem != None ) { return MapListBox2.SelectedItem; } if ( MapListBox3.SelectedItem != None ) { return MapListBox3.SelectedItem; } if ( MapListBox4.SelectedItem != None ) { return MapListBox4.SelectedItem; } } function Notify (UWindowDialogControl C, byte E) { local int listNum; Super.Notify(C,E); switch (E) { case 1: switch (C) { default: } break; case 11: switch (C) { case MapListBox1: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { if ( (Left(UMenuMapVoteList(MapListBox1.SelectedItem).MapName,3) != "[X]") || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ UMenuMapVoteList(MapListBox1.SelectedItem).MapName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } } SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox1,1); break; case MapListBox2: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { if ( (Left(UMenuMapVoteList(MapListBox2.SelectedItem).MapName,3) != "[X]") || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ UMenuMapVoteList(MapListBox2.SelectedItem).MapName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } } SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox2,2); break; case MapListBox3: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { if ( (Left(UMenuMapVoteList(MapListBox3.SelectedItem).MapName,3) != "[X]") || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ UMenuMapVoteList(MapListBox3.SelectedItem).MapName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } } SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox3,3); break; case MapListBox4: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { if ( (Left(UMenuMapVoteList(MapListBox4.SelectedItem).MapName,3) != "[X]") || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ UMenuMapVoteList(MapListBox4.SelectedItem).MapName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } } SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox4,4); break; case lstMapStatus: listNum=getListNum(MapStatusListItem(lstMapStatus.SelectedItem).MapName); DeSelectAllOtherMapListBoxItems(MapListBox1,0); if ( listNum == 1 ) { MapListBox1.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 2 ) { MapListBox2.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 3 ) { MapListBox3.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 4 ) { MapListBox4.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ MapStatusListItem(lstMapStatus.SelectedItem).MapName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } SelectionTime=GetPlayerOwner().Level.TimeSeconds; break; case PlayerListBox: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE KICK " $ PlayerVoteListItem(PlayerListBox.SelectedItem).PlayerName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } break; case lstKickStatus: PlayerListBox.SelectPlayer(KickStatusListItem(lstKickStatus.SelectedItem).PlayerName); Log("Select Player:" @ KickStatusListItem(lstKickStatus.SelectedItem).PlayerName); if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE KICK " $ PlayerVoteListItem(PlayerListBox.SelectedItem).PlayerName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } break; default: } break; case 2: switch (C) { case SendButton: if ( txtMessage.GetValue() != "" ) { GetPlayerOwner().ConsoleCommand("SAY " $ txtMessage.GetValue()); txtMessage.SetValue(""); } break; case VoteButton: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { if ( getSelectedItem() != None ) { if ( (Left(UMenuMapVoteList(getSelectedItem()).MapName,3) != "[X]") || GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { if ( UMenuMapVoteList(getSelectedItem()).MapName != "" ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE MAP " $ UMenuMapVoteList(getSelectedItem()).MapName); } LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } } } break; case CloseButton: ParentWindow.ParentWindow.Close(); break; case MapListBox1: SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox1,1); break; case MapListBox2: SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox2,2); break; case MapListBox3: SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox3,3); break; case MapListBox4: SelectionTime=GetPlayerOwner().Level.TimeSeconds; DeSelectAllOtherMapListBoxItems(MapListBox4,4); break; case lstMapStatus: listNum=getListNum(MapStatusListItem(lstMapStatus.SelectedItem).MapName); DeSelectAllOtherMapListBoxItems(MapListBox1,0); if ( listNum == 1 ) { MapListBox1.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 2 ) { MapListBox2.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 3 ) { MapListBox3.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } if ( listNum == 4 ) { MapListBox4.SelectMap(MapStatusListItem(lstMapStatus.SelectedItem).MapName); } SelectionTime=GetPlayerOwner().Level.TimeSeconds; break; case KickVoteButton: if ( GetPlayerOwner().Level.TimeSeconds > LastVoteTime + 5 ) { GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE KICK " $ PlayerVoteListItem(PlayerListBox.SelectedItem).PlayerName); LastVoteTime=GetPlayerOwner().Level.TimeSeconds; } break; case lstKickStatus: PlayerListBox.SelectPlayer(KickStatusListItem(lstKickStatus.SelectedItem).PlayerName); break; default: } break; case 7: if ( txtMessage.GetValue() != "" ) { GetPlayerOwner().ConsoleCommand("SAY " $ txtMessage.GetValue()); txtMessage.SetValue(""); txtMessage.FocusOtherWindow(SendButton); } break; default: } } function int getListNum (string MapName) { if ( MapListBox1.isMapInList(MapName) ) { return 1; } if ( MapListBox2.isMapInList(MapName) ) { return 2; } if ( MapListBox3.isMapInList(MapName) ) { return 3; } if ( MapListBox4.isMapInList(MapName) ) { return 4; } } function Tick (float DeltaTime) { if ( (SelectionTime != 0) && (GetPlayerOwner().Level.TimeSeconds > SelectionTime + 1) ) { if ( getSelectedItem() != None ) { SetMap(UMenuMapVoteList(getSelectedItem()).MapName); SelectionTime=0.00; } } Super.Tick(DeltaTime); } function SetMap (string MapName) { local int i; local int pos; local string Prefix; local string RealPreFix; local LevelSummary L; local string RealMapName; if ( !cbLoadScreenShot.bChecked ) { return; } bMapAlreadySet=True; i=InStr(Caps(MapName),".UNR"); if ( i != -1 ) { MapName=Left(MapName,i); } RealMapName=GetRealMapname(MapName); Screenshot=Texture(DynamicLoadObject(RealMapName $ ".Screenshot",Class'Texture')); L=LevelSummary(DynamicLoadObject(RealMapName $ ".LevelSummary",Class'LevelSummary')); if ( Left(MapName,3) == "[X]" ) { MapTitle="You can NOT"; MapAuthor="vote for this map."; IdealPlayerCount=""; } else { if ( L != None ) { MapTitle=L.Title; MapAuthor=L.Author; IdealPlayerCount=L.IdealPlayerCount; } else { MapTitle="DownLoad"; MapAuthor="Required"; IdealPlayerCount=""; } } } function string GetRealMapname (string VirtualMap) { local string MapName; local string Dictionary; local string virt; local string Real; Dictionary="TDM;DM;LMS;DM;" $ PrefixDictionary; if ( Left(VirtualMap,3) ~= "[X]" ) { VirtualMap=Mid(VirtualMap,3); } MapName=VirtualMap; JL004A: if ( Dictionary != "" ) { virt=Left(Dictionary,InStr(Dictionary,";")); Dictionary=Mid(Dictionary,InStr(Dictionary,";") + 1); Real=Left(Dictionary,InStr(Dictionary,";")); Dictionary=Mid(Dictionary,InStr(Dictionary,";") + 1); if ( (Left(VirtualMap,4) != "CTF-") && (Left(VirtualMap,Len(virt) + 1) ~= (virt $ "-")) ) { MapName=Real $ Mid(VirtualMap,Len(virt)); return MapName; } goto JL004A; } return MapName; } function Paint (Canvas C, float MouseX, float MouseY) { local int i; local int P1; local int P2; local int pos; local string TempText; local string textline; local float X; local float Y; local float W; local float H; Super.Paint(C,MouseX,MouseY); DrawStretchedTexture(C,0.00,0.00,WinWidth,WinHeight,Texture'BlackTexture'); if ( !bMapAlreadySet && (LogoTexture != "") && (Screenshot == None) ) { Screenshot=Texture(DynamicLoadObject(LogoTexture,Class'Texture')); bMapAlreadySet=True; } if ( Screenshot != None ) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,30.00 + 2 * MapListwidth,27.00,PlayerListwidth,110.00,Screenshot); } if ( MapTitle != "" ) { lblMaptxt1.SetText(MapTitle); } else { lblMaptxt1.SetText(""); } if ( MapAuthor != "" ) { lblMaptxt2.SetText(MapAuthor); } else { lblMaptxt2.SetText(""); } if ( IdealPlayerCount != "" ) { lblMaptxt3.SetText(IdealPlayerCount @ "Players"); } else { lblMaptxt3.SetText(""); } } function KeyDown (int Key, float X, float Y) { ParentWindow.KeyDown(Key,X,Y); } function Close (optional bool bByParent) { local int W; local int Mode; if ( Class'BDBMapVote'.Default.bLoadScreenShot != cbLoadScreenShot.bChecked ) { Class'BDBMapVote'.Default.bLoadScreenShot=cbLoadScreenShot.bChecked; Class'BDBMapVote'.StaticSaveConfig(); } Super.Close(bByParent); } H€@ey` —ÉuNy%S–y,I‚-6hy {6*y #–Ë6*y ‘Iw#*y#¾Ñ‚-M%|ê6*y , MultiCTFGameyCTFMz6Qy 6Qy ybI{6Qy yNppppN6Qy ;y;¥y¨PrefixDictionary:N f//================================================================================ // MapVotePageControl. //================================================================================ class MapVotePageControl extends UMenuPageControl; function KeyDown (int Key, float X, float Y) { Super.KeyDown(Key,X,Y); ParentWindow.KeyDown(Key,X,Y); } hZ_ô(ÇqStoring Maplist to file...^a @^q %^GZ&טZ­|€Z,[X]Z^GZ,ÍZ^GZ¥Z^bZ–bb^G¥bâ^u N^b^a¨Storing Maplist to file finished:S U@ï`x(çI¬ïxC D §x´² À‚‚‚�-o {l rq*q.ÁËl Á-o'wq*6­x›=,ÿ6¬x›=,ÿ6®x›=,ÿ§x®ðA?�,ØA?FÜBq&{rk r7kZ{sm skm™{tn¨tPlayersªn }f^ÊúLoading Maplist from file...kËm ‘ ak£r *89kËMapVoteLA13.MapVoteHistory1 ‘ ak%M&-&a˜- @q U- @G#˜ 8 UTUp[X]U?‚- bUWMU¥M¥-»“M&N @u ¨Loading Maplist finished:S a A wZB@lmnop@q@rstßgE LPM ¹E F I  jëz@V€@ûuJ TÆM_Qó -^N-¤ -^N-¤ Çû-J  @|~:J”´”82 asI¨NextVirtualPrefix:sbsz?Restart’‚ww*-h83b’|€ë}w¾w¾^w¾K-MK|êVw, MultiCTFGameMultiCTF detected. Fixing Mapprefix to CTFM^CTFM¨NextRealPrefix:^bTpp.unr?game=tB%ÿ–B,õ‚-6hB {6*B 83.1#–Ë6*B ‘qr#*ç¨ppMapVote: Error. CustomGameConfig[SB]: Failed to load GameClass:6*B õ6QB 6QB -M|ê6*B , MultiCTFGameMultiCTF detected. Fixing Mapprefix to CTFM#¾CTFM3{6QB 83.2a¨s6QB 0|s6QB 83.2b^#¾Î-MÎ|ê6*B , MultiCTFGame^CTFM¨NextRealPrefix:^bTppp^}s.unr?game=6*B õ83.3a¨s#¾õ|s#¾83.3b^I¨NextRealPrefix:^bTpp.unr?game=6*B ¥B™1z€ë,DMVBotPack.DeathMatchPluszz€ë,LMSVBotPack.LastManStandingpDM,Àz€ë,TDMVBotPack.TeamGamePluspDM,ïz€ë,DOMVBotPack.Dominationz€ë,CTFVBotPack.CTFGame:z€ë,ASVu^I¨NextRealPrefix:^bTpp.unr?game=V CR e;Œ³981/a0 R 6R nR a10 N//================================================================================ // MapListTemp. //================================================================================ class MapListTemp extends Info Config(MapListTemp); var config string PrefixDictionary; var config int MapCount; var config string M[1024]; E //================================================================================ // MessageHelper. //================================================================================ class MessageHelper extends ReplicationInfo; var string TheSoundString; replication { reliable if ( Role == 4 ) ExecuteMessage; } event Trigger (Actor Other, Pawn EventInstigator) { if ( (Other == None) && (EventInstigator == None) ) { ExecuteMessage(TheSoundString); } } simulated function ExecuteMessage (string SoundString) { local Sound dynSound; Log("AnnouncerMessage:" @ SoundString); dynSound=Sound(DynamicLoadObject(SoundString,Class'Sound')); if ( dynSound != None ) { PlayerPawn(Owner).ClientPlaySound(dynSound,,True); } } x€ù@r|  š:â,@ÿÿÿÿÿÿÿÿÿÿBÓ@pVùYQ²Z…> £Y�fS@$@FZ3±ã|Zc'Szêc&*xc%“}c&S|€Z}xx'}zêc&-}|€Z}cc'Ђzêc&*z€c&*xc&“}c,Й~ëZëx%'ßzc*'( h //================================================================================ // PlainVScrollBar. //================================================================================ class PlainVScrollBar extends UWindowVScrollbar; function Paint (Canvas C, float X, float Y) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,0.00,0.00,1.00,WinHeight,Texture'WhiteTexture'); DrawStretchedTexture(C,WinWidth - 1,0.00,1.00,WinHeight,Texture'WhiteTexture'); if ( !bDisabled ) { DrawUpBevel(C,0.00,ThumbStart,12.00,ThumbHeight,Texture'WhiteTexture'); } } €@Hj °V"|€j,[x]jj,Nz€êj,&:j€j“}j,j w€RF >ë!®¼zF wMF 4šw&QFšw,PXšw,Kjšw,Fç¨ERROR: GetMapPriority(): Mapname has no Priority attached:F !€? Ók J˜Ól .Ž Ž A¸AðB Al Map Voting Menu Hot Keyw.Ï ÏC AHB€?w-Ø(w-Ô'w-Ö'w-Ù'U.Ÿ Ÿ A B*C AU-Ø(UÉ@@UþpBUÿ&UMessage ExpirationU ? )-o 'K .Ž ŽHC B B AK pUUÉ sec].Œ Œ A\BHC A]!Change Message Expiration] %]»$]ÛHC€?]-¤ -Nm D¯²?Ÿs.� �€D®€ÀC?m  B AsÀClosesÅ ès-Ã(s-Ø(ÙS •ßIq ; :8-O Bq q k -O (w-Ã( €N€€KxSIë Õx%Ó–x,ÿo™pKEYNAME Sxxk oÉ{ot ™pKEYBINDING oÉzët MUTATE BDBMAPVOTE VOTEMENUw oL o¥x Td//================================================================================ // MapVoteHistory_INI. //================================================================================ class MapVoteHistory_INI extends MapVoteHistory; var() config string M[512]; var() config int P[512]; var() config int S[512]; var() config int LastMapIndex; var MapVoteReport MVReport; var string ReportType; var int A; var int B; var string ReportText; function AddMap (string MapName) { local int X; local int Y; local bool bFound; if ( MapName == "" ) { return; } if ( LastMapIndex >= 512 ) { RemoveOldestMap(); } if ( LastMapIndex == 0 ) { M[1]=MapName; P[1]=1; S[1]=1; LastMapIndex=1; return; } bFound=False; X=1; JL0065: if ( X <= LastMapIndex ) { if ( MapName == M[X] ) { S[X]=1; P[X]++; bFound=True; } else { if ( S[X] > -1 ) { S[X]++; } } if ( (Caps(M[X]) > Caps(MapName)) && !bFound ) { Y=LastMapIndex; JL0101: if ( Y >= X ) { M[Y + 1]=M[Y]; P[Y + 1]=P[Y]; S[Y + 1]=S[Y]; if ( (Y != X) && (S[Y] > -1) ) { S[Y + 1]++; } Y--; goto JL0101; } M[X]=MapName; P[X]=1; S[X]=1; LastMapIndex++; return; } X++; goto JL0065; } if ( !bFound ) { LastMapIndex++; M[LastMapIndex]=MapName; P[LastMapIndex]=1; S[LastMapIndex]=1; } return; } function int GetMapSequence (string MapName) { local int Index; Index=FindIndex(MapName); if ( Index == 0 ) { return 513; } else { return S[Index]; } } function SetMapSequence (string MapName, int NewSeq) { local int Index; Index=FindIndex(MapName); if ( Index > 0 ) { S[Index]=NewSeq; } } function int GetPlayCount (string MapName) { local int Index; Index=FindIndex(MapName); if ( Index == 0 ) { return 0; } else { return P[Index]; } } function SetPlayCount (string MapName, int NewPlayCount) { local int Index; Index=FindIndex(MapName); if ( Index > 0 ) { P[Index]=NewPlayCount; } } function Save () { SaveConfig(); } function RemoveOldestMap () { local int X; local int Lowest; Lowest=1; X=2; JL000F: if ( X <= LastMapIndex ) { if ( S[X] < S[Lowest] ) { Lowest=X; } X++; goto JL000F; } RemoveMapByIndex(Lowest); } function RemoveMap (string MapName) { local int Index; Index=FindIndex(MapName); if ( Index > 0 ) { RemoveMapByIndex(Index); } } function RemoveMapByIndex (int Index) { local int X; X=Index; JL000B: if ( X < LastMapIndex ) { M[X]=M[X + 1]; P[X]=P[X + 1]; S[X]=S[X + 1]; X++; goto JL000B; } M[LastMapIndex]=""; P[LastMapIndex]=0; S[LastMapIndex]=0; LastMapIndex--; } function int FindIndex (string MapName) { local int A; local int B; local int i; if ( LastMapIndex == 0 ) { return 0; } A=1; B=LastMapIndex; MapName=Caps(MapName); JL002C: if ( True ) { i=(B - A) / 2 + A; if ( M[i] ~= MapName ) { return i; } if ( A == B ) { return 0; } if ( Caps(M[i]) > MapName ) { B=i; } else { if ( A == i ) { A=B; } else { A=i; } } goto JL002C; } } function MapReport (string p_ReportType, MapVoteReport p_MVReport) { MVReport=p_MVReport; ReportType=p_ReportType; A=1; GotoState('sorting'); } function SendReport () { } function Swap (int A, int B) { local int pc; local int seq; local string MapName; MapName=M[A]; M[A]=M[B]; M[B]=MapName; pc=P[A]; P[A]=P[B]; P[B]=pc; seq=S[A]; S[A]=S[B]; S[B]=seq; } state sorting { function Tick (float DeltaTime) { local int LoopCount; LoopCount=1; JL0007: if ( LoopCount <= 4 ) { if ( A <= LastMapIndex - 1 ) { B=A + 1; JL0033: if ( B <= LastMapIndex ) { if ( ReportType == "SEQ" ) { if ( S[A] > S[B] ) { Swap(A,B); } } if ( ReportType == "PC" ) { if ( P[B] > P[A] ) { Swap(A,B); } } B++; goto JL0033; } A++; } else { GotoState('formating'); goto JL00DD; } LoopCount++; goto JL0007; } JL00DD: } } state formating { function Tick (float DeltaTime) { local int LoopCount; local int MaxMaps; LoopCount=1; JL0007: if ( LoopCount <= 2 ) { if ( LastMapIndex > 100 ) { MaxMaps=100; } else { MaxMaps=LastMapIndex; } if ( A <= MaxMaps ) { ReportText=ReportText $ "          "; if ( ReportType == "SEQ" ) { ReportText=ReportText $ string(S[A]); B=1; JL00BE: if ( B < 20 - Len(string(S[A])) ) { ReportText=ReportText $ " "; B++; goto JL00BE; } } if ( ReportType == "PC" ) { ReportText=ReportText $ string(P[A]); B=1; JL0127: if ( B < 20 - Len(string(P[A])) ) { ReportText=ReportText $ " "; B++; goto JL0127; } } ReportText=ReportText $ M[A] $ "
"; A++; } else { ReportText=ReportText $ ""; if ( MVReport == None ) { Destroy(); return; } MVReport.ReportText=ReportText; MVReport.bSendResults=True; GotoState('None'); goto JL01F2; } LoopCount++; goto JL0007; } JL01F2: } function BeginState () { ReportText="

Map Report "; if ( ReportType == "SEQ" ) { ReportText=ReportText $ "2"; } if ( ReportType == "PC" ) { ReportText=ReportText $ "1"; } ReportText=ReportText $ "

"; ReportText=ReportText $ "          "; if ( ReportType == "SEQ" ) { ReportText=ReportText $ "Sequence  "; } if ( ReportType == "PC" ) { ReportText=ReportText $ "PlayCount "; } ReportText=ReportText $ " Map Name
"; ReportText=ReportText $ "          "; ReportText=ReportText $ "------------ -------------------------------
"; A=1; } } K//================================================================================ // MapVoteHistory4. //================================================================================ class MapVoteHistory4 extends MapVoteHistory_INI Config(MapVoteHistory4); XK M䯭 JêK & õOy!_¨ ðõyu u �$`w.Ïy*w.Ïy`ww*-O 'w-Ã'y Šs¹¹� ÿÿî ë$y åU±�-o  âwU*K pUUÉ secè ÿÿî ÿÿ mQvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿT]&È‹má³§�v`€@ÎS{BŠ]lZ„„„z|z|Escape‚™{,p ˜{,y‚™{,0 ˜{,9 P{| PN//================================================================================ // MapVoteListBox. //================================================================================ class MapVoteListBox extends UWindowListBox; function Paint (Canvas C, float MouseX, float MouseY) { if ( Items.Next != None ) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; } else { C.DrawColor.R=100; C.DrawColor.G=100; C.DrawColor.B=100; } DrawStretchedTexture(C,0.00,0.00,WinWidth,WinHeight,Texture'WhiteTexture'); Super.Paint(C,MouseX,MouseY); } function DrawItem (Canvas C, UWindowList Item, float X, float Y, float W, float H) { local string MapName; local string CapMapName; local bool bSelected; if ( UMenuMapVoteList(Item).bSelected ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y,W,H - 1,Texture'WhiteTexture'); bSelected=True; } else { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y,W,H - 1,Texture'WhiteTexture'); bSelected=False; } C.Font=Root.Fonts[0]; MapName=UMenuMapVoteList(Item).MapName; if ( Left(MapName,3) == "[X]" ) { C.DrawColor.R=255; C.DrawColor.G=0; C.DrawColor.B=0; ClipText(C,X + 2,Y,Mid(MapName,3)); } else { if ( bSelected ) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; } else { CapMapName=Caps(MapName); if ( (Left(CapMapName,3) == "AS-") || (Left(CapMapName,3) ~= "BT-") ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=128; } else { if ( (Left(CapMapName,3) ~= "TDM") || (Left(CapMapName,3) ~= "DM-") ) { C.DrawColor.R=0; C.DrawColor.G=64; C.DrawColor.B=0; } else { if ( (Left(CapMapName,3) ~= "DOM") || (Left(CapMapName,3) ~= "iAS") ) { C.DrawColor.R=64; C.DrawColor.G=0; C.DrawColor.B=64; } else { if ( (Left(CapMapName,3) ~= "RA-") || (Left(CapMapName,3) ~= "CTF") ) { C.DrawColor.R=0; C.DrawColor.G=64; C.DrawColor.B=64; } else { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=0; } } } } } ClipText(C,X + 2,Y,MapName); } } function KeyDown (int Key, float X, float Y) { local int i; local UWindowListBoxItem ItemPointer; local UMenuMapVoteList MapItem; local PlayerPawn P; P=GetPlayerOwner(); if(Key == P.EInputKey.IK_MouseWheelDown || Key == P.EInputKey.IK_Down) { if ( (SelectedItem != None) && (SelectedItem.Next != None) ) { SetSelectedItem(UWindowListBoxItem(SelectedItem.Next)); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_MouseWheelUp || Key == P.EInputKey.IK_Up) { if ( (SelectedItem != None) && (SelectedItem.Prev != None) && (SelectedItem.Sentinel != SelectedItem.Prev) ) { SetSelectedItem(UWindowListBoxItem(SelectedItem.Prev)); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_PageDown) { if ( SelectedItem != None ) { ItemPointer=SelectedItem; i=0; JL013E: if ( i < 7 ) { if ( ItemPointer.Next == None ) { return; } ItemPointer=UWindowListBoxItem(ItemPointer.Next); i++; goto JL013E; } SetSelectedItem(ItemPointer); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_PageUp) { if ( SelectedItem != None ) { ItemPointer=SelectedItem; i=0; JL01C7: if ( i < 7 ) { if ( (ItemPointer.Prev == None) || (ItemPointer.Prev == SelectedItem.Sentinel) ) { return; } ItemPointer=UWindowListBoxItem(ItemPointer.Prev); i++; goto JL01C7; } SetSelectedItem(ItemPointer); MakeSelectedVisible(); } } ParentWindow.KeyDown(Key,X,Y); } function SelectMap (string MapName) { local UMenuMapVoteList MapItem; MapItem=UMenuMapVoteList(Items); JL0010: if ( MapItem != None ) { if ( MapName ~= MapItem.MapName ) { SetSelectedItem(MapItem); MakeSelectedVisible(); } else { MapItem=UMenuMapVoteList(MapItem.Next); goto JL0010; } } } function bool isMapInList (string MapName) { local UMenuMapVoteList MapItem; MapItem=UMenuMapVoteList(Items); JL0010: if ( MapItem != None ) { if ( MapName ~= MapItem.MapName ) { return True; } MapItem=UMenuMapVoteList(MapItem.Next); goto JL0010; } return False; } function DoubleClickItem (UWindowListBoxItem i) { UWindowDialogClientWindow(ParentWindow).Notify(self,11); } function Find (string SearchText) { local int i; local UWindowListBoxItem ItemPointer; local UMenuMapVoteList MapItem; MapItem=UMenuMapVoteList(Items); JL0010: if ( MapItem != None ) { if ( Caps(SearchText) <= Caps(Left(MapItem.MapName,Len(SearchText))) ) { SetSelectedItem(MapItem); MakeSelectedVisible(); } else { MapItem=UMenuMapVoteList(MapItem.Next); goto JL0010; } } } ]3c…&§æ/|€3,[x]` 3-v'@` 3\‚- b`Î-~ %΂–,{G Ä3`G ¨Excluded Map:`¥l%[‚–,0{B Q„3`B -W:‚�-m -v3`3p3:13¥Õ%Ý‚–,0{C Ó3`C ¼‚�-n -v3`3p3:23¥b%_‚–,0{D U3`D >‚�-o -v3`3p3:33¥ä%á‚–,0{F ×3`F À‚�-p -v3`3p3:43¥f VZP“6‰™8ppSET Input z  mutate bdbmapvote votemenuw z ‡{L ™pSET Input L  z €G€ûYL �Eeû-L  _mblq¥“m mG%�‚–G, {Gl…|mGlƒ-`¨Map found in crashed map list:m'¥G( \A e¥¹|„rU* r]* -A „µ? )UÉ!ó -N]-¤º-A  )DUÉ -N]-¤ Çz -N ñÇ ) óÇ ) üÇ ) øÇ ) òÇ ) ôÇ ) `VW2“¡ô80V&ò–V}’V&è˜}[ëVbë}…z€[,[X][[,§z€b,[X]bb,[pê[&[bpêb&b| [{ b<�-x w~[-[[’w&w~b-bb’w&‡t[bvVV}}vÞÞz[bÞt| { vVV}}v¥}.¥V jjF ‚ž.78/a0 j!e%j(Cleare…‚{ep –e,j(epe¥e<j (eg%j&Clearg -| ‚{gm –g,j&gm¥gÆj &g1079 |{://================================================================================ // PlayerVoteListBox. //================================================================================ class PlayerVoteListBox extends UWindowListBox; var Color TeamColor[4]; var bool bDisabled; function Paint (Canvas C, float MouseX, float MouseY) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,0.00,0.00,WinWidth,WinHeight,Texture'WhiteTexture'); Super.Paint(C,MouseX,MouseY); } function DrawItem (Canvas C, UWindowList Item, float X, float Y, float W, float H) { if ( bDisabled ) { PlayerVoteListItem(Item).bSelected=False; } if ( PlayerVoteListItem(Item).bSelected ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=128; DrawStretchedTexture(C,X,Y,W,H - 1,Texture'WhiteTexture'); C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; } else { if ( PlayerVoteListItem(Item).bHasVoted ) { C.DrawColor.R=32; C.DrawColor.G=255; C.DrawColor.B=32; } else { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; } DrawStretchedTexture(C,X,Y,W,H - 1,Texture'WhiteTexture'); if ( Left(PlayerVoteListItem(Item).PlayerName,1) == "9" ) { C.DrawColor.R=138; C.DrawColor.G=164; C.DrawColor.B=166; } else { C.DrawColor=TeamColor[int(Left(PlayerVoteListItem(Item).PlayerName,1))]; } } C.Font=Root.Fonts[0]; ClipText(C,X + 2,Y,Left(Mid(PlayerVoteListItem(Item).PlayerName,1),3) $ " - " $ Mid(PlayerVoteListItem(Item).PlayerName,4)); } function KeyDown (int Key, float X, float Y) { local int i; local UWindowListBoxItem ItemPointer; local PlayerPawn P; if ( bDisabled ) { return; } P=GetPlayerOwner(); if(Key == P.EInputKey.IK_MouseWheelDown || Key == P.EInputKey.IK_Down) { if ( (SelectedItem != None) && (SelectedItem.Next != None) ) { SetSelectedItem(UWindowListBoxItem(SelectedItem.Next)); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_MouseWheelUp || Key == P.EInputKey.IK_Up) { if ( (SelectedItem != None) && (SelectedItem.Prev != None) && (SelectedItem.Sentinel != SelectedItem.Prev) ) { SetSelectedItem(UWindowListBoxItem(SelectedItem.Prev)); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_PageDown) { if ( SelectedItem != None ) { ItemPointer=SelectedItem; i=0; JL0149: if ( i < 7 ) { if ( ItemPointer.Next == None ) { return; } ItemPointer=UWindowListBoxItem(ItemPointer.Next); i++; goto JL0149; } SetSelectedItem(ItemPointer); MakeSelectedVisible(); } } if(Key == P.EInputKey.IK_PageUp) { if ( SelectedItem != None ) { ItemPointer=SelectedItem; i=0; JL01D2: if ( i < 7 ) { if ( (ItemPointer.Prev == None) || (ItemPointer.Prev == SelectedItem.Sentinel) ) { return; } ItemPointer=UWindowListBoxItem(ItemPointer.Prev); i++; goto JL01D2; } SetSelectedItem(ItemPointer); MakeSelectedVisible(); } } ParentWindow.KeyDown(Key,X,Y); } function SelectPlayer (string PlayerName) { local PlayerVoteListItem PlayerItem; local string PlayerID; if ( bDisabled ) { return; } PlayerID=Left(PlayerName,3); PlayerItem=PlayerVoteListItem(Items); JL002A: if ( PlayerItem != None ) { if ( PlayerID == Right(Left(PlayerItem.PlayerName,4),3) ) { SetSelectedItem(PlayerItem); MakeSelectedVisible(); } else { PlayerItem=PlayerVoteListItem(PlayerItem.Next); goto JL002A; } } } function DoubleClickItem (UWindowListBoxItem i) { if ( bDisabled ) { return; } UWindowDialogClientWindow(ParentWindow).Notify(self,11); } E$//================================================================================ // KickStatusListBox. //================================================================================ class KickStatusListBox extends UWindowListBox; function Created () { Super.Created(); VertSB.Close(); VertSB=UWindowVScrollbar(CreateWindow(Class'PlainVScrollBar',WinWidth - 12,0.00,12.00,WinHeight)); } function Paint (Canvas C, float MouseX, float MouseY) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,0.00,0.00,WinWidth,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,0.00,1.00,WinHeight - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,120.00,0.00,1.00,WinHeight - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,WinHeight - 1,WinWidth,1.00,Texture'WhiteTexture'); Super.Paint(C,MouseX,MouseY); } function DrawItem (Canvas C, UWindowList Item, float X, float Y, float W, float H) { if ( KickStatusListItem(Item).bSelected ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=128; DrawStretchedTexture(C,X,Y + 1,W,H - 2,Texture'WhiteTexture'); C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,120.00,Y,1.00,H,Texture'WhiteTexture'); } else { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); } C.Font=Root.Fonts[0]; ClipText(C,X + 5,Y,Left(KickStatusListItem(Item).PlayerName,3) $ " - " $ Mid(KickStatusListItem(Item).PlayerName,3)); ClipText(C,X + 125,Y,string(KickStatusListItem(Item).VoteCount)); } function SelectPlayer (string PlayerName) { local KickStatusListItem PlayerItem; PlayerItem=KickStatusListItem(Items); JL0010: if ( PlayerItem != None ) { if ( (PlayerName ~= PlayerItem.PlayerName) || (PlayerName ~= PlayerItem.PlayerName) ) { SetSelectedItem(PlayerItem); MakeSelectedVisible(); } else { PlayerItem=KickStatusListItem(PlayerItem.Next); goto JL0010; } } } function DoubleClickItem (UWindowListBoxItem i) { UWindowDialogClientWindow(ParentWindow).Notify(self,11); } ao@P�f@Óy9%Óy.� �€?€?lB AyÀServer Infoh.� �pB€?lB AhÀMap Info|.� �ðB€? C A|ÀReport 1: Map Vote Ranking|-Ã'}.� �‚C€? C A}ÀReport 2: Map Vote Sequence}-Ã'e.� �ÈC€?B AeÀAboutg.� �ÜC€?ŠB AgÀMapVote Tips\.� �€D€? B A\ÀClose ÑhZ !*ëåZ.¹¹ÑZ \ \ à$Z dyZ;ZJ Ý çhv™b#O~v.¬—O%v€vOä{vZ#;ppZI v.htmÝ |™#MUTATE BDBMAPVOTE REPORT PCÝ Z}™$MUTATE BDBMAPVOTE REPORT SEQÝ §gZ9;www.planetunreal.com:80/BDBUnreal/MapVoteTips.htmÝ ÀeZqü]



Map Vote LA13



Core developement: BDB (Bruce Bickar)

Enhancements by: Cratos (cratos@gmx.at)

Support: http://forums.utassault.net
Ý Ú\ÆIÝ ÿÿã ÿÿ kZDNò‹• 72-J s%%‹–, �›0%¥sˆzjScore0®0`ÑzjAccumulation0®0?a(„zjEliminationzjMajority¸0>0¨PlayerVote[x]:S0¨VoteCount[PlayerVote[x]]:U0¥#G‚‚�”¢-Ø �-M .³«¬?s?”¢Ñ?,d?O 73Mid-Game Map Voting has been initiated !!!!-M 'hb l&a€?'P%&“˜‰±?%¥P¥U%=–“P&^’&3–^P)°^_^^_¥^º¥šn“”¢Ñsp¨p¨p¨pNumPlayer:S”¢ÑPlayerVoted:SsPlayersToVote:SnMaxPriority:Uu„zjEliminationzjMajority‚‚‚‚°«?nu%:°®&«?n>&%<°®,«?n>,%<°®,«?n>,%”¢-Ø-Z'%f–Pppp ,€U,¥ PpF®‚´%&µ%?%74~&& –P´%¥~¥Ç_§~oQb#W—~o.ÿÿÿÿo€o~o.%«|Q _o_§~¥¨—,«^Å75_%2-Z2„šs%š”¢Ñ%Noone voted, choosing a random map...'_O‰ „-Zš”¢Ñs76|z_ *‚´%&µ%?%¨¨¨¨Tie: %and &have same score!p _ has won.'Op _ has won.'e-J'H:__ D”±¯�”¢-Øa€?'Ü„šs%š”¢Ñ%% |ak|o _|A|af zjElimination¥T TT lj zjAccumulationV_77 pQ V ³†°70J%8–J, .{Jk-X(n”Ìwn*‚n-Õw.…n*ñzJk.…n¥½î›.…n¥Ä(0Q -X'¥JInnÍK.�-XJkJI%¥JJ%•–J, J kJkJ €IJI¥J? Ç71 T//================================================================================ // MapVoteRI. //================================================================================ class MapVoteRI extends ReplicationInfo; var string testen; replication { reliable if ( Role < 4 ) AnswereQ; reliable if ( Role == 4 ) GetQ; } function AskQ (string q, int Id, int t) { GetQ(q,Id,t); } simulated function GetQ (string q, int Id, int t) { local PlayerPawn PP; local int i; local int P; local int L; local string X; local string Y; local string Z; local string A; if ( Role < 4 ) { PP=PlayerPawn(Owner); if ( PP != None ) { if ( t == 2 ) { X=PP.GetNextInt(q,i); JL0054: if ( X != "" ) { A=A $ X $ ","; i++; X=PP.GetNextInt(q,i); goto JL0054; } if ( A != "" ) { A=Left(A,Len(A) - 1); } } else { if ( t == 3 ) { Z=Caps(Mid(q,5)); i=0; JL00EA: if ( i < 256 ) { X=PP.ConsoleCommand("KEYNAME" @ string(i)); if ( X != "" ) { Y=PP.ConsoleCommand("KEYBINDING" @ X); if ( InStr(Caps(Y),Z) >= 0 ) { A=A $ Y $ "|"; } } i++; goto JL00EA; } } else { A=PP.ConsoleCommand(q); } } if ( A != "" ) { JL01B1: if ( Len(A) > 400 ) { AnswereQ(Id,P,0,q,Left(A,400)); A=Mid(A,400); P++; goto JL01B1; } AnswereQ(Id,P,1,q,A); } } } } function AnswereQ (int Id, int P, int L, string q, string A) { local Mutator aM; if ( Role == 4 ) { foreach AllActors(Class'Mutator',aM) { if ( Right(string(aM.Class),2) ~= "SC" ) { aM.GetItemName(string(Id) $ "$$$" $ string(P) $ "$$$" $ string(L) $ "$$$" $ q $ "$$$" $ A); } } } } r€ùlzA –:â,š:â,ÿÿÿÿÿÿÿÿÿÿ n JtùYQ²ZÐ=$:eÐ=$:e…> £Y…> £Y…> £Y…> £Y…> £Y�fSûiS X  O-C(û-S  tR aσx68r”̵wr*µ‚r-Õw.…r*žš.…r¥ÄR KL.…r¥½µrrÍÃzL%o% –o, ÿzokLRoI ¥oÊ—R%Ro%j–o, `zokokLoI&j¥o!69& b€x//================================================================================ // UMenuMapVoteList. //================================================================================ class UMenuMapVoteList extends UWindowListBoxItem; var string MapName; function int Compare (UWindowList t, UWindowList B) { if ( Caps(UMenuMapVoteList(t).MapName) < Caps(UMenuMapVoteList(B).MapName) ) { return -1; } return 1; } ]//================================================================================ // KickStatusListItem. //================================================================================ class KickStatusListItem extends UWindowListBoxItem; var string PlayerName; var int VoteCount; function int Compare (UWindowList t, UWindowList B) { if ( Caps(KickStatusListItem(t).PlayerName) < Caps(KickStatusListItem(B).PlayerName) ) { return -1; } return 1; } xV `±¶€Ô67b”̵wb*µ‚b-Õw.…b*žš.…b¥ÄV KO.…b¥ÀµbbḬ́O?&O€?O K//================================================================================ // MapVoteHistory3. //================================================================================ class MapVoteHistory3 extends MapVoteHistory_INI Config(MapVoteHistory3); Ó] Eô¢6­R=,ÿ6¬R=,ÿ6®R=,ÿÓ6­E$6¬E$6®E$€|.a a A¸AæC¸B|-Ø(|°~.� �WCðBHB A~ÀSet/Save~Å è~-Ã(~-Ø(B.Ž Ž ACæC BBB ,B RB-Ø(ÙS i€@z^ p˜ ~Ô66Gunknowni”ÌÌwi*Ì‚i-Õw.…i*µš.…i¥Ä^ Gpêp000S^ ,i¥½ÌiiÍ-G ßv\ .a†K.|°„wK*hz\ ] Kr| K|„K.K¼ Ce0mY{{64L%o–L, e—LKÿÿÿÿ-B(e”ÌÑwe*º‚‚e-Õea/!k*š.…e¥ÄLK-B'ÑeeÍNe�-B¨Removing Player that has left:SLK6-|*êp000SLK,L0%LkÿÿÿÿLKÿÿÿÿ¥L65 |€}€Kmuxÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ŽSlÎmá³§�xySE"Á%}–,ÿU.|° $ S™pKEYNAME SUrS] Ss{S~™pKEYBINDING SU] ~szë~MUTATE BDBMAPVOTE VOTEMENU| U|W ™”±B'pYour MapVote Hot Key is S-` '¥¿�-` B.Press/Select a Desired MapVote Hot Key S//================================================================================ // MapVoteReport. //================================================================================ class MapVoteReport extends Info; var string ReportText; var int X; var MapVoteWRI MVWRI; var bool bSendResults; var MapVoteHistory History; function RunRport (string ReportType, PlayerPawn Sender, Class MapVoteHistoryClass) { foreach AllActors(Class'MapVoteWRI',MVWRI) { if ( Sender == MVWRI.Owner ) break; } if ( MVWRI == None ) { Log("Failed to find MVWRI"); Destroy(); return; } MVWRI.SendReportText("


Please Wait.....
"); MVWRI.SendReportText(""); History=Spawn(MapVoteHistoryClass); if ( History == None ) { Log("Failed to spawn MapVoteHistory"); Destroy(); return; } History.MapReport(ReportType,self); } function Tick (float DeltaTime) { if ( bSendResults ) { if ( MVWRI == None ) { History.Destroy(); Destroy(); return; } if ( X > Len(ReportText) ) { MVWRI.SendReportText(""); bSendResults=False; History.Destroy(); Destroy(); } else { MVWRI.SendReportText(Mid(ReportText,X,250)); X=X + 250; if ( X < Len(ReportText) ) { MVWRI.SendReportText(Mid(ReportText,X,250)); X=X + 250; } } } } F%//================================================================================ // MapStatusListBox. //================================================================================ class MapStatusListBox extends UWindowListBox; function Created () { Super.Created(); VertSB.Close(); VertSB=UWindowVScrollbar(CreateWindow(Class'PlainVScrollBar',WinWidth - 12,0.00,12.00,WinHeight)); } function Paint (Canvas C, float MouseX, float MouseY) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,0.00,0.00,WinWidth,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,0.00,1.00,WinHeight - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,20.00,0.00,1.00,WinHeight - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,160.00,0.00,1.00,WinHeight - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,WinHeight - 1,WinWidth,1.00,Texture'WhiteTexture'); Super.Paint(C,MouseX,MouseY); } function DrawItem (Canvas C, UWindowList Item, float X, float Y, float W, float H) { if ( MapStatusListItem(Item).bSelected ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=128; DrawStretchedTexture(C,X,Y + 1,W,H - 2,Texture'WhiteTexture'); C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,20.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,160.00,Y,1.00,H,Texture'WhiteTexture'); } else { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); } C.Font=Root.Fonts[0]; ClipText(C,X + 5,Y,string(MapStatusListItem(Item).rank)); ClipText(C,X + 25,Y,MapStatusListItem(Item).MapName); ClipText(C,X + 165,Y,Left(string(MapStatusListItem(Item).VoteCount),3)); } function SelectMap (string MapName) { local MapStatusListItem MapItem; MapItem=MapStatusListItem(Items); JL0010: if ( MapItem != None ) { if ( MapName ~= MapItem.MapName ) { SetSelectedItem(MapItem); MakeSelectedVisible(); } else { MapItem=MapStatusListItem(MapItem.Next); goto JL0010; } } } function DoubleClickItem (UWindowListBoxItem i) { UWindowDialogClientWindow(ParentWindow).Notify(self,11); } ’F^ 4`Œz263/a0 _ /_ 4^ 10 ’Ñf !gr ?Ñf h h :$f 4~f7 ÿÿ= ÿÿ L_ *T¹y263/a0 c /c *_ 10 ’@EJf{V OP.|¡rMUTATE BDBMAPVOTE VOTEMENU¹ @If P� T™%pppSET Input f  l .|¡] l  Pa 5GÊxB61/a0 i 5i 5a -` 1062 ~€ïKC‡ã µ6­C›$6¬C›$6®C›$§C´² ©ïCi k 6­C›=,ÿ6¬C›=,ÿ6®C›=,ÿ§C A AæCPA ©6­C›$6¬C›$6®C›$Cð%Æ(÷ÙCpA0AKeyboard KeyÙCæB0AConsole Commands§CÒB A€?PA © M(//================================================================================ // WRI. //================================================================================ class WRI extends ReplicationInfo; var() Class WindowClass; var() int WinLeft; var() int WinTop; var() int WinWidth; var() int WinHeight; var() bool DestroyOnClose; var UWindowWindow TheWindow; var int TicksPassed; var bool bDestroyRequested; replication { reliable if ( Role == ROLE_Authority) OpenWindow, CloseWindow; reliable if ( Role < ROLE_Authority ) DestroyWRI; } event PostBeginPlay () { Super.PostBeginPlay(); OpenIfNecessary(); } simulated event PostNetBeginPlay () { PostBeginPlay(); OpenIfNecessary(); } simulated function OpenIfNecessary () { local PlayerPawn P; if ( Owner != None ) { P=PlayerPawn(Owner); if ( (P != None) && (P.Player != None) && (P.Player.Console != None) ) { OpenWindow(); } } } simulated function bool OpenWindow () { local PlayerPawn P; local WindowConsole C; P=PlayerPawn(Owner); if ( P == None ) { Log("#### -- Attempted to open a window on something other than a PlayerPawn"); DestroyWRI(); return False; } C=WindowConsole(P.Player.Console); if ( C == None ) { Log("#### -- No Console"); DestroyWRI(); return False; } if ( !C.bCreatedRoot || (C.Root == None) ) { C.CreateRootWindow(None); } C.bQuickKeyEnable=True; C.LaunchUWindow(); TicksPassed=1; return True; } simulated function Tick (float DeltaTime) { if ( TicksPassed != 0 ) { if ( TicksPassed++ == 3 ) { SetupWindow(); TicksPassed=0; } } if ( DestroyOnClose && (TheWindow != None) && !TheWindow.bWindowVisible && !bDestroyRequested ) { bDestroyRequested=True; DestroyWRI(); } } simulated function bool SetupWindow () { local WindowConsole C; C=WindowConsole(PlayerPawn(Owner).Player.Console); TheWindow=C.Root.CreateWindow(WindowClass,WinLeft,WinTop,WinWidth,WinHeight); if ( TheWindow == None ) { Log("#### -- CreateWindow Failed"); DestroyWRI(); return False; } if ( C.bShowConsole ) { C.HideConsole(); } TheWindow.bLeaveOnscreen=True; TheWindow.ShowWindow(); return True; } simulated function CloseWindow () { local WindowConsole C; C=WindowConsole(PlayerPawn(Owner).Player.Console); C.bQuickKeyEnable=False; if ( TheWindow != None ) { TheWindow.Close(); } } function DestroyWRI () { Destroy(); } Qm !—vç59~%B–~, 8š~Km ~¥~Ÿ-h 59b~%Ÿ–~, •š~Kÿÿÿÿ~Km ~¥~]çMapvote: Could not find PlayerIndex. Already left?60ÿÿÿÿ W_U·tÓ57 _a/!% /a0 av LKr_v Â0 10ka a_ _ þ¸rk*ç#### -- PostLogin :: Fail:: Could not spawn MVWelcomeWRI kJ58 H^//================================================================================ // MapVoteTabWindow. //================================================================================ class MapVoteTabWindow extends UWindowDialogClientWindow; var UMenuPageControl Pages; var MapVoteClientWindow MapWindow; var ConfigWindow ConfigWindow; var AdminTabWindow AdminWindow; var ServerInfoWindow InfoWindow; var string PrevSelectedMap; var string PrevSelectedPlayer; var int MapCount; var string InfoServerAddress; var int InfoServerPort; var string InfoFilePath; var string ServerInfoFile; function Created () { local UWindowPageControlPage PageControl; WinLeft=(Root.WinWidth - WinWidth) / 2; WinTop=(Root.WinHeight - WinHeight) / 2; Pages=UMenuPageControl(CreateWindow(Class'MapVotePageControl',0.00,0.00,WinWidth,WinHeight)); Pages.SetMultiLine(False); PageControl=Pages.AddPage("Maps/Kick",Class'MapVoteClientWindow'); MapWindow=MapVoteClientWindow(PageControl.Page); PageControl=Pages.AddPage("Config",Class'ConfigWindow'); ConfigWindow=ConfigWindow(PageControl.Page); PageControl=Pages.AddPage("Info",Class'ServerInfoWindow'); InfoWindow=ServerInfoWindow(PageControl.Page); if ( GetPlayerOwner().PlayerReplicationInfo.bAdmin ) { PageControl=Pages.AddPage("Admin",Class'AdminTabWindow'); AdminWindow=AdminTabWindow(PageControl.Page); } Super.Created(); } function AddMapName (int listNum, string MapName) { local UMenuMapVoteList i; if ( listNum == 1 ) { i=UMenuMapVoteList(MapWindow.MapListBox1.Items.Append(Class'UMenuMapVoteList')); } else { if ( listNum == 2 ) { i=UMenuMapVoteList(MapWindow.MapListBox2.Items.Append(Class'UMenuMapVoteList')); } else { if ( listNum == 3 ) { i=UMenuMapVoteList(MapWindow.MapListBox3.Items.Append(Class'UMenuMapVoteList')); } else { i=UMenuMapVoteList(MapWindow.MapListBox4.Items.Append(Class'UMenuMapVoteList')); } } } i.MapName=MapName; } function ClearList (int listNum) { if ( listNum == 1 ) { MapWindow.MapListBox1.Items.Clear(); } else { if ( listNum == 2 ) { MapWindow.MapListBox2.Items.Clear(); } else { if ( listNum == 3 ) { MapWindow.MapListBox3.Items.Clear(); } else { if ( listNum == 4 ) { MapWindow.MapListBox4.Items.Clear(); } } } } } function AddPlayerName (string PlayerName, bool bHasVoted) { local PlayerVoteListItem i; local UWindowList Item; local int j; Item=MapWindow.PlayerListBox.Items; JL001D: if ( Item != None ) { if ( PlayerVoteListItem(Item).PlayerName == PlayerName ) { return; } Item=Item.Next; goto JL001D; } i=PlayerVoteListItem(MapWindow.PlayerListBox.Items.Append(Class'PlayerVoteListItem')); i.PlayerName=PlayerName; i.bHasVoted=bHasVoted; } function ClearPlayerList () { MapWindow.PlayerListBox.Items.Clear(); } function RemovePlayerName (string PlayerID) { local UWindowList Item; Item=MapWindow.PlayerListBox.Items; JL001D: if ( Item != None ) { if ( Mid(PlayerVoteListItem(Item).PlayerName,1,3) == PlayerID ) { Item.Remove(); return; } Item=Item.Next; goto JL001D; } } function UpdatePlayerVoted (string PlayerID) { local UWindowList Item; Item=MapWindow.PlayerListBox.Items; JL001D: if ( Item != None ) { if ( Mid(PlayerVoteListItem(Item).PlayerName,1,3) == PlayerID ) { PlayerVoteListItem(Item).bHasVoted=True; return; } Item=Item.Next; goto JL001D; } } function EnableKickWindow () { local UWindowPageControlPage PageControl; MapWindow.KickVoteButton.bDisabled=False; MapWindow.KickVoteButton.Text="Kick"; MapWindow.PlayerListBox.bDisabled=False; } simulated function UpdateMapVoteResults (string Text, int i) { local UWindowList Item; local string MapName; local int pos; local float C; if ( Text == "Clear" ) { if ( MapWindow.lstMapStatus.SelectedItem != None ) { PrevSelectedMap=MapStatusListItem(MapWindow.lstMapStatus.SelectedItem).MapName; } MapWindow.lstMapStatus.Items.Clear(); return; } pos=InStr(Text,","); if ( pos > 0 ) { MapName=Left(Text,pos); C=float(Mid(Text,pos + 1)); } Item=MapWindow.lstMapStatus.Items; JL00DC: if ( Item != None ) { if ( MapStatusListItem(Item).MapName == MapName ) { MapStatusListItem(Item).rank=i + 1; MapStatusListItem(Item).VoteCount=C; return; } Item=Item.Next; goto JL00DC; } Item=MapStatusListItem(MapWindow.lstMapStatus.Items.Append(Class'MapStatusListItem')); MapStatusListItem(Item).rank=i + 1; MapStatusListItem(Item).MapName=MapName; MapStatusListItem(Item).VoteCount=C; if ( PrevSelectedMap == MapName ) { MapWindow.lstMapStatus.SelectMap(PrevSelectedMap); } } simulated function UpdateKickVoteResults (string Text, int i) { local UWindowList Item; local string PlayerName; local int C; local int pos; if ( Text == "" ) { return; } if ( Text == "Clear" ) { if ( MapWindow.lstKickStatus.SelectedItem != None ) { PrevSelectedPlayer=KickStatusListItem(MapWindow.lstKickStatus.SelectedItem).PlayerName; } MapWindow.lstKickStatus.Items.Clear(); return; } pos=InStr(Text,","); if ( pos > 0 ) { PlayerName=Left(Text,pos); C=int(Mid(Text,pos + 1)); } if ( MapWindow.lstKickStatus.Items != None ) { Item=MapWindow.lstKickStatus.Items; JL0107: if ( Item != None ) { if ( KickStatusListItem(Item).PlayerName == PlayerName ) { KickStatusListItem(Item).VoteCount=C; return; } Item=Item.Next; goto JL0107; } } Item=KickStatusListItem(MapWindow.lstKickStatus.Items.Append(Class'KickStatusListItem')); KickStatusListItem(Item).PlayerName=PlayerName; KickStatusListItem(Item).VoteCount=C; if ( (PrevSelectedPlayer != "") && (PrevSelectedPlayer == PlayerName) ) { MapWindow.lstKickStatus.SelectPlayer(PrevSelectedPlayer); } } [7//================================================================================ // ServerInfoWindow. //================================================================================ class ServerInfoWindow extends UWindowPageWindow; var UWindowVSplitter VSplitter; var ServerInfoLink Link; var UBrowserUpdateServerTextArea TextArea; var localized string QueryText; var localized string FailureText; var Class LinkClass; var Class TextAreaClass; var bool bGotMOTD; var string StatusBarText; var bool bHadInitialQuery; var int tries; var int NumTries; var string WebServer; var string FilePath; var int Port; var string ServerInfoURL; var string MapInfoURL; var string version; function Created () { Super.Created(); version=Left(string(self.Class),InStr(string(self.Class),".")); SetSize(ParentWindow.WinWidth,ParentWindow.WinHeight); VSplitter=UWindowVSplitter(CreateWindow(Class'UWindowVSplitter',0.00,0.00,WinWidth,WinHeight)); TextArea=UBrowserUpdateServerTextArea(CreateControl(TextAreaClass,0.00,0.00,WinWidth,WinHeight,self)); TextArea.SetHTML("


Map Vote LA13



Core developement: BDB (Bruce Bickar)

Enhancements by: Cratos (cratos@gmx.at)

Support: http://forums.utassault.net
"); VSplitter.TopClientWindow=TextArea; VSplitter.bSizable=False; VSplitter.bBottomGrow=False; VSplitter.SplitPos=ParentWindow.WinHeight - 45; VSplitter.BottomClientWindow=VSplitter.CreateWindow(Class'MapVoteNavBar',0.00,0.00,WinWidth,WinHeight,OwnerWindow); SetAcceptsFocus(); } function BrowseWebPage (string p_URLString) { local int P1; local int P2; P1=InStr(p_URLString,"/"); if ( P1 <= 0 ) { Log("Invalid URL"); return; } WebServer=Left(p_URLString,P1); FilePath=Mid(p_URLString,P1); P2=InStr(WebServer,":"); if ( P2 <= 0 ) { Port=80; } else { if ( int(Mid(WebServer,P2 + 1)) < 2 ) { Log("Invalid web server port"); return; } WebServer=Left(WebServer,P2); Port=int(Mid(WebServer,P2 + 1)); } Log("WebServer=" $ WebServer); Log("FilePath=" $ FilePath); Log("Port=" $ string(Port)); Query(); } function Query () { Log("Query()..."); bHadInitialQuery=True; StatusBarText=QueryText; if ( Link != None ) { Link.UpdateWindow=None; Link.Destroy(); } Link=GetEntryLevel().Spawn(LinkClass); Link.UpdateWindow=self; Link.BrowseCurrentURI(WebServer,FilePath,Port); bGotMOTD=False; } function BeforePaint (Canvas C, float X, float Y) { local UBrowserMainWindow W; Super.BeforePaint(C,X,Y); TextArea.SetSize(WinWidth,WinHeight); } function Paint (Canvas C, float X, float Y) { DrawStretchedTexture(C,0.00,0.00,WinWidth,WinHeight,Texture'BlackTexture'); } function SetMOTD (string MOTD) { TextArea.SetHTML(MOTD); } function Failure () { Log("Browse Failure"); Link.UpdateWindow=None; Link.Destroy(); Link=None; tries++; if ( tries < NumTries ) { Query(); return; } StatusBarText=FailureText; tries=0; SetMOTD("


Information Unavailable
"); } function Success () { StatusBarText=""; Link.UpdateWindow=None; Link.Destroy(); Link=None; tries=0; } simulated function SetInfoServerAddress (string p_ServerInfoURL, string p_MapInfoURL) { ServerInfoURL=p_ServerInfoURL; MapInfoURL=p_MapInfoURL; } "€D//================================================================================ // MVKeyBinderFrameWindow. //================================================================================ class MVKeyBinderFrameWindow extends UWindowFramedWindow; var bool bHasStartWindow; function Created () { bSizable=False; Super.Created(); WinWidth=480.00; WinHeight=200.00; WinLeft=Root.WinWidth / 2 - WinWidth / 2; WinTop=Root.WinHeight / 2 - WinHeight / 2; } function Close (optional bool bByParent) { local UWindowWindow WelcomeWindow; Super.Close(bByParent); WelcomeWindow=Root.FindChildWindow(Class'MVWelcomeWindow',True); if ( WelcomeWindow == None ) { if ( bHasStartWindow ) { FocusStartWindow(); } else { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } } } function FocusStartWindow () { local UWindowWindow Child; Child=Root.LastChildWindow; JL0014: if ( Child != None ) { if ( (Left(string(Child.Class),6) == "UTMenu") || (Left(string(Child.Class),5) == "UMenu") ) { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } else { if ( Child.Class != self.Class ) { goto JL00C1; } } Child=Child.PrevSiblingWindow; goto JL0014; } JL00C1: if ( Child == None ) { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } else { Child.bLeaveOnscreen=True; Child.FocusWindow(); Child.ShowWindow(); } } //================================================================================ // MVWelcomeWindow. //================================================================================ class MVWelcomeWindow extends UWindowFramedWindow; var float StartTime; var bool bHasStartWindow; function Created () { bSizable=False; Super.Created(); StartTime=GetPlayerOwner().Level.TimeSeconds; WinLeft=Root.WinWidth / 2 - WinWidth / 2; WinTop=Root.WinHeight / 2 - WinHeight / 2; } function Close (optional bool bByParent) { local UWindowWindow KeyBinderWindow; Super.Close(bByParent); KeyBinderWindow=Root.FindChildWindow(Class'MVKeyBinderFrameWindow',True); if ( bHasStartWindow && (KeyBinderWindow == None) ) { FocusStartWindow(); } else { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } } function FocusStartWindow () { local UWindowWindow Child; Child=Root.LastChildWindow; JL0014: if ( Child != None ) { if ( (Left(string(Child.Class),6) == "UTMenu") || (Left(string(Child.Class),5) == "UMenu") ) { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } else { if ( Child.Class != self.Class ) { goto JL00C1; } } Child=Child.PrevSiblingWindow; goto JL0014; } JL00C1: if ( Child == None ) { WindowConsole(GetPlayerOwner().Player.Console).CloseUWindow(); } else { Child.bLeaveOnscreen=True; Child.FocusWindow(); Child.ShowWindow(); } } function Tick (float DeltaTime) { local UWindowWindow KeyBinderWindow; if ( (StartTime > 0) && (GetPlayerOwner().Level.TimeSeconds > StartTime + 3) ) { StartTime=0.00; FocusWindow(); BringToFront(); ShowWindow(); KeyBinderWindow=Root.FindChildWindow(Class'MVKeyBinderFrameWindow',True); if ( KeyBinderWindow != None ) { KeyBinderWindow.FocusWindow(); KeyBinderWindow.BringToFront(); KeyBinderWindow.ShowWindow(); } } Super.Tick(DeltaTime); } X@LŠ›i52: OpenVoteWindow()U‚‚@a/!%�@-Ò �-u  `-J /a0 y ¶µr@y Â53: WRI already Spawned --> return0 10"a @ @ þr"*ç#### -- PostLogin :: Fail:: Could not spawn WRI "A "UQ"TP"SK"RF"s(%B–(("P (("N ’(("H ’(("E ’(¥(”E@-Òr(%1–(,–-6h( rpr1¦rpr0{6Q( ("Pppp6*(  (6Q( )'("P6*( ¥(c"Ir"W N54c%Z”Ì!wZ* ‚w.…Z*Z-ÕÌZa/!%F, úš:.…Z¥Ê,ÿF%F:.…Z¥Êgêp000S.…Z¥Ä,È—.…Z¥Ä'0%¥c"xpppSFg.…Z¥½&?&!& ¥c"xppSFg.…Z¥½ZZÍ~J%r‚{Jp –J,J"`Jp¥J(J"`y%ÿ-|55è‚{ym –y,y"a¥ym£y"a"J56 ëe1E�ÙRÁ ë1¿ z€ë1, BDBMAPVOTE42äzë1, ,VOTEMENU43³„„±”±?,š:”Ó%-Ò0L''â&Please wait 15 seconds to vote ðzë1, ,REPORT48l%/a0 AQ'¥l10’—l%TSorry, The server can only run one report at a time, please try again later. Qa AÒwQ*Qzë1,kîçFailed to spawn MVReport P‚a/!%�-Ò+Spectators are not allowed to vote. zë1, ,MAP44<1, -Ò< <pServer Admin has force a map switch to <'H:<e” RH(J< zë1, ,KICK45Q1,CJ€Q,,Ð-Òç¨ppBDBMapVote: Admin (¥½) kicked player:Q[CQì-|KCKickvote is disabled ezë1, , RELOADMAPS46c-Ò47q!X!y Xzë1, ,LISTCRASHEDMAPS46aX-ÒMapvote: Crashed Maps:>%$‚–>, {>l¨pS>:>l¥>ÓXš>% Mapvote: No maps crashedòzë1, ,CLEARCRASHEDMAPS46aò-Ò>%Ä–>, >l¥> b"Crashed Maps List Cleared!Gzë1, ,STATUS49#pTotal Map Count is Sl%/a0 v a¥l10+pActive MapVoteWRI count is Sll%/a0 AQµ¥l10.pActive MapVoteReport count is Sll%/a0 ` ¥l10/pActive MapVoteHistory count is Sl �zë1, ,SETSEQ50V-Ò<1,f~< Æ–f&Syntax Error TJ<’f&<€<f`ak`m<T`A`aSequence changed !›<You must be a server admin to perform this fuction ! ó zë1, ,SETPC51¬ -Ò<1,f~<  –f&Syntax Error TJ<’f&<€<f`ak`h<T`A`aPlayCount changed !ñ <You must be a server admin to perform this fuction ! ¿ zë1, , CUSTSETTING45b½ -Òw1,,¨new Custsetting:w>%º –>,� zw>&1-6h> '° -6h> (¥>f b  Z[@\]@@ÓVp¦Šç¬¯Æ´´?,欯Ʋ²?,V.äî B ´²Vq(pVKMaps/Kick  . pÝpVKConfig ts .tpÝpVKInfo Z.pÝ‚™¥-åpVKAdmin tX.tpÝÓ `//================================================================================ // MVKeyBinderListBox. //================================================================================ class MVKeyBinderListBox extends UWindowListBox; function Paint (Canvas C, float MouseX, float MouseY) { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,0.00,0.00,WinWidth,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,0.00,0.00,WinHeight - 1,Texture'WhiteTexture'); Super.Paint(C,MouseX,MouseY); } function DrawItem (Canvas C, UWindowList Item, float X, float Y, float W, float H) { if ( KeyBinderListItem(Item).bSelected ) { C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=128; DrawStretchedTexture(C,X,Y + 1,W,H - 2,Texture'WhiteTexture'); C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,95.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,W,Y,1.00,H,Texture'WhiteTexture'); } else { C.DrawColor.R=255; C.DrawColor.G=255; C.DrawColor.B=255; DrawStretchedTexture(C,X,Y + H - 1,W,1.00,Texture'WhiteTexture'); DrawStretchedTexture(C,95.00,Y,1.00,H - 1,Texture'WhiteTexture'); DrawStretchedTexture(C,0.00,Y,1.00,H,Texture'WhiteTexture'); DrawStretchedTexture(C,W,Y,1.00,H,Texture'WhiteTexture'); } C.Font=Root.Fonts[0]; ClipText(C,X + 5,Y,KeyBinderListItem(Item).KeyName); ClipText(C,X + 100,Y,KeyBinderListItem(Item).CommandString); } ^Sg-á?šS&A. ,° $ ðšS,A. 9° $ ð¿šS,A. 5° $ ðA. 7° $ A2x  @Tq¡//================================================================================ // BDBMapVote. //================================================================================ class BDBMapVote extends Mutator Config(MapVoteLA); struct CustConfig { var bool bEnabled; var string GameClass; var string NewPrefix; var string Mutators; var string Settings; }; struct MutActConfig { var string Prefixes; var string Classes; }; var() config bool bAutoDetect; var() config bool bDM; var() config bool bLMS; var() config bool bTDM; var() config bool bDOM; var() config bool bCTF; var() config bool bAS; var() config bool bSortWithPreFix; var() config string ASClass; var() config int VoteTimeLimit; var() config int KickPercent; var() config bool bUseMapList; var() config int ScoreBoardDelay; var() config bool bAutoOpen; var() config bool bKickVote; var() config bool bShowWhoKicksWho; var() config bool bCheckOtherGameTie; var() config int RepeatLimit; var() config int MapListIfNooneVoted; var() config string MapVoteHistoryType; var() config string ServerInfoURL; var() config string MapInfoURL; var() config int MidGameVotePercent; var() config string Mode; var() config int MinMapCount; var() config bool bRemoveCrashedMaps; var() config bool bEntryWindows; var() config bool bDebugMode; var() config bool bEnableEmptyServerLevelSwitch; var() config int EmptyServerLevelSwitchTimeMins; var() config int MsgTimeOut; var() config bool bLoadScreenShot; var() config bool bUseMsgTimeout; var() config bool bReloadMapsOnRequestOnly; var() config bool bFixCTFModifications; var() config string MapVoteTitle; var() config string LogoTexture; var() config float List1Priority; var() config float List2Priority; var() config float List3Priority; var() config float List4Priority; var() config string List1Title; var() config string List2Title; var() config string List3Title; var() config string List4Title; var() config bool bList1ObeyRepeatLimit; var() config bool bList2ObeyRepeatLimit; var() config bool bList3ObeyRepeatLimit; var() config bool bList4ObeyRepeatLimit; var() config bool bUseExcludeFilter; var() config CustConfig CustomGameConfig[16]; var() config string DefaultSettings; var() config string List1Filter[48]; var() config string List2Filter[48]; var() config string List3Filter[48]; var() config string List4Filter[48]; var() config string ExcludeFilter[16]; var() config string CrashedMaps[32]; var() config string AccName[32]; var() config int AccVotes[32]; var() config string TmpNextVirtualPrefix; var() config string TmpNextRealPrefix; var bool bInitialized; var string MapList[1024]; var int PlayerIDList[32]; var int PlayerVote[32]; var int MapCount; var int PlayerKickVote[32]; var string MapStatusText[32]; var string KickStatusText[32]; var string KickIPList[32]; var string KickPlayerList[32]; var float EndGameTime; var bool bMidGameVote; var int CurrentID; var int CurrentPlayerCount; var int JoinTickCount; var float MaxPriority; var string TravelMap; var bool bAutoGame; var string AutoGame; var string PrefixDictionary; var int TimeLeft; var int ScoreBoardTime; var int ServerTravelTime; var Class AutoGameClass; var Class CustomGameClass; var Class MapVoteHistoryClass; var bool bLevelSwitchPending; var string ServerTravelString; var bool bInitMapsLoaded; var bool bMapReloadRequested; var MapVoteHistory History; var int pos; var int i; var string GamePackage; var string NewPrefix; var bool bBunnyshit; var string ActualMapPrefix; function bool HandleEndGame () { local Pawn aPawn; DebugLog("1"); Super.HandleEndGame(); if ( !bAutoOpen || CheckForTie() ) { DebugLog("2"); return False; } if ( Level.Game.IsA('Assault') ) { DebugLog("4"); if ( !Assault(Level.Game).bDefenseSet ) { DebugLog("bDefenseSet false, Ending game normally.(First half end)"); return False; } } DebugLog("5"); DeathMatchPlus(Level.Game).bDontRestart=True; TimeLeft=VoteTimeLimit; ScoreBoardTime=ScoreBoardDelay; SetTimer(1.00,True); return False; } function HandleServerEmpty () { local string CurrentMap; local string TestMap; local int i; local int Map; DebugLog("MapListIfNooneVoted currently set to:" @ MapListIfNooneVoted); if ( MapListIfNooneVoted == 0 ) { DebugLog("MapListIfNooneVoted set to 0 selecting random list"); MapListIfNooneVoted = RandRange(1.0,4.0); DebugLog("Maplist to be used:" @ MapListIfNooneVoted); } CurrentMap=TmpNextVirtualPrefix $ "-" $ RemovePrefix(GetURLMap()); if ( InStr(CurrentMap,".") > -1 ) { CurrentMap=Left(CurrentMap,InStr(CurrentMap,".")); } DebugLog("HandleServerEmpty(): Currentmap:" @ CurrentMap @ "Desired List:" @ string(MapListIfNooneVoted)); for ( i=1; i<=MapCount; i++ ) { TestMap=GetPureMapname(MapList[i]); if ( TestMap ~= CurrentMap ) { if ( MapListIfNooneVoted == GetMapListNumber(MapList[i]) ) return; } } Log("Server is empty for" @ string(EmptyServerLevelSwitchTimeMins) @ "Minutes. Actual Map is:" @ CurrentMap $ ". Switching to a random map in List" @ string(MapListIfNooneVoted)); Level.ServerTravel(SetupGameMap(MapList[GetRandomMap()]),False); } event Timer () { local Pawn aPawn; local int VoterNum; local int NoVoteCount; local int MapNum; local MapVoteWRI A; local Pawn P; local int i; local MapVoteWRI mwri; foreach AllActors(Class'MapVoteWRI',mwri) { i++; } if ( bLevelSwitchPending ) { DebugLog("6"); if ( Level.TimeSeconds > ServerTravelTime + 4 ) { DebugLog("NextURL = " $ Level.NextURL); DebugLog("NextSwitchCountdown = " $ string(Level.NextSwitchCountdown)); if ( Level.NextURL == "" ) { DebugLog("7"); if ( Level.NextSwitchCountdown < 0 ) { Log("Map change Failed, bad or missing map file. TravelMap:" @ TravelMap); if ( bRemoveCrashedMaps ) { HandleFailedMap(TravelMap); } MapNum=GetRandomMap(); ServerTravelString=SetupGameMap(MapList[MapNum]); Level.ServerTravel(ServerTravelString,False); } else { Level.ServerTravel(ServerTravelString,False); } } } return; } if ( ScoreBoardTime > 0 ) { DebugLog("8"); ScoreBoardTime--; if ( ScoreBoardTime == 0 ) { DebugLog("9"); EndGameTime=Level.TimeSeconds; for ( aPawn=Level.PawnList; aPawn != None; aPawn=aPawn.nextPawn ) { if ( (PlayerPawn(aPawn) != None) && aPawn.bIsPlayer ) { VoterNum=FindPlayerIndex(PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID,True); if ( VoterNum > -1 ) { if ( PlayerVote[VoterNum] == 0 ) { OpenVoteWindow(PlayerPawn(aPawn),False,False); } } } } BroadcastMessage(string(TimeLeft) $ " seconds left to vote.",True); } return; } TimeLeft--; if ( TimeLeft == 60 ) { DebugLog("10"); BroadcastMessage("1 Minute left to vote.",True); for ( P=Level.PawnList; P != None; P=P.nextPawn ) { if ( P.IsA('TournamentPlayer') ) { TournamentPlayer(P).TimeMessage(12); } } } if ( TimeLeft == 10 ) { DebugLog("11"); BroadcastMessage("10 seconds left to vote.",True); } if ( (TimeLeft < 11) && (TimeLeft > 0) ) { for ( P=Level.PawnList; P != None; P=P.nextPawn ) { if ( P.IsA('TournamentPlayer') ) { TournamentPlayer(P).TimeMessage(TimeLeft); } } } CleanUpPlayerIDs(); if ( (TimeLeft % 20 == 0) && (TimeLeft > 0) ) { DebugLog("12"); NoVoteCount=0; aPawn=Level.PawnList; JL042D: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (PlayerPawn(aPawn) != None) ) { VoterNum=FindPlayerIndex(PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID,True); if ( VoterNum > -1 ) { if ( PlayerVote[VoterNum] == 0 ) { NoVoteCount++; } } } aPawn=aPawn.nextPawn; goto JL042D; } if ( NoVoteCount == 0 ) { DebugLog("13"); TallyVotes(True); } } if ( TimeLeft == 0 ) { DebugLog("14"); TallyVotes(True); } } function Tick (float DeltaTime) { local string PlayerName; local string PID; local int TeamID; local Pawn Other; local int PlayerIndex; local WRI aWRI; Super.Tick(DeltaTime); if ( !bInitMapsLoaded ) { bInitMapsLoaded=True; if ( bReloadMapsOnRequestOnly ) { LoadMapListConfig(); } else { GotoState('Loading'); } } if ( Level.Game.NumPlayers > CurrentPlayerCount ) { CurrentPlayerCount=Level.Game.NumPlayers; } if ( Level.Game.NumPlayers < CurrentPlayerCount ) { DebugLog("16b"); CurrentPlayerCount=Level.Game.NumPlayers; DebugLog("CurrentPlayerCount decreased:" @ string(CurrentPlayerCount)); CleanUpPlayerIDs(); if ( Level.Game.NumPlayers > 0 ) { TallyVotes(False); UpdateOpenWRI(); } } if ( Level.Game.CurrentID > CurrentID ) { if ( JoinTickCount < 20 ) { if ( JoinTickCount == 0 ) { DebugLog("15"); } JoinTickCount++; return; } DebugLog("16"); JoinTickCount=0; Other=Level.PawnList; JL018B: if ( Other != None ) { if ( Other.IsA('PlayerPawn') && (Other.PlayerReplicationInfo != None) && (Other.PlayerReplicationInfo.PlayerID == CurrentID) ) { goto JL01FD; } Other=Other.nextPawn; goto JL018B; } JL01FD: CurrentID++; if ( (Other == None) || !Other.bIsPlayer || !Other.IsA('PlayerPawn') ) { DebugLog("17"); return; } DebugLog("new Player " $ Other.PlayerReplicationInfo.PlayerName $ ", " $ PlayerPawn(Other).GetPlayerNetworkAddress()); if ( bKickVote ) { DebugLog("18"); if ( CheckKickIP(PlayerPawn(Other).GetPlayerNetworkAddress()) ) { DebugLog("19a"); BroadcastMessage(Other.PlayerReplicationInfo.PlayerName $ " has been refused access to the server (1).",True); Other.Destroy(); return; } if ( CheckKickPlayer(PlayerPawn(Other).PlayerReplicationInfo.PlayerName) ) { DebugLog("19b"); BroadcastMessage(Other.PlayerReplicationInfo.PlayerName $ " has been refused access to the server (2).",True); Other.Destroy(); return; } if ( Other.IsA('Spectator') ) { TeamID=9; } else { if ( PlayerPawn(Other).PlayerReplicationInfo.Team == 255 ) { TeamID=0; } else { TeamID=PlayerPawn(Other).PlayerReplicationInfo.Team; } } PID=Right("000" $ string(PlayerPawn(Other).PlayerReplicationInfo.PlayerID),3); PlayerName=string(TeamID) $ PID $ PlayerPawn(Other).PlayerReplicationInfo.PlayerName; DebugLog("20"); PlayerIndex=FindPlayerIndex(PlayerPawn(Other).PlayerReplicationInfo.PlayerID,True); if ( PlayerVote[PlayerIndex] < 1 ) { AddNewPlayer(PlayerName,False); } else { AddNewPlayer(PlayerName,True); } } if ( bEntryWindows && !Other.IsA('Spectator') ) { DebugLog("21"); if ( Level.Game.IsA('Assault') && Assault(Level.Game).bDefenseSet ) { DebugLog("22"); return; } if ( Level.Game.bGameEnded ) { DebugLog("23"); if ( bAutoOpen ) { OpenVoteWindow(PlayerPawn(Other),False,False); } } else { OpenWelcomeWindow(PlayerPawn(Other)); } } DebugLog("24"); } } function bool CheckForTie () { local TeamInfo Best; local int i; local Pawn P; local Pawn BestP; local PlayerPawn Player; DebugLog("25"); if ( Level.Game.IsA('Assault') ) { return False; } if ( Level.Game.IsA('Domination') ) { return False; } if ( !bCheckOtherGameTie ) { i=0; JL005A: if ( i < 16 ) { if ( CustomGameConfig[i].bEnabled && (CustomGameConfig[i].GameClass != "") ) { CustomGameClass=Class(DynamicLoadObject(CustomGameConfig[i].GameClass,Class'Class')); if ( CustomGameClass == None ) { Log("MapVote: Error. CustomGameConfig[" $ string(i) $ "]: Failed to load GameClass:" @ CustomGameConfig[i].GameClass); } else { if ( CustomGameClass.Default.MapPrefix ~= Level.Game.MapPrefix ) { return False; } } } i++; goto JL005A; } } if ( Level.Game.IsA('TeamGamePlus') ) { DebugLog("26"); i=0; JL018A: if ( i < TeamGamePlus(Level.Game).MaxTeams ) { if ( (Best == None) || (Best.Score < TeamGamePlus(Level.Game).Teams[i].Score) ) { Best=TeamGamePlus(Level.Game).Teams[i]; } i++; goto JL018A; } i=0; JL0234: if ( i < TeamGamePlus(Level.Game).MaxTeams ) { if ( (Best.TeamIndex != i) && (Best.Score == TeamGamePlus(Level.Game).Teams[i].Score) ) { return True; } i++; goto JL0234; } } else { DebugLog("27"); P=Level.PawnList; JL02DF: if ( P != None ) { if ( P.bIsPlayer && ((BestP == None) || (P.PlayerReplicationInfo.Score > BestP.PlayerReplicationInfo.Score)) ) { BestP=P; } P=P.nextPawn; goto JL02DF; } P=Level.PawnList; JL0374: if ( P != None ) { if ( P.bIsPlayer && (BestP != P) && (P.PlayerReplicationInfo.Score == BestP.PlayerReplicationInfo.Score) ) { return True; } P=P.nextPawn; goto JL0374; } } return False; } function SubmitVote (string MapName, Actor Voter) { local int PlayerIndex; local int X; local int MapIndex; local string PID; DebugLog("28"); Log(PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " has voted for " $ GetPureMapname(MapName)); if ( bLevelSwitchPending ) { return; } if ( Voter.IsA('Spectator') ) { return; } if ( Left(MapName,3) == "[X]" ) { return; } MapName=GetPureMapname(MapName); CleanUpPlayerIDs(); PlayerIndex=FindPlayerIndex(PlayerPawn(Voter).PlayerReplicationInfo.PlayerID,True); if ( PlayerIndex == -1 ) { return; } MapIndex=GetMapIndex(MapName); if ( MapIndex == 0 ) { return; } if ( PlayerVote[PlayerIndex] == MapIndex ) { return; } if ( PlayerVote[PlayerIndex] <= 0 ) { PID=Right("000" $ string(PlayerPawn(Voter).PlayerReplicationInfo.PlayerID),3); UpdatePlayerVoted(PID); } PlayerVote[PlayerIndex]=MapIndex; if ( Mode == "Accumulation" ) { DebugLog("29"); BroadcastMessage(PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " has placed " $ string(GetAccVote(PlayerIndex)) $ " votes for " $ MapName,True); } else { if ( Mode == "Score" ) { BroadcastMessage(PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " has placed " $ string(GetPlayerScore(PlayerIndex)) $ " votes for " $ MapName,True); } else { BroadcastMessage(PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " voted for " $ MapName,True); } } TallyVotes(False); } function SubmitKickVote (int PlayerID, Actor Voter) { local Pawn aPawn; local int VoterNum; local int X; local int Y; local int VoteCount[32]; local int Lamer; DebugLog("30"); if ( bLevelSwitchPending ) { return; } if ( Voter.IsA('Spectator') ) { return; } if ( !bKickVote ) { return; } CleanUpPlayerIDs(); VoterNum=FindPlayerIndex(PlayerPawn(Voter).PlayerReplicationInfo.PlayerID,True); if ( VoterNum == -1 ) { return; } if ( FindPlayerIndex(PlayerID,False) == -1 ) { return; } if ( PlayerKickVote[VoterNum] == FindPlayerIndex(PlayerID,False) ) { return; } aPawn=Level.PawnList; JL00C2: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (aPawn.PlayerReplicationInfo.PlayerID == PlayerID) ) { if ( (NetConnection(PlayerPawn(aPawn).Player) == None) || PlayerPawn(aPawn).bAdmin ) { PlayerPawn(Voter).ClientMessage("Sorry, You can Not kick the Server or the Admin."); return; } else { PlayerKickVote[VoterNum]=FindPlayerIndex(PlayerID,False); Log("BDBMapVote: " $ PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " has placed a Kick Vote against " $ aPawn.PlayerReplicationInfo.PlayerName); if ( bShowWhoKicksWho ) { BroadcastMessage(PlayerPawn(Voter).PlayerReplicationInfo.PlayerName $ " has placed a Kick Vote against " $ aPawn.PlayerReplicationInfo.PlayerName,True); } else { BroadcastMessage("A Kick Vote has been placed against " $ aPawn.PlayerReplicationInfo.PlayerName,True); } } } aPawn=aPawn.nextPawn; goto JL00C2; } X=0; JL02D7: if ( X < 32 ) { if ( PlayerKickVote[X] != -1 ) { VoteCount[PlayerKickVote[X]]++; } X++; goto JL02D7; } Lamer=0; X=0; JL0323: if ( X < 32 ) { if ( VoteCount[X] > VoteCount[Lamer] ) { Lamer=X; } X++; goto JL0323; } if( (float(VoteCount[Lamer])/float(Level.Game.NumPlayers))*100 >= KickPercent) { DebugLog("31"); KickPlayer(PlayerIDList[Lamer],GetPlayerName(PlayerIDList[Lamer])); PlayerVote[Lamer]=0; VoteCount[Lamer]=0; PlayerKickVote[Lamer]=-1; PlayerIDList[Lamer]=-1; } X=0; JL0404: if ( X < 32 ) { if ( VoteCount[X] > 0 ) { KickStatusText[Y++ ]=GetPlayerName(PlayerIDList[X]) $ "," $ string(VoteCount[X]); } X++; goto JL0404; } KickStatusText[Y]=""; UpdateOpenWRI(); DebugLog("32"); } function KickPlayer (int PlayerID, string PlayerName) { local Pawn aPawn; local string IP; local string PID; local MapVoteWRI MVWRI; DebugLog("Playerkicked:" @ string(PlayerID) @ PlayerName); aPawn=Level.PawnList; JL0038: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (aPawn.PlayerReplicationInfo.PlayerID == PlayerID) && ((PlayerPawn(aPawn) == None) || (NetConnection(PlayerPawn(aPawn).Player) != None)) ) { BroadcastMessage(aPawn.PlayerReplicationInfo.PlayerName $ " has been kicked.",True); IP=PlayerPawn(aPawn).GetPlayerNetworkAddress(); AddKickIP(IP); AddKickName(Mid(PlayerName,4)); if ( bKickVote ) { PID=Right("000" $ string(aPawn.PlayerReplicationInfo.PlayerID),3); RemovePlayerName(Right("000" $ PID,3)); } foreach AllActors(Class'MapVoteWRI',MVWRI) { if ( aPawn == MVWRI.Owner ) { MVWRI.CloseWindow(); MVWRI.Destroy(); } else { } } aPawn.Destroy(); return; } aPawn=aPawn.nextPawn; goto JL0038; } DebugLog("34"); } function AddKickIP (string IP) { local int i; local int P; local string ShortIP; DebugLog("35" @ IP); if ( IP == "" ) { return; } P=InStr(IP,":"); if ( P > -1 ) { ShortIP=Left(IP,P); } else { ShortIP=IP; } i=0; JL0065: if ( i < 31 ) { if ( KickIPList[i] == "" ) { KickIPList[i]=ShortIP; return; } i++; goto JL0065; } DebugLog("36"); } function AddKickName (string PlayerName) { local int i; local int P; local string ShortIP; DebugLog("35a" @ PlayerName); if ( PlayerName == "" ) { return; } i=0; JL0027: if ( i < 31 ) { if ( KickPlayerList[i] == "" ) { KickPlayerList[i]=PlayerName; return; } i++; goto JL0027; } DebugLog("36a"); } function bool CheckKickIP (string IP) { local int i; local int P; local string ShortIP; DebugLog("37" @ IP); if ( IP == "" ) { return False; } P=InStr(IP,":"); if ( P > -1 ) { ShortIP=Left(IP,P); } else { ShortIP=IP; } i=0; JL0065: if ( i < 32 ) { if ( KickIPList[i] == ShortIP ) { return True; } i++; goto JL0065; } DebugLog("38"); return False; } function bool CheckKickPlayer (string PlayerName) { local int i; local int P; DebugLog("37a" @ PlayerName); if ( PlayerName == "" ) { return False; } i=0; JL0027: if ( i < 32 ) { if ( KickPlayerList[i] == PlayerName ) { return True; } i++; goto JL0027; } DebugLog("38a"); return False; } simulated function PreBeginPlay () { local int X; local MapVoteWRI MVWRI; local EmptyServerLevelSwitch ESLS; local string defaultPrefix; DebugLog("39"); if ( !bInitialized ) { DebugLog("40"); X=0; JL0026: if ( X < 32 ) { PlayerIDList[X]=-1; PlayerKickVote[X]=-1; X++; goto JL0026; } MaxPriority=MaxFloat(Max(Max(List1Priority,List2Priority),List3Priority),List4Priority); DebugLog("MaxPriority:" @ string(MaxPriority)); StartMutatorsAndSettings(); if ( bEnableEmptyServerLevelSwitch ) { ESLS=Level.Spawn(Class'EmptyServerLevelSwitch'); ESLS.ServerEmptyTimeMins=EmptyServerLevelSwitchTimeMins; ESLS.MapVote=self; } CustomGameClass=Class(DynamicLoadObject(ASClass,Class'Class')); if ( CustomGameClass == None ) { if ( !ClassIsChildOf(CustomGameClass,Class'Assault') ) { DebugLog("ASClass fixed"); ASClass="Botpack.Assault"; } SaveConfig(); } bInitialized=True; } DebugLog("41"); Super.PreBeginPlay(); } function Mutate (string MutateString, PlayerPawn Sender) { local string MapName; local string PlayerName; local int PlayerID; local int pos; local int seq; local MapVoteReport MVReport; local int ObjectCount; local MapVoteWRI MVWRI; local MapVoteHistory MVHistory; local int i; local string CustSetting; Super.Mutate(MutateString,Sender); if ( Left(Caps(MutateString),10) == "BDBMAPVOTE" ) { DebugLog("42"); if ( Mid(Caps(MutateString),11,8) == "VOTEMENU" ) { DebugLog("43"); if ( (Level.TimeSeconds > 15) || (Level.NetMode == 0) || Sender.bAdmin ) { CleanUpPlayerIDs(); OpenVoteWindow(Sender,True,True); } else { Sender.ClientMessage("Please wait 15 seconds to vote"); } return; } if ( Mid(Caps(MutateString),11,6) == "REPORT" ) { DebugLog("48"); ObjectCount=0; foreach AllActors(Class'MapVoteReport',MVReport) { ObjectCount++; } if ( ObjectCount > 0 ) { Sender.ClientMessage("Sorry, The server can only run one report at a time, please try again later."); return; } MVReport=Spawn(Class'MapVoteReport'); if ( MVReport != None ) { MVReport.RunRport(Caps(Mid(MutateString,18)),Sender,MapVoteHistoryClass); } else { Log("Failed to spawn MVReport"); } return; } if ( Sender.IsA('Spectator') && !Sender.bAdmin ) { Sender.ClientMessage("Spectators are not allowed to vote."); return; } if ( Mid(Caps(MutateString),11,3) == "MAP" ) { DebugLog("44"); MapName=Mid(MutateString,15); if ( Sender.bAdmin ) { MapName=GetPureMapname(MapName); BroadcastMessage("Server Admin has force a map switch to " $ MapName,True); ServerTravelString=SetupGameMap(MapName); CloseAllVoteWindows(); Level.ServerTravel(ServerTravelString,False); } else { SubmitVote(MapName,Sender); } return; } if ( Mid(Caps(MutateString),11,4) == "KICK" ) { DebugLog("45"); PlayerName=Mid(MutateString,16); PlayerID=int(Mid(Left(PlayerName,4),2)); if ( Sender.bAdmin ) { Log("BDBMapVote: Admin (" $ Sender.PlayerReplicationInfo.PlayerName $ ") kicked player:" @ PlayerName); KickPlayer(PlayerID,PlayerName); } else { if ( bKickVote ) { SubmitKickVote(PlayerID,Sender); } else { Sender.ClientMessage("Kickvote is disabled"); } } return; } if ( Mid(Caps(MutateString),11,10) == "RELOADMAPS" ) { DebugLog("46"); if ( Sender.bAdmin ) { DebugLog("47"); GotoState('Loading','BeginRequested'); } return; } if ( Mid(Caps(MutateString),11,15) == "LISTCRASHEDMAPS" ) { DebugLog("46a"); if ( Sender.bAdmin ) { Sender.ClientMessage("Mapvote: Crashed Maps:"); i=0; JL04D5: if ( (i < 32) && (CrashedMaps[i] != "") ) { Sender.ClientMessage(string(i) $ ":" @ CrashedMaps[i]); i++; goto JL04D5; } if ( i == 0 ) { Sender.ClientMessage("Mapvote: No maps crashed"); } } } if ( Mid(Caps(MutateString),11,16) == "CLEARCRASHEDMAPS" ) { DebugLog("46a"); if ( Sender.bAdmin ) { i=0; JL05A2: if ( i < 32 ) { CrashedMaps[i]=""; i++; goto JL05A2; } SaveConfig(); Sender.ClientMessage("Crashed Maps List Cleared!"); } } if ( Mid(Caps(MutateString),11,6) == "STATUS" ) { DebugLog("49"); Sender.ClientMessage("Total Map Count is " $ string(MapCount)); ObjectCount=0; foreach AllActors(Class'MapVoteWRI',MVWRI) { ObjectCount++; } Sender.ClientMessage("Active MapVoteWRI count is " $ string(ObjectCount)); ObjectCount=0; foreach AllActors(Class'MapVoteReport',MVReport) { ObjectCount++; } Sender.ClientMessage("Active MapVoteReport count is " $ string(ObjectCount)); ObjectCount=0; foreach AllActors(Class'MapVoteHistory',MVHistory) { ObjectCount++; } Sender.ClientMessage("Active MapVoteHistory count is " $ string(ObjectCount)); return; } if ( Mid(Caps(MutateString),11,6) == "SETSEQ" ) { DebugLog("50"); if ( Sender.bAdmin ) { MapName=Mid(MutateString,18); pos=InStr(MapName," "); if ( pos < 1 ) { Sender.ClientMessage("Syntax Error"); return; } seq=int(Mid(MapName,pos + 1)); MapName=Left(MapName,pos); MVHistory=Spawn(MapVoteHistoryClass); MVHistory.SetMapSequence(MapName,seq); MVHistory.Save(); MVHistory.Destroy(); Sender.ClientMessage("Sequence changed !"); } else { Sender.ClientMessage("You must be a server admin to perform this fuction !"); } return; } if ( Mid(Caps(MutateString),11,5) == "SETPC" ) { DebugLog("51"); if ( Sender.bAdmin ) { MapName=Mid(MutateString,17); pos=InStr(MapName," "); if ( pos < 1 ) { Sender.ClientMessage("Syntax Error"); return; } seq=int(Mid(MapName,pos + 1)); MapName=Left(MapName,pos); MVHistory=Spawn(MapVoteHistoryClass); MVHistory.SetPlayCount(MapName,seq); MVHistory.Save(); MVHistory.Destroy(); Sender.ClientMessage("PlayCount changed !"); } else { Sender.ClientMessage("You must be a server admin to perform this fuction !"); } return; } if ( Mid(Caps(MutateString),11,11) == "CUSTSETTING" ) { DebugLog("45b"); if ( Sender.bAdmin ) { CustSetting=Mid(MutateString,23,16); DebugLog("new Custsetting:" @ CustSetting); i=0; JL0A68: if ( i < 16 ) { if ( Mid(CustSetting,i,1) == "1" ) { CustomGameConfig[i].bEnabled=True; } else { CustomGameConfig[i].bEnabled=False; } i++; goto JL0A68; } SaveConfig(); } return; } } } function OpenVoteWindow (PlayerPawn Sender, bool bSpecsAllowed, bool bManualOpen) { local MapVoteWRI MVWRI; local int X; local int PlayerCount; local int Y; local int i; local Pawn P; local MapVoteWRI A; local int TeamID; local string PID; local string CustState; DebugLog("52: OpenVoteWindow()"); if ( Sender.IsA('Spectator') && !Sender.bAdmin && !bSpecsAllowed ) { return; } if ( bLevelSwitchPending ) { return; } foreach AllActors(Class'MapVoteWRI',A) { if ( Sender == A.Owner ) { DebugLog("53: WRI already Spawned --> return"); return; } } MVWRI=Spawn(Class'MapVoteWRI',Sender,,Sender.Location); if ( MVWRI == None ) { Log("#### -- PostLogin :: Fail:: Could not spawn WRI"); return; } MVWRI.MapVoteMutator=self; MVWRI.List1Priority=List1Priority; MVWRI.List2Priority=List2Priority; MVWRI.List3Priority=List3Priority; MVWRI.List4Priority=List4Priority; MVWRI.MapCount=MapCount; i=0; JL0194: if ( i < 256 ) { MVWRI.MapList1[i]=MapList[i]; MVWRI.MapList2[i]=MapList[i + 256]; MVWRI.MapList3[i]=MapList[i + 512]; MVWRI.MapList4[i]=MapList[i + 768]; i++; goto JL0194; } if ( Sender.bAdmin ) { CustState=""; i=0; JL0263: if ( i < 16 ) { if ( CustomGameConfig[i].bEnabled ) { CustState=CustState $ "1"; } else { CustState=CustState $ "0"; } if ( CustomGameConfig[i].NewPrefix != "" ) { MVWRI.CustomGames[i]=CustomGameConfig[i].GameClass $ " (" $ CustomGameConfig[i].NewPrefix $ ")"; } else { MVWRI.CustomGames[i]=CustomGameConfig[i].GameClass; } i++; goto JL0263; } MVWRI.CustomGamesState=CustState; } MVWRI.PrefixDictionary=PrefixDictionary; DebugLog("54"); PlayerCount=0; P=Level.PawnList; JL037E: if ( P != None ) { if ( (PlayerPawn(P) != None) && P.bIsPlayer ) { if ( P.IsA('Spectator') ) { TeamID=9; } else { if ( PlayerPawn(P).PlayerReplicationInfo.Team == 255 ) { TeamID=0; } else { TeamID=PlayerPawn(P).PlayerReplicationInfo.Team; } } PID=Right("000" $ string(PlayerPawn(P).PlayerReplicationInfo.PlayerID),3); if ( PlayerVote[FindPlayerIndex(PlayerPawn(P).PlayerReplicationInfo.PlayerID,True)] > 0 ) { MVWRI.PlayerName[PlayerCount++ ]=string(TeamID) $ PID $ PlayerPawn(P).PlayerReplicationInfo.PlayerName $ "&?&!&"; } else { MVWRI.PlayerName[PlayerCount++ ]=string(TeamID) $ PID $ PlayerPawn(P).PlayerReplicationInfo.PlayerName; } } P=P.nextPawn; goto JL037E; } X=0; JL0528: if ( (MapStatusText[X] != "") && (X < 31) ) { MVWRI.MapVoteResults[X]=MapStatusText[X]; X++; goto JL0528; } MVWRI.MapVoteResults[X]=""; Y=0; if ( bKickVote ) { DebugLog("55"); JL05A3: if ( (KickStatusText[Y] != "") && (Y < 31) ) { MVWRI.KickVoteResults[Y]=KickStatusText[Y++ ]; goto JL05A3; } MVWRI.KickVoteResults[Y]=""; } MVWRI.GetServerConfig(); DebugLog("56"); } function OpenWelcomeWindow (PlayerPawn Sender) { local MVWelcomeWRI MVWWRI; local MVWelcomeWRI A; DebugLog("57"); if ( Sender.IsA('Spectator') ) { return; } foreach AllActors(Class'MVWelcomeWRI',A) { if ( Sender == A.Owner ) { return; } } MVWWRI=Spawn(Class'MVWelcomeWRI',Sender,,Sender.Location); if ( MVWWRI == None ) { Log("#### -- PostLogin :: Fail:: Could not spawn MVWelcomeWRI"); return; } MVWWRI.GetServerConfig(); DebugLog("58"); } function int FindPlayerIndex (int PlayerID, bool bAddIfNotFound) { local int X; DebugLog("59"); X=0; JL0011: if ( X < 32 ) { if ( PlayerIDList[X] == PlayerID ) { return X; } X++; goto JL0011; } if ( bAddIfNotFound ) { DebugLog("59b"); X=0; JL005D: if ( X < 32 ) { if ( PlayerIDList[X] == -1 ) { PlayerIDList[X]=PlayerID; return X; } X++; goto JL005D; } } Log("Mapvote: Could not find PlayerIndex. Already left?"); DebugLog("60"); return -1; } function AddNewPlayer (string NewPlayerName, bool bHasVoted) { local MapVoteWRI MVWRI; local Pawn P; DebugLog("61"); foreach AllActors(Class'MapVoteWRI',MVWRI) { MVWRI.AddNewPlayer(NewPlayerName,bHasVoted); } DebugLog("62"); } function RemovePlayerName (string OldPlayerName) { local MapVoteWRI MVWRI; local Pawn P; DebugLog("63"); foreach AllActors(Class'MapVoteWRI',MVWRI) { MVWRI.RemovePlayerName(OldPlayerName); } } function UpdatePlayerVoted (string PlayerID) { local MapVoteWRI MVWRI; local Pawn P; DebugLog("63"); foreach AllActors(Class'MapVoteWRI',MVWRI) { MVWRI.UpdatePlayerVoted(PlayerID); } } function CleanUpPlayerIDs () { local Pawn aPawn; local int X; local bool bFound; DebugLog("64"); X=0; JL0011: if ( X < 32 ) { if ( PlayerIDList[X] > -1 ) { bFound=False; aPawn=Level.PawnList; JL004E: if ( aPawn != None ) { if ( aPawn.bIsPlayer && aPawn.IsA('PlayerPawn') && (PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID == PlayerIDList[X]) ) { bFound=True; } else { aPawn=aPawn.nextPawn; goto JL004E; } } if ( !bFound ) { DebugLog("Removing Player that has left:" @ string(PlayerIDList[X])); if ( bKickVote ) { RemovePlayerName(Right("000" $ string(PlayerIDList[X]),3)); } PlayerVote[X]=0; PlayerKickVote[X]=-1; PlayerIDList[X]=-1; } } X++; goto JL0011; } DebugLog("65"); } function string GetPlayerName (int PlayerID) { local Pawn aPawn; local string PlayerName; DebugLog("66"); PlayerName="unknown"; aPawn=Level.PawnList; JL002D: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (PlayerPawn(aPawn) != None) ) { if ( PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID == PlayerID ) { PlayerName=Right("000" $ string(PlayerID),3) $ aPawn.PlayerReplicationInfo.PlayerName; } else { aPawn=aPawn.nextPawn; goto JL002D; } } } return PlayerName; } function float GetPlayerScore (int PlayerIndex) { local Pawn aPawn; local float PlayerScore; DebugLog("67"); aPawn=Level.PawnList; JL001E: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (PlayerPawn(aPawn) != None) ) { if ( PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID == PlayerIDList[PlayerIndex] ) { PlayerScore=PlayerPawn(aPawn).PlayerReplicationInfo.Score; } else { aPawn=aPawn.nextPawn; goto JL001E; } } } if ( PlayerScore < 1 ) { PlayerScore=1.00; } return PlayerScore; } function int GetAccVote (int PlayerIndex) { local Pawn aPawn; local int X; local int PlayerAccVotes; local string PlayerName; DebugLog("68"); aPawn=Level.PawnList; JL001E: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (PlayerPawn(aPawn) != None) ) { if ( PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID == PlayerIDList[PlayerIndex] ) { PlayerName=PlayerPawn(aPawn).PlayerReplicationInfo.PlayerName; } else { aPawn=aPawn.nextPawn; goto JL001E; } } } if ( PlayerName == "" ) { return 0; } X=0; JL00CA: if ( X < 32 ) { if ( AccName[X] == PlayerName ) { PlayerAccVotes=AccVotes[X]; } else { X++; goto JL00CA; } } if ( PlayerAccVotes > 0 ) { return PlayerAccVotes; } X=0; JL0121: if ( X < 32 ) { if ( AccName[X] == "" ) { AccName[X]=PlayerName; AccVotes[X]=1; } else { X++; goto JL0121; } } DebugLog("69"); return 1; } function SaveAccVotes (int WinningMapIndex) { local Pawn aPawn; local int X; local bool bFound; DebugLog("70"); X=0; JL0011: if ( X < 32 ) { if ( AccName[X] != "" ) { bFound=False; aPawn=Level.PawnList; JL004B: if ( aPawn != None ) { if ( aPawn.bIsPlayer && (PlayerPawn(aPawn) != None) ) { if ( AccName[X] == PlayerPawn(aPawn).PlayerReplicationInfo.PlayerName ) { if ( PlayerVote[FindPlayerIndex(PlayerPawn(aPawn).PlayerReplicationInfo.PlayerID,False)] != WinningMapIndex ) { bFound=True; AccVotes[X]++; } } else { aPawn=aPawn.nextPawn; goto JL004B; } } } if ( !bFound ) { AccName[X]=""; AccVotes[X]=0; } } X++; goto JL0011; } X=0; JL013F: if ( X < 32 ) { Class'BDBMapVote'.Default.AccName[X]=AccName[X]; Class'BDBMapVote'.Default.AccVotes[X]=AccVotes[X]; X++; goto JL013F; } Class'BDBMapVote'.StaticSaveConfig(); DebugLog("71"); } function TallyVotes (bool bForceMapSwitch) { local string MapName; local Actor A; local int Index; local int X; local int Y; local int topmap; local float VoteCount[1024]; local int Ranking[32]; local int PlayersThatVoted; local int TieCount; local string GameType; local string CurrentMap; local int i; local int textline; local MapVoteHistory History; local int PlayersLeftToVote; DebugLog("72"); if ( bLevelSwitchPending ) { return; } PlayersThatVoted=0; X=0; JL0023: if ( X < 32 ) { if ( PlayerVote[X] != 0 ) { PlayersThatVoted++; if ( Mode == "Score" ) { VoteCount[PlayerVote[X]]=VoteCount[PlayerVote[X]] + GetPlayerScore(X); } if ( Mode == "Accumulation" ) { VoteCount[PlayerVote[X]]=VoteCount[PlayerVote[X]] + GetAccVote(X); } if ( (Mode == "Elimination") || (Mode == "Majority") ) { VoteCount[PlayerVote[X]] += GetMapPriority(MapList[PlayerVote[X]]); } DebugLog("PlayerVote[x]:" @ string(PlayerVote[X])); DebugLog("VoteCount[PlayerVote[x]]:" @ string(VoteCount[PlayerVote[X]])); } X++; goto JL0023; } if(!Level.Game.bGameEnded && !bMidGameVote && (float(PlayersThatVoted) / float(Level.Game.NumPlayers)) * 100 >= MidGameVotePercent) { DebugLog("73"); BroadcastMessage("Mid-Game Map Voting has been initiated !!!!"); bMidGameVote=True; TimeLeft=VoteTimeLimit; ScoreBoardTime=1; SetTimer(1.00,True); } Index=0; X=1; JL0257: if ( X <= MapCount ) { if ( VoteCount[X] > 0 ) { Ranking[Index++ ]=X; } X++; goto JL0257; } X=0; JL029C: if ( X < Index - 1 ) { Y=X + 1; JL02BC: if ( Y < Index ) { if ( VoteCount[Ranking[X]] < VoteCount[Ranking[Y]] ) { topmap=Ranking[X]; Ranking[X]=Ranking[Y]; Ranking[Y]=topmap; } Y++; goto JL02BC; } X++; goto JL029C; } PlayersLeftToVote=Level.Game.NumPlayers - PlayersThatVoted; DebugLog("NumPlayer:" $ string(Level.Game.NumPlayers) @ "PlayerVoted:" $ string(PlayersThatVoted) @ "PlayersToVote:" $ string(PlayersLeftToVote) @ "MaxPriority:" $ string(MaxPriority)); if ( (Mode == "Elimination") || (Mode == "Majority") ) { if ( (PlayersLeftToVote * MaxPriority < VoteCount[Ranking[0]]) && (VoteCount[Ranking[1]] + PlayersLeftToVote * GetMapPriority(MapList[Ranking[1]]) < VoteCount[Ranking[0]]) && (VoteCount[Ranking[2]] + PlayersLeftToVote * GetMapPriority(MapList[Ranking[2]]) < VoteCount[Ranking[0]]) && (VoteCount[Ranking[3]] + PlayersLeftToVote * GetMapPriority(MapList[Ranking[3]]) < VoteCount[Ranking[0]]) && Level.Game.bGameEnded ) { bForceMapSwitch=True; } } X=0; JL050F: if ( X < Index ) { MapStatusText[X]=GetPureMapname(MapList[Ranking[X]]) $ "," $ Left(string(VoteCount[Ranking[X]]),3); X++; goto JL050F; } MapStatusText[Index]=""; UpdateOpenWRI(); if ( (VoteCount[Ranking[0]] == VoteCount[Ranking[1]]) && (VoteCount[Ranking[0]] != 0) ) { DebugLog("74"); TieCount=1; X=1; JL05C9: if ( X < Index ) { if ( VoteCount[Ranking[0]] == VoteCount[Ranking[X]] ) { TieCount++; } X++; goto JL05C9; } topmap=Ranking[Rand(TieCount)]; CurrentMap=RemovePrefix(GetURLMap()); if ( InStr(CurrentMap,".") > -1 ) { CurrentMap=Left(CurrentMap,InStr(CurrentMap,".")); } X=0; JL0660: if ( RemovePrefix(GetPureMapname(MapList[topmap])) ~= CurrentMap ) { topmap=Ranking[Rand(TieCount)]; X++; if ( X > 20 ) { goto JL06AD; } goto JL0660; } JL06AD: } else { DebugLog("75"); topmap=Ranking[0]; } if ( bForceMapSwitch ) { if ( (PlayersThatVoted == 0) || (Level.Game.NumPlayers == 0) ) { BroadcastMessage("Noone voted, choosing a random map...",True); topmap=GetRandomMap(); } } if ( bForceMapSwitch || (Level.Game.NumPlayers == PlayersThatVoted) ) { DebugLog("76"); if ( MapList[topmap] == "" ) { return; } if ( (VoteCount[Ranking[0]] == VoteCount[Ranking[1]]) && (VoteCount[Ranking[0]] != 0) ) { BroadcastMessage("Tie:" @ GetPureMapname(MapList[Ranking[0]]) @ "and" @ GetPureMapname(MapList[Ranking[1]]) @ "have same score!"); BroadcastMessage(GetPureMapname(MapList[topmap]) $ " has won.",True); } else { BroadcastMessage(GetPureMapname(MapList[topmap]) $ " has won.",True); } CloseAllVoteWindows(); bLevelSwitchPending=True; ServerTravelString=SetupGameMap(MapList[topmap]); ServerTravelTime=Level.TimeSeconds; if ( !Level.Game.bGameEnded ) { SetTimer(1.00,True); } if ( (PlayersThatVoted == 0) || (Level.Game.NumPlayers == 0) ) { goto JL0927; } History=Spawn(MapVoteHistoryClass); History.AddMap(GetPureMapname(MapList[topmap])); History.Save(); History.Destroy(); JL0927: if ( Mode == "Elimination" ) { RepeatLimit++; Class'BDBMapVote'.Default.RepeatLimit=RepeatLimit; Class'BDBMapVote'.StaticSaveConfig(); } if ( Mode == "Accumulation" ) { SaveAccVotes(topmap); } } DebugLog("77"); } function UpdateOpenWRI () { local MapVoteWRI MVWRI; local int X; local int Y; DebugLog("78"); foreach AllActors(Class'MapVoteWRI',MVWRI) { X=0; MVWRI.UpdateMapVoteResults("Clear",X); JL003C: if ( (MapStatusText[X] != "") && (X < 31) ) { MVWRI.UpdateMapVoteResults(MapStatusText[X],X); X++; goto JL003C; } MVWRI.UpdateMapVoteResults("",X); Y=0; MVWRI.UpdateKickVoteResults("Clear",Y); if ( bKickVote ) { JL00C6: if ( (KickStatusText[Y] != "") && (Y < 31) ) { MVWRI.UpdateKickVoteResults(KickStatusText[Y],Y++ ); goto JL00C6; } } MVWRI.UpdateKickVoteResults("",Y); } DebugLog("79"); } function SortMapList () { local int A; local int B; local int pos; local string TempMapName; local string AMap; local string BMap; local string AMapPre; local string BMapPre; DebugLog("80"); A=1; JL0011: if ( A < MapCount ) { B=A + 1; JL002E: if ( B <= MapCount ) { AMap=Caps(MapList[A]); BMap=Caps(MapList[B]); if ( Left(AMap,3) == "[X]" ) { AMap=Mid(AMap,3); } if ( Left(BMap,3) == "[X]" ) { BMap=Mid(BMap,3); } AMap=Right(AMap,1) $ AMap; BMap=Right(BMap,1) $ BMap; AMapPre=AMap; BMapPre=BMap; if ( !bSortWithPreFix ) { pos=InStr(AMap,"-"); AMap=Mid(AMap,pos + 1); pos=InStr(BMap,"-"); BMap=Mid(BMap,pos + 1); } if ( AMap > BMap ) { TempMapName=MapList[A]; MapList[A]=MapList[B]; MapList[B]=TempMapName; } else { if ( AMap == BMap ) { if ( AMapPre > BMapPre ) { TempMapName=MapList[A]; MapList[A]=MapList[B]; MapList[B]=TempMapName; } } } B++; goto JL002E; } A++; goto JL0011; } } function bool IsCrashedMap (string MapName) { local int j; MapName=GetPureMapname(MapName); j=0; JL0018: if ( (j < 32) && (CrashedMaps[j] != "") ) { if ( MapName ~= CrashedMaps[j] ) { if ( bDebugMode ) { DebugLog("Map found in crashed map list:" @ MapName); } return True; } j++; goto JL0018; } return False; } function string CreateMapnameIncludingListnumber (string mapnameX) { local string MapName; local bool locked; local int j; if ( Left(mapnameX,3) ~= "[x]" ) { MapName=GetPureMapname(mapnameX); locked=True; } else { MapName=GetPureMapname(mapnameX); } if ( bRemoveCrashedMaps && IsCrashedMap(MapName) ) { return ""; } if ( bUseExcludeFilter ) { j=0; JL006C: if ( (j < 16) && (ExcludeFilter[j] != "") ) { if ( MatchFilter(MapName,ExcludeFilter[j]) ) { DebugLog("Excluded Map:" @ MapName); return ""; } j++; goto JL006C; } } j=0; JL00D5: if ( (j < 48) && (List1Filter[j] != "") ) { if ( MatchFilter(MapName,List1Filter[j]) || bAutoDetect ) { if ( !bList1ObeyRepeatLimit && locked ) { mapnameX=MapName; } mapnameX=mapnameX $ ":1"; return mapnameX; } j++; goto JL00D5; } j=0; JL0162: if ( (j < 48) && (List2Filter[j] != "") ) { if ( MatchFilter(MapName,List2Filter[j]) ) { if ( !bList2ObeyRepeatLimit && locked ) { mapnameX=MapName; } mapnameX=mapnameX $ ":2"; return mapnameX; } j++; goto JL0162; } j=0; JL01E4: if ( (j < 48) && (List3Filter[j] != "") ) { if ( MatchFilter(MapName,List3Filter[j]) ) { if ( !bList3ObeyRepeatLimit && locked ) { mapnameX=MapName; } mapnameX=mapnameX $ ":3"; return mapnameX; } j++; goto JL01E4; } j=0; JL0266: if ( (j < 48) && (List4Filter[j] != "") ) { if ( MatchFilter(MapName,List4Filter[j]) ) { if ( !bList4ObeyRepeatLimit && locked ) { mapnameX=MapName; } mapnameX=mapnameX $ ":4"; return mapnameX; } j++; goto JL0266; } return ""; } function int GetMapListNumber (string MapName) { return int(Right(MapName,1)); } function float GetMapPriority (string MapName) { local int MapListNum; if ( MapName == "" ) { return 0.00; } MapListNum=GetMapListNumber(MapName); if ( MapListNum == 1 ) { return List1Priority; } if ( MapListNum == 2 ) { return List2Priority; } if ( MapListNum == 3 ) { return List3Priority; } if ( MapListNum == 4 ) { return List4Priority; } Log("ERROR: GetMapPriority(): Mapname has no Priority attached:" @ MapName,'MapVoteLA'); return 1.00; } function string GetPureMapname (string MapName) { if ( Left(MapName,3) ~= "[x]" ) { MapName=Mid(MapName,3); } if ( Left(Right(MapName,2),1) == ":" ) { MapName=Left(MapName,Len(MapName) - 2); } return MapName; } function bool MatchFilter (string Map, string Filter) { local string modFilter; if ( Map ~= Filter ) { return True; } if ( Right(Filter,1) == "*" ) { modFilter=Mid(Filter,0,Len(Filter) - 1); if ( Left(Map,Len(modFilter)) ~= modFilter ) { return True; } } if ( Right(Filter,1) == "-" ) { if ( Left(Map,Len(Filter)) ~= Filter ) { return True; } } if ( (Right(Filter,1) == "*") && (Left(Filter,1) == "*") ) { modFilter=Mid(Filter,1,Len(Filter) - 2); if ( InStr(Caps(Map),Caps(modFilter)) >= 0 ) { return True; } } if ( Filter == "*" ) { return True; } return False; } function CloseAllVoteWindows () { local MapVoteWRI MVWRI; DebugLog("81"); foreach AllActors(Class'MapVoteWRI',MVWRI) { MVWRI.CloseWindow(); MVWRI.Destroy(); } } function string SetupGameMap (string MapName) { local string GameType; local MapList myList; local string MutatorList; local int i; DebugLog("82"); MapName=GetPureMapname(MapName); ResetAssault(); TmpNextVirtualPrefix=FixPrefix(GetPrefix(MapName)); DebugLog("NextVirtualPrefix:" @ TmpNextVirtualPrefix); SaveConfig(); if ( MapName == "" ) { return "?Restart"; } if ( (AutoGameClass != None) && bAutoGame ) { DebugLog("83b"); if ( Left(Caps(MapName),Len(FixPrefix(AutoGameClass.Default.MapPrefix))) ~= FixPrefix(AutoGameClass.Default.MapPrefix) ) { TmpNextRealPrefix=FixPrefix(AutoGameClass.Default.MapPrefix); if ( bFixCTFModifications ) { if ( Right(string(AutoGameClass),12) ~= "MultiCTFGame" ) { DebugLog("MultiCTF detected. Fixing Mapprefix to CTFM"); TmpNextRealPrefix="CTFM"; } } DebugLog("NextRealPrefix:" @ TmpNextRealPrefix); SaveConfig(); TravelMap=MapName; return MapName $ ".unr?game=" $ AutoGame; } } i=0; JL0199: if ( i < 16 ) { if ( CustomGameConfig[i].bEnabled && (CustomGameConfig[i].GameClass != "") ) { DebugLog("83.1"); CustomGameClass=Class(DynamicLoadObject(CustomGameConfig[i].GameClass,Class'Class')); if ( CustomGameClass == None ) { Log("MapVote: Error. CustomGameConfig[" $ string(i) $ "]: Failed to load GameClass:" @ CustomGameConfig[i].GameClass); } else { CustomGameConfig[i].NewPrefix=FixPrefix(CustomGameConfig[i].NewPrefix); if ( bFixCTFModifications ) { if ( Right(CustomGameConfig[i].GameClass,12) ~= "MultiCTFGame" ) { DebugLog("MultiCTF detected. Fixing Mapprefix to CTFM"); CustomGameClass.Default.MapPrefix="CTFM"; } } if ( CustomGameConfig[i].NewPrefix != "" ) { DebugLog("83.2a"); DebugLog(TmpNextVirtualPrefix @ CustomGameConfig[i].NewPrefix); if ( TmpNextVirtualPrefix ~= CustomGameConfig[i].NewPrefix ) { DebugLog("83.2b"); TmpNextRealPrefix=FixPrefix(CustomGameClass.Default.MapPrefix); if ( bFixCTFModifications ) { if ( Right(CustomGameConfig[i].GameClass,12) ~= "MultiCTFGame" ) { TmpNextRealPrefix="CTFM"; } } DebugLog("NextRealPrefix:" @ TmpNextRealPrefix); SaveConfig(); TravelMap=MapName; return TmpNextRealPrefix $ Mid(MapName,Len(TmpNextVirtualPrefix)) $ ".unr?game=" $ CustomGameConfig[i].GameClass; } } else { DebugLog("83.3a"); DebugLog(TmpNextVirtualPrefix @ FixPrefix(CustomGameClass.Default.MapPrefix)); if ( TmpNextVirtualPrefix ~= FixPrefix(CustomGameClass.Default.MapPrefix) ) { DebugLog("83.3b"); TmpNextRealPrefix=FixPrefix(GetPrefix(MapName)); DebugLog("NextRealPrefix:" @ TmpNextRealPrefix); SaveConfig(); TravelMap=MapName; return MapName $ ".unr?game=" $ CustomGameConfig[i].GameClass; } } } } i++; goto JL0199; } if ( Left(Caps(MapName),2) == "DM" ) { GameType="BotPack.DeathMatchPlus"; } if ( Left(Caps(MapName),3) == "LMS" ) { GameType="BotPack.LastManStanding"; MapName="DM" $ Mid(MapName,3); } if ( Left(Caps(MapName),3) == "TDM" ) { GameType="BotPack.TeamGamePlus"; MapName="DM" $ Mid(MapName,3); } if ( Left(Caps(MapName),3) == "DOM" ) { GameType="BotPack.Domination"; } if ( Left(Caps(MapName),3) == "CTF" ) { GameType="BotPack.CTFGame"; } if ( Left(Caps(MapName),2) == "AS" ) { GameType=ASClass; } TmpNextRealPrefix=GetPrefix(MapName); DebugLog("NextRealPrefix:" @ TmpNextRealPrefix); SaveConfig(); TravelMap=MapName; return MapName $ ".unr?game=" $ GameType; } function LoadMapListConfig () { local MapListTemp TempList; local string MapName; local int j; DebugLog("Loading Maplist from file..."); MapVoteHistoryClass=Class(DynamicLoadObject(MapVoteHistoryType,Class'Class')); History=Spawn(MapVoteHistoryClass); if ( History == None ) { DebugLog("89"); MapVoteHistoryClass=Class(DynamicLoadObject("MapVoteLA13.MapVoteHistory1",Class'Class')); History=Spawn(MapVoteHistoryClass); } MapList[0]=""; j=1; i=1; JL00BB: if ( i <= Class'MapListTemp'.Default.MapCount ) { MapName=Class'MapListTemp'.Default.M[i]; if ( History.GetMapSequence(GetPureMapname(MapName)) <= RepeatLimit ) { MapName="[X]" $ MapName; } if ( bRemoveCrashedMaps && IsCrashedMap(MapName) ) { goto JL0157; } MapList[j]=MapName; j++; JL0157: i++; goto JL00BB; } MapCount=j - 1; PrefixDictionary=Class'MapListTemp'.Default.PrefixDictionary; DebugLog("Loading Maplist finished:" @ string(MapCount)); History.Destroy(); } function SaveMapListConfig () { local int i; local int j; local MapListTemp List; DebugLog("Storing Maplist to file..."); List=Spawn(Class'MapListTemp'); List.MapCount=MapCount; List.M[0]=""; i=1; JL005E: if ( i <= MapCount ) { if ( Left(MapList[i],3) ~= "[X]" ) { List.M[i]=Mid(MapList[i],3); } else { List.M[i]=MapList[i]; } i++; goto JL005E; } j=i; JL00E2: if ( j < 1024 ) { List.M[j]=""; j++; goto JL00E2; } List.PrefixDictionary=PrefixDictionary; List.SaveConfig(); List.Destroy(); DebugLog("Storing Maplist to file finished:" @ string(MapCount)); } function UpdatePrefixes () { local int i; local string defaultPrefix; PrefixDictionary=""; i=0; JL000F: if ( i < 16 ) { if ( CustomGameConfig[i].bEnabled && (CustomGameConfig[i].GameClass != "") ) { CustomGameClass=Class(DynamicLoadObject(CustomGameConfig[i].GameClass,Class'Class')); if ( CustomGameClass != None ) { defaultPrefix=FixPrefix(CustomGameClass.Default.MapPrefix); if ( bFixCTFModifications && (Right(CustomGameConfig[i].GameClass,12) ~= "MultiCTFGame") ) { defaultPrefix="CTFM"; } if ( CustomGameConfig[i].NewPrefix == "" ) { CustomGameConfig[i].NewPrefix=defaultPrefix; SaveConfig(); } if ( CustomGameConfig[i].NewPrefix != defaultPrefix ) { PrefixDictionary=PrefixDictionary $ CustomGameConfig[i].NewPrefix $ ";" $ defaultPrefix $ ";"; } } } i++; goto JL000F; } DebugLog("PrefixDictionary:" @ PrefixDictionary); } state Loading { BeginRequested: bMapReloadRequested=True; BroadcastMessage("Maplist is reloading...",True); DebugLog("84a"); Begin: DebugLog("84b"); UpdatePrefixes(); MapVoteHistoryClass=Class(DynamicLoadObject(MapVoteHistoryType,Class'Class')); History=Spawn(MapVoteHistoryClass); if ( History == None ) { DebugLog("89"); MapVoteHistoryClass=Class(DynamicLoadObject("MapVoteLA13.MapVoteHistory1",Class'Class')); History=Spawn(MapVoteHistoryClass); } MapCount=0; for ( i=0; i<1024; i++ ) { MapList[i]=""; } if ( bAutoDetect ) { Log("Detected GameType = " $ string(Level.Game.Class)); bAS=False; bCTF=False; bDM=False; bLMS=False; bTDM=False; bDOM=False; bAutoGame=False; if ( string(Level.Game.Class) ~= ASClass ) { bAS=True; } else if ( string(Level.Game.Class) ~= "Botpack.CTFGame" ) { bCTF=True; } else if ( string(Level.Game.Class) ~= "Botpack.DeathMatchPlus" ) { bDM=True; } else if ( string(Level.Game.Class) ~= "Botpack.LastManStanding" ) { bLMS=True; } else if ( string(Level.Game.Class) ~= "Botpack.TeamGamePlus" ) { bTDM=True; } else if ( string(Level.Game.Class) ~= "Botpack.Domination" ) { bDOM=True; } else { bAutoGame=True; AutoGame=string(Level.Game.Class); } } if ( bAutoGame ) { AutoGameClass=Class(DynamicLoadObject(AutoGame,Class'Class')); } if ( bAS ) { if ( bUseMapList ) { LoadMapCycleList(Class'Assault'.Default.MapListType,"AS","AS",History); } else { LoadMapTypes("AS","AS",History,"Botpack.Assault"); } Sleep(0.00); } if ( bCTF ) { if ( bUseMapList ) { LoadMapCycleList(Class'CTFGame'.Default.MapListType,"CTF","CTF",History); } else { LoadMapTypes("CTF","CTF",History,"Botpack.CTFGame"); } Sleep(0.00); } if ( bDM ) { if ( bUseMapList ) { LoadMapCycleList(Class'DeathMatchPlus'.Default.MapListType,"DM","DM",History); } else { LoadMapTypes("DM","DM",History,"Botpack.DeathMatchPlus"); } Sleep(0.00); } if ( bDOM ) { if ( bUseMapList ) { LoadMapCycleList(Class'Domination'.Default.MapListType,"DOM","DOM",History); } else { LoadMapTypes("DOM","DOM",History,"Botpack.Domination"); } Sleep(0.00); } if ( bTDM ) { if ( bUseMapList ) { LoadMapCycleList(Class'TeamGamePlus'.Default.MapListType,"DM","TDM",History); } else { LoadMapTypes("DM","TDM",History,"Botpack.TeamGamePlus"); } Sleep(0.00); } if ( bLMS ) { if ( bUseMapList ) { LoadMapCycleList(Class'LastManStanding'.Default.MapListType,"DM","LMS",History); } else { LoadMapTypes("DM","LMS",History,"Botpack.LastManStanding"); } Sleep(0.00); } if ( bAutoGame && (AutoGameClass != None) ) { DebugLog("85"); NewPrefix=FixPrefix(AutoGameClass.Default.MapPrefix); if ( bUseMapList ) { LoadMapCycleList(AutoGameClass.Default.MapListType,FixPrefix(AutoGameClass.Default.MapPrefix),NewPrefix,History); } else { LoadMapTypes(FixPrefix(AutoGameClass.Default.MapPrefix),NewPrefix,History,AutoGame); } Sleep(0.00); } if ( !bAutoDetect ) { for ( i=0;i < 16;i++ ) { if ( CustomGameConfig[i].bEnabled && (CustomGameConfig[i].GameClass != "") ) { CustomGameClass=Class(DynamicLoadObject(CustomGameConfig[i].GameClass,Class'Class')); if ( bFixCTFModifications && (Right(CustomGameConfig[i].GameClass,12) ~= "MultiCTFGame") ) { DebugLog("MultiCTF detected. Fixing Mapprefix to CTFM"); CustomGameClass.Default.MapPrefix="CTFM"; } if ( CustomGameClass == None ) { Log("MapVote: Error. CustomGameConfig[" $ string(i) $ "]: Failed to load GameClass:" @ CustomGameConfig[i].GameClass); } else { if ( CustomGameConfig[i].NewPrefix == "" ) { NewPrefix=FixPrefix(CustomGameClass.Default.MapPrefix); } else { NewPrefix=FixPrefix(CustomGameConfig[i].NewPrefix); } if ( bUseMapList ) { LoadMapCycleList(CustomGameClass.Default.MapListType,FixPrefix(CustomGameClass.Default.MapPrefix),NewPrefix,History); } else { LoadMapTypes(FixPrefix(CustomGameClass.Default.MapPrefix),NewPrefix,History,CustomGameConfig[i].GameClass); } } Sleep(0.00); } } } History.Destroy(); if ( Mode == "Elimination" ) { if ( (MapCount < MinMapCount) || (MapCount == 0) && (RepeatLimit > 0) ) { RepeatLimit=0; GotoState('Loading'); } } SortMapList(); Log("BDBMapVote: Maps Reloaded. Total Maps = " $ string(MapCount)); if ( bMapReloadRequested ) { BroadcastMessage("MapVote configuration has been changed, Re-Open Voting window for updates.",True); } bMapReloadRequested=False; if ( bReloadMapsOnRequestOnly ) { SaveMapListConfig(); } } function LoadMapTypes (string Prefix, string PreFixChange, MapVoteHistory History, string GameClass) { local string FirstMap; local string NextMap; local string MapName; local string TestMap; local string FilteredMap; local int Z; local int ignoreCount; local bool bIsPureCTF; DebugLog("86"); DebugLog("Going to load gametype:" @ GameClass @ "using maps with Prefix:" @ Prefix $ ". PreFixChange:" @ PreFixChange); if ( GameClass ~= "Botpack.CTFGame" ) { bIsPureCTF=True; DebugLog("Pure CTF Detected"); } FirstMap=Level.GetMapName(Prefix,"",0); NextMap=FirstMap; while ( !(FirstMap~=TestMap) ) { if ( MapCount >= 1023 ) { ignoreCount++; } else { MapName=NextMap; if ( bFixCTFModifications && bIsPureCTF && ( !(Left(MapName,4) ~= "CTF-") || (Left(MapName,6) ~= "CTF-BT")) ) { DebugLog("CTF prevented from loading wrong map:" @ MapName); } else { Z=InStr(Caps(MapName),".UNR"); if ( Z != -1 ) { MapName=Left(MapName,Z); } MapName=PreFixChange $ Mid(MapName,Len(Prefix)); if ( (InStr(Caps(NextMap),"TUTORIAL") == -1) && (InStr(Caps(NextMap),"INTRO") == -1) ) { if ( History != None ) { if ( History.GetMapSequence(MapName) <= RepeatLimit ) { MapName="[X]" $ MapName; } } FilteredMap=CreateMapnameIncludingListnumber(MapName); if ( FilteredMap != "" ) { MapCount++; MapList[MapCount]=FilteredMap; if ( bDebugMode ) { DebugLog("Loading Map[" $ string(MapCount) $ "]:" @ FilteredMap); } } else { if ( bDebugMode ) { DebugLog("Map ignored cause no filter matches:" @ GetPureMapname(MapName)); } } } } } NextMap=Level.GetMapName(Prefix,NextMap,1); TestMap=NextMap; } if ( ignoreCount > 0 ) { Log("Ignored" @ string(ignoreCount) @ "Maps with Prefix" @ Prefix @ "cause mapcount > 1023",'MapVoteLA'); } } function LoadMapCycleList (Class MapListType, string Prefix, string PreFixChange, MapVoteHistory History) { local MapList MapCycleList; local string MapName; local string FilteredMap; local int X; local int Z; DebugLog("87"); MapCycleList=Spawn(MapListType); if ( MapCycleList != None ) { X=0; JL002A: if ( (X < 32) && (MapCycleList.Maps[X] != "") ) { MapName=MapCycleList.Maps[X++ ]; Z=InStr(Caps(MapName),".UNR"); if ( Z != -1 ) { MapName=Left(MapName,Z); } MapName=PreFixChange $ Mid(MapName,Len(Prefix)); if ( History != None ) { if ( History.GetMapSequence(MapName) <= RepeatLimit ) { MapName="[X]" $ MapName; } } FilteredMap=CreateMapnameIncludingListnumber(MapName); if ( FilteredMap != "" ) { MapCount++; MapList[MapCount]=FilteredMap; if ( bDebugMode ) { DebugLog("Loading Map[" $ string(MapCount) $ "]" @ FilteredMap); } } else { if ( bDebugMode ) { DebugLog("Map ignored cause no filter matches:" @ GetPureMapname(MapName)); } } goto JL002A; } MapCycleList.Destroy(); } else { Log("MapList Spawn Failed"); } } function DebugLog (string Msg) { if ( bDebugMode ) { Log("MV " $ Msg,'MapVoteLA'); } } function int ResetAssault () { local int CurrentDefender; if ( Level.Game.IsA('Assault') ) { if ( GetWinningTeam() != -1 ) { Log("BDBMapVote: Team " $ string(GetWinningTeam()) $ " won the round."); if ( GetWinningTeam() == 1 ) { CurrentDefender=0; } else { CurrentDefender=1; } Log("BDBMapVote: Setting Team " $ string(CurrentDefender) $ " as the defending team for the next map."); } else { CurrentDefender=0; } Assault(Level.Game).ResetGame(); Assault(Level.Game).bDefenseSet=False; Assault(Level.Game).NumDefenses=0; Assault(Level.Game).SavedTime=0.00; Assault(Level.Game).GameCode=""; Assault(Level.Game).Part=1; Assault(Level.Game).bTiePartOne=False; Assault(Level.Game).CurrentDefender=CurrentDefender; Assault(Level.Game).SaveConfig(); } return 0; } function int GetWinningTeam () { if ( Assault(Level.Game).bDefenseSet ) { if ( Assault(Level.Game).bAssaultWon ) { return Assault(Level.Game).Attacker.TeamIndex; } else { if ( !Assault(Level.Game).bTiePartOne ) { return Assault(Level.Game).Defender.TeamIndex; } else { return -1; } } } else { return -1; } } function int GetMapIndex (string MapName) { local int X; local int MapIndex; MapName=GetPureMapname(MapName); X=1; JL0018: if ( X <= MapCount ) { if ( GetPureMapname(MapList[X]) ~= MapName ) { MapIndex=X; } else { X++; goto JL0018; } } return MapIndex; } function int GetRandomMap () { local int randmap; local int security; JL0000: if ( (randmap < 1) || (GetMapListNumber(MapList[randmap]) != MapListIfNooneVoted) ) { randmap=Rand(MapCount) + 1; if ( ++security > 100 ) { randmap=Rand(MapCount) + 1; } else { goto JL0000; } } if ( security > 100 ) { Log("Error: GetRandomMap() failed for List" @ string(MapListIfNooneVoted),'MapVoteLA'); } Log("GetRandomMap() configured for List" @ string(MapListIfNooneVoted) @ "took the random map:" @ string(randmap) @ MapList[randmap]); return randmap; } function HandleFailedMap (string MapName) { local int i; MapName=GetPureMapname(MapName); DebugLog("Crashed map:" @ MapName); i=0; JL0033: if ( (i < 31) && (CrashedMaps[i] != "") ) { if ( CrashedMaps[i] == MapName ) { return; } i++; goto JL0033; } CrashedMaps[i]=MapName; DebugLog("Added failed map:" @ MapName @ "to slot" @ string(i)); SaveConfig(); StaticSaveConfig(); } function StartMutatorsAndSettings () { local string ActualPrefix; local string TestPrefix; local string Prefixes; local string Mutators; local string Settings; local int i; local int pos; if ( bFixCTFModifications ) { if ( Right(string(Level.Game.Class),12) ~= "MultiCTFGame" ) { DebugLog("MultiCTF detected. Fixing Mapprefix to CTFM"); Level.Game.Default.MapPrefix="CTFM"; Level.Game.MapPrefix="CTFM"; } } ActualPrefix=FixPrefix(Level.Game.MapPrefix); DebugLog("NextVirtualPrefix/NextRealPrefix/ActualPrefix:" @ TmpNextVirtualPrefix $ "/" $ TmpNextRealPrefix $ "/" $ ActualPrefix); if ( (TmpNextRealPrefix == ActualPrefix) && (TmpNextVirtualPrefix != "") ) { ActualPrefix=TmpNextVirtualPrefix; DebugLog("MapVote: Prefix OK. Mapchange seems to have been successful"); } if ( DefaultSettings != "" ) { Settings=DefaultSettings; JL01A1: if ( Len(Settings) > 0 ) { pos=InStr(Settings,";"); if ( pos < 0 ) { pos=InStr(Settings,","); } if ( pos < 0 ) { ExecuteSetting(Settings,True); Settings=""; } else { ExecuteSetting(Left(Settings,pos),True); Settings=Mid(Settings,pos + 1); } goto JL01A1; } } i=0; JL022D: if ( i < 16 ) { if ( CustomGameConfig[i].bEnabled ) { TestPrefix=CustomGameConfig[i].NewPrefix; if ( ActualPrefix ~= TestPrefix ) { if ( CustomGameConfig[i].Mutators != "" ) { Mutators=CustomGameConfig[i].Mutators; JL029F: if ( Len(Mutators) > 0 ) { pos=InStr(Mutators,";"); if ( pos < 0 ) { pos=InStr(Mutators,","); } if ( pos < 0 ) { StartActorMutator(Mutators); Mutators=""; } else { StartActorMutator(Left(Mutators,pos)); Mutators=Mid(Mutators,pos + 1); } goto JL029F; } } if ( CustomGameConfig[i].Settings != "" ) { Settings=CustomGameConfig[i].Settings; JL034F: if ( Len(Settings) > 0 ) { pos=InStr(Settings,";"); if ( pos < 0 ) { pos=InStr(Settings,","); } if ( pos < 0 ) { ExecuteSetting(Settings,False); Settings=""; } else { ExecuteSetting(Left(Settings,pos),False); Settings=Mid(Settings,pos + 1); } goto JL034F; } } } } i++; goto JL022D; } } function StartActorMutator (string ClassString) { local Actor A; local Class ActorClass; Log("StartMutator:" @ ClassString,'MapVoteLA'); ActorClass=Class(DynamicLoadObject(ClassString,Class'Class')); if ( ActorClass == None ) { Log("Starting Actor/Mutator FAILED. Could not DynamicLoadObject:" @ ClassString,'MapVoteLA'); return; } foreach AllActors(ActorClass,A) { Log("Actor already spawned:" @ ClassString,'MapVoteLA'); return; } A=Spawn(ActorClass); if ( A == None ) { Log("Spawning Actor/Mutator FAILED:" @ ClassString,'MapVoteLA'); return; } if ( A.IsA('Mutator') ) { Level.Game.BaseMutator.AddMutator(Mutator(A)); } } function ExecuteSetting (string Setting, bool bIsDefaultSetting) { local string Property; local string Value; local string Prev; local string Next; Property=Left(Setting,InStr(Setting,"=")); Value=Mid(Setting,InStr(Setting,"=") + 1); if ( bIsDefaultSetting ) { Log("Execute default Setting:" @ Setting $ ". Property:" @ Property $ ". Value:" @ Value,'MapVoteLA'); } else { Log("Execute Setting:" @ Setting $ ". Property:" @ Property $ ". Value:" @ Value,'MapVoteLA'); } Prev=Level.Game.GetPropertyText(Property); Level.Game.SetPropertyText(Property,Value); Next=Level.Game.GetPropertyText(Property); DebugLog("Changed Setting:" @ Property $ ". Previous value:" @ Prev $ ". new value:" @ Next); } function float MaxFloat (float val1, float val2) { if ( val1 > val2 ) { return val1; } else { return val2; } } function string GetPrefix (string MapName) { if ( Left(MapName,6) ~= "CTF-BT" ) { return "CTF-BT"; } return Caps(Left(MapName,InStr(MapName,"-"))); } function string FixPrefix (string Prefix) { if ( Right(Prefix,1) == "-" ) { return Left(Prefix,Len(Prefix) - 1); } else { return Prefix; } } function string RemovePrefix (string MapName) { return Mid(MapName,InStr(MapName,"-") + 1); } `HiBü¾/šH& ,°¼_šH, 9°¼�šH, 5°¼¼šH, 7° ïib]iNm39[�-K 40b%^–b, bKÿÿÿÿbkÿÿÿÿ¥b&uj?úúDQDPDKF¨MaxPriority:Uuhì-N T”a YTp X Tr #–Ëu ‘Sr#*P�a# ¨ASClass fixeduBotpack.Assaultb-K '41ï dO l]Ý »D L°^wD*Gz.DTO  DD¼[. L° $ [TO [-A -y  F€qYTN|Lc¨37aY zY(F%T–F, JzFLY'¥F'38a( L //================================================================================ // MapVoteHistory. //================================================================================ class MapVoteHistory extends Info; function AddMap (string MapName) { } function RemoveMap (string MapName) { } function int GetMapSequence (string MapName) { } function int GetPlayCount (string MapName) { } function SetMapSequence (string MapName, int NewSeq) { } function SetPlayCount (string MapName, int NewPlayCount) { } function Save () { } function MapReport (string ReportType, MapVoteReport MVReport) { } function string GetMap (int SeqNum) { } function string GetLeastPlayedMap () { } function string GetMostPlayedMap () { } f[oQ # L° lz *vË t_ L°rw_*[z._T&,z _t __¼ @€I 0 ) { CurrentMapName=Left(CurrentMapName,pos); } if ( CurrentMapName != "" ) { MainWindow.BrowseWebPage(MainWindow.MapInfoURL $ CurrentMapName $ ".htm"); } break; case ReportButton1: GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE REPORT PC"); break; case ReportButton2: GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE REPORT SEQ"); break; case TipsButton: MainWindow.BrowseWebPage("www.planetunreal.com:80/BDBUnreal/MapVoteTips.htm"); break; case AboutButton: MainWindow.TextArea.SetHTML("


Map Vote LA13



Core developement: BDB (Bruce Bickar)

Enhancements by: Cratos (cratos@gmx.at)

Support: http://forums.utassault.net
"); break; case CloseButton: Root.CloseActiveWindow(); break; default: } break; default: } } function Close (bool ByParent) { Class'MapVoteNavBar'.Default.bShowWelcomeWindow=False; Super.Close(ByParent); } aÂT} 6 `95së.} Të.~ Tÿÿÿÿ& i@ýWIro1ý0„�-qD2(º”¢a/!G4º�.¨”¢-ÖbDefenseSet false, Ending game normally.(First half end)(5.Ô¢-ð'hb l a€?'( €N€Z //================================================================================ // EmptyServerLevelSwitch. //================================================================================ class EmptyServerLevelSwitch extends Info; var int ServerEmptyTimeMins; var int ServerEmptyTime; var BDBMapVote MapVote; simulated function PreBeginPlay () { Super.PreBeginPlay(); ServerEmptyTime=0; SetTimer(60.00,False); } event Timer () { Log("NumPlayers: " @ Level.Game.NumPlayers); Log("Server empty for: " @ ServerEmptyTime); if ( Level.Game.NumPlayers == 0 ) { if ( ++ServerEmptyTime >= ServerEmptyTimeMins ) { MapVote.HandleServerEmpty(); ServerEmptyTime=0; return; } } else { ServerEmptyTime=0; } SetTimer(60.00,False); } TqJ%§4ˆ28çpp.…]¥½ has voted for  qS-J i]a/!% ~z€q,[X] q q0^.…]¥Ä'Ïš^ÿÿÿÿ abqíša% š^0a N˜^0%d êp000S.…]¥Ä,4d ^0aÛzjAccumulation29pppp.…]¥½ has placed Sa^ votes for q'FzjScorepppp.…]¥½ has placed U`^ votes for q'pp.…]¥½ voted for q'D( ÂH A6 k95së.A:ë.B:ÿÿÿÿ& …’€GoC�×6¨MapListIfNooneVoted currently set to:SE±šE%MapListIfNooneVoted set to 0 selecting random listEDd €?€@¨Maplist to be used:SEopps-Qb#÷—~o.ÿÿÿÿo€o~o.¨¨¨HandleServerEmpty(): Currentmap:oDesired List:SEB&¢˜Bh  B˜|h o˜šEMB ¥BFç¨p¨¨¨Server is empty forSX Minutes. Actual Map is:o. Switching to a random map in ListSE”R:O( ÂeD6 _95së.Deë.Eeÿÿÿÿ& C€\SDÉ-ô25)”¢a/!G(H”¢a/!U(\�-C 8%\–8,R‚-6h8 {6*8 #–Ë6*8 ‘&r#*ç¨ppMapVote: Error. CustomGameConfig[S8]: Failed to load GameClass:6*8 RR|#¾”¢¾(¥8ZÁ”¢a/!V268%-–8.È”¢õ#„rC*<°CÌ8.È”¢äÌC8.È”¢ä¥8Š8%¾–8.È”¢õ´‚›Cé8<´CÌ8.È”¢äÌ'¥84ð27W”Ì`wW*I‚W-Õ>„r~*1±W¥À~¥À~WWWÍßW”ÌðwW*Ù‚‚W-Õ w~W1´W¥À~¥À'WWÍt( €Fì//================================================================================ // AdminWindow. //================================================================================ class AdminWindow extends UWindowPageWindow; var UWindowCheckbox cbLoadDM; var UWindowCheckbox cbLoadLMS; var UWindowCheckbox cbLoadTDM; var UWindowCheckbox cbLoadAS; var UWindowCheckbox cbLoadDOM; var UWindowCheckbox cbLoadCTF; var UWindowCheckbox cbAutoDetect; var UWindowCheckbox cbCheckOtherGameTie; var UWindowCheckbox cbReloadMapsOnRequestOnly; var UWindowCheckbox cbCustGame[16]; var UWindowSmallButton RemoteSaveButton; var UWindowSmallButton ReloadMapsButton; var UWindowSmallButton CloseButton; var UWindowSmallButton ListCrashButton; var UWindowSmallButton ClearCrashButton; var UWindowHSliderControl sldVoteTimeLimit; var UMenuLabelControl lblVoteTimeLimit; var UWindowHSliderControl sldKickPercent; var UMenuLabelControl lblKickPercent; var UWindowEditControl txtRepeatLimit; var UWindowEditControl txtMinMapCount; var UWindowHSliderControl sldMidGameVotePercent; var UWindowComboControl cboMode; var UWindowEditControl txtServerInfoURL; var UWindowEditControl txtMapInfoURL; var UWindowComboControl cboMapVoteHistoryType; var UMenuLabelControl lblMidGameVotePercent; var UMenuLabelControl lblGameTypeSection; var UMenuLabelControl lblMiscSection; var UMenuLabelControl lblOtherClass; var UMenuLabelControl lblLimitsLabel; var UMenuLabelControl lblMapPreFixOverRide; var UMenuLabelControl lblRepeatLimit; var UMenuLabelControl lblMinMapCount; var UMenuLabelControl lblAdvancedSection; var UMenuLabelControl lblServerInfoURL; var UMenuLabelControl lblMapInfoURL; var UMenuLabelControl lblASClass; var UMenuLabelControl lblActGame; var UMenuLabelControl lblActPrefix; var UMenuLabelControl lblCustGame[16]; var UMenuLabelControl lblTemp; var UWindowCheckbox cbUseMapList; var UWindowCheckbox cbAutoOpen; var UWindowCheckbox cbKickVote; var UWindowCheckbox cbEntryWindows; var UWindowHSliderControl sldScoreBoardDelay; var UMenuLabelControl lblScoreBoardDelay; var UWindowCheckbox cbSortWithPreFix; var UWindowCheckbox cbDebugMode; var UWindowEditControl txtList1Title; var UWindowEditControl txtList2Title; var UWindowEditControl txtList3Title; var UWindowEditControl txtList4Title; var UWindowEditControl txtMapVoteTitle; var UWindowEditControl txtList1Priority; var UWindowEditControl txtList2Priority; var UWindowEditControl txtList3Priority; var UWindowEditControl txtList4Priority; var UWindowEditControl txtASClass; var UWindowCheckbox cbRemoveCrashedMaps; var UWindowCheckbox cbUseExcludeFilter; function Created () { local Color C; local int i; local int gap; Super.Created(); DesiredWidth=600.00; DesiredHeight=500.00; gap=14; lblGameTypeSection=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,10.00,90.00,20.00)); lblGameTypeSection.SetText("Visual Config"); cbAutoDetect=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,30.00,20.00,20.00)); cbAutoDetect.bAcceptsFocus=False; lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,30.00,60.00,20.00)); lblTemp.SetText("Auto Detect"); cbLoadDM=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 2 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 2 * gap,60.00,20.00)); lblTemp.SetText("DM"); cbLoadTDM=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 3 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 3 * gap,60.00,20.00)); lblTemp.SetText("TDM"); cbLoadLMS=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 4 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 4 * gap,60.00,20.00)); lblTemp.SetText("LMS"); cbLoadCTF=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 5 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 5 * gap,60.00,20.00)); lblTemp.SetText("CTF"); cbLoadDOM=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 6 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 6 * gap,60.00,20.00)); lblTemp.SetText("DOM"); cbLoadAS=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,25.00 + 7 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,25.00 + 7 * gap,130.00,20.00)); lblTemp.SetText("Assault:"); txtASClass=UWindowEditControl(CreateControl(Class'UWindowEditControl',480.00,24.00 + 7 * gap,140.00,20.00)); txtASClass.SetNumericOnly(False); txtASClass.EditBoxWidth=140.00; i=0; JL0452: if ( i < 16 ) { cbCustGame[i]=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,20.00 + (9 + i) * gap,20.00,20.00)); lblCustGame[i]=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,20.00 + (9 + i) * gap,200.00,20.00)); lblCustGame[i].SetText("empty"); i++; goto JL0452; } cbUseExcludeFilter=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',420.00,10.00 + 26 * gap,20.00,20.00)); lblTemp=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',440.00,10.00 + 26 * gap,170.00,20.00)); lblTemp.SetText("Use Exclude Filter"); lblLimitsLabel=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,110.00,50.00,20.00)); lblLimitsLabel.SetText("Limits"); sldVoteTimeLimit=UWindowHSliderControl(CreateControl(Class'UWindowHSliderControl',10.00,130.00,170.00,20.00)); sldVoteTimeLimit.bAcceptsFocus=False; sldVoteTimeLimit.MinValue=20.00; sldVoteTimeLimit.MaxValue=180.00; sldVoteTimeLimit.Step=10; sldVoteTimeLimit.SetText("Voting Time Limit"); lblVoteTimeLimit=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',190.00,130.00,40.00,20.00)); lblVoteTimeLimit.SetText(string(sldVoteTimeLimit.Value) $ " sec"); sldKickPercent=UWindowHSliderControl(CreateControl(Class'UWindowHSliderControl',10.00,150.00,170.00,20.00)); sldKickPercent.MinValue=10.00; sldKickPercent.MaxValue=100.00; sldKickPercent.Step=1; sldKickPercent.SetText("Kick Votes Req."); lblKickPercent=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',190.00,150.00,40.00,20.00)); lblKickPercent.SetText(string(sldKickPercent.Value) $ " %"); sldScoreBoardDelay=UWindowHSliderControl(CreateControl(Class'UWindowHSliderControl',10.00,170.00,180.00,20.00)); sldScoreBoardDelay.MinValue=1.00; sldScoreBoardDelay.MaxValue=30.00; sldScoreBoardDelay.Step=1; sldScoreBoardDelay.SetText("ScoreBoard Delay"); lblScoreBoardDelay=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',190.00,170.00,40.00,20.00)); lblScoreBoardDelay.SetText(string(sldScoreBoardDelay.Value) $ " sec"); sldMidGameVotePercent=UWindowHSliderControl(CreateControl(Class'UWindowHSliderControl',10.00,190.00,185.00,20.00)); sldMidGameVotePercent.MinValue=1.00; sldMidGameVotePercent.MaxValue=100.00; sldMidGameVotePercent.Step=1; sldMidGameVotePercent.SetText("Mid-Game Voter Req."); lblMidGameVotePercent=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',195.00,190.00,40.00,20.00)); lblMidGameVotePercent.SetText(string(sldMidGameVotePercent.Value) $ " %"); txtRepeatLimit=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,130.00,95.00,20.00)); txtRepeatLimit.SetNumericOnly(True); txtRepeatLimit.SetText("Don't Show Last"); txtRepeatLimit.EditBoxWidth=20.00; lblRepeatLimit=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',330.00,130.00,60.00,20.00)); lblRepeatLimit.SetText("maps Played"); txtMinMapCount=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,150.00,120.00,20.00)); txtMinMapCount.SetNumericOnly(True); txtMinMapCount.SetText("Reload Map List when"); txtMinMapCount.EditBoxWidth=20.00; lblMinMapCount=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',230.00,165.00,200.00,20.00)); lblMinMapCount.SetText("maps remain. (Elimiation Mode only)"); lblMiscSection=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,210.00,50.00,20.00)); lblMiscSection.SetText("Misc."); cbUseMapList=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,230.00,300.00,20.00)); cbUseMapList.SetText("Use the Map Cycle List instead of all maps"); cbUseMapList.SetFont(0); cbUseMapList.Align=TA_Right; cbUseMapList.SetSize(200.00,1.00); cbAutoOpen=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,250.00,300.00,20.00)); cbAutoOpen.SetText("Open Voting Window at Game End"); cbAutoOpen.SetFont(0); cbAutoOpen.Align=TA_Right; cbAutoOpen.SetSize(200.00,1.00); cbKickVote=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,270.00,300.00,20.00)); cbKickVote.SetText("Enable Player Kick Voting"); cbKickVote.SetFont(0); cbKickVote.Align=TA_Right; cbKickVote.SetSize(200.00,1.00); cbCheckOtherGameTie=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,290.00,300.00,20.00)); cbCheckOtherGameTie.SetText("Check Sudden Death OverTime"); cbCheckOtherGameTie.SetFont(0); cbCheckOtherGameTie.Align=TA_Right; cbCheckOtherGameTie.SetSize(200.00,1.00); cboMode=UWindowComboControl(CreateControl(Class'UWindowComboControl',230.00,230.00,120.00,1.00)); cboMode.SetText("Mode"); cboMode.SetEditable(False); cboMode.EditBoxWidth=90.00; cboMode.AddItem("Majority"); cboMode.AddItem("Elimination"); cboMode.AddItem("Score"); cboMode.AddItem("Accumulation"); lblActGame=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',230.00,260.00,200.00,20.00)); lblActPrefix=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',230.00,280.00,200.00,20.00)); lblAdvancedSection=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,310.00,50.00,20.00)); lblAdvancedSection.SetText("Advanced"); txtServerInfoURL=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,330.00,370.00,15.00)); txtServerInfoURL.SetNumericOnly(False); txtServerInfoURL.SetText("Welcome Page Web Server URL"); txtServerInfoURL.EditBoxWidth=210.00; lblServerInfoURL=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,345.00,400.00,20.00)); lblServerInfoURL.SetText("Example: www.MyServer.com:80/UnrealStuff/WelcomePage.htm"); txtMapInfoURL=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,365.00,370.00,15.00)); txtMapInfoURL.SetNumericOnly(False); txtMapInfoURL.SetText("Map Information Web Server URL"); txtMapInfoURL.EditBoxWidth=210.00; lblMapInfoURL=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',10.00,380.00,400.00,20.00)); lblMapInfoURL.SetText("Example: www.MyServer.com:80/MapFiles/"); cboMapVoteHistoryType=UWindowComboControl(CreateControl(Class'UWindowComboControl',10.00,395.00,370.00,1.00)); cboMapVoteHistoryType.SetText("Map Vote History Class Type"); cboMapVoteHistoryType.SetEditable(True); cboMapVoteHistoryType.EditBoxWidth=210.00; cboMapVoteHistoryType.AddItem("MapVoteLA13.MapVoteHistory1"); cboMapVoteHistoryType.AddItem("MapVoteLA13.MapVoteHistory2"); cboMapVoteHistoryType.AddItem("MapVoteLA13.MapVoteHistory3"); cboMapVoteHistoryType.AddItem("MapVoteLA13.MapVoteHistory4"); cbEntryWindows=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,420.00,320.00,20.00)); cbEntryWindows.SetText("Open Welcome Window and KeyBinder when player enters server"); cbEntryWindows.SetFont(0); cbEntryWindows.Align=TA_Right; cbEntryWindows.SetSize(320.00,1.00); cbSortWithPreFix=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,445.00,140.00,20.00)); cbSortWithPreFix.SetText("Sort Maps with PreFix"); cbSortWithPreFix.SetFont(0); cbSortWithPreFix.Align=TA_Right; cbSortWithPreFix.SetSize(120.00,1.00); cbSortWithPreFix.bAcceptsFocus=False; cbDebugMode=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',10.00,470.00,140.00,20.00)); cbDebugMode.SetText("Debug Mode"); cbDebugMode.SetFont(0); cbDebugMode.Align=TA_Right; cbDebugMode.SetSize(80.00,1.00); cbDebugMode.bAcceptsFocus=False; ListCrashButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',170.00,470.00,100.00,20.00)); ListCrashButton.Text="List crashed maps"; ClearCrashButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',280.00,470.00,100.00,20.00)); ClearCrashButton.Text="Clear crash List"; cbRemoveCrashedMaps=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',170.00,450.00,140.00,20.00)); cbRemoveCrashedMaps.SetText("Remove crashed maps"); cbRemoveCrashedMaps.SetFont(0); cbRemoveCrashedMaps.Align=TA_Right; cbRemoveCrashedMaps.SetSize(120.00,1.00); lblGameTypeSection=UMenuLabelControl(CreateControl(Class'UMenuLabelControl',420.00,10.00,120.00,20.00)); lblGameTypeSection.SetText("Game Types"); txtMapVoteTitle=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,30.00,190.00,20.00)); txtMapVoteTitle.SetNumericOnly(False); txtMapVoteTitle.SetText("Mapvote Title"); txtMapVoteTitle.EditBoxWidth=120.00; txtList1Title=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,45.00,190.00,20.00)); txtList1Title.SetNumericOnly(False); txtList1Title.SetText("List 1 Title"); txtList1Title.EditBoxWidth=120.00; txtList2Title=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,60.00,190.00,20.00)); txtList2Title.SetNumericOnly(False); txtList2Title.SetText("List 2 Title"); txtList2Title.EditBoxWidth=120.00; txtList3Title=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,75.00,190.00,20.00)); txtList3Title.SetNumericOnly(False); txtList3Title.SetText("List 3 Title"); txtList3Title.EditBoxWidth=120.00; txtList4Title=UWindowEditControl(CreateControl(Class'UWindowEditControl',10.00,90.00,190.00,20.00)); txtList4Title.SetNumericOnly(False); txtList4Title.SetText("List 4 Title"); txtList4Title.EditBoxWidth=120.00; txtList1Priority=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,45.00,160.00,20.00)); txtList1Priority.SetNumericOnly(False); txtList1Priority.SetText("Priority"); txtList1Priority.EditBoxWidth=120.00; txtList2Priority=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,60.00,160.00,20.00)); txtList2Priority.SetNumericOnly(False); txtList2Priority.SetText("Priority"); txtList2Priority.EditBoxWidth=120.00; txtList3Priority=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,75.00,160.00,20.00)); txtList3Priority.SetNumericOnly(False); txtList3Priority.SetText("Priority"); txtList3Priority.EditBoxWidth=120.00; txtList4Priority=UWindowEditControl(CreateControl(Class'UWindowEditControl',230.00,90.00,160.00,20.00)); txtList4Priority.SetNumericOnly(False); txtList4Priority.SetText("Priority"); txtList4Priority.EditBoxWidth=120.00; RemoteSaveButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',425.00,400.00,190.00,20.00)); RemoteSaveButton.Text="Save"; RemoteSaveButton.SetAcceptsFocus(); RemoteSaveButton.FocusWindow(); RemoteSaveButton.bDisabled=True; cbReloadMapsOnRequestOnly=UWindowCheckbox(CreateControl(Class'UWindowCheckbox',425.00,430.00,300.00,20.00)); cbReloadMapsOnRequestOnly.SetText("Reload Maps on request only"); cbReloadMapsOnRequestOnly.SetFont(0); cbReloadMapsOnRequestOnly.Align=TA_Right; cbReloadMapsOnRequestOnly.SetSize(150.00,1.00); ReloadMapsButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',425.00,450.00,190.00,20.00)); ReloadMapsButton.Text="Reload Maps"; CloseButton=UWindowSmallButton(CreateControl(Class'UWindowSmallButton',425.00,475.00,190.00,20.00)); CloseButton.Text="Close"; } function Notify (UWindowDialogControl C, byte E) { local int i; local string CustString; Super.Notify(C,E); switch (E) { case 2: switch (C) { case ListCrashButton: GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE LISTCRASHEDMAPS"); break; case ClearCrashButton: GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE CLEARCRASHEDMAPS"); break; case CloseButton: ParentWindow.ParentWindow.ParentWindow.Close(); break; case RemoteSaveButton: GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bDM " $ string(cbLoadDM.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bLMS " $ string(cbLoadLMS.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bTDM " $ string(cbLoadTDM.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bAS " $ string(cbLoadAS.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bDOM " $ string(cbLoadDOM.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bCTF " $ string(cbLoadCTF.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote VoteTimeLimit " $ string(sldVoteTimeLimit.Value)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote KickPercent " $ string(sldKickPercent.Value)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bUseMapList " $ string(cbUseMapList.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bAutoOpen " $ string(cbAutoOpen.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bKickVote " $ string(cbKickVote.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote ScoreBoardDelay " $ string(sldScoreBoardDelay.Value)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bAutoDetect " $ string(cbAutoDetect.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bCheckOtherGameTie " $ string(cbCheckOtherGameTie.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote RepeatLimit " $ txtRepeatLimit.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote MapVoteHistoryType " $ cboMapVoteHistoryType.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote ServerInfoURL " $ txtServerInfoURL.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote MapInfoURL " $ txtMapInfoURL.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote MidGameVotePercent " $ string(sldMidGameVotePercent.Value)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote Mode " $ cboMode.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote MinMapCount " $ txtMinMapCount.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bEntryWindows " $ string(cbEntryWindows.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bSortWithPreFix " $ string(cbSortWithPreFix.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bDebugMode " $ string(cbDebugMode.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote MapVoteTitle " $ txtMapVoteTitle.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List1Title " $ txtList1Title.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List2Title " $ txtList2Title.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List3Title " $ txtList3Title.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List4Title " $ txtList4Title.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List1Priority " $ txtList1Priority.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List2Priority " $ txtList2Priority.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List3Priority " $ txtList3Priority.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote List4Priority " $ txtList4Priority.GetValue()); if ( (txtASClass.GetValue() == "") || (Len(txtASClass.GetValue()) < 10) ) { txtASClass.SetValue("Botpack.Assault"); } GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote ASClass " $ txtASClass.GetValue()); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bRemoveCrashedMaps " $ string(cbRemoveCrashedMaps.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bReloadMapsOnRequestOnly " $ string(cbReloadMapsOnRequestOnly.bChecked)); GetPlayerOwner().ConsoleCommand("ADMIN SET MapVoteLA13.BDBMapVote bUseExcludeFilter " $ string(cbUseExcludeFilter.bChecked)); i=0; JL0CFC: if ( i < 16 ) { if ( cbCustGame[i].bChecked ) { CustString=CustString $ "1"; } else { CustString=CustString $ "0"; } i++; goto JL0CFC; } GetPlayerOwner().ConsoleCommand("Mutate BDBMAPVOTE CUSTSETTING" @ CustString); GetPlayerOwner().ClientMessage("Settings saved!"); break; case ReloadMapsButton: GetPlayerOwner().ConsoleCommand("MUTATE BDBMAPVOTE RELOADMAPS"); ParentWindow.ParentWindow.ParentWindow.Close(); break; case cbLoadDM: if ( cbLoadDM.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbLoadLMS: if ( cbLoadLMS.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbLoadTDM: if ( cbLoadTDM.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbLoadAS: if ( cbLoadAS.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbLoadCTF: if ( cbLoadCTF.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbLoadDOM: if ( cbLoadDOM.bChecked ) { cbAutoDetect.bChecked=False; } break; case cbAutoDetect: if ( cbAutoDetect.bChecked ) { cbLoadDM.bChecked=False; cbLoadLMS.bChecked=False; cbLoadTDM.bChecked=False; cbLoadAS.bChecked=False; cbLoadCTF.bChecked=False; cbLoadDOM.bChecked=False; } break; default: } break; case 1: switch (C) { case sldVoteTimeLimit: lblVoteTimeLimit.SetText(string(sldVoteTimeLimit.Value) $ " sec"); break; case sldKickPercent: lblKickPercent.SetText(string(sldKickPercent.Value) $ " %"); break; case sldScoreBoardDelay: lblScoreBoardDelay.SetText(string(sldScoreBoardDelay.Value) $ " sec"); break; case sldMidGameVotePercent: lblMidGameVotePercent.SetText(string(sldMidGameVotePercent.Value) $ " %"); break; default: } break; default: } } function Paint (Canvas C, float MouseX, float MouseY) { Super.Paint(C,MouseX,MouseY); C.DrawColor.R=0; C.DrawColor.G=0; C.DrawColor.B=0; DrawStretchedTexture(C,10.00,20.00,380.00,2.00,Texture'WhiteTexture'); DrawStretchedTexture(C,420.00,20.00,200.00,2.00,Texture'WhiteTexture'); DrawStretchedTexture(C,10.00,120.00,380.00,2.00,Texture'WhiteTexture'); DrawStretchedTexture(C,10.00,220.00,380.00,2.00,Texture'WhiteTexture'); DrawStretchedTexture(C,10.00,320.00,380.00,2.00,Texture'WhiteTexture'); DrawStretchedTexture(C,405.00,20.00,2.00,490.00,Texture'WhiteTexture'); } Â2G6 D95së.G2ë.H2ÿÿÿÿ& FÜPMNÄ‘ý/a0 L¥M10s-J6q±”±?’_ ,pNextURL = ”ìpNextSwitchCountdown = U”ôqz”ì7\°”ô?%ç¨Map change Failed, bad or missing map file. TravelMap:T!-dTm OH:m ” RH(q” RH( ”—l%8¦l’šl%9w ”±M”ÌkwM*T‚w.…M*M-Õc.…M¥Ä'T—cÿÿÿÿTšc0%L.…M((MMÍÊpSh seconds left to vote.' ¦h0šh,<101 Minute left to vote.'f”Ì0wf*fa/!@.ÒfF, ffÍägšh, 1110 seconds left to vote.'ã‚–h,  —h%f”Ìãwf*Ìfa/!@.Òf FhffÍ”0ß‚´­?h?,?% —h%12^ %M”ÌÃwM*¬‚M-Õw.…M*c.…M¥Ä'¬—cÿÿÿÿ¬šc0%¥^ MMÍ-ßš^ %13D'ûšh%14D' €b//================================================================================ // AdminTabWindow. //================================================================================ class AdminTabWindow extends UWindowScrollingDialogClient; function Created () { ClientClass=Class'AdminWindow'; FixedAreaClass=None; Super.Created(); } öYK,H¹ µöK7�-b -b '0-]^7q!Xu—”¢Ñdd”¢Ñ–”¢Ñd16bd”¢Ñ¨CurrentPlayerCount decreased:Sd0—”¢Ñ%D(F³—”¢îdf–z,]šz%15¥z 16z%”Ìýw*æ‚‚a/!kw¥*š¥ÄdýÍ‹¥dI„„r*�-Õ�a/!k17 pppnew Player ¥½, .…Þà-|18'S.…Þ19ap¥½ has been refused access to the server (1).'a ²T.…¥½19bp¥½ has been refused access to the server (2).'a Ña/!%Q, "ÿš:.…¥Ê,ÿQ%"Q:.…¥Êk êp000S.…¥Ä,Y ppSQk .…¥½20i .…¥Ä'Ô–i 0&5Y (à5Y '©‚-V �a/!%21V‚”¢a/!G.¨”¢-Ö22 ™”¢-Ø23–-qL.…((©U.…24 ÂrN6 a95së.Nrë.T rÿÿÿÿ& f€£€T T T S þÿÿÿmS ýÿÿÿkS ÿÿÿÿ[ S ÿÿÿÿ| S ÿÿÿÿFS ýÿÿÿc T ZS ýÿÿÿn S þÿÿÿFS ÿÿÿÿ` S öÿÿÿ`S ÿÿÿÿd S ýÿÿÿs S ÿÿÿÿS S ýÿÿÿv S þÿÿÿn| ðÿÿÿr W óÿÿÿYS ýÿÿÿd T mS ýÿÿÿe d üÿÿÿhS þÿÿÿj^ õÿÿÿYS ÿÿÿÿES þÿÿÿeS þÿÿÿcS þÿÿÿmS ÿÿÿÿD| æÿÿÿY | ÷ÿÿÿkS þÿÿÿiEôÿÿÿO | îÿÿÿe S þÿÿÿtd üÿÿÿXS éÿÿÿGE þÿÿÿdS þÿÿÿqS þÿÿÿ`HëÿÿÿW HëÿÿÿV HëÿÿÿP S ÿÿÿÿ^ | Õÿÿÿ`D÷ÿÿÿfDüÿÿÿOS þÿÿÿPDüÿÿÿNS þÿÿÿ[S ýÿÿÿw S þÿÿÿdk óÿÿÿS | üÿÿÿgS þÿÿÿpHÚÿÿÿh| âÿÿÿm[ èÿÿÿ[[ êÿÿÿpS þÿÿÿj[ Úÿÿÿc T Z | ðÿÿÿgEÆÿÿÿjFèÿÿÿN S ýÿÿÿN| üÿÿÿQF»ÿÿÿHS éÿÿÿVDáÿÿÿa | ûÿÿÿw d óÿÿÿ\ | ÷ÿÿÿ]| îÿÿÿhS ¿ÿÿÿMS öÿÿÿ_S ýÿÿÿ|Fêÿÿÿ\EûÿÿÿHd üÿÿÿDíÿÿÿ_EîÿÿÿKT a| ÊÿÿÿG Eüÿÿÿ^d üÿÿÿW| âÿÿÿ\d üÿÿÿfS þÿÿÿod æÿÿÿEÝÿÿÿOS þÿÿÿ]S þÿÿÿgS ýÿÿÿm HðÿÿÿK S ÿÿÿÿ^ S öÿÿÿbEèÿÿÿHS þÿÿÿkS ÿÿÿÿk S öÿÿÿaS þÿÿÿiS ýÿÿÿj S ýÿÿÿLS ªÿÿÿtk êÿÿÿgd üÿÿÿYd Éÿÿÿ| õÿÿÿo S éÿÿÿvS éÿÿÿwS éÿÿÿzS éÿÿÿyd Éÿÿÿ!d ðÿÿÿ,| ÍÿÿÿrS éÿÿÿuS ýÿÿÿl S þÿÿÿZd †ÿÿÿS éÿÿÿxS ÿÿÿÿHDáÿÿÿiFáÿÿÿs DèÿÿÿLS ýÿÿÿE d âÿÿÿ6S éÿÿÿnd Õÿÿÿ<| ÆÿÿÿaEüÿÿÿWd óÿÿÿ[ T ¿ÿÿÿODáÿÿÿjHèÿÿÿSS ªÿÿÿrD²ÿÿÿLd æÿÿÿ| ÖÿÿÿQd ¡ÿÿÿd æÿÿÿWd ˜ÿÿÿ!S éÿÿÿ@| âÿÿÿo| Áÿÿÿqd üÿÿÿEØÿÿÿ@d ÚÿÿÿEêÿÿÿOd üÿÿÿ_| æÿÿÿNd üÿÿÿ,d ðÿÿÿN|  ÿÿÿld ûÿÿÿ@d üÿÿÿ| üÿÿÿn| šÿÿÿKS ÿÿÿÿi | üÿÿÿm| ¸ÿÿÿJS ýÿÿÿD DüÿÿÿMDüÿÿÿPD xÿÿÿPF²ÿÿÿVd üÿÿÿQd °ÿÿÿE[ ÷ÿÿÿeDËÿÿÿ_EØÿÿÿAd °ÿÿÿ]S ÿÿÿÿW E¡ÿÿÿuS ýÿÿÿz d ðÿÿÿ]D÷ÿÿÿNF¸ÿÿÿNS éÿÿÿsS éÿÿÿUS ýÿÿÿG EÖÿÿÿXS éÿÿÿpd ðÿÿÿQd óÿÿÿ_ d °ÿÿÿr^ ðÿÿÿJD xÿÿÿYE þÿÿÿbd üÿÿÿed üÿÿÿn[ •ÿÿÿId šÿÿÿ| üÿÿÿkd ðÿÿÿ[S ªÿÿÿsd üÿÿÿE[ Ÿÿÿÿcd uÿÿÿ_d uÿÿÿ^d ðÿÿÿu[ Ÿÿÿÿ d üÿÿÿBd ¤ÿÿÿd ðÿÿÿ}k šÿÿÿZEÁÿÿÿpH÷ÿÿÿZEüÿÿÿZ d óÿÿÿvEüÿÿÿld óÿÿÿ] | üÿÿÿpEüÿÿÿk[ ŸÿÿÿF d üÿÿÿVDÉÿÿÿbk šÿÿÿJDÁÿÿÿPD¤ÿÿÿoD¤ÿÿÿtEÁÿÿÿu| êÿÿÿv| ØÿÿÿE| ÁÿÿÿuDÉÿÿÿLEÖÿÿÿVE¤ÿÿÿj| Øÿÿÿ|EHÿÿÿiDØÿÿÿ}[ ØÿÿÿBEØÿÿÿCFØÿÿÿzFêÿÿÿtFØÿÿÿE}ÿÿÿQEÖÿÿÿRFØÿÿÿ~EüÿÿÿIÐxJZó·FMR¾Fwa(_Ïš~c @øˆ±C  c‚£Bjp‚£MjZ„éRc&D†‡†qg¬ãKu¬‡±} D­ézT)R­‡} fÖ£OjtÖ†L ^؈ªn  kØ£Cjx؈ O  bÚ‡ØW  oÚ†­U |Ú†LHÛêKZWÛ‡¢o q܈ªJ  ÜéG~L݇vJã†}~ X㈘A  eãˆG qã£xj~ã ªg  hå‡Z t刭O  Bæ‡×j NæçQ \æ‡ x k戭P  yæšEiFç‡Èo oëˆ×C  }ëˆS Jì†A] W쇰o dì‡ p  rìˆC  ì‡Áo L툭o Zíˆ fí†Ø[ rí†~ ~톘X  Jîˆ8R Wî‡ r  cî†8C  pî‡ s }îˆC  Kï‡ q  Xï†~ eïˆäe  rï†Ø~ ~ï  M  KðˆØC  Xð†­c eðêu\qð‡·o Mòˆ}C  [ò‡Îo gòˆn  uò‡P Bóˆ P  Póšx]óˆ­m  Uü†ëm  büˆ«n  nüˆ~ {ü‡ v Gý‡SVý‡ y dýèPrsýš@se‚†AG X‡†W~ e‡ãDrr‡†[ @ˆ‡4f Mˆˆøn  [ˆ‡ohˆˆ Q  vˆ‡úSC‰‡×oQ‰†ŸR  _‰  N  l‰ˆ­P  y‰†} EŠˆªI  RІ˜~ ^ŠšJ|kІŸS  gކƒi  tކ``  A�†[ N�‡o[�‡n i�ˆM  w�‡I D�†q S�çR `�ˆØt  o�ˆø}  |�‡SI‘ˆ°n  W‘‡�b d‘ËyJr‘†Q~ |“†| I”‡îeV”‡™e d”‡ K q”çP ”‡£e M•ˆcC  Z•‡v g• È}  u•‡|v B–‡õ^Q–ˆÐn  _–‡­b k–ˆ±~  y–êDlE—ˆDU  q™ˆh  ~™‡ío JšˆU Xš‡x eš‡U sš‡{A›‡| O›‡} ]›ˆOY  k›ˆºn  w›‡@ Dœ‡ z Rœ‡ü^`œˆén  nœ†­L  zœ‡�j G�‡ w  U�ˆn b�ˆ8C  o�ˆŸm  {�†¢c  Hž Èe  Už‡Âo ažˆeC  ož Á}  |žœP IŸ‡4j  VŸ‡e~ cŸ†8\ qŸ‡Øu  }Ÿ‡¹o J ‡´SX ‡b f ˆäC  t ˆ n  @¡ˆØR M¡†±k  Z¡œAV g¡‡¸Ss¡††~ A¢†z N¢†y [¢=lh¢‡«ST¤†`  b¤‡Þo¤† ~ }¤‡°SJ¥ˆªK  X¥œu e¥‡qC r¥‡W ¥‡X M¦†[[¦ˆ�n  j¦‡¤o w¦†F E§œt R§ˆŸP  _§‡­o l§ˆ­w y§‡°^F¨ãDS T¨‡|y  b¨ˆg  o¨ˆ�w |¨‡¶a  I©ˆDV  V©ˆ:C  b©ˆ±B n© ·}  {©ˆ×n  Hª‡�o Uªˆ<p  bªœQ oª†q |ª†WR I«ˆªl V«‡o b«‡§o  p«†/]  }«†`_  J¬‡p W¬†}F e¬‡r r¬‡R@­‡Q O­‡©E ]­‡R j­‡S x­‡ d F®ˆ _  T®‡T a®œ` o®FN[ |®†G Wº†ën  dºˆãC  qº‡ºS}ºˆãm  K»ˆ }  X»‡c d»ˆëC  r»‡ j »ˆ@  M¼‡ëRZ¼†ëm  h¼†ø~ u¼†�@  B½ˆÞm  O½ˆÞP  \½†×z  i½‡4Du½‡Ïo C¾‡Êo Q¾†©t  _¾‡4d l¾‡go {¾ˆ×}  I¿ Án  U¿†/x  b¿‡¾_  o¿ˆJY  |¿‡|w HÀœGj VÀ‡×W bÀˆ­C  pÀ‡¨a }Àˆ�C  KÁˆs XÁ†:~ eÁ‡š_  rÁ‡’_  Á†T  Lˆ{ YœS  f‡¹z  s‡h @Çi NÜl \Çj iÇk wÇl Ećm SĆ¿@  aĆJ  nĆh~ {ćhHŇq VŇz dÅßHvrŇ|hʇ{ vʇ~ Dˇ Rˈª}  `ˇí^ mˇð^ zËœtĠY V̈[  ḋZ q̇[ ̇\ M͇] [͇^ i͇_ w͇` E·a SΆáyaΆB  pΈªN  }Άª`  IφA  VχMcφ@  rÏ Áe  ÏæS[KІ_ fÑœ˜Y  sшˆB цƒ^  KÒ†cq  WÒ†Wx cÒ‡Qk pÒˆE Òˆ>n  KÓ†8t  XÓ†1X eÓ‡1m rÓˆ™A  @Ôˆìn  MÔˆãP  ZÔ†�U gÔ‡�Z  tÔˆ×Z AÕ†@c NÕ Èn  ZÕ È  gÕ ·n  tÕˆ±A AÖ ·e  NÖ‡²o ZÖ†¢~ hÖ‡˜_  uÖ†nBׇØs Q× a`× bo× c~× dM؆f\؆gk؆hz؆iIÙ‡›| XÙ†èf  eÙˆl  qÙ‡ D}Ù‡ t KÚ‡ | YÚ‡ } gÚ‡ ~ uÚˆån  CÛ†ñu PÛˆG  ]Ûˆ÷C  jÛˆùC  wÛ‡  DÜœK  R܆ùu _܇ @ l܇ A z܈N  H݇ B U݇ C c݇ J q݇ L ݇ YMÞ† G \Þ† l iÞ† c vÞ†X~ B߇XqO߇4e^߈�C  m߇“o z߇d Hàˆ–a  Và‡Oo cà‡Op qà‡b àˆ¿C  MáßIBZá‡àC  \çˆC  iç‡nvç‡æ^Dè†üc  Rèù-N_èˆ�A  mí†`~ yí†oFî†`a  Uî €I bî‡îo  oîˆhA  |î†yHï†zWïˆèC  fïˆZ sïˆìR  ï†U Kð†qXðˆ±E gð†S~ sðœS @ñœY MñêQHZñ†ƒQ  bóœa oó‡Á^|óœb Jô†Wg  Wô‡·^dôœX rôˆ e  ôœW LõˆüR YõˆN  eõœV rõ†ü[ õˆ[  Lö‡B Yö‡Oo gö†Qg  uö†ã~ B÷ˆõR O÷†�~ \÷ˆçC  i÷ˆQn  v÷œøK CøãDT Oø‡új  ]ø†õ~ jø†L  wø I  Dù†ŸQ  QùˆŸR ^ùˆ±C kù‡Om xùˆH  Fú†õc  Sú‡ªZ `úˆ†r núˆªL  {úœa HûˆñC  Uû‡ H bû‡ G pûœOo ~û‡ F Jü‡­s XüˆéC  güˆc tüˆäY  Aý‡|Mýç1[ý‡ E iý†°[ wý†  Cþ ¢}  Pþ ´B  ]þ‡O iþ†Ø[ wþã¶r Dÿˆy QÿˆØr  ^ÿ‡¿m kÿ†/a  yÿ ¢n  F€ˆk  S€‡ D `€‡4o n€�†9z{€†'x uƒ‡ { B„‡Ûo  P„‡ÑW ]„†Jk„†Kz„ˆeA  H…ˆ×U U…œ�\  b…ˆso…œa~…†×^  M†ˆrZ†œPi†ˆØ[  x†‡Ñ| D‡œá{S‡œ`a‡ˆØT p‡œ} }‡ˆH IˆœjVˆœ^eˆˆGtˆ†~  C‰‡§oP‰†,~ ^‰†Øv  k‰ °}  w‰‡o DŠˆÛT RІj  ^Š °n  kЇúTxІ¿W F‹ˆkS‹ˆlb‹‡s q‹œºK ‹ˆØN  KŒœpXŒã¶o gŒ a uŒ†¸[ B�‡DN�‡t \�†C  j� b w�†D  Dއu Qކm_Žˆ©R nŽ c {Ž d H�ˆ°D  U�ˆàY  b�‡åp o�†g  ~�‡w K�œ±@ Y�œ«K f�†é[ r�œªH  �‡æC L‘‡ODZ‘œb h‘œR u‘†ñl  B’ ·  N’ˆño [’ˆB h’‡2Xu’ˆt C“‡Or P“†ë}  ^“‡Oq k“‡On y“œ¢O G”†>~ S”†÷[ `”† { m”†m y”‡È^F•œ R  T•†I a•œp n•†ùl  {•ˆùo G–évh T–ˆëo |¢ˆQ{  I£†ç@  U£ˆ±D b£ˆ÷l o£œV  {£ˆðl G¤†–@  S¤‡d  _¤ õo  l¤ˆüo  x¤‡èo E¥œ@ S¥‡A _¥ˆõl m¥ˆWh  y¥ˆW{  F¦†ˆ~ S¦ˆêl `¦ˆD l¦ g  x¦œv D§‡4g Q§†4e  _§†_l§œ} {§œ4f G¨ˆg  T¨ˆr `¨‡~j  m¨†Wj z¨†eG©ˆnV©‡y e©†qs©ˆôl Bª†[ Nªœ`[ª Á  jªˆowª†{  F«ˆ\  R«ˆXC  _«‡V l«†X]  z«ˆs F¬œSS¬œTb¬†A\ q¬†AC  ~¬†`{ J­†Wf  V­‡WZ c­†W] q­†4d ~­‡4c K®ˆ4h  Y®†Wk f®œ4i  s®Ü}v@¯ˆ‹w v°œWi  C±ýOw O±†�W ]±ý“w  i±‡C v±‡QZ D²œj R²‡E _²†™@  m²†ŸU  y²†ŸT  E³ˆr R³‡G _³ˆo m³† q z³œžl  F´‡H R´œT `´†y m´†z z´‡I Gµˆ9w Uµˆ>e  aµ‡J mµ‡K {µ†9G I¶ˆ<q  V¶ Ì}  b¶†9} n¶ˆl {¶œ†s H· Ìn  T·†8u  a·ˆÌw n·ˆk {·†2W H¸œ^ U¸‡M b¸ˆT p¸‡N |¸‡©o J¹†¶[ X¹ý©w e¹†|d s¹ˆ¸N  @º‡Ãj Mºœ¿K [º†/\ gº†/m tº‡Æj @» .{  N» .|  [»‡Åo h»�†HJv»ýÅw @À‡Ìj NÀ °  \À °e  iÀ†Ë{  uÀˆÐN  AÁ†$~ NÁ‡#o  [Áˆ™@  hÁˆ@G uÁ‡™B  BÂ�†'!O†ázp†@q ‡Ñm LÜ| ZƨN  gÇ×m sÜbAĆÓM PĆc\Ć{kÄœ` zĆs FŇ g  SŇ¢^`ņJ nņA {ņG HƆFUƆF dƆx qƆI~Ɔz Mdžy ZÇœg gÇ ¢  sÇœF  @ȆDMȆæ[ \ȆCiȆÞ~ xȈÞr  DɈÞX  QÉ ¢e  ^Ɉy kɆë{  xÉœ{ EʈõC  QʆL ^ʆú^  kʈëG  xʈëH Eˆúu RˆçW _ˈO  kˆú[ xˈúN  EÌœU  R̈}  _̆ ^  l̆dẍw GÍýèw T͆k b͈_  o͇–| |͆^  IΜ€{ VΈf  bΆ’f  oΈðJ  |Άð~ IÏ íU Vφô~ bφê~ oφX |ψõH  IЈél VЈáG  cІõ~ oІY |ÐçZIшáH Yцám  fц÷~ sÑç\@Ò†àU  PÒ‡àV ]Ò‡AkÒœ@ yÒœA FÓ†Õt SÓˆúH _Óˆúo lÓˆúq yÓ†úm  FÔˆ[ SÔ†h  `Ô�glÔ�AJÕ�hgÕ‡ o EÖ  n  SÖ�m`Ö  }  ~Ö‡o K×�mY׆B w׆n  C؆MPØ�8_؆ÒL  |؇ÒW IÙçÒR WÙ†o  eÙ�lqÙ�oOÚ†úm  lÚˆÉC  yÚœ/y  EÛ†Éc  RÛ†‚U _Û‡0vkÛ‡0f yÛœ t F܈qW SÜœ†u `܈†O l܈†N yÜ ÊT FÝ ÊU S݈†M _݈ÇC  l݈†P x݆Çc  EÞç†rRÞ†ÆN  aÞ†Gt mÞ‡JX yÞ†Qf  G߆À~ Tß ÂT `ß ÂU m߆Qx yßçQgFà†Pv Vàœ¿@ bà†¿G nàˆTx {à Vw Gá†_v Sᆾ~ _áð~láä{f@â gT fã gU sãˆuw @ä un  Mä ¹T Zä ¹U gä u}  säœyd 䆒~ L圜d Yåœf eåœh rå†e å†{ L戫F  Y戰_  f术u  sæ‡P æãGEM爴_  [ç |x  hç†i uç ²T Bè ²U Oè†h [船w hè†Zuè†ÃN  D醯~ QéœÌ@ ^é†ÌG ké†[xé†]Gê ­n  Vê ­}  cê†Ë@  pê†g }êœÐ~  Jë ÎT W놨[ dë ÎU që†f }ëœP JìœO WìœN dìœM qì ¤T ~ì ¤U Kí‡vW휠d fíœ×x  sí‡Øj @î E  Nî†à~ [îœæ@ hî†íN  uî†ðN  BïèL|Oï‡G K÷‡P Y÷ �n  g÷ �}  t÷‡ G Aø‡ P Oø ›w ]ø‡G jø‡P xø†š~ Fù‡G Sù‡P aù†˜~ oùœ–d |ù w Iú‡]  VúˆC  cú‡G pú íT ~úˆ’C  Kû‡’b Xû�sifû‡”C  Oý�ÐW-\ý�Ï€pIþ�Õ€kyÿœ˜Z  d��CVq��€.xGƒ�]†�Û€,[\ˆ‡�_ wŠ�×JE‹ˆx O’�Ïm\’�ÕiI”œz r•�Ä<e •�.xd¡�Ýh\¥�Ä4+D¨‡§C  o¨�ÐGW6|¨�G7zr©�g HTl«œ©Z  @­�[9eL­†\q±�×GS@²œ«Z  S¹ˆ«C  `¹�ÄG<[l¹�ÜNT0GÁ�ÝGn[ñˆ±~ Ió�ÐPW-Vóˆ± Cô�P7rPô�ÄP<qBö�Jn sü�ÝPEaˆ�ÍPKf‹‡¼C  qŒ�Ð&W-~Œˆ¸C  k��&]w��5AT��*Nô�P ­mZ  kÓ �b^xÓ ˆ@Z  VÕ �VfbÕ ¯4E 4bRHØ �qT(jª ˆEZ  R« �Ó D$_« �aQcÏ ¯E 4x„tÕ �2lÚ ¯IE 4V^Û ms[tß � KOá �qU(Zå ¯E 4bBæ � +ydí ‡MZ  ]ï �õ !|"jï �qH,f’ � FR“ ¯qE 4qX™ � iiIª �Êq_|r« ˆSZ  n® �Û ,mz® �"q g° � GX¼ ¯^E 4V_Á âXhuÅ ˆXR ]ã †Xx jã †X\  wã mt[Dä �Ëq^*_å � czIæ ¯ E 4xºCê †`Z  {¤�`bH¥¯BE 4qj©�_y[¯‡hb T´�ï Qc´�^^t¹ðZR¿†}i g¿ˆgC  t¿ˆgk  AÀˆgl  NÀˆgR [À†gb  hÀ†gM  uÀ gn  BÁ g}  OÁ g  \Á ge  iÁ�ß 0uÁ‡}Se†i^ t†}Z  AÃ�û ^NÆi_ lĈy  xĈyq EÅ�:dQÅ�eGuÙ¯@E 4Y|Ú¯‚E 4P UàœƒZ  eìù|wrì�3Tiî¯pE 4s }ñ††Z  pû� a|û ˆZ  ]ý�>zjý�Ó4 d€ã‰o  cŠ�ß4FpŠˆ’Z  v‹ ‹n  BŒ ‹}  OŒ�4SB[Œ¯­E 4_d]�¯”E 4V|ó�M&Rø�õ4!Txømv[Lü†˜Z  gý�Î4Bwtý¯E 4[Nkÿ�c]FÎ�4PLcÖˆ™a  oØœ�Z  |Ø�û4*IÙ�bQsÙ�4ebDÜ�Wyfà�Fy_截M  Xê¯GE 4F;eê¯PE 4P$k¥ˆªC  {ɆªF Hʇªm Uʆª~ cÊ�ÓOMpÊ�ÑO!\ }Ñ�DnYÜ�VPGø¯®E 4_Wýˆ°Z  všùApC›�ûO3s��aofž ´Z  U£¯E 4Cb£¯E 4heª�`uM²¯¾E 4VBµ�Ó|HX¹†¸Z  `¾�pym¾�ß|xfÁ�0~^à¹n  \È ¹}  iȈ¹C  vÈmx[CÉ�|Sv^ʯ�E 4^TЯ&E 4Q%ræ‡Ão CŒ�4>PŒ‡Æo N��Ñ|!M[��*>hއÌo f�†Å{  s��|fY�†É{  X‘�|PZd‘�5I~’ˆÐZ  G”�ï|ST”¯†E 4X(g™�WÁ�UJVůE 4S^`ȯE 4f7s¦œ×y  YÞ¯E 4OeÞ¯€E 4Jtõ�Ly~”�ëER"w¦ˆG IɆ@ VɈA cɆB pɆC }É�ÓqIʯaE 4kzÎ�gEeè†åq  jë‡åj vë¯E 4}¡Dì�ibAŽ �ï]lc� �l\O• ˆéo k— œéZ  w— �TiD˜ ¯E 4W m™ ˆæA  D¦ �[3P¦ �*oC§ œñZ  r¨ ¯|E 4T<¨ �4sSå �SVFç †÷l  \é �k[hé ‡óCë �(qQë ˆ÷o Bñ �RqOñ ¯E 4l@ó �L^lú �[{Jý ˆR Eƒ!�&AQƒ!¯áE 4t7R‰!ˆüC  FÁ!¯E 4iSÁ!†W  |È!œX  IÉ!�KEVÉ!¯OE 4z1[×!ˆ n  U‰"�Â6Gb‰"†Y  iŠ"�ýrhvŠ"ˆZ  ^Ž"œZ  jŽ"¯™E 4e wŽ"�J@\›"�Â6E\£"‡w  a¤"‡S n¤"ˆ Z  {¤"�CyG¥"ˆQ  @­"�Â6GL­"œZ  S®"�Dq `®"ˆZ  Qº"¯E 4Rì]º"�Â6Do¦%‡` s§%�ÜNcA¨%ˆZ  d·%¯4E 4mp·%�ö,y]½%�Â6GVÎ%‡m ]Ï%‡´C  kÏ%ˆZ  xÏ%