Advertisement
Guest User

Untitled

a guest
Nov 5th, 2011
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.17 KB | None | 0 0
  1.  
  2. void ClientCommand( int clientNum )
  3. {
  4.   gentity_t *ent;
  5.   char      cmd[ MAX_TOKEN_CHARS ];
  6.   int       i, team;
  7.  
  8.   ent = g_entities + clientNum;
  9.   if( !ent->client )
  10.     return;   // not fully in game yet
  11.  
  12.   trap_Argv( 0, cmd, sizeof( cmd ) );
  13.  
  14.   for( i = 0; i < numCmds; i++ )
  15.   {
  16.     if( Q_stricmp( cmd, cmds[ i ].cmdName ) == 0 )
  17.       break;
  18.   }
  19.  
  20.   if( i == numCmds )
  21.   {
  22.     if( !G_admin_cmd_check( ent, qfalse ) )
  23.       trap_SendServerCommand( clientNum,
  24.         va( "print \"Unknown command %s\n\"", cmd ) );
  25.     return;
  26.   }
  27.  
  28.   // do tests here to reduce the amount of repeated code
  29.  
  30.   if( !( cmds[ i ].cmdFlags & CMD_INTERMISSION ) && ( level.intermissiontime || level.paused ) )
  31.     return;
  32.  
  33.   if( cmds[ i ].cmdFlags & CMD_CHEAT && !g_cheats.integer )
  34.   {
  35.     trap_SendServerCommand( clientNum,
  36.       "print \"Cheats are not enabled on this server\n\"" );
  37.     return;
  38.   }
  39.  
  40.   if( cmds[ i ].cmdFlags & CMD_MESSAGE && ent->client->pers.muted )
  41.   {
  42.     trap_SendServerCommand( clientNum,
  43.       "print \"You are muted and cannot use message commands.\n\"" );
  44.     return;
  45.   }
  46.  
  47.   if( cmds[ i ].cmdFlags & CMD_TEAM &&
  48.       ent->client->pers.teamSelection == PTE_NONE )
  49.   {
  50.     trap_SendServerCommand( clientNum, "print \"Join a team first\n\"" );
  51.     return;
  52.   }
  53.  
  54.   if( cmds[ i ].cmdFlags & CMD_NOTEAM &&
  55.       ent->client->pers.teamSelection != PTE_NONE )
  56.   {
  57.     trap_SendServerCommand( clientNum,
  58.       "print \"Cannot use this command when on a team\n\"" );
  59.     return;
  60.   }
  61.  
  62.   if( cmds[ i ].cmdFlags & CMD_LIVING &&
  63.     ( ent->client->ps.stats[ STAT_HEALTH ] <= 0 ||
  64.       ent->client->sess.sessionTeam == TEAM_SPECTATOR ) )
  65.   {
  66.     trap_SendServerCommand( clientNum,
  67.       "print \"Must be living to use this command\n\"" );
  68.     return;
  69.   }
  70.  
  71.   team = ent->client->pers.teamSelection;
  72.  
  73.   if((cmds[i].cmdFlags&CMD_ALIEN&&team==PTE_ALIENS)||
  74.      (cmds[i].cmdFlags&CMD_HUMAN&&team==PTE_HUMANS)||
  75.      (cmds[i].cmdFlags&CMD_ROBOT&&team==PTE_ROBOTS))
  76.    cmds[i].cmdHandler(ent);
  77.   else
  78.    trap_SendServerCommand(clientNum,"print \"This command can't be used as %s\n\"",(team==PTE_ALIENS?"an alien":(team==PTE_HUMANS?"a human":"a robot"));
  79. }
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement