Author Topic: некорректная работа IF с одним условием  (Read 5435 times)

0 Members and 1 Guest are viewing this topic.

Vulty

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Всем привет!
Столкнулся с, на первый взгляд, необъяснимым глюком - в в прилагаемом сценарии ветка ELSE последнего IF'а никогда не наступает:

Code: [Select]
wndpos( wndfind("Connecting..."), 0, 0)
wndpos( wndfind("vulty-ipad-2.local"), 970, 0)

DEFINE ($var0, "screens\00001.bmp")
DEFINE ($var15, "screens\150003.bmp")
DEFINE ($flag, 0)
DEFINE ($str, "log_")

$flag = 0

logwrite("start", $flag)
LCLICK(1400, 750)
WAIT(2)

GETSCREEN
colormode(8)
$count = PXLCRC (769, 811, 797, 835)
screenshotex(550, 720, 580, 739, $str)
print($count)
logwrite("screen", $flag)
IF_PICTURE_IN (550, 720, 580, 739, $var0, 0, 99)
  $flag=1
  logwrite("0 found", $flag)
end_if

IF_PICTURE_IN (550, 720, 580, 739, $var15, 0, 99)
  $flag = 1
  logwrite("15 found", $flag)
end_if

logwrite("0 NOT found", $flag)

//IF(($count = $var0)|($count = $var15))
IF $flag = 1
  LCLICK(1400, 750)
  Logwrite("collect", $flag)
  WAIT(1)
else
  logwrite("charge", $flag)
  WAIT(0.5)
  LCLICK(1850,470)
END_IF

то есть равен флаг 1 или 0 - в логе идёт:
Code: [Select]
18:15:24 start0
18:15:27 3959175761
18:15:27 screen0
18:15:29 0 NOT found0
18:15:29 collect0
18:15:30 start0
18:15:32 3959175761
18:15:32 screen0
...

Впрочем, вопрос снимается:
достаточно было поставить скобки вокруг условия в последнем IF )
Code: [Select]
IF ($flag = 1)
...
« Last Edit: December 30, 2014, 12:01:08 PM by Vulty »

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
тут вам не паскаль

Vulty

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: некорректная работа IF с одним условием
« Reply #2 on: December 30, 2014, 12:05:29 PM »
таки да, Джонни... проверки синтаксиса в редакторе (ну, кроме подсветки), я так понимаю, нет и не планируется? )
в принципе, логично. ибо и так работает. обычно.