Найти тему
Stronghold of gamedev

Искусство ботоводства

Оглавление

При упоминании жанра MMORPG, что приходит в голову первым?
Масштабные сражения, гибкая персонализация и конечно тонны контента, уходящие, к сожалению, не вглубь, а вширь.

На прокачку своего фэнтезийного альтер-эго и геноцид тысяч схожих по поведению существ, уходит преступно много личного времени, однако гринд, в отличии, например, от процесса состыковки с противоположным полом, занятие совсем не интересное, но проносящее свои плоды.

Так что же здесь преступление? Автоматизация сего действа, или же просто его наличие? Там где есть рутина, всегда будет хитрость.

Азиатское безумие

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

Жадных разработчиков начало волновать это лишь тогда, когда аскетичные существа превратились в бизнесменов, а для заработка стали уж слишком часто использоваться боты. Следствием этого, стало появление функций авто-фарма в последних корейских новинках, однако это не новое, а хорошо забытое старое.
О том, с чего все начиналось, как боты покорили все фарм споты и как это работает изнутри - в этой статье.

Макросы

Самые эпохальные ММОшки не просто так сидят наверху, ведь в них, в отличии от современных корейских поделок, продумано все до мелочей.
Макросы, например, являющиеся при правильном их написании чуть ли не легальным ботом для фарма, но все же очень медленным и требующим внимания.

Lineage II
Lineage II

На моей памяти есть как минимум Lineage II и World of Warcraft, и если за последний я особо не в теме, то прелести сотворения примитивного ИИ в линейке я прощупал.

Макрос - это просто последовательность действий, что описывается игроком и выполняется по нажатию. Список действий рядовой: это и атака, и движение, таргет, скиллы с панели, предметы и не боевые действия/эмоции. Как оно водится, вынесены они как в интерфейс, так и в виде команд в чате, из чего макрос и составляется.

Вот, например, простейший макрос для фарма спота :
/target Гоблин | или кто либо еще, ники можно писать через запятую
/atack | атака цели
/delay 5 | задержка в 5 секунд до следующего действия
/useskill Решающий удар | добивание моба после 5 секунд автоатак
/pickup | подбор лута
Подобного рода конструкции могут автоматизировать много рутинных действий, однако стоит выделить и минусы :

  • В случае вышеописанного примера, в таргет берутся цели лишь в определенном расстоянии от героя, то есть если цель, например, находится на расстоянии 31 метр, а не допустимые максимальные 30, то макрос не сработает, однако проблема не в нём, а в самом скрипте захвата цели.
  • В макросах отсутствуют сложные конструкции с условиями.
    Если ваш герой проседает по здоровью, невозможно указать ему хилится в случае, если здоровье меньше, например, 30%. Это стоит вписывать в последовательность как обязательный пункт после наблюдений.
  • Несмотря на то, что в той же L2 макросы превращаются будто в скиллы, нельзя ссылаться из одного макроса на другой, из-за этого же цикличность макроса достигается лишь игровой и многими нелюбимой возможностью тыкнуть по нему правой кнопкой мыши (давно убрали).

Всё же макросы сильно упрощают бытие среднестатистического задрота профессионала, что водит бото-трейны в нескольких окнах.

Нелегальные боты

Несмотря на всю гибкость и самое главное легальность макросов, своими методами и вариациями конструкций они полностью проигрывают бот-программам.

Из MMORPG можно вытянуть информацию двумя способами : ковыряние в процессе, коим забита оперативная память и чтение входящих и исходящих сетевых пакетов, которые в целях защиты обычно шифруются.

Adrenaline bot  для Lineage II с украденным у Blender'a логотипом
Adrenaline bot для Lineage II с украденным у Blender'a логотипом

Для большей наглядности, имеет смысл объяснить на конкретных примерах :

  • Взять цель в таргет теперь можно на разумно большом расстоянии, ибо координаты и айди мобов сначала посылаются с сервера, а потом хранятся в оперативной памяти для их отрисовки.
    Выхватив эту информацию одним из способов, бот сначала подбегает, а потом берет в таргет и атакует.
  • В случае если нападение окончилось фиаско, бот может похилится.
    Высчитывать процентное соотношение здоровья не станет проблемой, имея доступ к значениям максимального и текущего показателей здоровья. Если игру делали не криворукие дилетанты, переменная здоровья будет меняться лишь когда она действительно меняется, а не обновляясь каждый кадр, будучи в статичном состоянии.
    Так, отслеживая каждый вызов переменной, при критическом значении произойдет использование предмета либо заклинания, что так же имеют свои айди и хранятся в оперативке.
-4
  • Чем-то невозможным кажется отход бота в безопасную зону, в случае появления неподалеку игроков. Здесь все работает похожим с вышеописанным случаем образом, для отрисовки других игроков все это посылается клиенту, боту даже не нужно брать никого в таргет.
    Чтобы не пугаться каждого обывателя, можно игнорировать наличие неподалеку игроков из списка друзей, соклановцев или союзных граждан, прописав в бота фильтры, ведь каждый современный бот - некоторого рода конструктор, гибко подстраивающийся под нужды пользователя.

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

Из-за наличия в MMORPG возможности делать буквально что угодно мизинцем ноги да одной лишь мышью с чатом, из-за несовершенств защиты, допущенных ради отличной производительности, самым верным способом по сей день остается социальная инженерия.
Однако если вы молчаливый аскетичный и невнимательный пацифист, что бьет мобов с неким автоматизмом, бойтесь банхаммера.