aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut20
-rw-r--r--Northstar.CustomServers/mod.json10
-rw-r--r--Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut1
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut1
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut20
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut2
9 files changed, 52 insertions, 10 deletions
diff --git a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
index de4a663e..03009764 100644
--- a/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
+++ b/Northstar.Client/mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut
@@ -127,7 +127,18 @@ void function UpdateShownPage()
Hud_SetVisible( Hud_GetChild( menu, "NextModeIcon" ), false )
Hud_SetVisible( Hud_GetChild( menu, "NextGameModeName" ), false )
- for ( int i = 0; ( file.page * BUTTONS_PER_PAGE ) + i < NSGetServerCount() - 1 && i < serverButtons.len(); i++ )
+ if ( NSGetServerCount() == 0 )
+ {
+ Hud_SetEnabled( serverButtons[ 0 ], true )
+ Hud_SetVisible( serverButtons[ 0 ], true )
+ SetButtonRuiText( serverButtons[ 0 ], "#NS_SERVERBROWSER_NOSERVERS" )
+ return
+ }
+
+ // this trycatch likely isn't necessary, but i can't test whether this'll error on higher pagecounts and want to go sleep
+ try
+ {
+ for ( int i = 0; ( file.page * BUTTONS_PER_PAGE ) + i < NSGetServerCount() && i < serverButtons.len(); i++ )
{
int serverIndex = ( file.page * BUTTONS_PER_PAGE ) + i
@@ -135,13 +146,8 @@ void function UpdateShownPage()
Hud_SetVisible( serverButtons[ i ], true )
SetButtonRuiText( serverButtons[ i ], NSGetServerName( serverIndex ) )
}
-
- if ( NSGetServerCount() == 0 )
- {
- Hud_SetEnabled( serverButtons[ 0 ], true )
- Hud_SetVisible( serverButtons[ 0 ], true )
- SetButtonRuiText( serverButtons[ 0 ], "#NS_SERVERBROWSER_NOSERVERS" )
}
+ catch(ex) {}
}
void function OnServerFocused( var button )
diff --git a/Northstar.CustomServers/mod.json b/Northstar.CustomServers/mod.json
index 8a37ef09..99826241 100644
--- a/Northstar.CustomServers/mod.json
+++ b/Northstar.CustomServers/mod.json
@@ -32,6 +32,16 @@
},
{
+ "Name": "ns_private_match_only_host_can_change_settings",
+ "DefaultValue": "0"
+ },
+
+ {
+ "Name": "ns_private_match_only_host_can_start",
+ "DefaultValue": "0"
+ },
+
+ {
// default 0 because broken
"Name": "ns_private_match_override_maxplayers",
"DefaultValue": "0"
diff --git a/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
index 3d323c01..cfd0ffe8 100644
--- a/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
+++ b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
@@ -15,7 +15,8 @@ everything_unlocked 1 // unlock everything
ns_should_return_to_lobby 1 // whether the server should return to private match lobby after completing a game, if 0, this will go to the next map/mode in the playlist
net_chan_limit_mode 2 // kick clients that go over the limit
-net_chan_limit_msec_per_sec 30 // number of milliseconds of server netchan processing time clients can use per second before getting kicked
+net_chan_limit_msec_per_sec 100 // number of milliseconds of server netchan processing time clients can use per second before getting kicked
+sv_querylimit_per_sec 10 // number of connectionless packets clients can send to this server per second without getting blocked
base_tickinterval_mp 0.016666667 // default tickrate: 60 tick
sv_updaterate_mp 20 // default updaterate: 20 tick
sv_minupdaterate 20 // unsure if this actually works, but if it does, should set minimum client updaterate
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
index af028e71..abd189e8 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
@@ -254,7 +254,7 @@ void function SetPlayerLoadoutDirty( entity player )
void function TryGivePilotLoadoutForGracePeriod( entity player )
{
- if ( !IsLobby() && IsAlive( player ) && player.s.loadoutDirty )
+ if ( !IsLobby() && IsAlive( player ) && player.s.loadoutDirty && !player.IsTitan() && !player.ContextAction_IsActive() )
{
player.s.loadoutDirty = false
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut
index 485981d8..31c85a57 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut
@@ -22,6 +22,7 @@ void function GamemodeLts_Init()
SetShouldUseRoundWinningKillReplay( true )
SetRoundWinningKillReplayKillClasses( true, true ) // both titan and pilot kills are tracked
ScoreEvent_SetupEarnMeterValuesForTitanModes()
+ SetLoadoutGracePeriodEnabled( false )
FlagSet( "ForceStartSpawn" )
AddCallback_OnPilotBecomesTitan( RefreshThirtySecondWallhackHighlight )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
index c4ffada1..a7dc00de 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
@@ -8,6 +8,7 @@ void function GamemodeTTDM_Init()
Riff_ForceTitanExitEnabled( eTitanExitEnabled.Never )
TrackTitanDamageInPlayerGameStat( PGS_ASSAULT_SCORE )
ScoreEvent_SetupEarnMeterValuesForMixedModes()
+ SetLoadoutGracePeriodEnabled( false )
ClassicMP_SetCustomIntro( TTDMIntroSetup, TTDMIntroLength )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut
index 3acd1652..b5c6ea32 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut
@@ -39,6 +39,10 @@ bool function ClientCommandCallback_PrivateMatchLaunch( entity player, array<str
{
if ( file.startState == ePrivateMatchStartState.STARTING )
{
+ if ( GetConVarBool( "ns_private_match_only_host_can_start" ) )
+ if ( !NSIsPlayerIndexLocalPlayer( player.GetPlayerIndex() ) )
+ return true
+
// cancel start if we're already mid-countdown
file.startState = ePrivateMatchStartState.READY
SetUIVar( level, "privatematch_starting", ePrivateMatchStartState.READY )
@@ -62,6 +66,10 @@ bool function ClientCommandCallback_PrivateMatchSetMode( entity player, array<st
if ( args.len() != 1 )
return true
+ if ( GetConVarInt( "ns_private_match_only_host_can_change_settings" ) == 2 )
+ if ( !NSIsPlayerIndexLocalPlayer( player.GetPlayerIndex() ) )
+ return true
+
// todo: need to verify this value
file.mode = args[0]
//GameRules_SetGameMode( args[0] ) // can't do this here due to out of sync errors with new clients
@@ -80,6 +88,10 @@ bool function ClientCommandCallback_SetCustomMap( entity player, array<string> a
if ( args.len() != 1 )
return true
+ if ( GetConVarInt( "ns_private_match_only_host_can_change_settings" ) == 2 )
+ if ( !NSIsPlayerIndexLocalPlayer( player.GetPlayerIndex() ) )
+ return true
+
// todo: need to verify this value
file.map = args[0]
@@ -190,6 +202,10 @@ bool function ClientCommandCallback_PrivateMatchSetPlaylistVarOverride( entity p
{
if ( args.len() < 2 )
return true
+
+ if ( GetConVarInt( "ns_private_match_only_host_can_change_settings" ) >= 1 )
+ if ( !NSIsPlayerIndexLocalPlayer( player.GetPlayerIndex() ) )
+ return true
bool found = false
foreach ( string category in GetPrivateMatchSettingCategories() )
@@ -212,6 +228,10 @@ bool function ClientCommandCallback_PrivateMatchSetPlaylistVarOverride( entity p
bool function ClientCommandCallback_ResetMatchSettingsToDefault( entity player, array<string> args )
{
+ if ( GetConVarInt( "ns_private_match_only_host_can_change_settings" ) >= 1 )
+ if ( !NSIsPlayerIndexLocalPlayer( player.GetPlayerIndex() ) )
+ return true
+
ClearPlaylistVarOverrides()
return true
} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
index 4b90b1a2..562f65e5 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
@@ -80,6 +80,9 @@ void function PIN_GameStart()
void function SetGameState( int newState )
{
+ if ( newState == GetGameState() )
+ return
+
SetServerVar( "gameStateChangeTime", Time() )
SetServerVar( "gameState", newState )
svGlobal.levelEnt.Signal( "GameStateChanged" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
index 108909a3..119b1712 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
@@ -213,7 +213,7 @@ void function ScoreEvent_SetupEarnMeterValuesForMixedModes() // mixed modes in t
{
// todo needs earn/overdrive values
// player-controlled stuff
- ScoreEvent_SetEarnMeterValues( "KillPilot", 0.7, 0.15 )
+ ScoreEvent_SetEarnMeterValues( "KillPilot", 0.07, 0.15 )
ScoreEvent_SetEarnMeterValues( "KillTitan", 0.0, 0.15 )
ScoreEvent_SetEarnMeterValues( "TitanKillTitan", 0.0, 0.0 ) // unsure
ScoreEvent_SetEarnMeterValues( "PilotBatteryStolen", 0.0, 0.35 ) // this actually just doesn't have overdrive in vanilla even