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

Help Автобан скачавших ливеров в ++

Тема в разделе 'Кодинг/Собственные решения', создана пользователем ELITE, 2 фев 2015.

  1. ELITE Гуру

    Сообщения:
    252
    Спасибы:
    23
    Дата начала использования бота:
    00.00.2012
    помогите сделать автобан если игрок скачал карту и ливнул сроком на 1 час
  2. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    находишь
    Код:
    OpenSlot( GetSIDFromPID( player->GetPID( ) ), false );
    Код:
     
    и ниже вставляешь
    [CODE]
    uint32_t N = m_GHost->m_LobbyDLLeaverBanTime;
        if ( N !=0 ) {
            if ( N>120 || N<30 || N == NULL)
                N=30;
            string s = UTIL_ToString(N);
            string viet;
            if(!(IsSafe(player->GetName( )) || IsAdmin(player->GetName( )) || IsRootAdmin(player->GetName( )) || m_DownloadOnlyMode))
            if( player->GetDownloadFinished( ) && GetTime( ) - player->GetFinishedDownloadingTime( ) < N )
            {
                if ( m_GHost->m_VietTxt )
                    viet =  ". DL xong, trong " + s + "s ma out la bi BAN nick 2 ngay";
                SendAllChat(player->GetName( ) + " BANNED for dl & early leaving in lobby" );
                SendChat(player->GetPID(), ", left the lobby in "+s+" secs after downloaded gets banned for 2 days" + viet );
                string Reason = "Leaver in "+s+" secs after downloaded gets banned for 2 days";
                Reason = "Autobanned "+Reason;
                CONSOLE_Print( "[AUTOBAN2days: " + m_GameName + "] Autobanning " + player->GetName( ) + " (" + Reason +")" );
                    string sk = player->GetJoinedRealm( );
                    if (sk.size()<3)
                        sk = "LAN(Garena)";
                        else if ( sk.find("eurobattle") != string::npos )
                            sk = "EB";
                            else if ( sk.find("warcraft3.eu") != string::npos )
                                sk = "EU";
                                else if ( sk.find("uswest") != string::npos )
                                    sk = "Lordaeron (U.S. West)";
                                    else if ( sk.find("useast") != string::npos )
                                        sk = "Azeroth (U.S. East)";
                                        else if ( sk.find("asia.battle.net") != string::npos )
                                            sk = "Kalimdor (Asia)";
                                            else if ( sk.find("europe.battle.net") != string::npos )
                                                sk = "Northrend (Europe)";
                                                else if ( sk.find("battle.lp.ro") != string::npos )
                                                    sk = "BattleRo";
                                                    else if ( sk.find("ombu") != string::npos || sk.find(".203.231") != string::npos )
                                                        sk = "OMBU";
     
                    if (sk == "LAN(Garena)"){
                        for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); ++i )
                            (*i)-> AddBan(player->GetName( ),player->GetExternalIPString( ), GetCurrentTime( ), GetGameName(), "LANautobanBot", "Download map & left so early", "2");
                        m_GHost->m_Callables.push_back(m_GHost->m_DB->ThreadedBanAdd(" ", player->GetName( ), player->GetExternalIPString( ), "in LAN lobby", "LANautobanBot","Download map & left so early",2,0));
                    }
                    else m_GHost->m_Callables.push_back( m_GHost->m_DB->ThreadedBanAdd( player->GetSpoofedRealm(), player->GetName( ), player->GetExternalIPString(), "lobby in " + sk, "Bnet-autobanBot", "DL & left so early", 2, 0 ));
     
                    // m_GHost->m_Callables.push_back( m_GHost->m_DB->ThreadedBanAdd( player->GetSpoofedRealm(), player->GetName( ), player->GetExternalIPString(), "in lobby", "AUTOBAN", "DL & left so early", 2, 0 ));
            }
        }