ServerCmd()

From Valve Developer Community
Revision as of 18:24, 25 August 2008 by TomEdwards (talk | contribs)

Jump to: navigation, search

ServerCmd() is a quick and easy method for passing user input to the server available through cbase.h. It uploads an ASCII string, including with it information about which connected client sent it. The received strings are processed in ClientCommand() as a CCommand (i.e. a string array where 0 is the command itself and 1+ are parameters).

Tip:You can also trigger a ConCommand if the client's arguemnt matches its name.

Warning: Since ServerCmd() passes a full string value, it is NOT suitable for commands that will be sent frequently. You might get away with it in single-player, but a multi-player mod must use the Usercmd.

Example

client:
	engine->ServerCmd( VarArgs("MyCommand %i", m_iMyNumber) ); // No variables? Pass the command as a simple string.
server:
	bool CBasePlayer::ClientCommand( const CCommand &args )
	{
		if ( !V_stricmp( args[0], "MyCommand" ) )
		{
			Msg( "MyCommand received! Value: %i\n", atoi(args[1]) );
			return true;
		}
	}

See also