aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Client/mod
diff options
context:
space:
mode:
authorWilliam Miller <william-millennium@hotmail.com>2024-11-22 11:23:21 -0300
committerGitHub <noreply@github.com>2024-11-22 15:23:21 +0100
commit13211e9037d3c2d6bf5e0c1c2ff00fb9a7b3c36b (patch)
tree5ddf9d64e60d67d1b59e0cc591ecdaff52c3392f /Northstar.Client/mod
parentaba62bfaf4556c3b6285066b43a6063976a8d4f9 (diff)
downloadNorthstarMods-13211e9037d3c2d6bf5e0c1c2ff00fb9a7b3c36b.tar.gz
NorthstarMods-13211e9037d3c2d6bf5e0c1c2ff00fb9a7b3c36b.zip
Add button to allow players to change teams (#872)
Adds button and logic to allow players to switch teams. This is a feature used in FSU and popular on many servers. Team switch is disabled via script for some gamemodes where switching teams does not make sense.
Diffstat (limited to 'Northstar.Client/mod')
-rw-r--r--Northstar.Client/mod/resource/northstar_client_localisation_english.txt6
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_ingame.nut21
2 files changed, 27 insertions, 0 deletions
diff --git a/Northstar.Client/mod/resource/northstar_client_localisation_english.txt b/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
index f7c5ee2d..76e4fce1 100644
--- a/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
+++ b/Northstar.Client/mod/resource/northstar_client_localisation_english.txt
@@ -312,6 +312,12 @@ Press Yes if you agree to this. This choice can be changed in the mods menu at a
// In-game chat
"HUD_CHAT_WHISPER_PREFIX" "[WHISPER]"
"HUD_CHAT_SERVER_PREFIX" "[SERVER]"
+
+ // Team Switching
+ "TEAMSWITCH_GAMEMODE" "Gamemode does not allow Team Switching"
+ "TEAMSWITCH_BUFFER" "Team Switching is on Cooldown"
+ "TEAMSWITCH_GAMEPLAY" "Team change not allowed outside playing phase"
+ "TEAMSWITCH_DISABLED" "Current gamemode doesn't support team change"
"NO_GAMESERVER_RESPONSE" "Couldn't reach game server"
"BAD_GAMESERVER_RESPONSE" "Game server gave an invalid response"
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_ingame.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_ingame.nut
index 35c9e9ba..ac617a9c 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_ingame.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_ingame.nut
@@ -85,6 +85,9 @@ void function InitInGameMPMenu()
var gameHeader = AddComboButtonHeader( comboStruct, headerIndex, "#MENU_HEADER_GAME" )
var leaveButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#LEAVE_MATCH" )
Hud_AddEventHandler( leaveButton, UIE_CLICK, OnLeaveButton_Activate )
+ var teamChangeButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "#SWITCH_TEAMS" )
+ Hud_AddEventHandler( teamChangeButton, UIE_CLICK, OnRequestTeamSwitch )
+ thread UpdateTeamSwitchButton_Threaded( teamChangeButton )
#if DEV
var devButton = AddComboButton( comboStruct, headerIndex, buttonIndex++, "Dev" )
Hud_AddEventHandler( devButton, UIE_CLICK, AdvanceMenuEventHandler( GetMenu( "DevMenu" ) ) )
@@ -700,3 +703,21 @@ void function SetTitanSelectButtonVisibleState( bool state )
Hud_Hide( file.titanSelectButton )
}
}
+
+void function UpdateTeamSwitchButton_Threaded( var button )
+{
+ while ( true )
+ {
+ Hud_SetLocked( button, !GetConVarBool( "ns_allow_team_change" ) )
+ wait 0.5
+ }
+}
+
+void function OnRequestTeamSwitch( var button )
+{
+ if ( !Hud_IsLocked( button ) )
+ {
+ ClientCommand( "changeteam" )
+ CloseAllMenus()
+ }
+}