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

Safe List

Тема в разделе 'Основные вопросы', создана пользователем ____ROB____, 14 мар 2011.

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

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    может ли быть ето из-за того что я добавил NAME1 NAME2 (которыя являются рутадминами) в админы (через !addadmin) ?
  2. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    не в этом дело. Там ясно видно, что сначала назначают права админам, овнерам и только потом в конце рутам и им дают полный доступ! AdminAccess = CMDAccessAll(); Тут об этом и речи быть не может. Выложи начало bool CGame :: EventPlayerBotCommand( CGamePlayer *player, string command, string payload ) до строчки if( AdminCheck || RootAdminCheck )(после нее начинаются перечисляться команды)
    Мб косяк был со спуф чеком, мб что то еще. Попробуй зайти простым админом, пабни игру и посмотри будет ли доступ к командам и прочее
    + кинь лог бота когда ты давал команды от NAME1
  3. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    У меня есть предположение))
    тупое правда, но я так 1 раз запорол) тупо неусмотрел)
    Кароче по сути:
    Ты сказал что от NAME1 команды неслушалсо, а от NAME2 все норм.
    Если ты внес их сюда
    Код:
    # the root admin on this battle.net server only
    bnet_rootadmin = NAME1 NAME2
    то рутом считать будет только последнего. Так, как это рут только для конкретного сервера и он может быть только один. И кстате я тоже добавлял его в простых админов, но бот его все ровно неслушал!(я про NAME1)
    А если засунуть сюда
    Код:
    # bot's additional rootadmins separated by space ex: userone usertwo userthree
    bot_rootadmins = NAME1 NAME2
    то рута будет 2-е
    Это конешно не то что ты xотел увидить как ответ, но ты тоже возможно просто просмотрел :bIbIbIblya:
  4. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    нет.

    Завтра MuP'y отпишусь.
  5. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    Добавил Name1 в администраторы бота (addadmin), создал игру (игра создалась), зашол в игру, ввожу команыды !ping !open тд - не реагирует.

    вот логи:
    Код:
    [Mon May 16 18:04:18 2011] [QUE: ALKAR] Создание публичной игры "test2134234". Владелец - "___ROB___"
    [Mon May 16 18:04:37 2011] [GAME: test2134234] player [___ROB___] [77.87.38.192] joined the game
    [Mon May 16 18:04:42 2011] [GAME: test2134234] [Lobby] [___ROB___]: !pub 234
    [Mon May 16 18:04:42 2011] [GAME: test2134234] non-admin [___ROB___] sent command [pub] with payload [234]
    [Mon May 16 18:04:46 2011] [GAME: test2134234] [Lobby] [___ROB___]: !swap 2 1
    [Mon May 16 18:04:46 2011] [GAME: test2134234] non-admin [___ROB___] sent command [swap] with payload [2 1]
    [Mon May 16 18:04:52 2011] [GAME: test2134234] [Lobby] [___ROB___]: !ping
    [Mon May 16 18:04:52 2011] [GAME: test2134234] non-admin [___ROB___] sent command [ping] with payload []
    [Mon May 16 18:04:56 2011] [GAME: test2134234] [Lobby] [___ROB___]: !swap 2 1
    [Mon May 16 18:04:56 2011] [GAME: test2134234] non-admin [___ROB___] sent command [swap] with payload [2 1]
    [Mon May 16 18:04:59 2011] [GAME: test2134234] [Lobby] [___ROB___]: !swap 2 4 
    [Mon May 16 18:04:59 2011] [GAME: test2134234] non-admin [___ROB___] sent command [swap] with payload [2 4 ]
    [Mon May 16 18:05:02 2011] [GAME: test2134234] [Lobby] [___ROB___]: !open 1
    [Mon May 16 18:05:02 2011] [GAME: test2134234] non-admin [___ROB___] sent command [open] with payload [1]
    [Mon May 16 18:05:04 2011] [GAME: test2134234] [Lobby] [___ROB___]: !unhost
    [Mon May 16 18:05:04 2011] [GAME: test2134234] non-admin [___ROB___] sent command [unhost] with payload []
    [Mon May 16 18:05:07 2011] [GAME: test2134234] deleting player [___ROB___]: Не выдержал, вышел...
    


    Код:
    bool CGame :: EventPlayerBotCommand( CGamePlayer *player, string command, string payload )
    {
    	bool HideCommand = CBaseGame :: EventPlayerBotCommand( player, command, payload );
    
    	// todotodo: don't be lazy
    
    	string User = player->GetName( );
    	string Command = command;
    	string Payload = payload;
    
    	uint32_t AdminAccess = 0;
    	bool AdminCheck = false;
    	bool BluePlayer = false;
    
    	CGamePlayer *p = NULL;
    	unsigned char Nrt;
    	unsigned char Nr = 255;
    	for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    	{
    		Nrt = GetSIDFromPID((*i)->GetPID());
    		if (Nrt<Nr)
    		{
    			Nr = Nrt;
    			p = (*i);
    		}
    	}
    
    	// this is blue player
    	if (p)
    		if (p->GetPID()==player->GetPID())
    			BluePlayer = true;
    
    	if (BluePlayer && m_GHost->m_BlueIsOwner)
    	{
    		AdminCheck = true;
    		AdminAccess = m_GHost->CMDAccessAddOwner(0);
    	}
    
    	if (IsOwner(User) && !IsAdmin(User))
       {
          AdminCheck = true;
          AdminAccess = m_GHost->CMDAccessAddOwner(0);
       }
    
    	for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ )
    	{
    		if(( (*i)->GetServer( ) == player->GetSpoofedRealm( ) && (*i)->IsAdmin( User )) )
    		{
    			AdminCheck = true;
    			AdminAccess = (*i)->LastAccess();
    	/*		if (IsOwner(User))
    				AdminAccess = m_GHost->CMDAccessAddOwner(AdminAccess);   */
    			break;
    		}
    	}
    
    // upgrade LAN players to admins in case bot_lanadmins = 1
    // upgrade local players to admins in case bot_localadmins = 1
    	if ((m_GHost->m_LanAdmins && player->IsLAN()) || (m_GHost->m_LocalAdmins && player->GetExternalIPString()=="127.0.0.1" ))
    	{
    		AdminCheck = true;
    		AdminAccess = m_GHost->CMDAccessAddOwner(AdminAccess);
    	}
    
    	bool RootAdminCheck = false;
    
    	// upgrade LAN players to rootadmins in case bot_lanrootadmins = 1
    	if ((m_GHost->m_LanRootAdmins && player->IsLAN()) )
    	{
    		RootAdminCheck = true;
    	}
    
    	for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ )
    	{
    		if( (*i)->GetServer( ) == player->GetSpoofedRealm( ) && (*i)->IsRootAdmin( User ) )
    		{
    			RootAdminCheck = true;
    			break;
    		}
    	}
    
    	if (RootAdminCheck)
    	{
    		BluePlayer = true;
    		AdminAccess = CMDAccessAll();
    	}
    
    	if( AdminCheck || RootAdminCheck )
    
    
  6. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Значит значения AdminCheck && Ro_Otadmincheck = false, что очень странно. Уже одно то, что юзер является овнером, делает переменную AdminChek = true( про рута я вообще молчу ). в game.cpp вроде все нормально, косяков не увидел. Я у себя компилил, все выходит нормально.
    Другие админы на боте при пабе также не могут отдавать команды боту? или только на себе тестировал?
  7. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    так же как и я, пробывал на двух других админах (!addadmin) :spy:
  8. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Если откатить эти 2 изменения,
    Код:
    if (IsOwner(User) && !IsAdmin(User))
    Код:
    /* if (IsOwner(User))
    AdminAccess = m_GHost->CMDAccessAddOwner(AdminAccess); */
    то бот принимает команды нормально?