Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: slawik_s on March 18, 2017, 07:38:40 AM
-
Доброго времени суток, собственно вопрос в названии темы. Игра, не всегда реагирует, на действие кликера. Поэтому, я решил проверять его работу, с помощью скриншота.
мой пример:
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
далее, контрольный скриншот, для проверки вышеперечисленных действий.
GETSCREEN
IF_PICTURE_IN (754,889, 764,897, "search.bmp", -1, 100)
END_IF
если скриншот не совпадает, как вернуть выполнение скрипта на исходную позицию?
-
Я не совсем поняла, где именно тут подразумевается выполнение скриншота? Вижу поиск картинки. Если картинка найдена, то всё отлично, если нет, то надо выполнять манипуляции с нажатием клавиши и двойными кликами. Верно?
Возможно, это должно выглядеть таким образом. Если ошибаюсь, то местные профи оперативно поправят мой ляп.$stop=0
WHILE($stop=0)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
$stop=1
ELSE
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
END_IF
END_CYC
-
совершенно верно, после манипуляций следует поиск картинки. Если картинка не найдена, как повторить, эти манипуляции до тех пор пока картинка не совпадет?
-
Если вас не устраивает код, который я изложила ранее, то можете сделать чуть иначе:
$stop=0
WHILE($stop=0)
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
$stop=1
ELSE
SCREENSHOTEX(754,889, 764,897, "Ups_", 0)
HALT // остановка. пройдите в папку screens и сравните искомое с результатом
END_IF
END_CYC
Правда при таком раскладе цикл не особо нужен, ибо скрипт у вас скорее всего долгое время будет выполняться ровно до строки 16. Если убрать остановку скрипта, то ваша папка перезахламиться скринами, на которые вы даже внимания не обратите. Если же убрать существование самого цикла, то это не будет соответствовать вашим требованиям, но можете попробовать и так:$log=0
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
IF($log=1)
LOGWRITE("Усё ништяки.")
END_IF
ELSE
SCREENSHOTEX(754,889, 764,897, "Ups_", 0)
IF($log=1)
LOGWRITE("Здесь и сейчас лично я вижу вот это... Твой Clickermann")
END_IF
END_IF
HALT
Как-то так. Анализируйте, сравнивайте. Если картинка не соответствует стандартам функции IF_PICTURE_IN или находится не совсем в той области, то на скрине это будет видно. При нейтрализации ошибки SCREENSHOTEX и HALT можно закомментировать или убрать. Тут дело вкуса.
-
спасибо за помощь буду экспериментировать ;)