Author Topic: if_picture_in выдает результат координатами (0,0) вне поля поиска  (Read 2043 times)

0 Members and 2 Guests are viewing this topic.

gsukhado

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Всем день добрый.
Пробую использовать вроде бы детально описанную тут команду if_picture_in
Сделал скриншот с использованием http://crapware.aidf.org/forum/index.php?topic=2778.0 (пробовал варианты цветокоррекции на 3 и на 6, итог одинаков), обрезал картинку до размера примерно 30на50, и пробую найти ее на поле игры.
Однако if_picture_in выдает в качестве результата все время (0,0). Я попробовал даже уменьшить поле в if_picture_in(11,125...) - но результат все тот же.
Хотя нужный фрагмент на экране визуально присутствует, скорее внизу экрана - но его данная функция найти никак не хочет.
В чем тут может быть подвох, как сделать?

Code: (clickermann) [Select]
//main part
print("Начинаем фармить")
// ---Поиск шахты с лесом
getscreen(0,0,513,950)
colormode(6,0,0,513,950)
if_picture_in(11,125,510,948,"st_les.bmp",-1,100)
   print("Нашел совпадение, координаты:", $_return1, " ,", $_return2)
   move($_return1+5, $_return2+5)
   wait(5)
   goto(ataka_shahty)
   print("Ничего нет")
   goto(tmp_end)
enf_if

P.S.Если это существенно: картинку ищу в игре на эмуляторе BlueStack3

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
если (привязку к окну не используете)
   то всё вроде норм в коде
   осталось посмотреть нам на картинку и на скрин
иначе
   что-то подсказывает, что мы окажемся здесь
   многоточие
конец рассуждения


стоп
goto уберите из кода
« Last Edit: July 31, 2017, 01:01:35 AM by i0 »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Не enf_if а end_if
Где ELSE?
Цветокоррекцию применил а процент совпадения не снизил

Верный код
Code: (clickermann) [Select]
print("Начинаем фармить")

GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (11,125,510,948,"st_les.bmp",-1,70) // ищем с 70% совпадения
   LCLICK($_return1+5, $_return2+5)
   WAIT(5)
   goto(ataka_shahty)
ELSE
   print("Ничего нет")
   goto(tmp_end)
END_IF

gsukhado

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Oraven, спасибо!
Данный блок заработал, продолжаю дальше ваять. Разве что тут COLORMODE(6) оказалось недостаточно, поставил COLORMODE(7), но это не суть ))

i0
а чем плох выход из if через goto ?

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
Quote
а чем плох выход из if через goto ?
если только из if - нет проблем.
но в показанном куске не было меток.
следовательно, это не весь код.
следовательно, нет уверенности, куда и откуда прыжок (может он вообще из sub в другой sub, а что, тут такое встречается у новичков через два на третий)

но очевидно, что я не разглядел в ночи очевидных ошибок, на которые показал oraven