static void Svcmd_PrintQueue_f( void ) { char team[ MAX_STRING_CHARS ]; if( trap_Argc() != 2 ) { G_Printf( "usage: printqueue <team>\n" ); return; } trap_Argv( 1, team, sizeof( team ) ); switch( G_TeamFromString( team ) ) { case TEAM_ALIENS: G_PrintSpawnQueue( &level.alienSpawnQueue ); break; case TEAM_HUMANS: G_PrintSpawnQueue( &level.humanSpawnQueue ); break; default: G_Printf( "unknown team\n" ); } }
static void Svcmd_AdmitDefeat_f( void ) { int team; char teamNum[ 2 ]; if( trap_Argc( ) != 2 ) { G_Printf("admitdefeat: must provide a team\n"); return; } trap_Argv( 1, teamNum, sizeof( teamNum ) ); team = G_TeamFromString( teamNum ); if( team == TEAM_ALIENS ) { G_TeamCommand( TEAM_ALIENS, "cp \"Hivemind Link Broken\" 1"); trap_SendServerCommand( -1, "print \"Alien team has admitted defeat\n\"" ); } else if( team == TEAM_HUMANS ) { G_TeamCommand( TEAM_HUMANS, "cp \"Life Support Terminated\" 1"); trap_SendServerCommand( -1, "print \"Human team has admitted defeat\n\"" ); } else { G_Printf("admitdefeat: invalid team\n"); return; } level.surrenderTeam = team; G_BaseSelfDestruct( team ); }
/* =================== Svcmd_ForceTeam_f forceteam <player> <team> =================== */ static void Svcmd_ForceTeam_f( void ) { gclient_t *cl; char str[ MAX_TOKEN_CHARS ]; team_t team; if( trap_Argc( ) != 3 ) { G_Printf( "usage: forceteam <player> <team>\n" ); return; } trap_Argv( 1, str, sizeof( str ) ); cl = ClientForString( str ); if( !cl ) return; trap_Argv( 2, str, sizeof( str ) ); team = G_TeamFromString( str ); if( team == NUM_TEAMS ) { G_Printf( "forceteam: invalid team \"%s\"\n", str ); return; } G_ChangeTeam( &g_entities[ cl - level.clients ], team ); }
static void Svcmd_TeamMessage_f( void ) { char teamNum[ 2 ]; team_t team; char *arg; if ( trap_Argc() < 3 ) { G_Printf( "usage: say_team <team> <message>\n" ); return; } trap_Argv( 1, teamNum, sizeof( teamNum ) ); team = G_TeamFromString( teamNum ); if ( team == NUM_TEAMS ) { G_Printf( "say_team: invalid team \"%s\"\n", teamNum ); return; } arg = ConcatArgs( 2 ); G_TeamCommand( team, va( "chat -1 %d %s", SAY_TEAM, Quote( arg ) ) ); G_LogPrintf( "SayTeam: -1 \"console\": %s\n", arg ); }
/* ============ Svcmd_TeamMessage_f Sends a Chat Message to a Team from the Console ============ */ void Svcmd_TeamMessage_f( void ) { char teamNum[ 2 ]; const char* prefix; team_t team; if( trap_Argc( ) < 3 ) { G_Printf( "usage: say_team <team> <message>\n" ); return; } trap_Argv( 1, teamNum, sizeof( teamNum ) ); team = G_TeamFromString( teamNum ); if( team == TEAM_NUM_TEAMS ) { G_Printf( "say_team: invalid team \"%s\"\n", teamNum ); return; } prefix = BG_TeamName( team ); prefix = va( "[%c] ", toupper( *prefix ) ); G_TeamCommand( team, va( "tchat \"(console): " S_COLOR_CYAN "%s\"", ConcatArgs( 2 ) ) ); G_LogPrintf( "sayteam: %sconsole: " S_COLOR_CYAN "%s\n", prefix, ConcatArgs( 2 ) ); }
static void Svcmd_TeamWin_f( void ) { // this is largely made redundant by admitdefeat <team> char cmd[ 6 ]; team_t team; trap_Argv( 0, cmd, sizeof( cmd ) ); team = G_TeamFromString( cmd ); if ( TEAM_ALIENS == team || TEAM_HUMANS == team ) { G_BaseSelfDestruct( team ); } }
static void Svcmd_TeamWin_f( void ) { // this is largely made redundant by admitdefeat <team> char cmd[ 6 ]; trap_Argv( 0, cmd, sizeof( cmd ) ); switch( G_TeamFromString( cmd ) ) { case TEAM_ALIENS: G_BaseSelfDestruct( TEAM_HUMANS ); break; case TEAM_HUMANS: G_BaseSelfDestruct( TEAM_ALIENS ); break; default: return; } }
static void Svcmd_PrintQueue_f() { team_t team; char teamName[ MAX_STRING_CHARS ]; if ( trap_Argc() != 2 ) { G_Printf( "usage: printqueue <team>\n" ); return; } trap_Argv( 1, teamName, sizeof( teamName ) ); team = G_TeamFromString(teamName); if ( TEAM_ALIENS == team || TEAM_HUMANS == team ) { G_PrintSpawnQueue( &level.team[ team ].spawnQueue ); } else { G_Printf( "unknown team\n" ); } }