Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Владимир Миньков on July 08, 2015, 07:16:46 PM
-
Всем привет.
При поиске картинки у меня постоянно выдаёт ошибку.
Ошибка при интерпретации строки IF_PICTURE_IN (422,341, $_xmax,$_ymax, "arena.bmp", -1, 100)
Прервать выполнения сценария?
Картинку я переделал из png в bmp.
GETSCREEN
IF_PICTURE_IN (422,341, $_xmax,$_ymax, "arena.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(2)
END_IF
halt
-
Переделал каким образом? Просто в место png написал bmp? У меня просто других вариантов нет, скрипт написан правильно, но явно что то не так с файлом.
-
Да, просто переименов файл. Был png, а стал bmp
-
Конвертировал png в bmp уже через сайт, ошибка исчезла, но ничего не происходит (он не кликает на картинку)
Просто ничего не происходит
-
Я не понимаю ты что школу прогуливал? Почему ты в один угол пишешь X в другой Y?
IF_PICTURE_IN (100,100, 200,200, "arena.bmp", -1, 100)
У прямоугольной области 4 числа координат, первые две это верхний левый угол X Y, вторые две это нижний правый угол X2 Y2.
$_xmax,$_ymax - это системные переменные, через них кликер выводит размер твоего экрана.
Изначально там стоят такие настройки 0,0,$_xmax,$_ymax это означает что поиск будет на всем экране, каким бы он ни был.
На счет картинки:
Нажимаешь PrintScreen открываешь редактор, хотя бы стандартный Paint, вставляешь снимок Ctrl+V и вырезаешь маленький фрагментик. Сохраняешь в BMP 24Bit.
И еще учти что клик приходится на верхний левый угол этого фрагментика.
Можно задать смещение чтоб кликнул в нужное место.
LCLICK($_return1+10, $_return2+5) // чуть правее и ниже
-
Опять ошибка....
-
При загрузке или сохранении скрипта папка, в которой находится скрипт, становится корнем. В ней кликер ищет все приложенные файлы. В редакторе показывается текущий путь до рабочей папки. Если же скрипт не сохранен то корнем считается папка кликера. Тебе нужно создать папку проекта, в нее поместить скрип и картинки, и уже от туда загружать.
Как дети малые....
-
Я так и сделал. Но он говорит что одного файла не достаёт.
-
Ах вот оно что, ты указал 4 числа а $_xmax,$_ymax не стер! И кликер вообще не въезжает что ты ему там вводишь
Вот что тебе нужно
GETSCREEN
IF_PICTURE_IN (399,315, 485,345, "arena.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(2)
END_IF
halt
-
Может быть я неправильно указываю координаты???
Опять же ничего не происходит после включения скрипта. Он запускается и моментально останавливается.
-
Ну вот теперь все правильно. А ничего не находит потому что пикселы в твоем фрагменте не сходятся с теми что на экране. Графика иногда имеет свойство меняться.
В этом случаи применяется цветокоррекция с процентом совпадения
Вот таким скриптом получаем скорректированный снимок
// Получение скриншота с цветокоррекцией (фильтр 6)
// Скриншот появится в папке screens папки скрипта или в папке кликера
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
Из этого скриншота вырезаем фрагмент для поиска.
И в скрипте также применяем цветокоррекцию снимка и понижаем процент совпадения, в данном случаи до 70%
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (399,315, 485,345, "arena.bmp", -1, 70)
LCLICK($_return1, $_return2)
WAIT(2)
END_IF
halt
-
Спасибо вам огромное! Наконец он работает!
Вот только тыкает рядом, но нужно это уже вручную настраивать
Чуток изменил код и он начал идеально распознавать картинку
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "arena.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(2)
END_IF
halt
-
Вот только тыкает рядом, но нужно это уже вручную настраивать
Можно задать смещение чтоб кликнул в нужное место.
LCLICK($_return1+10, $_return2+5) // чуть правее и ниже
-
Про это я знаю. Кликер же будет дольше искать по всему экрану картинку нежеле по выбранному месту?
-
Конечно нужно указывать место предполагаемого появления, и размер картинки урезай до предела. По высоте сделай 2-3 пиксела и он найдет её почти мгновенно.