mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-27 10:15:05 +00:00
High pop reduced MC processing mode.
This commit is contained in:
committed by
CitadelStationBot
parent
5f4b3594d0
commit
91aa560f0d
@@ -2,6 +2,7 @@
|
|||||||
#define CONFIG_DEF(X) /datum/config_entry/##X { resident_file = CURRENT_RESIDENT_FILE }; /datum/config_entry/##X
|
#define CONFIG_DEF(X) /datum/config_entry/##X { resident_file = CURRENT_RESIDENT_FILE }; /datum/config_entry/##X
|
||||||
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
|
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
|
||||||
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
|
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
|
||||||
|
#define CONFIG_TWEAK(X) /datum/config_entry/##X
|
||||||
|
|
||||||
#define CONFIG_MAPS_FILE "maps.txt"
|
#define CONFIG_MAPS_FILE "maps.txt"
|
||||||
|
|
||||||
|
|||||||
@@ -352,3 +352,26 @@ CONFIG_DEF(number/error_msg_delay) // How long to wait between messaging admins
|
|||||||
CONFIG_DEF(flag/irc_announce_new_game)
|
CONFIG_DEF(flag/irc_announce_new_game)
|
||||||
|
|
||||||
CONFIG_DEF(flag/debug_admin_hrefs)
|
CONFIG_DEF(flag/debug_admin_hrefs)
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/base_mc_tick_rate)
|
||||||
|
integer = FALSE
|
||||||
|
value = 1
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/high_pop_mc_tick_rate)
|
||||||
|
integer = FALSE
|
||||||
|
value = 1.1
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/high_pop_mc_mode_amount)
|
||||||
|
value = 65
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/disable_high_pop_mc_mode_amount)
|
||||||
|
value = 60
|
||||||
|
|
||||||
|
CONFIG_TWEAK(number/mc_tick_rate)
|
||||||
|
abstract_type = /datum/config_entry/number/mc_tick_rate
|
||||||
|
|
||||||
|
CONFIG_TWEAK(number/mc_tick_rate/ValidateAndSet(str_val))
|
||||||
|
. = ..()
|
||||||
|
if (.)
|
||||||
|
Master.UpdateTickRate()
|
||||||
|
|||||||
@@ -573,3 +573,13 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
|||||||
for(var/S in subsystems)
|
for(var/S in subsystems)
|
||||||
var/datum/controller/subsystem/SS = S
|
var/datum/controller/subsystem/SS = S
|
||||||
SS.StopLoadingMap()
|
SS.StopLoadingMap()
|
||||||
|
|
||||||
|
|
||||||
|
/datum/controller/master/proc/UpdateTickRate()
|
||||||
|
if (!processing)
|
||||||
|
return
|
||||||
|
var/client_count = length(GLOB.clients)
|
||||||
|
if (client_count < CONFIG_GET(number/mc_tick_rate/disable_high_pop_mc_mode_amount))
|
||||||
|
processing = CONFIG_GET(number/mc_tick_rate/base_mc_tick_rate)
|
||||||
|
else if (client_count > CONFIG_GET(number/mc_tick_rate/high_pop_mc_mode_amount))
|
||||||
|
processing = CONFIG_GET(number/mc_tick_rate/high_pop_mc_tick_rate)
|
||||||
@@ -351,7 +351,11 @@ GLOBAL_LIST(external_rsc_urls)
|
|||||||
if (menuitem)
|
if (menuitem)
|
||||||
menuitem.Load_checked(src)
|
menuitem.Load_checked(src)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
hook_vr("client_new",list(src))
|
hook_vr("client_new",list(src))
|
||||||
|
=======
|
||||||
|
Master.UpdateTickRate()
|
||||||
|
>>>>>>> bc4d4e7... Merge pull request #31374 from MrStonedOne/highpopmode
|
||||||
|
|
||||||
//////////////
|
//////////////
|
||||||
//DISCONNECT//
|
//DISCONNECT//
|
||||||
@@ -399,6 +403,7 @@ GLOBAL_LIST(external_rsc_urls)
|
|||||||
if(movingmob != null)
|
if(movingmob != null)
|
||||||
movingmob.client_mobs_in_contents -= mob
|
movingmob.client_mobs_in_contents -= mob
|
||||||
UNSETEMPTY(movingmob.client_mobs_in_contents)
|
UNSETEMPTY(movingmob.client_mobs_in_contents)
|
||||||
|
Master.UpdateTickRate()
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/client/Destroy()
|
/client/Destroy()
|
||||||
|
|||||||
@@ -228,9 +228,13 @@ ALLOW_HOLIDAYS
|
|||||||
##This is currently a testing optimized setting. A good value for production would be 98.
|
##This is currently a testing optimized setting. A good value for production would be 98.
|
||||||
TICK_LIMIT_MC_INIT 500
|
TICK_LIMIT_MC_INIT 500
|
||||||
|
|
||||||
##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother.
|
##Defines the ticklag for the world. Ticklag is the amount of time between game ticks (aka byond ticks) (in 1/10ths of a second).
|
||||||
|
## This also controls the client network update rate, as well as the default client fps
|
||||||
TICKLAG 0.5
|
TICKLAG 0.5
|
||||||
|
|
||||||
|
##Can also be set as per-second value, the following value is identical to the above.
|
||||||
|
#FPS 20
|
||||||
|
|
||||||
## Comment this out to disable automuting
|
## Comment this out to disable automuting
|
||||||
#AUTOMUTE_ON
|
#AUTOMUTE_ON
|
||||||
|
|
||||||
@@ -351,3 +355,26 @@ MINUTE_TOPIC_LIMIT 100
|
|||||||
|
|
||||||
## Allow admin hrefs that don't use the new token system, will eventually be removed
|
## Allow admin hrefs that don't use the new token system, will eventually be removed
|
||||||
DEBUG_ADMIN_HREFS
|
DEBUG_ADMIN_HREFS
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
|
||||||
|
###Master Controller High Pop Mode###
|
||||||
|
|
||||||
|
##The Master Controller(MC) is the primary system controlling timed tasks and events in SS13 (lobby timer, game checks, lighting updates, atmos, etc)
|
||||||
|
##Default base MC tick rate (1 = process every "byond tick" (see: tick_lag/fps config settings), 2 = process every 2 byond ticks, etc)
|
||||||
|
## Setting this to 0 will prevent the Master Controller from ticking
|
||||||
|
BASE_MC_TICK_RATE 1
|
||||||
|
|
||||||
|
##High population MC tick rate
|
||||||
|
## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2
|
||||||
|
## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like
|
||||||
|
## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%.
|
||||||
|
## (As an aside, you could in theory also reduce the effect of anti-lag heuristics in the base tick rate by setting it to something like 0.5)
|
||||||
|
HIGH_POP_MC_TICK_RATE 1.1
|
||||||
|
|
||||||
|
##Engage high pop mode if player count raises above this (Player in this context means any connected user. Lobby, ghost or in-game all count)
|
||||||
|
HIGH_POP_MC_MODE_AMOUNT 65
|
||||||
|
|
||||||
|
##Disengage high pop mode if player count drops below this
|
||||||
|
DISABLE_HIGH_POP_MC_MODE_AMOUNT 60
|
||||||
|
>>>>>>> bc4d4e7... Merge pull request #31374 from MrStonedOne/highpopmode
|
||||||
|
|||||||
Reference in New Issue
Block a user