这篇教程C++ Cmd_TokenizeString函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Cmd_TokenizeString函数的典型用法代码示例。如果您正苦于以下问题:C++ Cmd_TokenizeString函数的具体用法?C++ Cmd_TokenizeString怎么用?C++ Cmd_TokenizeString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Cmd_TokenizeString函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Cmd_ExecuteString/*============Cmd_ExecuteStringA complete command line has been parsed, so try to execute it============*/void Cmd_ExecuteString( char *text, cmd_source_t src ){ qboolean isServerCommand = false; qboolean isDLLCommand = false; cmd_function_t *cmd; cmdalias_t *a; // set cmd source cmd_source = src; // execute the command line Cmd_TokenizeString( text ); if( !Cmd_Argc()) return; // no tokens // check alias for( a = cmd_alias; a; a = a->next ) { if( !Q_stricmp( cmd_argv[0], a->name )) { Cbuf_InsertText( a->value ); return; } } // check functions for( cmd = cmd_functions; cmd; cmd = cmd->next ) { if( cmd && !Q_stricmp( cmd_argv[0], cmd->name ) && cmd->function ) { cmd->function(); return; } } // check cvars if( Cvar_Command( )) return; // forward the command line to the server, so the entity DLL can parse it if( cmd_source == src_command && host.type == HOST_NORMAL ) { if( cls.state >= ca_connected ) { Cmd_ForwardToServer(); return; } } else if( text[0] != '@' && host.type == HOST_NORMAL ) { // commands with leading '@' are hidden system commands MsgDev( D_INFO, "Unknown command /"%s/"/n", text ); }}
开发者ID:bmk10,项目名称:sing-engine,代码行数:60,
示例2: CL_TableDeleteRow/*=====================CL_TableDeleteRow=====================*/static void CL_TableDeleteRow( void ) { tableInfo_t * table = find_table( &cl.db, Cmd_Argv( 1 ) ); if ( table && table->rows ) { const int i = atoi( Cmd_Argv( 2 ) ); cellInfo_t * row = table->rows + (i*table->column_count); const int lastrow = table->row_count-1; if ( cl.db.delete_trigger ) { cl.db.delete_trigger( &cl.db, table, i ); } if ( i == -1 ) { table->row_count = 0; table->last_changed++; } else { memmove( row, row + table->column_count, (lastrow-i) * table->column_count * sizeof(cellInfo_t) ); table->row_count--; table->last_changed++; } if ( uivm ) { Cmd_TokenizeString( va("st_table %s", table->name) ); VM_Call( uivm, UI_CONSOLE_COMMAND, cls.realtime ); } }}
开发者ID:ballju,项目名称:SpaceTrader-GPL-1.1.14,代码行数:33,
示例3: SV_ConnectionlessPacket/** SV_ConnectionlessPacket* * A connectionless packet has four leading 0xff* characters to distinguish it from a game channel.* Clients that are in the game can still send* connectionless packets.*/void SV_ConnectionlessPacket( const socket_t *socket, const netadr_t *address, msg_t *msg ){ connectionless_cmd_t *cmd; char *s, *c; MSG_BeginReading( msg ); MSG_ReadLong( msg ); // skip the -1 marker s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv( 0 ); Com_DPrintf( "Packet %s : %s/n", NET_AddressToString( address ), c ); for( cmd = connectionless_cmds; cmd->name; cmd++ ) { if( !strcmp( c, cmd->name ) ) { cmd->func( socket, address ); return; } } Com_DPrintf( "Bad connectionless packet from %s:/n%s/n", NET_AddressToString( address ), s );}
开发者ID:Kaperstone,项目名称:warsow,代码行数:34,
示例4: Cmd_ExecuteString/* * A complete command line has been parsed, so try to execute it */voidCmd_ExecuteString(char *text){ cmd_function_t *cmd; cmdalias_t *a; Cmd_TokenizeString(text, true); /* execute the command line */ if (!Cmd_Argc()) { return; /* no tokens */ } /* check functions */ for (cmd = cmd_functions; cmd; cmd = cmd->next) { if (!Q_strcasecmp(cmd_argv[0], cmd->name)) { if (!cmd->function) { /* forward to server command */ Cmd_ExecuteString(va("cmd %s", text)); } else { cmd->function(); } return; } } /* check alias */ for (a = cmd_alias; a; a = a->next) { if (!Q_strcasecmp(cmd_argv[0], a->name)) { if (++alias_count == ALIAS_LOOP_COUNT) { Com_Printf("ALIAS_LOOP_COUNT/n"); return; } Cbuf_InsertText(a->value); return; } } /* check cvars */ if (Cvar_Command()) { return; }#ifndef DEDICATED_ONLY /* send it as a server command if we are connected */ Cmd_ForwardToServer();#endif}
开发者ID:smcv,项目名称:yquake2,代码行数:63,
示例5: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/void SV_ConnectionlessPacket( netadr_t from, msg_t *msg ) { char *s; char *c; #ifdef USE_AUTH netadr_t authServerIP; #endif MSG_BeginReadingOOB( msg ); MSG_ReadLong( msg ); // skip the -1 marker if (!Q_strncmp("connect", (char *) &msg->data[4], 7)) { Huff_Decompress(msg, 12); } s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv(0); Com_DPrintf ("SV packet %s : %s/n", NET_AdrToString(from), c); if (!Q_stricmp(c, "getstatus")) { if (SV_CheckDRDoS(from)) { return; } SVC_Status( from ); } else if (!Q_stricmp(c, "getinfo")) { if (SV_CheckDRDoS(from)) { return; } SVC_Info( from ); } else if (!Q_stricmp(c, "getchallenge")) { SV_GetChallenge( from ); } else if (!Q_stricmp(c, "connect")) { SV_DirectConnect( from ); } else if (!Q_stricmp(c, "ipAuthorize")) { SV_AuthorizeIpPacket( from ); } #ifdef USE_AUTH // @Barbatos @Kalish else if ( (!Q_stricmp(c, "AUTH:SV"))) { NET_StringToAdr(sv_authServerIP->string, &authServerIP); if ( !NET_CompareBaseAdr( from, authServerIP ) ) { Com_Printf( "AUTH not from the Auth Server/n" ); return; } VM_Call(gvm, GAME_AUTHSERVER_PACKET); } #endif else if (!Q_stricmp(c, "rcon")) { SVC_RemoteCommand( from, msg ); }else if (!Q_stricmp(c, "rconRecovery")) { SVC_RconRecoveryRemoteCommand( from, msg ); } else if (!Q_stricmp(c, "disconnect")) { // if a client starts up a local server, we may see some spurious // server disconnect messages when their new server sees our final // sequenced messages to the old client } else { Com_DPrintf ("bad connectionless packet from %s:/n%s/n" , NET_AdrToString (from), s); }}
开发者ID:pedrxd,项目名称:MinModUrT,代码行数:70,
示例6: CL_ParseServerCommand/** CL_ParseServerCommand*/static void CL_ParseServerCommand( msg_t *msg ){ const char *s; char *text; svcmd_t *cmd; text = MSG_ReadString( msg ); Cmd_TokenizeString( text ); s = Cmd_Argv( 0 ); if( cl_debug_serverCmd->integer && ( cls.state < CA_ACTIVE || cls.demo.playing ) ) Com_Printf( "CL_ParseServerCommand: /"%s/"/n", text ); // filter out these server commands to be called from the client for( cmd = svcmds; cmd->name; cmd++ ) { if( !strcmp( s, cmd->name ) ) { cmd->func(); return; } } Com_Printf( "Unknown server command: %s/n", s );}
开发者ID:ShaitanShootout,项目名称:BM,代码行数:29,
示例7: SV_ExecuteClientCommand/*==================SV_ExecuteClientCommandAlso called by bot code==================*/void SV_ExecuteClientCommand(client_t *cl, const char *s, qboolean clientOK){ ucmd_t *u; Cmd_TokenizeString(s); // see if it is a server level command for(u = ucmds ; u->name ; u++) { if(!strcmp(Cmd_Argv(0), u->name)) { u->func(cl); break; } } if(clientOK) { // pass unknown strings to the game if(!u->name && sv.state == SS_GAME) { VM_Call(gvm, GAME_CLIENT_COMMAND, cl - svs.clients); } }}
开发者ID:Diskutant,项目名称:RTCW-SP,代码行数:32,
示例8: Cmd_ExecuteStringvoid Cmd_ExecuteString( const char *str ) { int l = strlen( str ); if ( str[l-1] == '/n' ) { char *stripped = alloca( l+1 ); strcpy( stripped, str ); str = stripped; stripped[l-1] = 0; } Com_Printf( "%s/n", str ); Cmd_TokenizeString( str ); const char *arg0 = Cmd_Argv( 0 ); int hashid = HashString( arg0 ); // check commands first for( cmd_function_t *cmd = cmd_functions ; cmd ; cmd = cmd->next ) { if( hashid == cmd->hashid && !strcmp( arg0, cmd->name ) ) { cmd->function(); return; } } // then check cvars cvar_t *cvar = Cvar_FindVar( arg0 ); if ( cvar ) { Cvar_Set( arg0, Cmd_Argv( 1 ) ); return; } Com_Printf( "Unknown command: %s/n", arg0 );}
开发者ID:TermiT,项目名称:Doomsday--Hellraiser,代码行数:31,
示例9: ParseFloatsint ParseFloats(char *s, float *f, int *f_size){ int i, argc; if (!s || !f || !f_size) { Sys_Error("ParseFloats() wrong params"); } if (f_size[0] <= 0) { return (f_size[0] = 0); // array have no size, unusual but no crime } Cmd_TokenizeString(s); argc = min(Cmd_Argc(), f_size[0]); for (i = 0; i < argc; i++) { f[i] = Q_atof(Cmd_Argv(i)); } for (; i < f_size[0]; i++) { f[i] = 0; // zeroing unused elements } return (f_size[0] = argc);}
开发者ID:carriercomm,项目名称:Doodle,代码行数:29,
示例10: SV_ExecuteClientCommand/*==================SV_ExecuteClientCommandAlso called by bot code==================*/void SV_ExecuteClientCommand( client_t *cl, const char *s, qboolean clientOK ) { ucmd_t *u; qboolean bProcessed = qfalse; Cmd_TokenizeString( s ); // see if it is a server level command for (u=ucmds ; u->name ; u++) { if (!strcmp (Cmd_Argv(0), u->name) ) { u->func( cl ); bProcessed = qtrue; break; } } if (clientOK) { // pass unknown strings to the game if (!u->name && sv.state == SS_GAME && (cl->state == CS_ACTIVE || cl->state == CS_PRIMED)) { // strip /r /n and ; if ( sv_filterCommands->integer ) Cmd_Args_Sanitize(); GVM_ClientCommand( cl - svs.clients ); } } else if (!bProcessed) Com_DPrintf( "client text ignored for %s: %s/n", cl->name, Cmd_Argv(0) );}
开发者ID:Ben2917,项目名称:OpenJK,代码行数:34,
示例11: Sv_UserStringCommand/* * Sv_UserStringCommand * * Invoke the specified user string command. If we don't have a function for * it, pass it off to the game module. */static void Sv_UserStringCommand(const char *s) { sv_user_string_cmd_t *c; Cmd_TokenizeString(s); if (strchr(s, '/xFF')) { // catch end of message exploit Com_Warn("Sv_ExecuteUserCommand: Illegal command from %s/n", Sv_NetaddrToString(sv_client)); Sv_KickClient(sv_client, NULL); return; } for (c = sv_user_string_cmds; c->name; c++) { if (!strcmp(Cmd_Argv(0), c->name)) { c->func(); break; } } if (!c->name) { // unmatched command if (sv.state == SV_ACTIVE_GAME) // maybe the game knows what to do with it svs.game->ClientCommand(sv_player); }}
开发者ID:darkshade9,项目名称:aq2w,代码行数:32,
示例12: SV_NocPacketvoid SV_NocPacket(netadr_t from, msg_t *msg) { //Not connected packet (Server is not running) char* s; char* c; if(msg->cursize >= 4) { if(*(int*)msg->data == -1) { #if 1 int CSteamServer_HandleIncomingPacket(const void* pData, int cbData, unsigned int srcIP, unsigned short srcPort); if(!CSteamServer_HandleIncomingPacket((const void*)msg->data, msg->cursize, from._ip, from.port)); #endif } else if(*(int*)msg->data == -2) { MSG_BeginReading(msg); MSG_ReadLong(msg); s = MSG_ReadStringLine(msg); Cmd_TokenizeString(s); c = Cmd_Argv(0); if(!Q_stricmp(c, "serverversionresponse")) { if(!NET_CompareBaseAdr(from, x_master)) return; } else if(!Q_stricmp(c, "clientversionresponse")) { if(!NET_CompareBaseAdr(from, x_master)) return; clientversion = atoi( Cmd_Argv(1) ); } } }}
开发者ID:EndlessClan,项目名称:CoDExtended,代码行数:30,
示例13: SV_ConnectionlessPacket/** * @brief Handles a connectionless message from a client * @sa NET_OOB_Printf * @param[out] stream The stream to write to * @param msg The message buffer to read the connectionless data from */static void SV_ConnectionlessPacket (struct net_stream *stream, struct dbuffer *msg){ const char *c; char s[512]; char buf[256]; NET_ReadStringLine(msg, s, sizeof(s)); Cmd_TokenizeString(s, qfalse); c = Cmd_Argv(0); Com_DPrintf(DEBUG_SERVER, "Packet : %s/n", c); if (Q_streq(c, "teaminfo")) SVC_TeamInfo(stream); else if (Q_streq(c, "info")) SVC_Info(stream); else if (Q_streq(c, "status")) SVC_Status(stream); else if (Q_streq(c, "connect")) SVC_DirectConnect(stream); else if (Q_streq(c, "rcon")) SVC_RemoteCommand(stream); else Com_Printf("Bad connectionless packet from %s:/n%s/n", NET_StreamPeerToName(stream, buf, sizeof(buf), qtrue), s);}
开发者ID:chrisglass,项目名称:ufoai,代码行数:32,
示例14: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/static void SV_ConnectionlessPacket( netadr_t from, msg_t *msg ) { char *s; const char *c; MSG_BeginReading( msg ); MSG_ReadLong( msg ); // skip the -1 marker s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv(0); Com_DPrintf ("SV packet %s : %s/n", NET_AdrToString(from), c); if (!strcmp(c,"getstatus")) { SVC_Status( from ); } else if (!strcmp(c,"getinfo")) { SVC_Info( from ); } else if (!strcmp(c,"connect")) { SV_DirectConnect( from ); } else if (!strcmp(c,"disconnect")) { // if a client starts up a local server, we may see some spurious // server disconnect messages when their new server sees our final // sequenced messages to the old client } else { Com_DPrintf ("bad connectionless packet from %s:/n%s/n" , NET_AdrToString (from), s); }}
开发者ID:BSzili,项目名称:OpenJK,代码行数:39,
示例15: Sv_ConnectionlessPacket/* * @brief A connection-less packet has four leading 0xff bytes to distinguish * it from a game channel. Clients that are in the game can still send these, * and they will be handled here. */static void Sv_ConnectionlessPacket(void) { Net_BeginReading(&net_message); Net_ReadLong(&net_message); // skip the -1 marker const char *s = Net_ReadStringLine(&net_message); Cmd_TokenizeString(s); const char *c = Cmd_Argv(0); const char *a = Net_NetaddrToString(&net_from); Com_Debug("Packet from %s: %s/n", a, c); if (!g_strcmp0(c, "ping")) Sv_Ping_f(); else if (!g_strcmp0(c, "ack")) Sv_Ack_f(); else if (!g_strcmp0(c, "status")) Sv_Status_f(); else if (!g_strcmp0(c, "info")) Sv_Info_f(); else if (!g_strcmp0(c, "get_challenge")) Sv_GetChallenge_f(); else if (!g_strcmp0(c, "connect")) Sv_Connect_f(); else if (!g_strcmp0(c, "rcon")) Sv_Rcon_f(); else Com_Print("Bad connectionless packet from %s:/n%s/n", a, s);}
开发者ID:chrisnew,项目名称:quetoo,代码行数:36,
示例16: SV_ExecuteClientCommand/*==================SV_ExecuteClientCommandAlso called by bot code==================*/void SV_ExecuteClientCommand( client_t *cl, const char *s, qboolean clientOK ) { const ucmd_t *u; const char *cmd; const char *arg1; const char *arg2; qboolean foundCommand = qfalse; Cmd_TokenizeString(s); cmd = Cmd_Argv(0); arg1 = Cmd_Argv(1); arg2 = Cmd_Argv(2); // see if it is a server level command for (u=ucmds ; u->name ; u++) { if (!strcmp (cmd, u->name) ) { foundCommand = qtrue; u->func( cl ); break; } } if (clientOK) { // pass unknown strings to the game if (!u->name && sv.state == SS_GAME) { // q3cbufexec fix if (!Q_stricmp(cmd, "say") || !Q_stricmp(cmd, "say_team") || !Q_stricmp(cmd, "tell")) { for (int i = 1; i < Cmd_Argc(); i++) { if (strpbrk(Cmd_Argv(i), "/n/r")) { return; } } } // disable useless vsay commands (because?) if (!Q_stricmp(cmd, "vsay") || !Q_stricmp(cmd, "vsay_team") || !Q_stricmp(cmd, "vtell") || !Q_stricmp(cmd, "vosay") || !Q_stricmp(cmd, "vosay_team") || !Q_stricmp(cmd, "votell") || !Q_stricmp(cmd, "vtaunt")) { return; } // q3cbufexec fix if ((!Q_stricmp(cmd, "callvote") || !Q_stricmp(cmd, "callteamvote"))) { if (strpbrk(arg1, ";/n/r") || strpbrk(arg2, ";/n/r")) { return; } } // teamcmd crash fix if (!Q_stricmp(cmd, "team") && (!Q_stricmp(arg1, "follow1") || !Q_stricmp(arg1, "follow2"))) { return; } VM_Call( gvm, GAME_CLIENT_COMMAND, cl - svs.clients ); } } else if ( !foundCommand ) { Com_DPrintf( "client text ignored for %s/n", cl->name ); }}
开发者ID:ouned,项目名称:jk2mv,代码行数:66,
示例17: Cmd_ExecuteString/*----------------------------------------------------------------------------- Function: Cmd_ExecuteString -Execute command string. Parameters: text -[in] text string to execute. Returns: Nothing. Notes: A complete command line has been parsed, so try to execute it FIXME: lookupnoadd the token to speed search?-----------------------------------------------------------------------------*/PUBLIC void Cmd_ExecuteString( char *text ){ cmd_function_t *cmd; cmdalias_t *a; W32 hashid; Cmd_TokenizeString( text, true ); // execute the command line if( ! Cmd_Argc() ) { return; // no tokens } hashid = my_strhash( cmd_argv[ 0 ] ); // check functions for( cmd = cmd_functions ; cmd ; cmd = cmd->next ) { if( hashid == cmd->id ) { if( ! cmd->function ) { // forward to server command Cmd_ExecuteString( va( "cmd %s", text ) ); } else { cmd->function(); } return; } } // check alias for( a = cmd_alias ; a ; a = a->next ) { if( ! my_stricmp( cmd_argv[ 0 ], a->name ) ) { if( ++alias_count == ALIAS_LOOP_COUNT ) { Com_Printf( "ALIAS_LOOP_COUNT/n" ); return; } Cbuf_InsertText( a->value ); return; } } // check cvars if( Cvar_Command() ) { return; } // send it as a server command if we are connected// Cmd_ForwardToServer();}
开发者ID:feraligatr,项目名称:wolf2d,代码行数:71,
示例18: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/void SV_ConnectionlessPacket( netadr_t from, msg_t *msg ) { char *s; const char *c; MSG_BeginReadingOOB( msg ); MSG_ReadLong( msg ); // skip the -1 marker#if !defined RTCW_SP if ( !Q_strncmp( "connect", reinterpret_cast<const char*> (&msg->data[4]), 7 ) ) { Huff_Decompress( msg, 12 ); }#endif // RTCW_XX s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv( 0 ); Com_DPrintf( "SV packet %s : %s/n", NET_AdrToString( from ), c ); if ( !Q_stricmp( c,"getstatus" ) ) { SVC_Status( from ); } else if ( !Q_stricmp( c,"getinfo" ) ) { SVC_Info( from ); } else if ( !Q_stricmp( c,"getchallenge" ) ) { SV_GetChallenge( from ); } else if ( !Q_stricmp( c,"connect" ) ) { SV_DirectConnect( from );#if !defined RTCW_ET || (defined RTCW_ET && AUTHORIZE_SUPPORT) } else if ( !Q_stricmp( c,"ipAuthorize" ) ) { SV_AuthorizeIpPacket( from );#endif // RTCW_XX } else if ( !Q_stricmp( c, "rcon" ) ) { SVC_RemoteCommand( from, msg );#if defined RTCW_MP// DHM - Nerve#ifdef UPDATE_SERVER } else if ( !Q_stricmp( c, "getUpdateInfo" ) ) { SVC_GetUpdateInfo( from );#endif// DHM - Nerve#endif // RTCW_XX } else if ( !Q_stricmp( c,"disconnect" ) ) { // if a client starts up a local server, we may see some spurious // server disconnect messages when their new server sees our final // sequenced messages to the old client } else { Com_DPrintf( "bad connectionless packet from %s:/n%s/n" , NET_AdrToString( from ), s ); }}
开发者ID:bibendovsky,项目名称:rtcw,代码行数:65,
示例19: Cmd_ExecuteString/*============Cmd_ExecuteStringA complete command line has been parsed, so try to execute it============*/void Cmd_ExecuteString( const char *text ) { cmd_function_t *cmd, **prev; // execute the command line Cmd_TokenizeString( text ); if ( !Cmd_Argc() ) { return; // no tokens } // check registered command functions for ( prev = &cmd_functions ; *prev ; prev = &cmd->next ) { cmd = *prev; if ( !Q_stricmp( Cmd_Argv(0), cmd->name ) ) { // rearrange the links so that the command will be // near the head of the list next time it is used *prev = cmd->next; cmd->next = cmd_functions; cmd_functions = cmd; // perform the action if ( !cmd->function ) { // let the cgame or game handle it break; } else { cmd->function (); } return; } } // check cvars if ( Cvar_Command() ) { return; } // check client game commands if ( com_cl_running && com_cl_running->integer && CL_GameCommand() ) { return; } // check server game commands if ( com_sv_running && com_sv_running->integer && SV_GameCommand() ) { return; } // check ui commands if ( com_cl_running && com_cl_running->integer && UI_GameCommand() ) { return; } // send it as a server command if we are connected // this will usually result in a chat message //CL_ForwardCommandToServer ( text ); CL_ForwardCommandToServer ( text );}
开发者ID:3ddy,项目名称:Jedi-Academy,代码行数:62,
示例20: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/void SV_ConnectionlessPacket( netadr_t from, msg_t *msg ){ char *s; char *c; MSG_BeginReadingOOB( msg ); MSG_ReadLong( msg ); // skip the -1 marker if ( !Q_strncmp( "connect", ( char * ) &msg->data[ 4 ], 7 ) ) { Huff_Decompress( msg, 12 ); } s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv( 0 ); Com_DPrintf( "SV packet %s : %s/n", NET_AdrToString( from ), c ); if ( !Q_stricmp( c, "getstatus" ) ) { if ( SV_CheckDRDoS( from ) ) { return; } SVC_Status( from ); } else if ( !Q_stricmp( c, "getinfo" ) ) { if ( SV_CheckDRDoS( from ) ) { return; } SVC_Info( from ); } else if ( !Q_stricmp( c, "getchallenge" ) ) { SV_GetChallenge( from ); } else if ( !Q_stricmp( c, "connect" ) ) { SV_DirectConnect( from ); } else if ( !Q_stricmp( c, "rcon" ) ) { SVC_RemoteCommand( from, msg ); } else if ( !Q_stricmp( c, "disconnect" ) ) { // if a client starts up a local server, we may see some spurious // server disconnect messages when their new server sees our final // sequenced messages to the old client } else { Com_DPrintf( "bad connectionless packet from %s:/n%s/n", NET_AdrToString( from ), s ); }}
开发者ID:ghostmod,项目名称:Unvanquished,代码行数:65,
示例21: Cmd_ExecuteString/*============Cmd_ExecuteStringA complete command line has been parsed, so try to execute it============*/void Cmd_ExecuteString( const char *text ) { // execute the command line Cmd_TokenizeString( text ); if ( !Cmd_Argc() ) { return; // no tokens } // check registered command functions for ( int c = 0; c < CMD_MAX_NUM; ++c ) { if ( !Q_stricmp( cmd_argv[0],cmd_functions[c].name ) ) { // rearrange the links so that the command will be // near the head of the list next time it is used cmd_function_t temp = cmd_functions[c]; cmd_functions[c] = cmd_functions[0]; cmd_functions[0] = temp; // perform the action if ( !temp.function ) { // let the cgame or game handle it break; } else { temp.function (); } return; } } // check cvars if ( Cvar_Command() ) { return; } // check client game commands if ( com_cl_running && com_cl_running->integer && CL_GameCommand() ) { return; } // check server game commands if ( com_sv_running && com_sv_running->integer && SV_GameCommand() ) { return; } // check ui commands if ( com_cl_running && com_cl_running->integer && UI_GameCommand() ) { return; } // send it as a server command if we are connected // this will usually result in a chat message CL_ForwardCommandToServer ();}
开发者ID:bdwakefield,项目名称:OpenJK,代码行数:60,
示例22: Cmd_ExecuteString/** * @brief A complete command line has been parsed, so try to execute it * @todo lookupnoadd the token to speed search? */void Cmd_ExecuteString (const char *text){ const cmd_function_t *cmd; const cmd_alias_t *a; const char *str; unsigned int hash; Com_DPrintf(DEBUG_COMMANDS, "ExecuteString: '%s'/n", text); Cmd_TokenizeString(text, qtrue); /* execute the command line */ if (!Cmd_Argc()) /* no tokens */ return; str = Cmd_Argv(0); /* check functions */ hash = Com_HashKey(str, CMD_HASH_SIZE); for (cmd = cmd_functions_hash[hash]; cmd; cmd = cmd->hash_next) { if (!Q_strcasecmp(str, cmd->name)) { if (!cmd->function) { /* forward to server command */ Cmd_ExecuteString(va("cmd %s", text)); } else { cmd_userdata = cmd->userdata; cmd->function(); } return; } } /* check alias */ hash = Com_HashKey(str, ALIAS_HASH_SIZE); for (a = cmd_alias_hash[hash]; a; a = a->hash_next) { if (!Q_strcasecmp(str, a->name)) { if (++alias_count == ALIAS_LOOP_COUNT) { Com_Printf("ALIAS_LOOP_COUNT/n"); return; } Cbuf_InsertText(a->value); return; } } /* check cvars */ if (Cvar_Command()) return; /* send it as a server command if we are connected */ Cmd_ForwardToServer();}
开发者ID:chrisglass,项目名称:ufoai,代码行数:56,
示例23: Cmd_TokenizeString//For using chat with @@ prefixvoid AdminCmds::SM_PSay(const char* msg, int source){ int i; char message[1024]; char cleannames[128]; char cleannamed[128]; Cmd_TokenizeString(msg); if(Cmd_Argc() < 2) { Plugin_ChatPrintf(source, "Usage: @@player message"); return; } client_t* cl = Plugin_SV_Cmd_GetPlayerClByHandle(Cmd_Argv(0)); if(cl == NULL) { Plugin_ChatPrintf(source, "No player for %s found", Cmd_Argv(0)); return; } if(cl->state < CS_ACTIVE) { Plugin_ChatPrintf(source, "Player %s is not in active", cl->name); return; } message[0] = '/0'; for(i = 1; i < Cmd_Argc(); ++i) { Q_strcat(message, sizeof(message), Cmd_Argv(i)); Q_strcat(message, sizeof(message), " "); } int destination = NUMFORCLIENT(cl); if(source == destination) { Plugin_ChatPrintf(source, "Why would you send a message to yourself?"); return; } Q_strncpyz(cleannames, Plugin_GetPlayerName(source), sizeof(cleannames)); Q_strncpyz(cleannamed, cl->name, sizeof(cleannamed)); Q_CleanStr(cleannames); Q_CleanStr(cleannamed); Plugin_ChatPrintf(source, "^7%s ^1>> ^7%s: %s", cleannames, cleannamed, message); Plugin_ChatPrintf(destination, "^7%s ^1>> ^7%s: %s", cleannames, cleannamed, message);}
开发者ID:D4edalus,项目名称:CoD4x_Server,代码行数:53,
示例24: Com_SafeMode/*===================Com_SafeModeCheck for "safe" on the command line, which willskip loading of openjk_sp.cfg===================*/qboolean Com_SafeMode( void ) { int i; for ( i = 0 ; i < com_numConsoleLines ; i++ ) { Cmd_TokenizeString( com_consoleLines[i] ); if ( !Q_stricmp( Cmd_Argv(0), "safe" ) || !Q_stricmp( Cmd_Argv(0), "cvar_restart" ) ) { com_consoleLines[i][0] = 0; return qtrue; } } return qfalse;}
开发者ID:Aura15,项目名称:OpenJK,代码行数:21,
示例25: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/void SV_ConnectionlessPacket( netadr_t from, msg_t *msg ) { char *s; char *c; MSG_BeginReadingOOB( msg ); MSG_ReadLong( msg ); // skip the -1 marker if (!Q_strncmp("connect", (char *) &msg->data[4], 7)) { Huff_Decompress(msg, 12); } s = MSG_ReadStringLine( msg ); Cmd_TokenizeString( s ); c = Cmd_Argv(0); if (!Q_stricmp(c, "getstatus")) { if (SV_CheckDRDoS(from)) { return; } SVC_Status( from ); } else if (!Q_stricmp(c, "getinfo")) { if (SV_CheckDRDoS(from)) { return; } SVC_Info( from ); } else if (!Q_stricmp(c, "getchallenge")) { SV_GetChallenge( from ); } else if (!Q_stricmp(c, "connect")) { SV_DirectConnect( from ); /* } else if (!Q_stricmp(c, "ipAuthorize")) { SV_AuthorizeIpPacket( from ); */ } else if (!Q_stricmp(c, "rcon")) { SVC_RemoteCommand( from, msg ); //////////////////////////////////////////////// // separator for ip2loc.patch and playerdb.patch //////////////////////////////////////////////// } else if (!Q_stricmp(c, "disconnect")) { // if a client starts up a local server, we may see some spurious // server disconnect messages when their new server sees our final // sequenced messages to the old client } else { Com_DPrintf ("bad connectionless packet from %s:/n%s/n" , NET_AdrToString (from), s); } // We moved this from the top of this function to the bottom. // During a DRDoS attack we get thousands of lines of packets // that just garble the screen. Since we return from this // function early if a DRDoS is detected, we don't print a line // for each attacking packet anymore. Com_DPrintf ("SV packet %s : %s/n", NET_AdrToString(from), c);}
开发者ID:promolic1,项目名称:iourt-fru,代码行数:61,
示例26: SV_ConnectionlessPacket/* * A connectionless packet has four leading 0xff * characters to distinguish it from a game channel. * Clients that are in the game can still send * connectionless packets. */voidSV_ConnectionlessPacket(void){ char *s; char *c; MSG_BeginReading(&net_message); MSG_ReadLong(&net_message); /* skip the -1 marker */ s = MSG_ReadStringLine(&net_message); Cmd_TokenizeString(s, false); c = Cmd_Argv(0); Com_DPrintf("Packet %s : %s/n", NET_AdrToString(net_from), c); if (!strcmp(c, "ping")) { SVC_Ping(); } else if (!strcmp(c, "ack")) { SVC_Ack(); } else if (!strcmp(c, "status")) { SVC_Status(); } else if (!strcmp(c, "info")) { SVC_Info(); } else if (!strcmp(c, "getchallenge")) { SVC_GetChallenge(); } else if (!strcmp(c, "connect")) { SVC_DirectConnect(); } else if (!strcmp(c, "rcon")) { SVC_RemoteCommand(); } else { Com_Printf("bad connectionless packet from %s:/n%s/n", NET_AdrToString(net_from), s); }}
开发者ID:Clever-Boy,项目名称:yquake2,代码行数:56,
示例27: SV_ConnectionlessPacket/*=================SV_ConnectionlessPacketA connectionless packet has four leading 0xffcharacters to distinguish it from a game channel.Clients that are in the game can still sendconnectionless packets.=================*/static void SV_ConnectionlessPacket (void){ const char *s; const char *c; MSG_BeginReading (); MSG_ReadLong (); // skip the -1 marker s = MSG_ReadStringLine (); Cmd_TokenizeString (s); c = Cmd_Argv(0); if (!strcmp(c, "ping") || ( c[0] == A2A_PING && (c[1] == 0 || c[1] == '/n')) ) { SVC_Ping (); return; } if (c[0] == A2A_ACK && (c[1] == 0 || c[1] == '/n') ) { Con_Printf ("A2A_ACK from %s/n", NET_AdrToString (net_from)); return; } else if (c[0] == A2S_ECHO) { NET_SendPacket (net_message.cursize, net_message.data, net_from); return; } else if (!strcmp(c,"status")) { SVC_Status (); return; } else if (!strcmp(c,"log")) { SVC_Log (); return; } else if (!strcmp(c,"connect")) { SVC_DirectConnect (); return; } else if (!strcmp(c, "rcon")) SVC_RemoteCommand (); else Con_Printf ("bad connectionless packet from %s:/n%s/n", NET_AdrToString (net_from), s);}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:59,
示例28: Cmd_ExecuteStringvoid Cmd_ExecuteString (const char *text){ cmd_function_t *cmd; cmd_alias_t *a; int key; static char buf[1024]; Cmd_ExpandString (text, buf); Cmd_TokenizeString (buf); // execute the command line if (!Cmd_Argc()) return; // no tokens key = Com_HashKey (cmd_argv[0]); // check functions for (cmd=cmd_hash_array[key] ; cmd ; cmd=cmd->hash_next) { if (!strcasecmp (cmd_argv[0], cmd->name)) { if (cmd->function) cmd->function (); return; } } // check cvars if (Cvar_Command()) return; // check alias for (a=cmd_alias_hash[key] ; a ; a=a->hash_next) { if (!strcasecmp (cmd_argv[0], a->name)) { Cbuf_InsertText ("/n"); Cbuf_InsertText (a->value); return; } } if (PR_ConsoleCmd()) return; Con_Printf ("Unknown command /"%s/"/n", Cmd_Argv(0));}
开发者ID:QuakePhil,项目名称:mvdsv,代码行数:48,
示例29: Cmd_ExecuteString/*============Cmd_ExecuteStringA complete command line has been parsed, so try to execute itFIXME: lookupnoadd the token to speed search?============*/void Cmd_ExecuteString (char *text){ cmd_function_t *cmd; cmdalias_t *a; Cmd_TokenizeString (text); // execute the command line if (!Cmd_Argc()) return; // no tokens// check functions for (cmd=cmd_functions ; cmd ; cmd=cmd->next) { if (!Q_strcasecmp (cmd_argv[0],cmd->name)) { if (!strcmp(cmd->name, "kill")) { if ((trace_state == read_trace || trace_state == write_trace)) { trace_state = stop_trace; printf("GAJA: command = kill/n"); } } if (!cmd->function) Cmd_ForwardToServer (); else cmd->function (); return; } }// check alias for (a=cmd_alias ; a ; a=a->next) { if (!Q_strcasecmp (cmd_argv[0], a->name)) { Cbuf_InsertText (a->value); return; } } // check cvars if (!Cvar_Command () && (cl_warncmd.value || developer.value)) Con_Printf ("Unknown command /"%s/"/n", Cmd_Argv(0)); }
开发者ID:jrk,项目名称:QuakeTM,代码行数:56,
注:本文中的Cmd_TokenizeString函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CmiAssert函数代码示例 C++ Cmd_RemoveCommand函数代码示例 |