https://www.youtube.com/watch?v=Iw_JvtqqMt4&feature=youtu.be
Код в файле блокнота.
код.zip ( 4,91 килобайт )
Кол-во скачиваний: 2004
Для корректной работы версия пилота не ниже 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
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
init_arr %workwindow (1) 0 0
set #handle 2
//set #handle findwindow (Небеса)
init_arr %workwindow (1) 8 78 // числа могут быть другие
//set #handle 2 // тип поиска
set #handle findwindow (Небеса)
// имя стоимость цвет
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
set #wait 500
set %skillimage [1 6] ОгненныйШар
set %skillimage [1 7] Взрыв
set %skillimage [1 8] ОгненнаяДуша
set %skillimage [1 9] ОгненныйЩит
set %skillimage [1 10] БурлящаяКровь
// 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
Исправил опечатку, могло неправильно выводиться количество найденных элементов.
Исправил вывод неправильного значение при поиске 5 элементов.
Архивы обновил.
Имхо лепить лучше или зип или обычный тхт.
В первый пост добавлен доработанный скрипт.
Добавил скрипт на вики. Прошу более грамотных людей поправить что не так.
// сделать ход
1) left #x1 #y1
wait 200
2) left #x2 #y2
wait 100
3) left 133, 575 20 20 20 20
// сделать ход
1) left #x1 #y1
wait 200
2) left #x2 #y2
wait 100
3) left 133, 575 20 20 20 20
Left_Down #vxodx #vxody
Set #t random(5) + 5
Wait #t
Left_Up #vxodx #vxody
// сделать ход
left #x1 #y1
wait 200
left #x2 #y2
В одну и ту же.
left #x1 #y1 5 5 5 5 // клик с разницей +-5 пикселей по x и y
left #x1 #y1 5 5 5 5 // клик с разницей +-5 пикселей по x и y
init_arr %LevVerh (1) 334, 192 // левая верхняя картинка
// имя стоимость цвет
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
init_arr %hod (1) 849, 204 1265456 // кнопка хода
init_arr %LevVerh (1) 850, 260 // левая верхняя картинка
А это перенёс?
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
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
Версия пилота 2.38?
В бетках с сортировкой какие-то проблемы.
В 2.38 должно работать, попробуй снова настроить.
init_arr %hod (1) 331, 137 1529398 // кнопка хода
init_arr %LevVerh (1) 333, 193 // левая верхняя картинка
Это старый скрипт, без расчёта стоимости хода.
В архиве Nebesa.zip есть скрипт для настройки, на видео всё показано https://youtu.be/ahGqGXk9cqY
Скачай последнюю бетку, там исправлена сортировка. Или используй 2.38.
Добавил архив в первый пост. Уменьшил код в 3 раза.
Добавил обновлённый скрипт в первый пост.
Добавил обновлённый скрипт в первый пост.
Понял. Спасибо за скрипт
Посмотрел видео на https://www.youtube.com/watch?v=ahGqGXk9cqY&feature=youtu.be, сделал как там. Но при запуске скрипта он просто висит, а в лог выводится...
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)]
Для начала попробуйте скрипт из Обновление 3. Там нет использования скилов, но зато меньше настроек.
В этой строке:
left 133, 575 20 20 20 20 // клик в любое место, чтобы курсор не оставался над картинками
Подскажите как расширить поле скрипта. Раньше все было как надо. Сейчас длина строчки скрипта сильно ограничена. Не пойму где в настройках это корректировать.
Может я тупой но в поле скрипта стоит вертикальная линия и после нее справа команды не работают. Поредвинуть ее не понимаю как. Подскажите плиз.
Создайте отдельную тему. Прикрепите скрин и код, который не работает. Не нужно эту тему засорять вопросами, не имеющими отношения к скрипту.
Хоршая вещь, жаль теперь не работает. При настройке идет смещение небольшое и в каждой клетке поля, на идентичных фигурах, помечаются разные пиксели. Пробовал с размером шага эксперементировать но не помогло.В массив вместо 5 одинаковых групп меток цвета вываливает все 36 разных. Есть ли смысл попробовать заменить в скрипте Findcolor на FindImage или это будут жуткие тормоза?
Попробовал FindImage - находить одно изображение еще можно настроить, но вот найти штук 10 одинаковых уже проблема: одни вообще пропускает, другие одни и те же, с разницей несколько пикселей в координаты по несколько раз записывает.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)