Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Fazi on June 08, 2017, 08:04:14 PM

Title: Поиск с ожиданием картинки.
Post by: Fazi on June 08, 2017, 08:04:14 PM
Всем привет. Подскажите пожалуйста как написать чтобы цикл чтобы в нем выполнялся поиск картинки в течении 30 секунд и заканчивался, а в случае если картинка найдена выполняются все условия и цикл сразу же вырубается не дожидаясь 30 сек.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

Пробовал этот код. но он после нахождения картинки все равно продолжает находить её заново и выполнять условия...
Code: (clickermann) [Select]
$time = $_time_t + 10
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $time = 0
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC


Title: Re: Поиск с ожиданием картинки.
Post by: Oraven on June 08, 2017, 08:23:36 PM
Это потому что нет команды остановки. По умолчанию кликер выполняет код бесконечно.

Code: (clickermann) [Select]
$time = $_time_t + 10
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $time = 0
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC
HALT // стоп!!!
Title: Re: Поиск с ожиданием картинки.
Post by: Fazi on June 08, 2017, 10:57:36 PM
Code: (clickermann) [Select]
  $vkql=2
ELSE
waitms(30)
END_IF
waitms(RND(700,1800)

//***********Проверяем проверен ли квест**********
if($vkql=2)
$time = $_time_t + 15
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (754,437, 1013,663, "theQuestIsComplete.bmp", -1, 85)
    LCLICK($_return1, $_return2)
    WAITMS(100)
    LOGWRITE("квест пройден(успешно)")
    $vkql=3
    waitms(30)
    ELSE
    waitms(30)
    LOGWRITE("квест не пройден успешно")
  wait(30)
END_IF
END_CYC
end_if




//Пройти квест
if($vkql=3)
GETSCREEN
Oraven, вот часть моего кода, проблема в том что после нахождения картинки задание по прежнему в логе вижу что пишет "квест пройден(успешно)"на протяжении 15 секунд...Нужно как-то без команды halt обойтись т.к. дальше идёт ещё код... :'(
Title: Re: Поиск с ожиданием картинки.
Post by: Vint on June 09, 2017, 07:48:18 AM
А куда из этого "куска кода" подевалась строка
Code: (clickermann) [Select]
$time = 0
Куски кода выкладываются блоками, а не с любого места по любое. Все конструкции должны быть целыми и закрытыми.
Title: Re: Поиск с ожиданием картинки.
Post by: Oraven on June 09, 2017, 08:15:25 AM
$time - это обычная переменная, может иметь любое имя
$_time_t - это системная переменная, возвращает время Unix в секундах
$time = $_time_t + 10 - здесь мы прибавляем к времени Unix + 10 секунд и записываем ето значение в переменную $time
WHILE($time > $_time_t) - Цикл выполняется пока $time больше $_time_t
$time не меняется а $_time_t постоянно увеличивается

Code: (clickermann) [Select]
$time = $_time_t + 10
WHILE($time > $_time_t)
   IF_
      $time = 0 // если хотим выйти из цикла то просто обнуляем значение в переменной
   ELSE

   END_IF
END_CYC

Title: Re: Поиск с ожиданием картинки.
Post by: Fazi on June 09, 2017, 10:33:10 AM
ахахха))нужно было просто обнулить))как я не додумался)) ::)
Спасибо парни!