Author Topic: Не выполняется поиск по картинке  (Read 5618 times)

0 Members and 1 Guest are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #15 on: November 19, 2015, 01:22:17 PM »
Вот это нежданчик. Работаю удаленно на другом компьютере через teamviewer, похоже, что зараза кликерманн как-то неправильно координаты мыши считывает. Спасибо!
Скорее всего причина в эмуляторе bluestacks. Там не учитывается строка заголовка, поэтому смещение координат для кликермэна идёт на её высоту.


muryginds

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #16 on: November 20, 2015, 07:41:14 PM »
Вот код:

Code: (clickermann) [Select]
$AUTOFIGHT = 0

AUTOFIGHT:
IF $AUTOFIGHT = 0
   wait(10)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (100,750, 173,810, "off.bmp", -1, 75)
      MOVE($_return1+3, $_return2+3)
      WAITMS(100)
      LCLICK($_return1+3, $_return2+3)
   else
      LOGWRITE ("not found - off")
   END_IF
   $AUTOFIGHT = 1
END_IF

Дальше идет код, после исполнения которого идет переход в метку AUTOFIGHT

В моем понимании представленная проверка if else проходит 1 раз при запуске, а при повторном попадании $AUTOFIGHT уже равен 1 и проверка должна пройти мимо. Но этого не происходит и LOGWRITE ("not found - off") всплывает несколько раз. Вопрос - почему?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #17 on: November 20, 2015, 08:18:22 PM »
Потому что ты забыл скобки в условии поставить.

Code: (clickermann) [Select]
IF ($AUTOFIGHT = 0)

muryginds

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #18 on: November 20, 2015, 10:32:38 PM »
Holy shit! Thanks =)

muryginds

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #19 on: November 22, 2015, 02:41:40 PM »
А можно сделать свою функцию, чтобы просто передавать туда свои параметры и вызвать ее в произвольном месте

Code: (clickermann) [Select]
IF_PICTURE_IN ($px1,$py1, $px2,$py2, $picture, -1, 90)
         $wait_level = 1
         WAITMS(500)
         MOVE($_return1+3, $_return2+3)
         WAITMS(500)
         LCLICK($_return1+3, $_return2+3)
END_IF

как альтернативой пользуюсь сейчас метками, но подумал - может есть что-то удобнее?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #20 on: November 22, 2015, 03:03:43 PM »
А можно сделать свою функцию, чтобы просто передавать туда свои параметры и вызвать ее в произвольном месте

Конечно! Есть подпрограммы.
Code: (clickermann) [Select]
// подпрограмма должна быть описана в верхней части скрипта выше вызова, и не может быть вложена во что либо.
SUB(Поиск, $px1,$py1, $px2,$py2, $picture)
   $wait_level = 0
   WHILE($wait_level = 0)
      GETSCREEN
      IF_PICTURE_IN ($px1,$py1, $px2,$py2, $picture, -1, 100)
         $wait_level = 1
         MOVE($_return1+3, $_return2+3)
         WAITMS(500)
         LCLICK($_return1+3, $_return2+3)
         WAITMS(500)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC   
END_SUB


Поиск(100,100, 400,400, "file 1.bmp") // вызовы
Поиск(400,400, 500,500, "file 2.bmp")
Поиск(0,0, $_xmax,$_ymax, "file 3.bmp")

muryginds

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Не выполняется поиск по картинке
« Reply #21 on: November 22, 2015, 09:19:37 PM »
Спасибо! То, что надо.