Автор Тема: IF_PICTURE_IN - Для новичков  (Прочитано 46526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

wert19s

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #60 : Май 17, 2020, 10:45:29 pm »
Добрый вечер еще 3 вопросa : игры маил.ру там как бы заходишь в верхнюю панел далее охота открывается окошко флеш тоесть на этом окошке кликер должен найти картинку вопрос делать так же как и обычно без всяких дополнений?или для флеша нужно что-то особенное?
2.и еще : как реализовать нахождение картинки и клик к примеру на 2 сантиметра ниже/выше в сторону? возможно ли?
3. черный цвет не находит с colormode 5 может не применять к черному?
« Последнее редактирование: Май 17, 2020, 11:46:02 pm от wert19s »

wert19s

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #61 : Май 19, 2020, 10:06:25 pm »
1:
 wait(1)
LCLICK(624,189)  // zapad
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      print("Boy")
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      WAITM(3)
   ELSE
      print("net")
       GOTO(2)
   END_IF
END_CYC


2:
wait(1)
LCLICK(668,203)  // yug
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
       GOTO(3)
   END_IF
END_CYC


3:
wait(1)
LCLICK(723,186)  // vostok
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
        GOTO(4)
   END_IF
END_CYC

4:
wait(1)

LCLICK(670,180)  // sever
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAIT(3)
   ELSE
      print("net")
         GOTO(1)
   END_IF
END_CYC
ну вот наконец сделал: кликабельнный только серый цвет не смог его найти но есть и яркий зеленый его нашел ну и подправил клик как видите по координаты серого цвета.
Спасибо всем кто помог




Можно ли этот код как-то упростить?

Hito

  • Герой форума
  • *****
  • Сообщений: 1174
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #62 : Май 20, 2020, 06:17:25 am »
1:
 wait(1)
LCLICK(624,189)  // zapad
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      print("Boy")
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      WAITM(3)
   ELSE
      print("net")
       GOTO(2)
   END_IF
END_CYC


2:
wait(1)
LCLICK(668,203)  // yug
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
       GOTO(3)
   END_IF
END_CYC


3:
wait(1)
LCLICK(723,186)  // vostok
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
        GOTO(4)
   END_IF
END_CYC

4:
wait(1)

LCLICK(670,180)  // sever
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAIT(3)
   ELSE
      print("net")
         GOTO(1)
   END_IF
END_CYC
ну вот наконец сделал: кликабельнный только серый цвет не смог его найти но есть и яркий зеленый его нашел ну и подправил клик как видите по координаты серого цвета.
Спасибо всем кто помог




Можно ли этот код как-то упростить?

Ребят, вы что такие зацикленные на циклах...? Тебе зачем все эти циклы в скрипте...? Да к тому же циклы, из которых ты выскакиваешь при ЛЮБОМ условии, либо при помощи $check = 1, либо при помощи GOTO (во втором случае еще и ломая весь цикл)... Да еще и в каждом цикле ища одну и ту же картинку и производя одни и те же действия... Кто вас подсаживает на этот маразм...?
Вот всё,что тебе надо:

Код: Clickermann
  1. IF($click_timer < $_ms)
  2.   IF($click = 0)
  3.      SWITCH($mir)
  4.         CASE(0)
  5.            LCLICK(624,189)  // zapad
  6.            $mir = 1
  7.         CASE(1)
  8.            LCLICK(668,203)  // yug
  9.            $mir = 2
  10.         CASE(2)
  11.            LCLICK(723,186)  // vostok
  12.            $mir = 3
  13.         CASE(3)
  14.            LCLICK(670,180)  // sever
  15.            $mir = 0
  16.      END_SWITCH
  17.      $click = 1
  18.      $click_timer = $_ms+3000
  19.   else
  20.      GETSCREEN
  21.      colormode(5)
  22.      IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
  23.         print("Boy")
  24.         LCLICK($_return1-32, $_return2-18)
  25.         wait(3)
  26.         LCLICK(363,187)  // 2373236
  27.         wait(3)
  28.         LCLICK(698,340)  // 6184542
  29.         wait(4)
  30.         LCLICK(698,340)  // 6184542
  31.         wait(5)
  32.         DBLCLICK(704,100)  // 10127201
  33.         wait(3)
  34.         DBLCLICK(704,100)  // 10127201
  35.  
  36.         $click_timer = $_ms+3000
  37.         $click = 0
  38.      END_IF
  39.   END_IF
  40. END_IF
  41. WAITMS(50)

И вот так еще можно:

Код: Clickermann
  1. $x[0] = 624
  2. $y[0] = 189
  3. $x[1] = 668
  4. $y[1] = 203
  5. $x[2] = 723
  6. $y[2] = 186
  7. $x[3] = 670
  8. $y[3] = 180
  9.  
  10. IF($click_timer < $_ms)
  11.   IF($click = 0)
  12.      LCLICK($x[$i],$y[$i])
  13.      IF($i < 4)
  14.         INC($i,1)
  15.      else
  16.         $i = 0
  17.      END_IF
  18.      $click = 1
  19.      $click_timer = $_ms+3000
  20.   else
  21.      GETSCREEN
  22.      colormode(5)
  23.      IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
  24.         print("Boy")
  25.         LCLICK($_return1-32, $_return2-18)
  26.         wait(3)
  27.         LCLICK(363,187)  // 2373236
  28.         wait(3)
  29.         LCLICK(698,340)  // 6184542
  30.         wait(4)
  31.         LCLICK(698,340)  // 6184542
  32.         wait(5)
  33.         DBLCLICK(704,100)  // 10127201
  34.         wait(3)
  35.         DBLCLICK(704,100)  // 10127201
  36.  
  37.         $click_timer = $_ms+3000
  38.         $click = 0
  39.      END_IF
  40.   END_IF
  41. END_IF
  42. WAITMS(50)

И вообще я бы все твои "wait" позаменял на таймеры. В скрипте в идеале должна быть одна пауза - в конце, для разгрузки процессора. Скрипт не должен висеть на паузах - он должен контролить все и вся на каждом кругу, с одной паузой.
« Последнее редактирование: Май 20, 2020, 08:58:20 pm от Hito »
Я не ду... Потому и не бу...

wert19s

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #63 : Май 20, 2020, 10:49:01 pm »
1:
 wait(1)
LCLICK(624,189)  // zapad
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      print("Boy")
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      WAITM(3)
   ELSE
      print("net")
       GOTO(2)
   END_IF
END_CYC


2:
wait(1)
LCLICK(668,203)  // yug
 wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
       GOTO(3)
   END_IF
END_CYC


3:
wait(1)
LCLICK(723,186)  // vostok
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAITM(3)
   ELSE
      print("net")
        GOTO(4)
   END_IF
END_CYC

4:
wait(1)

LCLICK(670,180)  // sever
wait(3)
$check = 0
WHILE($check = 0)
   GETSCREEN
   colormode(5)
   IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
      $check = 1
      LCLICK($_return1-32, $_return2-18)
      wait(3)
      LCLICK(363,187)  // 2373236
      wait(3)
      LCLICK(698,340)  // 6184542
      wait(4)
      LCLICK(698,340)  // 6184542
      wait(5)
      DBLCLICK(704,100)  // 10127201
      wait(3)
      DBLCLICK(704,100)  // 10127201
      print("Boy")
      WAIT(3)
   ELSE
      print("net")
         GOTO(1)
   END_IF
END_CYC
ну вот наконец сделал: кликабельнный только серый цвет не смог его найти но есть и яркий зеленый его нашел ну и подправил клик как видите по координаты серого цвета.
Спасибо всем кто помог




Можно ли этот код как-то упростить?

Ребят, вы что такие зацикленные на циклах...? Тебе зачем все эти циклы в скрипте...? Да к тому же циклы, из которых ты выскакиваешь при ЛЮБОМ условии, либо при помощи $check = 1, либо при помощи GOTO (во втором случае еще и ломая весь цикл)... Да еще и в каждом цикле ища одну и ту же картинку и производя одни и те же действия... Кто вас подсаживает на этот маразм...?
Вот всё,что тебе надо:

Код: Clickermann
  1. IF($click_timer < $_ms)
  2.   IF($click = 0)
  3.      SWITCH($mir)
  4.         CASE(0)
  5.            LCLICK(624,189)  // zapad
  6.            $mir = 1
  7.         CASE(1)
  8.            LCLICK(668,203)  // yug
  9.            $mir = 2
  10.         CASE(2)
  11.            LCLICK(723,186)  // vostok
  12.            $mir = 3
  13.         CASE(3)
  14.            LCLICK(670,180)  // sever
  15.            $mir = 0
  16.      END_SWITCH
  17.      $click = 1
  18.      $click_timer = $_ms+3000
  19.   else
  20.      GETSCREEN
  21.      colormode(5)
  22.      IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
  23.         print("Boy")
  24.         LCLICK($_return1-32, $_return2-18)
  25.         wait(3)
  26.         LCLICK(363,187)  // 2373236
  27.         wait(3)
  28.         LCLICK(698,340)  // 6184542
  29.         wait(4)
  30.         LCLICK(698,340)  // 6184542
  31.         wait(5)
  32.         DBLCLICK(704,100)  // 10127201
  33.         wait(3)
  34.         DBLCLICK(704,100)  // 10127201
  35.  
  36.         $click_timer = $_ms+3000
  37.         $click = 0
  38.      END_IF
  39.   END_IF
  40. END_IF
  41. WAITMS(50)

И вот так еще можно:

Код: Clickermann
  1. $x[0] = 624
  2. $y[0] = 189
  3. $x[1] = 668
  4. $y[1] = 203
  5. $x[2] = 723
  6. $y[2] = 186
  7. $x[3] = 670
  8. $y[3] = 180
  9.  
  10. IF($click_timer < $_ms)
  11.   IF($click = 0)
  12.      LCLICK($x[$i],$y[$i])
  13.      IF($i < 4)
  14.         INC($i,1)
  15.      else
  16.         $i = 0
  17.      END_IF
  18.      $click = 1
  19.      $click_timer = $_ms+3000
  20.   else
  21.      GETSCREEN
  22.      colormode(5)
  23.      IF_PICTURE_IN (0,0,$_xmax,$_xmax, "1.bmp", -1, 65)
  24.         print("Boy")
  25.         LCLICK($_return1-32, $_return2-18)
  26.         wait(3)
  27.         LCLICK(363,187)  // 2373236
  28.         wait(3)
  29.         LCLICK(698,340)  // 6184542
  30.         wait(4)
  31.         LCLICK(698,340)  // 6184542
  32.         wait(5)
  33.         DBLCLICK(704,100)  // 10127201
  34.         wait(3)
  35.         DBLCLICK(704,100)  // 10127201
  36.  
  37.         $click_timer = $_ms+3000
  38.         $click = 0
  39.      END_IF
  40.   END_IF
  41. END_IF
  42. WAITMS(50)

И вообще я бы все твои "wait" позаменял на таймеры. В скрипте в идеале должна быть одна пауза - в конце, для разгрузки процессора. Скрипт не должен висеть на паузах - он должен контролить все и вся на каждом кругу, с одной паузой.

Для начала спасибо большое, но я сделал то что смог ваших знаний у меня нет, были бы наверное так же отвечал бы :)))а может и нет, сечас проверю как работает выглядит намного красивее и круто:)))даже не знал об этих командах ....
цыклы ломал что переклчится с окна на окно в игре...
а вот только после месяца понял как правильно скрины делать и то черный не находит...
Спасибо еще раз

Hito

  • Герой форума
  • *****
  • Сообщений: 1174
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #64 : Май 21, 2020, 09:25:05 pm »
Только во втором варианте IF($i < 4) замени на IF($i < 3). Ошибся на единицу...
Я не ду... Потому и не бу...

Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #65 : Январь 03, 2021, 08:59:23 am »
вот что не получается. В bluestacks запущено андроид приложение. Задача - проверять наличие нужной кнопки, если она есть - нажимать на неё и т.д. каждое состояние по отдельности срабатывает замечательно, до состояния 2 всё вместе срабатывает замечательно, а на третьем состоянии - распознавание экрана не срабатывает, выдаёт ошибку по условию else. Что я не знаю?

Код: Clickermann
  1. $S_CORR = 0
  2. //проверяем состояние 0
  3. GETSCREEN
  4. COLORMODE(3)
  5. IF_PICTURE_IN(478,708, 520,717, "0.bmp", -1, 100)
  6. ELSE
  7. print("ошибка состояния 0")
  8. END_IF
  9. waitms(1000 + $S_CORR)
  10. //проверяем состояние 1
  11. GETSCREEN
  12. COLORMODE(3)
  13. IF_PICTURE_IN(556,709, 597,717, "1.bmp", -1, 100)
  14.  waitms(200 + $S_CORR)
  15. move(577,697)
  16. waitms(200 + $S_CORR)
  17. move(578,698)
  18. waitms(200 + $S_CORR)
  19. move(577,697)
  20. waitms(200 + $S_CORR)
  21. move(577,697)
  22. lDown(577,697)
  23. waitms(100 + $S_CORR)
  24.   lUp(577,697)
  25. ELSE
  26. print("ошибка состояния 1")
  27. END_IF
  28. waitms(1000 + $S_CORR)
  29. //проверяем состояние 2
  30. GETSCREEN
  31. COLORMODE(3)
  32. IF_PICTURE_IN(515,598, 627,611, "2.bmp", -1, 100)
  33.  waitms(200 + $S_CORR)
  34. move(566,605)
  35. waitms(200 + $S_CORR)
  36. move(567,606)
  37. waitms(200 + $S_CORR)
  38. move(567,605)
  39. waitms(200 + $S_CORR)
  40. move(567,605)
  41. lDown(567,605)
  42. waitms(100 + $S_CORR)
  43.   lUp(567,605)
  44. ELSE
  45. print("ошибка состояния 2")
  46. END_IF
  47. waitms(1000 + $S_CORR)
  48. //проверяем состояние 3"
  49. GETSCREEN
  50. COLORMODE(3)
  51. IF_PICTURE_IN(516,648, 566,661, "3.bmp", -1, 100)
  52.  waitms(200 + $S_CORR)
  53. move(542,656)
  54. waitms(200 + $S_CORR)
  55. move(543,657)
  56. waitms(200 + $S_CORR)
  57. move(542,656)
  58. waitms(200 + $S_CORR)
  59. move(542,656)
  60. lDown(542,656)
  61. waitms(100 + $S_CORR)
  62.   lUp(542,656)
  63. ELSE
  64. print("ошибка состояния 3")
  65. END_IF
  66. waitms(1000 + $S_CORR)
  67.  
  68. halt

Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #66 : Январь 03, 2021, 08:45:30 pm »
ты не знаешь, что такое ELSE для IF_PICTURE_IN
это ни какая ни ошибка состояния, а  предусмотренное скриптом отсутствие указанной картинки, именно  на момент проверки.
waitms(1000 + $S_CORR)
//проверяем состояние 3"
этой задержки недостаточно, чтоб проверяемая картинка успела загрузиться.

в иной ситуации я бы спросил про Ваше знание и понимание применения команды print, а в этой ситуации благодарю и попробую, что получится

Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #67 : Январь 03, 2021, 08:59:59 pm »
да, прокатило! урок усвоен. мои благодарности.

З.Ы. print (ошибка состояния) используется для отладки, чтобы знать, где упало.

Еще раз спасибо

Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #68 : Январь 05, 2021, 11:44:52 pm »
приветствую уважаемую публику

вскочил такой вопрос

типовая задача примерно такая. нажимаем на ссылку и ждём загрузки страницы. страница может загрузиться быстро, может - медленно, может вообще не загрузиться, может загрузиться не та, что хотелось бы. Фрагмент страницы, указывающей на её правильную загрузку, естественно заранее лежит в bmp файле. Хотелка состоит в том, чтобы не ждать по 10 - 20 секунд, перед единственной проверкой  IF_PICTURE_IN, а проверять в цикле, с интервалом например 2 ... 3 секунды. У меня сложилась идея решения, которая мне не очень нравится, а другого придумать не могу. Вот так можно делать? Заранее извиняюсь, (весь синтаксис операторов кликерманна пока не освоил, но смысл логических действий ведь везде одинаковый)

(запуск загрузки интернет страницы)
n=1
метка a
getscreen (все параметры)
colormode (все параметры)
IF_PICTURE_IN(все параметры)
(что делать, когда правильно загрузится)
else
ждать 1 секунду//или 2 ...3 секунды, по конкретной ситуации
n=n+1
     если n<10//или любое другое подходящее количество повторов
     переход по метке a
     иначе
     (действия в случае неудачи, вероятно выход из цикла переходом по отдельной метке)
     конец если
END_IF

такие вылеты из циклов и операторов условий допустимы? нормальны? или это как то по иному нужно запиливать?
« Последнее редактирование: Январь 06, 2021, 10:08:09 am от Мыха »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3817
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #69 : Январь 06, 2021, 03:59:57 pm »
Шаблоны -- Графика -- Ожидание картинки


Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #70 : Январь 06, 2021, 07:26:55 pm »
крутяк!

Код: Clickermann
  1. $check = 0
  2. WHILE($check = 0)
  3.   GETSCREEN
  4.   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
  5.      $check = 1
  6.      LCLICK($_return1, $_return2)
  7.      WAITMS(100)
  8.   ELSE
  9.      WAITMS(50)
  10.   END_IF
  11. END_CYC
  12.  

но я не понимаю, что здесь означает левый клик по координатам $_return1, $_return2 ? и что это вообще за координаты? где еще есть мануалы?

и еще такой вопрос. есть ли мануалы, которые объясняют, что за параметры в операторе IF_PICTURE_IN после имени файла?
« Последнее редактирование: Январь 06, 2021, 07:29:41 pm от Мыха »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3817
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #71 : Январь 07, 2021, 01:12:10 am »
А мануалы, как ни странно, находятся (барабанная дробь) в мануале! Неожиданно, но это так.
В программе есть встроенная справка.


Мыха

  • Освоившийся
  • **
  • Сообщений: 43
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #72 : Январь 07, 2021, 01:17:33 am »
а, кажись понял.

Код: Clickermann
  1. LCLICK($_return1, $_return2)
- это щелчок мыши по заранее заданной точке(return1, return2). Это, видимо, для автоматизации какой нибудь игры скорее всего. Здесь другой случай. в зависимости от того, загрузилась ли картинка нормально, или нет, дальше начинаются две непересекающиеся ветви программы, которые заканчивают свою работу самостоятельно.  в общем, смысл понятен, спасибо.

З.Ы. встроенную справку нашёл. Спасибо. Барабанную дробь можно выключать.

melkichelik

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #73 : Январь 15, 2021, 08:44:24 pm »
Добрый день, вопрос такой.
Как сделать так, что бы эта функция работала на разных компьютерах.
Как я понял на разных компьютерах и разных браузерах одно и то же изображение может выводится в разном виде, особенно это заметно когда запускаешь скрипт на виртуальной машине, там получаются скрины которые и при 70% совпадении не ищутся.
Может можно поставить где-то нужные настройки, в системе или в виртуалке.

kiril

  • Освоившийся
  • **
  • Сообщений: 42
    • Просмотр профиля
Re: IF_PICTURE_IN - Для новичков
« Ответ #74 : Январь 15, 2021, 09:07:59 pm »
Добрый день, вопрос такой.
Как сделать так, что бы эта функция работала на разных компьютерах.
Как я понял на разных компьютерах и разных браузерах одно и то же изображение может выводится в разном виде, особенно это заметно когда запускаешь скрипт на виртуальной машине, там получаются скрины которые и при 70% совпадении не ищутся.
Может можно поставить где-то нужные настройки, в системе или в виртуалке.
ну конечно-же можно, устанавливайте программно размер окна; попиксельно идентичный тому, на котором сканировались ваши картинки.