}
}
+void GameCommand_teamname(int request, int argc)
+{
+ switch (request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ if (argv(1) == "")
+ {
+ return;
+ }
+ if (!teamplay)
+ {
+ LOG_INFO("selectteam can only be used in teamgames");
+ return;
+ }
+
+ switch (argv(1))
+ {
+ case "red":
+ case "blue":
+ case "yellow":
+ case "pink":
+ {
+ int tm = Team_ColorToTeam(argv(1));
+ if(argv(2) != "") {
+ cvar_set(strcat("g_teamnames_", argv(1)), argv(2));
+ bprintf("\{1}%s%s^7 team is now known as %s^7\n", Team_ColorCode(tm), Team_ColorName(tm), argv(2));
+ } else {
+ cvar_set(strcat("g_teamnames_", argv(1)), "");
+ bprintf("\{1}%s%s^7 team now doesn't have a team name\n", Team_ColorCode(tm), Team_ColorName(tm), argv(2));
+ }
+
+ break;
+ }
+ default:
+ {
+ return;
+ }
+ }
+
+ send_TeamNames(MSG_BROADCAST, NULL);
+ return;
+ }
+
+ default:
+ LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
+ case CMD_REQUEST_USAGE:
+ {
+ LOG_HELP("Usage:^3 sv_cmd sendteams");
+ LOG_HELP(" No arguments required.");
+ return;
+ }
+ }
+}
+
void GameCommand_allready(int request)
{
switch (request)
}
}
+void GameCommand_ircmsg(int request, int argc, string command)
+{
+ /* IRCSay from the SMB Modpack */
+ switch (request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ string msgstr = substring(command, strlen(argv(0))+1, strlen(command));
+
+ if(msgstr == "")
+ return;
+
+ string prefix;
+ if(substring(msgstr, 0, 3) == "^4*") // actions
+ prefix = "\{3}";
+ else
+ prefix = "\{1}";
+
+ msgstr = strcat(prefix, strreplace("\n", " ", msgstr), "\n"); // newlines only are good for centerprint
+
+ FOREACH_CLIENTSLOT(true,
+ {
+ if(!intermission_running)
+ if((autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !(warmup_stage || game_stopped)))
+ if(IS_PLAYER(it))
+ continue;
+ if(IS_REAL_CLIENT(it))
+ sprint(it, msgstr);
+ });
+ }
+
+ default:
+ case CMD_REQUEST_USAGE:
+ {
+ LOG_HELP("Usage:^3 sv_cmd ircmsg message");
+ return;
+ }
+ }
+}
+
void GameCommand_lockteams(int request)
{
switch (request)
if (teamplay)
{
lockteams = 1;
- bprint("^1The teams are now locked.\n");
+ bprint("\{1}^1The teams are now locked.\n");
}
else
{
}
}
+void GameCommand_setflag(int request, int argc)
+{
+ switch (request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ entity client;
+ float accepted;
+
+ client = GetFilteredEntity(argv(1));
+ accepted = VerifyClientEntity(client, false, false);
+
+ if (accepted <= 0)
+ {
+ LOG_INFO("^1ERROR^7: Couldn't set country flag");
+ LOG_HELP("Usage:^3 sv_cmd setflag #client_id countrycode[0-249]");
+ return;
+ }
+
+ client.countrycode = stof(argv(2));
+ LOG_INFO("^2SUCCESS^7: Country flag set!");
+ return;
+ }
+ default:
+ LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
+ case CMD_REQUEST_USAGE:
+ {
+ LOG_HELP("Usage:^3 sv_cmd setflag #client_id countrycode[0-249]");
+ return;
+ }
+ }
+}
+
+void GameCommand_setrank(int request, int argc)
+{
+ switch (request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ entity client;
+ float accepted;
+
+ client = GetFilteredEntity(argv(1));
+ accepted = VerifyClientEntity(client, false, false);
+
+ if (accepted <= 0)
+ {
+ LOG_INFO("^1ERROR^7: Couldn't set player rank");
+ LOG_HELP("Usage:^3 sv_cmd setrank #client_id rank");
+ return;
+ }
+
+ client.rank = strzone(argv(2));
+ LOG_INFO("^2SUCCESS^7: Player rank set!");
+ return;
+ }
+ default:
+ LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
+ case CMD_REQUEST_USAGE:
+ {
+ LOG_HELP("Usage:^3 sv_cmd setrank #client_id #rank");
+ return;
+ }
+ }
+}
+
void GameCommand_moveplayer(int request, int argc)
{
switch (request)
}
}
+void GameCommand_printplayer(int request, int argc)
+{
+ switch (request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ entity player = GetIndexedEntity(argc, 1);
+ if (player.playerid)
+ {
+ GameLogEcho(strcat(
+ strcat(
+ ":playerinfo:", ftos(player.playerid),
+ ":", ftos(etof(player)),
+ ":", ftos(CS_CVAR(player).cvar_cl_allow_uidtracking),
+ ":", ftos(CS_CVAR(player).cvar_cl_allow_uid2name)),
+ strcat(
+ ":", ftos(CS_CVAR(player).cvar_cl_allow_uidranking),
+ ":", ((IS_REAL_CLIENT(player)) ? GameLog_ProcessIP(player.netaddress) : "bot"),
+ ":", player.crypto_idfp,
+ ":", playername(player.netname, player.team, false))));
+ }
+ return;
+ }
+ default:
+ case CMD_REQUEST_USAGE:
+ {
+ LOG_HELP("Usage:^3 sv_cmd printplayer <player_entity_id>");
+ return;
+ }
+ }
+}
+
void GameCommand_printstats(int request)
{
switch (request)
if (teamplay)
{
lockteams = 0;
- bprint("^1The teams are now unlocked.\n");
+ bprint("\{1}^1The teams are now unlocked.\n");
}
else
{
SERVER_COMMAND(gametype, "Simple command to change the active gametype") { GameCommand_gametype(request, arguments); }
SERVER_COMMAND(gettaginfo, "Get specific information about a weapon model") { GameCommand_gettaginfo(request, arguments); }
SERVER_COMMAND(gotomap, "Simple command to switch to another map") { GameCommand_gotomap(request, arguments); }
+SERVER_COMMAND(ircmsg, "Chat message to be sent by IRC bots") { GameCommand_ircmsg(request, arguments, command); }
SERVER_COMMAND(lockteams, "Disable the ability for players to switch or enter teams") { GameCommand_lockteams(request); }
SERVER_COMMAND(make_mapinfo, "Automatically rebuild mapinfo files") { GameCommand_make_mapinfo(request); }
SERVER_COMMAND(moveplayer, "Change the team/status of a player") { GameCommand_moveplayer(request, arguments); }
SERVER_COMMAND(nospectators, "Automatically remove spectators from a match") { GameCommand_nospectators(request); }
+SERVER_COMMAND(printplayer, "Print information about a player") { GameCommand_printplayer(request, arguments); }
SERVER_COMMAND(printstats, "Dump eventlog player stats and other score information") { GameCommand_printstats(request); }
SERVER_COMMAND(radarmap, "Generate a radar image of the map") { GameCommand_radarmap(request, arguments); }
SERVER_COMMAND(reducematchtime, "Decrease the timelimit value incrementally") { GameCommand_reducematchtime(request); }
SERVER_COMMAND(resetmatch, "Soft restart the game without changing teams; goes back to warmup if enabled") { GameCommand_resetmatch(request); }
SERVER_COMMAND(setbots, "Adjust how many bots are in the match") { GameCommand_setbots(request, arguments); }
+SERVER_COMMAND(setflag, "Set client flag") { GameCommand_setflag(request, arguments); }
+SERVER_COMMAND(setrank, "Set client rank") { GameCommand_setrank(request, arguments); }
SERVER_COMMAND(shuffleteams, "Randomly move players to different teams") { GameCommand_shuffleteams(request); }
SERVER_COMMAND(stuffto, "Send a command to be executed on a client") { GameCommand_stuffto(request, arguments); }
+SERVER_COMMAND(teamname, "Set team name") { GameCommand_teamname(request, arguments); }
SERVER_COMMAND(trace, "Various debugging tools with tracing") { GameCommand_trace(request, arguments); }
SERVER_COMMAND(unlockteams, "Enable the ability for players to switch or enter teams") { GameCommand_unlockteams(request); }
SERVER_COMMAND(warp, "Choose different level in campaign") { GameCommand_warp(request, arguments); }