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

Solved !server

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

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

    Сообщения:
    314
    Спасибы:
    33
    Сборка бота GHost:
    Ghost One 1.7.266
    почему у меня у всех н/а пишется? :bIbIbIblya:
    [IMG]
  2. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    проблема :opasnoste: :ohpalevo:
  3. barraka Ньюфаг

    Сообщения:
    14
    Спасибы:
    0
    Если я правильно понял вопрос. Оно уже есть, в текущем варианте, команда выполняется только либо для админов, либо для пользователей, т.е. если админ напишет команду выполниться только код для админов, если пользователей - только пользователей.

    Код:
    ServerUser += (*i)->GetSpoofedRealm( ).empty( ) ? "N/A" : (*i)->GetSpoofedRealm( );
    Соответственно, GetSpoofedRealm( ).empty( ) возвращает истину, значит либо игрок ещё не проверен, либо он с гарены или локалки. Насчёт гарены, не нашел код устанавливающий m_SpoofedRealm для неё, вполне возможно что игрок именно отуда.


    Соблюдаю структуру исходного кода, GHost One, по уму конечно надо вместе сделать, тогда будет и эффективнее, и логичней, и код читабельнее. Но переписывать остальное крайне не охото)
  4. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    плохо только что не Alies сервака показует
  5. Aloha_Hawaii Старожила

    Сообщения:
    314
    Спасибы:
    33
    Сборка бота GHost:
    Ghost One 1.7.266
    ну как минимум я зашел с айкапа, к тому же пробовал писать уже после старта игры и все равно н/а у всех. в чем может быть проблема?
  6. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    спуфчек есть то?_)
  7. barraka Ньюфаг

    Сообщения:
    14
    Спасибы:
    0
    UDP "Рабочий" код, т.к. проверил только от админов. Изменен способ определения сервера и имени сервера, имя берется из bnet#_serveralias в настройках конфигурации (ghost.cfg или подобное), если bnet#_serveralias отсутствует, то имя сервера берется из bnet#_server, где # — номер подключаемого сервера.

    Для админов.
    Код:
    //
    // !SERVER
    //
    
    if( Command == "server" )
    {
    	string servermsg;
    	string serveralias;
    
    	if( !Payload.empty( ) )
    	{
    		CGamePlayer *LastMatch = NULL;
    
    		uint32_t Matches = GetPlayerFromNamePartial( Payload , &LastMatch );
    		if (Matches == 1)
    		{
    			servermsg = LastMatch->GetName( );
    			servermsg += ": ";
    			serveralias = LastMatch->GetJoinedRealm( ).empty( ) ? "N/A" : LastMatch->GetJoinedRealm( );
    
    			if ( serveralias != "N/A" )
    			{
    				for( vector<CBNET *> :: iterator j = m_GHost->m_BNETs.begin( ); j != m_GHost->m_BNETs.end( ); j++ )
    				{
    					if( (*j)->GetServer( ) == serveralias )
    					{
    						serveralias = (*j)->GetServerAlias( );
    						break;
    					}
    				}						
    			}
    
    			servermsg += serveralias;
    		}
    		else
    		{
    			servermsg = "Error. Player not found.";
    		}
    	}
    	else
    	{
    		for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    		{
    			if ( i == m_Players.begin( ) )
    				servermsg = (*i)->GetName( );
    			else
    				servermsg += (*i)->GetName( );
    
    			servermsg += ": ";
    			serveralias = (*i)->GetJoinedRealm( ).empty( ) ? "N/A" : (*i)->GetJoinedRealm( );
    
    			if ( serveralias != "N/A" )
    			{
    				for( vector<CBNET *> :: iterator j = m_GHost->m_BNETs.begin( ); j != m_GHost->m_BNETs.end( ); j++ )
    				{
    					if( (*j)->GetServer( ) == serveralias )
    					{
    						serveralias = (*j)->GetServerAlias( );
    						break;
    					}
    				}						
    			}
    
    			servermsg += serveralias;
    
    			if( i != m_Players.end( ) - 1 )
    				servermsg += ", ";
    		}
    
    	}
    
    	SendAllChat( servermsg );
    
    	return HideCommand;
    }
    Для пользователей.
    Код:
    //
    // !SERVER
    //
    
    if( Command == "server" )
    {
    	string servermsg;
    	string serveralias;
    
    	if( !Payload.empty( ) )
    	{
    		CGamePlayer *LastMatch = NULL;
    
    		uint32_t Matches = GetPlayerFromNamePartial( Payload , &LastMatch );
    		if (Matches == 1)
    		{
    			servermsg = LastMatch->GetName( );
    			servermsg += ": ";
    			serveralias = LastMatch->GetJoinedRealm( ).empty( ) ? "N/A" : LastMatch->GetJoinedRealm( );
    
    			if ( serveralias != "N/A" )
    			{
    				for( vector<CBNET *> :: iterator j = m_GHost->m_BNETs.begin( ); j != m_GHost->m_BNETs.end( ); j++ )
    				{
    					if( (*j)->GetServer( ) == serveralias )
    					{
    						serveralias = (*j)->GetServerAlias( );
    						break;
    					}
    				}						
    			}
    
    			servermsg += serveralias;
    		}
    		else
    		{
    			servermsg = "Error. Player not found.";
    		}
    		
    		SendAllChat( servermsg );
    	}
    	else
    		SendChat( player,  player->GetJoinedRealm( ).empty( ) ? "N/A" : player->GetJoinedRealm( ) );
    }
  8. Fruttty Ньюфаг

    Сообщения:
    14
    Спасибы:
    0
    спасибо большое всё работает)
  9. microRUS Ньюфаг

    Сообщения:
    41
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Можете прикрепить готовый файл или с какого нибудь сайта скачать :prayy: :prayy: :prayy: :prayy:
    а то пытался писал все бесполезно ничего не получилось :facepalm:

    у меня ghost one 1.7.266
  10. Aloha_Hawaii Старожила

    Сообщения:
    314
    Спасибы:
    33
    Сборка бота GHost:
    Ghost One 1.7.266
    вопрос к тем кто юзает. у вас бывало, что если после окончания игры вводишь на канале !p и бот иногда зависает?
    без этой команду все ок работает
  11. microRUS Ньюфаг

    Сообщения:
    41
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Да есть легкий тормоз, но не бота, а моего компа когда он уходит
  12. Fruttty Ньюфаг

    Сообщения:
    14
    Спасибы:
    0
    Не пашет с гареной (
    Игрок зашёл с сервера Garena (LAN) - всё работает
    как пишу !server всё пашет на других, а те кто с гарены пишет N / A
    bnet_serveralias = battle.net
    bnet2_serveralias = rubattle.net

    что же делать )) :opasnoste:
    bnet#_serveralias = :bIbIbIblya:
    для гарены как?
  13. Krabsss Наш человек

    Сообщения:
    50
    Спасибы:
    4
    у меня тоже не показывает гарену
  14. MaDNeSS Ньюфаг

    Сообщения:
    31
    Спасибы:
    0
    куда это добавить?перекомпилировать тоже потом надо?
  15. barraka Ньюфаг

    Сообщения:
    14
    Спасибы:
    0
    Для админов, game.cpp, стр. ~5497
    Для пользователей, game.cpp, стр. ~5981
    Строки приблизительные, главное чтобы стояли по аналогии с другими командами. Всё это дело должно быть скомпилировано.

    По поводу гарены, сам ей не пользуюсь, так что не могу сказать точно, но, если уж очень приперло, в этой строчке
    Код:
    serveralias = LastMatch->GetJoinedRealm( ).empty( ) ? "N/A" : LastMatch->GetJoinedRealm( );
    замените "N/A" на "Garena/Local Network" или просто "Garena", да и, вообще, можно что угодно, типа "С новым годом!" (должно быть закодировано)

    P.S. Практически бесполезная команда.
  16. silenser Давний приятель

    Сообщения:
    240
    Спасибы:
    3
    Сборка бота GHost:
    Ghost one be sisiee
    Дата начала использования бота:
    01.01.2012
    всё летает*