Набор ботов для World of Warcraft, позволяющих автоматизировать различные утомительные игровые активности. Все боты работали внутри оболочки HonorBuddy, которая брала на себя большую часть забот, связанных с внедрением в игровой процесс World of Warcraft.
Написание этих ботов было нетривиальной задачей: HonorBuddy поддерживал узкое подмножество функциональных возможностей фреймворка .NET устаревшей версии, документации не было практически никакой, поэтому приходилось постоянно заниматься реверс-инжинирингом, для некоторых операций надо было писать вспомогательные аддоны для WoW на языке Lua, и все это нужно было сделать так, чтобы система обнаружения ботов, встроенная в игру не сработала и не забанила игровой аккаунт.
Бот для менеджмента инвентаря, банка персонажа и банка гильдии
Этот бот заходил на каждого персонажа из конфигурируемого списка и выполнял ряд действий: складывал лишние ингредиенты и деньги в банк гильдии или банк персонажа в зависимости от настроек, изготавливал ценные предметы по списку с учетом настраиваемых ограничений, выставлял предметы на аукцион, забирал с почты деньги за проданные предметы и вернувшиеся с аукциона предметы и кучу всего еще по мелочи.
Бот для прокачки и поимки боевых питомцев
Этот бот мог формировать ростер боевых питомцев из общей коллекции в соответствии с настройками, формировать эффективные команды питомцев, проводить бои питомцев с возможностью указания тактики боя для кажого семейства питомцев с помощью самописного скриптового языка, ловить питомцев, которых еще нет в коллекции или лучшего качества по сравнению с имеющимися.
Бот для сбора ресурсов
Этот бот занимался фармом ресурсов по заданному в настройках списку. Местонахождение ресурсов он получал от самописного сервиса, который занимался парсингом данных с игровой базы данных Wowhead. Получив точки спавна необходимых объектов бот строил оптимальный маршрут и отправлялся на их сбор. Сбор продолжался до истечения таймера или предела по количеству собранных ресурсов.
Бот для одновременного запуска нескольких ботов
HonorBuddy мог запускать только одного бота одновременно (один режим функционирования), поэтому мне пришлось написать бота, который мог в зависмости от игровой ситуации и набора условий переключаться из одного режима в другой, обеспечивая фактически одновременную работу нескольких ботов.
Набор боевых ботов для разных классов персонажей
Эти боты занимались эффективным ведением боев. Для каждого класса мной была запрограммирована оптимальная ротация навыков для различных боевых ситуаций (одна цель, несколько целей, много целей и т. д.), а также специальные рутины для обработки сложных боевых ситуаций (бой с другими игроками, использование умений для выхода из различных видов контроля и т. п.).