Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot в онлайн играх _ Небеса: уникальная игра!

Автор: cirus 27.7.2016, 12:02

https://www.youtube.com/watch?v=Iw_JvtqqMt4&feature=youtu.be
Код в файле блокнота. Прикрепленный файл  код.zip ( 4,91 килобайт ) Кол-во скачиваний: 1955
Для корректной работы версия пилота не ниже 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 килобайт ) Кол-во скачиваний: 1928
Если ничего не менять скрипт тоже будет работать, но только в активном окне.
Для корректной работы версия пилота не ниже 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 килобайт ) Кол-во скачиваний: 1923
В архиве сам скрипт и скрипт для настройки. На видео показано как настраивать. Настройка для перекрытого окна тоже есть. 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 килобайт ) Кол-во скачиваний: 1700

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

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

Обновление 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 килобайт ) Кол-во скачиваний: 1985

Автор: cirus 28.7.2016, 13:45

Исправил опечатку, могло неправильно выводиться количество найденных элементов.
Исправил вывод неправильного значение при поиске 5 элементов.
Архивы обновил.

Автор: 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 17.10.2016, 17:48

Код
// сделать ход
1) left #x1 #y1
wait 200
2) left #x2 #y2
wait 100
3) left 133, 575 20 20 20 20

Cirus, первых два лефта понятны, а что за конструкция третьего? Как с него сделать рандомный клик.? А так код класс работает, спасибо что написал такое. Единственный минус, это когда уже перешел ход к персонажу, а камни еще падают, то пилот поле считывает и не правильно его определяет.

Автор: DarkMaster 17.10.2016, 19:37

Цитата
3) left 133, 575 20 20 20 20

Это и есть рандом. Новый синтаксис.

Автор: veiron 17.10.2016, 20:02

Цитата(DarkMaster @ 17.10.2016, 19:37) *

Это и есть рандом. Новый синтаксис.

Спасибо, удобно.

Код
// сделать ход
1) left #x1 #y1
wait 200
2) left #x2 #y2
wait 100
3) left 133, 575 20 20 20 20

Cirus, скажи, первые лефты с рандомом или без, если без то в какую область ячейки с камнем идет клик? И зачем 3 лефт если он кликает в пустоту.


Цитата(DarkMaster @ 17.10.2016, 19:37) *

Это и есть рандом. Новый синтаксис.

Код
    Left_Down #vxodx #vxody
    Set #t random(5) + 5
    Wait #t
    Left_Up #vxodx #vxody

А тут в Left_Down добавить рандом нужно, а в Left_Up не надо или как-то подругому надо делать?

Автор: cirus 18.10.2016, 2:33

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

Всё равно ход не сделается пока камни смещаются. Можно увеличить wait после клика. Надо делать 2 сканирования с небольшой задержкой и если все картинки совпадают, т. е. они уже не перемещаются, то тогда просчитывать ход.
Вообще код можно сократить раз в 5. Большая часть комбинаций в этой игре вообще не существует.
Цитата
Cirus, скажи, первые лефты с рандомом или без, если без то в какую область ячейки с камнем идет клик?

Клик делается в ту же точку которую указываешь при настройке.
Цитата
И зачем 3 лефт если он кликает в пустоту.

У меня иногда подсвечивались камни после клика, т. е. как будто курсор остался в том месте куда был сделан клик. При том что курсор вообще ни куда не перемещался. Поэтому клик делал в пустое место чтобы как бы убрать курсор.
Цитата
А тут в Left_Down добавить рандом нужно, а в Left_Up не надо или как-то подругому надо делать?

Да, наверное, отпускать кнопку лучше в тех же координатах где было нажатие. Так что проще рандом сделать по-старому.

Автор: veiron 18.10.2016, 9:07

Цитата(cirus @ 18.10.2016, 2:33) *

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

Код
// сделать ход
left #x1 #y1
wait 200
left #x2 #y2

Я про эти клики спрашивал, они рандомные или постоянно в одну область клетки с камнем кликают? Про 3 клик понятно, куда указал туда и будет клик.

Автор: cirus 18.10.2016, 9:33

В одну и ту же.

Код
left #x1 #y1 5 5 5 5    // клик с разницей +-5 пикселей по x и y

Автор: veiron 18.10.2016, 10:48

Цитата(cirus @ 18.10.2016, 9:33) *

В одну и ту же.
Код
left #x1 #y1 5 5 5 5    // клик с разницей +-5 пикселей по x и y


А изначально left #x1 #y1 без рандома куда клик происходит, в центр клетки или смещен куда нибудь?

Автор: cirus 18.10.2016, 10:51

Цитата
А изначально left #x1 #y1 без рандома куда клик происходит, в центр клетки или смещен куда нибудь?

Я уже написал.
Клик делается в ту же точку которую указываешь при настройке.

Автор: veiron 18.10.2016, 10:55

Цитата(cirus @ 18.10.2016, 10:51) *

Я уже написал.
Клик делается в ту же точку которую указываешь при настройке.

Код
 init_arr %LevVerh (1) 334, 192   // левая верхняя картинка
Это вот это ?

Автор: cirus 18.10.2016, 11:22

Цитата
Это вот это ?

Да.

Автор: veiron 19.10.2016, 9:24

Цитата(cirus @ 18.10.2016, 11:22) *

Да.

Спасибо, разобрался со скриптом. Если прикрутить GetImage, то можно избежать холостого считывания поля при падении камней.

Автор: cirus 20.10.2016, 2:54

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

Добавил в первый пост обновление. Теперь должно быть нормально.

Автор: veiron 20.10.2016, 7:55

Цитата(cirus @ 20.10.2016, 2:54) *

Добавил в первый пост обновление. Теперь должно быть нормально.

Спасибо, попробую.
Код
// имя стоимость цвет
init_arr %imya (1) Череп 6 10672625
init_arr %imya (2) Красный 5 196689
init_arr %imya (3) Жёлтый 3 178411
init_arr %imya (4) Зелёный 1 16187391
init_arr %imya (5) Крест 1 7505553

Зеленый 1 и Крест 1 это так надо или у кого-то должна быть цифра 2?

Автор: cirus 20.10.2016, 10:18

Цитата
Зеленый 1 и Крест 1 это так надо или у кого-то должна быть цифра 2?

Это зависит от того что приоритетнее. В данном случае если будет найдено 3 зелёных и 3 креста, то будет сделан ход из первой найденной комбинации. Если поставить 2 для креста, то будет сделан ход из крестов. Я не играл в эту игру, что важнее не знаю, так что не делал приоритет.

Автор: veiron 20.10.2016, 16:42

Цитата(cirus @ 20.10.2016, 10:18) *

Это зависит от того что приоритетнее. В данном случае если будет найдено 3 зелёных и 3 креста, то будет сделан ход из первой найденной комбинации. Если поставить 2 для креста, то будет сделан ход из крестов. Я не играл в эту игру, что важнее не знаю, так что не делал приоритет.

Скачал скрипт Небеса2, он или выдает ошибку, или просто ни чего не делает.
Код
init_arr %hod (1) 849, 204 1265456      // кнопка хода
init_arr %LevVerh (1) 850, 260     // левая верхняя картинка

Тут менял, старый скрипт работает, в новый координаты переношу и уже не работает.

Автор: cirus 21.10.2016, 2:25

А это перенёс?

Код
init_arr %imya (1) Череп 6 10013920
init_arr %imya (2) Красный 5 196690
init_arr %imya (3) Жёлтый 3 41690
init_arr %imya (4) Зелёный 1 95004
init_arr %imya (5) Крест 1 8886946

Автор: veiron 21.10.2016, 7:24

Цитата(cirus @ 21.10.2016, 2:25) *

А это перенёс?
Код
init_arr %imya (1) Череп 6 10013920
init_arr %imya (2) Красный 5 196690
init_arr %imya (3) Жёлтый 3 41690
init_arr %imya (4) Зелёный 1 95004
init_arr %imya (5) Крест 1 8886946


Да вроде все менял. Старый работает, а новый нет.


Прикрепленные файлы
Прикрепленный файл  Небо.txt ( 70,47 килобайт ) Кол-во скачиваний: 957

Автор: cirus 21.10.2016, 12:05

Версия пилота 2.38?

Автор: veiron 21.10.2016, 13:09

Цитата(cirus @ 21.10.2016, 12:05) *

Версия пилота 2.38?

Версия бета. Попробовал 2,38 дальше poisk не идет, бегает poisk-start.

Автор: cirus 21.10.2016, 13:38

В бетках с сортировкой какие-то проблемы.
В 2.38 должно работать, попробуй снова настроить.

Автор: veiron 21.10.2016, 13:46

Цитата(cirus @ 21.10.2016, 13:38) *

В бетках с сортировкой какие-то проблемы.
В 2.38 должно работать, попробуй снова настроить.

Скачал Nebesa2.zip, загрузил с архива скрипт в пилот 2.38. Поменял на свое:
Код
init_arr %hod (1) 331, 137 1529398      // кнопка хода
init_arr %LevVerh (1) 333, 193      // левая верхняя картинка

Не работает, бегает бегает poisk-start.
Работает в любой версии только этот скрипт


Прикрепленные файлы
Прикрепленный файл  Небо1.txt ( 66,5 килобайт ) Кол-во скачиваний: 974

Автор: cirus 21.10.2016, 14:28

Это старый скрипт, без расчёта стоимости хода.
В архиве Nebesa.zip есть скрипт для настройки, на видео всё показано https://youtu.be/ahGqGXk9cqY

Автор: veiron 25.10.2016, 18:41

Цитата(cirus @ 21.10.2016, 14:28) *

Это старый скрипт, без расчёта стоимости хода.
В архиве Nebesa.zip есть скрипт для настройки, на видео всё показано

Настроил ход и цвет как на видео. И сразу выскочила ошибка. Версия пилота 2.38.1 b028


Прикрепленные файлы
Прикрепленный файл  ошибка.bmp ( 224,27 килобайт ) Кол-во скачиваний: 1264

Автор: cirus 26.10.2016, 1:58

Скачай последнюю бетку, там исправлена сортировка. Или используй 2.38.

Автор: veiron 26.10.2016, 9:07

Цитата(cirus @ 26.10.2016, 1:58) *

Скачай последнюю бетку, там исправлена сортировка. Или используй 2.38.

Спасибо, заработало

Автор: cirus 12.1.2017, 22:34

Добавил архив в первый пост. Уменьшил код в 3 раза.

Автор: cirus 25.2.2017, 2:29

Добавил обновлённый скрипт в первый пост.

Автор: veiron 25.2.2017, 19:12

Цитата(cirus @ 25.2.2017, 2:29) *

Добавил обновлённый скрипт в первый пост.

Спасибо. Скрипт очень хороший. Единственно что на больших уровнях ярости и так хватает и берсек бесполезен. В основном пользуешься нижними ячейками скилов и молнией с крестом и квадратом. Не плохо было бы, если их добавить и задать право выбора в вначале скрипта на их порядок использования. Потому что первые действия это культовые, потом молния и в самую последнею очередь крест и квадрат.

Автор: cirus 25.2.2017, 21:08

Цитата
Не плохо было бы, если их добавить и задать право выбора в вначале скрипта на их порядок использования.

Добавить их не проблема. Принцип тот же как с молнией и берсерком.
Выбрать порядок использования скилов можно , но надо же учитывать количество манны или на больших уровнях с манной нет проблем?

Автор: veiron 25.2.2017, 21:21

Цитата(cirus @ 25.2.2017, 21:08) *

на больших уровнях с манной нет проблем?

Да нет проблем с манной, конь 200 манны сразу добавляет и 500 от каждого удара +

Если конь одет, там как начинается бой, через 5 секунд он сам добавляет 200 манны и потом уже начинаешь делать ходы.

Автор: cirus 26.2.2017, 20:45

Добавил обновлённый скрипт в первый пост.

Автор: veiron 26.2.2017, 21:58

Цитата(cirus @ 26.2.2017, 20:45) *

Добавил обновлённый скрипт в первый пост.

Ого как быстро. Спасибо за скрипт. Названия подпрограмм тоже надо менять если скилы не такие?

Автор: cirus 26.2.2017, 22:02

Цитата
Названия подпрограмм тоже надо менять если скилы не такие?

Цитата
имена подпрограмм оставляем как есть.

Автор: veiron 26.2.2017, 22:09

Понял. Спасибо за скрипт

Автор: Caspik 17.3.2017, 12:41

Посмотрел видео на https://www.youtube.com/watch?v=ahGqGXk9cqY&feature=youtu.be, сделал как там. Но при запуске скрипта он просто висит, а в лог выводится... mellow.gif unsure.gif

лог

Код
 set timer
set #a(36) findcolor (#startX((654) #startY(129) #endX(859) #endY(334) #stepX(41) #stepY(41) (0-16777215) %arr)
#a = 36
if  size(%arr) > 0
    set #sizeInput(36) size (%arr)
#sizeInput = 36
    set #sizeOutput(23) 0
#sizeOutput = 0
    set size(%output)
    for #i(36) 1 #sizeInput(36)  1
        set #duplicat(1) 0
#duplicat = 0
        for #n(5) 1 #sizeOutput(0) 1
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(0) #sizeOutput(0)  + 1
#sizeOutput = 1
            set %output()[#sizeOutput(1) ] %arr(10277862)[#i(1) 3]
%output [ 1 1 ] = 10277862
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(1) 1 #sizeOutput(1) 1
            if  %arr(1114245)[#i(2) 3] = %output(10277862)[#n(1)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(1) #sizeOutput(1)  + 1
#sizeOutput = 2
            set %output()[#sizeOutput(2) ] %arr(1114245)[#i(2) 3]
%output [ 2 1 ] = 1114245
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(1) 1 #sizeOutput(2) 1
            if  %arr(8566473)[#i(3) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(8566473)[#i(3) 3] = %output(1114245)[#n(2)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(2) #sizeOutput(2)  + 1
#sizeOutput = 3
            set %output()[#sizeOutput(3) ] %arr(8566473)[#i(3) 3]
%output [ 3 1 ] = 8566473
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(2) 1 #sizeOutput(3) 1
            if  %arr(20224)[#i(4) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(20224)[#i(4) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(20224)[#i(4) 3] = %output(8566473)[#n(3)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(3) #sizeOutput(3)  + 1
#sizeOutput = 4
            set %output()[#sizeOutput(4) ] %arr(20224)[#i(4) 3]
%output [ 4 1 ] = 20224
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(3) 1 #sizeOutput(4) 1
            if  %arr(14811135)[#i(5) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(14811135)[#i(5) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(14811135)[#i(5) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(14811135)[#i(5) 3] = %output(20224)[#n(4)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(4) #sizeOutput(4)  + 1
#sizeOutput = 5
            set %output()[#sizeOutput(5) ] %arr(14811135)[#i(5) 3]
%output [ 5 1 ] = 14811135
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(4) 1 #sizeOutput(5) 1
            if  %arr(14811135)[#i(6) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(14811135)[#i(6) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(14811135)[#i(6) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(14811135)[#i(6) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(14811135)[#i(6) 3] = %output(14811135)[#n(5)]
                set #duplicat(0) 1
#duplicat = 1
                break
        if  #duplicat(1) = 0
    end_for
        set #duplicat(1) 0
#duplicat = 0
        for #n(5) 1 #sizeOutput(5) 1
            if  %arr(6123899)[#i(7) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(6123899)[#i(7) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(6123899)[#i(7) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(6123899)[#i(7) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(6123899)[#i(7) 3] = %output(14811135)[#n(5)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(5) #sizeOutput(5)  + 1
#sizeOutput = 6
            set %output()[#sizeOutput(6) ] %arr(6123899)[#i(7) 3]
%output [ 6 1 ] = 6123899
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(5) 1 #sizeOutput(6) 1
            if  %arr(66309)[#i(8) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(66309)[#i(8) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(66309)[#i(8) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(66309)[#i(8) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(66309)[#i(8) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(66309)[#i(8) 3] = %output(6123899)[#n(6)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(6) #sizeOutput(6)  + 1
#sizeOutput = 7
            set %output()[#sizeOutput(7) ] %arr(66309)[#i(8) 3]
%output [ 7 1 ] = 66309
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(6) 1 #sizeOutput(7) 1
            if  %arr(1507512)[#i(9) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(1507512)[#i(9) 3] = %output(66309)[#n(7)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(7) #sizeOutput(7)  + 1
#sizeOutput = 8
            set %output()[#sizeOutput(8) ] %arr(1507512)[#i(9) 3]
%output [ 8 1 ] = 1507512
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(7) 1 #sizeOutput(8) 1
            if  %arr(1093071)[#i(10) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(66309)[#n(7)]
        end_for
            if  %arr(1093071)[#i(10) 3] = %output(1507512)[#n(8)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(8) #sizeOutput(8)  + 1
#sizeOutput = 9
            set %output()[#sizeOutput(9) ] %arr(1093071)[#i(10) 3]
%output [ 9 1 ] = 1093071
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(8) 1 #sizeOutput(9) 1
            if  %arr(14811135)[#i(11) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(14811135)[#i(11) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(14811135)[#i(11) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(14811135)[#i(11) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(14811135)[#i(11) 3] = %output(14811135)[#n(5)]
                set #duplicat(0) 1
#duplicat = 1
                break
        if  #duplicat(1) = 0
    end_for
        set #duplicat(1) 0
#duplicat = 0
        for #n(5) 1 #sizeOutput(9) 1
            if  %arr(14811135)[#i(12) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(14811135)[#i(12) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(14811135)[#i(12) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(14811135)[#i(12) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(14811135)[#i(12) 3] = %output(14811135)[#n(5)]
                set #duplicat(0) 1
#duplicat = 1
                break
        if  #duplicat(1) = 0
    end_for
        set #duplicat(1) 0
#duplicat = 0
        for #n(5) 1 #sizeOutput(9) 1
            if  %arr(16777215)[#i(13) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(66309)[#n(7)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(1507512)[#n(8)]
        end_for
            if  %arr(16777215)[#i(13) 3] = %output(1093071)[#n(9)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(9) #sizeOutput(9)  + 1
#sizeOutput = 10
            set %output()[#sizeOutput(10) ] %arr(16777215)[#i(13) 3]
%output [ 10 1 ] = 16777215
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(9) 1 #sizeOutput(10) 1
            if  %arr(930891)[#i(14) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(66309)[#n(7)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(1507512)[#n(8)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(1093071)[#n(9)]
        end_for
            if  %arr(930891)[#i(14) 3] = %output(16777215)[#n(10)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(10) #sizeOutput(10)  + 1
#sizeOutput = 11
            set %output()[#sizeOutput(11) ] %arr(930891)[#i(14) 3]
%output [ 11 1 ] = 930891
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(10) 1 #sizeOutput(11) 1
            if  %arr(2448251)[#i(15) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(66309)[#n(7)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(1507512)[#n(8)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(1093071)[#n(9)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(16777215)[#n(10)]
        end_for
            if  %arr(2448251)[#i(15) 3] = %output(930891)[#n(11)]
        end_for
        if  #duplicat(0) = 0
            set #sizeOutput(11) #sizeOutput(11)  + 1
#sizeOutput = 12
            set %output()[#sizeOutput(12) ] %arr(2448251)[#i(15) 3]
%output [ 12 1 ] = 2448251
        end_if
    end_for
        set #duplicat(0) 0
#duplicat = 0
        for #n(11) 1 #sizeOutput(12) 1
            if  %arr(6656)[#i(16) 3] = %output(10277862)[#n(1)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(1114245)[#n(2)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(8566473)[#n(3)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(20224)[#n(4)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(14811135)[#n(5)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(6123899)[#n(6)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(66309)[#n(7)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(1507512)[#n(8)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(1093071)[#n(9)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(16777215)[#n(10)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(930891)[#n(11)]
        end_for
            if  %arr(6656)[#i(16) 3] = %output(2448251)[#n(12)]




и так пока я не устану. Час ждал, ничего не изменилось huh.gif
Качал последний архив, дальше скрипта настроек не ушел unsure.gif
Небеса находятся в вк приложении, а не на оф сайте. Но тут же идёт поиск по цвету.... В общем я хз, надеюсь на разъяснения (если не сложно) со стороны автора скрипта

Автор: cirus 17.3.2017, 13:35

Для начала попробуйте скрипт из Обновление 3. Там нет использования скилов, но зато меньше настроек.
В этой строке:

Код
left 133, 575 20 20 20 20     // клик в любое место, чтобы курсор не оставался над картинками

Возможно надо будет поменять координаты 133, 575 на любые другие.
Если с этим обновлением разберетесь, то с другими будет проще.

Автор: Veritas 17.3.2017, 13:36

Подскажите как расширить поле скрипта. Раньше все было как надо. Сейчас длина строчки скрипта сильно ограничена. Не пойму где в настройках это корректировать.

Автор: cirus 17.3.2017, 14:02

Цитата
Подскажите как расширить поле скрипта. Раньше все было как надо. Сейчас длина строчки скрипта сильно ограничена. Не пойму где в настройках это корректировать.

Растянуть пилот до нужных размеров. Ограничения на длину строки в редакторе нет.

Автор: Veritas 17.3.2017, 22:45

Может я тупой но в поле скрипта стоит вертикальная линия и после нее справа команды не работают. Поредвинуть ее не понимаю как. Подскажите плиз.

Автор: cirus 18.3.2017, 2:10

Создайте отдельную тему. Прикрепите скрин и код, который не работает. Не нужно эту тему засорять вопросами, не имеющими отношения к скрипту.

Автор: Demych1 18.8.2023, 0:52

Хоршая вещь, жаль теперь не работает. При настройке идет смещение небольшое и в каждой клетке поля, на идентичных фигурах, помечаются разные пиксели. Пробовал с размером шага эксперементировать но не помогло.В массив вместо 5 одинаковых групп меток цвета вываливает все 36 разных. Есть ли смысл попробовать заменить в скрипте Findcolor на FindImage или это будут жуткие тормоза?
Попробовал FindImage - находить одно изображение еще можно настроить, но вот найти штук 10 одинаковых уже проблема: одни вообще пропускает, другие одни и те же, с разницей несколько пикселей в координаты по несколько раз записывает.

Автор: DarkMaster 23.8.2023, 20:05

Цитата
Есть ли смысл попробовать заменить в скрипте Findcolor на FindImage или это будут жуткие тормоза?

Допустимо.

Цитата
Попробовал FindImage - находить одно изображение еще можно настроить, но вот найти штук 10 одинаковых уже проблема: одни вообще пропускает, другие одни и те же, с разницей несколько пикселей в координаты по несколько раз записывает.

Пробуйте завышать deviation

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)