Как добавить ботов в wow
Бот для WOW - это сторонняя программа, позволяющая автоматизировать многие процессы в игре, тем самым избавляя игрока от нудных однообразных аспектов игры, таких как сбор ресурсов для профессий и т.д. В настоящее время доступен большой ассортимент различных ботов для WOW. Есть боты, обладающие довольно небольшим функционалом, например могут только рыбачить. Помимо таких ботов, существую универсальные боты (например honorbuddy), которые обладают огромным набором различных функций и могут делать практически всё: собирать ресурсы, качать профессии, ходить на поля сражений и фармить очки чести, зарабатывать достижения, выполнять квесты и т.д. Боты делятся на платных и бесплатных. Обычно платные боты обладают гораздо большим функционалом. Практически для любого платного бота можно найти кряк или что-то подобное, позволяющее использовать бота бесплатно. На этой странице можно скачать актуальные версии ботов для ВоВ.
Для наиболее безопасной работы, а также одновременного использования нескольких аккаунтов, рекомендуется использовать приватные прокси-сервера от Proxy-Sale
Боты для WOW скачать:
Honorbuddy
Honorbuddy(крякнутый) - универсальный бот. Умеет делать практически всё: собирать ресурсы, рыбачить, заниматься археологией, качать профессии, ходить на поля сражений, выполнять квесты и т.д. Совместим с WOW 5.1. Подробнее.
MrFishIt - бот для рыбалки в WOW
MrFishIt - это очень хороший и качественный бот для рыбной ловли. Он не будет бегать по лункам, он не будет бегать по локациям – он бегать вообще не умеет. Он умеет стоять на одном месте сутками и ловить рыбу. Это самый безопасный бот, из всех что существуют. Вы можете запрятать вашего персонажа, в какую-нибудь дыру, где проходимость практически нулевая, и он будет забивать ваши сумки уловом. Подробнее.
PQR - rotation bot
PQR Rotation bot - бот для WOW, который будет прожимать за Вас Вашу ротацию. Подробнее.
BimsBot
BimsBot - очень хороший бот для фарма, во всех его проявлениях (сбор ресурсов, гринд мобов, рыбалка и т.д.). Совместим с WOW 5.1. Подробнее .
MMO Crawler bot
MMO Crawler bot - неплохой ботя для wow, при чем абсолютно бесплатный. К сожалению он имеет не такой большой функционал, как его платные аналоги, но для археологии, рыбалки и сбора ресурсов его вполне достаточно. Подробнее.
Создание несложного бота для WoW, программирование маршрутов
Я отлично понимаю, что использование ботов запрещено лицензионным соглашением Blizzard. Это может привести к перманентному бану аккаунта. Я бы расстроился, узнав, что кто-то, воспользовавшись материалами данного поста, стал наживаться, ухудшая экономику игры и вызывая неодобрение других игроков. И да, я понимаю, то, что делаю я, нечестно.
Цель поста — рассказать о моем опыте и описать сложности, с которыми я столкнулся, узнать у вас, что можно было сделать лучше.
Предыстория
Коллекционирование
Люди, далекие от индустрии игр, могут без ущерба пропустить этот раздел. В игре WoW есть такой аспект — коллекционирование. Как и в нумизматике/филателии, чем больше у вас, например, верховых животных, тем вам приятнее. Точно так же важен процесс получения. Какие-то драконы требуют для получения выполнения десятка задач («ачивок»), какие-то — войти в лучшие 2% игроков в мире по навыку управления персонажем (сражения на арене), что-то можно просто купить за игровую валюту, что-то — за реальные деньги в магазине. Подробности можно почитать в другом источнике, речь не об этом. Так вот, некоторые из коллекционируемых предметов падают в подземелье с шансом около 0,5%. Если шанс выпадения дается игроку лишь раз в день (иногда в неделю), вам потребуется время, соизмеримое с годом, для забегов. И все ради того мгновения получения заветного выстраданного предмета. Чем больше вы потратили времени и сил на "фарм" предмета, тем приятнее вам его в итоге получить. По моему опыту радость очень мимолетна.
Зависимость шанса выпадения от количества попыток
Небольшое отступление. Какова вероятность того, что за шесть бросков игральной кости выпадет «6»? Очевидно, что . То есть, наше событие является противоположным событием к невыпадению «6» за все шесть попыток.
Используя второй замечательный предел, нетрудно показать, что .
А вероятность получения коня с шансом «дропа» в 1% за 100 попыток примерно равна 63%.
Некоторые игроки, сделав триста попыток считают, что вот-вот повезет — ведь вероятность облома за такое большое число попыток мала. Их ждет разочарование, ведь за следующие 100 им повезет снова лишь на 63%. А старые труды не дают ничего.
Задача
Есть подземелье. Нужно пробежать по нему с виражами, выполнить пару несложных задач по пути. Убить финального босса и поднять добычу. Чтобы не бежать к выходу пешком, телепортироваться в ближайшую деревню и долететь ко входу. Повторить 5 раз.
Карта подземелья и маршрут:
Задача максимум. Запустил и ушел на пол часа. Процесс полностью автоматический.
Задача минимум. Запустить и сидеть рядом, читать или играть на гитаре, поглядывая на монитор. При необходимости изредка помогать персонажу выбраться из непредвиденной ситуации.
Важно иметь возможность при желании описать маршрут другого подземелья, не залезая в код.
Подход
Движение и позиционирование
- Вам требуется воспроизвести первоначальное положение персонажа и направление его взгляда. Если вы перед автоматическим забегом повернетесь слегка в другую сторону, вы побежите кривовато и рано или поздно упретесь в стенку
- Если вы записали точные координаты и угол, то поставить персонажа туда же вам также не удастся. Реагирует на кнопки он как бульдозер и поворачивается так же. А даже ошибка в 1 градус через 100 метров выльется в метра (ширина дверного проема)
- Время нажатия и отпускания кнопок тоже далеко от идеала. Это похоже на передвижение по квартире с закрытыми глазами. Вроде бы шесть шагов вперед и строго направо, но на деле вместо туалета мы оказываемся в ванной. Попробуйте также открыть дверь с закрытыми глазами, не щупая ручку
Это отрывок из списка команд робота по перемещению. Указаны координаты x, y и угол поворота в пространстве в радианах.
Клавиши и команды
По пути надо нажимать кнопки и кликать мышкой, открывать двери, где-то нужно ждать. Не хотелось бы выписывать это все вручную. Да и искать среди команд с координатами (в примере выше), куда же что вписать, не очень приятно. Поэтому единовременные нажатия на кнопки и клики мы будем писать параллельно с записью координат.
Отдельно упомяну про «pitch» (наклон). Если персонаж смотрит в горизонт, он равен нулю. Если под ноги, наклон отрицателен. А в небо — положителен. Измеряется в радианах. Его пришлось добавить, как только персонажу захотелось летать.
Модули
- Мы напишем addon для интерфейса WoW, который будет определять позицию персонажа, азимут, наклон. Правилами игры аддоны ничуть не запрещены, указанная информация доступна через игровое API внутри аддона. Он будет рисовать это все на экране. Сам аддон пишется на языке Lua, потому что так решили разработчики игры.
- В аддоне можно определять кое-что, можно рисовать, но вот заставить персонажа двигаться нельзя. Еще в аддоне нельзя писать в файл, спрашивать у игры, где стены, где враги, да и много чего еще нельзя. Поэтому нам нужно написать внешнее управляющее приложение. Я не стал оригинальничать и использовал AutoIt. Это действительно быстро и удобно, хоть и немного дико для меня, привыкшего программировать на строго типизированных языках.
- Приложение должно уметь записывать мои действия. Назовем этот функционал Recorder
- Приложение должно уметь воспроизводить запись. Назовем Player
- Записанные действия и координаты мы будем хранить в текстовом файле построчно. Их можно и нужно редактировать вручную. Добавлять костыли, удалять мусор. Скажу сразу, это самое сложное.
Addon для WoW на Lua
Аддон для WoW это скрипт на языке Lua. Язык полноценный, гибкий, эффективный. Делать с системой ничего нельзя. Делать с игрой можно все, но только в рамках того API, которое предоставляет вам игра. Так как Blizzard не хочет, а точнее, запрещает игрокам и предпринимателям писать ботов, то и API кроме упомянутых выше координат почти ничего полезного и не предоставляет. Разумеется, полезного для наших нужд. Неплохой гайд по написанию аддонов сразу с описанием Lua можно найти здесь. Ну а я опишу свой вариант.
Манифест и GUI
Подробности и источник. В папке World of Warcraft\Interface\AddOns\ создаете папку HelloWorld. В нее кладете HelloWorld.toc с содержимым
Если бы я хотел понарисовать формочек и кнопочек (а для этого обычно и нужны аддоны), последней строчкой я бы вписал еще HelloWorld.xml с описанием этих кнопочек. В дизайне и написании такого GUI-аддона хорошо помогает AddOn Studio. Мощный инструмент на базе MS Visual Studio.
Но так как я минималист, рисовать мы в этот раз не будем. Кроме того, это даст мне возможность показать, что создавать формы можно динамически из самого скрипта без использования дизайнера. Рассмотрим же HelloWorld.lua. Редактировал я его в Notepad++. Чтобы игра подключила изменения в HelloWorld.toc, надо перезапустить ее целиком. А вот изменения в HelloWorld.lua можно подхватить, написав в консоли команду /reload. Поэтому процесс программирования и отладки не такой болезненный.
Слеш-команды
Кстати, об отладке. Советую сразу добавить обработчик слеш-команд:
Для этого определим переменную вида SLASH_ИМЯn. Где ИМЯ уникально для всех аддонов, а n либо пусто, либо порядковое число с 1. И добавим функцию с именем ИМЯ в некий объект. Может показаться странным для программиста на C++, что мы эту функцию-обработчик нигде явно не регистрируем. Да и со строковой переменной связываем чисто по имени переменной. Но вот такая она, мощь и магия Lua.
Теперь команда в WoW-консоли /helloworld выполнит требуемые вам действия: позволит вывести отладочную информацию, а для простейших аддонов, собственно, произведет все то, ради чего вы их писали.
Ну и тут же я показал WoW API, которое достает требуемую информацию.
Обработчик событий
Мы создаем фрейм типа "Frame" и подключаемся на действия "OnEvent" и "OnUpdate" командами
Обработчик OnUpdate будет вызываться после каждого кадра — то, что нам нужно для обновления координат. А OnEvent будет вызываться при других желаемых событиях. Из него будем дергать соответствующие функции:
Что еще удобнее в Lua, это то, что вот такой конструкцией можно вызвать уникальные обработчики вида
Здесь PLAYER_LOGIN — это событие, которое рассылается во все фреймы при входе в мир и перезапуске пользовательского интерфейса. Другие события: PLAYER_LEAVE_COMBAT, QUEST_FINISHED, PLAYER_EQUIPMENT_CHANGED, PLAYER_DEAD, — и еще очень много. С полным списком можно ознакомиться тут. Зарегистрируем то событие, которое мы хотим обрабатывать, командой
Передача информации
Так как в аддоне нельзя ничего делать с системой, информацию из WoW другой части бота мы будем передавать при помощи изменения цвета пикселей. Как это делал rednaxi в своем посте. Но только мы будем передавать цветом не один бит информации, а будем сериализовать данные и передавать их больше.
Рисование
Так как для рисования тоже нужны фреймы, создадим их
Думаю, тут все понятно и без комментариев. Подробности по каждому методу ищите сами.
Сериализация
У нас есть две координаты и два угла. Все — числа с плавающей запятой. Компоненты цветов пикселей в аддоне тоже числа с плавающей запятой, но от 0.0 до 1.0. Кроме того, известно, что сохранится компонента цвета в одном байте. Поначалу я каждую координату сохранял в одну компоненту цвета. В итоге точность позиционирования в локации составляла 1/255 от размера карты. Получалось как в GPS: вроде координаты есть, но вести машину на автомате (управление компьютером без человека) по дороге по навигатору не выйдет. Так что пришлось давать два байта. Как повыгоднее сохранить одно дробное число в два байта? Я сделал так
Функция modf возвращает целую и дробную часть числа через запятую. Здесь используется параллельное присваивание — еще одна полезная фишечка Lua.
При таком подходе я использую полную мощность каждого из двух байтов, в которые сохраняется координата. Ну а азимут и наклон не так требовательны к точности, лишь бы укладывались в отрезок 0.0-1.0. Получается вот так:
Теперь при перемещении по миру в левом верхнем углу два квадратика 10 на 10 будут хаотично менять свой цвет.
Создание простого бота для онлайн-игры world of warcraft
Думаю, тема ботов не оставляет равнодушным ни одного игрока в онлайн-игры. Кого-то они раздражают, кто-то ими интересуется, а кто-то их использует. Существует и некоторое количество людей, довольно маленькое относительно остальных трех групп — это люди, которые этих ботов разрабатывают.
Я предлагаю присоединиться к этой небольшой касте людей и посмотреть изнутри процесс разработки бота.
Предыстория
Как-то раз в выходные я зашел за своего персонажа в world of warcraft. Делать было в игре нечего — все рейдовые боссы уже убиты, друзей для похода на арену нет, остается только выполнение квестов и неспешная добыча золота. Квесты я не очень люблю и свое свободное время в игре провожу обычно возле аукциона — с помощью специальных аддонов скупаю что подешевле и потом продаю подороже, выигрывая на разнице в цене.
Соответственно в голову пришла мысль автоматизировать эти рутинные действия — прийти на аукцион, запустить аддон, покликать в нем на кнопки, дойти до почтового ящика, забрать вещи с почты, вернуться на аукцион и снова запустить аддон, и далее по кругу.
В качестве инструмента для реализации был выбран Auto It, но потом оказалось что задача не такая тривиальная, как выглядит на первый взгляд, и пришлось подключать дополнительные инструменты. Сразу скажу, что никакие «грязные» методы вроде чтения памяти процесса или перехвата траффика я не использовал, только autoit для имитации кликов мышки и клавиатуры и чтения цветов пикселей с экрана.
Предупреждение
Все описанные действия вы производите на свой страх и риск, правилами игры это запрещено и может привести к перманентному бану аккаунта.
Передвижение
Собственно, наверное самая интересная тема при разработке бота — это реализация его перемещения по миру. Сначала я думал что проблем с этим не возникнет — путь у нас простой: аукцион это здание, в котором на такой площадке стоят NPC, с которыми необходимо поговорить чтобы начать торговлю, а почтовый ящик стоит прямо на выходе из аукциона, немного слева. Персонаж поэтому все время ходит как бы буквой «Г», туда и обратно
Я думал что просто засеку сколько времени нужно жать «вперед», сколько «вправо» или «влево» чтобы прийти в нужную точку и просто это захардкожу. Но реальность показала что это сделать нереально: если так делать то возникает проблема с пингом: персонаж иногда пробегал лишнего, иногда слишком сильно поворачивался, способ был совершенно нерабочим.
Но отчаиваться я не стал и начал думать что делать дальше. Казалось бы следующее решение — каким то образом определять где в данный момент находится персонаж, и в зависимости от этого расчитывать куда ему дальше двигаться. Только каким образом получить данные о позиции и угле поворота персонажа без чтения памяти процесса игры? Анализировать целиком картинку или какие то отдельные ее части довольно сложно, скриншот выхода из аукциона:
После недолгих раздумий было придумано решение проблемы: надо писать аддон для WoW, который будет получать данные о текущем положении персонажа (координаты и поворот персонажа) и давать команды, куда надо двигать персонажа. Внешне это должно выглядеть как цветной «семафор» который будет отображать необходимое действие: двигаться вперед, вправо или влево, или поворачиваться. Когда персонаж приходит в необходимую точку семафор должен символизировать что персонаж пришел на место и необходимо выполнять следующее действие. Так как у меня персонаж перемещается между двумя точками, то и семафоворов я решил делать 2: один будет командовать по дороге к аукционеру, а второй — по дороге к почте. С алгоритмом вроде разобрались, далее будут примеры кода (xml — шаблоны аддонов, lua — собственно исходники аддона, и autoit), местами кривоватые и грязноватые, но думаю простительно: на этих языках писал первый раз, и еще до конца не разобрался.
Для реализации семафоров пришлось изучить процесс разработки аддонов для WoW, он очень хорошо описан в WoWwiki
Самая первая версия семафора, она показывала только повернут ли я лицом к аукционеру в данный момент, и подсвечивала зеленым соответствующие блоки:
В качестве основы для своего аддона я взял hello world! аддон, описанный в воввики.
Изначально он не имел никаких графических элементов, соответственно понадобилось добавить в него вывод прямоугольников, а также повесить обработчик . В итоге мой HelloWorld.xml стал выглядеть примерно так:
Соответственно в HelloWorld.lua необходимо написать соответствующие обработчики. Для того, чтобы узнать, на какой угол в данный момент повернут персонаж, используется функция GetPlayerFacing, которая возвращает угол относительно севера в радианах. Экспериментальным путем было выяснено, что когда персонаж смотрит прямо на аукционера — это угол 5.42 радиана. Но повернуть персонажа точно на этот угол довольно сложно, поэтому допускаем небольшой разброс (5.35 — 5.5 радиана).
Теперь напишем скрипт на autoit, который будет смотреть какой цвет в данный момент у семафора, и поворачивать персонажа в необходимую сторону, и заодно создадим каркас нашего приложения для автоматической торговли на аукционе. Опытным путем было выяснено что цвет пикселя 65280 — это зеленый.
Всё, сохраняем аддон, запускаем WoW, запускаем скрипт AutoIt и смотрим на персонажа, который сам поворачивается лицом в нужное направление. Но кроме поворотов надо также реализовать перемещение персонажа вперед-назад и вправо-влево, чтобы он мог приходить к аукционеру от почтового ящика. Удачно, что на пути персонажа нет никаких препятствий, иначе задача была бы сложнее.
А так просто добавляем в наш xml дополнительные фреймы для еще 5 кнопок семафора: положение Ок!, двигаться вперед, двигаться назад, двигаться вправо и двигаться влево, и в lua файле дописываем код, который будет показывать, куда нам небходимо двигаться в данный момент. Эталонные координаты где нам нужно находится мы знаем. Казалось бы тоже все просто, но не тут то было — как мы видели по карте, и уже выяснили когда делали повороты, движение у нас идет под углом к северу. Т.е. при движении у нас постоянно меняются обе координаты персонажа. Считать при этом куда двигаться дальше не очень удобно, поэтому воспользуемся известными со школьного курса формулами для поворота системы координат на заданный угол (в нашем случае — 5.42 радиана)
Теперь при движении к/от аукционера и вправо-влево у нас будет меняться только одна координата. Допишем соответствущий код в наш lua файл и он примет примерно следующий вид:
Все, теперь у нас получился примерно вот такой семафор:
Осталось дописать по аналогии скрипт AutoIt чтобы когда загораются сигналы семафора он посылал соответствующие кнопки в игру. Единственное с чем я столкнулся — он не дает посылать нормально буквенные кнопки (A/D), поэтому пришлось забиндить стрейф на F6/F7.
Вот собственно и все, после этого мы получаем персонажа, который автоматически поворачивается, и потом бежит и встает возле аукционера.
Объем текста вышел уже достаточно большим, если тема окажется интересной хабрасообществу то в следующих частях расскажу о том, как я реализовывал взаимодействие с аукционером и как получал почту из почтового ящика.
Как использовать ботов В WoW
Я использую ботов уже более 3 лет. На начальных этапах баны, безусловно, были. Впервые меня забанили за использование глайдера.
Я читал некоторые гайды о том, как «боттить в WoW» и там, конечно, была полезная информация, однако я бы многое добавил. Я использовал ботов для прокачки персонажей, но в настоящий момент в большинстве случаев пользуюсь ими для своего игрового прогресса.
Я вообще не писатель гайдов, но я попытаюсь расписать знания, которые я накопил. Я не лучший боттер всех времен, но и далеко не самый худший.
Какие боты использовать?
Всех ботов можно найти в каталоге читов на нашем сайте.
MrFishIt – лучший бот для рыбалки.
SGather – лучший бот для фарма руды и трав.
Pirox FishBot – очень неплохой бот для рыбалки.
Все боты, которые я выкладываю, полностью рабочие и протестированы лично мной, так что можете быть уверены об их качестве и работоспособности.
1. Используйте бота в разное время. Не думайте «Я использую бота 4 часа каждый день» или «я использую бота каждый день в 7 утра». Всегда меняйте время и продолжительность.
2. Если вы используете стандартный профиль бота, то следите за ним каждые 30-45 минут. Нельзя оставлять без присмотра стандартные профили.
3. PVP боты очень плохая идея. У меня занимает приблизительно 5 секунд, чтобы определить бота на БГ.
5. Если используете бота для прокачки уровня, то никогда не лутайте добычу с мобов! Такой вид фарма будет менее подозрительным со стороны других игроков.
6. Если планируете фармить ингридиенты для золота, то сделайте двух альтов с разными именами, которые не будут иметь никакого отношения к основному персонажу. Также пригодятся 2 аукционных альта.
7. Замечание к пункту номер 6. Никогда не выставляйте на Аукцион больше чем 5 стаков с одного персонажа. Если я увижу таких игроков, то сразу подозреваю их в использовании бота и смотрю по армори, что это за такой «перец».
Кстати я видел многих идиотов, которые при использовании бота очень недовольны, что их место занято другими боттерами и кидают на них рапорт. Никогда не отсылайте рапорт на другого боттера, ведь это только привлечет к вам внимание со стороны Гм-ов. Если вы такое встретите, то просто поменяйте время использование (то есть первый пункт).
8. Не подставляйте своего бота, то есть не выносите только 2 заклинания на панель действий. Выражения типа «я докачался до 80 только двумя способностями» здесь не прокатят. Используйте в настройках бота все доступные способности. Ведь есть большие отличия бота и нуба. Больше заклинаний для бота – меньше шанс быть замеченным. Ведь мы хотим казаться нубом, но не ботом ^_^.
9. Временами выходите из игры. Однако в разное время и на разные промежутки.
11. Разбавляйте ваши монотонные действие. Например каждый день ходите на БГ или в случайные рейды. Поверьте, это очень поможет снять подозрения.
Программа изменяет ваш ip, поэтому можно смело звонить / писать в службу поддержки и говорить, что аккаунт был взломан и на него поставили бота.
Эти легкие подсказки очень помогут в вашем нелегком деле. Удачного использования.
Читайте также: