示例#1
0
/*
 * @brief
 */
void Sv_KickClient(sv_client_t *cl, const char *msg) {
	char buf[MAX_STRING_CHARS], name[32];

	if (!cl)
		return;

	if (cl->state < SV_CLIENT_CONNECTED)
		return;

	if (*cl->name == '\0') // force a name to kick
		strcpy(name, "player");
	else
		g_strlcpy(name, cl->name, sizeof(name));

	memset(buf, 0, sizeof(buf));

	if (msg && *msg != '\0')
		g_snprintf(buf, sizeof(buf), ": %s", msg);

	Sv_ClientPrint(cl->edict, PRINT_HIGH, "You were kicked%s\n", buf);

	Sv_DropClient(cl);

	Sv_BroadcastPrint(PRINT_HIGH, "%s was kicked%s\n", name, buf);
}
示例#2
0
/*
 * Sv_Serverinfo_f
 *
 * Dumps the serverinfo info string
 */
static void Sv_Info_f(void) {
	const cvar_t *cvar;
	char line[MAX_STRING_CHARS];

	if (!sv_client) { // print to server console
		Com_PrintInfo(Cvar_ServerInfo());
		return;
	}

	for (cvar = cvar_vars; cvar; cvar = cvar->next) {

		if (!(cvar->flags & CVAR_SERVER_INFO))
			continue; //only print serverinfo cvars

		snprintf(line, sizeof(line), "%s %s\n", cvar->name, cvar->string);
		Sv_ClientPrint(sv_client->edict, PRINT_MEDIUM, "%s", line);
	}
}