1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Ошибка компиляции, после снятия комментирования

Тема в разделе 'Кодинг/Собственные решения', создана пользователем festival, 7 янв 2011.

  1. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Рылся у себя в коде и обнаружил закомментированый код:
    game_base.cpp ~788
    Код:
    /*	if( !m_GameLoading && !m_GameLoaded && GetTicks( ) - m_LastDownloadTicks > 100 )
    	{
    		uint32_t Downloaders = 0;
    
    		for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    		{
    			if( (*i)->GetDownloadStarted( ) && !(*i)->GetDownloadFinished( ) )
    			{
    				Downloaders++;
    
    				if( m_GHost->m_MaxDownloaders > 0 && Downloaders > m_GHost->m_MaxDownloaders )
    					break;
    
    				// send up to 100 pieces of the map at once so that the download goes faster
    				// if we wait for each MAPPART packet to be acknowledged by the client it'll take a long time to download
    				// this is because we would have to wait the round trip time (the ping time) between sending every 1442 bytes of map data
    				// doing it this way allows us to send at least 140 KB in each round trip interval which is much more reasonable
    				// the theoretical throughput is [140 KB * 1000 / ping] in KB/sec so someone with 100 ping (round trip ping, not LC ping) could download at 1400 KB/sec
    				// note: this creates a queue of map data which clogs up the connection when the client is on a slower connection (e.g. dialup)
    				// in this case any changes to the lobby are delayed by the amount of time it takes to send the queued data (i.e. 140 KB, which could be 30 seconds or more)
    				// for example, players joining and leaving, slot changes, chat messages would all appear to happen much later for the low bandwidth player
    				// note: the throughput is also limited by the number of times this code is executed each second
    				// e.g. if we send the maximum amount (140 KB) 10 times per second the theoretical throughput is 1400 KB/sec
    				// therefore the maximum throughput is 1400 KB/sec regardless of ping and this value slowly diminishes as the player's ping increases
    				// in addition to this, the throughput is limited by the configuration value bot_maxdownloadspeed
    				// in summary: the actual throughput is MIN( 140 * 1000 / ping, 1400, bot_maxdownloadspeed ) in KB/sec assuming only one player is downloading the map
    
    				uint32_t MapSize = UTIL_ByteArrayToUInt32( m_Map->GetMapSize( ), false );
    
    				while( (*i)->GetLastMapPartSent( ) < (*i)->GetLastMapPartAcked( ) + 1442 * 100 && (*i)->GetLastMapPartSent( ) < MapSize )
    				{
    					if( (*i)->GetLastMapPartSent( ) == 0 )
    					{
    						// overwrite the "started download ticks" since this is the first time we've sent any map data to the player
    						// prior to this we've only determined if the player needs to download the map but it's possible we could have delayed sending any data due to download limits
    
    						(*i)->SetStartedDownloadingTicks( GetTicks( ) );
    					}
    
    					// limit the download speed if we're sending too much data
    					// the download counter is the # of map bytes downloaded in the last second (it's reset once per second)
    
    					if( m_GHost->m_MaxDownloadSpeed > 0 && m_DownloadCounter > m_GHost->m_MaxDownloadSpeed * 1024 )
    						break;
    
    					Send( *i, m_Protocol->SEND_W3GS_MAPPART( GetHostPID( ), (*i)->GetPID( ), (*i)->GetLastMapPartSent( ), m_Map->GetMapData( ) ) );
    					(*i)->SetLastMapPartSent( (*i)->GetLastMapPartSent( ) + 1442 );
    					m_DownloadCounter += 1442;
    				}
    			}
    		}
    
    		m_LastDownloadTicks = GetTicks( );
    	}
    */
    Теперь я понял почему у меня игнорировались эти опции в конфиге, я взял снял комментирование но при компиляции получил ошибку:
    Код:
    game_base.cpp
    .\game_base.cpp(788) : error C2039: m_MaxDownloaders: не является членом "CGHost"
    ghost.h(66): см. объявление 'CGHost'
    .\game_base.cpp(788) : error C2039: m_MaxDownloaders: не является членом "CGHost"
    ghost.h(66): см. объявление 'CGHost'
    .\game_base.cpp(820) : error C2039: m_MaxDownloadSpeed: не является членом "CGHost"
    ghost.h(66): см. объявление 'CGHost'
    .\game_base.cpp(820) : error C2039: m_MaxDownloadSpeed: не является членом "CGHost"
    ghost.h(66): см. объявление 'CGHost
    Пробовал исправить сам, но когда создавал игру бот вылетал с ерром. Подскажите, как поправить это дело?
  2. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    какая версия гхоста? у меня на 1.7.266 ghost one все раскоментиррованно..
  3. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Одинаковые у нас версии, я качал отсюда http://www.codelain.com/forum/index.php?topic=11643.0
    Дай ссылку пожалуйста откуда ты тянул, потому что у меня много чего не работает...
  4. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    хз откуда качал, качал давно мб отсюда но тему апнули