Здравствуйте, гость ( Вход | Регистрация )

> Небеса: уникальная игра!, Поиск хода
cirus
сообщение 27.7.2016, 12:02
Сообщение #1


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



https://www.youtube.com/watch?v=Iw_JvtqqMt4...eature=youtu.be
Код в файле блокнота. Прикрепленный файл  код.zip ( 4,91 килобайт ) Кол-во скачиваний: 1962
Для корректной работы версия пилота не ниже 2.37.
В первом бою использовался этот скрипт. Нужно только указать кнопку хода и левую верхнюю картинку.
Ищет возможность собрать 6 в ряд, потом 5 и т. д.
Т. е. если не нашлось 5 в ряд, то в логе будут все варианты собрать 4 в ряд (если такие есть), иначе все по 3 в ряд. Варианты хода выводятся в формате: Строка Столбец.
Ход будет сделан по первой найденной комбинации.
На поиск картинок и вариантов хода уходит от 100 до 400 мсек. Зависит от того какая комбинация найдена. Тройки искать дольше всего.

Во втором и третьем бою использовался доработанный скрипт, в нём ход выбирается по приоритету и пишется в лог какая комбинация нашлась. Если найдётся несколько вариантов хода, то они будут отсортированы.
Надо:
1) Раскомментировать строки:
Код
set %imya [1] Череп
set %imya [2] Красный
set %imya [3] Жёлтый
set %imya [4] Крест
set %imya [5] Зелёный
save_array %output C:\ColorOutput.txt
sort_array %left 5

2) В case'ы switch %arr [#z 3] подставить цвета из файла C:\ColorOutput.txt. Их должно быть 5.
Получится что-то вроде этого:
Код
switch %arr [#z 3]
    case 10013920: set %a [#i #j] 1       // череп   (если вариант с черепами найден, то будет выбран он)
        break
    case 196690: set %a [#i #j] 2         // красный  (если не найдены черепа, то красные камни)
        break
    case 41690: set %a [#i #j] 3         // жёлтый (иначе желтые)
        break
    case 8886946: set %a [#i #j] 4       // крест
        break
    case 95004: set %a [#i #j] 5          // зелёный
end_switch

Цвета указанные в case должны быть всегда те же что в файле C:\ColorOutput.txt, иначе будет ошибка. Т. е. надо понимать что изменив координаты в init_arr %LevVerh (1), изменятся и полученные цвета, т. к. findcolor будет брать 36 цветов отсчитывая от этой точки. Т.е. указали нужные координаты левой верхней картинки, запустили скрипт (чтобы узнать цвета относительно этой точки), изменили case на нужные цвета и больше менять координаты левой верхней картинки не нужно, иначе придётся снова менять case.
%imya [1] будет соответствовать первому case, %imya [2] второму, т. е. если в первом case указать цвет красных камней, то и в %imya [1] нужно написать красный.

Работа скрипта основана на регэкспах. Находятся 36 цветов, создаётся сетка 6*6 с числами от 1 до 5 где каждая цифра отвечает за свой цвет, делается поиск регэкспом по шаблону.
Например, (\d)\1\1\1\1 ищет подряд 5 чисел (любых, 1 это не число, а обратная ссылка на первую группу (\d)). Регэксп возвращает позицию найденного элемента. Т. е. если строка 133333, то получим 2ю позицию. Понятно что проверить надо первые числа соседних строк.

Добавлена возможность работы в перекрытом (не свёрнутом) окне Прикрепленный файл  код1.zip ( 5,08 килобайт ) Кол-во скачиваний: 1935
Если ничего не менять скрипт тоже будет работать, но только в активном окне.
Для корректной работы версия пилота не ниже 2.38.
Для перекрытого окна:
Запустить скрипт: http://uopilot.tati.pro/index.php?title=См...ие_между_окнами
Полученные значения вписать вместо 0 в строку:
Код
init_arr %workwindow (1) 0 0

Закомментировать строку:
Код
set #handle 2

Раскомментировать строку:
Код
//set #handle findwindow (Небеса)

Получится:
Код
init_arr %workwindow (1) 8 78            // числа могут быть другие
//set #handle 2                           // тип поиска
set #handle findwindow (Небеса)


Обновление
Доработанный скрипт: Прикрепленный файл  Nebesa.zip ( 7,42 килобайт ) Кол-во скачиваний: 1932
В архиве сам скрипт и скрипт для настройки. На видео показано как настраивать. Настройка для перекрытого окна тоже есть. https://youtu.be/ahGqGXk9cqY
Внесённые изменения:
1. В лог выводятся все варианты хода.
2. Добавлен расчёт стоимости хода.
Код
// имя стоимость цвет
init_arr %imya (1) Череп 6 11988223
init_arr %imya (2) Красный 5 196688
init_arr %imya (3) Жёлтый 3 171991
init_arr %imya (4) Зелёный 1 393204
init_arr %imya (5) Крест 1 7834774

Череп стоит 6, красный 5. Т. е. если будет найдено 3 черепа и 3 красных будет сделан ход черепа, т. к. 3 (черепа)* 6 (стоимость) = 18, больше чем 3 (красных) * 5 (стоимость) = 15.
Стоимость можно менять в зависимости от того что приоритетнее. Указывать число от 1 и выше.
3. Ходы где будет составлено 2 ряда тоже просчитываются. Т .е . если найдены ходы: 3 черепа и 3 красных + 3 жёлтых, то будет сделан ход с красным и жёлтым, т. к. 3 черепа это 18 очков, а красный с жёлтым это 24 (3*5 + 3*3).
4. Ход из 5 и 6 в ряд всегда в приоритете. Если такой ход возможен, то он будет сделан независимо от стоимости других ходов.

Обновление 2
Добавил рандом для кликов +-5 пикселей.
Добавил проверку что камни не перемещаются после того как ход перешёл к персонажу, чтобы избежать лишние просчёты ходов.
Код
set #wait 500

Время, в течение которого, камни не должны перемещаться. Подобрать подходящее значение.
Особо не тестил, но должно работать.
Прикрепленный файл  Небеса2.zip ( 5,87 килобайт ) Кол-во скачиваний: 1707

Обновление 3
Уменьшил код в 3 раза.
Изменён принцип работы скрипта.
Настраивается также как предыдущие.
Прикрепленный файл  Nebesa3.zip ( 4,24 килобайт ) Кол-во скачиваний: 1865

Обновление 4
Добавлен поиск количества манны вначале каждого хода. Если число найдётся, то результат будет в %result [1 1].
Добавил ход молнией, квадратом и крестом. При просчёте хода для квадрата и креста манна в приоритете.
Если манны нет, делается обычный ход, теперь в приоритете манна, а не черепа.
Если манны хватает только на квадрат или крест, то делается ход ими.
Если манны хватает ещё на молнию, то делается ход ей, потом квадрат или крест.
Если хватает на берсерк, то используется сначала он, потом молния, потом квадрат или крест.
Не нужное можно убрать/поменять.
Количество манны вначале хода можно выводить в хинт, раскомментировать 35 строку. Если конечно число будет найдено.
Настройка скрипта не менялась.
Минимальная версия пилота 2.39. Запускать от администратора.
https://youtu.be/snk6JoaJkI8
В архиве сам скрипт, скрипт для настройки и картинки для поиска числа и скилов.
Прикрепленный файл  Nebesa4.zip ( 21,89 килобайт ) Кол-во скачиваний: 1812

Обновление 5
Исправлено несколько косяков с предыдущего обновления.
Добавлена возможность выбирать скилы и их порядок использования.
Код
set %skillimage [1 6] ОгненныйШар
set %skillimage [1 7] Взрыв
set %skillimage [1 8] ОгненнаяДуша
set %skillimage [1 9] ОгненныйЩит
set %skillimage [1 10] БурлящаяКровь

Делаем картинки культовых скилов. Изменяем на нужные названия. Менять только в этом блоке, имена подпрограмм оставляем как есть.
Переменная #InputPrompt отвечает за вывод окна для выбора скилов. 1 - при запуске скрипта будет запрос на выбор скилов. 0 - будут использованы скилы, которые выбраны в прошлый раз, порядок их использования также будет как в прошлый раз.
В первом запросе Prompt ставим галочки какие скилы использовать. В следующих выбираем порядок использования скилов.
Поиск количества манны не используется, т. е. не учитывается хватит ли манны на все указанные скилы. Если нужен поиск манны - раскомментировать соответствующий блок:
Код
// set size(%result)       // уничтожить массив с предыдущими результатами
// gosub mp    // поиск числа с маной
// if  size(%result) > 0    // если количество мп найдено
//    hint (14 clBlue 423, 301 (%result [1 1]))
//    сюда дописывать какие скилы юзать в зависимости от количества мп, например:
//    if %result [1 1] > 20    // если манны больше 20
//        gosub krest            // использовать крест
//    end_if
// end_if

Прикрепленный файл  Nebesa5.rar ( 35,44 килобайт ) Кол-во скачиваний: 2027
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
cirus   Небеса: уникальная игра!   27.7.2016, 12:02
cirus   Исправил опечатку, могло неправильно выводиться ко...   28.7.2016, 13:45
DarkMaster   Имхо лепить лучше или зип или обычный тхт.   28.7.2016, 15:17
cirus   В первый пост добавлен доработанный скрипт.   5.8.2016, 12:00
Cockney   Добавил скрипт на вики. Прошу более грамотных люде...   24.8.2016, 15:02
cirus   Поправил.   25.8.2016, 2:59
veiron   // сделать ход 1) left #x1 #y1 wait 200 2...   17.10.2016, 17:48
DarkMaster   Это и есть рандом. Новый синтаксис.   17.10.2016, 19:37
veiron   Это и есть рандом. Новый синтаксис. Спасибо, удо...   17.10.2016, 20:02
cirus   Всё равно ход не сделается пока камни смещаются. ...   18.10.2016, 2:33
veiron   Клик делается в ту же точку которую указываешь пр...   18.10.2016, 9:07
cirus   В одну и ту же. left #x1 #y1 5 5 5 5 // клик с раз...   18.10.2016, 9:33
veiron   В одну и ту же. [code]left #x1 #y1 5 5 5 5 // кли...   18.10.2016, 10:48
cirus   Я уже написал. Клик делается в ту же точку котору...   18.10.2016, 10:51
veiron   Я уже написал. Клик делается в ту же точку котору...   18.10.2016, 10:55
cirus   Да.   18.10.2016, 11:22
veiron   Да. Спасибо, разобрался со скриптом. Если прикру...   19.10.2016, 9:24
cirus   Добавил в первый пост обновление. Теперь должно б...   20.10.2016, 2:54
veiron   Добавил в первый пост обновление. Теперь должно б...   20.10.2016, 7:55
cirus   Это зависит от того что приоритетнее. В данном сл...   20.10.2016, 10:18
veiron   Это зависит от того что приоритетнее. В данном сл...   20.10.2016, 16:42
cirus   А это перенёс? init_arr %imya (1) Череп 6 ...   21.10.2016, 2:25
veiron   А это перенёс? init_arr %imya (1) Череп 6...   21.10.2016, 7:24
cirus   Версия пилота 2.38?   21.10.2016, 12:05
veiron   Версия пилота 2.38? Версия бета. Попробовал 2,38...   21.10.2016, 13:09
cirus   В бетках с сортировкой какие-то проблемы. В 2.38 д...   21.10.2016, 13:38
veiron   В бетках с сортировкой какие-то проблемы. В 2.38 ...   21.10.2016, 13:46
cirus   Это старый скрипт, без расчёта стоимости хода. В а...   21.10.2016, 14:28
veiron   Это старый скрипт, без расчёта стоимости хода. В ...   25.10.2016, 18:41
cirus   Скачай последнюю бетку, там исправлена сортировка....   26.10.2016, 1:58
veiron   Скачай последнюю бетку, там исправлена сортировка...   26.10.2016, 9:07
cirus   Добавил архив в первый пост. Уменьшил код в 3 раза...   12.1.2017, 22:34
cirus   Добавил обновлённый скрипт в первый пост.   25.2.2017, 2:29
veiron   Добавил обновлённый скрипт в первый пост. Спасиб...   25.2.2017, 19:12
cirus   Добавить их не проблема. Принцип тот же как с мол...   25.2.2017, 21:08
veiron   на больших уровнях с манной нет проблем? Да нет ...   25.2.2017, 21:21
cirus   Добавил обновлённый скрипт в первый пост.   26.2.2017, 20:45
veiron   Добавил обновлённый скрипт в первый пост. Ого ка...   26.2.2017, 21:58
cirus   RE: Небеса: уникальная игра!   26.2.2017, 22:02
veiron   Понял. Спасибо за скрипт   26.2.2017, 22:09
Caspik   Посмотрел видео на ютубе, сделал как там. Но при з...   17.3.2017, 12:41
cirus   Для начала попробуйте скрипт из Обновление 3. Там ...   17.3.2017, 13:35
Veritas   Подскажите как расширить поле скрипта. Раньше все ...   17.3.2017, 13:36
Veritas   Может я тупой но в поле скрипта стоит вертикальная...   17.3.2017, 22:45
cirus   Растянуть пилот до нужных размеров. Ограничения ...   17.3.2017, 14:02
cirus   Создайте отдельную тему. Прикрепите скрин и код, к...   18.3.2017, 2:10
Demych1   Хоршая вещь, жаль теперь не работает. При настройк...   18.8.2023, 0:52
DarkMaster   Допустимо. Пробуйте завышать deviation   23.8.2023, 20:05


Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.4.2024, 15:16
Designed by Nickostyle