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

OpenSource Waaagh!tv hostbot libiray

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Kirill-782, 6 янв 2018.

  1. Kirill-782 Гуру

    Сообщения:
    109
    Спасибы:
    5
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    00.00.0000
    Данный код встраивает рекордер WTV в бота. Поддерживается задержка стрима.

    Для работоспособности требуется слот под фейкплеера (бот сам сделает слот за обсервера, откроет или выкинет компьютера с него)

    Есть 2 известные проблемы:
    -В прямом эфире у игроков иногда бывают на некоторых картах другие цвета.
    -Некоторые карты не поддерживают наблюдателей, даже если там не 12 слотов используется.

    Не совместим с дополнениям, которые отправляют от FakePlayer какие-либо Action пакеты (например продвинутый HCL о котором писал ранее)


    Ну что, погнали

    Качаем из комита файлы wtv.cpp и wtv.h и добавляем их в проект (приаттачил, если вруг поменяю в репозитории)

    ghost.cpp

    Добавляем к includes

    #include "wtv.h"

    В конструктор ( CGHost :: CGHost( CConfig *CFG ) )
    Добавляем
    m_WTV = NULL;

    Ищем
    Код:
        m_AdminGamePassword = CFG->GetString( "admingame_password", string( ) );
        m_AdminGameMap = CFG->GetString( "admingame_map", string( ) );
        m_LANWar3Version = CFG->GetInt( "lan_war3version", 24 );
        m_ReplayWar3Version = CFG->GetInt( "replay_war3version", 24 );
        m_ReplayBuildNumber = CFG->GetInt( "replay_buildnumber", 6059 );
    Добавляем
    Код:
        m_WTVServer = CFG->GetString( "wtv_server", "vkapps.ru" );
        m_WTVPort = CFG->GetInt( "wtv_port", 10384 );
        m_WTVLogin = CFG->GetString( "wtv_login", "testuser" );
        m_WTVPassword = CFG->GetString( "wtv_password", "testpass" );
        m_WTVActionMask = CFG->GetInt( "wtv_actionmask", 0 );
    Ищем
    SetConfigs( CFG );
    Вставляем

    Код:
        if ( ( m_WTVActionMask & 1 ) == 1 )
        {
            m_WTV = new CWTV( this, m_WTVServer, m_WTVPort, m_WTVLogin, m_WTVPassword, m_WTVActionMask );
        }
    Перед
    Код:
        // before we call select we need to determine how long to block for
        // previously we just blocked for a maximum of the passed usecBlock microseconds
        // however, in an effort to make game updates happen closer to the desired latency setting we now use a dynamic block interval
        // note: we still use the passed usecBlock as a hard maximum
    Вставляем
    Код:
        if ( m_WTV != NULL )
        {
            NumFDs += m_WTV->SetFD( &fd, &send_fd, &nfds );
        }
    После
    Код:
        // update battle.net connections
     
        for( vector<CBNET *> :: iterator i = m_BNETs.begin( ); i != m_BNETs.end( ); i++ )
        {
            if( (*i)->Update( &fd, &send_fd ) )
                BNETExit = true;
        }
    Вставляем
    Код:
        if ( m_WTV != NULL )
        {
            m_WTV->Update( &fd, &send_fd );
        }
    Ищем
    Код:
        m_SyncLimit = CFG->GetInt( "bot_synclimit", 50 );
          m_VoteKickAllowed = CFG->GetInt( "bot_votekickallowed", 1 ) == 0 ? false : true;
          m_VoteKickPercentage = CFG->GetInt( "bot_votekickpercentage", 100 );
    Вставляем
    Код:
        m_SyncLimit = CFG->GetInt( "bot_synclimit", 50 );
          m_VoteKickAllowed = CFG->GetInt( "bot_votekickallowed", 1 ) == 0 ? false : true;
          m_VoteKickPercentage = CFG->GetInt( "bot_votekickpercentage", 100 );
    В Makefile (если вдруг на линуксе надумаете бота пускать)
    В конец вставляем
    wtv.o: ghost.h util.h wtv.h socket.h map.h config.h gameprotocol.h game_base.h game.h gameplayer.h gameslot.h

    В OBJS дописываем wtv.o

    В ghost.o: добавляем wtv.h

    Дальше мне дико лень писать поэтому дам ссыль на комит (https://github.com/kirill-782/ghostwtvlib/commit/7eff783f5e809fcb2b5af9500b43835c320c3d0e)

    В конфиг вставляем
    wtv_server = vkapps.ru
    wtv_port = 10384
    wtv_actionmask = 7 (складывается из суммы 1 - включить WTV, 2 - разрешить менять команду у слота и выкидывать из него компьютера 4 - разрешить менять конфиг карты, добавляя судей и обсов)
    wtv_login = testuser
    wtv_password = testpass
    wtv_delay = 30

    Использует фейкплеера, так что нужно поменять у него название.

    На днях сделаю вайп WTV сервера и буду выдавать каждому боту логины и пароли. Так же скину ссыль на клиент WTV (хотя можно сейчас качнуть с верархива)

    Вложения:

    • wtv.zip
      Размер файла:
      5,9 КБ
      Просмотров:
      7
    Suicider, [OJIEHb] и Max5 нравится это.
  2. Max5 Старожила

    Сообщения:
    356
    Спасибы:
    66
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    Прикольно, раньше я бы сразу кинулся тестить, а сейчас думаю мои игроки не оценят, их вообще мало чем можно заинтересовать, если это не халява. Ради интереса посмотрел бы чью нибудь игру.
  3. Kirill-782 Гуру

    Сообщения:
    109
    Спасибы:
    5
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    00.00.0000
    Да я тоже по фану писал либу. Можно ли как нибудь бота на 16 ubuntu скомпилить с последним GCC. Какие нужны бусты? И что надо менять в коде?
  4. Kirill-782 Гуру

    Сообщения:
    109
    Спасибы:
    5
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    00.00.0000
    Поставить бы сервер на какую нибудь мощную машину с кучей RAM
  5. Max5 Старожила

    Сообщения:
    356
    Спасибы:
    66
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    где такую машину найти то, на мое vds 1гиг, а весит на ней дофига и больше.

    я даже не уверен что знаю что такое GCC, компилирую командой make и фиг знает что за компилятор используется. У меня ubuntu 12.04, бусты ставил из репозитория.
  6. Kirill-782 Гуру

    Сообщения:
    109
    Спасибы:
    5
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    00.00.0000
    16 уже не компилит
  7. Max5 Старожила

    Сообщения:
    356
    Спасибы:
    66
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    а под виндой какие бусты и компилятор юзаешь?