BADCVAR("log_file");
BADCVAR("maxplayers");
BADCVAR("minplayers");
+ BADCVAR("minplayers_per_team");
BADCVAR("net_address");
BADCVAR("port");
BADCVAR("rcon_password");
{
server_is_dedicated = boolean(stof(cvar_defstring("is_dedicated")));
- bool wantrestart = false;
+ bool wantrestart = false;
{
if (!server_is_dedicated)
{
}
if (wantrestart)
{
- LOG_INFOF("Restart requested");
+ LOG_INFO("Restart requested");
changelevel(mapname);
// let initialization continue, shutdown depends on it
}
readlevelcvars();
GrappleHookInit();
- GameRules_limit_fallbacks();
+ GameRules_limit_fallbacks();
if(warmup_limit == 0)
warmup_limit = (autocvar_timelimit > 0) ? autocvar_timelimit * 60 : autocvar_timelimit;
bool MapHasRightSize(string map)
{
- if(currentbots || autocvar_bot_number || player_count < autocvar_minplayers)
- if(autocvar_g_maplist_check_waypoints)
+ int minplayers = max(0, floor(autocvar_minplayers));
+ if (teamplay)
+ minplayers = max(0, floor(autocvar_minplayers_per_team) * AvailableTeams());
+ if (autocvar_g_maplist_check_waypoints
+ && (currentbots || autocvar_bot_number || player_count < minplayers))
{
string checkwp_msg = strcat("checkwp ", map);
if(!fexists(strcat("maps/", map, ".waypoints")))
if(!e.autoscreenshot) // initial call
{
e.autoscreenshot = time + 0.8; // used for autoscreenshot
- SetResourceAmountExplicit(e, RESOURCE_HEALTH, -2342);
+ SetResourceExplicit(e, RES_HEALTH, -2342);
// first intermission phase; voting phase has positive health (used to decide whether to send SVC_FINALE or not)
for (int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
{