这篇教程C++ Com_Milliseconds函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Com_Milliseconds函数的典型用法代码示例。如果您正苦于以下问题:C++ Com_Milliseconds函数的具体用法?C++ Com_Milliseconds怎么用?C++ Com_Milliseconds使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Com_Milliseconds函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: S_EndLoadSound/*==============S_EndLoadSound==============*/qboolean S_EndLoadSound( sfx_t *sfx ){ wavinfo_t info; byte* data; ALuint Buffer; assert(sfx->iFlags & SFX_FLAG_LOADING); sfx->iFlags &= ~SFX_FLAG_LOADING; // was the read successful? if (Sys_StreamIsError(sfx->iStreamHandle)) {#if defined(FINAL_BUILD) /* extern void ERR_DiscFail(bool); ERR_DiscFail(false); */#endif Sys_StreamClose(sfx->iStreamHandle); Z_Free(sfx->pSoundData); sfx->iFlags |= SFX_FLAG_RESIDENT | SFX_FLAG_DEFAULT; return qfalse; } Sys_StreamClose(sfx->iStreamHandle); SND_TouchSFX(sfx); sfx->iLastTimeUsed = Com_Milliseconds()+1; // why +1? Hmmm, leave it for now I guess // loading a WAV, presumably... data = (byte*)sfx->pSoundData; info = GetWavInfo( data ); if (info.size == 0) { Z_Free(sfx->pSoundData); sfx->iFlags |= SFX_FLAG_RESIDENT | SFX_FLAG_DEFAULT; return qfalse; } sfx->iSoundLength = info.size; // make sure we have enough space for the sound SND_update(sfx); // Clear Open AL Error State alGetError(); // Generate AL Buffer alGenBuffers(1, &Buffer); // Copy audio data to AL Buffer alBufferData(Buffer, info.format, data, sfx->iSoundLength, info.rate); if (alGetError() != AL_NO_ERROR) { Z_Free(sfx->pSoundData); sfx->iFlags |= SFX_FLAG_UNLOADED; return qfalse; } sfx->Buffer = Buffer;#ifdef _GAMECUBE Z_Free(sfx->pSoundData);#endif sfx->iFlags |= SFX_FLAG_RESIDENT; return qtrue;}
开发者ID:Tloz,项目名称:Jedi-Outcast,代码行数:75,
示例2: SVC_RemoteCommand/*===============SVC_RemoteCommandAn rcon packet arrived from the network.Shift down the remaining argsRedirect all printfs===============*/void SVC_RemoteCommand( netadr_t from, msg_t *msg ) { qboolean valid; unsigned int time; char remaining[1024]; // show_bug.cgi?id=376 // if we send an OOB print message this size, 1.31 clients die in a Com_Printf buffer overflow // the buffer overflow will be fixed in > 1.31 clients // but we want a server side fix // we must NEVER send an OOB message that will be > 1.31 MAXPRINTMSG (4096)#define SV_OUTPUTBUF_LENGTH ( 256 - 16 ) char sv_outputbuf[SV_OUTPUTBUF_LENGTH]; static unsigned int lasttime = 0; char *cmd_aux; // TTimo - show_bug.cgi?id=534 time = Com_Milliseconds(); if ( time < ( lasttime + 500 ) ) { return; } lasttime = time; if ( !strlen( sv_rconPassword->string ) || strcmp( Cmd_Argv( 1 ), sv_rconPassword->string ) ) { valid = qfalse; Com_Printf( "Bad rcon from %s:/n%s/n", NET_AdrToString( from ), Cmd_Argv( 2 ) ); } else { valid = qtrue; Com_Printf( "Rcon from %s:/n%s/n", NET_AdrToString( from ), Cmd_Argv( 2 ) ); } // start redirecting all print outputs to the packet svs.redirectAddress = from; // FIXME TTimo our rcon redirection could be improved // big rcon commands such as status lead to sending // out of band packets on every single call to Com_Printf // which leads to client overflows // see show_bug.cgi?id=51 // (also a Q3 issue) Com_BeginRedirect( sv_outputbuf, SV_OUTPUTBUF_LENGTH, SV_FlushRedirect ); if ( !strlen( sv_rconPassword->string ) ) { Com_Printf( "No rconpassword set on the server./n" ); } else if ( !valid ) { Com_Printf( "Bad rconpassword./n" ); } else { remaining[0] = 0; // ATVI Wolfenstein Misc #284 // get the command directly, "rcon <pass> <command>" to avoid quoting issues // extract the command by walking // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing cmd_aux = Cmd_Cmd(); cmd_aux += 4; while ( cmd_aux[0] == ' ' ) cmd_aux++; while ( cmd_aux[0] && cmd_aux[0] != ' ' ) // password cmd_aux++; while ( cmd_aux[0] == ' ' ) cmd_aux++; Q_strcat( remaining, sizeof( remaining ), cmd_aux ); Cmd_ExecuteString( remaining ); } Com_EndRedirect();}
开发者ID:Justasic,项目名称:RTCW-MP,代码行数:77,
示例3: S_Update_void S_Update_(void){ unsigned endtime; int samps; static float lastTime = 0.0f; float ma, op; float thisTime, sane; static int ot = -1; if ( !s_soundStarted || s_soundMuted ) { return; } thisTime = Com_Milliseconds(); // Updates s_soundtime S_GetSoundtime(); if (s_soundtime == ot) { return; } ot = s_soundtime; // clear any sound effects that end before the current time, // and start any new sounds S_ScanChannelStarts(); sane = thisTime - lastTime; if (sane<11) { sane = 11; // 85hz } ma = s_mixahead->value * dma.speed; op = s_mixPreStep->value + sane*dma.speed*0.01; if (op < ma) { ma = op; } // mix ahead of current position endtime = s_soundtime + ma; // mix to an even submission block size endtime = (endtime + dma.submission_chunk-1) & ~(dma.submission_chunk-1); // never mix more than the complete buffer samps = dma.samples >> (dma.channels-1); if (endtime - s_soundtime > samps) endtime = s_soundtime + samps; SNDDMA_BeginPainting (); S_PaintChannels (endtime); SNDDMA_Submit (); lastTime = thisTime;}
开发者ID:zturtleman,项目名称:recoil,代码行数:65,
示例4: Com_Initvoid Com_Init( char *commandLine ) { char *s; Com_Printf( "%s %s %s/n", Q3_VERSION, PLATFORM_STRING, __DATE__ ); try { Cvar_Init (); // prepare enough of the subsystems to handle // cvar and command buffer management Com_ParseCommandLine( commandLine ); //Swap_Init (); Cbuf_Init (); Com_InitZoneMemory(); Cmd_Init (); // override anything from the config files with command line args Com_StartupVariable( NULL ); // done early so bind command exists CL_InitKeyCommands(); com_homepath = Cvar_Get("com_homepath", "", CVAR_INIT); FS_InitFilesystem (); //uses z_malloc //re.R_InitWorldEffects(); // this doesn't do much but I want to be sure certain variables are intialized. Com_ExecuteCfg(); // override anything from the config files with command line args Com_StartupVariable( NULL ); // allocate the stack based hunk allocator Com_InitHunkMemory(); // if any archived cvars are modified after this, we will trigger a writing // of the config file cvar_modifiedFlags &= ~CVAR_ARCHIVE; // // init commands and vars // Cmd_AddCommand ("quit", Com_Quit_f); Cmd_AddCommand ("writeconfig", Com_WriteConfig_f ); com_maxfps = Cvar_Get ("com_maxfps", "125", CVAR_ARCHIVE); com_developer = Cvar_Get ("developer", "0", CVAR_TEMP ); com_logfile = Cvar_Get ("logfile", "0", CVAR_TEMP ); com_speedslog = Cvar_Get ("speedslog", "0", CVAR_TEMP ); com_timescale = Cvar_Get ("timescale", "1", CVAR_CHEAT ); com_fixedtime = Cvar_Get ("fixedtime", "0", CVAR_CHEAT); com_showtrace = Cvar_Get ("com_showtrace", "0", CVAR_CHEAT); com_viewlog = Cvar_Get( "viewlog", "0", CVAR_TEMP ); com_speeds = Cvar_Get ("com_speeds", "0", 0); #ifdef G2_PERFORMANCE_ANALYSIS com_G2Report = Cvar_Get("com_G2Report", "0", 0);#endif cl_paused = Cvar_Get ("cl_paused", "0", CVAR_ROM); sv_paused = Cvar_Get ("sv_paused", "0", CVAR_ROM); com_sv_running = Cvar_Get ("sv_running", "0", CVAR_ROM); com_cl_running = Cvar_Get ("cl_running", "0", CVAR_ROM); com_skippingcin = Cvar_Get ("skippingCinematic", "0", CVAR_ROM); com_buildScript = Cvar_Get( "com_buildScript", "0", 0 ); com_affinity = Cvar_Get( "com_affinity", "1", CVAR_ARCHIVE ); com_bootlogo = Cvar_Get( "com_bootlogo", "1", CVAR_ARCHIVE ); if ( com_developer && com_developer->integer ) { Cmd_AddCommand ("error", Com_Error_f); Cmd_AddCommand ("crash", Com_Crash_f ); Cmd_AddCommand ("freeze", Com_Freeze_f); } s = va("%s %s %s", Q3_VERSION, PLATFORM_STRING, __DATE__ ); com_version = Cvar_Get ("version", s, CVAR_ROM | CVAR_SERVERINFO );#ifdef JK2_MODE JK2SP_Init(); Com_Printf("Running Jedi Outcast Mode/n");#else SE_Init(); // Initialize StringEd Com_Printf("Running Jedi Academy Mode/n");#endif Sys_Init(); // this also detects CPU type, so I can now do this CPU check below... Com_SetProcessorAffinity(); Netchan_Init( Com_Milliseconds() & 0xffff ); // pick a port value that should be nice and random// VM_Init(); SV_Init(); //.........这里部分代码省略.........
开发者ID:BSzili,项目名称:OpenJK,代码行数:101,
示例5: SVC_RemoteCommand/*===============SVC_RemoteCommandAn rcon packet arrived from the network.Shift down the remaining argsRedirect all printfs===============*/void SVC_RemoteCommand( netadr_t from, msg_t *msg ) { qboolean valid; unsigned int time; char remaining[1024]; // TTimo - scaled down to accumulate, but not overflow anything network wise, print wise etc. // (OOB messages are the bottleneck here)#define SV_OUTPUTBUF_LENGTH (1024 - 16) char sv_outputbuf[SV_OUTPUTBUF_LENGTH]; static unsigned int lasttime = 0; char *cmd_aux; // TTimo - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=534 time = Com_Milliseconds(); if ( !strlen( sv_rconPassword->string ) || strcmp (Cmd_Argv(1), sv_rconPassword->string) ) { // MaJ - If the rconpassword is bad and one just happned recently, don't spam the log file, just die. if ( (unsigned)( time - lasttime ) < 50u ) return; valid = qfalse; Com_Printf ("Bad rcon from %s:/n%s/n", NET_AdrToString (from), Cmd_Argv(2) ); } else { // MaJ - If the rconpassword is good, allow it much sooner than a bad one. if ( (unsigned)( time - lasttime ) < 25u ) return; valid = qtrue; Com_Printf ("Rcon from %s:/n%s/n", NET_AdrToString (from), Cmd_Argv(2) ); } lasttime = time; // start redirecting all print outputs to the packet svs.redirectAddress = from; Com_BeginRedirect (sv_outputbuf, SV_OUTPUTBUF_LENGTH, SV_FlushRedirect); if ( !strlen( sv_rconPassword->string ) ) { Com_Printf ("No rconpassword set on the server./n"); } else if ( !valid ) { Com_Printf ("Bad rconpassword./n"); } else { remaining[0] = 0; // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543 // get the command directly, "rcon <pass> <command>" to avoid quoting issues // extract the command by walking // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing cmd_aux = Cmd_Cmd(); cmd_aux+=4; while(cmd_aux[0]==' ') cmd_aux++; while(cmd_aux[0] && cmd_aux[0]!=' ') // password cmd_aux++; while(cmd_aux[0]==' ') cmd_aux++; Q_strcat( remaining, sizeof(remaining), cmd_aux); Cmd_ExecuteString (remaining); } Com_EndRedirect ();}
开发者ID:ghostmod,项目名称:PB-ioq3-for-UrbanTerror-4.1,代码行数:73,
示例6: SV_SpawnServer/*================SV_SpawnServerChange the server to a new map, taking all connectedclients along with it.This is NOT called for map_restart================*/void SV_SpawnServer( char *server, qboolean killBots ) { int i; int checksum; qboolean isBot; char systemInfo[16384]; const char *p; // shut down the existing game if it is running SV_ShutdownGameProgs(); Com_Printf ("------ Server Initialization ------/n"); Com_Printf ("Server: %s/n",server); // if not running a dedicated server CL_MapLoading will connect the client to the server // also print some status stuff CL_MapLoading(); // make sure all the client stuff is unloaded CL_ShutdownAll(); // clear the whole hunk because we're (re)loading the server Hunk_Clear();#ifndef DEDICATED // Restart renderer CL_StartHunkUsers( qtrue );#endif // clear collision map data CM_ClearMap(); // init client structures and svs.numSnapshotEntities if ( !Cvar_VariableValue("sv_running") ) { SV_Startup(); } else { // check for maxclients change if ( sv_maxclients->modified ) { SV_ChangeMaxClients(); } } // clear pak references FS_ClearPakReferences(0); // allocate the snapshot entities on the hunk svs.snapshotEntities = Hunk_Alloc( sizeof(entityState_t)*svs.numSnapshotEntities, h_high ); svs.nextSnapshotEntities = 0; // toggle the server bit so clients can detect that a // server has changed svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; // set nextmap to the same map, but it may be overriden // by the game startup or another console command Cvar_Set( "nextmap", "map_restart 0");// Cvar_Set( "nextmap", va("map %s", server) ); for (i=0 ; i<sv_maxclients->integer ; i++) { // save when the server started for each client already connected if (svs.clients[i].state >= CS_CONNECTED) { svs.clients[i].oldServerTime = sv.time; } } // wipe the entire per-level structure SV_ClearServer(); for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { sv.configstrings[i] = CopyString(""); } // make sure we are not paused Cvar_Set("cl_paused", "0"); // get a new checksum feed and restart the file system srand(Com_Milliseconds()); sv.checksumFeed = ( ((int) rand() << 16) ^ rand() ) ^ Com_Milliseconds(); FS_Restart( sv.checksumFeed ); CM_LoadMap( va("maps/%s.bsp", server), qfalse, &checksum ); // set serverinfo visible name Cvar_Set( "mapname", server ); Cvar_Set( "sv_mapChecksum", va("%i",checksum) ); // serverid should be different each time sv.serverId = com_frameTime; sv.restartedServerId = sv.serverId; // I suppose the init here is just to be safe sv.checksumFeedServerId = sv.serverId; Cvar_Set( "sv_serverid", va("%i", sv.serverId ) );//.........这里部分代码省略.........
开发者ID:kingtiger01,项目名称:OpenMOHAA,代码行数:101,
示例7: SV_SpawnServer/*================SV_SpawnServerChange the server to a new map, taking all connectedclients along with it.This is NOT called for map_restart================*/void SV_SpawnServer( char *server, qboolean killBots ) { int i; int checksum; qboolean isBot; char systemInfo[MAX_INFO_STRING]; const char *p; // shut down the existing game if it is running SV_ShutdownGameProgs(); Com_Printf( "------ Server Initialization ------/n" ); Com_Printf( "Server: %s/n",server ); // if not running a dedicated server CL_MapLoading will connect the client to the server // also print some status stuff CL_MapLoading(); // make sure all the client stuff is unloaded CL_ShutdownAll(qfalse); // clear the whole hunk because we're (re)loading the server Hunk_Clear(); // clear collision map data // (SA) NOTE: TODO: used in missionpack CM_ClearMap(); // wipe the entire per-level structure SV_ClearServer(); // MrE: main zone should be pretty much emtpy at this point // except for file system data and cached renderer data Z_LogHeap(); // allocate empty config strings for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { sv.configstrings[i] = CopyString( "" ); } // init client structures and svs.numSnapshotEntities if ( !Cvar_VariableValue( "sv_running" ) ) { SV_Startup(); } else { // check for maxclients change if ( sv_maxclients->modified ) { SV_ChangeMaxClients(); } } // clear pak references FS_ClearPakReferences( 0 ); // allocate the snapshot entities on the hunk svs.snapshotEntities = Hunk_Alloc( sizeof( entityState_t ) * svs.numSnapshotEntities, h_high ); svs.nextSnapshotEntities = 0; // toggle the server bit so clients can detect that a // server has changed svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; // set nextmap to the same map, but it may be overriden // by the game startup or another console command Cvar_Set( "nextmap", "map_restart 0" );// Cvar_Set( "nextmap", va("map %s", server) ); for (i=0 ; i<sv_maxclients->integer ; i++) { // save when the server started for each client already connected if (svs.clients[i].state >= CS_CONNECTED) { svs.clients[i].oldServerTime = sv.time; } } // Ridah // DHM - Nerve :: We want to use the completion bar in multiplayer as well if ( sv_gametype->integer == GT_SINGLE_PLAYER || sv_gametype->integer >= GT_WOLF ) { SV_SetExpectedHunkUsage( va( "maps/%s.bsp", server ) ); } else { // just set it to a negative number,so the cgame knows not to draw the percent bar Cvar_Set( "com_expectedhunkusage", "-1" ); } // make sure we are not paused Cvar_Set( "cl_paused", "0" );#if !defined( DO_LIGHT_DEDICATED ) // get a new checksum feed and restart the file system sv.checksumFeed = ( ((int) rand() << 16) ^ rand() ) ^ Com_Milliseconds(); // DO_LIGHT_DEDICATED // only comment out when you need a new pure checksum string and it's associated random feed //Com_DPrintf("SV_SpawnServer checksum feed: %p/n", sv.checksumFeed);//.........这里部分代码省略.........
开发者ID:MAN-AT-ARMS,项目名称:iortcw-archive,代码行数:101,
示例8: SVC_RemoteCommandvoid SVC_RemoteCommand(netadr_t from, void* msg){ bool valid; unsigned int time; char remaining[1024] = {0}; size_t current = 0; static unsigned int lasttime = 0; remaining[0] = '/0'; time = Com_Milliseconds(); if (time < (lasttime + 100)) { return; } lasttime = time; if (!sv_rconPassword) { return; } if (!strlen(sv_rconPassword->current.string) || strcmp(Cmd_Argv(1), sv_rconPassword->current.string)) { valid = false; Com_Printf(1, "Bad rcon from %s:/n%s/n", NET_AdrToString(from), Cmd_Argv(2)); } else { valid = true; Com_Printf(1, "Rcon from %s:/n%s/n", NET_AdrToString(from), Cmd_Argv(2)); } // start redirecting all print outputs to the packet redirectAddress = from; Com_BeginRedirect(sv_outputbuf, SV_OUTPUTBUF_LENGTH, SV_FlushRedirect); if (!valid) { if (!strlen(sv_rconPassword->current.string)) { Com_Printf(0, "The server must set 'rcon_password' for clients to use 'rcon'./n"); } else { Com_Printf(0, "Invalid password./n"); } } else { remaining[0] = 0; if (Cmd_Argc() > 2) { for (int i = 2; i < Cmd_Argc(); i++) { current = Com_AddToString(Cmd_Argv(i), remaining, current, sizeof(remaining), true); current = Com_AddToString(" ", remaining, current, sizeof(remaining), false); } } else { memset(remaining, 0, sizeof(remaining)); strncpy(remaining, Cmd_Argv(2), sizeof(remaining) - 1); } Cmd_ExecuteSingleCommand(0, 0, remaining); } Com_EndRedirect(); if (strlen(remaining) > 0) { Com_Printf(0, "handled rcon: %s/n", remaining); }}
开发者ID:HOOman33,项目名称:openiwnet-iw4,代码行数:76,
示例9: CL_ServerStatusResponsevoid CL_ServerStatusResponse( const netadr_t& from, msg_t *msg ){ char info[MAX_INFO_STRING]; int i, l, score, ping; int len; serverStatus_t* serverStatus = NULL; for (i = 0; i < MAX_SERVERSTATUSREQUESTS; i++) { if ( NET_CompareAdr( from, cl_serverStatusList[i].address ) ) { serverStatus = &cl_serverStatusList[i]; break; } } // if we didn't request this server status if (!serverStatus) { return; } const char* s = MSG_ReadStringLine( msg ); len = 0; Com_sprintf(&serverStatus->string[len], sizeof(serverStatus->string)-len, "%s", s); if (serverStatus->print) { Com_Printf("Server settings:/n"); // print cvars while (*s) { for (i = 0; i < 2 && *s; i++) { if (*s == '//') s++; l = 0; while (*s) { info[l++] = *s; if (l >= MAX_INFO_STRING-1) break; s++; if (*s == '//') { break; } } info[l] = '/0'; if (i) { Com_Printf("%s/n", info); } else { Com_Printf("%-24s", info); } } } } len = strlen(serverStatus->string); Com_sprintf(&serverStatus->string[len], sizeof(serverStatus->string)-len, "//"); if (serverStatus->print) { Com_Printf("/nPlayers:/n"); Com_Printf("num: score: ping: name:/n"); } for (i = 0, s = MSG_ReadStringLine( msg ); *s; s = MSG_ReadStringLine( msg ), i++) { len = strlen(serverStatus->string); Com_sprintf(&serverStatus->string[len], sizeof(serverStatus->string)-len, "//%s", s); if (serverStatus->print) { score = ping = 0; sscanf(s, "%d %d", &score, &ping); s = strchr(s, ' '); if (s) s = strchr(s+1, ' '); if (s) s++; else s = "unknown"; Com_Printf("%-2d %-3d %-3d %s/n", i, score, ping, s ); } } len = strlen(serverStatus->string); Com_sprintf(&serverStatus->string[len], sizeof(serverStatus->string)-len, "//"); serverStatus->time = Com_Milliseconds(); serverStatus->address = from; serverStatus->pending = qfalse; if (serverStatus->print) { serverStatus->retrieved = qtrue; }}
开发者ID:ShaneIsley,项目名称:challengeq3,代码行数:86,
示例10: SVC_RemoteCommand/*===============SVC_RemoteCommandAn rcon packet arrived from the network.Shift down the remaining argsRedirect all printfs===============*/void SVC_RemoteCommand( netadr_t from, msg_t *msg ) { qboolean valid; unsigned int time; char remaining[1024]; // TTimo - scaled down to accumulate, but not overflow anything network wise, print wise etc. // (OOB messages are the bottleneck here)#define SV_OUTPUTBUF_LENGTH (1024 - 16) char sv_outputbuf[SV_OUTPUTBUF_LENGTH]; static unsigned int lasttime = 0; char *cmd_aux; // TTimo - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=534 // I believe that this code (and the dead link above) are to address a brute // force attack that guesses the rcon password. time = Com_Milliseconds(); if ( !strlen( sv_rconPassword->string ) || strcmp (Cmd_Argv(1), sv_rconPassword->string) ) { if ( (unsigned)( time - lasttime ) < 500u ) { return; } valid = qfalse; if (sv_logRconArgs->integer > 0) { Com_Printf("Bad rcon from %s/n", NET_AdrToString(from)); } else { Com_Printf("Bad rcon from %s:/n%s/n", NET_AdrToString(from), Cmd_Argv(2)); } } else { if (!Sys_IsLANAddress(from) && (unsigned) (time - lasttime) < 100u) { return; } valid = qtrue; remaining[0] = 0; // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543 // get the command directly, "rcon <pass> <command>" to avoid quoting issues // extract the command by walking // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing cmd_aux = Cmd_Cmd(); cmd_aux+=4; while(cmd_aux[0]==' ') cmd_aux++; while(cmd_aux[0] && cmd_aux[0]!=' ') // password cmd_aux++; while(cmd_aux[0]==' ') cmd_aux++; Q_strcat( remaining, sizeof(remaining), cmd_aux); if (sv_logRconArgs->integer > 0) { Com_Printf("Rcon from %s: %s/n", NET_AdrToString(from), remaining); } else { Com_Printf("Rcon from %s:/n%s/n", NET_AdrToString(from), Cmd_Argv(2)); } } lasttime = time; // start redirecting all print outputs to the packet svs.redirectAddress = from; Com_BeginRedirect (sv_outputbuf, SV_OUTPUTBUF_LENGTH, SV_FlushRedirect); if ( !strlen( sv_rconPassword->string ) ) { Com_Printf ("No rconpassword set on the server./n"); } else if ( !valid ) { Com_Printf ("Bad rconpassword./n"); } else { Cmd_ExecuteString (remaining); } Com_EndRedirect ();}
开发者ID:promolic1,项目名称:iourt-fru,代码行数:82,
示例11: SVC_RemoteCommand/*===============SVC_RemoteCommandAn rcon packet arrived from the network.Shift down the remaining argsRedirect all printfs===============*/void SVC_RemoteCommand(netadr_t from, msg_t * msg) { bool valid; unsigned int time; char remaining[1024]; // show_bug.cgi?id=376 // if we send an OOB print message this size, 1.31 clients die in a Com_Printf buffer overflow // the buffer overflow will be fixed in > 1.31 clients // but we want a server side fix // we must NEVER send an OOB message that will be > 1.31 MAXPRINTMSG (4096)#define SV_OUTPUTBUF_LENGTH ( 256 - 16 ) char sv_outputbuf[SV_OUTPUTBUF_LENGTH], *cmd_aux; static unsigned int lasttime = 0; // TTimo - show_bug.cgi?id=534 time = Com_Milliseconds(); // Do we have a whitelist for rcon? if(sv_WhiteListRcon->string && *sv_WhiteListRcon->string) { // Prevent use of rcon from addresses that have not been whitelisted if(!SV_IsRconWhitelisted(&from)) { Com_Printf( "SVC_RemoteCommand: attempt from %s who is not whitelisted/n", NET_AdrToString( from ) ); NET_OutOfBandPrint(NS_SERVER, from, "print/nClient not found whitelist data./n"); SV_DropClientsByAddress(&from, "Client tried to access to RCON password."); return; } } if ( !strlen( sv_rconPassword->string ) || strcmp (Cmd_Argv(1), sv_rconPassword->string) ) { // MaJ - If the rconpassword is bad and one just happned recently, don't spam the log file, just die. if ( (unsigned)( time - lasttime ) < 500u ) { return; } valid = false; Com_Printf ("Bad rcon from %s:/n%s/n", NET_AdrToString (from), Cmd_Argv(2) ); } else { // MaJ - If the rconpassword is good, allow it much sooner than a bad one. if ( (unsigned)( time - lasttime ) < 200u ) { return; } valid = true; Com_Printf ("Rcon from %s:/n%s/n", NET_AdrToString (from), Cmd_Argv(2) ); } lasttime = time; // start redirecting all print outputs to the packet svs.redirectAddress = from; // FIXME TTimo our rcon redirection could be improved // big rcon commands such as status lead to sending // out of band packets on every single call to Com_Printf // which leads to client overflows // see show_bug.cgi?id=51 // (also a Q3 issue) Com_BeginRedirect(sv_outputbuf, SV_OUTPUTBUF_LENGTH, SV_FlushRedirect); if(!strlen(sv_rconPassword->string)) { Com_Printf("No rconpassword set on the server./n"); } else if(!valid) { Com_Printf("Bad rconpassword./n"); } else { remaining[0] = 0; // ATVI Wolfenstein Misc #284 // get the command directly, "rcon <pass> <command>" to avoid quoting issues // extract the command by walking // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing cmd_aux = Cmd_Cmd(); cmd_aux += 4; while(cmd_aux[0] == ' ') { cmd_aux++; } while(cmd_aux[0] && cmd_aux[0] != ' ') { // password cmd_aux++; } while(cmd_aux[0] == ' ') { cmd_aux++; } Q_strcat(remaining, sizeof(remaining), cmd_aux); Cmd_ExecuteString(remaining); } Com_EndRedirect();}
开发者ID:TheDushan,项目名称:OpenWolf,代码行数:96,
示例12: SV_SpawnServer//.........这里部分代码省略......... svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; // set nextmap to the same map, but it may be overriden // by the game startup or another console command Cvar_Set( "nextmap", "map_restart 0");// Cvar_Set( "nextmap", va("map %s", server) ); // wipe the entire per-level structure SV_ClearServer(); for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { sv.configstrings[i] = CopyString(""); } // decide which serverversion to host mv_serverversion = Cvar_Get("mv_serverversion", "1.04", CVAR_ARCHIVE | CVAR_LATCH | CVAR_GLOBAL); if (FS_AllPath_Base_FileExists("assets5.pk3") && (!strcmp(mv_serverversion->string, "auto") || !strcmp(mv_serverversion->string, "1.04"))) { Com_Printf("serverversion set to 1.04/n"); MV_SetCurrentGameversion(VERSION_1_04); } else if (FS_AllPath_Base_FileExists("assets2.pk3") && (!strcmp(mv_serverversion->string, "auto") || !strcmp(mv_serverversion->string, "1.03"))) { Com_Printf("serverversion set to 1.03/n"); MV_SetCurrentGameversion(VERSION_1_03); } else { Com_Printf("serverversion set to 1.02/n"); MV_SetCurrentGameversion(VERSION_1_02); } Cvar_Set("protocol", va("%i", MV_GetCurrentProtocol())); // make sure we are not paused Cvar_Set("cl_paused", "0"); // get a new checksum feed and restart the file system srand(Com_Milliseconds()); sv.checksumFeed = ( ((int) rand() << 16) ^ rand() ) ^ Com_Milliseconds(); FS_PureServerSetReferencedPaks("", ""); FS_Restart( sv.checksumFeed ); CM_LoadMap( va("maps/%s.bsp", server), qfalse, &checksum ); SV_SendMapChange(); // set serverinfo visible name Cvar_Set( "mapname", server ); Cvar_Set( "sv_mapChecksum", va("%i",checksum) ); // serverid should be different each time sv.serverId = com_frameTime; sv.restartedServerId = sv.serverId; Cvar_Set( "sv_serverid", va("%i", sv.serverId ) ); // clear physics interaction links SV_ClearWorld (); // media configstring setting should be done during // the loading stage, so connected clients don't have // to load during actual gameplay sv.state = SS_LOADING; // load and spawn all other entities SV_InitGameProgs(); // don't allow a map_restart if game is modified sv_gametype->modified = qfalse;
开发者ID:entdark,项目名称:jk2mv,代码行数:67,
示例13: SV_SpawnServervoid SV_SpawnServer( char *mapname, qboolean killBots, cb_context_t *after ) { int i; cb_context_t *context; spawnserver_data_t *data; // shut down the existing game if it is running SV_ShutdownGameProgs(); Com_Printf ("------ Server Initialization ------/n"); Com_Printf ("Server: %s/n",mapname); // if not running a dedicated server CL_MapLoading will connect the client to the server // also print some status stuff CL_MapLoading(); // make sure all the client stuff is unloaded CL_ShutdownAll(qfalse); // clear the whole hunk because we're (re)loading the server Hunk_Clear(); // clear collision map data CM_ClearMap(); // init client structures and svs.numSnapshotEntities if ( !Cvar_VariableValue("sv_running") ) { SV_Startup(); } else { // check for maxclients change if ( sv_maxclients->modified ) { SV_ChangeMaxClients(); } } // clear pak references FS_ClearPakReferences(0); // allocate the snapshot entities on the hunk svs.snapshotEntities = Hunk_Alloc( sizeof(entityState_t)*svs.numSnapshotEntities, h_high ); svs.nextSnapshotEntities = 0; // toggle the server bit so clients can detect that a // server has changed svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; // set nextmap to the same map, but it may be overriden // by the game startup or another console command Cvar_Set( "nextmap", "map_restart 0");// Cvar_Set( "nextmap", va("map %s", server) ); for (i=0 ; i<sv_maxclients->integer ; i++) { // save when the server started for each client already connected if (svs.clients[i].state >= CS_CONNECTED) { svs.clients[i].oldServerTime = sv.time; } } // wipe the entire per-level structure SV_ClearServer(); for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { sv.configstrings[i] = CopyString(""); } // make sure we are not paused Cvar_Set("cl_paused", "0"); // set serverinfo visible name Cvar_Set("mapname", mapname); // get a new checksum feed and restart the file system sv.checksumFeed = ( ((int) rand() << 16) ^ rand() ) ^ Com_Milliseconds(); // Setup callback context. context = cb_create_context( SV_SpawnServer_after_FS_Restart, spawnserver_data_t ); data = (spawnserver_data_t *)context->data; Q_strncpyz(data->mapname, mapname, MAX_QPATH); data->killBots = killBots; data->after = after; FS_Restart( sv.checksumFeed, context );}
开发者ID:CarterTsai,项目名称:ioq3,代码行数:81,
示例14: SV_SpawnServer//.........这里部分代码省略......... // allocate the snapshot entities svs.snapshotEntities = new entityState_s[svs.numSnapshotEntities]; // we CAN afford to do this here, since we know the STL vectors in Ghoul2 are empty memset(svs.snapshotEntities, 0, sizeof(entityState_t)*svs.numSnapshotEntities);/*Ghoul2 Insert End*/ // toggle the server bit so clients can detect that a // server has changed svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; // set nextmap to the same map, but it may be overriden // by the game startup or another console command Cvar_Set( "nextmap", "map_restart 0");// Cvar_Set( "nextmap", va("map %s", server) ); // wipe the entire per-level structure SV_ClearServer(); for ( i = 0 ; i < MAX_CONFIGSTRINGS ; i++ ) { sv.configstrings[i] = CopyString(""); } //rww - RAGDOLL_BEGIN G2API_SetTime(svs.time,0); //rww - RAGDOLL_END // make sure we are not paused Cvar_Set("cl_paused", "0"); // get a new checksum feed and restart the file system srand(Com_Milliseconds()); sv.checksumFeed = ( ((int) rand() << 16) ^ rand() ) ^ Com_Milliseconds(); FS_Restart( sv.checksumFeed );#ifdef _XBOX CL_StartHunkUsers(); CM_LoadMap( va("maps/%s.bsp", server), qfalse, &checksum );// RE_LoadWorldMap(va("maps/%s.bsp", server)); // Start up voice system if it isn't running yet. (ie, if we're on syslink) if( !logged_on ) g_Voice.Initialize();#else CM_LoadMap( va("maps/%s.bsp", server), qfalse, &checksum );#endif SV_SendMapChange(); // set serverinfo visible name Cvar_Set( "mapname", server ); Cvar_Set( "sv_mapChecksum", va("%i",checksum) ); // serverid should be different each time sv.serverId = com_frameTime; sv.restartedServerId = sv.serverId; Cvar_Set( "sv_serverid", va("%i", sv.serverId ) ); // clear physics interaction links SV_ClearWorld (); // media configstring setting should be done during // the loading stage, so connected clients don't have
开发者ID:Drakesinger,项目名称:jediacademypc,代码行数:67,
示例15: S_LoadSound/*==============S_LoadSoundThe filename may be different than sfx->name in the caseof a forced fallback of a player specific sound==============*/bool S_LoadSound( sfx_t *sfx ){ byte *data; short *samples; snd_info_t info;// int size; // player specific sounds are never directly loaded if ( sfx->soundName[0] == '*') { return false; } // load it in data = (byte*)S_CodecLoad(sfx->soundName, &info); if(!data) return false; if ( info.width == 1 ) { Com_DPrintf(S_COLOR_YELLOW "WARNING: %s is a 8 bit audio file/n", sfx->soundName); } if ( info.rate != 22050 ) { Com_DPrintf(S_COLOR_YELLOW "WARNING: %s is not a 22kHz audio file/n", sfx->soundName); } samples = (short*)Hunk_AllocateTempMemory(info.samples * sizeof(short) * 2); sfx->lastTimeUsed = Com_Milliseconds()+1; // each of these compression schemes works just fine // but the 16bit quality is much nicer and with a local // install assured we can rely upon the sound memory // manager to do the right thing for us and page // sound in as needed if( sfx->soundCompressed == true) { sfx->soundCompressionMethod = 1; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.rate, info.width, info.samples, data + info.dataofs ); S_AdpcmEncodeSound(sfx, samples);#if 0 } else if (info.samples>(SND_CHUNK_SIZE*16) && info.width >1) { sfx->soundCompressionMethod = 3; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.rate, info.width, info.samples, (data + info.dataofs) ); encodeMuLaw( sfx, samples); } else if (info.samples>(SND_CHUNK_SIZE*6400) && info.width >1) { sfx->soundCompressionMethod = 2; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.rate, info.width, info.samples, (data + info.dataofs) ); encodeWavelet( sfx, samples);#endif } else { sfx->soundCompressionMethod = 0; sfx->soundLength = info.samples; sfx->soundData = NULL; ResampleSfx( sfx, info.rate, info.width, data + info.dataofs, false ); } Hunk_FreeTempMemory(samples); Hunk_FreeTempMemory(data); return true;}
开发者ID:TheDushan,项目名称:OpenWolf,代码行数:72,
示例16: PHYS_InitVM/*====================PHYS_InitVMCalled for both a full init and a restart====================*/void PHYS_InitVM(qboolean restart){ VM_Call(pvm, PHYSICS_INIT, sv.time, Com_Milliseconds(), restart);}
开发者ID:SinSiXX,项目名称:Rogue-Reborn,代码行数:11,
示例17: S_AddLoopSounds/*==================S_AddLoopSoundsSpatialize all of the looping sounds.All sounds are on the same cycle, so any duplicates can justsum up the channel multipliers.==================*/void S_AddLoopSounds (void) { int i, j, now; int left_total, right_total, left, right; channel_t *ch; loopSound_t *loop, *loop2; static int loopFrame; numLoopChannels = 0; now = Com_Milliseconds(); loopFrame++; for ( i = 0 ; i < MAX_GENTITIES ; i++) { loop = &loopSounds[i]; if ( !loop->active || loop->mergeFrame == loopFrame ) { continue; // already merged into an earlier sound } if (loop->kill) { S_SpatializeOrigin( loop->origin, 127, &left_total, &right_total); // 3d } else { S_SpatializeOrigin( loop->origin, 90, &left_total, &right_total); // sphere } loop->sfx->lastTimeUsed = now; for (j=(i+1); j< MAX_GENTITIES ; j++) { loop2 = &loopSounds[j]; if ( !loop2->active || loop2->doppler || loop2->sfx != loop->sfx) { continue; } loop2->mergeFrame = loopFrame; if (loop2->kill) { S_SpatializeOrigin( loop2->origin, 127, &left, &right); // 3d } else { S_SpatializeOrigin( loop2->origin, 90, &left, &right); // sphere } loop2->sfx->lastTimeUsed = now; left_total += left; right_total += right; } if (left_total == 0 && right_total == 0) { continue; // not audible } // allocate a channel ch = &loop_channels[numLoopChannels]; if (left_total > 255) { left_total = 255; } if (right_total > 255) { right_total = 255; } ch->master_vol = 127; ch->leftvol = left_total; ch->rightvol = right_total; ch->thesfx = loop->sfx; ch->doppler = loop->doppler; ch->dopplerScale = loop->dopplerScale; ch->oldDopplerScale = loop->oldDopplerScale; numLoopChannels++; if (numLoopChannels == MAX_CHANNELS) { return; } }}
开发者ID:he110world,项目名称:quake3-ios,代码行数:80,
示例18: S_LoadSound/*==============S_LoadSoundThe filename may be different than sfx->name in the caseof a forced fallback of a player specific sound==============*/qboolean S_LoadSound( sfx_t *sfx ){ byte *data; short *samples; snd_info_t info; int size_per_sec; // load it in data = S_CodecLoad(sfx->soundName, &info); if(!data) return qfalse; size_per_sec = info.rate * info.channels * info.width; if( size_per_sec > 0 ) sfx->duration = (int)(1000.0f * ((double)info.size / size_per_sec)); if ( info.width == 1 ) { Com_DPrintf(S_COLOR_YELLOW "WARNING: %s is a 8 bit audio file/n", sfx->soundName); } if ( info.rate != 22050 && info.rate != 44100 ) { Com_DPrintf(S_COLOR_YELLOW "WARNING: %s is not a 22kHz or 44.1kHz audio file/n", sfx->soundName); } samples = Hunk_AllocateTempMemory(info.channels * info.samples * sizeof(short) * 2); sfx->lastTimeUsed = Com_Milliseconds()+1; // each of these compression schemes works just fine // but the 16bit quality is much nicer and with a local // install assured we can rely upon the sound memory // manager to do the right thing for us and page // sound in as needed if( info.channels == 1 && sfx->soundCompressed == qtrue) { sfx->soundCompressionMethod = 1; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.channels, info.rate, info.width, info.samples, data + info.dataofs ); S_AdpcmEncodeSound(sfx, samples);#if 0 } else if (info.channels == 1 && info.samples>(SND_CHUNK_SIZE*16) && info.width >1) { sfx->soundCompressionMethod = 3; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.channels, info.rate, info.width, info.samples, (data + info.dataofs) ); encodeMuLaw( sfx, samples); } else if (info.channels == 1 && info.samples>(SND_CHUNK_SIZE*6400) && info.width >1) { sfx->soundCompressionMethod = 2; sfx->soundData = NULL; sfx->soundLength = ResampleSfxRaw( samples, info.channels, info.rate, info.width, info.samples, (data + info.dataofs) ); encodeWavelet( sfx, samples);#endif } else { sfx->soundCompressionMethod = 0; sfx->soundData = NULL; sfx->soundLength = ResampleSfx( sfx, info.channels, info.rate, info.width, info.samples, data + info.dataofs, qfalse ); } sfx->soundChannels = info.channels; Hunk_FreeTempMemory(samples); Hunk_FreeTempMemory(data); return qtrue;}
开发者ID:DaneTheory,项目名称:spearmint,代码行数:72,
示例19: S_Base_StartSound/*====================S_StartSoundValidates the parms and ques the sound upif pos is NULL, the sound will be dynamically sourced from the entityEntchannel 0 will never override a playing sound====================*/void S_Base_StartSound(vec3_t origin, int entityNum, int entchannel, sfxHandle_t sfxHandle ) { channel_t *ch; sfx_t *sfx; int i, oldest, chosen, time; int inplay, allowed; if ( !s_soundStarted || s_soundMuted ) { return; } if ( !origin && ( entityNum < 0 || entityNum > MAX_GENTITIES ) ) { Com_Error( ERR_DROP, "S_StartSound: bad entitynum %i", entityNum ); } if ( sfxHandle < 0 || sfxHandle >= s_numSfx ) { Com_Printf( S_COLOR_YELLOW "S_StartSound: handle %i out of range/n", sfxHandle ); return; } sfx = &s_knownSfx[ sfxHandle ]; if (sfx->inMemory == qfalse) { S_memoryLoad(sfx); } if ( s_show->integer == 1 ) { Com_Printf( "%i : %s/n", s_paintedtime, sfx->soundName ); } time = Com_Milliseconds();// Com_Printf("playing %s/n", sfx->soundName); // pick a channel to play on allowed = 16; if (entityNum == listener_number) { allowed = 32; } ch = s_channels; inplay = 0; for ( i = 0; i < MAX_CHANNELS ; i++, ch++ ) { if (ch[i].entnum == entityNum && ch[i].thesfx == sfx) { if (time - ch[i].allocTime < 30) {// if (Cvar_VariableValue( "cg_showmiss" )) {// Com_Printf("double sound start/n");// } return; } inplay++; } } if (inplay > allowed) { return; } sfx->lastTimeUsed = time; ch = S_ChannelMalloc(); // entityNum, entchannel); if (!ch) { ch = s_channels; oldest = sfx->lastTimeUsed; chosen = -1; for ( i = 0 ; i < MAX_CHANNELS ; i++, ch++ ) { if (ch->entnum != listener_number && ch->entnum == entityNum && ch->allocTime<oldest && ch->entchannel != CHAN_ANNOUNCER) { oldest = ch->allocTime; chosen = i; } } if (chosen == -1) { ch = s_channels; for ( i = 0 ; i < MAX_CHANNELS ; i++, ch++ ) { if (ch->entnum != listener_number && ch->allocTime<oldest && ch->entchannel != CHAN_ANNOUNCER) { oldest = ch->allocTime; chosen = i; } } if (chosen == -1) { if (ch->entnum == listener_number) { for ( i = 0 ; i < MAX_CHANNELS ; i++, ch++ ) { if (ch->allocTime<oldest) { oldest = ch->allocTime; chosen = i; } } }//.........这里部分代码省略.........
开发者ID:CoolOppo,项目名称:ioq3-for-UrbanTerror-4,代码行数:101,
注:本文中的Com_Milliseconds函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ Com_Print函数代码示例 C++ Com_Memset函数代码示例 |