Author Topic: Клик по картинке сразу, как только кликер ее найдет  (Read 2527 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Есть веб страница. Она загружается иногда быстро, иногда медленно. Когда загрузилась страница и кнопка (в виде картинки), то кликер сразу же нажимает на нее. Нюанс в том, что страница с картинкой может загрузиться через 2 секунды, а иногда через минуту. Можно конечно же было бы использовать такую команду:
Code: (clickermann) [Select]
WAIT(60)
GETSCREEN(25,25,500,500)
IF_PICTURE_IN (25,25,500,500, "картинка.bmp")
   LCLICK($_return1+55, $_return2+5)
   WAITMS(100)
END_IF
поставив максимально возможное время ожидания, но эту работу нужно выполнять быстрее и если страница загрузилась за две секунды, что чаще, не хотелось бы ждать целую минуту.

Как сделать такой скрипт, чтобы кликер кликал на картинку через 200MS как только ее обнаружил? Если страница загрузилась за 3 секунды, то он соответственно через 3 секунды и кликнул и если страница загрузилась через 4 минуты, то он подождал и как только она прогрузилась, так кликнул?

Максимальное время ожидания кликера 5 минут. Если он за это время не нашел картинку, то HALT.

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Code: (clickermann) [Select]
$time = $_time_m + 5 // таймер на 5 минут
WHILE($time > $_time_m) // Будет ждать появление кнопки в течении 5 минут
GETSCREEN(25,25,500,500)
IF_PICTURE_IN (25,25,500,500, "картинка.bmp")
      $time = 0
      WAITMS(200) // Задержка перед кликом 200мс если нужно нажать сразу удали
      LCLICK($_return1+55, $_return2+5)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC
IF($time ! 0)
// время истекло, картинка не найдена
END_IF
HALT
« Last Edit: November 15, 2019, 06:09:08 AM by Ramzesia »

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Code: (clickermann) [Select]
$time = $_time_m + 5 // таймер на 5 минут
WHILE($time > $_time_m) // Будет ждать появление кнопки в течении 5 минут
GETSCREEN(25,25,500,500)
IF_PICTURE_IN (25,25,500,500, "картинка.bmp")
      $time = 0
      WAITMS(200) // Задержка перед кликом 200мс если нужно нажать сразу удали
      LCLICK($_return1+55, $_return2+5)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC
IF($time ! 0)
// время истекло, картинка не найдена
END_IF
HALT
Спасибо! Но мне не совсем понятно, зачем нужна ELSE? Там после этой функции сразу идет задержка и всё. Почему нельзя просто сделать WALLIMS (600)? Я просто не разобрался во всём:)

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Я сам новичок в этом деле, взял из готовых шаблонов, как я понимаю, во первых туда можно вставить действие, если условие не верное во вторых, таким образом идет разгрузка процесса.  могу ошибаться, надеюсь тебе точно ответят продвинутые форумчани)
« Last Edit: November 15, 2019, 10:08:41 AM by Ramzesia »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Спасибо! Но мне не совсем понятно, зачем нужна ELSE? Там после этой функции сразу идет задержка и всё. Почему нельзя просто сделать WALLIMS (600)? Я просто не разобрался во всём:)

Можно конечно убрать ELSE и просто после условия написать WAITMS(100) Этого достаточно чтобы разгрузить процессор.

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