Профили Multibots

Post Reply
Rabotorg
Regular Botter
Regular Botter
Posts: 16
Joined: Sat Jan 27, 2018 11:02 am

Профили Multibots

Post by Rabotorg » Sun Oct 28, 2018 1:14 pm

Есть где то на форуме инструкция как создавать профили для режима Multibots?
Или как адаптировать под данный режим профили соло?
Или может кто то может объяснить как адаптировать соло профиля под режим Multibots? Что нужно менять?

michaelprog
Contributor
Contributor
Posts: 623
Joined: Wed Aug 31, 2016 7:32 am

Re: Профили Multibots

Post by michaelprog » Sun Oct 28, 2018 2:21 pm

Тема не слишком простая и малоизученная.
Мои опыты с мультиботом я не могу признать успешными, тем не менее некоторый опыт есть.
Прежде всего нужно понимать, как работает мультибот.
Он использует клиент-серверную архитектуру:
  1. Настройка соединений бота-сервера с ботами-клиентами описана здесь.
  2. Далее профиль квестера загружается на боте-сервере.
  3. Каждая команда выбирается ботом-сервером и через сетевое подключение передается боту-клиенту.
    • Если у команды установлен флаг OnlyDoneByServer - команда не передается ботам-клиентам, а проигрывается только ботом-сервером;
    • Такой механизм порождает ряд проблем, связанных с тем, что бот-сервер не дожидается завершения выполнения команды ботами-клиентами. Как только команда выполнена ботом-сервером, выбирается следующая команда и отсылается ботам-клиентам.
      Например, в том случае, если команда отвечает на переход на новую локацию, то у ботов клиентов, не успевших её выполнить (перейти в нужную локацию), возникнут проблемы: следующую полученную команду они выполнить не смогут, так как они останутся в старой локации.
  4. Решение вышеописанных проблем состоит в использовании ActionPack с флагом ассинхронного режима (AsynchronousMode) и команды WaitForSync.
    Краткое описание опций команды ActionPack wrote:Группа команд MultiBots задает особенности взаимодействия бота-сервера с ботами-клиентами при выполнении команд, входящих в данный "ActionPack". Комментарии Разработчика по данным настройкам под спойлером.
    Spoiler: [+]
    Jarod46 wrote:A first test version of asynchronous mode is available, this mode allow to separate bots actions.
    This is a property for action packs, when "AsynchronousMode" is enabled, server should send the actionpack to assigned clients with "BotsAssignment" property. It can be all bots, including server, or just specific one/several.
    When an asynchronous actionpack is assigned to a bot, it should work independently (like checking conditions), until actionpack is completed.
    Probably some options are missing, suggestions are welcome, but for now I need feedback for current implementation.
    Have to know:
    -If you assign an actionpack in another actionpack already assigned, it will don't work, same thing if you put a synchronous actionpack in an asynchronous one, it will be just ignored, parent have priority.
    -obviously put clients actionspack before server actions, else client will don't receive any tasks until server finish its own.
    • AsynchronouseMode - флаг, при установке которого данный ActionPack ЦЕЛИКОМ передается на выполнение ботам-клиентам, заданным в свойстве BotAssignment.
      В противном случае обработку условий выполнения ActionPack'a и вложенных в него команд будет производить бот-сервер, а ботам клиентам будут передаваться только отдельные команды, помещенные в данный ActionPack.
      Следует отметить, что ActionPack с установленным флагом AsynchronouseMode не должен иметь вложенных ActionPack'ов, поскольку они будут проигнорированы.
    • BotAssignment - список ботов, которые будут выполнять данный ActionPack. Для изменения списка нужно нажать кнопку "..." и в открывшемся окне отметить нужных ботов и нажать "ОК". Это может быть бот-сервер (Server), а также один или несколько ботов-клиентов (Client).
      Когда ActionPack передается ботам-клиентам для выполнения с установленным флагом AsynchronouseMode, то данный ActionPack передается ЦЕЛИКОМ со всем входящими в него командами. При этом каждый бот-клиент выполняет его самостоятельно, то есть САМ проверяет условия выполнения ActionPack'a и входящих в него команд.
      Для того чтобы бот-сервер дождался завершения ботами-клиентами ActionPack'ов, выполняемых в асинхронном режиме. после него в скрипт следует поместить команду WaitForSync.
  5. На ботах-клиентах долна быть включена навигация, поскольку пути Mapper'a из бота-сервена не передаются, также как и список вендоров с игнорируемыми мобами.
    Хорошо, что с некоторых пор боты-клиенты получают CustonRegion.
  6. Последнее что следует отметить: некоторые команды напрочь нарушают взаимодействие бота-сервера и ботов-клиентов, которые перестают получать и выполнять команды от бота-сервера.
Пример профиля Легиона Ужаса для мультибота я выкладывал здесь.
В этом профиле с помощью ActionPack с AsynchronouseMode=true решена вышеописанная проблема выхода на арену ботов-клиентов. Заодно, боты-клиенты возвращаются на арену после смерти.

Rabotorg
Regular Botter
Regular Botter
Posts: 16
Joined: Sat Jan 27, 2018 11:02 am

Re: Профили Multibots

Post by Rabotorg » Sun Oct 28, 2018 3:45 pm

Michaelprog, спасибо!
Легион как раз изучаю, пробую на его примере сделать для гамбита, что то пока не выходит.
Michael, у тебя случайно нет профиля для фарма габита в Multibots?

michaelprog
Contributor
Contributor
Posts: 623
Joined: Wed Aug 31, 2016 7:32 am

Re: Профили Multibots

Post by michaelprog » Sun Oct 28, 2018 4:53 pm

Гамбит не делал, но принципиально он от Легиона не отличается.
Тебе нужно лишь объединить в один Асинхронный ActionPack боевой гринд и выход с респа.
Там, конечно, есть сложности в начале боя с фазами (у меня по-прежнему бот иногда выходит с инста), но для мультибота 5-минутное ограничение на вход можно убрать (все свои же).

Rabotorg
Regular Botter
Regular Botter
Posts: 16
Joined: Sat Jan 27, 2018 11:02 am

Re: Профили Multibots

Post by Rabotorg » Sat Nov 03, 2018 9:05 am

Столкнулся с проблемой, при выполнении команды CreateMatchGroup боты клиенты не принимают запрос на присоединение к групе с запросом на подбор (все боты при этом находятся в общей группе, собираются сразу при включении сервера и клиентов). Как решить эту проблему?
И вторая проблема в этом же профиле, когда перс умирает, то не возвращается в бой, сервер передаёт клиенту команду Grind. Как это решить?
You do not have the required permissions to view the files attached to this post.

michaelprog
Contributor
Contributor
Posts: 623
Joined: Wed Aug 31, 2016 7:32 am

Re: Профили Multibots

Post by michaelprog » Sat Nov 03, 2018 10:43 am

О CreateMatchGroup ничего пока сказать не могу.

Что касается Grind и остальных команд, обрати внимание на следующее:
1) Grind сама по себе не завершается. Для её прерывание нужно задать условие нахождения на арене и флаг PlayWhileConditionsAreOk=true.
2) Каждое действие выполняется в своей части локации (Гринд, взаимодействие с порталом и т.п.). Их можно идентифицировать с помощью CustomRegion.
3) Бой состоит из фаз, перемежающихся разговором с магом. Определить фазу можно по QuestInfo. У тебя разговор не состоится, т.к. Гринд будет выполняться бесконечно.

Rabotorg
Regular Botter
Regular Botter
Posts: 16
Joined: Sat Jan 27, 2018 11:02 am

Re: Профили Multibots

Post by Rabotorg » Sun Nov 04, 2018 12:39 pm

Наверно CreateMatchGroup не работает из-за этого viewtopic.php?f=135&t=5754&p=47965#p47965
Что самое интересное полдня всё работало, потом слетело не понятно почему, перезапуски не помогают :mellow:

Elephanteau
Frenetic botter
Frenetic botter
Posts: 54
Joined: Wed May 30, 2018 6:10 am

Re: Профили Multibots

Post by Elephanteau » Wed Nov 07, 2018 5:39 pm

На данный момент команда CreateMatchGroup исчерпала себя от слова "польнастю". Мой опыт: я отключил команды выхода из группы, выхода из подбора и создания группы. И никаких проблем. Группа продолжает нормально заходить в очереди, что открытые, что закрытые. Так что отключайте команды выхода и создания группы. они не нужны. Один раз пригласил и забыл. Это пересоздавание каждый раз - только трата времени.

Post Reply

Who is online

Users browsing this forum: Orion33, SloniK and 9 guests