Beispiel #1
0
/*
==================
SV_StopServerDemo_f

Stop a server-side demo for given player/slot. Note that
"stopserverdemo all" will stop demos for all players in
the server.
==================
*/
static void SV_StopServerDemo_f(void)
{
        client_t *client;

        Com_DPrintf("SV_StopServerDemo_f\n");

        if (!com_sv_running->integer) {
                Com_Printf("stopserverdemo: Server not running\n");
                return;
        }

        if (Cmd_Argc() != 2) {
                Com_Printf("Usage: stopserverdemo <player-or-all>\n");
                return;
        }

        client = SV_BetterGetPlayerByHandle(Cmd_Argv(1));
        if (!Q_stricmp(Cmd_Argv(1), "all")) {
                if (client) {
                        Com_Printf("stopserverdemo: Player 'all' ignored, stopping all demos instead\n");
                }
                SV_StopRecordAll();
        }
        else if (client) {
                SV_StopRecordOne(client);
        }
        else {
                Com_Printf("stopserverdemo: No player with that handle/in that slot\n");
        }
}
/*
==================
SV_StopServerDemo_f

Stop a server-side demo for given player/slot. Note that
"stopserverdemo all" will stop demos for all players in
the server.
==================
*/
static void SV_StopServerDemo_f(void)
{
	client_t *client;

	Com_DPrintf("SV_StopServerDemo_f\n");

	if (!com_sv_running->integer) {
		Com_Printf("stopserverdemo: Server not running\n");
		return;
	}

	if (Cmd_Argc() != 2) {
		Com_Printf("Usage: stopserverdemo <client-or-all>\n");
		return;
	}

	if (!Q_stricmp(Cmd_Argv(1), "all")) {

		SV_StopRecordAll();
	}
	else {

	    client = SV_GetPlayerByHandle();

	    if (!client) {
	        return;
	    }

		SV_StopRecordOne(client);
	}

}
Beispiel #3
0
static void SV_StopRecordAll(void)
{
        int slot;
        client_t *client;

        Com_DPrintf("SV_StopRecordAll\n");

        for (slot=0, client=svs.clients; slot < sv_maxclients->integer; slot++, client++) {
                // filter here to avoid lots of bogus messages from SV_StopRecordOne()
                if (client->netchan.remoteAddress.type == NA_BOT
                    || client->state != CS_ACTIVE // disconnects are handled elsewhere
                    || !client->demo_recording) {
                        continue;
                }
                SV_StopRecordOne(client);
        }
}