Привет!

Это бот для «Хроник Хаоса» на VK.com. Долгое время он существовал в закрытом виде во избежание массового банхамера от разработчиков. Благодаря последним обновлениям играть в игру стало совершенно не выносимо, поэтому теперь бот открыт для всех.

Бот бесплатен для личного использования. Если кто-то пытается вам продать его – не ведитесь.

Disclaimer

  • В любом случае, вы сами отвечаете за любые эффекты, вызванный работой бота. Неочевидные моменты можно уточнять в GitHub Issues. И конечно, никто не застрахован от багов. У меня не было возможности протестировать бота на большом числе разных аккаунтов.
  • Использование подобных ботов запрещено правилами игры. Бот пытается обойти аналитику Nexters, но пожизненный бан в игре не исключен. Nexters «очень добрые» и никого не прощают. Изменять исходный код нужно аккуратно, практически все сделано с расчетом на незаметность бота для аналитики.

Что умеет бот?

  • Атаковать арену и гранд-арену в авто-режиме
  • Собирать награды из писем
  • Собирать подарки со страницы сообщества на VK.com
  • Отправлять экспедиции и собирать с них награды
  • Сливать энергию в рейды по миссиям
  • Собирать награды с выполненных задач
  • Проходить башню по доступным пропусками этажей
  • Собирать ежедневные награды
  • Рейдить боссов Запределья
  • Открывать все сундуки
  • Собирать награду с Турнира Стихий
  • Вкладывать и сбрасывать искры мощи
  • Отправлять ежедневные подарки друзьям
  • Покупать указанные товары в магазинах
  • Зачаровывать руну
  • Для гиков есть встроенная консоль, где можно все повызывать вручную

Браузер для работы бота не нужен в принципе.

Все писалось и отлаживалось без VIP, поэтому привилегии VIP не используются.

Как это работает?

  • В исходниках есть расписание, по которому бот просыпается и делает свое дело
  • Награды с экспедиций собираются сразу по завершении

Чего точно не будет

Подземелье и другие бои на стороне клиента

Для этого нужно полностью просчитать бой, его результат проверяется на сервере с точностью до каждого HP. Да, даже в авто-режиме.

По той же причине не будет прохождения Башни, если не доступны пропуски этажей.

По той же причине не будет прохождения Турнира Стихий.

Но если вы готовы это реализовать и поддерживать, то добро пожаловать в Pull Requests.

Офф-топик

Однажды я реализовал это, и оно было в боте. Но Nexters заобфусцировали эту часть кода. Технически, и это не 100%-ое препятствие, но обновлять бота вслед за каждым обновлением игры у меня нет времени. А возвращаться к ручному прохождению было уже очень грустно. Что, кстати говоря, и явилось поводом для публикации бота.

Привет, Nexters, ваш гейм-дизайнер очень крутой! Я никогда не проводил время лучше, чем в Подземелье!

Как сообщить о баге или попросить фичу?

В GitHub Issues.

Быструю реализацию не обещаю, поэтому если вы разработчик, то часто будет проще сразу обсудить реализацию и предложить Pull Request.

Запуск

В любом случае, вам понадобится конфиг. Детально про него можно почитать в разделе с настройкой. Создайте текстовый файл settings.yaml. Минимально понадобятся такие настройки:

vk:
  remixsid: ...  # значение cookie `remixsid` с вашего аккаунта на VK.com.
  access_token: ...  # создайте приложение на VK.com и скопируйте сюда сервисный ключ доступа
bot:
  arena: {}

Далее самый простой вариант запуска – это использование Docker. С каждым обновлением бота я собираю публикую готовый образ. Можно, конечно, и без Docker, но про это напишу позже.

Docker

Команда для запуска выглядит примерно так:

docker run \
    --rm \
    --name bestmobabot \
    -it \
    -e TZ=Europe/Amsterdam \
    -v /Users/eigenein/GitHub/bestmobabot/settings.yaml:/app/settings.yaml:ro \
    -v /Users/eigenein/GitHub/bestmobabot/db.sqlite3:/app/db.sqlite3:rw \
    eigenein/bestmobabot -v

Вам нужно изменить пути к файлам на ваши собственные и указать верный часовой пояс.

Настройка

TODO

Арена

Как это работает?

TL;DR

  • Журналы боев с арен сохраняются в базу данных
  • Один раз в день бот может переобучать предсказывать победу в бою на основе этих журналов
  • Чем больше журналов сохранено, тем лучше составляются команды на арене
  • Поначалу все будет плохо
  • Через месяц-другой будет круто – даже лучше, чем вручную
  • Может быть, я встрою в бота готовую модель

Подробнее

Несколько раз в день бот сохраняет к себе в базу данных журналы арен. Это не очень много, несколько десятков боев в день. Сохраняются доступные признаки героев типа цвета, уровня и звездности и так далее. Сохраняется и результат боя. Раз в сутки бот перестраивает модель машинного обучения для предсказания исхода боя, если известны обе команды.

Когда бот идет на арену, то для каждого противника он пытается подобрать лучшую команду для атаки. Полный перебор сделать невозможно, поэтому используется генетический алгоритм.

Бот перебирает противников, пока не найдет наилучшего – с максимальной вероятностью победы. Если вероятность победы для выбранного противника менее 50%, то атака отменяется и откладывается на попозже. Атака на позиции выше 100-ой на гранд-арене пока не реализована. Но уже сейчас бот сохраняет увиденные команды противников, чтобы в будущем оценивать скрытые команды.

Настройка

schedule_offset

Это костыль, который позволяет указать сдвиг во времени относительно расписания арены по умолчанию. Может быть полезно для слабого железа, на котором выполняются несколько ботов. Тогда можно развести арены этих ботов на разное время.

Например: schedule_offset: 01:00:00

friendly_clans

Список из ID или названий кланов, которые нельзя атаковать на арене.

early_stop

Бот остановит перебор противников, если вероятность победы будет выше указанного здесь значения. Чем оно меньше, тем меньше противников перебирает бот, но качество выбора падает. Если значение выше, то все наоборот.

Например: early_stop: 0.95

last_battles

TODO

normal_max_pages & grand_max_pages

TODO

normal_generations_count_down & grand_generations_count_down

TODO

normal_generate_solutions & grand_generate_solutions

TODO

normal_keep_solutions & grand_keep_solutions

TODO

randomize_grand_defenders

Если true, то раз в день бот будет случайно выставлять на гранд-арену 15 самых сильных ваших героев.

Непереведенная документация

Settings

At the moment settings are described only in settings.py. Here is an example of settings.yaml:

vk:
  remixsid: <VK.com `remixsid` cookie>
  access_token: <VK.com API access token>
bot:
  no_experience: no  # do not farm experience quests
  is_trainer: yes  # train arena prediction model nightly
  arena:
    schedule_offset: 01:00:00  # shift time from the default one
  friend_ids:
  - 123456789
  - 123456790
  shops:
  - Печать пастыря
  - Орион
  - Йорген
  - Зелье титана
  - Драконий щит - рецепт
  - Рука славы
  - Изначальное слово - рецепт
  raid_missions:
  - Чащоба Каданг

Trainer

Trainer is enabled by setting is_trainer to true. Typically, you only need one trainer per a single database. It will perform training for all bots using the same database.

Arena model trainer could be run manually via:

python -m bestmobabot.trainer -v

Trained model is then saved back to the database.

Storage

SQLite database is used as a sort of key-value store to preserve state between restarts:

  • Arena and grand arena battle results
  • Arena and grand arena enemies
  • Authentication credentials
  • API session
  • Picked up gifts
  • Arena win probability prediction model

The same database can be used by multiple bots. Actually, it is recommended that multiple bots use the same database in order to share the arena prediction model.

Warning. The database contains user IDs and Hero Wars API authentication tokens. Make sure that you remove them manually should you share your database.

Для разработчиков

Здесь находятся неструктурированные заметки для разработчиков бота.

Подземелье

clanGetActivityStat

{"name":"clanGetActivityStat","args":{},"ident":"group_1_body"}
{"clanActivity":8918,"dungeonActivity":842,"stat":{"todayActivity":148,"activitySum":148,"dungeonActivitySum":150,"todayRaid":[],"todayItemsActivity":0,"todayDungeonActivity":150,"activityForRuneAvailable":false}}

titanGetAll

{"ident":"titanGetAll","result":{"response":{"4001":{"id":4001,"xp":30420,"level":54,"star":4,"skills":{"4003":54},"power":12648,"artifacts":[{"level":34,"star":2},{"level":1,"star":1},{"level":1,"star":1}],"scale":0.80000000000000004},"4020":{"id":4020,"xp":32210,"level":55,"star":4,"skills":{"4019":55},"power":14063,"artifacts":[{"level":43,"star":2},{"level":4,"star":2},{"level":10,"star":1}],"scale":0.80000000000000004},"4002":{"id":4002,"xp":6580,"level":29,"star":3,"skills":{"4005":29},"power":3333,"artifacts":[{"level":1,"star":0},{"level":1,"star":0},{"level":1,"star":0}],"scale":0.80000000000000004},"4010":{"id":4010,"xp":32210,"level":55,"star":3,"skills":{"4010":55},"power":11042,"artifacts":[{"level":42,"star":1},{"level":10,"star":1},{"level":1,"star":1}],"scale":0.80000000000000004},"4012":{"id":4012,"xp":30420,"level":54,"star":4,"skills":{"4014":54},"power":12653,"artifacts":[{"level":28,"star":3},{"level":3,"star":1},{"level":2,"star":1}],"scale":0.80000000000000004},"4011":{"id":4011,"xp":2310,"level":15,"star":2,"skills":{"4012":15},"power":1015,"artifacts":[{"level":1,"star":0},{"level":1,"star":0},{"level":1,"star":0}],"scale":0.80000000000000004},"4022":{"id":4022,"xp":3060,"level":18,"star":2,"skills":{"4023":18},"power":1290,"artifacts":[{"level":1,"star":0},{"level":1,"star":0},{"level":1,"star":0}],"scale":0.80000000000000004},"4000":{"id":4000,"xp":19200,"level":46,"star":3,"skills":{"4001":46},"power":8545,"artifacts":[{"level":37,"star":1},{"level":7,"star":1},{"level":2,"star":1}],"scale":0.80000000000000004},"4013":{"id":4013,"xp":32210,"level":55,"star":3,"skills":{"4016":55,"4017":55},"power":11260,"artifacts":[{"level":37,"star":3},{"level":7,"star":1},{"level":1,"star":1}],"scale":0.80000000000000004},"4021":{"id":4021,"xp":0,"level":1,"star":2,"skills":{"4021":1},"power":162,"artifacts":[{"level":1,"star":0},{"level":1,"star":0},{"level":1,"star":0}],"scale":0.80000000000000004}}}}

dungeonGetInfo

{"name":"dungeonGetInfo","args":{},"ident":"group_1_body"}
{
    "date": 1551616579.361306,
    "results": [
        {
            "ident": "group_0_body",
            "result": {
                "response": [
                    true
                ]
            }
        },
        {
            "ident": "group_1_body",
            "result": {
                "response": {
                    "userId": "833061",
                    "elements": {
                        "prime": "fire",
                        "nonprime": [
                            "water",
                            "earth"
                        ]
                    },
                    "respawnFloor": "221",
                    "floorNumber": "221",
                    "floorType": "battle",
                    "states": {
                        "titans": []
                    },
                    "floor": {
                        "userData": [
                            {
                                "defenderType": "hero",
                                "chance": 1,
                                "arenaHeroesPacked": "p:[{\"color\":4,\"id\":\"4\",\"level\":\"39\",\"star\":\"3\"},{\"color\":4,\"id\":\"1\",\"level\":\"39\",\"star\":\"2\"},{\"color\":4,\"id\":\"9\",\"level\":\"39\",\"star\":\"1\"},{\"color\":4,\"id\":\"5\",\"level\":\"39\",\"star\":\"3\"},{\"color\":4,\"id\":\"19\",\"level\":\"39\",\"star\":\"3\"}]",
                                "userId": "-560009",
                                "team": [
                                    {
                                        "color": 4,
                                        "id": "4",
                                        "level": "39",
                                        "star": "3"
                                    },
                                    {
                                        "color": 4,
                                        "id": "1",
                                        "level": "39",
                                        "star": "2"
                                    },
                                    {
                                        "color": 4,
                                        "id": "9",
                                        "level": "39",
                                        "star": "1"
                                    },
                                    {
                                        "color": 4,
                                        "id": "5",
                                        "level": "39",
                                        "star": "3"
                                    },
                                    {
                                        "color": 4,
                                        "id": "19",
                                        "level": "39",
                                        "star": "3"
                                    }
                                ],
                                "delta": 770,
                                "needPower": 25679,
                                "power": "24961",
                                "attackerType": "hero"
                            }
                        ],
                        "defenders": [],
                        "state": 1
                    },
                    "reward": [],
                    "maxFloorReached": "230"
                }
            }
        }
    ]
}
{
    "date": 1551651295.916583,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "userId": "833061",
                    "elements": {
                        "prime": "fire",
                        "nonprime": [
                            "water",
                            "earth"
                        ]
                    },
                    "respawnFloor": "231",
                    "floorNumber": "250",
                    "floorType": "battle",
                    "states": {
                        "titans": {
                            "4011": {
                                "hp": 70340,
                                "energy": 200,
                                "isDead": false,
                                "maxHp": 70340
                            },
                            "4010": {
                                "hp": 639100,
                                "energy": 629,
                                "isDead": false,
                                "maxHp": 750366
                            },
                            "4013": {
                                "hp": 706524,
                                "energy": 600,
                                "isDead": false,
                                "maxHp": 706524
                            },
                            "4012": {
                                "hp": 862389,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 862389
                            },
                            "4021": {
                                "hp": 17559,
                                "energy": 600,
                                "isDead": false,
                                "maxHp": 17559
                            },
                            "4022": {
                                "hp": 151766,
                                "energy": 800,
                                "isDead": false,
                                "maxHp": 151766
                            },
                            "4020": {
                                "hp": 1258064,
                                "energy": 709,
                                "isDead": false,
                                "maxHp": 1554744
                            },
                            "4002": {
                                "hp": 326806,
                                "energy": 400,
                                "isDead": false,
                                "maxHp": 326806
                            },
                            "4001": {
                                "hp": 967440,
                                "energy": 200,
                                "isDead": false,
                                "maxHp": 967440
                            },
                            "4000": {
                                "hp": 436523,
                                "energy": 941,
                                "isDead": false,
                                "maxHp": 708451
                            }
                        }
                    },
                    "floor": {
                        "userData": [
                            {
                                "defenderType": "water",
                                "chance": 50,
                                "team": [
                                    {
                                        "id": 4002,
                                        "level": 26,
                                        "star": 2
                                    },
                                    {
                                        "id": 4000,
                                        "level": 27,
                                        "star": 2
                                    }
                                ],
                                "userId": -1000915,
                                "power": 4377,
                                "attackerType": "earth"
                            },
                            {
                                "defenderType": "fire",
                                "chance": 50,
                                "team": [
                                    {
                                        "id": 4012,
                                        "level": 26,
                                        "star": 2,
                                        "buffs": {
                                            "hp": 3480.3921568627447,
                                            "physicalAttack": 261.02941176470586
                                        }
                                    },
                                    {
                                        "id": 4010,
                                        "level": 26,
                                        "star": 2,
                                        "buffs": {
                                            "hp": 3480.3921568627447,
                                            "physicalAttack": 261.02941176470586
                                        }
                                    }
                                ],
                                "userId": -2000890,
                                "power": 4330,
                                "attackerType": "water"
                            }
                        ],
                        "defenders": {
                            "1": [
                                []
                            ]
                        },
                        "state": 2
                    },
                    "reward": [],
                    "maxFloorReached": "250"
                }
            }
        }
    ]
}

dungeonStartBattle

{"calls":[{"name":"dungeonStartBattle","args":{"heroes":[39,25,35,13,29],"teamNum":0},"ident":"body"}]}
{"name":"dungeonStartBattle","args":{"heroes":[4021,4022,4020],"teamNum":0},"ident":"group_1_body"}
{"name":"dungeonStartBattle","args":{"heroes":[4021,4022,4020],"teamNum":1},"ident":"group_1_body"}

dungeonEndBattle

{
    "date": 1551617810.169543,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "reward": {
                        "dungeonActivity": 1,
                        "consumable": {
                            "20": 25
                        }
                    },
                    "rewardMultiplier": 1,
                    "dungeon": {
                        "userId": "833061",
                        "elements": {
                            "prime": "fire",
                            "nonprime": [
                                "water",
                                "earth"
                            ]
                        },
                        "respawnFloor": "221",
                        "floorNumber": 222,
                        "floorType": "battle",
                        "states": {
                            "titans": []
                        },
                        "floor": {
                            "userData": [
                                {
                                    "defenderType": "earth",
                                    "chance": 75,
                                    "team": [
                                        {
                                            "id": 4022,
                                            "level": 30,
                                            "star": 1
                                        },
                                        {
                                            "id": 4020,
                                            "level": 30,
                                            "star": 1
                                        }
                                    ],
                                    "userId": -3000687,
                                    "power": 3645,
                                    "attackerType": "fire"
                                }
                            ],
                            "defenders": [],
                            "state": 1
                        },
                        "reward": [],
                        "maxFloorReached": "230"
                    },
                    "states": {
                        "titans": []
                    },
                    "dungeonActivity": 432
                },
                "quests": [
                    {
                        "id": 10021,
                        "state": 1,
                        "progress": 1,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 10022,
                        "state": 1,
                        "progress": 1,
                        "reward": {
                            "coin": {
                                "13": "2"
                            }
                        }
                    }
                ]
            }
        }
    ]
}
{
    "date": 1551619371.579586,
    "results": [
        {
            "ident": "group_0_body",
            "result": {
                "response": [
                    true,
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        {
            "ident": "group_1_body",
            "result": {
                "response": {
                    "reward": {
                        "dungeonActivity": 1,
                        "consumable": {
                            "20": 25
                        }
                    },
                    "rewardMultiplier": 1,
                    "dungeon": {
                        "userId": "833061",
                        "elements": {
                            "prime": "fire",
                            "nonprime": [
                                "water",
                                "earth"
                            ]
                        },
                        "respawnFloor": "221",
                        "floorNumber": 225,
                        "floorType": "battle",
                        "states": {
                            "titans": {
                                "4011": {
                                    "hp": 51226,
                                    "energy": 400,
                                    "isDead": false,
                                    "maxHp": 51226
                                },
                                "4010": {
                                    "hp": 700916,
                                    "energy": 419,
                                    "isDead": false,
                                    "maxHp": 730477
                                },
                                "4013": {
                                    "hp": 706524,
                                    "energy": 600,
                                    "isDead": false,
                                    "maxHp": 706524
                                },
                                "4012": {
                                    "hp": 862389,
                                    "energy": 1000,
                                    "isDead": false,
                                    "maxHp": 862389
                                }
                            }
                        },
                        "floor": {
                            "userData": [
                                {
                                    "defenderType": "water",
                                    "chance": 50,
                                    "team": [
                                        {
                                            "id": 4000,
                                            "level": 30,
                                            "star": 1
                                        },
                                        {
                                            "id": 4001,
                                            "level": 31,
                                            "star": 1
                                        }
                                    ],
                                    "userId": -1000754,
                                    "power": 3742,
                                    "attackerType": "earth"
                                },
                                {
                                    "defenderType": "neutral",
                                    "chance": 50,
                                    "team": [
                                        {
                                            "id": 4002,
                                            "level": 31,
                                            "star": 1
                                        },
                                        {
                                            "id": 4021,
                                            "level": 31,
                                            "star": 1
                                        }
                                    ],
                                    "userId": -4000703,
                                    "power": 3811,
                                    "attackerType": "neutral"
                                }
                            ],
                            "defenders": [],
                            "state": 1
                        },
                        "reward": [],
                        "maxFloorReached": "230"
                    },
                    "states": {
                        "titans": {
                            "4011": {
                                "hp": 51226,
                                "energy": 400,
                                "isDead": false,
                                "maxHp": 51226
                            },
                            "4010": {
                                "hp": 700916,
                                "energy": 419,
                                "isDead": false,
                                "maxHp": 730477
                            },
                            "4013": {
                                "hp": 706524,
                                "energy": 600,
                                "isDead": false,
                                "maxHp": 706524
                            },
                            "4012": {
                                "hp": 862389,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 862389
                            }
                        }
                    },
                    "dungeonActivity": 443
                },
                "quests": [
                    {
                        "id": 10021,
                        "state": 1,
                        "progress": 8,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 10022,
                        "state": 1,
                        "progress": 8,
                        "reward": {
                            "coin": {
                                "13": "2"
                            }
                        }
                    }
                ]
            }
        }
    ]
}
{
    "date": 1551630357.287681,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "reward": {
                        "dungeonActivity": 10,
                        "fragmentTitan": {
                            "4021": 2
                        }
                    },
                    "rewardMultiplier": 2,
                    "states": {
                        "titans": {
                            "4011": {
                                "hp": 51226,
                                "energy": 600,
                                "isDead": false,
                                "maxHp": 51226
                            },
                            "4010": {
                                "hp": 669236,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 730477
                            },
                            "4013": {
                                "hp": 706524,
                                "energy": 200,
                                "isDead": false,
                                "maxHp": 706524
                            },
                            "4012": {
                                "hp": 862389,
                                "energy": 700,
                                "isDead": false,
                                "maxHp": 862389
                            },
                            "4021": {
                                "hp": 17045,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 17045
                            },
                            "4022": {
                                "hp": 109001,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 109001
                            },
                            "4020": {
                                "hp": 1326222,
                                "energy": 500,
                                "isDead": false,
                                "maxHp": 1554744
                            },
                            "4002": {
                                "hp": 243568,
                                "energy": 200,
                                "isDead": false,
                                "maxHp": 243568
                            },
                            "4001": {
                                "hp": 967440,
                                "energy": 1000,
                                "isDead": false,
                                "maxHp": 967440
                            },
                            "4000": {
                                "hp": 382462,
                                "energy": 861,
                                "isDead": false,
                                "maxHp": 525315
                            }
                        }
                    },
                    "dungeonActivity": 624
                },
                "quests": [
                    {
                        "id": 10021,
                        "state": 2,
                        "progress": 90,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 10022,
                        "state": 1,
                        "progress": 90,
                        "reward": {
                            "coin": {
                                "13": "2"
                            }
                        }
                    }
                ]
            }
        }
    ]
}

dungeonSaveProgress

{"calls":[{"name":"dungeonSaveProgress","args":{},"ident":"body"}]}
{
    "date": 1551630539.122356,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "reward": {
                        "gold": 17200
                    },
                    "dungeon": {
                        "userId": "833061",
                        "elements": {
                            "prime": "fire",
                            "nonprime": [
                                "water",
                                "earth"
                            ]
                        },
                        "respawnFloor": "231",
                        "floorNumber": 241,
                        "floorType": "battle",
                        "states": {
                            "titans": {
                                "4011": {
                                    "hp": 51226,
                                    "energy": 600,
                                    "isDead": false,
                                    "maxHp": 51226
                                },
                                "4010": {
                                    "hp": 669236,
                                    "energy": 1000,
                                    "isDead": false,
                                    "maxHp": 730477
                                },
                                "4013": {
                                    "hp": 706524,
                                    "energy": 200,
                                    "isDead": false,
                                    "maxHp": 706524
                                },
                                "4012": {
                                    "hp": 862389,
                                    "energy": 700,
                                    "isDead": false,
                                    "maxHp": 862389
                                },
                                "4021": {
                                    "hp": 17045,
                                    "energy": 1000,
                                    "isDead": false,
                                    "maxHp": 17045
                                },
                                "4022": {
                                    "hp": 109001,
                                    "energy": 1000,
                                    "isDead": false,
                                    "maxHp": 109001
                                },
                                "4020": {
                                    "hp": 1326222,
                                    "energy": 500,
                                    "isDead": false,
                                    "maxHp": 1554744
                                },
                                "4002": {
                                    "hp": 243568,
                                    "energy": 200,
                                    "isDead": false,
                                    "maxHp": 243568
                                },
                                "4001": {
                                    "hp": 967440,
                                    "energy": 1000,
                                    "isDead": false,
                                    "maxHp": 967440
                                },
                                "4000": {
                                    "hp": 382462,
                                    "energy": 861,
                                    "isDead": false,
                                    "maxHp": 525315
                                }
                            }
                        },
                        "floor": {
                            "userData": [
                                {
                                    "defenderType": "hero",
                                    "chance": 1,
                                    "arenaHeroesPacked": "p:[{\"id\":2,\"level\":48,\"color\":6,\"star\":1},{\"id\":20,\"level\":49,\"color\":6,\"star\":1},{\"id\":4,\"level\":50,\"color\":6,\"star\":2},{\"id\":6,\"level\":50,\"color\":6,\"star\":1},{\"id\":7,\"level\":50,\"color\":6,\"star\":2}]",
                                    "userId": "851135",
                                    "team": [
                                        {
                                            "id": 2,
                                            "level": 48,
                                            "color": 6,
                                            "star": 1
                                        },
                                        {
                                            "id": 20,
                                            "level": 49,
                                            "color": 6,
                                            "star": 1
                                        },
                                        {
                                            "id": 4,
                                            "level": 50,
                                            "color": 6,
                                            "star": 2
                                        },
                                        {
                                            "id": 6,
                                            "level": 50,
                                            "color": 6,
                                            "star": 1
                                        },
                                        {
                                            "id": 7,
                                            "level": 50,
                                            "color": 6,
                                            "star": 2
                                        }
                                    ],
                                    "delta": 785,
                                    "needPower": 26177,
                                    "power": "25462",
                                    "attackerType": "hero"
                                }
                            ],
                            "defenders": [],
                            "state": 1
                        },
                        "reward": [],
                        "maxFloorReached": 241
                    }
                },
                "quests": [
                    {
                        "id": 329,
                        "state": 3,
                        "progress": 240,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 330,
                        "state": 3,
                        "progress": 240,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 331,
                        "state": 3,
                        "progress": 240,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 332,
                        "state": 3,
                        "progress": 240,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 333,
                        "state": 1,
                        "progress": 240,
                        "reward": {
                            "coin": {
                                "13": "1"
                            }
                        }
                    },
                    {
                        "id": 10034,
                        "state": 3,
                        "progress": 240,
                        "reward": {
                            "consumable": {
                                "81": "5"
                            }
                        }
                    },
                    {
                        "id": 10035,
                        "state": 1,
                        "progress": 240,
                        "reward": {
                            "consumable": {
                                "81": "5"
                            }
                        }
                    },
                    {
                        "id": 10036,
                        "state": 1,
                        "progress": 240,
                        "reward": {
                            "consumable": {
                                "81": "5"
                            }
                        }
                    }
                ]
            }
        }
    ]
}

Enchant Rune

{"calls":[{"name":"heroEnchantRune","args":{"heroId":39,"tier":2,"items":{"consumable":{"1":1}}},"ident":"body"}]}
{"date":1550923502.2710991,"results":[{"ident":"body","result":{"response":10,"quests":[{"id":10013,"state":2,"progress":880,"reward":{"consumable":{"1":"10"},"gold":1500}},{"id":10014,"state":1,"progress":880,"reward":{"consumable":{"2":"15"},"gold":3000}},{"id":10032,"state":1,"progress":880,"reward":{"consumable":{"3":"10"},"gold":5000}}]}}]}

Зал Славы

Get

{
    "calls": [
        {
            "name": "hallOfFameGet",
            "args": {},
            "ident": "body"
        }
    ]
}
{
    "date": 1550918994.155878,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "champions": {
                        "5181775": {
                            "userId": "5181775",
                            "place": 1,
                            "serverId": "7",
                            "clanId": "49207",
                            "score": "84229",
                            "power": "825499",
                            "cup": 1,
                            "info": {
                                "name": "Faal",
                                "level": "130",
                                "avatarId": "386",
                                "frameId": 3,
                                "clanTitle": "\u041d\u0435\u0443\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u0435 NEW",
                                "clanIcon": {
                                    "flagColor1": 16,
                                    "flagColor2": 19,
                                    "flagShape": 1,
                                    "iconColor": 19,
                                    "iconShape": 5
                                },
                                "serverId": "7",
                                "clanId": "49207"
                            }
                        },
                        "5069714": {
                            "userId": "5069714",
                            "place": 2,
                            "serverId": "2",
                            "clanId": "3980",
                            "score": "84210",
                            "power": "825436",
                            "cup": 2,
                            "info": {
                                "name": "\u0411\u044f\u043a\u0430",
                                "level": "130",
                                "avatarId": "305",
                                "frameId": 3,
                                "clanTitle": "T-Grad",
                                "clanIcon": {
                                    "flagColor1": 16,
                                    "flagColor2": 0,
                                    "flagShape": 1,
                                    "iconColor": 3,
                                    "iconShape": 10
                                },
                                "serverId": "2",
                                "clanId": "3980"
                            }
                        },
                        "1207246": {
                            "userId": "1207246",
                            "place": 3,
                            "serverId": "11",
                            "clanId": "8050",
                            "score": "84147",
                            "power": "825436",
                            "cup": 2,
                            "info": {
                                "name": "isaac morris",
                                "level": "130",
                                "avatarId": "411",
                                "frameId": 3,
                                "clanTitle": "BewareUs",
                                "clanIcon": {
                                    "flagColor1": 8,
                                    "flagColor2": 19,
                                    "flagShape": 14,
                                    "iconColor": 7,
                                    "iconShape": 31
                                },
                                "serverId": "11",
                                "clanId": "8050"
                            }
                        },
                        "5176560": {
                            "userId": "5176560",
                            "place": 4,
                            "serverId": "9",
                            "clanId": "23928",
                            "score": "84047",
                            "power": "825499",
                            "cup": 2,
                            "info": {
                                "name": "68 RUS",
                                "level": "130",
                                "avatarId": "305",
                                "frameId": 3,
                                "clanTitle": "NFS",
                                "clanIcon": {
                                    "flagColor1": 0,
                                    "flagColor2": 3,
                                    "flagShape": 14,
                                    "iconColor": 0,
                                    "iconShape": 46
                                },
                                "serverId": "9",
                                "clanId": "23928"
                            }
                        },
                        "5222351": {
                            "userId": "5222351",
                            "place": 5,
                            "serverId": "3",
                            "clanId": "45148",
                            "score": "84018",
                            "power": "825499",
                            "cup": 2,
                            "info": {
                                "name": "\u0411\u043e\u0433 \u0441\u043c\u0435\u0440\u0442\u0438 \u0420\u044e\u043a",
                                "level": "130",
                                "avatarId": "374",
                                "frameId": 3,
                                "clanTitle": "Revolution",
                                "clanIcon": {
                                    "flagColor1": 0,
                                    "flagColor2": 19,
                                    "flagShape": 3,
                                    "iconColor": 8,
                                    "iconShape": 2
                                },
                                "serverId": "3",
                                "clanId": "45148"
                            }
                        },
                        "5355159": {
                            "userId": "5355159",
                            "place": 6,
                            "serverId": "7",
                            "clanId": "49207",
                            "score": "83823",
                            "power": "825436",
                            "cup": 2,
                            "info": {
                                "name": "\u041b\u0415\u0413\u0418\u041e\u041d",
                                "level": "130",
                                "avatarId": "303",
                                "frameId": 3,
                                "clanTitle": "\u041d\u0435\u0443\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u0435 NEW",
                                "clanIcon": {
                                    "flagColor1": 16,
                                    "flagColor2": 19,
                                    "flagShape": 1,
                                    "iconColor": 19,
                                    "iconShape": 5
                                },
                                "serverId": "7",
                                "clanId": "49207"
                            }
                        },
                        "4944789": {
                            "userId": "4944789",
                            "place": 7,
                            "serverId": "17",
                            "clanId": "20301",
                            "score": "83756",
                            "power": "820715",
                            "cup": 2,
                            "info": {
                                "name": "\u041a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u0430",
                                "level": "130",
                                "avatarId": "385",
                                "frameId": 3,
                                "clanTitle": "Paradox",
                                "clanIcon": {
                                    "flagColor1": 0,
                                    "flagColor2": 0,
                                    "flagShape": 14,
                                    "iconColor": 19,
                                    "iconShape": 12
                                },
                                "serverId": "17",
                                "clanId": "20301"
                            }
                        },
                        "4534638": {
                            "userId": "4534638",
                            "place": 8,
                            "serverId": "22",
                            "clanId": "23965",
                            "score": "83736",
                            "power": "825499",
                            "cup": 2,
                            "info": {
                                "name": "\u041c_\u0410_\u041a_\u0421",
                                "level": "130",
                                "avatarId": "303",
                                "frameId": 3,
                                "clanTitle": "PROTEX",
                                "clanIcon": {
                                    "flagColor1": 9,
                                    "flagColor2": 7,
                                    "flagShape": 0,
                                    "iconColor": 5,
                                    "iconShape": 14
                                },
                                "serverId": "22",
                                "clanId": "23965"
                            }
                        },
                        "5069879": {
                            "userId": "5069879",
                            "place": 9,
                            "serverId": "34",
                            "clanId": "19945",
                            "score": "83705",
                            "power": "825499",
                            "cup": 2,
                            "info": {
                                "name": "\u0410\u0440\u0442\u0435\u043c",
                                "level": "130",
                                "avatarId": "385",
                                "frameId": 3,
                                "clanTitle": "Brazzers",
                                "clanIcon": {
                                    "flagColor1": 19,
                                    "flagColor2": 19,
                                    "flagShape": 5,
                                    "iconColor": 3,
                                    "iconShape": 27
                                },
                                "serverId": "34",
                                "clanId": "19945"
                            }
                        },
                        "5182053": {
                            "userId": "5182053",
                            "place": 10,
                            "serverId": "5",
                            "clanId": "24015",
                            "score": "83666",
                            "power": "821785",
                            "cup": 2,
                            "info": {
                                "name": "\u041c\u043e\u043b\u044c",
                                "level": "130",
                                "avatarId": "397",
                                "frameId": 3,
                                "clanTitle": "E-\u0431\u043e\u0431\u043e",
                                "clanIcon": {
                                    "flagColor1": 19,
                                    "flagColor2": 7,
                                    "flagShape": 14,
                                    "iconColor": 19,
                                    "iconShape": 17
                                },
                                "serverId": "5",
                                "clanId": "24015"
                            }
                        }
                    },
                    "bestOnServer": false,
                    "bestGuildMembers": [],
                    "result": {
                        "place": "58774",
                        "cup": "5"
                    },
                    "key": 1550865600,
                    "next": null,
                    "prev": 1549850400,
                    "trophy": {
                        "cup": "5",
                        "week": "1550455200",
                        "place": "58774",
                        "serverId": "10",
                        "clanId": "15676",
                        "championReward": {
                            "coin": {
                                "19": "2"
                            },
                            "gold": "150000"
                        },
                        "championRewardFarmed": 0,
                        "serverReward": [],
                        "serverRewardFarmed": 0,
                        "clanReward": [],
                        "clanRewardFarmed": 0
                    }
                }
            }
        }
    ]
}

Farm

{
    "calls": [
        {
            "name": "hallOfFameFarmTrophyReward",
            "args": {
                "trophyId": 1550455200,
                "rewardType": "champion"
            },
            "ident": "body"
        }
    ]
}
{
    "date": 1550918996.755696,
    "results": [
        {
            "ident": "body",
            "result": {
                "response": {
                    "coin": {
                        "19": "2"
                    },
                    "gold": "150000"
                }
            }
        }
    ]
}

Hero Titan Gift Level Up

{"calls":[{"name":"heroTitanGiftLevelUp","args":{"heroId":43},"ident":"body"}]}
{"date":1551212398.459389,"results":[{"ident":"body","result":{"response":null,"quests":[{"id":309,"state":3,"progress":7,"reward":{"gold":30000}},{"id":10023,"state":2,"progress":1,"reward":{"consumable":{"20":"300"}}}]}}]}
{"calls":[{"name":"stashClient","args":{"data":[{"type":".client.window.open","params":{"windowName":"game.mediator.gui.popup.hero.HeroTitanGiftLevelDropPopUp","prevWindowName":"game.view.popup.hero.rune.HeroElementPopup","prevActionName":"open","timestamp":1551212507}}]},"ident":"group_0_body"},{"name":"heroTitanGiftDrop","args":{"heroId":43},"ident":"group_1_body"}]}
{"date":1551212511.5865231,"results":[{"ident":"group_0_body","result":{"response":[true]}},{"ident":"group_1_body","result":{"response":{"consumable":{"24":250}},"quests":[{"id":309,"state":3,"progress":6,"reward":{"gold":30000}}]}}]}