/* * G_Teams_Invite_f */ void G_Teams_Invite_f( edict_t *ent ) { char *text; edict_t *toinvite; int team; if( ( !ent->r.inuse || !ent->r.client ) ) return; text = trap_Cmd_Argv( 1 ); if( !text || !strlen( text ) ) { int i; edict_t *e; char msg[1024]; msg[0] = 0; Q_strncatz( msg, "Usage: invite <player>\n", sizeof( msg ) ); Q_strncatz( msg, "- List of current players:\n", sizeof( msg ) ); for( i = 0, e = game.edicts+1; i < gs.maxclients; i++, e++ ) { if( !e->r.inuse ) continue; Q_strncatz( msg, va( "%3i: %s\n", PLAYERNUM( e ), e->r.client->netname ), sizeof( msg ) ); } G_PrintMsg( ent, "%s", msg ); return; } team = ent->s.team; if( !G_Teams_TeamIsLocked( team ) ) { G_PrintMsg( ent, "Your team is not locked.\n" ); return; } toinvite = G_PlayerForText( text ); if( !toinvite ) { G_PrintMsg( ent, "No such player.\n" ); return; } if( G_Teams_PlayerIsInvited( team, toinvite ) ) { G_PrintMsg( ent, "%s%s is already invited to your team.\n", toinvite->r.client->netname, S_COLOR_WHITE ); return; } G_Teams_InvitePlayer( team, toinvite ); G_PrintMsg( NULL, "%s%s invited %s%s to team %s%s.\n", ent->r.client->netname, S_COLOR_WHITE, toinvite->r.client->netname, S_COLOR_WHITE, GS_TeamName( team ), S_COLOR_WHITE ); }
/* * Cmd_ShowStats_f */ static void Cmd_ShowStats_f( edict_t *ent ) { edict_t *target; if( trap_Cmd_Argc() > 2 ) { G_PrintMsg( ent, "Usage: stats [player]\n" ); return; } if( trap_Cmd_Argc() == 2 ) { target = G_PlayerForText( trap_Cmd_Argv( 1 ) ); if( target == NULL ) { G_PrintMsg( ent, "No such player\n" ); return; } } else { if( ent->r.client->resp.chase.active && game.edicts[ent->r.client->resp.chase.target].r.client ) target = &game.edicts[ent->r.client->resp.chase.target]; else target = ent; } if( target->s.team == TEAM_SPECTATOR ) { G_PrintMsg( ent, "No stats for spectators\n" ); return; } trap_GameCmd( ent, va( "plstats 1 \"%s\"", G_StatsMessage( target ) ) ); }
/* * Cmd_ConsoleKick_f */ static void Cmd_ConsoleKick_f( void ) { edict_t *ent; if( trap_Cmd_Argc() != 2 ) { Com_Printf( "Usage: kick <id or name>\n" ); return; } ent = G_PlayerForText( trap_Cmd_Argv( 1 ) ); if( !ent ) { Com_Printf( "No such player\n" ); return; } trap_DropClient( ent, DROP_TYPE_NORECONNECT, "Kicked" ); }
/* * Cmd_Whois_f */ static void Cmd_Whois_f( edict_t *ent ) { edict_t *target; gclient_t *cl; const char *login; if( trap_Cmd_Argc() > 2 ) { G_PrintMsg( ent, "Usage: whois [player]\n" ); return; } if( trap_Cmd_Argc() == 2 ) { target = G_PlayerForText( trap_Cmd_Argv( 1 ) ); if( target == NULL ) { G_PrintMsg( ent, "No such player\n" ); return; } } else { if( ent->r.client->resp.chase.active && game.edicts[ent->r.client->resp.chase.target].r.client ) target = &game.edicts[ent->r.client->resp.chase.target]; else target = ent; } cl = target->r.client; if( cl->mm_session <= 0 ) { G_PrintMsg( ent, "Unregistered player\n" ); return; } login = Info_ValueForKey( cl->userinfo, "cl_mm_login" ); G_PrintMsg( ent, "%s%s is %s\n", cl->netname, S_COLOR_WHITE, login ); }