这篇教程C++ Cmd_ForwardToServer函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Cmd_ForwardToServer函数的典型用法代码示例。如果您正苦于以下问题:C++ Cmd_ForwardToServer函数的具体用法?C++ Cmd_ForwardToServer怎么用?C++ Cmd_ForwardToServer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Cmd_ForwardToServer函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Host_Tell_fvoid Host_Tell_f(void){ client_t *client; client_t *save; int j; char *p; char text[64]; if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (Cmd_Argc () < 3) return; Q_strcpy(text, host_client->name); Q_strcat(text, ": "); p = Cmd_Args();// remove quotes if present if (*p == '"') { p++; p[Q_strlen(p)-1] = 0; }// check length & truncate if necessary j = sizeof(text) - 2 - Q_strlen(text); // -2 for /n and null terminator if (Q_strlen(p) > j) p[j] = 0; strcat (text, p); strcat (text, "/n"); save = host_client; for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) { if (!client->active || !client->spawned) continue; if (Q_strcasecmp(client->name, Cmd_Argv(1))) continue; host_client = client; SV_ClientPrintf("%s", text); break; } host_client = save;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:50,
示例2: NET_Ban_fvoid NET_Ban_f(void){ char addrStr [32]; char maskStr [32]; void (*print)(char *fmt, ...); if (cmd_source == src_command) { if (!sv.active) { Cmd_ForwardToServer(); return; } print = Con_Printf; } else { if (pr_global_struct->deathmatch && !host_client->privileged) { return; } print = SV_ClientPrintf; } switch (Cmd_Argc()) { case 1: if (((struct in_addr *)&banAddr)->s_addr) { Q_strcpy(addrStr, inet_ntoa(*(struct in_addr *)&banAddr)); Q_strcpy(maskStr, inet_ntoa(*(struct in_addr *)&banMask)); print("Banning %s [%s]/n", addrStr, maskStr); } else { print("Banning not active/n"); } break; case 2: if (Q_strcasecmp(Cmd_Argv(1), "off") == 0) { banAddr = 0x00000000; } else { banAddr = inet_addr(Cmd_Argv(1)); } banMask = 0xffffffff; break; case 3: banAddr = inet_addr(Cmd_Argv(1)); banMask = inet_addr(Cmd_Argv(2)); break; default: print("BAN ip_address [mask]/n"); break; }}
开发者ID:carriercomm,项目名称:flQuake,代码行数:49,
示例3: Host_Status_f/*==================Host_Status_f==================*/void Host_Status_f (void){ client_t *client; int seconds; int minutes; int hours = 0; int j; void (*print_fn) (const char *fmt, ...) __fp_attribute__((__format__(__printf__,1,2))); if (cmd_source == src_command) { if (!sv.active) { Cmd_ForwardToServer (); return; } print_fn = Con_Printf; } else print_fn = SV_ClientPrintf; print_fn ("host: %s/n", Cvar_VariableString ("hostname")); print_fn ("version: %4.2f/n", VERSION); if (tcpipAvailable) print_fn ("tcp/ip: %s/n", my_tcpip_address); if (ipxAvailable) print_fn ("ipx: %s/n", my_ipx_address); print_fn ("map: %s/n", sv.name); print_fn ("players: %i active (%i max)/n/n", net_activeconnections, svs.maxclients); for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) { if (!client->active) continue; seconds = (int)(net_time - NET_QSocketGetTime(client->netconnection)); minutes = seconds / 60; if (minutes) { seconds -= (minutes * 60); hours = minutes / 60; if (hours) minutes -= (hours * 60); } else hours = 0; print_fn ("#%-2u %-16.16s %3i %2i:%02i:%02i/n", j+1, client->name, (int)client->edict->v.frags, hours, minutes, seconds); print_fn (" %s/n", NET_QSocketGetAddressString(client->netconnection)); }}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:53,
示例4: Host_Noclip_f/*==================Host_Noclip_f==================*/void Host_Noclip_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch) return; //johnfitz -- allow user to explicitly set noclip to on or off switch (Cmd_Argc()) { case 1: if (sv_player->v.movetype != MOVETYPE_NOCLIP) { noclip_anglehack = true; sv_player->v.movetype = MOVETYPE_NOCLIP; SV_ClientPrintf ("noclip ON/n"); } else { noclip_anglehack = false; sv_player->v.movetype = MOVETYPE_WALK; SV_ClientPrintf ("noclip OFF/n"); } break; case 2: if (Q_atof(Cmd_Argv(1))) { noclip_anglehack = true; sv_player->v.movetype = MOVETYPE_NOCLIP; SV_ClientPrintf ("noclip ON/n"); } else { noclip_anglehack = false; sv_player->v.movetype = MOVETYPE_WALK; SV_ClientPrintf ("noclip OFF/n"); } break; default: Con_Printf("noclip [value] : toggle noclip mode. values: 0 = off, 1 = on/n"); break; } //johnfitz}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:53,
示例5: 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,
示例6: 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, 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; // send it as a server command if we are connected Cmd_ForwardToServer ();}
开发者ID:raynorpat,项目名称:quake2,代码行数:56,
示例7: NET_Ban_fvoidNET_Ban_f(void){ char addrStr[32]; char maskStr[32]; void (*print)(const char *fmt, ...) __attribute__((format(printf,1,2))); if (cmd_source == src_command) { if (!sv.active) { Cmd_ForwardToServer(); return; } print = Con_Printf; } else { if (pr_global_struct->deathmatch) return; print = SV_ClientPrintf; } switch (Cmd_Argc()) { case 1: if (banAddr.s_addr != INADDR_ANY) { strcpy(addrStr, inet_ntoa(banAddr)); strcpy(maskStr, inet_ntoa(banMask)); print("Banning %s [%s]/n", addrStr, maskStr); } else print("Banning not active/n"); break; case 2: if (strcasecmp(Cmd_Argv(1), "off") == 0) banAddr.s_addr = INADDR_ANY; else banAddr.s_addr = inet_addr(Cmd_Argv(1)); banMask.s_addr = INADDR_NONE; break; case 3: banAddr.s_addr = inet_addr(Cmd_Argv(1)); banMask.s_addr = inet_addr(Cmd_Argv(2)); break; default: print("BAN ip_address [mask]/n"); break; }}
开发者ID:AidHamza,项目名称:eviltoys,代码行数:47,
示例8: Host_God_f/*==================Host_God_fSets client to godmode==================*/void Host_God_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch && !host_client->privileged) return; sv_player->v.flags = (int)sv_player->v.flags ^ FL_GODMODE; if (!((int)sv_player->v.flags & FL_GODMODE) ) SV_ClientPrintf ("godmode OFF/n"); else SV_ClientPrintf ("godmode ON/n");}
开发者ID:jjjaaajjj,项目名称:ws-pro-android-games,代码行数:24,
示例9: Host_Notarget_fstatic void Host_Notarget_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (*sv_globals.deathmatch || skill.integer > 2) return; sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET; if (!((int)sv_player->v.flags & FL_NOTARGET) ) SV_ClientPrintf (0, "notarget OFF/n"); else SV_ClientPrintf (0, "notarget ON/n");}
开发者ID:svn2github,项目名称:uhexen2,代码行数:17,
示例10: Host_God_f/*==================Host_God_fSets client to godmode==================*/static void Host_God_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (*sv_globals.deathmatch || *sv_globals.coop || skill.integer > 2) return; sv_player->v.flags = (int)sv_player->v.flags ^ FL_GODMODE; if (!((int)sv_player->v.flags & FL_GODMODE) ) SV_ClientPrintf (0, "godmode OFF/n"); else SV_ClientPrintf (0, "godmode ON/n");}
开发者ID:svn2github,项目名称:uhexen2,代码行数:24,
示例11: Host_Notarget_fvoid Host_Notarget_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch && !host_client->privileged) return; sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET; if (!((int)sv_player->v.flags & FL_NOTARGET) ) SV_ClientPrintf ("notarget OFF/n"); else SV_ClientPrintf ("notarget ON/n");}
开发者ID:generaltso,项目名称:handmadequake,代码行数:17,
示例12: Host_Name_f/*======================Host_Name_f======================*/static void Host_Name_f (void){ char newName[32]; char *pdest; if (Cmd_Argc () == 1) { Con_Printf ("/"name/" is /"%s/"/n", cl_name.string); return; } if (Cmd_Argc () == 2) q_strlcpy (newName, Cmd_Argv(1), sizeof(newName)); else q_strlcpy (newName, Cmd_Args(), sizeof(newName)); newName[15] = 0; // client_t structure actually says name[32]. //this is for the fuckers who put braces in the name causing loadgame to crash. pdest = strchr(newName,'{'); if (pdest) { *pdest = 0; //zap the brace Con_Printf ("Illegal char in name removed!/n"); } if (cmd_source == src_command) { if (strcmp(cl_name.string, newName) == 0) return; Cvar_Set ("_cl_name", newName); if (cls.state == ca_connected) Cmd_ForwardToServer (); return; } if (host_client->name[0] && strcmp(host_client->name, "unconnected") ) if (strcmp(host_client->name, newName) != 0) Con_Printf ("%s renamed to %s/n", host_client->name, newName); strcpy (host_client->name, newName); host_client->edict->v.netname = PR_SetEngineString(host_client->name);// send notification to all clients MSG_WriteByte (&sv.reliable_datagram, svc_updatename); MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); MSG_WriteString (&sv.reliable_datagram, host_client->name);}
开发者ID:svn2github,项目名称:uhexen2,代码行数:50,
示例13: CL_Name_fvoidCL_Name_f(void){ char new_name[16]; const char *arg; if (Cmd_Argc() == 1) { Con_Printf("/"name/" is /"%s/"/n", cl_name.string); return; } arg = (Cmd_Argc() == 2) ? Cmd_Argv(1) : Cmd_Args(); snprintf(new_name, sizeof(new_name), "%s", arg); if (!strcmp(cl_name.string, new_name)) return; Cvar_Set("_cl_name", new_name); Cmd_ForwardToServer();}
开发者ID:dommul,项目名称:blinky,代码行数:18,
示例14: Host_QC_Exec/*==================Host_QC_ExecExecute QC commands from the console==================*/void Host_QC_Exec (void){ dfunction_t *f; if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (!developer.value) return; f = 0; if ((f = ED_FindFunction(Cmd_Argv(1))) != NULL) { pr_global_struct->self = EDICT_TO_PROG(sv_player); PR_ExecuteProgram ((func_t)(f - pr_functions)); } else Con_Printf("bad function/n");}
开发者ID:darkduke606,项目名称:DQuakePlus,代码行数:26,
示例15: Cmd_ExecuteString_internalvoid EXT_FUNC Cmd_ExecuteString_internal(const char* cmdName, cmd_source_t src, IGameClient* client) { // Search in functions cmd_function_t *cmd = cmd_functions; while (cmd) { if (!Q_stricmp(cmd_argv[0], cmd->name)) { cmd->function(); if (g_pcls.demorecording && (cmd->flags & FCMD_HUD_COMMAND) && !g_pcls.spectator) { CL_RecordHUDCommand(cmd->name); } return; } cmd = cmd->next; } // Search in aliases cmdalias_t *a = cmd_alias; while (a) { if (!Q_stricmp(cmd_argv[0], a->name)) { Cbuf_InsertText(a->value); return; } a = a->next; } // Search in cvars if (!Cvar_Command() && g_pcls.state >= ca_connected) { // Send to a server if nothing processed locally and connected Cmd_ForwardToServer(); }}
开发者ID:LeninChan,项目名称:rehlds,代码行数:41,
示例16: Host_Notarget_f/*==================Host_Notarget_f==================*/void Host_Notarget_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch) return; //johnfitz -- allow user to explicitly set notarget to on or off switch (Cmd_Argc()) { case 1: sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET; if (!((int)sv_player->v.flags & FL_NOTARGET) ) SV_ClientPrintf ("notarget OFF/n"); else SV_ClientPrintf ("notarget ON/n"); break; case 2: if (Q_atof(Cmd_Argv(1))) { sv_player->v.flags = (int)sv_player->v.flags | FL_NOTARGET; SV_ClientPrintf ("notarget ON/n"); } else { sv_player->v.flags = (int)sv_player->v.flags & ~FL_NOTARGET; SV_ClientPrintf ("notarget OFF/n"); } break; default: Con_Printf("notarget [value] : toggle notarget mode. values: 0 = off, 1 = on/n"); break; } //johnfitz}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:44,
示例17: Host_Name_f/*======================Host_Name_f======================*/void Host_Name_f (void){ char newName[32]; if (Cmd_Argc () == 1) { Con_Printf ("/"name/" is /"%s/"/n", cl_name.string); return; } if (Cmd_Argc () == 2) q_strlcpy(newName, Cmd_Argv(1), sizeof(newName)); else q_strlcpy(newName, Cmd_Args(), sizeof(newName)); newName[15] = 0; // client_t structure actually says name[32]. if (cmd_source == src_command) { if (Q_strcmp(cl_name.string, newName) == 0) return; Cvar_Set ("_cl_name", newName); if (cls.state == ca_connected) Cmd_ForwardToServer (); return; } if (host_client->name[0] && strcmp(host_client->name, "unconnected") ) { if (Q_strcmp(host_client->name, newName) != 0) Con_Printf ("%s renamed to %s/n", host_client->name, newName); } Q_strcpy (host_client->name, newName); host_client->edict->v.netname = PR_SetEngineString(host_client->name);// send notification to all clients MSG_WriteByte (&sv.reliable_datagram, svc_updatename); MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); MSG_WriteString (&sv.reliable_datagram, host_client->name);}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:44,
示例18: Host_Noclip_fstatic void Host_Noclip_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (*sv_globals.deathmatch || *sv_globals.coop || skill.integer > 2) return; if (sv_player->v.movetype != MOVETYPE_NOCLIP) { sv_player->v.movetype = MOVETYPE_NOCLIP; SV_ClientPrintf (0, "noclip ON/n"); } else { sv_player->v.movetype = MOVETYPE_WALK; SV_ClientPrintf (0, "noclip OFF/n"); }}
开发者ID:svn2github,项目名称:uhexen2,代码行数:22,
示例19: Host_Fly_f/*==================Host_Fly_fSets client to flymode==================*/void Host_Fly_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch && !host_client->privileged) return; if (sv_player->v.movetype != MOVETYPE_FLY) { sv_player->v.movetype = MOVETYPE_FLY; SV_ClientPrintf ("flymode ON/n"); } else { sv_player->v.movetype = MOVETYPE_WALK; SV_ClientPrintf ("flymode OFF/n"); }}
开发者ID:jjjaaajjj,项目名称:ws-pro-android-games,代码行数:29,
示例20: Host_Notarget_fvoid Host_Notarget_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (!allowcheats) { SV_ClientPrintf("No cheats allowed, use sv_cheats 1 and restart level to enable./n"); return; } if (pr_global_struct->deathmatch && !host_client->privileged) return; sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET; if (!((int)sv_player->v.flags & FL_NOTARGET) ) SV_ClientPrintf ("notarget OFF/n"); else SV_ClientPrintf ("notarget ON/n");}
开发者ID:DrLabman,项目名称:Vengeance-r2,代码行数:23,
示例21: Host_Name_f/*======================Host_Name_f======================*/void Host_Name_f (void){ char *newName; if (Cmd_Argc () == 1) { Con_Printf ("/"name/" is /"%s/"/n", cl_name.string); return; } if (Cmd_Argc () == 2) newName = Cmd_Argv(1); else newName = Cmd_Args(); newName[15] = 0; if (cmd_source == src_command) { if (Q_strcmp(cl_name.string, newName) == 0) return; Cvar_Set ("_cl_name", newName); if (cls.state == ca_connected) Cmd_ForwardToServer (); return; } if (host_client->name[0] && strcmp(host_client->name, "unconnected") ) if (Q_strcmp(host_client->name, newName) != 0) Con_Printf ("%s renamed to %s/n", host_client->name, newName); Q_strcpy (host_client->name, newName); host_client->edict->v.netname = host_client->name - pr_strings; // send notification to all clients MSG_WriteByte (&sv.reliable_datagram, svc_updatename); MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); MSG_WriteString (&sv.reliable_datagram, host_client->name);}
开发者ID:DrLabman,项目名称:Vengeance-r2,代码行数:42,
示例22: Host_Noclip_fvoid Host_Noclip_f (void){ if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (pr_global_struct->deathmatch && !host_client->privileged) return; if (sv_player->v.movetype != MOVETYPE_NOCLIP) { noclip_anglehack = true; sv_player->v.movetype = MOVETYPE_NOCLIP; SV_ClientPrintf ("noclip ON/n"); } else { noclip_anglehack = false; sv_player->v.movetype = MOVETYPE_WALK; SV_ClientPrintf ("noclip OFF/n"); }}
开发者ID:jjjaaajjj,项目名称:ws-pro-android-games,代码行数:24,
示例23: Host_Ping_f/*==================Host_Ping_f==================*/void Host_Ping_f (void){ int i, j; float total; client_t *client; if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } SV_ClientPrintf ("Client ping times:/n"); for (i = 0, client = svs.clients; i < svs.maxclients; i++, client++) { if (!client->active) continue; total = 0; for (j = 0; j < NUM_PING_TIMES; j++) total+=client->ping_times[j]; total /= NUM_PING_TIMES; SV_ClientPrintf ("%4i %s/n", (int)(total*1000), client->name); }}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:30,
示例24: Host_Class_fstatic void Host_Class_f (void){ float newClass; if (Cmd_Argc () == 1) { Con_Printf("/"playerclass/" is %d (/"%s/")/n", cl_playerclass.integer, (cl_playerclass.integer < 1 || cl_playerclass.integer > MAX_PLAYER_CLASS) ? "unknown" : ClassNames[cl_playerclass.integer - 1]); return; } if (Cmd_Argc () == 2) newClass = atof(Cmd_Argv(1)); else newClass = atof(Cmd_Args()); if (newClass < 0 || newClass > MAX_PLAYER_CLASS) { Con_Printf("Invalid player class./n"); return; }#if ENABLE_OLD_DEMO if (gameflags & GAME_OLD_DEMO && (newClass != CLASS_PALADIN && newClass != CLASS_THEIF)) { Con_Printf("That class is not available in this demo version./n"); return; }#endif /* OLD_DEMO */ if (newClass == CLASS_DEMON) { if (!(gameflags & GAME_PORTALS)) { Con_Printf("That class is only available in the mission pack./n"); return; } if (sv.active && (progs->crc != PROGS_V112_CRC)) { /* FIXME: This isn't right!!! A custom progs can actually * support 5 classes and can have v1.11 structures at the * same time. I don't know a way to detect any such thing, * hence this lame solution! -- O.S. */ Con_Printf("progs.dat in use doesn't support that class./n"); return; } } if (cmd_source == src_command) { Cvar_SetValue ("_cl_playerclass", newClass); // when class changes after map load, update cl_playerclass, // cl_playerclass should probably only be used in worldspawn, though. if (sv.active && sv_globals.cl_playerclass) *sv_globals.cl_playerclass = newClass; if (cls.state == ca_connected) Cmd_ForwardToServer (); return; } if (sv.loadgame || host_client->playerclass) { if (host_client->edict->v.playerclass) newClass = host_client->edict->v.playerclass; else if (host_client->playerclass) newClass = host_client->playerclass; } host_client->playerclass = newClass; host_client->edict->v.playerclass = newClass; // Change the weapon model used *sv_globals.self = EDICT_TO_PROG(host_client->edict); PR_ExecuteProgram (*sv_globals.ClassChangeWeapon);// send notification to all clients MSG_WriteByte (&sv.reliable_datagram, svc_updateclass); MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); MSG_WriteByte (&sv.reliable_datagram, (byte)newClass);}
开发者ID:svn2github,项目名称:uhexen2,代码行数:80,
示例25: Host_Tell_fvoid Host_Tell_f(void){ int j; client_t *client; client_t *save; const char *p; char text[MAXCMDLINE], *p2; qboolean quoted; if (cmd_source == src_command) { Cmd_ForwardToServer (); return; } if (Cmd_Argc () < 3) return; p = Cmd_Args();// remove quotes if present quoted = false; if (*p == '/"') { p++; quoted = true; } q_snprintf (text, sizeof(text), "%s: %s", host_client->name, p);// check length & truncate if necessary j = (int) strlen(text); if (j >= (int) sizeof(text) - 1) { text[sizeof(text) - 2] = '/n'; text[sizeof(text) - 1] = '/0'; } else { p2 = text + j; while ((const char *)p2 > (const char *)text && (p2[-1] == '/r' || p2[-1] == '/n' || (p2[-1] == '/"' && quoted)) ) { if (p2[-1] == '/"' && quoted) quoted = false; p2[-1] = '/0'; p2--; } p2[0] = '/n'; p2[1] = '/0'; } save = host_client; for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) { if (!client->active || !client->spawned) continue; if (q_strcasecmp(client->name, Cmd_Argv(1))) continue; host_client = client; SV_ClientPrintf("%s", text); break; } host_client = save;}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:63,
示例26: Host_Sayvoid Host_Say(qboolean teamonly){ int j; client_t *client; client_t *save; const char *p; char text[MAXCMDLINE], *p2; qboolean quoted; qboolean fromServer = false; if (cmd_source == src_command) { if (cls.state != ca_dedicated) { Cmd_ForwardToServer (); return; } fromServer = true; teamonly = false; } if (Cmd_Argc () < 2) return; save = host_client; p = Cmd_Args();// remove quotes if present quoted = false; if (*p == '/"') { p++; quoted = true; }// turn on color set 1 if (!fromServer) q_snprintf (text, sizeof(text), "/001%s: %s", save->name, p); else q_snprintf (text, sizeof(text), "/001<%s> %s", hostname.string, p);// check length & truncate if necessary j = (int) strlen(text); if (j >= (int) sizeof(text) - 1) { text[sizeof(text) - 2] = '/n'; text[sizeof(text) - 1] = '/0'; } else { p2 = text + j; while ((const char *)p2 > (const char *)text && (p2[-1] == '/r' || p2[-1] == '/n' || (p2[-1] == '/"' && quoted)) ) { if (p2[-1] == '/"' && quoted) quoted = false; p2[-1] = '/0'; p2--; } p2[0] = '/n'; p2[1] = '/0'; } for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) { if (!client || !client->active || !client->spawned) continue; if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team) continue; host_client = client; SV_ClientPrintf("%s", text); } host_client = save; if (cls.state == ca_dedicated) Sys_Printf("%s", &text[1]);}
开发者ID:bangstk,项目名称:Quakespasm,代码行数:76,
示例27: Host_Sayvoid Host_Say(qboolean teamonly){ client_t *client; client_t *save; int j; char *p; char text[64]; qboolean fromServer = false; if (cmd_source == src_command) { if (cls.state == ca_dedicated) { fromServer = true; teamonly = false; } else { Cmd_ForwardToServer (); return; } } if (Cmd_Argc () < 2) return; save = host_client; p = Cmd_Args();// remove quotes if present if (*p == '"') { p++; p[Q_strlen(p)-1] = 0; }// turn on color set 1 if (!fromServer) sprintf (text, "%c%s: ", 1, save->name); //sprintf (text, "%s: ", save->name); else sprintf (text, "%c<%s> ", 1, hostname.string); //sprintf (text, "<%s> ", hostname.string); j = sizeof(text) - 2 - Q_strlen(text); // -2 for /n and null terminator if (Q_strlen(p) > j) p[j] = 0; strcat (text, p); strcat (text, "/n"); for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) { if (!client || !client->active || !client->spawned) continue; if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team) continue; host_client = client; SV_ClientPrintf("%s", text); } host_client = save; Sys_Printf("%s", &text[1]);}
开发者ID:DrLabman,项目名称:Vengeance-r2,代码行数:64,
示例28: 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; void **data; Cmd_TokenizeString (text, true); // execute the command line if (!Cmd_Argc()) { //Com_DPrintf ("Cmd_ExecuteString: no tokens on '%s'/n", text); return; // no tokens } // check functions // FIXME CRASH: NULL in the rb tree! data = rbfind (cmd_argv[0], cmdtree); if (data) { cmd = *(cmd_function_t **)data; if (!cmd->function) { // forward to server command //Cmd_ExecuteString (va("cmd %s", text));#ifndef DEDICATED_ONLY Cmd_ForwardToServer ();#endif //Com_DPrintf ("Cmd_ExecuteString: no function '%s' for '%s', using 'cmd'/n", cmd->name, text); } else { //Com_DPrintf ("Cmd_ExecuteString: function '%s' called for '%s'/n", cmd->name, text); cmd->function (); } return; } // check alias data = rbfind (cmd_argv[0], aliastree); if (data) { char expanded[MAX_STRING_CHARS]; a = *(cmdalias_t **)data; if (++alias_count == ALIAS_LOOP_COUNT) { Com_Printf ("ALIAS_LOOP_COUNT/n", LOG_GENERAL); return; } Cmd_Expand_Args (a->value, expanded, sizeof(expanded)); Cbuf_InsertText (expanded); return; } // check cvars if (Cvar_Command ()) { //Com_DPrintf ("Cmd_ExecuteString: '%s' : is cvar/n", text); return; } // send it as a server command if we are connected#ifndef DEDICATED_ONLY Cmd_ForwardToServer ();#else Com_Printf ("Unknown command /"%s/"/n", LOG_GENERAL, text);#endif}
开发者ID:Slipyx,项目名称:r1q2,代码行数:78,
注:本文中的Cmd_ForwardToServer函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ Cmd_RemoveCommand函数代码示例 C++ Cmd_Argv函数代码示例 |