ServerCmd(): Difference between revisions
Jump to navigation
Jump to search
Tip:You can also trigger a
Warning:Since
TomEdwards (talk | contribs) No edit summary |
TomEdwards (talk | contribs) (can trigger a console command) |
||
| Line 1: | Line 1: | ||
'''<code>ServerCmd()</code>''' is a quick and easy method for passing user input to the server available through <code>[[cbase.h]]</code>. It uploads an [[Wikipedia:ASCII|ASCII]] string, including with it information about which connected client sent it. The received strings are processed in | '''<code>ServerCmd()</code>''' is a quick and easy method for passing user input to the server available through <code>[[cbase.h]]</code>. It uploads an [[Wikipedia:ASCII|ASCII]] string, including with it information about which connected client sent it. The received strings are processed in <code>ClientCommand()</code> as a <code>[[CCommand]]</code> (i.e. a string array where 0 is the command itself and 1+ are parameters). | ||
{{warning|Since <code>ServerCmd()</code> passes a full string value, it is NOT suitable for commands that will be sent frequently. | {{tip|You can also trigger a <code>[[CON_COMMAND]]</code> if the client's arguemnt matches its name.}} | ||
{{warning|Since <code>ServerCmd()</code> 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== | ==Example== | ||
''client:'' | ''client:'' | ||
engine->ServerCmd( [[VarArgs()|VarArgs]]<span style="color:gray;">("MyCommand %i", m_iMyNumber)</span> ); ''// No variables? Pass the command as a simple string.'' | [[engine]]->ServerCmd( [[VarArgs()|VarArgs]]<span style="color:gray;">("MyCommand %i", m_iMyNumber)</span> ); ''// No variables? Pass the command as a simple string.'' | ||
''server:'' | ''server:'' | ||
bool CBasePlayer::ClientCommand( const CCommand &args ) | bool [[CBasePlayer]]::ClientCommand( const CCommand &args ) | ||
{ | { | ||
if ( ![[V_stricmp()|V_stricmp]]( args[0], "MyCommand" ) ) | if ( ![[V_stricmp()|V_stricmp]]( args[0], "MyCommand" ) ) | ||
Revision as of 10:23, 25 August 2008
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).
CON_COMMAND if the client's arguemnt matches its name.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; } }