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

автобан

Тема в разделе 'Основные вопросы', создана пользователем denischegaev, 11 ноя 2010.

  1. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    внатуре автобан не работает, хотя он банит и заносит в базу ливера, а тот все равно в игру заходит....
  2. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    хз, у меня всё норм, но у меня стоит при ливе авто предупреждение, если игрок вышел больше чем за 3 мин до конца игры то ему авто предупреждение даётся, если он имеет 3 предупреждения то даётся автобан, забаненые таким образом у меня точно не могут заходить в игру.
    А вообще раньше был трабл, в прошлых версиях, щас хз, забаненых пускало если
    Код:
    lan_showrealslotcount = 1
    Если у тебя 1 то поставь 0 должно помоч.
  3. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
  4. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    зарж не гони беса,говорю это никак не повлияет.
    Там надо фиксить функцию авто бана
    она во первых портит стату(добовляя дублирующиеся баны)
    и во вторых не обновляет вектор банов
  5. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    zaplatka:

    Код:
    CDBBan *CBNET :: IsBannedName( string name )
    {
        transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower );
    
        for( vector<CDBBan *> :: iterator i = m_Bans.begin( ); i != m_Bans.end( ); i++ )
        {
            if( (*i)->GetName( ) == name )
                return *i;
        }
    
        return NULL;
    }
  6. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    не фиксит хД^^
  7. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Код:
    CDBBan *CBNET :: IsBannedName( string name )
    {
    	transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower );
    
    	uint32_t x, y;
    	vector<uint32_t> idx;
    	idx = m_BanlistIndexes;
    
    	unsigned char letter, letter2;
    	letter = name[0];
    
    	if (idx.size()>letter)
    	{
    		x = idx[letter];
    		y = m_Bans.size()-1;
    		letter2=letter+1;
    		if (idx.size()>letter2)
    		do 
    		{
    			y = idx[letter2];
    			letter2++;
    		} while (letter2<idx.size() && y==999999);
    
    		if (y==999999)
    			y = m_Bans.size()-1;
    
    		if (x!=999999)
    		{
    				CONSOLE_Print("[GHOST] Searching bans from "+ m_Bans[x]->GetName()+ " through "+m_Bans[y]->GetName());
    //				for( vector<CDBBan *> :: iterator i = m_Bans.begin()+x; i != m_Bans.begin()+y; i++ )
    			for(uint32_t i=x; i<=y; i++)
    			{	
    				if (m_Bans[i]->GetName() == name)
    					return m_Bans[i];
    
    			}
    		}
    	} 
    
    /*
    	for( vector<CDBBan *> :: iterator i = m_Bans.begin( ); i != m_Bans.end( ); i++ )
    	{
    		if( (*i)->GetName( ) == name )
    			return *i;
    	}
    */
    
    	return NULL;
    }
    
  8. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    ты чёт изменял или кинул оригенальный код?
  9. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Оригинал 256 ревизии (большенство на ней сидит)
    Код:
    CDBBan *CBNET :: IsBannedName( string name )
    {
    	transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower );
    
    	for( vector<CDBBan *> :: iterator i = m_Bans.begin( ); i != m_Bans.end( ); i++ )
    	{
    		if( (*i)->GetName( ) == name )
    			return *i;
    	}
    
    	return NULL;
    }
  10. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    и после этого будет работать?
  11. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
  12. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Должен
  13. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    :lol: :lol: :lol: :lol: :lol:

    Заменить:
    bnet.cpp

    Код:
    CDBBan *CBNET :: IsBannedName( string name )
    {
       transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower );
    
       uint32_t x, y;
       vector<uint32_t> idx;
       idx = m_BanlistIndexes;
    
       unsigned char letter, letter2;
       letter = name[0];
    
       if (idx.size()>letter)
       {
          x = idx[letter];
          y = m_Bans.size()-1;
          letter2=letter+1;
          if (idx.size()>letter2)
          do 
          {
             y = idx[letter2];
             letter2++;
          } while (letter2<idx.size() && y==999999);
    
          if (y==999999)
             y = m_Bans.size()-1;
    
          if (x!=999999)
          {
                CONSOLE_Print("[GHOST] Searching bans from "+ m_Bans[x]->GetName()+ " through "+m_Bans[y]->GetName());
    //            for( vector<CDBBan *> :: iterator i = m_Bans.begin()+x; i != m_Bans.begin()+y; i++ )
             for(uint32_t i=x; i<=y; i++)
             {   
                if (m_Bans[i]->GetName() == name)
                   return m_Bans[i];
    
             }
          }
       } 
    
    /*
       for( vector<CDBBan *> :: iterator i = m_Bans.begin( ); i != m_Bans.end( ); i++ )
       {
          if( (*i)->GetName( ) == name )
             return *i;
       }
    */
    
       return NULL;
    }
    На

    Код:
    CDBBan *CBNET :: IsBannedName( string name )
    {
        transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower );
    
        for( vector<CDBBan *> :: iterator i = m_Bans.begin( ); i != m_Bans.end( ); i++ )
        {
            if( (*i)->GetName( ) == name )
                return *i;
        }
    
        return NULL;
    }
  14. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    оба фикса не фиксят автобан не слушай этих кранов^^
  15. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Кто сказал что они фиксят? Причем от куда тут два фиксА??? Тут он один - и это заплатка. Сделай ты раз умничаешь.
  16. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
  17. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    game.cpp строка~109
    Код:
    for( vector<CDBGamePlayer *> :: iterator i = m_DBGamePlayers.begin( ); i != m_DBGamePlayers.end( ); i++ ) {
    		if (IsAutoBanned((*i)->GetName())) 
    		{ 
    			timehasleft = (*i)->GetLeavingTime();
    			if (endtime>timehasleft+m_GHost->m_AutoBanGameEndMins*60) 
    			{ 
    				string Reason = CustomReason( timehasleft, string(), (*i)->GetName() );
    				Reason = "Autobanned"+Reason;
    				CONSOLE_Print( "[AUTOBAN: " + m_GameName + "] Autobanning " + (*i)->GetName( ) + " (" + Reason +")" );
    
    
    				m_GHost->m_Callables.push_back( m_GHost->m_DB->ThreadedBanAdd( (*i)->GetSpoofedRealm(), (*i)->GetName( ), (*i)->GetIP(), m_GameName, "AUTOBAN", Reason, 0, 0 ));
    			}
    		}
    	}
    заменить на: (этот фикс поидее должен НЕ СОЗДАВАТЬ дублирующиеся баны, и обновлять вектор)
    Код:
    	for( vector<CDBGamePlayer *> :: iterator i = m_DBGamePlayers.begin( ); i != m_DBGamePlayers.end( ); i++ ) {
    		if (IsAutoBanned((*i)->GetName())) 
    		{ 
    			timehasleft = (*i)->GetLeavingTime();
    			if (endtime>timehasleft+m_GHost->m_AutoBanGameEndMins*60) 
    			{ 
    				string Reason = CustomReason( timehasleft, string(), (*i)->GetName() );
    				for( vector<CBNET *> :: iterator j = m_GHost->m_BNETs.begin( ); j != m_GHost->m_BNETs.end( ); j++ )
    				{
    					if( (*j)->GetServer( ) == (*i)->GetSpoofedRealm() )
    					if (!(*j)->IsBannedName((*i)->GetName()))
    					{
    						(*j)->AddBan( (*i)->GetName( ), (*i)->GetIP(), m_GameName, "AUTOBAN", Reason, "0" );
    						Reason = "Autobanned"+Reason;
    						CONSOLE_Print( "[AUTOBAN: " + m_GameName + "] Autobanning " + (*i)->GetName( ) + " (" + Reason +")" );
    						m_GHost->m_Callables.push_back( m_GHost->m_DB->ThreadedBanAdd( (*i)->GetSpoofedRealm(), (*i)->GetName( ), (*i)->GetIP(), m_GameName, "AUTOBAN", Reason, 0, 0 ));
    						break;
    					}
    				}				
    			}
    		}
    	}
    не проверил так как бот занят


    зарж у тя же автоварн был вроде?
  18. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    он у меня и есть) то вообще просто чистые исходники
  19. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    так на чистых не пашетжеш?
    точнее он какбЭ пашет но не пускает ливаков, ток через 5 мин...
  20. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    новый 257 ревиз уана вышел, там это фикс.
    Добавлено немало нового в отличаи от 256 рев