Map Automation

По многочисленным просьбам, помещаю здесь логику автоматизации миссий на карте.

### Общие положения

На карте всего (не считая Подарочных и Титановых) 64 миссии. Их местоположение всегда одно и то же. При каждом обновлении карты проявляются случайно выбранные миссии каждого типа. Их количество и число "серебряных" миссий зависит от Вашего Ранга. Информацию о рангах, типах и количестве миссий - см. на странице Map

Для автоматизации миссий нужно, чтобы карта находилась в такой позиции, в которой видны все миссии (кроме Титановых, конечно - это у нас ещё впереди ☺). Я всегда сдвигаю карту (на минимальном зуме!) вверх и вправо так, чтобы иконка информации наполовину закрывала маленький булыжник.

### Подпрограммы (SUB-Routines)

#### SUB: Click

Клики нужно делать в точке, расположенной под алмазом на уровне слова "Карта". В этой точке проходят шахтёры и пролетают драконы, так что можно собирать и пиво, и метеориты. **→**

Количество кликов, делаемых подряд - дело вкуса. Я рассчитываю примерно на одну минуту.

Клики можно делать часто, несколько раз в секунду (например, каждые 50 миллисекунд), или редко, чтобы дракон-страж клал волну врагов каждым плевком огня (примерно 1140 миллисекунд). У меня на одном персонаже - часто, на остальных - редко, и особой разницы в прогрессе нет (см. график слева).

#### SUB: Hero Upgrades

Простая схема: Кликаем "Усиления" - все 7 кнопок сверху вниз - снова "Усиления".

Сложная схема: открываем "Усиления" (кликом или буквой "u"), распознаём цвет кнопок, кликаем только зелёные. Если не было зелёных кнопок, увеличиваем на единицу счётчик "циклов без усиления". Если были - обнуляем счетчик. Если набралось определённое количество циклов без усиления подряд (у меня - 5) - пора или Босса бить, или Престиж делать.

#### SUB: Map\_Open

* Collect Completed Missions: кликаем несколько раз в верхнюю кнопку "Получить" слева.
	+ Последнее время там глючит, неплохо работает, если прокликать три верхние кнопки раза три.
* Check "Idle Troops" banner.

Если "Отряды бездействуют", запускаем **Map\_Mission**. Если нет - **Map\_Close**.

#### SUB: Map\_Mission

* Загружаем номер следующей миссии **MN** из текстового файла.
* Определяем X и Y для миссии номер **MN**. У меня список забит прямо в подпрограмму, в виде серии IF - условий, отсортированный по типу: миссий и по Х (слева направо): 18 разведок, 16 приключений, 18 боёв, 4 монстра, 4 моря, 4 дракона, 2 подарка (от события - оно, похоже, раз в месяц повторяется). Итого: **MT** = 66 миссий.
* Кликаем в точку с X и Y - туда, где должна быть миссия номер **MN**.
* Миссия открылась?
	+ **ДА -** Проверяем: есть ли зелёная кнопка?
		- ***ДА -*** Жмём её (стартуем миссию).
		- ***НЕТ -*** Кликаем вне окна (сбоку - там же, где открывали карту), чтобы окно миссии закрылось.
	+ **НЕТ -** отдыхаем.
* **MN** += 1
* IF **MN** > **MT** then **MN** = 1
* Save **MN** (overwrite file)
* Check "Idle Troops" banner.

Если "Отряды бездействуют", запускаем **Map\_Mission**. Если нет - **Map\_Close**.

#### SUB: Map\_Close

Просто закрываем карту (крестик или escape).

Можно лишний раз проверить: если нет активных миссий и бездействующих отрядов, поставить **MN** = 1 и записать в файл.

Можно здесь же добавить клик танков и "Получить лут", чтобы флажок на Колизее не проверять из города.

#### SUB: Town

Открываем "Город" (кликом или буквой "t"). Проверяем все здания на предмет наличия красных флажков с белым колокольчиком. Запоминаем, какие из них присутствуют. Можно это делать разными способами, но я просто составляю текстовую переменную (string variable), добавляя первую букву здания, если есть флажок: G, L, A, Q, P (см. следующие 5 подпрограмм).

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

> Замечание: Алхимика (A) и Стражей (Q) можно поменять местами, если вам важнее тратить порошок на развитие стража.
>
>

#### SUB: Guild (G)

Простая схема: Кликаем Гильдию - Экспедиции - два клика на месте кнопки верхней экспедиции - закрываем экспедиции (крестик, или клик вне окошка, или escape) - Магазин гильдии - Запасы - Получить - закрываем Магазин (крестик или escape) - закрываем гильдию (крестик или escape)

Сложная схема:

1. Кликаем Гильдию.
2. Если есть флажок на Экспедициях, открываем Экспедиции, два клика на месте кнопки верхней экспедиции, закрываем Экспедиции (крестик, или клик вне окошка, или escape)
3. Если есть флажок на Магазине гильдии, открываем Магазин гильдии - Запасы - Получить - закрываем Магазин (крестик или escape)
4. Закрываем гильдию (крестик или escape)

#### SUB: Library (L)

Самая сложная подпрограмма, немного похожая на логику миссий карты.

**По метеоритам** - список координат для каждого исследования на текущем дереве. Номер текущего исследования читаем/сохраняем в текстовом файле - так же, как и номер миссии на карте. Кликаем исследование и поступаем соответственно тому, есть ли кнопка "Исследование", и какая она - серая или зелёная. Если нет - переходим к следующему исследованию. Если зелёная - жмём. Если серая - ничего не делаем: ждём, когда принесут больше метеоритов.

**По Огне-Камням** - сначала смотрим, есть ли зелёные кнопки законченных исследований. Если есть - жмём. Дальше есть несколько вариантов.

Сложная схема: Кликаем сверху вниз по сетке исследований 5 х 4 и каждую пытаемся стартануть. После очередной попытки проверяем, есть ли уже два активных исследования. Если да - выходим. Если сделали 5 х 4, а два исследования не запустились - двигаем экран влево, и - по новой. Прекращаем после двух сдвигов.

Очень Сложная схема: то же, с распознаванием цвета кнопок и без лишних кликов (это у меня).

Совсем Сложная схема: то же, со списком исследований текущего дерева в том порядке, в котором их лучше делать, со сдвигами, куда надо, и т.д. (это мечты).

#### SUB: Alchemy (A)

Простая схема: Открываем Алхимика (из города, или буквой "а") - два клика на каждом исследовании - закрываем Алхимика (крестик или escape)

Сложная схема: то же, с распознаванием цвета кнопок и без лишних кликов.

> Замечание: если пора развить стража, соответствующий флажок (значение переменной - 0 или 1) создаётся в **SUB Quarters**, и если он = 1 исследование за порошок пропускаем, пока Стража не разовьём.
>
>

#### SUB: Quarters (Q)

Простая схема: Открываем Магический Квартал (из города, или буквой "g") - Тренировать - 2-я вкладка сверху - Развить - 1-я вкладка - Другой страж - Тренировать (на случай, если основной ждёт развития) - Основной страж - Озарение х **N** - закрываем Квартал.

> Количество озарений **N** регулируем в зависимости от продукции порошка (ранга на карте/количества миссий)
>
>

Сложная схема: то же, без лишних кликов, с распознаванием цвета кнопок и флажков на вкладках, с поднятием флажка для пропуска порошкового исследования у Алхимика (см. выше).

#### SUB: Prestige (P)

**Вопрос**: когда делать престиж?

**Ответ**: без разницы, лишь бы не слишком часто. На диаграмме вверху, В и О открывают Храм, когда есть флажок, и 9 раз его просто закрывают, а на 10-й делают Престиж. А остальные 3 тупо делают престиж каждые 6 часов (раньше было 3, месяц назад увеличил до 6), причём через каждые 2 часа бьют Босса, пытаясь пройти дальше. Эффект тот же.

Простая схема: Открываем Храм (из города, или буквой "e") - Бесплатно - Подтвердить - Начать - Усиления - 4 клика до Усилить макс. - закрыть Усиления. - обнулить счётчик циклов и счётчик "циклов без усиления"

Чуть сложнее - то же самое, с дополнениями:

1. Записываем в текстовый файл, сколько у нас есть жетонов на двойной престиж. Раз в месяц обновляем файл вручную.
2. В начале подпрограммы грузим этот файл в переменную.
3. Если число жетонов > 0, делаем двойной престиж вместо бесплатного.
4. Если число жетонов > 0, уменьшаем его на 1 и перезаписываем в файл.

#### SUB: Daily (Камень сунь = coming soon)

Отдельная подпрограмма для функций, которые делаются раз в день: Таверна, Лавка, Кристалл, Освободительные миссии, Сундуки, Задания и пр.

Если есть вопросы или пожелания, пишите в комментариях - постараюсь ответить.