Author Topic: Поиск картинок  (Read 3226 times)

0 Members and 2 Guests are viewing this topic.

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Поиск картинок
« on: December 24, 2016, 08:59:27 PM »
Есть несколько областей для поиска, в них нужно найти 2 картинки и кликнуть только в том случае если обе картинки находятся в одной и той же области.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск картинок
« Reply #1 on: December 24, 2016, 09:26:48 PM »
Просто вкладывай поиски.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "a.bmp", -1, 100)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "b.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_IF

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #2 on: December 24, 2016, 09:39:40 PM »
Пробовал так но получается не то что мне нужно
Code: (clickermann) [Select]
$item="Animal.bmp"
$clrs="Colors/Black.bmp"

$check = 0
WHILE($check = 0)
      GETSCREEN
      COLORMODE(6)
   IF_PICTURE_IN (355,377,491,432, $item)
   IF_PICTURE_IN (355,377,491,432, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (518,378,662,428, $item)
   IF_PICTURE_IN (518,378,662,428, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (681,377,821,427, $item)
   IF_PICTURE_IN (681,377,821,427, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (841,377,994,414, $item)
   IF_PICTURE_IN (841,377,994,414, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
     
      //ÑËÅÄÓÞÙÀß ÑÒÐÎÊÀ
     
      ELSE
   IF_PICTURE_IN (354,612,510,663, $item)
   IF_PICTURE_IN (354,612,510,663, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (518,617,672,655, $item)
   IF_PICTURE_IN (518,617,672,655, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (681,619,822,666, $item)
   IF_PICTURE_IN (681,619,822,666, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      ELSE
   IF_PICTURE_IN (842,619,983,674, $item)
   IF_PICTURE_IN (842,619,983,674, $clrs)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)

   
   END_IF
   END_CYC
   HALT

вот код, мне нужно что бы при условии отсутствии одной из двух картинок в области кликер ничего не предпринимал

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #3 on: December 24, 2016, 10:05:22 PM »
А где именно их ставить, а то я запутался :(

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #4 on: December 25, 2016, 09:30:45 AM »
Вот - наш метод!
Code: (clickermann) [Select]
// 24.12.2016
SUB(две картинки, $par1, $par2, $par3, $par4) // подпрограмма
   IF($check!1) //искать если картинки не найдены ранее
      IF_PICTURE_IN ($par1, $par2, $par3, $par4, $item)
         IF_PICTURE_IN ($par1, $par2, $par3, $par4, $clrs)
            $check = 1 // флаг картинка найдена
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_SUB

$item="Animal.bmp"
$clrs="Colors/Black.bmp"
GETSCREEN
COLORMODE(6)
$check =0  // на случай если будет какой-то цикл
две картинки(355,377,491,432)
две картинки(518,378,662,428)
две картинки(681,377,821,427)
две картинки(841,377,994,414)
две картинки(354,612,510,663)
две картинки(518,617,672,655)
две картинки(681,619,822,666)
две картинки(842,619,983,674)
HALT
ЭТО ТО ЧТО МНЕ НУЖНО :D работает на ура!!! Единственное что осталось добавить это чтобы кликер при условии если не находит то что нужно, обновлял страницу то есть просто клацал по F5. 

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #5 on: December 26, 2016, 11:29:56 AM »
Code: (clickermann) [Select]
SUB(две картинки, $par1, $par2, $par3, $par4) // подпрограмма
   IF($check!1) //искать если картинки не найдены ранее
      IF_PICTURE_IN ($par1, $par2, $par3, $par4, $item)
         IF_PICTURE_IN ($par1, $par2, $par3, $par4, $clrs)
            $check = 1 // флаг картинка найдена
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_SUB

$item="Animal.bmp"
$clrs="Colors/Black.bmp"
$check =0
WHILE($check =0) //  Единственно что осталось добавить это цикл что если кликер не находит картинку и обновляет, после он опять должен искать и до тех пор пока не найдет.
   GETSCREEN
   COLORMODE(6)
   $check =0  // на случай если будет какой-то цикл
   две картинки(355,377,491,432)
   две картинки(518,378,662,428)
   две картинки(681,377,821,427)
   две картинки(841,377,994,414)
   две картинки(354,612,510,663)
   две картинки(518,617,672,655)
   две картинки(681,619,822,666)
   две картинки(842,619,983,674)
   IF($check!1) //нажать клавишу если картинки не найдены
      KEYPRESS(#F5) // не забудте активировать нужное окно после старта кликера иначе команда не пройдёт
      WAIT(10) //задержка 10 сек. на обновление страницы
   END_IF
END_CYC
HALT  // стоп картинки найдены
А если сайт обновляется всегда по разному то быстро то медленно, а поск картинок нужно произвести максимально быстро, можно как нибудь научить кликер ждать до полного обновления страницы не зависимо от скорости обновления как например с ожиданием картинки?

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #6 on: December 26, 2016, 01:11:43 PM »
можно, у каждого сайта есть собственный значок для вкладки , так вот од появляется только когда сайт полностью загрузил страницу. Берётся шаблон ожидание картинки и после F5 отслеживает появление иконки вашего сайта.
Code: (clickermann) [Select]
SUB(äâå êàðòèíêè, $par1, $par2, $par3, $par4)
   IF($check!1) //èñêàòü åñëè êàðòèíêè íå íàéäåíû ðàíåå
      IF_PICTURE_IN ($par1, $par2, $par3, $par4, $item)
         IF_PICTURE_IN ($par1, $par2, $par3, $par4, $clrs)
            $check = 1 // ôëàã êàðòèíêà íàéäåíà
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_SUB
 
$item="Animal.bmp"       //ÍÀÇÂÀÍÈÅ ÀÉÒÅÌÀ
$clrs="Colors/Red.bmp"  //ÖÂÅÒ ÀÉÒÅÌÀ
$check =0
WHILE($check =0)
   GETSCREEN
   COLORMODE(6)
   $check =0 
   äâå êàðòèíêè(355,377,491,432)
   äâå êàðòèíêè(518,378,662,428)
   äâå êàðòèíêè(681,377,821,427)
   äâå êàðòèíêè(841,377,994,414)
   äâå êàðòèíêè(354,612,510,663)
   äâå êàðòèíêè(518,617,672,655)
   äâå êàðòèíêè(681,619,822,666)
   äâå êàðòèíêè(842,619,983,674)
   IF($check!1)
    GETSCREEN
   colormode(6) 
KEYPRESS(#F5)
      WAITMS(100)
   
 IF_PICTURE_IN (0,0,177,30, "Icon.bmp")
     
      WAITMS(100)
   
         END_IF
      END_IF
END_CYC

HALT 
Вот что вышло, но он по прежнему не дожидается появления иконки 
Code: (clickermann) [Select]
SUB(две картинки, $par1, $par2, $par3, $par4)
   IF($check!1) //искать если картинки не найдены ранее
      IF_PICTURE_IN ($par1, $par2, $par3, $par4, $item)
         IF_PICTURE_IN ($par1, $par2, $par3, $par4, $clrs)
            $check = 1 // флаг картинка найдена
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_SUB
 
$item="Animal.bmp"       //НАЗВАНИЕ АЙТЕМА
$clrs="Colors/Black.bmp"  //ЦВЕТ АЙТЕМА
$check =0
WHILE($check =0)
   GETSCREEN
   COLORMODE(6)
   $check =0 
   две картинки(355,377,491,432)
   две картинки(518,378,662,428)
   две картинки(681,377,821,427)
   две картинки(841,377,994,414)
   две картинки(354,612,510,663)
   две картинки(518,617,672,655)
   две картинки(681,619,822,666)
   две картинки(842,619,983,674)
   IF($check!1)
    GETSCREEN
   colormode(6) 
KEYPRESS(#F5)
      WAITMS(10)


$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(6)
   IF_PICTURE_IN (0,0,177,30, "Icon.bmp")
      $check = 1
     
      WAITMS(10)
   ELSE
      WAITMS(10)
   END_IF
END_CYC
     
     
   
         END_IF
      END_IF
END_CYC



   
HALT 
Так обновляет обновляет один  раз и сценарий заканчивается. Пробовал через goto работало как надо, но не переходил к след действиям.
« Last Edit: December 26, 2016, 01:40:04 PM by Максим »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поиск картинок
« Reply #7 on: December 26, 2016, 01:42:55 PM »
Вот так

Code: (clickermann) [Select]
SUB(search, $par1, $par2, $par3, $par4)
   IF($check = 0) //искать если картинки не найдены ранее
      IF_PICTURE_IN ($par1, $par2, $par3, $par4, $item)
         IF_PICTURE_IN ($par1, $par2, $par3, $par4, $clrs)
            $check = 1 // флаг картинка найдена
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_SUB

$item="Animal.bmp"       //НАЗВАНИЕ АЙТЕМА
$clrs="Colors/Red.bmp"  //ЦВЕТ АЙТЕМА
$check = 0

WHILE($check = 0)
   GETSCREEN
   COLORMODE(6)
   search(355,377,491,432)
   search(518,378,662,428)
   search(681,377,821,427)
   search(841,377,994,414)
   search(354,612,510,663)
   search(518,617,672,655)
   search(681,619,822,666)
   search(842,619,983,674)
   
   IF($check = 0) 
      KEYPRESS(#F5)
      WAITMS(100)       
      $check2 = 0
      WHILE($check2 = 0)
         GETSCREEN
         COLORMODE(6)
         IF_PICTURE_IN (0,0,177,30, "Icon.bmp")
            $check2 = 1
            WAITMS(100)
         ELSE
            WAITMS(50)
         END_IF
      END_CYC       
   END_IF
   
END_CYC

HALT

Максим

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Поиск картинок
« Reply #8 on: December 26, 2016, 02:46:59 PM »
Всем большое спасибо за оперативную помощь, все работает отлично! Всех с наступающим!