Monday, February 07, 2011

Создание простого бота для онлайн-игры world of warcraft

2a946e0a.png

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

Предыстория

Как-то раз в выходные я зашел за своего персонажа в world of warcraft. Делать было в игре нечего — все рейдовые боссы уже убиты, друзей для похода на арену нет, остается только выполнение квестов и неспешная добыча золота. Квесты я не очень люблю и свое свободное время в игре провожу обычно возле аукциона — с помощью специальных аддонов скупаю что подешевле и потом продаю подороже, выигрывая на разнице в цене.
Соответственно в голову пришла мысль автоматизировать эти рутинные действия — прийти на аукцион, запустить аддон, покликать в нем на кнопки, дойти до почтового ящика, забрать вещи с почты, вернуться на аукцион и снова запустить аддон, и далее по кругу.
В качестве инструмента для реализации был выбран Auto It, но потом оказалось что задача не такая тривиальная, как выглядит на первый взгляд, и пришлось подключать дополнительные инструменты. Сразу скажу, что никакие «грязные» методы вроде чтения памяти процесса или перехвата траффика я не использовал, только autoit для имитации кликов мышки и клавиатуры и чтения цветов пикселей с экрана.

Предупреждение

Все описанные действия вы производите на свой страх и риск, правилами игры это запрещено и может привести к перманентному бану аккаунта.

Передвижение

Собственно, наверное самая интересная тема при разработке бота — это реализация его перемещения по миру. Сначала я думал что проблем с этим не возникнет — путь у нас простой: аукцион это здание, в котором на такой площадке стоят NPC, с которыми необходимо поговорить чтобы начать торговлю, а почтовый ящик стоит прямо на выходе из аукциона, немного слева. Персонаж поэтому все время ходит как бы буквой «Г», туда и обратно

Read more: Hhabrahabr.ru