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

Основной раздел => Общие вопросы => Topic started by: Qlloudy on February 25, 2017, 05:17:47 PM

Title: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 05:17:47 PM
Как задать условие, чтобы скрипты выполнялся только при условии cauntpixel(0,0,0,0,0)<1)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 05:24:20 PM
Как задать условие, чтобы скрипты выполнялся только при условии cauntpixel(0,0,0,0,0)<1)
Или как задать условие, чтобы скрипт выполнялся при условии, что пиксель найден, или нет, или число пикселей равно определенному числу...
Title: Re: Прошу помочь с условием
Post by: Oraven on February 25, 2017, 05:52:16 PM
В логе смотри сколько находит цветов.

Code: (clickermann) [Select]
GETSCREEN
LOGWRITE ("Количество пикселов 255 в зоне 0,0,100,100: ", PXLCOUNT(0,0, 100,100, 255))
IF(PXLCOUNT(0,0, 100,100, 255) > 0)
  // body
END_IF
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 06:10:31 PM
Спасибо, выручил ;) ;)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 07:45:57 PM
Подскажи еще пожалуйста, как сделать, чтобы скрипт не выполнялся пока не будет найден определенный пиксель?
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 08:44:02 PM
Подскажи еще пожалуйста, как сделать, чтобы скрипт не выполнялся пока не будет найден определенный пиксель?
Так.
Code: (clickermann) [Select]
$check=0
WHILE($check=0)
   GETSCREEN
   IF_PIXEL_IN(0,0,$_xmax,$_ymax,255)
      $check=1
      // body
   ELSE
      WAITMS(50)
   END_IF
END_CYC
Если точно знаешь где пиксель то так:
Code: (clickermann) [Select]
$check=0
WHILE($check=0)
   GETSCREEN
   IF(PXL(10,10)=255)
      $check=1
      // body
   ELSE
      WAITMS(50)
   END_IF
END_CYC
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 09:24:58 PM
Ух ты спасибо =)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 09:32:53 PM
Если точно знаешь где пиксель то так:
Code: (clickermann) [Select]
$check=0
WHILE($check=0)
   GETSCREEN
   IF(PXL(10,10)=255)
      $check=1
      // body
   ELSE
      WAITMS(50)
   END_IF
END_CYC
то есть скрипт будет зациклен на этом месте пока не будет выполнено условие?
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 09:56:44 PM
то есть скрипт будет зациклен на этом месте пока не будет выполнено условие?
Проверить быстрее, чем ждать ответа.
И справку почитать тоже можно.
В шаблоны заглядывать полезно.
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 09:57:19 PM
то есть скрипт будет зациклен на этом месте пока не будет выполнено условие?
ну типа да, а чо?! ???
ну типа не работает
Code: [Select]
getscreen
if_pixel_in(18,109,29,135,14847254)
   if(pxlcount(28,164,144,189, 0) > 0)
      lclick(88,176)
      waitms(200)
   end_if
   $a=0
   while($a=0)
      getscreen
      if_pixel_in(841,216,945,234,10066329)
         $a>0
         lclick(901,175)
      else
         waitms(50)
      end_if
   end_cyc
   $b=0
   while($b=0)
      getscreen
      if_pixel_in(744,205,793,220,3355443)
         $b>0
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
end_if
зацикливается на одном цикле и дальше не идет
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 09:58:38 PM
тоесть выполняет условие и пытается его выполнить повторно)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 09:59:59 PM
то есть скрипт будет зациклен на этом месте пока не будет выполнено условие?
Проверить быстрее, чем ждать ответа.
И справку почитать тоже можно.
В шаблоны заглядывать полезно.
первый день на форуме, еще не освоился, да и прогу впервой мучаю =)
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:00:32 PM
Если найден то $a=(РАВНО)1 а не  $a>0. Как она сама станет больше?
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:01:54 PM
первый день на форуме, еще не освоился, да и прогу впервой мучаю =)
И сразу вопросы... Интересней и полезней для развития самому решать задачи.
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 10:02:47 PM
тупанул :-[
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:05:30 PM
Code: (clickermann) [Select]
getscreen
if_pixel_in(18,109,29,135,14847254)
   if(pxlcount(28,164,144,189, 0) > 0)
      lclick(88,176)
      waitms(200)
   end_if
   $a=0  //задал значение
   while($a=0)  //пока значение =0 цикл работает
      getscreen
      if_pixel_in(841,216,945,234,10066329)
         $a=1  //если найдено изменил значение выполнение сценария продолжится.
         lclick(901,175)
      else
         waitms(50)
      end_if
   end_cyc
   $a=0
   while($a=0)
      getscreen
      if_pixel_in(744,205,793,220,3355443)
         $a=0
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
end_if
Можно использовать одну переменную.
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 10:09:12 PM
Спасибо огромное =) все заработало =)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 10:14:23 PM
А данный кликер может найти ссылку в указанной области или найти начало ссылки допустим http:// ? Простите за назойливость(
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:20:32 PM
Может. Данный кликер ооочень много может.
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 10:24:04 PM
Спасибо буду искать варианты ;) Мне очень понравился данный инструмент, как только появятся лишние $ обязательно поблагодарю разработчиков =)
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:27:35 PM
Читайте справку, форум - найдете очень много интересного.
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 10:29:59 PM
а данный скрипт не получится запускать с терминала linux ?
Title: Re: Прошу помочь с условием
Post by: open_78 on February 25, 2017, 10:41:19 PM
От автора:
Честно говоря ни разу этим вопросом не интересовался по причине ну уж очень маленькой ЦА. Портировать ради 10-20 человек, когда основная аудитория измеряется тысячами - ну не знаю. К тому же в кликере очень много завязок именно на WinAPI, который, мне думается, в линуке отсутствует как класс.
И учитывая что раз никто до сих пор не сделал этого, хотя аналогов под винду пруд пруди а первые подобные проги начали появляться лет 15 назад, то все не так просто.

Выкручивайтесь. Wine там всякий, что там у вас есть на такие случаи.
Если какой порт и будет, то скорее всего под Андроид
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 11:25:29 PM
Ну так то почему нет о_О php скрипт запускается через xdotool почему этот не пойдет? Просто на php геморно писать, а чистого функционала у xdotool мало, да и заморочно всравнении clickermann
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 25, 2017, 11:54:13 PM
От автора:
Честно говоря ни разу этим вопросом не интересовался по причине ну уж очень маленькой ЦА. Портировать ради 10-20 человек, когда основная аудитория измеряется тысячами - ну не знаю. К тому же в кликере очень много завязок именно на WinAPI, который, мне думается, в линуке отсутствует как класс.
И учитывая что раз никто до сих пор не сделал этого, хотя аналогов под винду пруд пруди а первые подобные проги начали появляться лет 15 назад, то все не так просто.

Выкручивайтесь. Wine там всякий, что там у вас есть на такие случаи.
Если какой порт и будет, то скорее всего под Андроид
Code: [Select]
$a=0  //задал значение
   while($a=0)  //пока значение =0 цикл работает
      getscreen
      if_pixel_in(841,216,945,234,10066329)
         $a=1  //если найдено изменил значение выполнение сценария продолжится.
         waitms(500)
         lclick(864,163) //клик по кнопке
         $b=0  //если кнопка не сработала задаем значение
         while($b=0)
            getscreen
            if(pxlcount(744,205,793,220,3355443) < 1) //если в областе меньше 1 пикселя делаем клик по той же кнопке
               lclick(903+rnd(1,3),175+rnd(1,3))
            end_if
            $b=1 //как только появляется нужный пиксель в областе выходим из цикла
            GOTO(skip)
         else
            waitms(500)
         end_cyc
      end_if
   end_cyc
   skip:
не посмотришь так можно? если да, то где ошибся?
Title: Re: Прошу помочь с условием
Post by: open_78 on February 26, 2017, 10:01:04 AM
Сначала ошибки:
Code: (clickermann) [Select]
$a=0  //
while($a=0)  //
   getscreen
   if_pixel_in(841,216,945,234,10066329) //ЕСЛИ ПИКСЕЛ НЕ НАЙДЕН ТО ВСЕ ЧТО НИЖЕ НЕ СРАБОТАЕТ ПОКА ОН НЕ ПОЯВИТСЯ.
      $a=1                               //Можно использовать цикл с таймером, если пиксель может и не появиться.
      waitms(500)
      lclick(864,163) //клик по кнопке
      $b=0  //если кнопка не сработала задаем значение
      while($b=0)
         getscreen
         if(pxlcount(744,205,793,220,3355443) < 1) //ЗАЧЕМ ИСКАТЬ ВСЕ ПИКСЕЛИ ЕСЛИ ДОСТАТОЧНО ОДНОГО
            lclick(903+rnd(1,3),175+rnd(1,3))    //ЭТО ТА_ЖЕ КНОПКА? КАКАЯ? ИЗ СТРОКИ № 7?
         end_if
         $b=1 //
         GOTO(skip)   //ВЫПРЫГИВАТЬ ИЗ ЦИКЛА ЗАПРЕЩЕНО-БУДУТ ПРОБЛЕМЫ!!!
      else   // ЭТО ДОЛЖНО БЫТЬ ВНУТРИ УСЛОВИЯ МЕЖДУ if И end_if.
         waitms(500)
      end_cyc
   end_if
end_cyc
skip:
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 26, 2017, 10:49:22 AM
Да кнопка та же из строки 7, суть в том, что кнопка не всегда срабатывает на клик кликера, на клик реальной мыши реагирует отлично, при клике на кнопку открывается выпадающее меню, вот мне и надо кликать на кнопку пока не появится нужные пиксели из выподающего меню и кликнуть по кнопке из этого меню, почему не определенный пиксель а поиск по области -из за того что кнопка может периодически изменять положение на несколько пикселей, из за чего большая вероятность, что нужного пикселя там не будет((
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 26, 2017, 11:26:10 AM
Сначала ошибки:
Code: (clickermann) [Select]
$a=0  //
while($a=0)  //
   getscreen
   if_pixel_in(841,216,945,234,10066329) //ЕСЛИ ПИКСЕЛ НЕ НАЙДЕН ТО ВСЕ ЧТО НИЖЕ НЕ СРАБОТАЕТ ПОКА ОН НЕ ПОЯВИТСЯ.
      $a=1                               //Можно использовать цикл с таймером, если пиксель может и не появиться.
      waitms(500)
      lclick(864,163) //клик по кнопке
      $b=0  //если кнопка не сработала задаем значение
      while($b=0)
         getscreen
         if(pxlcount(744,205,793,220,3355443) < 1) //ЗАЧЕМ ИСКАТЬ ВСЕ ПИКСЕЛИ ЕСЛИ ДОСТАТОЧНО ОДНОГО
            lclick(903+rnd(1,3),175+rnd(1,3))    //ЭТО ТА_ЖЕ КНОПКА? КАКАЯ? ИЗ СТРОКИ № 7?
         end_if
         $b=1 //
         GOTO(skip)   //ВЫПРЫГИВАТЬ ИЗ ЦИКЛА ЗАПРЕЩЕНО-БУДУТ ПРОБЛЕМЫ!!!
      else   // ЭТО ДОЛЖНО БЫТЬ ВНУТРИ УСЛОВИЯ МЕЖДУ if И end_if.
         waitms(500)
      end_cyc
   end_if
end_cyc
skip:
А можно сделать как-нибудь так?
Code: [Select]
$a=0  //задал значение
   while($a=0)
      lclick(900,179)//клик по кнопке
      waitms(500)
      //пока значение =0 цикл работает
      getscreen
      if_pixel_in(565,206,779,221,3355443)//поиск пикселя если после килка выпало меню с нужным пикселем
         $a=1  //если найдено изменил значение выполнение сценария продолжится.
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
Только почему-то так вообще не заходит в цикл, вот целиком
Code: [Select]
getscreen
if_pixel_in(18,109,29,135,14847254)
   if(pxlcount(28,164,144,189, 0) > 0)
      lclick(88,176)
      waitms(200)
   end_if
   $a=0  //задал значение
   while($a=0)
      lclick(900,179)//клик по кнопке
      waitms(500)
      //пока значение =0 цикл работает
      getscreen
      if_pixel_in(565,206,779,221,3355443)//поиск пикселя если после килка выпало меню
         $a=1  //если найдено изменил значение выполнение сценария продолжится.
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
end_if
LDOWN(1286,198)
waitms(500)
LUP(994,201)
KEYDOWN(#ctrl)
KEYDOWN(#c)
waitms(500)
KEYUP(#ctrl)
KEYUP(#c)
KEYPRESS(#delete)
waitms(50)
KEYPRESS(#delete)
waitms(1000)
DBLCLICK(585,222)
waitms(500)
KEYDOWN(#ctrl)
KEYDOWN(#v)
waitms(500)
KEYUP(#ctrl)
KEYUP(#v)
waitms(500)
lclick(316,172)
end_if
wait(2)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 26, 2017, 11:35:28 AM
Спасибо всем кто помогал разобраться, последний вариант сработал, в цикл не заходил из-за низкого тайминга после предыдущего действия...а так теперь жмет на кнопку, пока не найдет нужный пиксель из выпадающего меню ;)
Title: Re: Прошу помочь с условием
Post by: open_78 on February 26, 2017, 11:43:55 AM
Code: (clickermann) [Select]
getscreen
if_pixel_in(18,109,29,135,14847254) //  возможно не находит пиксел
   HINTPOPUP("Пиксел 14847254 найден")
   if(pxlcount(28,164,144,189, 0) > 0)  //почему тут не используешь - if_pixel_in ?
      lclick(88,176)
      waitms(200)
   end_if
   $a=0
   while($a=0)
      lclick(900,179)//кликать будет пока не найдет строчку-13
      waitms(500)
      getscreen
      if_pixel_in(565,206,779,221,3355443)//поиск пикселя если после килка выпало меню
         HINTPOPUP("Пиксел 3355443 найден")
         $a=1
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
else
   HINTPOPUP("Пиксел 14847254 НЕ найден")
end_if   
LDOWN(1286,198)
waitms(500)
LUP(994,201)
KEYDOWN(#ctrl)
KEYPRESS(#c)
waitms(500)
KEYUP(#ctrl)
KEYPRESS(#delete)
waitms(50)
KEYPRESS(#delete)
waitms(1000)
DBLCLICK(585,222)
waitms(500)
KEYDOWN(#ctrl)
KEYPRESS(#v)
waitms(500)
KEYUP(#ctrl)
waitms(500)
lclick(316,172)
wait(2)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 26, 2017, 11:56:02 AM
Code: (clickermann) [Select]
getscreen
if_pixel_in(18,109,29,135,14847254) //  возможно не находит пиксел
   HINTPOPUP("Пиксел 14847254 найден")
   if(pxlcount(28,164,144,189, 0) > 0)  //почему тут не используешь - if_pixel_in ?
      lclick(88,176)
      waitms(200)
   end_if
   $a=0
   while($a=0)
      lclick(900,179)//кликать будет пока не найдет строчку-13
      waitms(500)
      getscreen
      if_pixel_in(565,206,779,221,3355443)//поиск пикселя если после килка выпало меню
         HINTPOPUP("Пиксел 3355443 найден")
         $a=1
         lclick(796,214)
      else
         waitms(50)
      end_if
   end_cyc
else
   HINTPOPUP("Пиксел 14847254 НЕ найден")
end_if   
LDOWN(1286,198)
waitms(500)
LUP(994,201)
KEYDOWN(#ctrl)
KEYPRESS(#c)
waitms(500)
KEYUP(#ctrl)
KEYPRESS(#delete)
waitms(50)
KEYPRESS(#delete)
waitms(1000)
DBLCLICK(585,222)
waitms(500)
KEYDOWN(#ctrl)
KEYPRESS(#v)
waitms(500)
KEYUP(#ctrl)
waitms(500)
lclick(316,172)
wait(2)
Ну в строке 4 можно использовать и if_pixel_in помойму в данном случае это не принципиально, или я ошибаюсь? Не работал из-за маленькой задержки, увеличил до секунды, стало работать как часики ;)
Title: Re: Прошу помочь с условием
Post by: Qlloudy on February 26, 2017, 12:03:11 PM
Собственно получился не плохой, email рассыльщик =) Шлет по 8 сообщений в минуту, чуть позже доработаю, чтобы еще менял акк, шаблон и ip при бане мыла =)
Title: Re: Прошу помочь с условием
Post by: open_78 on February 26, 2017, 12:15:36 PM
Ну в строке 4 можно использовать и if_pixel_in помойму в данном случае это не принципиально, или я ошибаюсь? Не работал из-за маленькой задержки, увеличил до секунды, стало работать как часики ;)
Разницы нет, просто зачем напрягать интерпретатор поиском всех пикселей, если достаточно одного. И в твоем примере один end_if лишний. Или стр.20 или 42.