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

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

UoKit.com Форумы _ UO Pilot в онлайн играх _ вопрос по findimage

Автор: Yelldon 26.2.2018, 11:29

Что может не так быть?

Цитата

send w
wait 3s
set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\info.bmp) %arr 2 100 -1 5)
if size(%arr) > 0
if size(%arr) = 1
left %arr [1 1], %arr [1 2]
wait 5000
end_if
end_if
set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\ataka.bmp) %arr 2 100 -1 5)
if size(%arr) > 0
if size(%arr) = 1
left 506, 676
wait 5000
end_if
end_if
set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\ataka.bmp) %arr 2 100 -1 5)
if_not size(%arr) > 0
if size(%arr) = 1
left 846, 134
wait 5000
end_if
end_if

И хотел спросить, как сделать цикл нажатий по картинке?
К примеру, есть:
Цитата

set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\zadanie.bmp)

Что нужно вписать дальше, что бы кликало по найденным картинкам с промежутком 3-5 секунд?

Автор: cirus 26.2.2018, 11:37

Цитата
if size(%arr) = 1

Это убрать. И end_if относящийся к нему тоже убрать.
Цитата
И хотел спросить, как сделать цикл нажатий по картинке?

Код
set #a findimage (0, 0 1920, 1080 (C:\UOPilot\image\zadanie.bmp) %arr 2 80 -1 3)
if size(%arr) > 0
    for #i 1 size(%arr)  // цикл для всех найденных картинок
        move %arr [#i 1] %arr [#i 2] // навести курсор на каждую картинку, заменить на left/kleft
        wait 500
    end_for
end_if
end_script

Автор: Yelldon 26.2.2018, 11:41

[quote name='cirus' date='26.2.2018, 14:37' post='424142']
Это убрать. И end_if относящийся к нему тоже убрать.

Убрал, производит действие только последнего элемента if_not
Первую строчку не производит

Автор: cirus 26.2.2018, 11:57

Значит картинка не найдена, в лог выводите результат поиска:

Код
set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\info.bmp) %arr 2 100 -1 5)
log #a

Уменьшите точность, 100% тут явно не требуется.

Автор: Yelldon 26.2.2018, 12:02

Цитата(cirus @ 26.2.2018, 14:57) *

Значит картинка не найдена, в лог выводите результат поиска:
Код
set #a findimage (0, 0 1920, 1080(C:\UOPilot\image\info.bmp) %arr 2 100 -1 5)
log #a

Уменьшите точность, 100% тут явно не требуется.


15:00:52 0 (autosaved_0.txt, 3): -4
15:00:55 0 (autosaved_0.txt, 10): -4

Автор: cirus 26.2.2018, 12:06

Неверно указан путь картинке или имя картинки.

Автор: Yelldon 26.2.2018, 12:10

Цитата(cirus @ 26.2.2018, 15:06) *

Неверно указан путь картинке или имя картинки.


https://imgur.com/eWMvo3h
https://imgur.com/Toh8VQp

Автор: cirus 26.2.2018, 12:21

Если #a = -4, значит файл картинки не найден / в неправильном формате / повреждён / все пиксели файла одного цвета.
Сохраните картинку в другое место. Формат картинки bmp 24 бита?

Цитата
1080(C:

Лучше пробел поставить перед скобкой.

Автор: Yelldon 26.2.2018, 12:28

Цитата(cirus @ 26.2.2018, 15:21) *

Если #a = -4, значит файл картинки не найден / в неправильном формате / повреждён / все пиксели файла одного цвета.
Сохраните картинку в другое место. Формат картинки bmp 24 бита?

Лучше пробел поставить перед скобкой.

Поставил пробел, сделал новые скриншоты
15:27:13 0 (autosaved_0.txt, 3): 0
15:27:21 0 (autosaved_0.txt, 9): 0

Автор: cirus 26.2.2018, 12:36

0 значит картинка не найдена. Уменьшите точность и увеличьте погрешность в цвете.
Скиньте картинку в формате bmp, которую ищете, и скрин в bmp где ищете.

Автор: Yelldon 26.2.2018, 12:39

Цитата(cirus @ 26.2.2018, 15:36) *

0 значит картинка не найдена. Уменьшите точность и увеличьте погрешность в цвете.
Скиньте картинку в формате bmp, которую ищете, и скрин в bmp где ищете.




Эскизы прикрепленных изображений
Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  info.bmp ( 7,92 килобайт ) Кол-во скачиваний: 145

Автор: cirus 26.2.2018, 12:48

Код
set #a findimage (0 0 1920 1050 (C:\Users\abc\Desktop\info.bmp) %arr 2 80 -1 5)

При deviation 5% нормально находятся 3 картинки.

Автор: Yelldon 26.2.2018, 13:12

Цитата(cirus @ 26.2.2018, 15:48) *

Код
set #a findimage (0 0 1920 1050 (C:\Users\abc\Desktop\info.bmp) %arr 2 80 -1 5)

При deviation 5% нормально находятся 3 картинки.

[+]

Не кликает на найденную картинку

Автор: cirus 26.2.2018, 13:24

Кстати, info.bmp отличается от тех кнопок что на 2.png. При увеличении это видно по буквам.

Цитата
Не кликает на найденную картинку

Для начала вместо left использовать kleft. Посмотреть куда кликает.
Картинка подсвечивается при наведении, лучше сделать её скриптом: https://forum.uokit.com/index.php?showtopic=30118. Пиксели, которые меняются будут закрашены и не будут учитываться при поиске.

Автор: cirus 26.2.2018, 15:22

Прикрепленный файл  0012_xvid.zip ( 3,79 мегабайт ) Кол-во скачиваний: 202

В архиве видео.

Код
showwindow windowhandle minimize
wait 2000
set #a findimage (0, 0 1920, 1080 (C:\image\Начать.bmp) %arr 2 80 -1 3)
if size(%arr) > 0
    for #i 1 size(%arr)  // цикл для всех найденных картинок
        move %arr [#i 1] %arr [#i 2] // навести курсор на каждую картинку, заменить на left/kleft
        wait 500
    end_for
    wait 3000
    kleft %arr [1 1] %arr [1 2]  // нажать на первую картинку
end_if
end_script

Автор: Yelldon 26.2.2018, 15:44

Нашел проблему, в общем, на моем ноутбуке Ctrl+A и сами клики в условиях if кликают на 2 см правее и ниже. Запустил этот же код на старом - все заработало. В ситуации с kleft без условия if, нажимает туда, куда необходимо. Кстати, цвета выводит неверно, а координаты правильные...

[+]

Осталось найти причину и способ устранения)

Автор: Yelldon 26.2.2018, 15:55

Цитата(cirus @ 26.2.2018, 18:22) *

Прикрепленный файл  0012_xvid.zip ( 3,79 мегабайт ) Кол-во скачиваний: 202

В архиве видео.
Код
showwindow windowhandle minimize
wait 2000
set #a findimage (0, 0 1920, 1080 (C:\image\Начать.bmp) %arr 2 80 -1 3)
if size(%arr) > 0
    for #i 1 size(%arr)  // цикл для всех найденных картинок
        move %arr [#i 1] %arr [#i 2] // навести курсор на каждую картинку, заменить на left/kleft
        wait 500
    end_for
end_if
wait 3000
kleft %arr [1 1] %arr [1 2]  // нажать на первую картинку
end_script


Что касается кода, выдает ошибку по kleft последнему


Прикрепленные файлы
Прикрепленный файл  1.bmp ( 3,17 мегабайт ) Кол-во скачиваний: 148

Автор: cirus 27.2.2018, 1:32

Цитата
Осталось найти причину и способ устранения

https://forum.uokit.com/index.php?s=&showtopic=68766&view=findpost&p=423653
Цитата
Что касается кода, выдает ошибку по kleft последнему

kleft должен был внутри if.

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