Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: nipter on November 17, 2017, 10:58:38 PM

Title: Пожалуйста помогите)
Post by: nipter on November 17, 2017, 10:58:38 PM
Скрипт должен одновременно следить за несколькими координатами на совпадения цвета(разного) и смотря какой и когда совпадет продолжать скрипт по разным вариантам.
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: Adlet_Veltman on November 17, 2017, 11:28:56 PM
Cам я не очень много знаю, поэтому могу ошибаться. Точно не знаю, но по-моему правильно должно выглядеть так. И я не понял почему в конце ты сделал два действия отдельно(ещё два раза "GETSCREEN" и "IF(PXL)" отдельно). И сразу скажу, что данный цикл предназначен для одноразового использования.

Code: (clickermann) [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on November 18, 2017, 01:39:05 AM
Здравствуйте спасибо большое за такой развернутый ответ,  эту программу можно будет использовать много раз? Тоесть я ее настрою включу и как только пиксель загорится нужным цветом выполнится определенная для него команда?
Title: Re: Пожалуйста помогите)
Post by: nipter on November 18, 2017, 05:27:07 PM
Почему то не работает.
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on November 18, 2017, 05:59:39 PM
Да все перепроверил. Может можно как то программу привязать к окну.
Title: Re: Пожалуйста помогите)
Post by: nipter on November 18, 2017, 06:17:22 PM
Хорошо, сейчас перепроверю все координаты попробую написать все заново.
Title: Re: Пожалуйста помогите)
Post by: nipter on November 19, 2017, 04:32:11 PM
Как мне добавить вот к этому еще 2 условия (по какой то причине работает не корректно после добавления)
Code: [Select]
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
вот это
Code: [Select]
GETSCREEN
IF((PXL(1473,823)=7592122)
   клик(1473,823)
   клик(942,712)
   клик(1185,529)
END_IF
и вот это
Code: [Select]
GETSCREEN
IF((PXL(1463,744)=7525301)
   клик(1463,744)
   клик(942,712)
   клик(1185,529)
END_IF
вот что получилось у меня
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on November 19, 2017, 05:55:34 PM
Вот вроде поправил теперь нет ошибок?
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: Oraven on November 19, 2017, 06:11:08 PM
Че у тебя скобки туда сюда пляшут? Правильно так
Code: (clickermann) [Select]
IF((PXL(1547,888)=8583929)|(PXL(1514,823)=8518136)|(PXL(1476,859)=8583673)|(PXL(1513,945)=15856113)|(PXL(1513,948)=8517880))
Title: Re: Пожалуйста помогите)
Post by: nipter on November 20, 2017, 10:51:11 PM
Добрый день и снова я со своими глупенькими вопросами)))подскажите как сделать двойное условие, то есть если два цвета совпадают то заданные действия выполняются.
На примере вот этого.
Code: [Select]
GETSCREEN
IF(PXL(1514,823)=8518136)
   клик(942,712)   
   клик(1191,445)
   LOGWRITE (1 и 2 цвет найдены)      \\PXL(1658,837)=1172228 нужно добавить
END_IF
Title: Re: Пожалуйста помогите)
Post by: dramster on November 20, 2017, 10:55:36 PM
Добрый день и снова я со своими глупенькими вопросами)))подскажите как сделать двойное условие, то есть если два цвета совпадают то заданные действия выполняются.
На примере вот этого.
Code: [Select]
GETSCREEN
IF(PXL(1514,823)=8518136)
   клик(942,712)   
   клик(1191,445)
   LOGWRITE (1 и 2 цвет найдены)      \\PXL(1658,837)=1172228 нужно добавить
END_IF

Code: (clickermann) [Select]
GETSCREEN
IF((PXL(1514,823)=8518136)&(PXL(1658,837)=1172228))
   клик(942,712)
   клик(1191,445)
   LOGWRITE ("1 и 2 цвет найдены")
END_IF
Title: Re: Пожалуйста помогите)
Post by: nipter on November 20, 2017, 11:32:22 PM
Спасибки :) :) :) :)
Title: Re: Пожалуйста помогите)
Post by: nipter on November 21, 2017, 08:21:32 PM
И снова Здравствуйте что то не работает у меня криворучки двойное условие :)если быть точнее он тыкает в верхний левый угол экрана... (все координаты я пятьсот раз проверил)
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on November 21, 2017, 10:56:09 PM
Может я тупень опять со скобками ошибся?
Title: Re: Пожалуйста помогите)
Post by: dramster on November 21, 2017, 11:08:06 PM
И снова Здравствуйте что то не работает у меня криворучки двойное условие :)если быть точнее он тыкает в верхний левый угол экрана... (все координаты я пятьсот раз проверил)
Code: [Select]
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
со скобками вроде все норм. а что лог пишет? какие бы условия не были, тыкать в верхний левый угол не должно. проверь работоспособность кликов без условий, возможно причина где то глубже. это весь код? случаем не балуешься привязкой?
Title: Re: Пожалуйста помогите)
Post by: nipter on November 22, 2017, 12:03:46 AM
Пффффффф перезапустил прогу перестал в угол тыкать но условие не выполняет...координаты еще раз перепроверил. Код весь
Title: Re: Пожалуйста помогите)
Post by: nipter on November 22, 2017, 12:04:41 AM
Просто стоит как будто не рабочая.
Title: Re: Пожалуйста помогите)
Post by: nipter on November 22, 2017, 12:14:09 AM
думаю проблема или в самой проге или в координатах
Title: Re: Пожалуйста помогите)
Post by: nipter on November 22, 2017, 12:30:05 AM
Только что пришла одна мысль в голову может у меня включился упрощенный стиль windows 7 и как то поменялись цвета и наверное  по этому не работает. Может быть такое?
Title: Re: Пожалуйста помогите)
Post by: nipter on November 22, 2017, 12:41:53 AM
И еще вопросик небольшой, можете написать пример поиска пикселя в определенной облости допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?
Title: Re: Пожалуйста помогите)
Post by: Vint on November 22, 2017, 10:10:36 AM
...написать пример поиска пикселя в определенной области, допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?

Ты это серьёзно? А как всё остальное писал?
Title: Re: Пожалуйста помогите)
Post by: Qwerry on November 22, 2017, 12:48:04 PM
Возможно имеет смысл сделать код немного более "общительным", чтобы отлаживать было проще. Например, если кликер не нашел нужные цвета пикселей, так он отпишется, какого цвета эти пиксели были. А как все наладится - закомментируете (//) эту часть кода.
 
Code: (clickermann) [Select]
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), ведь с меньшим количеством цветов ошибиться сложнее, даже если немного изменились размеры окна.
Quote
И еще вопросик небольшой, можете написать пример поиска пикселя в определенной области допустим в небольшом квадрате и после нахождения этого пикселя выполнялось действие?
Можно. Шаблоны->Графика->IF_PIXEL_IN
А вот ситуация как у вас выше - если оба пикселя есть.
Code: (clickermann) [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on January 07, 2018, 10:24:15 PM
Угадайте кто пришел))),а это я криворучка  :), подскажите как выделить определенную область например квадрат,левый верхний угол (1160,925), правый верхний (1226,991),левый нижний (1160,990), правый нижний (1226,991)  и если хоть один из пикселей этой области (включая внутреннюю часть) будет нужным мне цветом например цвет 13816530 то будет выполняться какое то условие) заранее благодарю.
Title: Re: Пожалуйста помогите)
Post by: Vint on January 08, 2018, 02:26:25 PM
 :) с последнего вопроса ничего не изменилось. Вопрос всё тот-же, абсолютно, только сформулирован чуть иначе.
Ну кроме 'выделить'. Выделить мышью рамкой? Зачем? Или нужный цвет появляется только после выделения?
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 09:22:43 PM
Извините пропустил что то), образовалась проблема которую я не смог решить кликер просто отказывается кликать и выполнять какие либо действия что я только не писал... 0 реакции было у кого такое?
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 09:50:33 PM
 ;D
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 09:51:24 PM
я побрызгал святой водой не помогает >:(
 
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 09:53:40 PM
все правильно :P
Code: [Select]
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
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 09:55:47 PM
я уже наизусть выучил все это :( :-X, и опять не работает
Title: Re: Пожалуйста помогите)
Post by: nipter on January 09, 2018, 10:01:47 PM
ну давайте скажите что у меня скобка лишняя и я точно клаву сломаю >:(
Title: Re: Пожалуйста помогите)
Post by: Vint on January 10, 2018, 08:01:19 AM
кликер просто отказывается кликать и выполнять какие либо действия что я только не писал...
Не нужно всех путать, непрохождение кликов это одна проблема, неправильное выполнение скрипта - совсем другая.
Проблема в непрохождении кликов или всё таки цвет не находит? В лог то выводит "1", "2"?

Нет ни одной задержки вне условий. Нужно хотя бы в конце добавить, а то при несрабатывании этих двух условий будет нагружать процессор.


Как этот код с проверкой 2 и 1 пиксела согласуется с текстом?
подскажите как выделить определенную область например квадрат,левый верхний угол (1160,925), правый верхний (1226,991),левый нижний (1160,990), правый нижний (1226,991)  и если хоть один из пикселей этой области (включая внутреннюю часть) будет нужным мне цветом например цвет 13816530 то будет выполняться какое то условие)
Просто когда в нескольких постах просьбы о помощи об одном, а при выкладывании кода, в нём оказывается совсем другое, это сильно дизориентирует.