36 LOG_INFO(
"Done rebuiling mapinfos.");
54 if (delta == 0)
return;
57 if (mi <= 10) mi = 10;
59 if (cur > 0) mi += cur;
66 else if (lim < ma) update =
min(ma, lim + delta);
75 update =
max(mi, lim + delta);
96 LOG_HELPF(
"This command works only when the server is running.");
102 string targets = strreplace(
",",
" ",
argv(1));
103 string original_targets = strreplace(
" ",
", ", targets);
104 string admin_message =
argv(2);
107 string successful, t;
110 if ((targets) && (admin_message))
115 targets =
cdr(targets);
138 successful =
strcat(successful, (successful ?
", " :
""),
playername(client.netname, client.team,
false));
143 if (successful)
bprint(
"Successfully sent message '", admin_message,
"' to ", successful,
".\n");
144 else LOG_INFO(
"No players given (", original_targets,
") could receive the message.");
154 LOG_HELP(
"Usage:^3 sv_cmd adminmsg <clients> \"<message>\" [<infobartime>]");
155 LOG_HELP(
" <clients> is a list (separated by commas) of player entity ID's or nicknames");
156 LOG_HELP(
" If <infobartime> is provided, the message will be sent to infobar.");
157 LOG_HELP(
" Otherwise, it will just be sent as a centerprint message.");
158 LOG_HELP(
"Examples: adminmsg 2,4 \"this infomessage will last for ten seconds\" 10");
159 LOG_HELP(
" adminmsg 2,5 \"this message will be a centerprint\"");
173 LOG_HELPF(
"This command works only when the server is running.");
189 LOG_HELP(
"Usage:^3 sv_cmd allready");
190 LOG_HELP(
" No arguments required.");
204 LOG_HELPF(
"This command works only when the server is running.");
207 string reason =
argv(1);
213 if (n)
bprint(
strcat(
"Successfully forced all (",
ftos(n),
") players to spectate", (reason ?
strcat(
" for reason: '", reason,
"'") :
""),
".\n"));
214 else LOG_INFO(
"No players found to spectate.");
221 LOG_HELP(
"Usage:^3 sv_cmd allspec [<reason>]");
222 LOG_HELP(
" Where <reason> is an optional argument for explanation of allspec command.");
223 LOG_HELP(
"See also: ^2moveplayer, shuffleteams^7");
237 LOG_HELPF(
"This command works only when the server is running.");
258 LOG_HELP(
"Usage:^3 sv_cmd anticheat <client>");
259 LOG_HELP(
" <client> is the entity number or name of the player.");
271 vector size_min =
'0 0 0';
272 vector size_max =
'0 0 0';
273 tracebox(
'1 0 0' *
world.absmin.x,
274 '0 1 0' *
world.absmin.y +
'0 0 1' *
world.absmin.z,
275 '0 1 0' *
world.absmax.y +
'0 0 1' *
world.absmax.z,
276 '1 0 0' *
world.absmax.x,
281 tracebox(
'0 1 0' *
world.absmin.y,
282 '1 0 0' *
world.absmin.x +
'0 0 1' *
world.absmin.z,
283 '1 0 0' *
world.absmax.x +
'0 0 1' *
world.absmax.z,
284 '0 1 0' *
world.absmax.y,
289 tracebox(
'0 0 1' *
world.absmin.z,
290 '1 0 0' *
world.absmin.x +
'0 1 0' *
world.absmin.y,
291 '1 0 0' *
world.absmax.x +
'0 1 0' *
world.absmax.y,
292 '0 0 1' *
world.absmax.z,
297 tracebox(
'1 0 0' *
world.absmax.x,
298 '0 1 0' *
world.absmin.y +
'0 0 1' *
world.absmin.z,
299 '0 1 0' *
world.absmax.y +
'0 0 1' *
world.absmax.z,
300 '1 0 0' *
world.absmin.x,
305 tracebox(
'0 1 0' *
world.absmax.y,
306 '1 0 0' *
world.absmin.x +
'0 0 1' *
world.absmin.z,
307 '1 0 0' *
world.absmax.x +
'0 0 1' *
world.absmax.z,
308 '0 1 0' *
world.absmin.y,
313 tracebox(
'0 0 1' *
world.absmax.z,
314 '1 0 0' *
world.absmin.x +
'0 1 0' *
world.absmin.y,
315 '1 0 0' *
world.absmax.x +
'0 1 0' *
world.absmax.y,
316 '0 0 1' *
world.absmin.z,
323 LOG_INFOF(
"Solid bounding box size: %v %v", size_min, size_max);
331 LOG_HELP(
" No arguments required.");
332 LOG_HELP(
"See also: ^2gettaginfo, trace^7");
346 LOG_HELPF(
"This command works only when the server is running.");
351 if (
argv(1) ==
"reset")
356 else if (
argv(1) ==
"setbots")
367 else if (
argv(1) ==
"load" && argc == 3)
379 while ((s =
fgets(fh)))
383 if (argc >= 3 &&
argv(0) ==
"sv_cmd" &&
argv(1) ==
"bot_cmd")
385 if (
argv(2) ==
"reset")
389 else if (
argv(2) ==
"setbots")
401 if(
argv(2) ==
"*" ||
argv(2) ==
"all")
424 else if (
argv(1) ==
"help")
432 if(
argv(1) ==
"*" ||
argv(1) ==
"all")
455 LOG_INFO(
"Error: Can't find bot with the name or id '",
argv(1),
"' - Did you mistype the command?");
465 LOG_HELP(
"Usage:^3 sv_cmd bot_cmd <client> <command> [<arguments>]");
466 LOG_HELP(
" <client> can be either the name of the bot or a progressive number (not the entity number!)");
467 LOG_HELP(
" can also be '*' or 'all' to allow sending the command to all the bots");
468 LOG_HELP(
" For full list of commands, see bot_cmd help [<command>].");
469 LOG_HELP(
"Examples: sv_cmd bot_cmd 1 cc say something");
470 LOG_HELP(
" sv_cmd bot_cmd 1 presskey jump");
471 LOG_HELP(
" sv_cmd bot_cmd * pause");
485 LOG_HELPF(
"This command works only when the server is running.");
490 string choice = ((
random() > 0.5) ? result1 : result2);
499 LOG_HELP(
"Usage:^3 sv_cmd cointoss [<result1> <result2>]");
500 LOG_HELP(
" Where <result1> and <result2> are user created options.");
514 if (
argv(1) ==
"save")
517 LOG_INFO(
"Copied serverprogs database to '",
argv(2),
"' in the data directory.");
520 else if (
argv(1) ==
"dump")
526 else if (
argv(1) ==
"load")
530 LOG_INFO(
"Loaded '",
argv(2),
"' as new serverprogs database.");
540 LOG_HELP(
"Usage:^3 sv_cmd database <action> <filename>");
541 LOG_HELP(
" Where <action> is the command to complete,");
542 LOG_HELP(
" and <filename> is what it acts upon.");
543 LOG_HELP(
" Full list of commands here: save, dump, load.");
557 LOG_HELPF(
"This command works only when the server is running.");
583 LOG_HELP(
"Usage:^3 sv_cmd defer_clear <client>");
584 LOG_HELP(
" <client> is the entity number or name of the player.");
585 LOG_HELP(
"See also: ^2defer_clear_all^7");
599 LOG_HELPF(
"This command works only when the server is running.");
610 if (n)
LOG_INFO(
"Successfully stuffed defer clear to all clients (",
ftos(n),
")");
617 LOG_HELP(
"Usage:^3 sv_cmd defer_clear_all");
618 LOG_HELP(
" No arguments required.");
619 LOG_HELP(
"See also: ^2defer_clear^7");
643 LOG_HELP(
"Usage:^3 sv_cmd delrec <ranking> [<map>]");
644 LOG_HELP(
" <ranking> is which ranking level to clear up to, ");
645 LOG_HELP(
" it will clear all records up to nth place.");
646 LOG_HELP(
" if <map> is not provided it will use current map.");
655 LOG_INFO(
"effect ", effect_name,
" is ",
ftos(_particleeffectnum(effect_name)),
"\n");
656 db_put(d, effect_name,
"1");
709 while ((s =
fgets(fh)))
712 if (
argv(0) ==
"effect")
716 int i = _particleeffectnum(
argv(1));
731 LOG_HELP(
"Usage:^3 sv_cmd effectindexdump");
732 LOG_HELP(
" No arguments required.");
746 LOG_HELPF(
"This command works only when the server is running.");
756 LOG_HELP(
"Usage:^3 sv_cmd extendmatchtime");
757 LOG_HELP(
" No arguments required.");
758 LOG_HELP(
"See also: ^2reducematchtime^7");
772 LOG_HELPF(
"This command works only when the server is running.");
787 bprint(
"Failed to switch to ", s,
": this gametype does not exist!\n");
797 LOG_HELP(
"Usage:^3 sv_cmd gametype <mode>");
798 LOG_HELP(
" Where <mode> is the gametype mode to switch to.");
817 tmp_entity =
spawn();
825 precache_model(
argv(1));
826 _setmodel(tmp_entity,
argv(1));
834 LOG_HELPF(
"model %s frame %s tag %s index %s parent %s",
862 LOG_HELP(
"Usage:^3 sv_cmd gettaginfo <model> <frame> <index> [<command1>] [<command2>]");
863 LOG_HELP(
"See also: ^2bbox, trace^7");
879 tmp_entity =
spawn();
887 precache_model(
argv(1));
888 _setmodel(tmp_entity,
argv(1));
899 tmp_entity.frame =
f1;
901 getsurfacepoint(tmp_entity, 0, 0);
903 tmp_entity.frame =
f2;
905 getsurfacepoint(tmp_entity, 0, 0);
909 LOG_INFO(
"model ", tmp_entity.model,
" frame ",
ftos(
f1),
" animtime ",
ftos(n / t1),
"/s");
910 LOG_INFO(
"model ", tmp_entity.model,
" frame ",
ftos(
f2),
" animtime ",
ftos(n / t2),
"/s");
921 LOG_HELP(
"Usage:^3 sv_cmd animbench <model> <frame1> <frame2>");
922 LOG_HELP(
"See also: ^2bbox, trace^7");
936 LOG_HELPF(
"This command works only when the server is running.");
950 LOG_HELP(
"Usage:^3 sv_cmd gotomap <map>");
951 LOG_HELP(
" Where <map> is the *.bsp file to change to.");
966 LOG_HELPF(
"This command works only when the server is running.");
974 FOREACH_CLIENT(it.wants_join, it.wants_join = it.team_selected = 0);
978 bprint(
"lockteams command can only be used in a team-based gametype.\n");
986 LOG_HELP(
"Usage:^3 sv_cmd lockteams");
987 LOG_HELP(
" No arguments required.");
988 LOG_HELP(
"See also: ^2unlockteams^7");
1002 tmp_entity =
new(make_mapinfo);
1004 tmp_entity.nextthink =
time;
1012 LOG_HELP(
"Usage:^3 sv_cmd make_mapinfo");
1013 LOG_HELP(
" No arguments required.");
1014 LOG_HELP(
"See also: ^2radarmap^7");
1028 LOG_HELPF(
"This command works only when the server is running.");
1034 string targets = strreplace(
",",
" ",
argv(1));
1035 string original_targets = strreplace(
" ",
", ", targets);
1036 string destination =
argv(2);
1037 if (destination ==
"spec")
1038 destination =
"spectator";
1040 if ((targets) && (destination))
1047 targets =
cdr(targets);
1052 string client_num_str =
ftos(
etof(client));
1058 else if (destination ==
"spectator")
1060 string pl_name =
playername(client.netname, client.team,
false);
1065 successful =
strcat(successful, (successful ?
", " :
""), pl_name);
1069 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is already spectating.");
1076 LOG_INFO(
"Can't change teams when currently not playing a team game.");
1080 string pl_name =
playername(client.netname, client.team,
false);
1084 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is not in the game.");
1095 if (team_num == client.team)
1098 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is already on the ",
1102 else if (team_num == 0)
1117 LOG_INFO(
"Can't move player to ", destination,
" team because it doesn't exist.");
1123 LOG_INFO(
"Can't move player to ", destination,
" team because it isn't available.");
1129 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is not allowed to join the ",
1140 successful =
strcat(successful, (successful ?
", " :
""), pl_name);
1141 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") has been moved to the ",
1146 LOG_INFO(
"Unable to move player #", client_num_str,
" (", pl_name,
")");
1151 if (successful)
bprint(
"Successfully moved players ", successful,
" to destination ", destination,
".\n");
1152 else LOG_INFO(
"No players given (", original_targets,
") are able to move.");
1162 LOG_HELP(
"Usage:^3 sv_cmd moveplayer <clients> <destination>");
1163 LOG_HELP(
" <clients> is a list (separated by commas) of player entity ID's or nicknames");
1164 LOG_HELP(
" <destination> is what to send the player to, be it team or spectating");
1165 LOG_HELP(
" Full list of destinations here: spec, spectator, red, blue, yellow, pink, auto.");
1166 LOG_HELP(
"Examples: sv_cmd moveplayer 1,3,5 red");
1167 LOG_HELP(
" sv_cmd moveplayer 2 spec");
1168 LOG_HELP(
"See also: ^2allspec, shuffleteams^7");
1183 LOG_HELP(
"Warning: nextmap only takes 1 argument");
1202 LOG_HELP(
"Usage:^3 sv_cmd nextmap [<mapname>]");
1203 LOG_HELP(
" Without arguments it prints current nextmap if one is set");
1204 LOG_HELP(
" With arguments it attempts to set nextmap");
1218 LOG_HELPF(
"This command works only when the server is running.");
1229 LOG_HELP(
"Usage:^3 sv_cmd nospectators");
1230 LOG_HELP(
" No arguments required.");
1231 LOG_HELP(
"Temporarily disables the ^3sv_spectate ^7cvar.");
1245 LOG_HELPF(
"This command works only when the server is running.");
1256 LOG_HELP(
"Usage:^3 sv_cmd printstats");
1257 LOG_HELP(
" No arguments required.");
1276 LOG_HELP(
"Usage:^3 sv_cmd radarmap [--force] [--loop] [--quit] [--block | --trace | --sample | --lineblock] [--sharpen N] [--res W H] [--qual Q]");
1277 LOG_HELP(
" The quality factor Q is roughly proportional to the time taken.");
1278 LOG_HELP(
" trace supports no quality factor; its result should look like --block with infinite quality factor.");
1279 LOG_HELP(
"See also: ^2make_mapinfo^7");
1293 LOG_HELPF(
"This command works only when the server is running.");
1303 LOG_HELP(
"Usage:^3 sv_cmd reducematchtime");
1304 LOG_HELP(
" No arguments required.");
1305 LOG_HELP(
"See also: ^2extendmatchtime^7");
1331 LOG_HELP(
"Usage:^3 sv_cmd setbots <botnumber>");
1332 LOG_HELP(
" Where <botnumber> is the amount of bots to set bot_number cvar to.");
1343 LOG_INFO(
"Can't shuffle teams when currently not playing a team game.");
1352 LOG_INFO(
"Can't shuffle teams because at least one player has a forced team.");
1357 int number_of_teams = 0;
1363 number_of_teams =
max(i, number_of_teams);
1370 int target_team_index = team_index + 1;
1375 team_index = (team_index + 1) % number_of_teams;
1378 bprint(
"Successfully shuffled the players around randomly.\n");
1389 LOG_HELPF(
"This command works only when the server is running.");
1394 bprint(
"Players will be shuffled when this round is over.\n");
1405 LOG_HELP(
"Usage:^3 sv_cmd shuffleteams");
1406 LOG_HELP(
" No arguments required.");
1407 LOG_HELP(
"See also: ^2moveplayer, allspec^7");
1421 LOG_HELPF(
"This command works only when the server is running.");
1431 LOG_HELP(
"Usage:^3 sv_cmd resetmatch");
1432 LOG_HELP(
" No arguments required.");
1444#ifdef STUFFTO_ENABLED
1451 LOG_HELPF(
"This command works only when the server is running.");
1477 LOG_HELP(
"Usage:^3 sv_cmd stuffto <client> \"<command>\"");
1478 LOG_HELP(
" <client> is the entity number or name of the player,");
1479 LOG_HELP(
" and <command> is the command to be sent to that player.");
1486 LOG_HELP(
"stuffto command is not enabled on this server.");
1499 vector org, delta, start, end, p, q, q0, pos, vv, dv;
1500 float i, f, safe, unsafe, dq, dqf;
1507 LOG_INFO(
"TEST CASE. If this returns the runaway loop counter error, possibly everything is oaky.");
1508 float worst_endpos_bug = 0;
1540 pos = p * (1 - (safe + unsafe) * 0.5) + start * ((safe + unsafe) * 0.5);
1544 if ((safe + unsafe) * 0.5 == unsafe)
break;
1545 unsafe = (safe + unsafe) * 0.5;
1549 if ((safe + unsafe) * 0.5 == safe)
break;
1550 safe = (safe + unsafe) * 0.5;
1554 LOG_INFO(
"safe distance to back off: ",
ftos(safe *
vlen(p - start)),
"qu");
1555 LOG_INFO(
"unsafe distance to back off: ",
ftos(unsafe *
vlen(p - start)),
"qu");
1559 else LOG_INFO(
"trace_endpos just in solid when tracing from ",
vtos(start),
" to ",
vtos(end),
" endpos ",
vtos(p));
1560 if (++hitcount >= 10)
break;
1569 q = p +
normalize(end - p) * (dq + dqf);
1577 if (dq > worst_endpos_bug)
1579 worst_endpos_bug = dq;
1580 LOG_INFO(
"trace_endpos still before solid when tracing from ",
vtos(start),
" to ",
vtos(end),
" endpos ",
vtos(p));
1582 if (++hitcount >= 10)
break;
1593 tracebox(e.origin +
'0 0 32', e.mins, e.maxs, e.origin +
'0 0 -1024',
MOVE_NORMAL, e);
1597 LOG_INFO(
"not above ground, aborting");
1601 for (i = 0; i < 100000; ++i)
1604 if (dv.z > 0) dv = -1 * dv;
1605 tracebox(vv, e.mins, e.maxs, vv + dv,
MOVE_NORMAL, e);
1623 if (argc == 4 || argc == 5)
1626 int dphitcontentsmask_save = e.dphitcontentsmask;
1632 e.dphitcontentsmask = dphitcontentsmask_save;
1658 LOG_HELP(
"Usage:^3 sv_cmd trace <command> [<startpos> <endpos>] [<endpos_height>]");
1659 LOG_HELP(
" Where <startpos> and <endpos> are parameters for the 'walk' and 'showline' commands,");
1660 LOG_HELP(
" <endpos_height> is an optional parameter for the 'walk' command,");
1661 LOG_HELP(
" Full list of commands here: debug, debug2, walk, showline.");
1662 LOG_HELP(
"See also: ^2bbox, gettaginfo^7");
1676 LOG_HELPF(
"This command works only when the server is running.");
1686 bprint(
"unlockteams command can only be used in a team-based gametype.\n");
1694 LOG_HELP(
"Usage:^3 sv_cmd unlockteams");
1695 LOG_HELP(
" No arguments required.");
1696 LOG_HELP(
"See also: ^2lockteams^7");
1710 LOG_HELPF(
"This command works only when the server is running.");
1718 LOG_INFO(
"Successfully warped to campaign level ",
argv(1),
".");
1723 LOG_INFO(
"Successfully warped to next campaign level.");
1728 LOG_INFO(
"Not in campaign, can't level warp");
1736 LOG_HELP(
"Usage:^3 sv_cmd warp [<level>]");
1737 LOG_HELP(
" <level> is the level to change campaign mode to.");
1738 LOG_HELP(
" if <level> is not provided it will change to the next level.");
1813 FOREACH(SERVER_COMMANDS,
true, {
LOG_HELPF(
" ^2%s^7: %s", it.m_name, it.m_description); });
1819 FOREACH(SERVER_COMMANDS, it.m_name == c, {
1820 it.m_invokecmd(it, CMD_REQUEST_COMMAND, NULL, argc, command);
1829 FOREACH(SERVER_COMMANDS, it.m_name == c, {
1830 it.m_invokecmd(it, CMD_REQUEST_USAGE, NULL, argc,
"");
1860 LOG_HELP(
"Server console commands:");
1866 LOG_HELP(
"\nCommon networked commands:");
1869 LOG_HELP(
"\nGeneric commands shared by all programs:");
1872 LOG_HELP(
"\nUsage:^3 sv_cmd <command>^7, where possible commands are listed above.\n"
1873 "For help about a specific command, type sv_cmd help <command>");
1916 LOG_INFO(((command !=
"") ?
strcat(
"Unknown server command \"", command,
"\"") :
"No command provided"),
". For a list of supported commands, try sv_cmd help.");
entity find_bot_by_number(float number)
bool bot_fixcount(bool multiple_per_frame)
entity find_bot_by_name(string name)
void bot_queuecommand(entity bot, string cmdstring)
void bot_cmdhelp(string scmd)
bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float end_height, float movemode)
void BanCommand_macro_help()
float BanCommand_macro_usage(int argc)
float BanCommand(string command)
#define MUTATOR_CALLHOOK(id,...)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
const int CMD_REQUEST_COMMAND
const int CMD_REQUEST_USAGE
#define autocvar_timelimit
string playername(string thename, int teamid, bool team_colorize)
float cvar_settemp(string tmp_cvar, string tmp_value)
string strtolower(string s)
const vector PL_MIN_CONST
const vector PL_MAX_CONST
const float MOVE_NOMONSTERS
vector gettaginfo_forward
float DPCONTENTS_PLAYERCLIP
ERASEABLE string MakeConsoleSafe(string input)
escape the string to make it safe for consoles
#define particleeffectnum(e)
float GenericCommand_macro_usage(int argc)
void GenericCommand_macro_help()
float GenericCommand(string command)
#define CMD_Write_Alias(execute, command, description)
void Set_NextMap(string mapname)
#define FOREACH(list, cond, body)
ERASEABLE void db_close(int db)
ERASEABLE int db_load(string filename)
ERASEABLE int db_create()
ERASEABLE void db_save(int db, string filename)
ERASEABLE string db_get(int db, string key)
ERASEABLE void db_put(int db, string key, string value)
ERASEABLE void db_dump(int db, string filename)
float MapInfo_FilterGametype(Gametype pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
int MapInfo_RequiredFlags()
float _MapInfo_FilterGametype(vector pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
Gametype MapInfo_CurrentGametype()
int MapInfo_ForbiddenFlags()
int MapInfo_CurrentFeatures()
Gametype MapInfo_Type_FromString(string gtype, bool dowarn, bool is_q3compat)
spree_inf s1 s2 s3loc s2 spree_inf s1 s2 s3loc s2 spree_inf s1 s2 s3loc s2 s1 s2loc s1 s2loc s1 s2loc s1 s2loc s1 s2loc s1 s2loc s1 s2 f1points f2
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
void Send_Notification(NOTIF broadcast, entity client, MSG net_type, Notification net_name,...count)
bool RadarMap_Make(int argc)
bool IsTeamAvailable(int team_num)
void CampaignLevelWarp(float n)
void PutObserverInServer(entity this, bool is_forced, bool use_spawnpoint)
putting a client as observer in the server
entity GetIndexedEntity(int argc, int start_index)
int VerifyClientEntity(entity client, bool must_be_real, bool must_be_bots)
string GetCallerName(entity caller)
entity GetFilteredEntity(string input)
float CommonCommand_macro_usage(int argc, entity caller)
void CommonCommand_macro_help(entity caller)
#define GetClientErrorString(clienterror, original_input)
float CommonCommand_macro_command(int argc, entity caller, string command)
#define SERVER_COMMAND(id, description)
string ValidateMap(string validated_map, entity caller)
void ReadyRestart(bool forceWarmupEnd)
bool GameTypeVote_SetGametype(Gametype type, string gametype_string, bool call_hooks)
void anticheat_report_to_eventlog(entity this)
ERASEABLE string car(string s)
returns first word
ERASEABLE string cdr(string s)
returns all but first word
void GameCommand_stuffto(int request, int argc)
void GameCommand_effectindexdump(int request)
void GameCommand_cointoss(int request, int argc)
void GameCommand_unlockteams(int request)
void GameCommand_radarmap(int request, int argc)
void GameCommand_delrec(int request, int argc)
void GameCommand_gotomap(int request, int argc)
void GameCommand_allready(int request)
float GameCommand_macro_command(int argc, string command)
void GameCommand_resetmatch(int request)
void print_Effect_Index(int d, string effect_name)
void GameCommand_animbench(int request, int argc)
void changematchtime(float delta, float mi, float ma)
void GameCommand_database(int request, int argc)
void GameCommand_bbox(int request)
void GameCommand_defer_clear_all(int request)
void GameCommand_extendmatchtime(int request)
void GameCommand_setbots(int request, int argc)
void make_mapinfo_Think(entity this)
void GameCommand_make_mapinfo(int request)
void GameCommand_shuffleteams(int request)
void GameCommand_gettaginfo(int request, int argc)
void GameCommand_lockteams(int request)
void GameCommand_nospectators(int request)
void GameCommand_warp(int request, int argc)
void GameCommand_allspec(int request, int argc)
void GameCommand_bot_cmd(int request, int argc, string command)
void GameCommand_adminmsg(int request, int argc)
void GameCommand_nextmap(int request, int argc)
void GameCommand_anticheat(int request, int argc)
void GameCommand_moveplayer(int request, int argc)
void GameCommand_reducematchtime(int request)
void GameCommand(string command)
void GameCommand_macro_help()
float GameCommand_macro_usage(int argc)
void GameCommand_defer_clear(int request, int argc)
void GameCommand_gametype(int request, int argc)
void GameCommand_macro_write_aliases(float fh)
void GameCommand_printstats(int request)
void GameCommand_trace(int request, int argc)
bool shuffleteams_on_reset_map
void race_deleteTime(string map, float pos)
int Entity_GetTeamIndex(entity this)
Returns the team index of the given entity.
void TeamBalance_Destroy(entity balance)
Destroy the team balance entity.
bool Player_HasRealForcedTeam(entity player)
Returns whether player has real forced team.
int Player_GetForcedTeamIndex(entity player)
Returns the index of the forced team of the given player.
entity TeamBalance_CheckAllowedTeams(entity for_whom)
Checks whether the player can join teams according to global configuration and mutator settings.
bool TeamBalance_IsTeamAllowed(entity balance, int index)
Returns whether the team change to the specified team is allowed.
void Player_SetForcedTeamIndex(entity player, int team_index)
Sets the index of the forced team of the given player.
int TeamBalance_FindBestTeam(entity balance, entity player, bool ignore_player)
Finds the team that will make the game most balanced if the player joins it.
bool MoveToTeam(entity client, int team_index, int type)
Moves player to the specified team.
@ TEAM_FORCE_DEFAULT
Don't force any team.
int Team_TeamToIndex(int team_num)
Converts team value into team index.
#define Team_ColoredFullName(teamid)
int Team_IndexToTeam(int index)
Converts team index into team value.
const int NUM_TEAMS
Number of teams in the game.
float Team_ColorToTeam(string team_color)
#define FOREACH_CLIENT_RANDOM(cond, body)
#define IS_REAL_CLIENT(v)
#define FOREACH_CLIENT(cond, body)
#define IS_BOT_CLIENT(v)
want: (IS_CLIENT(v) && !IS_REAL_CLIENT(v))
entity weaponentities[MAX_WEAPONSLOTS]
void DumpStats(float final)
float autocvar_timelimit_max
float autocvar_timelimit_min
float autocvar_timelimit_decrement
float autocvar_timelimit_increment