Как сделать чтоб когда игрок заходит в созданую БОТом игру, БОТ писал с какого сервака игрок зашел?а-ля игрок Ххххх зашел с сервера rubattle
Файл game_base.cpp ищи Код: // send info about every other player to the new player if( m_GHost->m_HideIPAddresses ) Player->Send( m_Protocol->SEND_W3GS_PLAYERINFO( (*i)->GetPID( ), (*i)->GetName( ), BlankIP, BlankIP ) ); else Player->Send( m_Protocol->SEND_W3GS_PLAYERINFO( (*i)->GetPID( ), pristavkaA + (*i)->GetName( ), (*i)->GetExternalIP( ), (*i)->GetInternalIP( ) ) ); } } ниже добавляй Код: // join message from diff realms string ServName = ""; if( HostCounterID != 0 ) { for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ ) { if( (*i)->GetHostCounterID( ) == HostCounterID ) ServName = (*i)->GetServerAlias(); ///// тут берет название сервера, а не сам его адрес, если тебе же нужен точно адрес то пиши GetServer(); } } else ServName = "Garena"; SendAllChat(Player->GetName() + " зашел с [" +ServName + "]"); После чего нужно скомпилировать бота, если неумеешь, то тебе сюда
1. Подскажите пожалуйста как убрать две строки (отмечены на рис.) 2. И второй вопрос: если семь серверов, то этот фрагмент дублировать и везде вписывать имя сервера? string ServName = ""; if( HostCounterID != 0 ) { for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ ) { if( (*i)->GetHostCounterID( ) == HostCounterID ) ServName = (*i)->GetServerAlias(Rubattle к примеру); } } else ServName = "LAN\\Garena"; SendAllChat( "Игрок " + joinPlayer->GetName( ) + " зашел с сервера [" + ( JoinedRealm == string( ) ? "LAN" : JoinedRealm ) + "]" ); SendAllChat( joinPlayer->GetName( ) + " - [" + Player->GetCountry() + "]" ); ////эту строку убирал, но все равно выдает сообщение как на рисунке.
Удали строчки, что мы еще можем сказать? За тебя удаленно всю работу сделать? поправить исходник, запустить компиляцию и дать тебе леденец за то что не мешал?
я уже и в language.cpp удалял строки и в game_base.cpp удалял строчки. Я разве не по русски написал что удалял?
Проблемку решил Надо было две строки удалить и этих двух строк на рисунке не будет. SendAllChat( "Игрок " + joinPlayer->GetName( ) + " зашел с сервера [" + ( JoinedRealm == string( ) ? "LAN" : JoinedRealm ) + "]" ); SendAllChat( joinPlayer->GetName( ) + " - [" + Player->GetCountry() + "]" );
game_base.cpp Код: void CBaseGame :: SendEndMessage( ) Найди такое и выше вставь Код: string ServName = "Unknown realm"; string Country = m_GHost->m_DBLocal->FromCheck( UTIL_ByteArrayToUInt32( player->GetExternalIP( ), true ) ); for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ ) { if( (*i)->GetServer() == player->GetJoinedRealm()) ServName = (*i)->GetServerAlias(); } Код: SendAllChat( player->GetName( ) + " → " + " → сервер [" + ServName + "]." ); SendAllChat( "Страна: " + Country ); }
ты забыл уточнить - поменять кодировочку в game_base.cpp после этих дел, чтобы кириллицу можно было видеть в игре