Создаём прохождение для АвтоБота

По просьбам трудящихся представляем Вам конструктор ботов для любого приключения. С помощью него можно создать автоматическое прохождение под собственные потребности: своих генералов, состав армии и прочее и прочее.

Возможно результат будет не столь шустрым, как готовый автоприкл (например Юный Али). Но это с лихвой компенсируется универсальностью)) Почти все основные возможности готового бота доступны для редактирования «под себя»

Что понадобится для создания автоматического приключения:

  1. Текстовый редактор, блокнот вполне сойдёт. Notepad++ рекомендуется.
  2. Скриншотилка, личный выбор — Lightshot
  3. Терпение и усидчивость))

Как создать автоматическое прохождение для любого приключения будет проще всего объяснить на конкретном примере. Будем создавать автомат для приключения «Пиратский остров». Поехали….

Создание автоматического прохождения любого приключения на примере «Пиратского острова».

Часть первая, домашняя, подготовительная.

Данное приключение будем проходить по простейшему гайду, а именно 3 нинзи, каждый топает на своего вожака с 235 нубами с места высадки. Армию будем перевозить автобусом (Интендантом) В нинзь в бою засунем по 55 пушек, чисто для наглядности. У Вас нет 3х нинзь?) не беда… Заменой нескольких строк в файле прохождения можно выставить любое их количество))

Всё управление прохождением происходит с помощью текстового файла. Создадим новый файл «пират.txt».

Данный файл поддерживает следующий синтаксис: Команда=Параметр. Список всех команд и параметров доступен в файле справки.

С чего начнём? Конечно же с открытия приключения. Берём в руки скриншотилку и делаем скрин приключения в звёздном меню. Нужна маленькая картинка, моськи пиратов видно, и пойдёт. Приключение Пиратский остров в звёздном меню Сохраняем наше творчество в папку media/users/pirat.bmp Прописываем в файлик первой строкой: ОткрытьПриключение=pirat.bmp,pirat2.bmp и… можно тестировать))

Вбиваем «пират.txt» в Автоботе и жмём кнопку «Запуск» Приключение открылось, всё отлично, идём далее. Скриним и сохраняем media/users/pirat2.bmp, это картинка уже ОТКРЫТОГО приключения. Примерно такая:

Приключение Пиратский остров открыто
Собственно первая строчка отработала, до начала следующего приключения она нам не нужна, заблокируем её звёздочкой (*), получим *ОткрытьПриключение=pirat.bmp,pirat2.bmp ВНИМАНИЕ!!! знак * в начале строки ИСКЛЮЧАЕТ её из прохождения. Там можно писать комментарии для себя или, как в нашем случае, временно заблокировать её для дальнейшего тестирования.

Строка 2: набираем Интеданта. Что означают цифры-буквы расписано тут.

Набрать=Интедант,1,П,3000,0,0,0,0,0,0,0,165,1

Тестируем набор. Всё работает, отлично! Закоментируем эту строчку звёздочкой.

Приключение открыто, армия готова, вперёд воевать! Отправляем трёх нинзь и интенданта в приключение. Картинка открытого приключения (pirat2.bmp) у нас есть, пишем 3 и 4 строку:

ОтправитьВприключение=pirat2.bmp,Нинзя,3,-

ОтправитьВприключение=pirat2.bmp,Интедант,1,2000

Внимание! Важный момент, если нам захотелось изменить генерала (Клаус, ЗолотойИнтендант), который повезет войска, то вместо 2000 указываем реальное число войск в выбранном генерале, которое зависит от его прокачки на вместимость. Подробности см. в Справке.

Тут вроде бы всё просто, так же тестируем и смотрим как уезжают наши генералы. Закомментировали строчки? Отлично, следующая! Переходим в приключение пятой строкой:

ПерейтиВприкл=pirat2.bmp

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

Ах да… Генералы то ещё в пути… Что ж.. Путём сложных математических действий узнаем сколько секунд в 15 минутах (или какое у Вас время на путь) Рисуем строку 6: Ждем=900

Собственно на этом часть первая, подготовительная, закончилась.

Часть вторая, воинственная.

Если в первой части мы сделали всего два скриншота для отправки генералов и открытия приключения, то во второй части мы будем вычислять координаты лагерей на карте приключения, что естественно дольше. ВАЖНО!!! Все координыты относительны, т.е. измерить это достаточно один раз. На другом компьютере, браузере а так же у друзей Ваш текстовый файл также будет работать. Координаты измеряются в пикселах.

Особенности координат у бота:


То что координаты измеряются по оси Х (по горизонтали) и оси Y (по вертикали) думаю уточнять не стоит, в школе учились все. Единственное замечание — точка X=0,Y=0 находится в левом ВЕРХНЕМ углу Вашего монитора.

Исполюзуются три (а фактически два) типа координат:

  1. Общий размер игрового поля с точкой 0,0 в левом верхнем (ну почти) углу монитора.
  2. Точка привязки (центровки) карты приключения. Объект (скала, дом, кусок ландшафта… … …) с помощью которого мы двигаем карту в нужное место игрового поля, что бы атакуемые лагеря влезли в монитор.
  3. Координаты лагерей (врагов или генералов) относительно точки привязки.

Теперь подробнее с картинками:

Общий размер игрового поля.
Так как у всех разные мониторы, браузеры и прочее, то размер игрового поля будет у всех разным. Приведём всё к общему знаменателю и сделаем точкой отсчёта значёк книги заданий у аватара. Он и будет абсолютным нулём нашего игрового поля, Это к п.1 о координатах, где сказано что 0,0 это почти верзний левый угол монитора.
Аватар
Точка привязки (центровки) карты приключения.
Выбираем произвольный объект на карте приключения (на больших картах возможно несколько) за который мы будм цепляться и двигать карту так, что бы были видны нужные нам лагеря врагов. Координаты точки привязки на игровом поле выставляются относительно значка !
Координаты лагеря.
Координаты лагерей измеряются относительно точки привязки. Как бы мы ни выставляли карту приключения на игровом поле — координаты конкретного лагеря НЕ ИЗМЕНЯТСЯ!!!

Боёвка

Для начала определимся с точкой привязки. Это может быть любой фрагмент на карте, но желательно выбирать уникальный и такой, где нет анимации, оленей и прочего видоизменения картинки. Я выбрал домик сверху карты. Заскринил и сохранил в media/users/pirat_privazka.bmp Точка привязки

Выбираем и скриним небольшой кусочек, этого вполне достаточно. От него и будем плясать. При съёме координат смотрим на параметр графики, который выдаёт программа для съема. Он должен быть наименьшим, идеально до 30. ВАЖНО!!! Проверяем точку привязки на уникальность!!! Для этого закрываем её, например иконкой приключения, или сдвигаем в невидимую область. Если программа для съёма координат не найдёт её или найдёт (получается ошибочно) с параметром графики больше 100, то всё отлично. Если нет — меняем точку привязки.

В пиратах мы атакуем три лагеря, посему достаточно измерить эти три пары координат. Открываем программу coords.ехе, вбиваем нашу точку привязки, в нашем случае pirat_privazka.bmp. Наводим мышку на лагеря и получаем результат измерений. Точность измерений можно проверить сразу. Если мышка наводится точно на центр лагеря — всё отлично! Если немного мажет — то подправляем и записываем результат.

Погнали заполнять восьмую строчку. Точка привязки есть, координаты первого лагеря есть, состав для нападения помним. Получаем:

НабратьИатаковать=Нинзя,1,П,3000,0,0,0,0,0,0,0,55,-210,256,pirat_privazka.bmp,550,0,0,100

Жирным выделено:

-210,256 — координаты первого вожака, подогнанные с черновика.

550,0 — куда двигать карту (координаты точки привязки)

0,100 — смещение карты при отсутствии точки привязки на мониторе. На моём ноуте её не видно изначально.

Работает?)) Неа… ничерта не работает((( А всё почему? Крутим барабан и… Правильный ответ: армия то у нас в автобусе, выгружать то кто будет?))

Седьмая строка: Набрать=Интедант,1,П,0,0,0,0,0,0,0,0,0,1

Вообщем первый нинзя пошёл.. Подождём минутку, шобы не перехватило лишнего, строка 9: Ждем=60

Отправим второго и третьего с небольшим интервалом, координаты то знаем (и правим если не точные):

строка 10: НабратьИатаковать=Нинзя,1,П,3000,0,0,0,0,0,0,0,55,-73,24,pirat_privazka.bmp,550,0,0,100

строка 11: Ждем=60

строка 12: НабратьИатаковать=Нинзя,1,П,3000,0,0,0,0,0,0,0,55,135,195,pirat_privazka.bmp,550,0,0,100

УРААА!!!! Приключение пройдено, можно идти домой… Не с пустыми же туда руками топать)) Берём в руки секундомер и смотрим сколько последнему Нинзе топать до лагеря. Прибавим для надёжности чутка времени и получим:

Перед закрытием еще осталось собрать остатки армии в Интеданта

строка 13: СборОстатковАрмии=Интедант,1,П

строка 14: ЗавершитьПрикл=410 и мы на домашнем острове.

Подождём возврата генералов… строка 14: Ждем=900 или не стоит?)

И если есть желание повторить приключение много раз, то убираем лишние звёздочки и прочее и пишем в 15 строке ПОВТОРИТЬ, тогда бот будет бегать пирата пока они не кончатся.

Часть третья, финальная.

Собственно всё, одно приключение готово, можно приступать к другим)) Предложения, вопросы и прочее по функционалу ждём))

 

(c) Сергей_Я (mysettlers.ru)

Вам может также понравиться...

Добавить комментарий