
Боты, которые сами встают в очередь: как я добавил компаньонов в AzerothCore и что сломалось по дороге
С 2022 года я в одиночку поддерживаю сервер World of Warcraft 3.3.5a на открытом ядре AzerothCore. Расскажу, как я закрывал главную проблему небольшого сервера ботами-компаньонами и на какие грабли при этом наступил. Если вы работаете с AzerothCore или TrinityCore, часть историй может сэкономить вам пару вечеров.Задача: пустые очередиПоиск подземелий (LFG) в WotLK рассчитан на тысячи игроков онлайн. На небольшом сервере очередь на героик может висеть часами: нет танка, нет хила, а то и вообще никого. Игрок заходит вечером, ждёт и уходит.Решение напрашивалось само: если людей не хватает, группу должны добирать боты. Причём такие, которые умеют играть свою роль, а не стоят столбом у входа.Основа: mod-playerbotsПисать всё с нуля я не стал. Для AzerothCore есть модуль mod-playerbots. Он заводит ботов на отдельных аккаунтах, сам их прокачивает и экипирует. Боты умеют вести себя в подземельях, рейдах и на полях боя.Я работаю с собственным форком. Главные изменения — поведение ботов в очереди подземелий и на арене, ребаланс и перевод фраз ботов на русский. Сервер русскоязычный, и английские реплики в чате группы смотрелись чужеродно.Как настраивается пул ботовМодуль держит пул «случайных ботов». В конфиге задаются минимальная и максимальная численность пула и распределение по уровневым диапазонам: сколько ботов держать на 15–19 уровнях, сколько на 20–29 и так далее до 80-го.Первая неочевидная вещь: сумма квот по диапазонам должна совпадать с максимальной численностью пула. Если изменить количество ботов и не пересчитать диапазоны, распределение по уровням поедет. Я поймал это, когда сокращал пул с 1550 ботов до 50. Читать далее