Author Topic: Не находит картинку=(  (Read 5226 times)

0 Members and 1 Guest are viewing this topic.

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Не находит картинку=(
« on: March 02, 2016, 01:14:22 PM »
Code: [Select]
WHILE($var1 < 0)
   
   GETSCREEN
   COLORMODE(7)
   
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pustaiaset0000.bmp", -1, 90) //
      LCLICK($_return1+18, $_return2+82)
      WAIT(2)
     
     
      WHILE($var3 < 0)
         
         GETSCREEN(661,355, 1350,830)
         COLORMODE(7)
         
         IF_PICTURE_IN (661,355, 1350,830, "najvkapronohnaia0000.bmp", -1, 90) //не находит=(
            LCLICK($_return1+40, $_return2+40)
            WAIT(1)
            $var3 = 1
         ELSE
           
            IF_PICTURE_IN (661,355, 1350,830, "najivkaspokoinaia0000.bmp", -1, 90) //не находит
               LCLICK($_return1+40, $_return2+40)
               WAIT(1)
               $var3 = 1
            END_IF
         END_CYC
         
      ELSE
         
         $var1 = 1
         
      END_IF
   END_CYC
   
   HALT

Хотя по отдельности ищет и при 100%,а тут не как не хочет=(

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #1 on: March 02, 2016, 03:07:52 PM »
Спасибо)

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #2 on: March 03, 2016, 11:59:40 AM »
Ребят а может кликерман при условии что после снимка на экране 2 или 3 картинки,нажимать их по очереди без повторного поиска? (чтоб без WHILE)
Code: [Select]
WHILE($var = 0)
WAIT(5)
   
   GETSCREEN
   COLORMODE(6)
   
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "set0000.bmp", -1,85) //
      LCLICK($_return1+18, $_return2+82)
      WAIT(5)
 ELSE     
      $var = 1
  END_IF
END_CYC
HALT


sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #3 on: March 03, 2016, 12:23:35 PM »
Не подскажите как осуществить?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не находит картинку=(
« Reply #4 on: March 04, 2016, 07:33:46 AM »
Находит и прокликивает все картинки на экране

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "set0000.bmp", -1,85)
FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
   LCLICK($ARR_SCAN[$ARR_NUM], $ARR_SCAN[$ARR_NUM+1])   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #5 on: April 03, 2016, 08:06:19 PM »
Спасибо,Андрей а как добавить к строчке LCLICK($ARR_SCAN[$ARR_NUM], $ARR_SCAN[$ARR_NUM+1])

LCLICK($_return1+18, $_return2+82)

Нужно чтобы кликал не на картинку а под нее (+18,+82)

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #6 on: April 03, 2016, 08:08:27 PM »
Все сам разобрался)) Спасибо за помощь :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не находит картинку=(
« Reply #7 on: April 03, 2016, 08:20:00 PM »
Code: (clickermann) [Select]
LCLICK($ARR_SCAN[$ARR_NUM]+18, $ARR_SCAN[$ARR_NUM+1]+82)   // Клик

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #8 on: April 04, 2016, 09:26:30 AM »
Как можно упростить скрипт чтобы не писать одно и тоже?
вот скрипт
Code: [Select]
GETSCREEN
COLORMODE(7)

IF_PICTURE_IN (684,593, 1265,727, "bonus0000.bmp", -1, 95) // клик ,бонус
   LCLICK($_return1, $_return2)
   WAIT(1)
END_IF

GETSCREEN
COLORMODE(7)

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
   LCLICK($_return1, $_return2)
   WAIT(1)
END_IF

GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "set0000.bmp", -1,85)
FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
   LCLICK($ARR_SCAN[$ARR_NUM]+18, $ARR_SCAN[$ARR_NUM+1]+82)   // Клик  на все картинки
   WAIT(1)
END_CYC
UNDEFINE($ARR_SCAN)
WAIT(1)

GETSCREEN
COLORMODE(7)

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
   LCLICK($_return1, $_return2)
   WAIT(1)
END_IF



GETSCREEN(661,355, 1350,830)
COLORMODE(7)

IF_PICTURE_IN (661,355, 1350,830, "zakrit0000.bmp", -1, 90)  // на закрыть
   LCLICK($_return1, $_return2)
   WAIT(1)
END_IF


WHILE($var1 = 0)
   GETSCREEN
   COLORMODE(7)
   
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pustaiaset0000.bmp", -1, 90) // клик на пустую сеть
      LCLICK($_return1+18, $_return2+82)
      WAIT(1)
     
     
     
     
      GETSCREEN(661,355, 1350,830)
      COLORMODE(7)
     
      IF_PICTURE_IN (661,355, 1350,830, "najvkapronohnaia0000.bmp", -1, 90) //наживка проточная
         LCLICK($_return1+40, $_return2+40)
         WAIT(1)
         $var2 = 1
      ELSE
         
         IF_PICTURE_IN (661,355, 1350,830, "najivkaspokoinaia0000.bmp", -1, 90) //наживка спокойная
            LCLICK($_return1+40, $_return2+40)
            WAITMS(1)
           
         ELSE
            IF_PICTURE_IN (661,355, 1350,830, "najivkasolenaia0000.bmp", -1, 90) //наживка спокойная
               LCLICK($_return1+40, $_return2+40)
               WAITMS(1)
               
            END_IF
         END_IF
      END_IF
     
     
     
   ELSE
     
      $var1 = 1
     
   END_IF
END_CYC

потом идет действие
Code: [Select]
GETSCREEN(1537,153, 1756,587)
COLORMODE(7)

IF_PICTURE_IN (1537,153, 1756,587, "allaia0000.bmp", -1, 95)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

повтор с начало потом другое действие
Code: [Select]
GETSCREEN(1537,153, 1756,587)
COLORMODE(7)

IF_PICTURE_IN (1537,153, 1756,587, "valor0000.bmp", -1, 95)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
опять в начало и.т.д Действия все разные

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не находит картинку=(
« Reply #9 on: April 04, 2016, 09:47:59 AM »
Используй подпрограмму с передачей параметра
Code: (clickermann) [Select]
SUB(подпрограмма, $pict)
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (684,593, 1265,727, "bonus0000.bmp", -1, 95) // клик ,бонус
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(6)
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "set0000.bmp", -1,85)
   FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
      LCLICK($ARR_SCAN[$ARR_NUM]+18, $ARR_SCAN[$ARR_NUM+1]+82)   // Клик  на все картинки
      WAIT(1)
   END_CYC
   UNDEFINE($ARR_SCAN)
   WAIT(1)
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (661,355, 1350,830, "zakrit0000.bmp", -1, 90)  // на закрыть
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   WHILE($var1 = 0)
      GETSCREEN
      COLORMODE(7)
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pustaiaset0000.bmp", -1, 90) // клик на пустую сеть
         LCLICK($_return1+18, $_return2+82)
         WAIT(1)
         
         GETSCREEN
         COLORMODE(7)
         IF_PICTURE_IN (661,355, 1350,830, "najvkapronohnaia0000.bmp", -1, 90) //наживка проточная
            LCLICK($_return1+40, $_return2+40)
            WAIT(1)
            $var2 = 1
         ELSE
            IF_PICTURE_IN (661,355, 1350,830, "najivkaspokoinaia0000.bmp", -1, 90) //наживка спокойная
               LCLICK($_return1+40, $_return2+40)
               WAITMS(1)
            ELSE
               IF_PICTURE_IN (661,355, 1350,830, "najivkasolenaia0000.bmp", -1, 90) //наживка спокойная
                  LCLICK($_return1+40, $_return2+40)
                  WAITMS(1)
               END_IF
            END_IF
         END_IF
      ELSE
         $var1 = 1
      END_IF
   END_CYC
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (1537,153, 1756,587, $pict, -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_SUB

подпрограмма("allaia0000.bmp")
подпрограмма("valor0000.bmp")

Цикл WHILE($var1 = 0) отработает только 1 раз при первом проходе, после он уже не будет срабатывать. Может нужно обнулить $var1 перед циклом
Code: (clickermann) [Select]
   $var1 = 0
   WHILE($var1 = 0)

$var2 = 1 к чему?

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #10 on: April 04, 2016, 07:32:25 PM »
Спасибо,за подсказку в справку перечитал не один раз,не могу разобраться с sub,Андрей если не сложно подпишите

SUB(подпрограмма, $pict)-что делает эта команда?
подпрограмма("allaia0000.bmp")-
подпрограмма("valor0000.bmp")-
 

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не находит картинку=(
« Reply #11 on: April 04, 2016, 09:13:43 PM »
SUB(подпрограмма, $pict)- это подпрограмма, код внутри выполняется только после вызова
подпрограмма("allaia0000.bmp")- это вызов. как только подпрограмма отработает выполнение перейдет на следующую строку после вызова
подпрограмма("valor0000.bmp")-


sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #12 on: April 05, 2016, 09:06:52 AM »
Code: [Select]
SUB(подпрограмма, $pict)
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (684,593, 1265,727, "bonus0000.bmp", -1, 95) // клик ,бонус
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(6)
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "set0000.bmp", -1,85)
   FOR($ARR_NUM=0,$ARR_NUM<ARRSIZE($ARR_SCAN),2)
      LCLICK($ARR_SCAN[$ARR_NUM]+18, $ARR_SCAN[$ARR_NUM+1]+82)   // Клик  на все картинки
      WAIT(1)
   END_CYC
   UNDEFINE($ARR_SCAN)
   WAIT(1)
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "krestik0000.bmp", -1, 90) // клик на крестик
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (661,355, 1350,830, "zakrit0000.bmp", -1, 90)  // на закрыть
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
   $var1 = 0
   WHILE($var1 = 0)
      GETSCREEN
      COLORMODE(7)
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pustaiaset0000.bmp", -1, 90) // клик на пустую сеть
         LCLICK($_return1+18, $_return2+82)
         WAIT(5)
         
         GETSCREEN
         COLORMODE(7)
         IF_PICTURE_IN (661,355, 1350,830, "najvkapronohnaia0000.bmp", -1, 90) //наживка проточная
            LCLICK($_return1+40, $_return2+40)
            WAIT(5)
           
         ELSE
            IF_PICTURE_IN (661,355, 1350,830, "najivkaspokoinaia0000.bmp", -1, 90) //наживка спокойная
               LCLICK($_return1+40, $_return2+40)
               WAITMS(5)
            ELSE
               IF_PICTURE_IN (661,355, 1350,830, "najivkasolenaia0000.bmp", -1, 90) //наживка спокойная
                  LCLICK($_return1+40, $_return2+40)
                  WAITMS(5)
               END_IF
            END_IF
         END_IF
      ELSE
         $var1 = 1
      END_IF
   END_CYC
   
   GETSCREEN
   COLORMODE(7)
   IF_PICTURE_IN (1537,153, 1756,587, $pict, -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_SUB


SUB(переход, $pict)
   GETSCREEN(1537,153, 1756,587)
   COLORMODE(7)
   
   IF_PICTURE_IN (1537,153, 1756,587, $pict, -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_SUB



переход("allaia0000.bmp") // Не выполняется sub подпрограмма? выполняется sub переход
WAIT(4)

подпрограмма("sadar0000.bmp") // выполняется sub подпрограмма

переход("perek0000.bmp")
WAIT(4)

подпрограмма("valor0000.bmp")

переход("perek0000.bmp")
WAIT(4)

подпрограмма("melnia0000.bmp")

переход("perek0000.bmp")
WAIT(4)

переход("usadba0000.bmp")
WAIT(4)

подпрограмма("prud0000.bmp")

подпрограмма("pivo0000.bmp")

LCLICK(1704,128)  //выход

HALT
Вот так правильно будет?

sanek83

  • Освоившийся
  • **
  • Posts: 64
    • View Profile
Re: Не находит картинку=(
« Reply #13 on: April 05, 2016, 09:12:33 AM »
Code: [Select]
SUB(переход, $pict)
   GETSCREEN(1537,153, 1756,587)
   COLORMODE(7)
   
   IF_PICTURE_IN (1537,153, 1756,587, $pict, -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_SUB



переход("allaia0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("valor0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("melnia0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("usadba0000.bmp")
WAIT(5)

переход("prud0000.bmp")
WAIT(5)

переход("pivo0000.bmp")
WAIT(5)

Вот так не работает =( почему?
переходит только 1 раз переход("allaia0000.bmp")

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не находит картинку=(
« Reply #14 on: April 05, 2016, 06:35:44 PM »
Используй запись в лог чтобы увидеть что сработало а что нет. Плюс можно добавить сброс снимка в файл если не найдено, чтоб ты потом сам увидел что там не увидел кликер.

Code: (clickermann) [Select]
SUB(переход, $pict)
   LOGWRITE ("переход: ", $pict)
   GETSCREEN(1537,153, 1756,587)
   COLORMODE(7,1537,153, 1756,587)
   IF_PICTURE_IN (1537,153, 1756,587, $pict, -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("Найдено")
   ELSE
      SCREENSHOTEX(1537,153, 1756,587, STRREPLACE($pict, "0000.bmp", ""), 0) // для теста делаем снимок если не найдено
      LOGWRITE ("Не найдено")
   END_IF
END_SUB

переход("allaia0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("valor0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("melnia0000.bmp")
WAIT(5)

переход("perek0000.bmp")
WAIT(5)

переход("usadba0000.bmp")
WAIT(5)

переход("prud0000.bmp")
WAIT(5)

переход("pivo0000.bmp")
WAIT(5)
« Last Edit: April 05, 2016, 06:44:09 PM by Oraven »