Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: nipter on November 17, 2017, 10:58:38 PM
-
Скрипт должен одновременно следить за несколькими координатами на совпадения цвета(разного) и смотря какой и когда совпадет продолжать скрипт по разным вариантам.
GETSCREEN
IF(PXL(1443,824) = 8583929)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1547,888) = 8583929)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1513,945) = 15856113)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1514,823) = 8518136)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
END_IF
GETSCREEN
IF(PXL(1384,747) = 7392945)
LCLICK(1421,737)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
GETSCREEN
IF(PXL(1204,254) = 15526380)
LCLICK(1411,819)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
END_IF
-
Cам я не очень много знаю, поэтому могу ошибаться. Точно не знаю, но по-моему правильно должно выглядеть так. И я не понял почему в конце ты сделал два действия отдельно(ещё два раза "GETSCREEN" и "IF(PXL)" отдельно). И сразу скажу, что данный цикл предназначен для одноразового использования.
GETSCREEN
IF(PXL(1443,824) = 8583929)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1547,888) = 8583929)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1513,945) = 15856113)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
ELSE
IF(PXL(1514,823) = 8518136)
LCLICK(942,712)
WAIT(0.5)
LCLICK(1191,445)
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF(PXL(1384,747) = 7392945)
LCLICK(1421,737)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
END_IF
GETSCREEN
IF(PXL(1204,254) = 15526380)
LCLICK(1411,819)
WAIT(0.5)
LCLICK(946,719)
WAIT(0.5)
LCLICK(1204,526)
END_IF
-
Здравствуйте спасибо большое за такой развернутый ответ, эту программу можно будет использовать много раз? Тоесть я ее настрою включу и как только пиксель загорится нужным цветом выполнится определенная для него команда?
-
Почему то не работает.
SUB(LCLICK,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(500)
END_SUB
GETSCREEN
IF((PXL(1443,824)=8583929)|(PXL(1547,888)=8583929)|(PXL(1513,945)=15856113)|(PXL(1514,823)=8518136))
LCLICK(942,712)
LCLICK(1191,445)
END_IF
GETSCREEN
IF(PXL(1384,747)=7392945)
LCLICK(1421,737)
LCLICK(946,719)
LCLICK(1204,526)
END_IF
GETSCREEN
IF(PXL(1204,254)=15526380)
LCLICK(1411,819)
LCLICK(946,719)
LCLICK(1204,526)
END_IF
GETSCREEN
IF(PXL(1282,378)=15858446)
LCLICK(1403,749)
END_IF
GETSCREEN
IF(PXL(1412,726)=7658942)
LCLICK(1412,726)
LCLICK(946,719)
LCLICK(1204,526)
END_IF
GETSCREEN
IF(PXL(1412,737)=6925974)
LCLICK(1412,737)
LCLICK(946,719)
LCLICK(1204,526)
END_IF
-
Да все перепроверил. Может можно как то программу привязать к окну.
-
Хорошо, сейчас перепроверю все координаты попробую написать все заново.
-
Как мне добавить вот к этому еще 2 условия (по какой то причине работает не корректно после добавления)
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(500)
END_SUB
GETSCREEN
IF((PXL(1547,888)=8583929)|(PXL(1514,823)=8518136)|(PXL(1476,859)=8583673)|(PXL(1513,945)=15856113))
клик(942,712)
LCLICK(1191,445)
END_IF
вот это GETSCREEN
IF((PXL(1473,823)=7592122)
клик(1473,823)
клик(942,712)
клик(1185,529)
END_IF
и вот это GETSCREEN
IF((PXL(1463,744)=7525301)
клик(1463,744)
клик(942,712)
клик(1185,529)
END_IF
вот что получилось у меня
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(500)
END_SUB
GETSCREEN
IF((PXL(1547,888)=8583929)|(PXL(1514,823)=8518136)|(PXL(1476,859)=8583673)|(PXL(1513,945)=15856113))
клик(942,712)
LCLICK(1191,445)
END_IF
GETSCREEN
IF((PXL(1473,823)=7592122)
клик(1473,823)
клик(942,712)
клик(1185,529)
END_IF
GETSCREEN
IF((PXL(1463,744)=7525301)
клик(1463,744)
клик(942,712)
клик(1185,529)
END_IF
-
Вот вроде поправил теперь нет ошибок?
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(500)
END_SUB
GETSCREEN
IF((PXL(1547,888)=8583929)|(PXL(1514,823)=8518136)|(PXL(1476,859)=8583673)|(PXL(1513,945)=15856113|(PXL(1513,948)=8517880)))
клик(942,712)
LCLICK(1191,445)
END_IF
GETSCREEN
IF(PXL(1473,823)=7592122)
клик(1473,823)
клик(942,712)
клик(1185,529)
END_IF
GETSCREEN
IF(PXL(1463,744)=7525301)
клик(1463,744)
клик(942,712)
клик(1185,529)
END_IF
GETSCREEN
IF(PXL(1277,378)=15990543)
клик(1419,744)
END_IF
GETSCREEN
IF(PXL(1290,298)=13892607)
клик(1423,778)
END_IF
-
Че у тебя скобки туда сюда пляшут? Правильно так
IF((PXL(1547,888)=8583929)|(PXL(1514,823)=8518136)|(PXL(1476,859)=8583673)|(PXL(1513,945)=15856113)|(PXL(1513,948)=8517880))
-
Добрый день и снова я со своими глупенькими вопросами)))подскажите как сделать двойное условие, то есть если два цвета совпадают то заданные действия выполняются.
На примере вот этого.
GETSCREEN
IF(PXL(1514,823)=8518136)
клик(942,712)
клик(1191,445)
LOGWRITE (1 и 2 цвет найдены) \\PXL(1658,837)=1172228 нужно добавить
END_IF
-
Добрый день и снова я со своими глупенькими вопросами)))подскажите как сделать двойное условие, то есть если два цвета совпадают то заданные действия выполняются.
На примере вот этого.
GETSCREEN
IF(PXL(1514,823)=8518136)
клик(942,712)
клик(1191,445)
LOGWRITE (1 и 2 цвет найдены) \\PXL(1658,837)=1172228 нужно добавить
END_IF
GETSCREEN
IF((PXL(1514,823)=8518136)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("1 и 2 цвет найдены")
END_IF
-
Спасибки :) :) :) :)
-
И снова Здравствуйте что то не работает у меня криворучки двойное условие :)если быть точнее он тыкает в верхний левый угол экрана... (все координаты я пятьсот раз проверил)
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(1000)
END_SUB
GETSCREEN
IF((PXL(1514,823)=8518136)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("1 (1)")
END_IF
GETSCREEN
IF((PXL(1547,888)=8583929)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("2(2)")
END_IF
GETSCREEN
IF((PXL(1476,889)=8583673)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("3(3)")
END_IF
GETSCREEN
IF((PXL(1513,948)=8517880)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("4(4)")
END_IF
GETSCREEN
IF((PXL(1814,948)=8517624)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("5(5)")
END_IF
GETSCREEN
IF((PXL(1513,945)=15856113)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("6")
END_IF
GETSCREEN
IF(PXL(1473,823)=7592122)
клик(1473,823)
клик(942,712)
клик(1185,529)
LOGWRITE ("7")
END_IF
GETSCREEN
IF(PXL(1463,744)=7525301)
клик(1463,744)
клик(942,712)
клик(1185,529)
LOGWRITE ("8")
END_IF
GETSCREEN
IF(PXL(1277,378)=15990543)
клик(1419,744)
LOGWRITE ("9")
END_IF
GETSCREEN
IF(PXL(1290,298)=13892607)
клик(1423,778)
LOGWRITE ("10")
END_IF
GETSCREEN
IF(PXL(1412,730)=7592379)
клик(1412,730)
клик(942,712)
клик(1185,529)
LOGWRITE ("11")
END_IF
GETSCREEN
IF(PXL(1078,348)=15329001)
клик(1441,730)
клик(942,712)
клик(1185,529)
LOGWRITE ("12")
END_IF
GETSCREEN
IF(PXL(1430,706)=6725771)
клик(1430,706)
клик(942,712)
клик(1185,529)
LOGWRITE ("13")
END_IF
-
Может я тупень опять со скобками ошибся?
-
И снова Здравствуйте что то не работает у меня криворучки двойное условие :)если быть точнее он тыкает в верхний левый угол экрана... (все координаты я пятьсот раз проверил)
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(1000)
END_SUB
GETSCREEN
IF((PXL(1514,823)=8518136)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("1 (1)")
END_IF
GETSCREEN
IF((PXL(1547,888)=8583929)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("2(2)")
END_IF
GETSCREEN
IF((PXL(1476,889)=8583673)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("3(3)")
END_IF
GETSCREEN
IF((PXL(1513,948)=8517880)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("4(4)")
END_IF
GETSCREEN
IF((PXL(1814,948)=8517624)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("5(5)")
END_IF
GETSCREEN
IF((PXL(1513,945)=15856113)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("6")
END_IF
GETSCREEN
IF(PXL(1473,823)=7592122)
клик(1473,823)
клик(942,712)
клик(1185,529)
LOGWRITE ("7")
END_IF
GETSCREEN
IF(PXL(1463,744)=7525301)
клик(1463,744)
клик(942,712)
клик(1185,529)
LOGWRITE ("8")
END_IF
GETSCREEN
IF(PXL(1277,378)=15990543)
клик(1419,744)
LOGWRITE ("9")
END_IF
GETSCREEN
IF(PXL(1290,298)=13892607)
клик(1423,778)
LOGWRITE ("10")
END_IF
GETSCREEN
IF(PXL(1412,730)=7592379)
клик(1412,730)
клик(942,712)
клик(1185,529)
LOGWRITE ("11")
END_IF
GETSCREEN
IF(PXL(1078,348)=15329001)
клик(1441,730)
клик(942,712)
клик(1185,529)
LOGWRITE ("12")
END_IF
GETSCREEN
IF(PXL(1430,706)=6725771)
клик(1430,706)
клик(942,712)
клик(1185,529)
LOGWRITE ("13")
END_IF
со скобками вроде все норм. а что лог пишет? какие бы условия не были, тыкать в верхний левый угол не должно. проверь работоспособность кликов без условий, возможно причина где то глубже. это весь код? случаем не балуешься привязкой?
-
Пффффффф перезапустил прогу перестал в угол тыкать но условие не выполняет...координаты еще раз перепроверил. Код весь
-
Просто стоит как будто не рабочая.
-
думаю проблема или в самой проге или в координатах
-
Только что пришла одна мысль в голову может у меня включился упрощенный стиль windows 7 и как то поменялись цвета и наверное по этому не работает. Может быть такое?
-
И еще вопросик небольшой, можете написать пример поиска пикселя в определенной облости допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?
-
...написать пример поиска пикселя в определенной области, допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?
Ты это серьёзно? А как всё остальное писал?
-
Возможно имеет смысл сделать код немного более "общительным", чтобы отлаживать было проще. Например, если кликер не нашел нужные цвета пикселей, так он отпишется, какого цвета эти пиксели были. А как все наладится - закомментируете (//) эту часть кода.
IF((PXL(1514,823)=8518136)&(PXL(1658,837)=1172228))
клик(942,712)
клик(1191,445)
LOGWRITE ("1 (1)")
Else
Print(PXL(1514,823)," - ",PXL(1658,837)) // если не кликнул, то пишет цвета тех пикселей.
END_IF
Кроме того можно использовать цветокоррекцию (Шаблоны ->Графика->COLORMODE), ведь с меньшим количеством цветов ошибиться сложнее, даже если немного изменились размеры окна.
И еще вопросик небольшой, можете написать пример поиска пикселя в определенной области допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?
Можно. Шаблоны->Графика->IF_PIXEL_IN
А вот ситуация как у вас выше - если оба пикселя есть.
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) // координаты "определенной области1", цвет1
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) //координаты "определенной области2", цвет2
// Совершаемые действия, если оба цвета найдены
END_IF
END_IF
-
Угадайте кто пришел))),а это я криворучка :), подскажите как выделить определенную область например квадрат,левый верхний угол (1160,925), правый верхний (1226,991),левый нижний (1160,990), правый нижний (1226,991) и если хоть один из пикселей этой области (включая внутреннюю часть) будет нужным мне цветом например цвет 13816530 то будет выполняться какое то условие) заранее благодарю.
-
:) с последнего вопроса ничего не изменилось. Вопрос всё тот-же, абсолютно, только сформулирован чуть иначе.
Ну кроме 'выделить'. Выделить мышью рамкой? Зачем? Или нужный цвет появляется только после выделения?
-
Извините пропустил что то), образовалась проблема которую я не смог решить кликер просто отказывается кликать и выполнять какие либо действия что я только не писал... 0 реакции было у кого такое?
-
;D
-
я побрызгал святой водой не помогает >:(
-
все правильно :P
SUB(клик,$par1,$par2)
LCLICK($par1,$par2)
WAITMS(1000)
END_SUB
GETSCREEN
IF((PXL(1097,1013)=11776947)&(PXL(1199,933)=1173509))
клик(1028,848)
клик(1013,400)
LOGWRITE ("1")
END_IF
GETSCREEN
IF(PXL(1141,381)=8109070)
клик(1175,732)
клик(1028,848)
клик(778,613)
LOGWRITE ("2")
END_IF
-
я уже наизусть выучил все это :( :-X, и опять не работает
-
ну давайте скажите что у меня скобка лишняя и я точно клаву сломаю >:(
-
кликер просто отказывается кликать и выполнять какие либо действия что я только не писал...
Не нужно всех путать, непрохождение кликов это одна проблема, неправильное выполнение скрипта - совсем другая.
Проблема в непрохождении кликов или всё таки цвет не находит? В лог то выводит "1", "2"?
Нет ни одной задержки вне условий. Нужно хотя бы в конце добавить, а то при несрабатывании этих двух условий будет нагружать процессор.
Как этот код с проверкой 2 и 1 пиксела согласуется с текстом?
подскажите как выделить определенную область например квадрат,левый верхний угол (1160,925), правый верхний (1226,991),левый нижний (1160,990), правый нижний (1226,991) и если хоть один из пикселей этой области (включая внутреннюю часть) будет нужным мне цветом например цвет 13816530 то будет выполняться какое то условие)
Просто когда в нескольких постах просьбы о помощи об одном, а при выкладывании кода, в нём оказывается совсем другое, это сильно дизориентирует.