Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Emergen83942 on September 21, 2021, 03:56:04 PM
-
Здравствуйте, уважаемые формумчане.
Разработал для себя довольно простой скрипт
GETSCREEN(-1545,73, -1546,74)
IF(PXL(-1545,73) ! 5309)
KEYPRESS(69)
WAIT(5)
END_IF
WAITMS(10)
Т.е. когда отсутствует указанный пиксель в отмеченных координатах, то скрипт нажимает соответствующую кнопку и так по кругу. Тут всё работает, проблем нет, но мне нужен ещё второй параллельный скрипт, знаю что запускается командой THREAD.
Скрипт обнаруживает нужный пискель (либо его отсутствие), если данный пискель НЕПРЕРЫВНО отображается (либо непрерывно отсутствует) определённое количество времени, например, 1 минуту, то совершает определённое действие.
Заранее спасибо.
-
А точно работает? Потому как -1545 больше чем -1546. И значит GETSCREEN не работает. Но кнопка жмётся, да, т.к. пиксел всегда чёрный.
И чтоб не путаться, почему не задано так
GETSCREEN(-1545,73, -1545,73)
отображается/отсутствует нужно именно оба состояния ловить? Там два цвета или нужный и все остальные?
-
THREAD(trap_changes, 1)
DEFINE($color, 255) // нужный цвет
DEFINE($time, $_ms + 60000) // время статики
GETSCREEN(100,100, 100,100)
DEFINE($old, PXL(100, 100))
$current = PXL(100, 100)
IF(($current != $old) & (($current == $color) | ($old == $color)))
$time = $_ms + 60000
ELSE
IF($time < $_ms)
//совершает определённое действие
END_IF
END_IF
WAITMS(20)
END_THREAD
-
Спасибо большое, буду пробовать. На счёт первого скрипта вроде бы всё работает, но я изменю параметры снимка экрана, чтобы они совпадали.
-
На основе Вашего скрипта вот что у меня получилось.
DEFINE($color, 1060930) // нужный цвет
DEFINE($time, $_ms + 6000) // время статики взял 6 сек
GETSCREEN(-154,687, -154,687)
DEFINE($old, PXL(-154,687))
$current = PXL(-154,687)
IF(($current != $old) & (($current == $color) | ($old == $color)))
$time = $_ms + 6000
ELSE
IF($time < $_ms)
KEYPRESS(69) //совершает определённое действие
END_IF
END_IF
WAITMS(200)
У меня получается следующее: спустя 6 сек скрипт постоянно начинает совершать действие, т.е. KEYPRESS(69).
Если я где-то ошибся, то подскажите.
А так постараюсь максимально упростить, что мне надо на следующим примере.
"На экране мигает (включается и выключается) лампочка с периодичностью 1-5 сек, у лампы только 2 состояния: включена, цвет 1, выключена, цвет 2.
Если лампа перестаёт мигать, т.е. становится цветом 2, на протяжении, например, 10 сек, нужно чтобы скрипт произвёл действие и запустил мигание лампочки по-новой и так по кругу".
-
После действия должна быть пауза и после нужно перезарядить таймер
$time = $_ms + 6000
это я забыл сделать.
Остальное непонятно, описание расходится с первоначальным. Т.е. если цвет есть, то не важно сколько он есть?
-
Решил попробовать немного другой способ, который приведет к нужному мне результату.
Условия такие:
Скрипт сканирует область
GETSCREEN(1218,240, 1303,324)
Если в данной области находит пиксель с нужным мне цветом
IF_PIXEL_IN(1218,240, 1303,324, 11385599)
То ничего не делает, но если данного пикселя в указанной области не находит то совершает действие (например, производит нажатие клавиши).
Если после нажатия клавиши пиксель всё также отсутствует производит снова нажатие и так пока не найдёт.
Заранее спасибо.
П.С. Все скрипты, что я писал с целью решить данную задачу приводили к тому, что не зависимо от того находил ли скрипт цвет пикселя или нет в указанной мною области экрана, он производил нажатие клавиши с той задержкой, что я указал.
-
Выражусь на "игровом" языке.
На миникарте отображаются мобы, которые произвольно передвигаются, все имеют общий пиксель с одним цветом.
Если мобы на карте - отлично, скрипту ничего делать не надо.
Если их нет на карте, то скрипт делает действие (портация) в область, где они есть.
Если портация снова привела в область, где нет мобов, снова совершает портацию, и так пока их не обнаружит.
Так, думаю, будет более понятно.
Заранее спасибо.
-
#name "v1.0 портер"
DEFINE($color,11385599) // нужный цвет
$check = 0
WHILE($check = 0)
GETSCREEN(1218,240,1303,324)
IF_PIXEL_IN(1218,240,1303,324,$color)
WAITMS(100)
ELSE
LOGWRITE ("телепортация")
KEYPRESS(69) // нажатие клавиши
WAITMS(5000)
END_IF
END_CYC
-
Спасибо большое. Завтра буду пробовать ;)