X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_world.qc;h=c3dc5be39f605369ca208c79ec61490d9bdda3cd;hb=b137896768ee22017cd43bf7614b8c01f99acd9c;hp=d33ba6e2b641d8afaa293fc378e171a220fb8099;hpb=99262bf5759010457a3331ec08e985c3924a2b3f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index d33ba6e2b..c3dc5be39 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -266,6 +266,7 @@ void cvar_changes_init() BADCVAR("g_domination"); BADCVAR("g_domination_default_teams"); BADCVAR("g_duel"); + BADCVAR("g_duel_not_dm_maps"); BADCVAR("g_freezetag"); BADCVAR("g_freezetag_teams"); BADCVAR("g_invasion_teams"); @@ -286,6 +287,7 @@ void cvar_changes_init() BADCVAR("g_shootfromeye"); BADCVAR("g_snafu"); BADCVAR("g_tdm"); + BADCVAR("g_tdm_on_dm_maps"); BADCVAR("g_tdm_teams"); BADCVAR("g_vip"); BADCVAR("leadlimit"); @@ -293,6 +295,8 @@ void cvar_changes_init() BADCVAR("teamplay"); BADCVAR("timelimit"); BADCVAR("g_mapinfo_ignore_warnings"); + BADCVAR("g_maplist_ignore_sizes"); + BADCVAR("g_maplist_sizes_count_bots"); // long BADCVAR("hostname"); @@ -321,10 +325,12 @@ void cvar_changes_init() BADCVAR("captureleadlimit_override"); BADCVAR("condump_stripcolors"); BADCVAR("gameversion"); + BADCVAR("fs_gamedir"); BADCVAR("g_allow_oldvortexbeam"); BADCVAR("g_balance_kill_delay"); BADCVAR("g_buffs_pickup_anyway"); BADCVAR("g_buffs_randomize"); + BADCVAR("g_buffs_randomize_teamplay"); BADCVAR("g_campcheck_distance"); BADCVAR("g_ca_point_leadlimit"); BADCVAR("g_ca_point_limit"); @@ -340,6 +346,7 @@ void cvar_changes_init() BADCVAR("g_jump_grunt"); BADCVAR("g_keyhunt_point_leadlimit"); BADCVAR("g_nexball_goalleadlimit"); + BADCVAR("g_new_toys_autoreplace"); BADCVAR("g_new_toys_use_pickupsound"); BADCVAR("g_physics_predictall"); BADCVAR("g_piggyback"); @@ -354,6 +361,7 @@ void cvar_changes_init() BADCVAR("sv_damagetext"); BADCVAR("sv_db_saveasdump"); BADCVAR("sv_intermission_cdtrack"); + BADCVAR("sv_mapchange_delay"); BADCVAR("sv_minigames"); BADCVAR("sv_namechangetimer"); BADCVAR("sv_precacheplayermodels"); @@ -404,6 +412,7 @@ void cvar_changes_init() BADCVAR("g_ban_sync_uri"); BADCVAR("g_buffs"); BADCVAR("g_ca_teams_override"); + BADCVAR("g_ctf_fullbrightflags"); BADCVAR("g_ctf_ignore_frags"); BADCVAR("g_ctf_leaderboard"); BADCVAR("g_domination_point_limit"); @@ -423,6 +432,9 @@ void cvar_changes_init() BADCVAR("g_physics_clientselect"); BADCVAR("g_pinata"); BADCVAR("g_powerups"); + BADCVAR("g_player_brightness"); + BADCVAR("g_rocket_flying"); + BADCVAR("g_rocket_flying_disabledelays"); BADCVAR("g_spawnshieldtime"); BADCVAR("g_start_delay"); BADCVAR("g_superspectate"); @@ -482,6 +494,12 @@ void cvar_changes_init() BADCVAR("g_freezetag_weaponarena"); BADCVAR("g_lms_weaponarena"); + if(cvar_string("g_mod_balance") == "Testing") + { + // (temporary) while using the Testing balance, any weapon balance cvars are allowed to be changed + BADPREFIX("g_balance_"); + } + #undef BADPRESUFFIX #undef BADPREFIX #undef BADCVAR @@ -855,6 +873,12 @@ spawnfunc(worldspawn) MapInfo_Enumerate(); MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags(), 1); + if(fexists(strcat("scripts/", mapname, ".arena"))) + cvar_settemp("sv_q3acompat_machineshotgunswap", "1"); + + if(fexists(strcat("scripts/", mapname, ".defi"))) + cvar_settemp("sv_q3defragcompat", "1"); + if(whichpack(strcat("maps/", mapname, ".cfg")) != "") { int fd = fopen(strcat("maps/", mapname, ".cfg"), FILE_READ); @@ -961,7 +985,7 @@ spawnfunc(worldspawn) // physics/balance/config changes that count as mod if(cvar_string("g_mod_physics") != cvar_defstring("g_mod_physics")) modname = cvar_string("g_mod_physics"); - if(cvar_string("g_mod_balance") != cvar_defstring("g_mod_balance")) + if(cvar_string("g_mod_balance") != cvar_defstring("g_mod_balance") && cvar_string("g_mod_balance") != "Testing") modname = cvar_string("g_mod_balance"); if(cvar_string("g_mod_config") != cvar_defstring("g_mod_config")) modname = cvar_string("g_mod_config"); @@ -1047,18 +1071,21 @@ bool MapHasRightSize(string map) // open map size restriction file string opensize_msg = strcat("opensize ", map); float fh = fopen(strcat("maps/", map, ".sizes"), FILE_READ); + int pcount = player_count; + if(!autocvar_g_maplist_sizes_count_bots) + pcount -= currentbots; if(fh >= 0) { opensize_msg = strcat(opensize_msg, ": ok, "); int mapmin = stoi(fgets(fh)); int mapmax = stoi(fgets(fh)); fclose(fh); - if(player_count < mapmin) + if(pcount < mapmin) { LOG_TRACE(opensize_msg, "not enough"); return false; } - if(mapmax && player_count > mapmax) + if(mapmax && pcount > mapmax) { LOG_TRACE(opensize_msg, "too many"); return false; @@ -2046,7 +2073,7 @@ string GotoMap(string m) return "Map switch will happen after scoreboard."; } -bool autocvar_sv_gameplayfix_multiplethinksperframe; +bool autocvar_sv_gameplayfix_multiplethinksperframe = true; void RunThink(entity this) { // don't let things stay in the past. @@ -2075,7 +2102,7 @@ void RunThink(entity this) } bool autocvar_sv_freezenonclients; -bool autocvar_sv_gameplayfix_delayprojectiles; +bool autocvar_sv_gameplayfix_delayprojectiles = false; void Physics_Frame() { if(autocvar_sv_freezenonclients) @@ -2242,7 +2269,7 @@ void Shutdown() else db_save(ServerProgsDB, strcat("server.db", autocvar_sessionid)); } - if(autocvar_developer) + if(autocvar_developer > 0) { if(autocvar_sv_db_saveasdump) db_dump(TemporaryDB, "server-temp.db");