BADPREFIX("r_");
BADPREFIX("sbar_");
BADPREFIX("scr_");
+ BADPREFIX("snd_");
BADPREFIX("userbind");
BADPREFIX("v_");
BADPREFIX("vid_");
BADPREFIX("crosshair");
BADCVAR("mod_q3bsp_lightmapmergepower");
BADCVAR("mod_q3bsp_nolightmaps");
+ BADCVAR("fov");
+ BADCVAR("mastervolume");
+ BADCVAR("volume");
+ BADCVAR("bgmvolume");
// private
+ BADCVAR("developer");
+ BADCVAR("g_banned_list");
+ BADCVAR("log_dest_udp");
+ BADCVAR("log_file");
+ BADCVAR("net_address");
+ BADCVAR("net_address_ipv6");
+ BADCVAR("port");
+ BADCVAR("savedgamecfg");
BADCVAR("serverconfig");
+ BADCVAR("sv_heartbeatperiod");
+ BADCVAR("sv_vote_master_password");
+ BADCVAR("sys_colortranslation");
+ BADCVAR("sys_specialcharactertranslation");
+ BADCVAR("timestamps");
+ BADPREFIX("developer_");
BADPREFIX("g_ban_");
BADPREFIX("g_chat_flood_");
BADPREFIX("g_voice_flood_");
BADPREFIX("sv_eventlog");
BADPREFIX("sv_logscores_");
BADPREFIX("sv_master");
- BADCVAR("g_banned_list");
- BADCVAR("log_dest_udp");
- BADCVAR("log_file");
- BADCVAR("net_address");
- BADCVAR("port");
- BADCVAR("savedgamecfg");
- BADCVAR("sv_heartbeatperiod");
- BADCVAR("sv_vote_master_password");
- BADCVAR("sys_colortranslation");
- BADCVAR("sys_specialcharactertranslation");
- BADCVAR("timestamps");
- BADCVAR("net_address");
- BADCVAR("net_address_ipv6");
BADPREFIX("sv_weaponstats_");
- BADCVAR("developer");
- BADPREFIX("developer_");
+
+ // these can contain player IDs, so better hide
+ BADCVAR("g_forced_team_red");
+ BADCVAR("g_forced_team_blue");
+ BADCVAR("g_forced_team_yellow");
+ BADCVAR("g_forced_team_pink");
// mapinfo
BADCVAR("timelimit");
BADCVAR("fraglimit");
+ BADCVAR("leadlimit");
+ BADCVAR("g_tdm_teams");
+ BADCVAR("g_keyhunt_teams");
+ BADCVAR("g_domination_default_teams");
+ BADCVAR("g_race_qualifying_timelimit");
+ BADCVAR("g_lms");
BADCVAR("g_arena");
BADCVAR("g_ca");
BADCVAR("g_assault");
// now check if the changes are actually gameplay relevant
// does nothing visible
+ BADCVAR("captureleadlimit_override");
+ BADCVAR("g_arena_point_leadlimit");
+ BADCVAR("g_ca_point_leadlimit");
+ BADCVAR("g_ctf_capture_leadlimit");
+ BADCVAR("g_domination_point_leadlimit");
+ BADCVAR("g_keyhunt_point_leadlimit");
+ BADCVAR("g_nexball_goalleadlimit");
+ BADCVAR("g_runematch_point_leadlimit");
+ BADCVAR("leadlimit_and_fraglimit");
+ BADCVAR("leadlimit_override");
+ BADCVAR("sv_checkforpacketsduringsleep");
+ BADPREFIX("crypto_");
+ BADPREFIX("g_chat_");
+ BADPREFIX("net_");
BADPREFIX("prvm_");
+ BADPREFIX("sv_fragmessage_");
+ BADPREFIX("sv_vote_");
+ BADPREFIX("timelimit_");
// allowed changes to server admins (please sync this to server.cfg)
// vi commands:
BADCVAR("g_maplist_votable_abstain");
BADCVAR("g_maplist_votable_nodetail");
BADCVAR("g_maplist_votable_suggestions");
+ BADCVAR("g_minstagib");
BADCVAR("g_nexball_goallimit");
BADCVAR("g_runematch_point_limit");
BADCVAR("g_start_delay");
BADCVAR("rcon_restricted_commands");
BADCVAR("rcon_restricted_password");
BADCVAR("skill");
+ BADCVAR("sv_adminnick");
BADCVAR("sv_autoscreenshot");
BADCVAR("sv_curl_defaulturl");
BADCVAR("sv_defaultcharacter");
BADCVAR("sv_defaultplayermodel");
BADCVAR("sv_defaultplayerskin");
+ BADCVAR("sv_maxidle");
BADCVAR("sv_maxrate");
BADCVAR("sv_motd");
BADCVAR("sv_public");
BADCVAR("sv_vote_master_password");
BADCVAR("sv_vote_simple_majority_factor");
BADCVAR("timelimit_override");
+
+ if(cvar("g_minstagib"))
+ {
+ BADCVAR("g_grappling_hook");
+ BADCVAR("g_jetpack");
+ }
#undef BADPREFIX
#undef BADCVAR
}
}
++cvar_purechanges_count;
+ // WARNING: this variable is used for the server list
+ // NEVER dare to skip this code!
+ // Hacks to intentionally appearing as "pure server" even though you DO have
+ // modified settings may be punished by removal from the server list.
+ // You can do to the variables cvar_changes and cvar_purechanges all you want,
+ // though.
}
buf_del(h);
if(cvar_changes == "")
MUTATOR_CALLHOOK(BuildMutatorsString);
s = ret_string;
+ // simple, probably not good in the mutator system
if(cvar("g_grappling_hook"))
s = strcat(s, ":grappling_hook");
+
+ // initialiation stuff, not good in the mutator system
if(!cvar("g_use_ammunition"))
s = strcat(s, ":no_use_ammunition");
+
+ // initialiation stuff, not good in the mutator system
if(!cvar("g_pickup_items"))
s = strcat(s, ":no_pickup_items");
+
+ // initialiation stuff, not good in the mutator system
if(cvar_string("g_weaponarena") != "0")
s = strcat(s, ":", cvar_string("g_weaponarena"), " arena");
- if(cvar("g_vampire"))
- s = strcat(s, ":vampire");
- if(cvar("g_laserguided_missile"))
- s = strcat(s, ":laserguided_missile");
+
+ // TODO to mutator system
if(cvar("g_norecoil"))
s = strcat(s, ":norecoil");
+
+ // TODO to mutator system
if(cvar("g_midair"))
s = strcat(s, ":midair");
+
+ // TODO to mutator system
if(cvar("g_minstagib"))
s = strcat(s, ":minstagib");
+
GameLogEcho(s);
GameLogEcho(":gameinfo:end");
}
addstat(STAT_LAST_PICKUP, AS_FLOAT, last_pickup);
addstat(STAT_NEX_CHARGE, AS_FLOAT, nex_charge);
+ addstat(STAT_NEX_CHARGEPOOL, AS_FLOAT, nex_charge_pool_ammo);
if(g_ca)
{
{
records_reply[i] = strzone(getrecords(i));
}
+ if(g_cts)
+ ladder_reply = strzone(getladder());
rankings_reply = strzone(getrankings());