Author Topic: IF_PICTURE_IN срабатывает не находя изображение.  (Read 2317 times)

0 Members and 2 Guests are viewing this topic.

froze777

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Hi all.
Кто знает почему у меня в скрипте IF_PICTURE_IN, срабатывает LOGWRITE, в том случае даже если он не находит изображение?))Если в область 1 и область 2 добавить по 1 END_IF то в логе будет пусто, а в моих ожиданиях что выдаст "test1.bmp не найдено"и "test2.bmp не найдено". Если кто знает как реализовать мои ожидания не стесняйтесь помочь))
Code: (clickermann) [Select]
//Область 1
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (80,77, 302,719, "test1.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено test1.bmp")
   waitms(100)

   waitms(150)
COLORMODE(6)
IF_PICTURE_IN (138,213, 543,712, "test1step2.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено step2")
   WAITMS(100)
ELSE
LOGWRITE("test1.bmp не найдено")
END_IF
wait(1)
//Область 2
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (80,77, 302,719, "test2.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено test2.bmp")
   waitms(150)
COLORMODE(6)
IF_PICTURE_IN (138,213, 543,712, "test2step2.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено test2step2")
   WAITMS(100)
ELSE
LOGWRITE("test2.bmp не найдено")
END_IF
wait(1)
halt

« Last Edit: May 17, 2017, 03:18:04 PM by froze777 »

froze777

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Не надо стесняться писать END_IF, та где они должны быть. Ваши картинки тупо не находятся, какое вам счастье от заведомо ложных записей в лог? Соблюдайте синтаксис и будет вам харашо.
И кавычки не теряем.
Не соглашусь с вами насчет END_IF, я делал по примеру скрипта который написал модератор. У него все END_IF в конце а не после каждого IF. После вашего исправления скрипта test1 и test1step2, между собой ничем не связаны...
Я думаю кто норм знает Clickermann, тот поймет что я хочу осуществить, с полуслова.


open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Не соглашусь с вами насчет END_IF, я делал по примеру скрипта который написал модератор. У него все END_IF в конце а не после каждого IF. После вашего исправления скрипта test1 и test1step2, между собой ничем не связаны...
Я думаю кто норм знает Clickermann, тот поймет что я хочу осуществить, с полуслова.

Если бы вы делали по примеру вашего кумира, то как минимум количество END_IF должно было соответствовать количеству IF_... (а должно быть именно так(и у кумира так)). И никто не обязан здесь понимать с полуслова. Не битва экстрасенсов.
Теперь к сути. Попробуйте так:
Code: (clickermann) [Select]
//Область 1
GETSCREEN(80,77, 302,719)
COLORMODE(6,80,77, 302,719)
IF_PICTURE_IN (80,77, 302,719, "test1.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено test1.bmp")
   waitms(100)   
   GETSCREEN(138,213, 543,712)
   COLORMODE(6,138,213, 543,712)
   IF_PICTURE_IN (138,213, 543,712, "test1step2.bmp", -1, 85)
      WAITMS(100)
      LOGWRITE("найдено step2")
      WAITMS(100)
   END_IF
ELSE
      LOGWRITE("test1.bmp не найдено")
END_IF
wait(1)
//Область 2
GETSCREEN(80,77, 302,719)
COLORMODE(6,80,77, 302,719)
IF_PICTURE_IN (80,77, 302,719, "test2.bmp", -1, 85)
   WAITMS(100)
   LOGWRITE("найдено test2.bmp")
   waitms(100)
   GETSCREEN(138,213, 543,712)
   COLORMODE(6,138,213, 543,712)
   IF_PICTURE_IN (138,213, 543,712, "test2step2.bmp", -1, 85)
      WAITMS(100)
      LOGWRITE("найдено test2step2")
      WAITMS(100)
   END_IF
ELSE
      LOGWRITE("test2.bmp не найдено")
END_IF
wait(1)
halt
« Last Edit: May 17, 2017, 06:08:37 PM by open_78 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
kiril  всё правильно сказал. Не хватает двух END_IF. А вот где они должны стоять можно сказать только узнав нужную логику работы.
Т.к. никаких предпочтений указано небыло, kiril предложил один из вариантов чем сам себе подложил свинью в лице неблагодарности и требования "дать того шарящего человека".

Я думаю кто норм знает Clickermann, тот поймет что я хочу осуществить, с полуслова.[/font][/size]
Мы порой забываем данное себе же обещание "больше никогда не отвечать там, где нужно понимать с полуслова". Иногда прокатывает, но потом ЭТО происходит опять.


Не соглашусь с вами насчет END_IF, я делал по примеру скрипта который написал модератор.
Он не давал ломаного примера с недостающими END_IF.

А всего лишь, после ответа, нужно было уточнить какая последовательность нужна. И непонятного срача бы небыло.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (80,77, 302,719, "test1.bmp", -1, 85)
    WAITMS(100)
    LOGWRITE("найдено test1.bmp")
    waitms(100)
   
    waitms(150)
    COLORMODE(6)
    IF_PICTURE_IN (138,213, 543,712, "test1step2.bmp", -1, 85)
        WAITMS(100)
        LOGWRITE("найдено step2")
        WAITMS(100)
    ELSE
        LOGWRITE("test1step2 не найдено")
    END_IF
ELSE
    LOGWRITE("test1.bmp не найдено")
END_IF
wait(1)

GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (80,77, 302,719, "test2.bmp", -1, 85)
    WAITMS(100)
    LOGWRITE("найдено test2.bmp")
    waitms(150)
    COLORMODE(6)
    IF_PICTURE_IN (138,213, 543,712, "test2step2.bmp", -1, 85)
        WAITMS(100)
        LOGWRITE("найдено test2step2")
        WAITMS(100)
    ELSE
        LOGWRITE("test2step2 не найдено")
    END_IF
ELSE
    LOGWRITE("test2.bmp не найдено")
END_IF
wait(1)
halt



Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Пока писал простыню, не видел новый ответ. Но он в большей части совпадает с моим.
« Last Edit: May 17, 2017, 06:11:07 PM by Vint »


froze777

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Vint, Блестящая работа))) Спасибо большое.
Я врубился))
Open_78, я писал в начале что пробовал уже такой вариант), но все же спасибо что попробовал помоч!