From d5aa118c32ed3514a3580f320cdd48d9941c012a Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Fri, 26 Jun 2020 07:52:58 +0300 Subject: [PATCH 1/3] feat: skip trader button --- ServerExt/Classes/UI_MidGameMenu.uc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 5fdbb45..584e853 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -23,10 +23,11 @@ function InitMenu() Super(KFGUI_Page).InitMenu(); AddMenuButton('Mapvote',"Map Vote","Show mapvote menu"); AddMenuButton('Settings',"Settings","Enter the game settings"); + AddMenuButton('SkipTrader',"Skip Trader","start voting for skip trader"); AddMenuButton('Disconnect',"Disconnect","Disconnect from this server"); SpectateButton = AddMenuButton('Spectate',"",""); AddMenuButton('Close',"Close","Close this menu"); - //AddMenuButton('Exit',"Exit","Exit this game"); + AddMenuButton('Exit',"Exit","Exit this game"); for( i=0; i Date: Tue, 30 Jun 2020 14:22:26 +0300 Subject: [PATCH 2/3] skip trader button is active only on trader time --- ServerExt/Classes/UI_MidGameMenu.uc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 584e853..2523a29 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -8,7 +8,7 @@ struct FPageInfo var KFGUI_SwitchMenuBar PageSwitcher; var() array Pages; -var KFGUI_Button AdminButton,SpectateButton; +var KFGUI_Button AdminButton,SpectateButton,SkipTraderButton; var transient KFGUI_Button PrevButton; var transient int NumButtons,NumButtonRows; @@ -23,7 +23,7 @@ function InitMenu() Super(KFGUI_Page).InitMenu(); AddMenuButton('Mapvote',"Map Vote","Show mapvote menu"); AddMenuButton('Settings',"Settings","Enter the game settings"); - AddMenuButton('SkipTrader',"Skip Trader","start voting for skip trader"); + SkipTraderButton = AddMenuButton('SkipTrader',"Skip Trader","start voting for skip trader"); AddMenuButton('Disconnect',"Disconnect","Disconnect from this server"); SpectateButton = AddMenuButton('Spectate',"",""); AddMenuButton('Close',"Close","Close this menu"); @@ -45,6 +45,7 @@ function Timer() if( PRI==None ) return; AdminButton.SetDisabled(!PRI.bAdmin && PRI.WorldInfo.NetMode==NM_Client); + SkipTraderButton.SetDisabled(!SkipTraderIsAviable(PRI)); if( !bInitSpectate || bOldSpectate!=PRI.bOnlySpectator ) { bInitSpectate = true; @@ -54,10 +55,24 @@ function Timer() } } +function bool SkipTraderIsAviable(PlayerReplicationInfo PRI) +{ + local KFGameReplicationInfo KFGRI; + local KFPlayerReplicationInfo KFPRI; + + KFPRI = KFPlayerReplicationInfo(PRI); + if (KFPRI == none) + return false; + + KFGRI = KFGameReplicationInfo(KFPRI.WorldInfo.GRI); + return (KFGRI.bMatchHasBegun && KFGRI.bTraderIsOpen && KFPRI.bHasSpawnedIn); +} + function ShowMenu() { Super.ShowMenu(); AdminButton.SetDisabled(true); + SkipTraderButton.SetDisabled(false); if( GetPlayer().WorldInfo.GRI!=None ) WindowTitle = GetPlayer().WorldInfo.GRI.ServerName; //KFGFxHudWrapper(GetPlayer().MyHUD).SetVisible(false); From 906e321320fe22eb731922686af7d46c5bd0bf9c Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 30 Jun 2020 15:53:29 +0300 Subject: [PATCH 3/3] disable button after use --- ServerExt/Classes/UI_MidGameMenu.uc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ServerExt/Classes/UI_MidGameMenu.uc b/ServerExt/Classes/UI_MidGameMenu.uc index 2523a29..6c0266a 100644 --- a/ServerExt/Classes/UI_MidGameMenu.uc +++ b/ServerExt/Classes/UI_MidGameMenu.uc @@ -12,7 +12,7 @@ var KFGUI_Button AdminButton,SpectateButton,SkipTraderButton; var transient KFGUI_Button PrevButton; var transient int NumButtons,NumButtonRows; -var transient bool bInitSpectate,bOldSpectate; +var transient bool bInitSpectate,bOldSpectate,bInitSkipTrader; function InitMenu() { @@ -65,7 +65,15 @@ function bool SkipTraderIsAviable(PlayerReplicationInfo PRI) return false; KFGRI = KFGameReplicationInfo(KFPRI.WorldInfo.GRI); - return (KFGRI.bMatchHasBegun && KFGRI.bTraderIsOpen && KFPRI.bHasSpawnedIn); + if (KFGRI.bMatchHasBegun && KFGRI.bTraderIsOpen && KFPRI.bHasSpawnedIn) + { + return !bInitSkipTrader; + } + else + { + bInitSkipTrader=false; + return false; + } } function ShowMenu() @@ -112,6 +120,8 @@ function ButtonClicked( KFGUI_Button Sender ) break; case 'SkipTrader': KFPlayerController(GetPlayer()).RequestSkipTrader(); + bInitSkipTrader=true; + SkipTraderButton.SetDisabled(true); break; } } @@ -158,6 +168,8 @@ defaultproperties XSize=0.8 YSize=0.8 + bInitSkipTrader=false + Pages.Add((PageClass=Class'UIP_News',Caption="News",Hint="Server news page")) Pages.Add((PageClass=Class'UIP_PerkSelection',Caption="Perk",Hint="Select and upgrade your perks")) Pages.Add((PageClass=Class'UIP_Settings',Caption="Settings",Hint="Show additional ServerExt settings"))