35 LOG_INFO(
"Done rebuiling mapinfos.");
53 if (delta == 0)
return;
54 if (autocvar_timelimit < 0)
return;
56 if (mi <= 10) mi = 10;
57 cur =
time - game_starttime;
58 if (cur > 0) mi += cur;
60 lim = autocvar_timelimit * 60;
65 else if (lim < ma) update =
min(ma, lim + delta);
74 update =
max(mi, lim + delta);
96 string targets = strreplace(
",",
" ",
argv(1));
97 string original_targets = strreplace(
" ",
", ", targets);
98 string admin_message =
argv(2);
101 string successful, t;
104 if ((targets) && (admin_message))
109 targets =
cdr(targets);
132 successful =
strcat(successful, (successful ?
", " :
""), playername(client.netname, client.team,
false));
133 LOG_TRACE(
"Message sent to ", playername(client.netname, client.team,
false));
137 if (successful)
bprint(
"Successfully sent message '", admin_message,
"' to ", successful,
".\n");
138 else LOG_INFO(
"No players given (", original_targets,
") could receive the message.");
148 LOG_HELP(
"Usage:^3 sv_cmd adminmsg <clients> \"<message>\" [<infobartime>]");
149 LOG_HELP(
" <clients> is a list (separated by commas) of player entity ID's or nicknames");
150 LOG_HELP(
" If <infobartime> is provided, the message will be sent to infobar.");
151 LOG_HELP(
" Otherwise, it will just be sent as a centerprint message.");
152 LOG_HELP(
"Examples: adminmsg 2,4 \"this infomessage will last for ten seconds\" 10");
153 LOG_HELP(
" adminmsg 2,5 \"this message will be a centerprint\"");
178 LOG_HELP(
"Usage:^3 sv_cmd allready");
179 LOG_HELP(
" No arguments required.");
191 string reason =
argv(1);
197 if (n)
bprint(
strcat(
"Successfully forced all (",
ftos(n),
") players to spectate", (reason ?
strcat(
" for reason: '", reason,
"'") :
""),
".\n"));
198 else LOG_INFO(
"No players found to spectate.");
205 LOG_HELP(
"Usage:^3 sv_cmd allspec [<reason>]");
206 LOG_HELP(
" Where <reason> is an optional argument for explanation of allspec command.");
207 LOG_HELP(
"See also: ^2moveplayer, shuffleteams^7");
237 LOG_HELP(
"Usage:^3 sv_cmd anticheat <client>");
238 LOG_HELP(
" <client> is the entity number or name of the player.");
250 vector size_min =
'0 0 0';
251 vector size_max =
'0 0 0';
252 tracebox(
'1 0 0' *
world.absmin.x,
253 '0 1 0' *
world.absmin.y +
'0 0 1' *
world.absmin.z,
254 '0 1 0' *
world.absmax.y +
'0 0 1' *
world.absmax.z,
255 '1 0 0' *
world.absmax.x,
260 tracebox(
'0 1 0' *
world.absmin.y,
261 '1 0 0' *
world.absmin.x +
'0 0 1' *
world.absmin.z,
262 '1 0 0' *
world.absmax.x +
'0 0 1' *
world.absmax.z,
263 '0 1 0' *
world.absmax.y,
268 tracebox(
'0 0 1' *
world.absmin.z,
269 '1 0 0' *
world.absmin.x +
'0 1 0' *
world.absmin.y,
270 '1 0 0' *
world.absmax.x +
'0 1 0' *
world.absmax.y,
271 '0 0 1' *
world.absmax.z,
276 tracebox(
'1 0 0' *
world.absmax.x,
277 '0 1 0' *
world.absmin.y +
'0 0 1' *
world.absmin.z,
278 '0 1 0' *
world.absmax.y +
'0 0 1' *
world.absmax.z,
279 '1 0 0' *
world.absmin.x,
284 tracebox(
'0 1 0' *
world.absmax.y,
285 '1 0 0' *
world.absmin.x +
'0 0 1' *
world.absmin.z,
286 '1 0 0' *
world.absmax.x +
'0 0 1' *
world.absmax.z,
287 '0 1 0' *
world.absmin.y,
292 tracebox(
'0 0 1' *
world.absmax.z,
293 '1 0 0' *
world.absmin.x +
'0 1 0' *
world.absmin.y,
294 '1 0 0' *
world.absmax.x +
'0 1 0' *
world.absmax.y,
295 '0 0 1' *
world.absmin.z,
302 LOG_INFOF(
"Solid bounding box size: %v %v", size_min, size_max);
310 LOG_HELP(
" No arguments required.");
311 LOG_HELP(
"See also: ^2gettaginfo, trace^7");
325 if (
argv(1) ==
"reset")
330 else if (
argv(1) ==
"setbots")
341 else if (
argv(1) ==
"load" && argc == 3)
353 while ((s =
fgets(fh)))
357 if (argc >= 3 &&
argv(0) ==
"sv_cmd" &&
argv(1) ==
"bot_cmd")
359 if (
argv(2) ==
"reset")
363 else if (
argv(2) ==
"setbots")
375 if(
argv(2) ==
"*" ||
argv(2) ==
"all")
398 else if (
argv(1) ==
"help")
406 if(
argv(1) ==
"*" ||
argv(1) ==
"all")
429 LOG_INFO(
"Error: Can't find bot with the name or id '",
argv(1),
"' - Did you mistype the command?");
439 LOG_HELP(
"Usage:^3 sv_cmd bot_cmd <client> <command> [<arguments>]");
440 LOG_HELP(
" <client> can be either the name of the bot or a progressive number (not the entity number!)");
441 LOG_HELP(
" can also be '*' or 'all' to allow sending the command to all the bots");
442 LOG_HELP(
" For full list of commands, see bot_cmd help [<command>].");
443 LOG_HELP(
"Examples: sv_cmd bot_cmd 1 cc \"say something\"");
444 LOG_HELP(
" sv_cmd bot_cmd 1 presskey jump");
445 LOG_HELP(
" sv_cmd bot_cmd * pause");
459 string choice = ((
random() > 0.5) ? result1 : result2);
461 Send_Notification(NOTIF_ALL,
NULL, MSG_MULTI, MULTI_COINTOSS, choice);
468 LOG_HELP(
"Usage:^3 sv_cmd cointoss [<result1> <result2>]");
469 LOG_HELP(
" Where <result1> and <result2> are user created options.");
483 if (
argv(1) ==
"save")
486 LOG_INFO(
"Copied serverprogs database to '",
argv(2),
"' in the data directory.");
489 else if (
argv(1) ==
"dump")
495 else if (
argv(1) ==
"load")
499 LOG_INFO(
"Loaded '",
argv(2),
"' as new serverprogs database.");
509 LOG_HELP(
"Usage:^3 sv_cmd database <action> <filename>");
510 LOG_HELP(
" Where <action> is the command to complete,");
511 LOG_HELP(
" and <filename> is what it acts upon.");
512 LOG_HELP(
" Full list of commands here: save, dump, load.");
535 LOG_INFO(
"defer clear stuffed to ", playername(client.netname, client.team,
false));
547 LOG_HELP(
"Usage:^3 sv_cmd defer_clear <client>");
548 LOG_HELP(
" <client> is the entity number or name of the player.");
549 LOG_HELP(
"See also: ^2defer_clear_all^7");
569 if (n)
LOG_INFO(
"Successfully stuffed defer clear to all clients (",
ftos(n),
")");
576 LOG_HELP(
"Usage:^3 sv_cmd defer_clear_all");
577 LOG_HELP(
" No arguments required.");
578 LOG_HELP(
"See also: ^2defer_clear^7");
602 LOG_HELP(
"Usage:^3 sv_cmd delrec <ranking> [<map>]");
603 LOG_HELP(
" <ranking> is which ranking level to clear up to, ");
604 LOG_HELP(
" it will clear all records up to nth place.");
605 LOG_HELP(
" if <map> is not provided it will use current map.");
614 LOG_INFO(
"effect ", effect_name,
" is ",
ftos(_particleeffectnum(effect_name)),
"\n");
615 db_put(d, effect_name,
"1");
668 while ((s =
fgets(fh)))
671 if (
argv(0) ==
"effect")
675 int i = _particleeffectnum(
argv(1));
690 LOG_HELP(
"Usage:^3 sv_cmd effectindexdump");
691 LOG_HELP(
" No arguments required.");
710 LOG_HELP(
"Usage:^3 sv_cmd extendmatchtime");
711 LOG_HELP(
" No arguments required.");
712 LOG_HELP(
"See also: ^2reducematchtime^7");
726 LOG_INFOF(
"This command works only when the server is running.");
741 if (lsmaps_reply !=
"")
strunzone(lsmaps_reply);
743 bprint(
"Game type successfully switched to ", s,
"\n");
747 bprint(
"Cannot use this game type: no map for it found\n");
754 bprint(
"Failed to switch to ", s,
": this game type does not exist!\n");
765 LOG_HELP(
"Usage:^3 sv_cmd gametype <mode>");
766 LOG_HELP(
" Where <mode> is the gametype mode to switch to.");
785 tmp_entity =
spawn();
793 precache_model(
argv(1));
794 _setmodel(tmp_entity,
argv(1));
802 LOG_HELPF(
"model %s frame %s tag %s index %s parent %s",
830 LOG_HELP(
"Usage:^3 sv_cmd gettaginfo <model> <frame> <index> [<command1>] [<command2>]");
831 LOG_HELP(
"See also: ^2bbox, trace^7");
847 tmp_entity =
spawn();
855 precache_model(
argv(1));
856 _setmodel(tmp_entity,
argv(1));
867 tmp_entity.frame =
f1;
869 getsurfacepoint(tmp_entity, 0, 0);
871 tmp_entity.frame =
f2;
873 getsurfacepoint(tmp_entity, 0, 0);
877 LOG_INFO(
"model ", tmp_entity.model,
" frame ",
ftos(f1),
" animtime ",
ftos(n / t1),
"/s");
878 LOG_INFO(
"model ", tmp_entity.model,
" frame ",
ftos(f2),
" animtime ",
ftos(n / t2),
"/s");
889 LOG_HELP(
"Usage:^3 sv_cmd animbench <model> <frame1> <frame2>");
890 LOG_HELP(
"See also: ^2bbox, trace^7");
904 LOG_INFOF(
"This command works only when the server is running.");
918 LOG_HELP(
"Usage:^3 sv_cmd gotomap <map>");
919 LOG_HELP(
" Where <map> is the *.bsp file to change to.");
935 bprint(
"^1The teams are now locked.\n");
939 bprint(
"lockteams command can only be used in a team-based gamemode.\n");
947 LOG_HELP(
"Usage:^3 sv_cmd lockteams");
948 LOG_HELP(
" No arguments required.");
949 LOG_HELP(
"See also: ^2unlockteams^7");
963 tmp_entity =
new(make_mapinfo);
965 tmp_entity.nextthink =
time;
973 LOG_HELP(
"Usage:^3 sv_cmd make_mapinfo");
974 LOG_HELP(
" No arguments required.");
990 string targets = strreplace(
",",
" ",
argv(1));
991 string original_targets = strreplace(
" ",
", ", targets);
992 string destination =
argv(2);
993 if (destination ==
"spec")
994 destination =
"spectator";
996 if ((targets) && (destination))
1003 targets =
cdr(targets);
1008 string client_num_str =
ftos(
etof(client));
1014 else if (destination ==
"spectator")
1016 string pl_name = playername(client.netname, client.team,
false);
1021 successful =
strcat(successful, (successful ?
", " :
""), pl_name);
1025 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is already spectating.");
1032 LOG_INFO(
"Can't change teams when currently not playing a team game.");
1036 string pl_name = playername(client.netname, client.team,
false);
1040 LOG_INFO(
"Player #", client_num_str,
" (", pl_name,
") is not in the game.");
1051 if (team_num == client.team)
1057 else if (team_num == 0)
1072 LOG_INFO(
"Can't move player to ", destination,
" team because it doesn't exist.");
1078 LOG_INFO(
"Can't move player to ", destination,
" team because it isn't available.");
1094 successful =
strcat(successful, (successful ?
", " :
""), pl_name);
1099 LOG_INFO(
"Unable to move player #", client_num_str,
" (", pl_name,
")");
1104 if (successful)
bprint(
"Successfully moved players ", successful,
" to destination ", destination,
".\n");
1105 else LOG_INFO(
"No players given (", original_targets,
") are able to move.");
1115 LOG_HELP(
"Usage:^3 sv_cmd moveplayer <clients> <destination>");
1116 LOG_HELP(
" <clients> is a list (separated by commas) of player entity ID's or nicknames");
1117 LOG_HELP(
" <destination> is what to send the player to, be it team or spectating");
1118 LOG_HELP(
" Full list of destinations here: spec, spectator, red, blue, yellow, pink, auto.");
1119 LOG_HELP(
"Examples: sv_cmd moveplayer 1,3,5 red");
1120 LOG_HELP(
" sv_cmd moveplayer 2 spec");
1121 LOG_HELP(
"See also: ^2allspec, shuffleteams^7");
1136 CS(it).spectatortime =
time;
1146 LOG_HELP(
"Usage:^3 sv_cmd nospectators");
1147 LOG_HELP(
" No arguments required.");
1167 LOG_HELP(
"Usage:^3 sv_cmd printstats");
1168 LOG_HELP(
" No arguments required.");
1187 LOG_HELP(
"Usage:^3 sv_cmd radarmap [--force] [--loop] [--quit] [--block | --trace | --sample | --lineblock] [--sharpen N] [--res W H] [--qual Q]");
1188 LOG_HELP(
" The quality factor Q is roughly proportional to the time taken.");
1189 LOG_HELP(
" trace supports no quality factor; its result should look like --block with infinite quality factor.");
1190 LOG_HELP(
"See also: ^2make_mapinfo^7");
1209 LOG_HELP(
"Usage:^3 sv_cmd reducematchtime");
1210 LOG_HELP(
" No arguments required.");
1211 LOG_HELP(
"See also: ^2extendmatchtime^7");
1237 LOG_HELP(
"Usage:^3 sv_cmd setbots <botnumber>");
1238 LOG_HELP(
" Where <botnumber> is the amount of bots to set bot_number cvar to.");
1249 LOG_INFO(
"Can't shuffle teams when currently not playing a team game.");
1258 LOG_INFO(
"Can't shuffle teams because at least one player has a forced team.");
1263 int number_of_teams = 0;
1269 number_of_teams =
max(i, number_of_teams);
1276 int target_team_index = team_index + 1;
1281 team_index = (team_index + 1) % number_of_teams;
1284 bprint(
"Successfully shuffled the players around randomly.\n");
1295 bprint(
"Players will be shuffled when this round is over.\n");
1306 LOG_HELP(
"Usage:^3 sv_cmd shuffleteams");
1307 LOG_HELP(
" No arguments required.");
1308 LOG_HELP(
"See also: ^2moveplayer, allspec^7");
1327 LOG_HELP(
"Usage:^3 sv_cmd resetmatch");
1328 LOG_HELP(
" No arguments required.");
1340 #ifdef STUFFTO_ENABLED 1368 LOG_HELP(
"Usage:^3 sv_cmd stuffto <client> \"<command>\"");
1369 LOG_HELP(
" <client> is the entity number or name of the player,");
1370 LOG_HELP(
" and <command> is the command to be sent to that player.");
1377 LOG_HELP(
"stuffto command is not enabled on this server.");
1390 vector org, delta, start, end, p, q, q0, pos, vv, dv;
1391 float i, f, safe, unsafe, dq, dqf;
1398 LOG_INFO(
"TEST CASE. If this returns the runaway loop counter error, possibly everything is oaky.");
1399 float worst_endpos_bug = 0;
1405 start.x = org.x +
random() * delta.x;
1406 start.y = org.y +
random() * delta.y;
1407 start.z = org.z +
random() * delta.z;
1409 end.x = org.x +
random() * delta.x;
1410 end.y = org.y +
random() * delta.y;
1411 end.z = org.z +
random() * delta.z;
1431 pos = p * (1 - (safe + unsafe) * 0.5) + start * ((safe + unsafe) * 0.5);
1435 if ((safe + unsafe) * 0.5 == unsafe)
break;
1436 unsafe = (safe + unsafe) * 0.5;
1440 if ((safe + unsafe) * 0.5 == safe)
break;
1441 safe = (safe + unsafe) * 0.5;
1445 LOG_INFO(
"safe distance to back off: ",
ftos(safe *
vlen(p - start)),
"qu");
1446 LOG_INFO(
"unsafe distance to back off: ",
ftos(unsafe *
vlen(p - start)),
"qu");
1448 tracebox(p, PL_MIN_CONST +
'0.1 0.1 0.1', PL_MAX_CONST -
'0.1 0.1 0.1', p,
MOVE_NOMONSTERS,
NULL);
1450 else LOG_INFO(
"trace_endpos just in solid when tracing from ",
vtos(start),
" to ",
vtos(end),
" endpos ",
vtos(p));
1451 if (++hitcount >= 10)
break;
1460 q = p +
normalize(end - p) * (dq + dqf);
1468 if (dq > worst_endpos_bug)
1470 worst_endpos_bug = dq;
1471 LOG_INFO(
"trace_endpos still before solid when tracing from ",
vtos(start),
" to ",
vtos(end),
" endpos ",
vtos(p));
1473 if (++hitcount >= 10)
break;
1484 tracebox(e.origin +
'0 0 32', e.mins, e.maxs, e.origin +
'0 0 -1024',
MOVE_NORMAL, e);
1488 LOG_INFO(
"not above ground, aborting");
1492 for (i = 0; i < 100000; ++i)
1495 if (dv.z > 0) dv = -1 * dv;
1496 tracebox(vv, e.mins, e.maxs, vv + dv,
MOVE_NORMAL, e);
1514 if (argc == 4 || argc == 5)
1517 int dphitcontentsmask_save = e.dphitcontentsmask;
1523 e.dphitcontentsmask = dphitcontentsmask_save;
1549 LOG_HELP(
"Usage:^3 sv_cmd trace <command> [<startpos> <endpos>] [<endpos_height>]");
1550 LOG_HELP(
" Where <startpos> and <endpos> are parameters for the 'walk' and 'showline' commands,");
1551 LOG_HELP(
" <endpos_height> is an optional parameter for the 'walk' command,");
1552 LOG_HELP(
" Full list of commands here: debug, debug2, walk, showline.");
1553 LOG_HELP(
"See also: ^2bbox, gettaginfo^7");
1568 bprint(
"^1The teams are now unlocked.\n");
1572 bprint(
"unlockteams command can only be used in a team-based gamemode.\n");
1580 LOG_HELP(
"Usage:^3 sv_cmd unlockteams");
1581 LOG_HELP(
" No arguments required.");
1582 LOG_HELP(
"See also: ^2lockteams^7");
1599 LOG_INFO(
"Successfully warped to campaign level ",
argv(1),
".");
1604 LOG_INFO(
"Successfully warped to next campaign level.");
1609 LOG_INFO(
"Not in campaign, can't level warp");
1617 LOG_HELP(
"Usage:^3 sv_cmd warp [<level>]");
1618 LOG_HELP(
" <level> is the level to change campaign mode to.");
1619 LOG_HELP(
" if <level> is not provided it will change to the next level.");
1688 FOREACH(SERVER_COMMANDS,
true, {
LOG_HELPF(
" ^2%s^7: %s", it.m_name, it.m_description); });
1693 string c = strtolower(
argv(0));
1694 FOREACH(SERVER_COMMANDS, it.m_name == c, {
1695 it.m_invokecmd(it, CMD_REQUEST_COMMAND, NULL, argc, command);
1703 string c = strtolower(
argv(1));
1704 FOREACH(SERVER_COMMANDS, it.m_name == c, {
1705 it.m_invokecmd(it, CMD_REQUEST_USAGE, NULL, argc,
"");
1731 if (strtolower(
argv(0)) ==
"help")
1735 LOG_HELP(
"Server console commands:");
1741 LOG_HELP(
"\nCommon networked commands:");
1744 LOG_HELP(
"\nGeneric commands shared by all programs:");
1747 LOG_HELP(
"\nUsage:^3 sv_cmd <command>^7, where possible commands are listed above.\n" 1748 "For help about a specific command, type sv_cmd help <command>");
1791 LOG_INFO(((command !=
"") ?
strcat(
"Unknown server command \"", command,
"\"") :
"No command provided"),
". For a list of supported commands, try sv_cmd help.");
const int NUM_TEAMS
Number of teams in the game.
void GameCommand_allready(int request)
void GameCommand_macro_write_aliases(float fh)
int MapInfo_RequiredFlags()
ERASEABLE int db_create()
ERASEABLE void db_put(int db, string key, string value)
void GameCommand_gettaginfo(int request, int argc)
bool MoveToTeam(entity client, int team_index, int type)
Moves player to the specified team.
void GameCommand_bbox(int request)
entity GetIndexedEntity(int argc, float start_index)
void GameCommand_macro_help()
void GameCommand_animbench(int request, int argc)
float CommonCommand_macro_usage(int argc, entity caller)
void print_Effect_Index(int d, string effect_name)
void GameCommand_gametype(int request, int argc)
void GameCommand_printstats(int request)
ERASEABLE int db_load(string filename)
void changematchtime(float delta, float mi, float ma)
float cvar_settemp(string tmp_cvar, string tmp_value)
const int CMD_REQUEST_USAGE
void TeamBalance_Destroy(entity balance)
Destroy the team balance entity.
void bot_cmdhelp(string scmd)
void anticheat_report_to_eventlog(entity this)
float GenericCommand(string command)
void CommonCommand_macro_help(entity caller)
void GameCommand(string command)
float BanCommand_macro_usage(int argc)
void GameCommand_stuffto(int request, int argc)
ClientState CS(Client this)
#define FOREACH_CLIENT(cond, body)
entity find_bot_by_name(string name)
ERASEABLE string cdr(string s)
returns all but first word
void GameCommand_defer_clear_all(int request)
ERASEABLE void db_close(int db)
float VerifyClientEntity(entity client, float must_be_real, float must_be_bots)
ERASEABLE string MakeConsoleSafe(string input)
escape the string to make it safe for consoles
float DPCONTENTS_PLAYERCLIP
void GameCommand_adminmsg(int request, int argc)
int MapInfo_ForbiddenFlags()
bool tracewalk(entity e, vector start, vector m1, vector m2, vector end, float end_height, float movemode)
int Entity_GetTeamIndex(entity this)
Returns the team index of the given entity.
void GameCommand_nospectators(int request)
ERASEABLE string car(string s)
returns first word
entity GetFilteredEntity(string input)
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1
float autocvar_timelimit_max
void GameCommand_reducematchtime(int request)
#define IS_REAL_CLIENT(v)
void GenericCommand_macro_help()
entity find_bot_by_number(float number)
void GameCommand_radarmap(int request, int argc)
void GameCommand_make_mapinfo(int request)
void GameCommand_resetmatch(int request)
Gametype MapInfo_Type_FromString(string gtype, bool dowarn)
void race_deleteTime(string map, float pos)
Gametype MapInfo_CurrentGametype()
const float MOVE_NOMONSTERS
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 s2loc s1 s2 f1 f1points f2
bool IsTeamAvailable(int team_num)
int Player_GetForcedTeamIndex(entity player)
Returns the index of the forced team of the given player.
int MapInfo_CurrentFeatures()
void GameCommand_gotomap(int request, int argc)
float GenericCommand_macro_usage(int argc)
void GameCommand_extendmatchtime(int request)
spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 spree_cen s1 f1 s1 strcat(_("Level %s: "), "^BG%s\3\, _("^BGPress ^F2%s^BG to enter the game"))
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.
void PutObserverInServer(entity this, bool is_forced, bool use_spawnpoint)
putting a client as observer in the server
float GameCommand_macro_command(int argc, string command)
void GameCommand_warp(int request, int argc)
ERASEABLE void db_save(int db, string filename)
ERASEABLE void db_dump(int db, string filename)
const int CMD_REQUEST_COMMAND
#define CMD_Write_Alias(execute, command, description)
void GameCommand_lockteams(int request)
void GameCommand_unlockteams(int request)
ERASEABLE string db_get(int db, string key)
void GameCommand_bot_cmd(int request, int argc, string command)
void DumpStats(float final)
string GetCallerName(entity caller)
float GameCommand_macro_usage(int argc)
float BanCommand(string command)
#define GetClientErrorString(clienterror, original_input)
void GameCommand_delrec(int request, int argc)
int Team_TeamToIndex(int team_num)
Converts team value into team index.
vector(float skel, float bonenum) _skel_get_boneabs_hidden
void ReadyRestart(bool forceWarmupEnd)
float Team_ColorToTeam(string team_color)
bool shuffleteams_on_reset_map
void GameCommand_anticheat(int request, int argc)
bool TeamBalance_IsTeamAllowed(entity balance, int index)
Returns whether the team change to the specified team is allowed.
Don't force any team.
void GameCommand_effectindexdump(int request)
float autocvar_g_maxplayers_spectator_blocktime
void CampaignLevelWarp(float n)
void GameCommand_trace(int request, int argc)
float autocvar_timelimit_increment
#define FOREACH_CLIENT_RANDOM(cond, body)
#define MUTATOR_CALLHOOK(id,...)
void BanCommand_macro_help()
#define IS_BOT_CLIENT(v)
want: (IS_CLIENT(v) && !IS_REAL_CLIENT(v))
entity weaponentities[MAX_WEAPONSLOTS]
bool Player_HasRealForcedTeam(entity player)
Returns whether player has real forced team.
bool RadarMap_Make(int argc)
int Team_IndexToTeam(int index)
Converts team index into team value.
void GameCommand_allspec(int request, int argc)
void GameCommand_defer_clear(int request, int argc)
entity TeamBalance_CheckAllowedTeams(entity for_whom)
Checks whether the player can join teams according to global configuration and mutator settings...
void bot_queuecommand(entity bot, string cmdstring)
void GameCommand_shuffleteams(int request)
float _MapInfo_FilterGametype(int pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
SERVER_COMMAND(adminmsg, "Send an admin message to a client directly")
float MapInfo_FilterGametype(Gametype pGametype, int pFeatures, int pFlagsRequired, int pFlagsForbidden, bool pAbortOnGenerate)
#define Team_ColoredFullName(teamid)
void GameCommand_database(int request, int argc)
void GameCommand_moveplayer(int request, int argc)
void MapInfo_SwitchGameType(Gametype t)
#define FOREACH(list, cond, body)
bool bot_fixcount(bool multiple_per_frame)
void GameCommand_setbots(int request, int argc)
float autocvar_timelimit_min
vector gettaginfo_forward
void GameCommand_cointoss(int request, int argc)
float CommonCommand_macro_command(int argc, entity caller, string command)
void make_mapinfo_Think(entity this)
#define particleeffectnum(e)
float autocvar_timelimit_decrement