Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: tekton on March 08, 2016, 11:25:04 PM
-
Приветствую.
Столкнулся с проблемой.
Есть карта, на ней такие значки.
Проблема заключается в том, что значки имеют прозрачный фон.
При наложении на карту, фон просвечивает и изображение изменяется.
Можно ли как нибудь решить эту проблему?
Вот скрин [spoiler=Открыть](http://i045.radikal.ru/1603/f1/9e4bf0e16d32.png) (http://radikal.ru/big/baf826a4c7c44366bbb019d314623e93)[/spoiler]
Оригинальные скриншоты в атаче.
-
Просто значки двух видов.
С камнем и с деревом.
Мне надо их различать.
Короче мне надо сделать так, чтоб при передвижении по карте, при появлении определённого значка, скидывались его кардинаты в игре.
Как скинуть координаты я придумал, а вот значки чёт не ищутся. :(
Или я криво вырезал картинку, а может сохранил не правильно в .bmp (Но делал через [spoiler]GETSCREEN
SCREENSHOTEX(0,0, $_xmax,$_ymax, "Image_", 0)
HALT
[/spoiler]), или и впрямь она полупрозрачная, и от фона, цвет меняется и сравнение не находит её, хз.
Короче надо найти картинку,
кликнуть по ней,
скинуть координаты,
Проверить есть ли уже такая,
и ждать следующую.
Пишу код такого типа
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
//------------ Клик по значку --------------------
LCLICK($_return1, $_return2)
//------------ Сброс картинки с координатами --------------------
getscreen(38,591, 92,601)
screenshotex(38,591, 92,601,kard)
//------------ End Сброс картинки с координатами --------------------
WAITMS(100)
END_IF
Всё правильно в коде ?
а потом надо сделать распознаватель координат (типа как капчу анализируют)
-
Проблема осталась,
взял и самим кликерманом повырезал фрагменты через
getscreen(37,589, 92,600)
screenshotex(37,589, 92,600,kard)
HALT
Но скрипт работает только при первом запуске .
Вот видео как всё происходит. [spoiler] https://youtu.be/RLg01C5BB3M [/spoiler]
Короче задача такая.
Сканировать карту и искать координаты значков.
Нашли значёк,
кликнули на него,
Сбросили координаты,
Потом распознали их как капчу.
Записали координаты в лог.
Перешли к следующему нужному значку....
Кликнули...
Сбросили кооры...
Когда нужные значки на экране закончились,
передвинули экран до следующего, опять отсканировали все нужные значки...
И так до конца координат (1285:1285)
-
А что координаты скопировать нельзя? Они там вроде выделяются.
-
А что координаты скопировать нельзя? Они там вроде выделяются.
Во блин, точно ! Я как то не обратил на это внимание.
А как быть с картинкой?
я вот уже подумал, как бы для теста сделать попиксельное сравнение разных значков.
Может есть на форуме где такое ?
Типа если различается пиксел, закрасить его красным, чтоб наглядно было видно где не соответствие и какая область нам подойдёт.
Oraven спасибо тебе огромное! Не первый раз помогаешь. :)
Только что то не вижу кнопочки что бы в репку плюсануть...
-
Строки действительно нужно заключать в кавычки иначе если твоя писанина будет похожа на имя функции произойдет ошибка.
Там в редакторе есть мусорные ведра, так вот это закоментировать или раскомментировать.
Тебе нужно использовать SCANPICTURE чтобы найти все координаты таких картинок.
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
LCLICK($ARR_SCAN[$ARR_NUM], $ARR_SCAN[$ARR_NUM+1]) // Клик
WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)
Используй цветокоррекцию и процент совпадения и проблема прозрачного фона и меняющихся пикселов отпадет
Вот таким скриптом получаешь снимок
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
В графическом редакторе вырезаешь что нужно.
Тот же уровень используешь в своем скрипте
GETSCREEN
COLORMODE(6) // цветокоррекция
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 70) // 70% от совпадения
FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
LCLICK($ARR_SCAN[$ARR_NUM], $ARR_SCAN[$ARR_NUM+1]) // Клик
WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)