/* ================= ConsoleCommand // these are added in cg_main, CG_Init so they tab-complete ================= */ qboolean ConsoleCommand( void ) { char *cmd; cmd = gi.argv(0); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } // if (Q_stricmp (cmd, "addbot") == 0) { // Svcmd_AddBot_f(); // return qtrue; // } if (Q_stricmp (cmd, "nav") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_Nav_f (); return qtrue; } if (Q_stricmp (cmd, "npc") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_NPC_f (); return qtrue; } if (Q_stricmp (cmd, "use") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_Use_f (); return qtrue; } if ( Q_stricmp( cmd, "ICARUS" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Quake3Game()->Svcmd(); return qtrue; } if ( Q_stricmp( cmd, "saberColor" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_SaberColor_f(); return qtrue; } if ( Q_stricmp( cmd, "saber" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_Saber_f(); return qtrue; } if ( Q_stricmp( cmd, "saberblade" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_SaberBlade_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceJump" ) == 0 ) { Svcmd_ForceJump_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberThrow" ) == 0 ) { Svcmd_SaberThrow_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceHeal" ) == 0 ) { Svcmd_ForceHeal_f(); return qtrue; } if ( Q_stricmp( cmd, "setForcePush" ) == 0 ) { Svcmd_ForcePush_f(); return qtrue; } if ( Q_stricmp( cmd, "setForcePull" ) == 0 ) { Svcmd_ForcePull_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceSpeed" ) == 0 ) { Svcmd_ForceSpeed_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceGrip" ) == 0 ) { Svcmd_ForceGrip_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceLightning" ) == 0 ) { Svcmd_ForceLightning_f(); return qtrue; } if ( Q_stricmp( cmd, "setMindTrick" ) == 0 ) { Svcmd_MindTrick_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberDefense" ) == 0 ) { Svcmd_SaberDefense_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberOffense" ) == 0 ) { Svcmd_SaberOffense_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceRage" ) == 0 ) { Svcmd_ForceSetLevel_f( FP_RAGE ); return qtrue; } if ( Q_stricmp( cmd, "setForceDrain" ) == 0 ) { Svcmd_ForceSetLevel_f( FP_DRAIN ); return qtrue; } if ( Q_stricmp( cmd, "setForceProtect" ) == 0 ) { Svcmd_ForceSetLevel_f( FP_PROTECT ); return qtrue; } if ( Q_stricmp( cmd, "setForceAbsorb" ) == 0 ) { Svcmd_ForceSetLevel_f( FP_ABSORB ); return qtrue; } if ( Q_stricmp( cmd, "setForceSight" ) == 0 ) { Svcmd_ForceSetLevel_f( FP_SEE ); return qtrue; } if ( Q_stricmp( cmd, "setForceAll" ) == 0 ) { Svcmd_ForceJump_f(); Svcmd_SaberThrow_f(); Svcmd_ForceHeal_f(); Svcmd_ForcePush_f(); Svcmd_ForcePull_f(); Svcmd_ForceSpeed_f(); Svcmd_ForceGrip_f(); Svcmd_ForceLightning_f(); Svcmd_MindTrick_f(); Svcmd_SaberDefense_f(); Svcmd_SaberOffense_f(); Svcmd_ForceSetLevel_f( FP_RAGE ); Svcmd_ForceSetLevel_f( FP_DRAIN ); Svcmd_ForceSetLevel_f( FP_PROTECT ); Svcmd_ForceSetLevel_f( FP_ABSORB ); Svcmd_ForceSetLevel_f( FP_SEE ); for ( int i = SS_NONE+1; i < SS_NUM_SABER_STYLES; i++ ) { g_entities[0].client->ps.saberStylesKnown |= (1<<i); } return qtrue; } if ( Q_stricmp( cmd, "saberAttackCycle" ) == 0 ) { Svcmd_SaberAttackCycle_f(); return qtrue; } if ( Q_stricmp( cmd, "runscript" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); if ( cmd2 && cmd2[0] ) { char *cmd3 = gi.argv(2); if ( cmd3 && cmd3[0] ) { gentity_t *found = NULL; if ( (found = G_Find(NULL, FOFS(targetname), cmd2 ) ) != NULL ) { Quake3Game()->RunScript( found, cmd3 ); } else { //can't find cmd2 gi.Printf( S_COLOR_RED"runscript: can't find targetname %s\n", cmd2 ); } } else { Quake3Game()->RunScript( &g_entities[0], cmd2 ); } } else { gi.Printf( S_COLOR_RED"usage: runscript <ent targetname> scriptname\n" ); } //FIXME: else warning return qtrue; } if ( Q_stricmp( cmd, "playerteam" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); int n; if ( !*cmd2 || !cmd2[0] ) { gi.Printf( S_COLOR_RED"'playerteam' - change player team, requires a team name!\n" ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = (TEAM_FREE + 1); n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", GetStringForID( TeamTable, n ) ); } } else { team_t team; team = (team_t)GetIDForString( TeamTable, cmd2 ); if ( team == -1 ) { gi.Printf( S_COLOR_RED"'playerteam' unrecognized team name %s!\n", cmd2 ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = TEAM_FREE; n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", GetStringForID( TeamTable, n ) ); } } else { g_entities[0].client->playerTeam = team; //FIXME: convert Imperial, Malon, Hirogen and Klingon to Scavenger? } } return qtrue; } if ( Q_stricmp( cmd, "control" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); if ( !*cmd2 || !cmd2[0] ) { if ( !G_ClearViewEntity( &g_entities[0] ) ) { gi.Printf( S_COLOR_RED"control <NPC_targetname>\n", cmd2 ); } } else { Q3_SetViewEntity( 0, cmd2 ); } return qtrue; } if ( Q_stricmp( cmd, "grab" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); if ( !*cmd2 || !cmd2[0] ) { if ( !G_ReleaseEntity( &g_entities[0] ) ) { gi.Printf( S_COLOR_RED"grab <NPC_targetname>\n", cmd2 ); } } else { G_GrabEntity( &g_entities[0], cmd2 ); } return qtrue; } if ( Q_stricmp( cmd, "knockdown" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } G_Knockdown( &g_entities[0], &g_entities[0], vec3_origin, 300, qtrue ); return qtrue; } if ( Q_stricmp( cmd, "playerModel" ) == 0 ) { if ( gi.argc() == 1 ) { gi.Printf( S_COLOR_RED"USAGE: playerModel <NPC Name>\n playerModel <g2model> <skinhead> <skintorso> <skinlower>\n playerModel player (builds player from customized menu settings)\n" ); gi.Printf( "playerModel = %s ", va("%s %s %s %s\n", g_char_model->string, g_char_skin_head->string, g_char_skin_torso->string, g_char_skin_legs->string ) ); } else if ( gi.argc() == 2 ) { G_ChangePlayerModel( &g_entities[0], gi.argv(1) ); } else if ( gi.argc() == 5 ) { //instead of setting it directly via a command, we now store it in cvars //G_ChangePlayerModel( &g_entities[0], va("%s|%s|%s|%s", gi.argv(1), gi.argv(2), gi.argv(3), gi.argv(4)) ); gi.cvar_set("g_char_model", gi.argv(1) ); gi.cvar_set("g_char_skin_head", gi.argv(2) ); gi.cvar_set("g_char_skin_torso", gi.argv(3) ); gi.cvar_set("g_char_skin_legs", gi.argv(4) ); G_InitPlayerFromCvars( &g_entities[0] ); } return qtrue; } if ( Q_stricmp( cmd, "playerTint" ) == 0 ) { if ( gi.argc() == 4 ) { g_entities[0].client->renderInfo.customRGBA[0] = atoi(gi.argv(1)); g_entities[0].client->renderInfo.customRGBA[1] = atoi(gi.argv(2)); g_entities[0].client->renderInfo.customRGBA[2] = atoi(gi.argv(3)); gi.cvar_set("g_char_color_red", gi.argv(1) ); gi.cvar_set("g_char_color_green", gi.argv(2) ); gi.cvar_set("g_char_color_blue", gi.argv(3) ); } else { gi.Printf( S_COLOR_RED"USAGE: playerTint <red 0 - 255> <green 0 - 255> <blue 0 - 255>\n" ); gi.Printf( "playerTint = %s\n", va("%d %d %d", g_char_color_red->integer, g_char_color_green->integer, g_char_color_blue->integer ) ); } return qtrue; } if ( Q_stricmp( cmd, "nexttestaxes" ) == 0 ) { G_NextTestAxes(); } if ( Q_stricmp( cmd, "exitview" ) == 0 ) { Svcmd_ExitView_f(); } if (Q_stricmp (cmd, "iknowkungfu") == 0) { gi.cvar_set( "g_debugMelee", "1" ); G_SetWeapon( &g_entities[0], WP_MELEE ); for ( int i = FP_FIRST; i < NUM_FORCE_POWERS; i++ ) { g_entities[0].client->ps.forcePowersKnown |= ( 1 << i ); if ( i == FP_TELEPATHY ) { g_entities[0].client->ps.forcePowerLevel[i] = FORCE_LEVEL_4; } else { g_entities[0].client->ps.forcePowerLevel[i] = FORCE_LEVEL_3; } } } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); // all commands prefixed with st_ are destined for the rules engine. if ( cmd[ 0 ] == 's' && cmd[ 1 ] == 't' && cmd[ 2 ] == '_' ) { if ( G_ST_exec( ST_CONSOLECOMMAND, cmd+3 ) ) return qtrue; } switch( SWITCHSTRING( cmd ) ) { #ifdef DEVELOPER case CS('b','u','y',0): case CS('s','e','l','l'): case CS('v','i','s','i'): case CS('b','e','g','i'): case CS('a','s','s','e'): case CS('i','n','t','e'): case CS('e','n','d','i'): case CS('l','o','o','k'): case CS('p','l','a','n'): G_ST_exec( ST_CLIENTCOMMAND, 0, cmd ); trap_SendConsoleCommand( EXEC_INSERT, "wait 50 ;" ); return qtrue; // cl0_ case CS('c','l','0','_'): ClientCommand( 0, cmd + 4 ); return 0; #endif // entitylist case CS('e','n','t','i'): Svcmd_EntityList_f(); return qtrue; // forceteam case CS('f','o','r','c'): Svcmd_ForceTeam_f(); return qtrue; // game_memory case CS('g','a','m','e'): Svcmd_GameMem_f(); return qtrue; // addbot case CS('a','d','d','b'): Svcmd_AddBot_f(); return qtrue; // botlist case CS('b','o','t','l'): Svcmd_BotList_f(); return qtrue; // addip case CS('a','d','d','i'): Svcmd_AddIP_f(); return qtrue; // removeip case CS('r','e','m','o'): Svcmd_RemoveIP_f(); return qtrue; // listip case CS('l','i','s','t'): trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); return qtrue; // abort case CS('a','b','o','r'): G_ST_exec( ST_CONSOLECOMMAND, cmd ); return qtrue; } if (g_dedicated.integer) { if (Q_stricmp (cmd, "say") == 0) { trap_SendServerCommand( -1, va("print \"server: %s\"", ConcatArgs(1) ) ); return qtrue; } // everything else will also be printed as a say command trap_SendServerCommand( -1, va("print \"server: %s\"", ConcatArgs(0) ) ); return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); return qtrue; } if(Q_stricmp (cmd, "setGametype") == 0) { Svcmd_SetGameType_f(); return qtrue; } if(Q_stricmp (cmd, "startcam") == 0) { Svcmd_StartCam(); return qtrue; } if(Q_stricmp (cmd, "stopcam") == 0) { Svcmd_StopCam(); return qtrue; } if(Q_stricmp (cmd, "camcmd") == 0) { Svcmd_CamCmd(); return qtrue; } if( !Q_stricmp( cmd, "initwp") ) { WaypointInit(); return qtrue; } if ( Q_stricmp( cmd, "blibset") == 0 ) { char key[MAX_TOKEN_CHARS]; char value[MAX_TOKEN_CHARS]; trap_Argv(1, key, sizeof(key) ); trap_Argv(2, value, sizeof(value) ); if(!strlen(key)) { G_Printf("missing key\n"); return qtrue; } if( !strlen(value) ) // use "1" as default strcpy( value, "1" ); trap_BotLibVarSet( key, value ); return qtrue; } if(wopSP_cmdCheck(cmd)) return qtrue; if (g_dedicated.integer) { if ( Q_stricmp( cmd, "ssay" ) == 0 ) { Svcmd_Say_f(); return qtrue; } if ( Q_stricmp( cmd, "stell" ) == 0 ) { Svcmd_Tell_f(); return qtrue; } if ( Q_stricmp( cmd, "scp" ) == 0 ) { Svcmd_ClientCommand_f( CCMD_CP ); return qtrue; } if ( Q_stricmp( cmd, "smp" ) == 0 ) { Svcmd_ClientCommand_f( CCMD_MP ); return qtrue; } if ( Q_stricmp( cmd, "sprint" ) == 0 ) { Svcmd_ClientCommand_f( CCMD_PRINT ); return qtrue; } // everything else will also be printed to clients trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(0) ) ); return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if ( Q_stricmp( cmd, "entitylist" ) == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp( cmd, "forceteam" ) == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if ( Q_stricmp( cmd, "game_memory" ) == 0 ) { Svcmd_GameMem_f(); return qtrue; } if ( Q_stricmp( cmd, "addbot" ) == 0 ) { Svcmd_AddBot_f(); return qtrue; } if ( Q_stricmp( cmd, "addip" ) == 0 ) { Svcmd_AddIP_f(); return qtrue; } if ( Q_stricmp( cmd, "removeip" ) == 0 ) { Svcmd_RemoveIP_f(); return qtrue; } if ( Q_stricmp( cmd, "listip" ) == 0 ) { trap_SendConsoleCommand( EXEC_INSERT, "g_banIPs\n" ); return qtrue; } if ( Q_stricmp( cmd, "listmaxlivesip" ) == 0 ) { PrintMaxLivesGUID(); return qtrue; } // NERVE - SMF if ( Q_stricmp( cmd, "start_match" ) == 0 ) { Svcmd_StartMatch_f(); return qtrue; } if ( Q_stricmp( cmd, "reset_match" ) == 0 ) { Svcmd_ResetMatch_f(); return qtrue; } if ( Q_stricmp( cmd, "swap_teams" ) == 0 ) { Svcmd_SwapTeams_f(); return qtrue; } // -NERVE - SMF if ( g_dedicated.integer ) { if ( Q_stricmp( cmd, "say" ) == 0 ) { trap_SendServerCommand( -1, va( "print \"server:[lof] %s\"", ConcatArgs( 1 ) ) ); return qtrue; } // everything else will also be printed as a say command trap_SendServerCommand( -1, va( "print \"server:[lof] %s\"", ConcatArgs( 0 ) ) ); return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } /* if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } */ if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); return qtrue; } if (g_dedicated.integer) { if (Q_stricmp (cmd, "say") == 0) { trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(1) ) ); return qtrue; } // everything else will also be printed as a say command trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(0) ) ); return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); #ifdef SAVEGAME_SUPPORT if (Q_stricmp (cmd, "savegame") == 0) { if( g_gametype.integer != GT_SINGLE_PLAYER ) return qtrue; // don't allow a manual savegame command while we are waiting for the game to start/exit if (g_reloading.integer) return qtrue; if (saveGamePending) return qtrue; trap_Argv( 1, cmd, sizeof( cmd ) ); if (strlen(cmd) > 0) { // strip the extension if provided if (strrchr(cmd, '.')) { cmd[strrchr(cmd,'.')-cmd] = '\0'; } if ( !Q_stricmp( cmd, "current") ) { // beginning of map Com_Printf("sorry, '%s' is a reserved savegame name. please use another name.\n", cmd); return qtrue; } if (G_SaveGame( cmd )) trap_SendServerCommand(-1, "cp \"Game Saved\n\""); // deletedgame else G_Printf( "Unable to save game.\n" ); } else { // need a name G_Printf( "syntax: savegame <name>\n" ); } return qtrue; } #endif // SAVEGAME_SUPPORT if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } // omnibot: waypoint tool only, not for mods if ( Q_stricmp (cmd, "oidlist") == 0 ) { Svcmd_OIDList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } // omnibot /*if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "removebot") == 0) { Svcmd_AddBot_f(); return qtrue; }*/ // end omnibot if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_INSERT, "g_banIPs\n" ); return qtrue; } if (Q_stricmp (cmd, "listmaxlivesip") == 0) { PrintMaxLivesGUID(); return qtrue; } // NERVE - SMF if (Q_stricmp (cmd, "start_match") == 0) { Svcmd_StartMatch_f(); return qtrue; } if (Q_stricmp (cmd, "reset_match") == 0) { Svcmd_ResetMatch_f(qtrue, qtrue); return qtrue; } if (Q_stricmp (cmd, "swap_teams") == 0) { Svcmd_SwapTeams_f(); return qtrue; } if (Q_stricmp (cmd, "shuffle_teams") == 0) { Svcmd_ShuffleTeams_f(); return qtrue; } // -NERVE - SMF if (Q_stricmp (cmd, "makeReferee") == 0) { G_MakeReferee(); return qtrue; } if (Q_stricmp (cmd, "removeReferee") == 0) { G_RemoveReferee(); return qtrue; } /*if (Q_stricmp (cmd, "mute") == 0) { G_MuteClient(); return qtrue; } if (Q_stricmp (cmd, "unmute") == 0) { G_UnMuteClient(); return qtrue; }*/ if (Q_stricmp (cmd, "ban") == 0) { G_PlayerBan(); return qtrue; } if( Q_stricmp( cmd, "campaign" ) == 0 ) { Svcmd_Campaign_f(); return qtrue; } if( Q_stricmp( cmd, "listcampaigns" ) == 0 ) { Svcmd_ListCampaigns_f(); return qtrue; } #ifndef NO_BOT_SUPPORT if (Q_stricmp (cmd, "spawnbot") == 0) { Svcmd_SpawnBot(); return qtrue; } #endif // START - Mad Doc - TDF if (Q_stricmp (cmd, "revive") == 0) { trap_Argv( 1, cmd, sizeof( cmd ) ); Svcmd_RevivePlayer( cmd ); return qtrue; } // END - Mad Doc - TDF // omnibot if (Q_stricmp (cmd, "bot") == 0) { Bot_Interface_ConsoleCommand(); return qtrue; } // end omnibot // fretn - moved from engine if (!Q_stricmp(cmd, "kick")) { Svcmd_Kick_f(); return qtrue; } if (!Q_stricmp(cmd, "clientkick")) { Svcmd_KickNum_f(); return qtrue; } // -fretn if( g_dedicated.integer ) { if( !Q_stricmp (cmd, "say")) { trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(1) ) ); return qtrue; } // OSP - console also gets ref commands if(!level.fLocalHost && Q_stricmp(cmd, "ref") == 0) { if(!G_refCommandCheck(NULL, cmd)) { G_refHelp_cmd(NULL); } return(qtrue); } // everything else will also be printed as a say command // trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(0) ) ); // prints to the console instead now return qfalse; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char *cmd; cmd = gi.argv(0); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } // if (Q_stricmp (cmd, "addbot") == 0) { // Svcmd_AddBot_f(); // return qtrue; // } if (Q_stricmp (cmd, "nav") == 0) { Svcmd_Nav_f (); return qtrue; } if (Q_stricmp (cmd, "npc") == 0) { Svcmd_NPC_f (); return qtrue; } if (Q_stricmp (cmd, "Command") == 0) { Svcmd_Comm_f (); return qtrue; } if (Q_stricmp (cmd, "Hail") == 0) { Svcmd_Hail_f (); return qtrue; } if (Q_stricmp (cmd, "makeFormation") == 0) { Svcmd_Form_f (); return qtrue; } if (Q_stricmp (cmd, "use") == 0) { Svcmd_Use_f (); return qtrue; } if (Q_stricmp (cmd, "detpack") == 0) { UseCharge (0); return qtrue; } if ( Q_stricmp( cmd, "ICARUS" ) == 0 ) { Svcmd_ICARUS_f(); return qtrue; } if ( Q_stricmp( cmd, "boltOn" ) == 0 ) { char *cmd2 = gi.argv(1); char *cmd3 = gi.argv(2); if ( cmd2 && cmd3 ) { if ( Q_stricmp( "add", cmd2 ) == 0 ) { g_entities[0].activeBoltOn = G_AddBoltOn( &g_entities[0], cmd3 ); return qtrue; } else if ( Q_stricmp( "remove", cmd2 ) == 0 ) { G_RemoveBoltOn( &g_entities[0], cmd3 ); return qtrue; } else if ( Q_stricmp( "frame", cmd2 ) == 0 ) { int endFrame = atoi(cmd3); Q3_SetActiveBoltOnStartFrame( 0, g_entities[0].client->renderInfo.boltOns[g_entities[0].activeBoltOn].frame ); Q3_SetActiveBoltOnEndFrame( 0, endFrame ); return qtrue; } } //Print list of valid commands gi.Printf( "boltOn commands:\n" ); gi.Printf( " add [boltOnName]\n" ); gi.Printf( " remove [boltOnName]\n" ); gi.Printf( " frame [frameNumber]\n" ); return qtrue; } if ( Q_stricmp( cmd, "runscript" ) == 0 ) { char *cmd2 = gi.argv(1); if ( cmd2 && cmd2[0] ) { gentity_t *found = NULL; if ( (found = G_Find(NULL, FOFS(targetname), cmd2 ) ) != NULL ) { char *cmd3 = gi.argv(2); if ( cmd3 && cmd3[0] ) { ICARUS_RunScript( found, va( "%s/%s", Q3_SCRIPT_DIR, cmd3 ) ); } } else { ICARUS_RunScript( &g_entities[0], va( "%s/%s", Q3_SCRIPT_DIR, cmd2 ) ); } } else { gi.Printf( S_COLOR_RED"usage: runscript <ent targetname> scriptname\n" ); } //FIXME: else warning return qtrue; } if ( Q_stricmp( cmd, "playerteam" ) == 0 ) { char *cmd2 = gi.argv(1); int n; if ( !*cmd2 || !cmd2[0] ) { gi.Printf( S_COLOR_RED"'playerteam' - change player team, requires a team name!\n" ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = (TEAM_FREE + 1); n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", TeamNames[n] ); } } else { team_t team; team = TranslateTeamName( cmd2 ); if ( team == TEAM_FREE ) { gi.Printf( S_COLOR_RED"'playerteam' unrecognized team name %s!\n", cmd2 ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = (TEAM_FREE + 1); n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", TeamNames[n] ); } } else { g_entities[0].client->playerTeam = team; //FIXME: convert Imperial, Malon, Hirogen and Klingon to Scavenger? } } return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char *cmd; cmd = gi.argv(0); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } // if (Q_stricmp (cmd, "addbot") == 0) { // Svcmd_AddBot_f(); // return qtrue; // } if (Q_stricmp (cmd, "nav") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_Nav_f (); return qtrue; } if (Q_stricmp (cmd, "npc") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_NPC_f (); return qtrue; } if (Q_stricmp (cmd, "use") == 0) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_Use_f (); return qtrue; } if ( Q_stricmp( cmd, "ICARUS" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_ICARUS_f(); return qtrue; } if ( Q_stricmp( cmd, "saberColor" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } Svcmd_SaberColor_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceJump" ) == 0 ) { Svcmd_ForceJump_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberThrow" ) == 0 ) { Svcmd_SaberThrow_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceHeal" ) == 0 ) { Svcmd_ForceHeal_f(); return qtrue; } if ( Q_stricmp( cmd, "setForcePush" ) == 0 ) { Svcmd_ForcePush_f(); return qtrue; } if ( Q_stricmp( cmd, "setForcePull" ) == 0 ) { Svcmd_ForcePull_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceSpeed" ) == 0 ) { Svcmd_ForceSpeed_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceGrip" ) == 0 ) { Svcmd_ForceGrip_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceLightning" ) == 0 ) { Svcmd_ForceLightning_f(); return qtrue; } if ( Q_stricmp( cmd, "setMindTrick" ) == 0 ) { Svcmd_MindTrick_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberDefense" ) == 0 ) { Svcmd_SaberDefense_f(); return qtrue; } if ( Q_stricmp( cmd, "setSaberOffense" ) == 0 ) { Svcmd_SaberOffense_f(); return qtrue; } if ( Q_stricmp( cmd, "setForceAll" ) == 0 ) { Svcmd_ForceJump_f(); Svcmd_SaberThrow_f(); Svcmd_ForceHeal_f(); Svcmd_ForcePush_f(); Svcmd_ForcePull_f(); Svcmd_ForceSpeed_f(); Svcmd_ForceGrip_f(); Svcmd_ForceLightning_f(); Svcmd_MindTrick_f(); Svcmd_SaberDefense_f(); Svcmd_SaberOffense_f(); return qtrue; } if ( Q_stricmp( cmd, "saberAttackCycle" ) == 0 ) { Svcmd_SaberAttackCycle_f(); return qtrue; } if ( Q_stricmp( cmd, "runscript" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); if ( cmd2 && cmd2[0] ) { char *cmd3 = gi.argv(2); if ( cmd3 && cmd3[0] ) { gentity_t *found = NULL; if ( (found = G_Find(NULL, FOFS(targetname), cmd2 ) ) != NULL ) { ICARUS_RunScript( found, va( "%s/%s", Q3_SCRIPT_DIR, cmd3 ) ); } else { //can't find cmd2 gi.Printf( S_COLOR_RED"runscript: can't find targetname %s\n", cmd2 ); } } else { ICARUS_RunScript( &g_entities[0], va( "%s/%s", Q3_SCRIPT_DIR, cmd2 ) ); } } else { gi.Printf( S_COLOR_RED"usage: runscript <ent targetname> scriptname\n" ); } //FIXME: else warning return qtrue; } if ( Q_stricmp( cmd, "playerteam" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); int n; if ( !*cmd2 || !cmd2[0] ) { gi.Printf( S_COLOR_RED"'playerteam' - change player team, requires a team name!\n" ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = (TEAM_FREE + 1); n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", TeamNames[n] ); } } else { team_t team; team = TranslateTeamName( cmd2 ); if ( team == TEAM_FREE ) { gi.Printf( S_COLOR_RED"'playerteam' unrecognized team name %s!\n", cmd2 ); gi.Printf( S_COLOR_RED"Valid team names are:\n"); for ( n = (TEAM_FREE + 1); n < TEAM_NUM_TEAMS; n++ ) { gi.Printf( S_COLOR_RED"%s\n", TeamNames[n] ); } } else { g_entities[0].client->playerTeam = team; //FIXME: convert Imperial, Malon, Hirogen and Klingon to Scavenger? } } return qtrue; } if ( Q_stricmp( cmd, "control" ) == 0 ) { if ( !g_cheats->integer ) { gi.SendServerCommand( 0, "print \"Cheats are not enabled on this server.\n\""); return qfalse; } char *cmd2 = gi.argv(1); if ( !*cmd2 || !cmd2[0] ) { if ( !G_ClearViewEntity( &g_entities[0] ) ) { gi.Printf( S_COLOR_RED"control <NPC_targetname>\n", cmd2 ); } } else { Q3_SetViewEntity( 0, cmd2 ); } } if ( Q_stricmp( cmd, "exitview" ) == 0 ) { Svcmd_ExitView_f(); } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand(void) { char cmd[MAX_TOKEN_CHARS]; trap_Argv(0, cmd, sizeof(cmd)); #ifdef FEATURE_LUA if (!Q_stricmp(cmd, "lua_status")) { G_LuaStatus(NULL); return qtrue; } // *LUA* API callbacks if (G_LuaHook_ConsoleCommand(cmd)) { return qtrue; } #endif if (Q_stricmp(cmd, "entitylist") == 0) { Svcmd_EntityList_f(); return qtrue; } if (Q_stricmp(cmd, "forceteam") == 0) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp(cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp(cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp(cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp(cmd, "listip") == 0) { trap_SendConsoleCommand(EXEC_INSERT, "g_banIPs\n"); return qtrue; } if (Q_stricmp(cmd, "listmaxlivesip") == 0) { PrintMaxLivesGUID(); return qtrue; } if (Q_stricmp(cmd, "start_match") == 0) { Svcmd_StartMatch_f(); return qtrue; } if (Q_stricmp(cmd, "reset_match") == 0) { Svcmd_ResetMatch_f(qtrue, qtrue); return qtrue; } if (Q_stricmp(cmd, "swap_teams") == 0) { Svcmd_SwapTeams_f(); return qtrue; } if (Q_stricmp(cmd, "shuffle_teams") == 0) { Svcmd_ShuffleTeams_f(); return qtrue; } if (Q_stricmp(cmd, "makeReferee") == 0) { G_MakeReferee(); return qtrue; } if (Q_stricmp(cmd, "removeReferee") == 0) { G_RemoveReferee(); return qtrue; } /*if (Q_stricmp (cmd, "mute") == 0) { G_MuteClient(); return qtrue; } if (Q_stricmp (cmd, "unmute") == 0) { G_UnMuteClient(); return qtrue; }*/ if (Q_stricmp(cmd, "ban") == 0) { G_PlayerBan(); return qtrue; } if (Q_stricmp(cmd, "campaign") == 0) { Svcmd_Campaign_f(); return qtrue; } if (Q_stricmp(cmd, "listcampaigns") == 0) { Svcmd_ListCampaigns_f(); return qtrue; } if (Q_stricmp(cmd, "revive") == 0) { trap_Argv(1, cmd, sizeof(cmd)); Svcmd_RevivePlayer(cmd); return qtrue; } // fretn - moved from engine if (!Q_stricmp(cmd, "kick")) { Svcmd_Kick_f(); return qtrue; } if (!Q_stricmp(cmd, "clientkick")) { Svcmd_KickNum_f(); return qtrue; } #ifdef FEATURE_OMNIBOT if (!Q_stricmp(cmd, "bot")) { Bot_Interface_ConsoleCommand(); return qtrue; } #endif if (!Q_stricmp(cmd, "sv_cvarempty")) { memset(level.svCvars, 0, sizeof(level.svCvars)); level.svCvarsCount = 0; G_UpdateSvCvars(); return qtrue; } if (!Q_stricmp(cmd, "sv_cvar")) { CC_svcvar(); return qtrue; } if (!Q_stricmp(cmd, "playsound") || !Q_stricmp(cmd, "playsound_env")) { G_PlaySound_Cmd(); return qtrue; } if (g_dedicated.integer) { if (!Q_stricmp(cmd, "say")) { trap_SendServerCommand(-1, va("cpm \"server: %s\n\"", ConcatArgs(1))); return qtrue; } // OSP - console also gets ref commands if (!level.fLocalHost && Q_stricmp(cmd, "ref") == 0) { // G_refCommandCheck expects the next argument (warn, pause, lock,..) trap_Argv(1, cmd, sizeof(cmd)); if (!G_refCommandCheck(NULL, cmd)) { G_refHelp_cmd(NULL); } return qtrue; } // everything else will also be printed as a say command // trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(0) ) ); // prints to the console instead now return qfalse; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } #ifdef SMOKINGUNS if (Q_stricmp (cmd, "kickbots") == 0) { Svcmd_KickBots_f(); return qtrue; } #endif if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } #ifndef SMOKINGUNS if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } #endif if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); return qtrue; } #ifdef SMOKINGUNS // Tequila: Big text announcement command if (Q_stricmp (cmd, "bigtext") == 0 || Q_stricmp (cmd, "cp") == 0) { Svcmd_BigText_f(); return qtrue; } // Joe Kari: Minilog feature, for admin-bot if (Q_stricmp (cmd, "poponelog") == 0 ) { Svcmd_PopMinilog_f(); return qtrue; } if (Q_stricmp (cmd, "poplog") == 0 ) { Svcmd_PopAllMinilog_f(); return qtrue; } // It is probably not a good idea to allow an user to push the minilog, it would interfer with game log //if (Q_stricmp (cmd, "pushlog") == 0 ) { // Svcmd_PushMinilog_f(); // return qtrue; //} // Joe Kari: Mute command: change everything this client said to "(muted)" if (Q_stricmp (cmd, "mute") == 0) { Svcmd_Mute_f( 1 ); return qtrue; } if (Q_stricmp (cmd, "unmute") == 0) { Svcmd_Mute_f( 0 ); return qtrue; } // Joe Kari: give some money to a client if ( Q_stricmp (cmd, "givemoney") == 0 ) { Svcmd_GiveMoney_f(); return qtrue; } // Joe Kari: give some money to a client if ( Q_stricmp (cmd, "giveitem") == 0 ) { Svcmd_GiveItem_f(); return qtrue; } // Joe Kari: replacement for forceteam, using client ID instead of name if ( Q_stricmp (cmd, "forceteamnum") == 0 ) { Svcmd_ForceTeamNum_f(); return qtrue; } // Joe Kari: game version of clientkick if (Q_stricmp (cmd, "kicknum") == 0) { Svcmd_KickNum_f(); return qtrue; } // Tequila: Replacement for kick command from server engine with sendaway one if (Q_stricmp (cmd, "sendaway") == 0) { Svcmd_SendAway_f(); return qtrue; } // Tequila: New admin command to cancel a vote // Joe Kari: Move it out of "if (g_dedicated.integer) {}" if (Q_stricmp (cmd, "cancelvote") == 0) { Svcmd_CancelVote_f(); return qtrue; } if (Q_stricmp (cmd, "playerstatus") == 0) { Svcmd_PlayerStatus_f(); return qtrue; } // Tequila: New command to add a map entity for testing purpose if (Q_stricmp (cmd, "addentity") == 0) { Svcmd_AddEntity_f(); return qtrue; } #endif if (g_dedicated.integer) { if (Q_stricmp (cmd, "say") == 0) { trap_SendServerCommand( -1, va("print \"server: %s\"", ConcatArgs(1) ) ); return qtrue; } // everything else will also be printed as a say command trap_SendServerCommand( -1, va("print \"server: %s\"", ConcatArgs(0) ) ); return qtrue; } return qfalse; }
qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap->Cmd_Argv( 0, cmd, sizeof( cmd ) ); if ( !Q_stricmp( cmd, "entitylist" ) ) { Svcmd_EntityList_f(); return qtrue; } if ( !Q_stricmp( cmd, "forceteam" ) ) { Svcmd_ForceTeam_f(); return qtrue; } if ( !Q_stricmp( cmd, "game_memory" ) ) { Svcmd_GameMem_f(); return qtrue; } if ( !Q_stricmp( cmd, "addbot" ) ) { Svcmd_AddBot_f(); return qtrue; } if ( !Q_stricmp( cmd, "botlist" ) ) { Svcmd_BotList_f(); return qtrue; } if ( !Q_stricmp( cmd, "addip" ) ) { Svcmd_AddIP_f(); return qtrue; } if ( !Q_stricmp( cmd, "removeip" ) ) { Svcmd_RemoveIP_f(); return qtrue; } if ( !Q_stricmp( cmd, "listip" ) ) { trap->Cbuf_ExecuteText( EXEC_NOW, "g_banIPs\n" ); return qtrue; } //OSP: pause if ( !Q_stricmp( cmd, "pause" ) ) { if ( level.pause.state == PAUSE_NONE ) { level.pause.state = PAUSE_PAUSED; level.pause.time = level.time + g_pauseTime->integer*1000; } else if ( level.pause.state == PAUSE_PAUSED ) { level.pause.state = PAUSE_UNPAUSING; level.pause.time = level.time + g_unpauseTime->integer*1000; } return qtrue; } if ( dedicated->boolean ) { if ( !Q_stricmp( cmd, "say" ) ) { trap->SV_GameSendServerCommand( -1, va( "print \"server: %s\n\"", ConcatArgs( 1 ) ) ); return qtrue; } } return qfalse; }
qboolean ConsoleCommand(void) { char cmd[MAX_TOKEN_CHARS]; trap_Argv(0, cmd, sizeof(cmd)); #ifdef FEATURE_LUA if (!Q_stricmp(cmd, "lua_status")) { G_LuaStatus(NULL); return qtrue; } if (Q_stricmp(cmd, "lua_api") == 0) { G_LuaStackDump(); return qtrue; } // *LUA* API callbacks if (G_LuaHook_ConsoleCommand(cmd)) { return qtrue; } #endif if (Q_stricmp(cmd, "entitylist") == 0) { Svcmd_EntityList_f(); return qtrue; } if (Q_stricmp(cmd, "csinfo") == 0) { Svcmd_CSInfo_f(); return qtrue; } if (Q_stricmp(cmd, "forceteam") == 0) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp(cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp(cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp(cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp(cmd, "listip") == 0) { trap_SendConsoleCommand(EXEC_INSERT, "g_banIPs\n"); return qtrue; } if (Q_stricmp(cmd, "listmaxlivesip") == 0) { PrintMaxLivesGUID(); return qtrue; } if (Q_stricmp(cmd, "start_match") == 0) { Svcmd_StartMatch_f(); return qtrue; } if (Q_stricmp(cmd, "reset_match") == 0) { Svcmd_ResetMatch_f(qtrue, qtrue); return qtrue; } if (Q_stricmp(cmd, "swap_teams") == 0) { Svcmd_SwapTeams_f(); return qtrue; } if (Q_stricmp(cmd, "shuffle_teams") == 0) { Svcmd_ShuffleTeams_f(qtrue); return qtrue; } if (Q_stricmp(cmd, "shuffle_teams_norestart") == 0) { Svcmd_ShuffleTeams_f(qfalse); return qtrue; } if (Q_stricmp(cmd, "makeReferee") == 0) { G_MakeReferee(); return qtrue; } if (Q_stricmp(cmd, "removeReferee") == 0) { G_RemoveReferee(); return qtrue; } if (Q_stricmp(cmd, "mute") == 0) { G_MuteClient(); return qtrue; } if (Q_stricmp(cmd, "unmute") == 0) { G_UnMuteClient(); return qtrue; } if (Q_stricmp(cmd, "ban") == 0) { G_PlayerBan(); return qtrue; } if (Q_stricmp(cmd, "campaign") == 0) { Svcmd_Campaign_f(); return qtrue; } if (Q_stricmp(cmd, "listcampaigns") == 0) { Svcmd_ListCampaigns_f(); return qtrue; } if (Q_stricmp(cmd, "revive") == 0) { trap_Argv(1, cmd, sizeof(cmd)); Svcmd_RevivePlayer(cmd); return qtrue; } // moved from engine if (!Q_stricmp(cmd, "kick")) { Svcmd_Kick_f(); return qtrue; } if (!Q_stricmp(cmd, "clientkick")) { Svcmd_KickNum_f(); return qtrue; } #ifdef FEATURE_OMNIBOT if (!Q_stricmp(cmd, "bot")) { Bot_Interface_ConsoleCommand(); return qtrue; } #endif if (!Q_stricmp(cmd, "cp")) { trap_SendServerCommand(-1, va("cp \"%s\"", Q_AddCR(ConcatArgs(1)))); return qtrue; } if (!Q_stricmp(cmd, "reloadConfig")) { trap_SetConfigstring(CS_CONFIGNAME, ""); memset(&level.config, 0, sizeof(config_t)); G_configSet(g_customConfig.string); return qtrue; } if (!Q_stricmp(cmd, "loadConfig")) { CC_loadconfig(); return qtrue; } if (!Q_stricmp(cmd, "sv_cvarempty")) { memset(level.svCvars, 0, sizeof(level.svCvars)); level.svCvarsCount = 0; G_UpdateSvCvars(); return qtrue; } if (!Q_stricmp(cmd, "sv_cvar")) { CC_svcvar(); return qtrue; } if (!Q_stricmp(cmd, "playsound") || !Q_stricmp(cmd, "playsound_env")) { G_PlaySound_Cmd(); return qtrue; } //if (g_cheats.integer) //{ if (!Q_stricmp(cmd, "gib")) { Svcmd_Gib(); return qtrue; } if (!Q_stricmp(cmd, "die")) { Svcmd_Die(); return qtrue; } if (!Q_stricmp(cmd, "freeze")) { Svcmd_Freeze(); return qtrue; } if (!Q_stricmp(cmd, "unfreeze")) { Svcmd_Unfreeze(); return qtrue; } if (!Q_stricmp(cmd, "burn")) { Svcmd_Burn(); return qtrue; } if (!Q_stricmp(cmd, "pip")) { Svcmd_Pip(); return qtrue; } if (!Q_stricmp(cmd, "throw")) { Svcmd_Fling(1); return qtrue; } //} if (g_dedicated.integer) { // FIXME // this 'say' condition is never reached?! if (!Q_stricmp(cmd, "say")) { trap_SendServerCommand(-1, va("cpm \"server: %s\n\"", Q_AddCR(ConcatArgs(1)))); return qtrue; } // added for rcon/Lua chat if (!Q_stricmp(cmd, "chat")) { trap_SendServerCommand(-1, va("chat \"console: %s\"", Q_AddCR(ConcatArgs(1)))); return qtrue; } // console also gets ref commands if (!level.fLocalHost && Q_stricmp(cmd, "ref") == 0) { //G_refCommandCheck expects the next argument (warn, pause, lock,..) trap_Argv(1, cmd, sizeof(cmd)); if (!G_refCommandCheck(NULL, cmd)) { G_refHelp_cmd(NULL); } return qtrue; } // everything else will also be printed as a say command //trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(0) ) ); // prints to the console instead now return qfalse; } return qfalse; }
qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if (!Q_stricmp (cmd, "lua_reload")) { G_Printf("Doing soft GLua restart\n"); GLua_SoftRestart(); return qtrue; } if (!Q_stricmp (cmd, "lua_restart")) { G_Printf("Doing hard GLua restart\n"); GLua_Close(); GLua_Init(); GLua_Hook_GameInit(level.time, 0); GLua_Hook_MapLoadFinished(); return qtrue; } if (!Q_stricmp (cmd, "lua_run")) { char line[1024] = {0}; char buff[1024] = {0}; int i, argc; argc = trap_Argc(); for (i=1; i < argc; i++) { trap_Argv(i, buff, sizeof(buff)); Q_strcat(line, 1023, buff); Q_strcat(line, 1023, " "); //Com_sprintf(line, sizeof(line), "%s%s ", line, buff); } GLua_Run(line); return qtrue; } // Check for admin commands if (JKG_Admin_ExecuteRcon(cmd)) return qtrue; #if 0 if (!Q_stricmp (cmd, "disasm")) { Cmd_DisAsmDirect_f(); return qtrue; } if (!Q_stricmp (cmd, "stresslevel")) { JKG_GLS_StressLevelInfo(); return qtrue; } #endif if (GLua_RconCommand(cmd)) return qtrue; if ( !Q_stricmp (cmd, "entinfo") ) { Svcmd_EntityInfo_f(); return qtrue; } if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } /* if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } */ if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); return qtrue; } if (g_dedicated.integer) { if (Q_stricmp (cmd, "say") == 0) { trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(1) ) ); return qtrue; } if ( Q_stricmp (cmd, "timemappaths") == 0 ) { AIMod_TimeMapPaths(); return qtrue; } // everything else will also be printed as a say command //trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(0) ) ); G_Printf("Unknown server command '%s'\n", cmd); return qtrue; } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { //void char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); #ifdef G_LUA if(Q_stricmp(cmd, "lua_status") == 0) { G_LuaStatus(NULL); return qtrue; } if(Q_stricmp(cmd, "lua_restart") == 0) { Svcmd_LuaRestart_f(); return qtrue; } #endif if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_INSERT, "g_banIPs\n" ); return qtrue; } if (Q_stricmp (cmd, "banUser") == 0) { Svcmd_BanUser_f(); return qtrue; } if ( Q_stricmp (cmd, "findID") == 0 ) { Svcmd_FindID_f(); return qtrue; } if ( Q_stricmp (cmd, "removeID") == 0 ) { Svcmd_RemoveID_f(); return qtrue; } return qfalse; }
//[/AdminSys] qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "botlist") == 0) { Svcmd_BotList_f(); return qtrue; } /* if (Q_stricmp (cmd, "abort_podium") == 0) { Svcmd_AbortPodium_f(); return qtrue; } */ if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { //[AdminCommands] Svcmd_ListIPs_f(); //trap_SendConsoleCommand( EXEC_NOW, "g_banIPs\n" ); //[/AdminCommands] return qtrue; } if (Q_stricmp (cmd, "giveadmin") == 0) { Cmd_SVGrantAdmin_F(); return qtrue; } if (Q_stricmp (cmd, "removeadmin") == 0) { Cmd_SVRemoveAdmin_F(); return qtrue; } //[AdminSys] //added bigsay command to be able to print things to the center of the screen as the server admin. if (Q_stricmp (cmd, "centersay") == 0) { if(OJP_AllPlayersHaveClientPlugin()) {//just fire off the text without editting it for line breaks. trap_SendServerCommand( -1, va("cp \"%s\n\"", ConcatArgs(1) ) ); } else {//since someone is running basejka, we need to add line breaks to make up for the //50 chars per line limit of basejka's cp code. char temp[1024]; //MAX_STRINGED_SV_STRING char output[1024]; //copy the print text. strcpy(temp, ConcatArgs(1)); TextWrapCenterPrint(temp, output); trap_SendServerCommand( -1, va("cp \"%s\n\"", output ) ); } //also duplicate the message in the chat buffer and in the game log. (so the admin can follow admin<->player //conversations trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(1) ) ); G_LogPrintf( "server: %s\n", ConcatArgs(1) ); return qtrue; } //[/AdminSys] if (g_dedicated.integer) { if (Q_stricmp (cmd, "say") == 0) { trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(1) ) ); return qtrue; } //[JAC Bugfix - Don't put unknown dedicated server console commands into chat!] // everything else will NOT also be printed as a say command //trap_SendServerCommand( -1, va("print \"server: %s\n\"", ConcatArgs(0) ) ); //return qtrue; //[/JAC Bugfix - Don't put unknown dedicated server console commands into chat!] //OPENRPTODO - Print that it's an unknown cmd } return qfalse; }
/* ================= ConsoleCommand ================= */ qboolean ConsoleCommand( void ) { char cmd[MAX_TOKEN_CHARS]; trap_Argv( 0, cmd, sizeof( cmd ) ); #ifdef SAVEGAME_SUPPORT if (Q_stricmp (cmd, "savegame") == 0) { if( g_gametype.integer != GT_SINGLE_PLAYER ) return qtrue; // don't allow a manual savegame command while we are waiting for the game to start/exit if (g_reloading.integer) return qtrue; if (saveGamePending) return qtrue; trap_Argv( 1, cmd, sizeof( cmd ) ); if (strlen(cmd) > 0) { // strip the extension if provided if (strrchr(cmd, '.')) { cmd[strrchr(cmd,'.')-cmd] = '\0'; } if ( !Q_stricmp( cmd, "current") ) { // beginning of map Com_Printf("sorry, '%s' is a reserved savegame name. please use another name.\n", cmd); return qtrue; } if (G_SaveGame( cmd )) trap_SendServerCommand(-1, "cp \"Game Saved\n\""); // deletedgame else G_Printf( "Unable to save game.\n" ); } else { // need a name G_Printf( "syntax: savegame <name>\n" ); } return qtrue; } #endif // SAVEGAME_SUPPORT if ( Q_stricmp (cmd, "entitylist") == 0 ) { Svcmd_EntityList_f(); return qtrue; } if ( Q_stricmp (cmd, "forceteam") == 0 ) { Svcmd_ForceTeam_f(); return qtrue; } if (Q_stricmp (cmd, "game_memory") == 0) { Svcmd_GameMem_f(); return qtrue; } /*if (Q_stricmp (cmd, "addbot") == 0) { Svcmd_AddBot_f(); return qtrue; } if (Q_stricmp (cmd, "removebot") == 0) { Svcmd_AddBot_f(); return qtrue; }*/ if (Q_stricmp (cmd, "addip") == 0) { Svcmd_AddIP_f(); return qtrue; } if (Q_stricmp (cmd, "removeip") == 0) { Svcmd_RemoveIP_f(); return qtrue; } if (Q_stricmp (cmd, "listip") == 0) { trap_SendConsoleCommand( EXEC_INSERT, "g_banIPs\n" ); return qtrue; } if (Q_stricmp (cmd, "listmaxlivesip") == 0) { PrintMaxLivesGUID(); return qtrue; } if (Q_stricmp (cmd, "reset_match") == 0) { Svcmd_ResetMatch_f(qtrue, qtrue); return qtrue; } if (Q_stricmp (cmd, "swap_teams") == 0) { Svcmd_SwapTeams_f(); return qtrue; } if (Q_stricmp (cmd, "shuffle_teams") == 0) { Svcmd_ShuffleTeams_f(); return qtrue; } // -NERVE - SMF if (Q_stricmp (cmd, "makeReferee") == 0) { G_MakeReferee(); return qtrue; } if (Q_stricmp (cmd, "removeReferee") == 0) { G_RemoveReferee(); return qtrue; } /*if (Q_stricmp (cmd, "mute") == 0) { G_MuteClient(); return qtrue; } if (Q_stricmp (cmd, "unmute") == 0) { G_UnMuteClient(); return qtrue; }*/ if (Q_stricmp (cmd, "ban") == 0) { G_PlayerBan(); return qtrue; } if( Q_stricmp( cmd, "campaign" ) == 0 ) { Svcmd_Campaign_f(); return qtrue; } if( Q_stricmp( cmd, "listcampaigns" ) == 0 ) { Svcmd_ListCampaigns_f(); return qtrue; } // fretn - moved from engine if (!Q_stricmp(cmd, "kick")) { Svcmd_Kick_f(); return qtrue; } if (!Q_stricmp(cmd, "clientkick")) { Svcmd_KickNum_f(); return qtrue; } if (!Q_stricmp(cmd, "noVoteLimit")) { Svcmd_noVoteLimit(); return qtrue; } if (!Q_stricmp(cmd, "cp")) { AP(va("cp \"%s\n\"", ConcatArgs(1))); return qtrue; } if (!Q_stricmp(cmd, "qsay")) { AP(va("chat \"%s\"", ConcatArgs(1))); G_LogPrintf("qsay: \"%s\n\"", ConcatArgs(1)); return qtrue; } if (!Q_stricmp(cmd, "bp")) { AP(va("bp \"%s\"", ConcatArgs(1))); G_LogPrintf("banner: \"%s\n\"", ConcatArgs(1)); return qtrue; } if (!Q_stricmp(cmd, "cpm")) { AP(va("cpm \"%s\n\"", ConcatArgs(1))); return qtrue; } if (!Q_stricmp(cmd, "freespec")) { gclient_t *cl; char num[MAX_TOKEN_CHARS]; int clientnum; trap_Argv(1, num, sizeof(num)); clientnum = atoi(num); cl = G_GetPlayerByNum( clientnum ); if ( !cl ) { return; } cl->sess.freeSpec = qtrue; return qtrue; } if (!Q_stricmp(cmd, "pcmd")) { gclient_t *cl; char name[MAX_TOKEN_CHARS]; int clientNum; trap_Argv(1, name, sizeof(name)); clientNum = atoi(name); cl = G_GetPlayerByNum( clientNum ); if ( !cl ) { return; } trap_SendServerCommand(cl - level.clients, va("pcmd %s", ConcatArgs(2))); return qtrue; } if (!Q_stricmp(cmd, "blockmap")) { char map[MAX_STRING_TOKENS]; char blocklist[MAX_CVAR_VALUE_STRING]; trap_Argv(1, map, sizeof(map)); if (strlen(tjg_blockedMaps.string) + strlen(map) > sizeof(tjg_blockedMaps.string)) { AP("print \"tjg_blockedMaps is full.\n\""); } else { Com_sprintf(blocklist, sizeof(blocklist), "%s %s", tjg_blockedMaps.string, map); trap_Cvar_Set("tjg_blockedMaps", va("%s", blocklist)); } return qtrue; } if (!tjg_recordMode.integer) { if (!Q_stricmp(cmd, "forcecvar")) { char cvar_name[MAX_TOKEN_CHARS]; char cvar_val[MAX_TOKEN_CHARS]; trap_Argv(1, cvar_name, sizeof(cvar_name)); trap_Argv(2, cvar_val, sizeof(cvar_val)); trap_Cvar_Set(cvar_name, va("%d", atoi(cvar_val))); AP(va("print \"Forced %s to %s.\n\"", cvar_name, va("%d", atoi(cvar_val)) ) ); return qtrue; } } if( g_dedicated.integer ) { if( !Q_stricmp (cmd, "say")) { trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(1) ) ); return qtrue; } // OSP - console also gets ref commands if(!level.fLocalHost && Q_stricmp(cmd, "ref") == 0) { // CHRUKER: b005 - G_refCommandCheck expects the next argument (warn, pause, lock etc). trap_Argv(1, cmd, sizeof(cmd)); if(!G_refCommandCheck(NULL, cmd)) { G_refHelp_cmd(NULL); } return(qtrue); } // everything else will also be printed as a say command // trap_SendServerCommand( -1, va("cpm \"server: %s\n\"", ConcatArgs(0) ) ); // prints to the console instead now return qfalse; } return qfalse; }