Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: ma4ete on November 07, 2020, 08:42:02 PM
-
Уважаемые, помогите пожалуйста со следующей задачей. Есть скрипт формата
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "1.bmp", -1, 100)
ELSE
Все картинки в нем появляются на экране в разное время и при нажатии на них либо пропадают с экрана сразу, либо спустя какое то время. Но бывает, что какая то из картинок "висит" на экране длительное время. По факту в этот момент игра зависает. Как сделать условие, чтобы когда эта картинка "зависла" на экране больше чем на 5 минут, а не пропала после нажатия на нее как это происходит в стандартном режиме работы без подвисания игры, кликер выполнял определенные действия?
Думал решить мою проблему методом из этой темы http://crapware.aidf.org/forum/index.php?topic=4464.msg30475#msg30475, но у меня когда картинка висит курсор продолжает двигаться пытаясь нажать на остальные картинки.
-
$time = $_time_t + 3000 // таймер на 5 минут
WHILE($time > $_time_t)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
//картинка есть, действуем в течении пяти минут
ELSE
$time = 0 //картинки нет, выход из цикла
END_IF
END_CYC
IF($time > 0)
//картинка была на экране более пяти минут.
//действия.
END_IF
-
Смотря как зависает. Может зависать, но происходят движения (возможно циклические), шевелится, короче. А может всё замирать.
Замирание.
у меня когда картинка висит курсор продолжает двигаться пытаясь нажать на остальные картинки.
Если такая беда с зависаниями, нужно после каждого действия дожидаться результата - изменения экрана если картинка должна пропадать. Не ломиться по коду вперёд.
Можно в цикле искать ту же картинку с выходом если не нашлась. Или если нет анимации считать CRC области до и после и сравнивать.
Как пример из одного проекта:
SUB(save_hash) //=== сохраняем хэш ===========================================
GETSCREEN($centr_x-5, 100, $centr_x+5, $_ymax-100)
$hash = PXLCRC($centr_x-5, 100, $centr_x+5, $_ymax-100)
END_SUB
SUB(read_hash, $hashwait) //=== ждём смены хэша ==============================
$hash_new = $hash
$time = $_ms + $hashwait
WHILE(($hash_new = $hash) & ($time > $_ms))
GETSCREEN($centr_x-5, 100, $centr_x+5, $_ymax-100)
$hash_new = PXLCRC($centr_x-5, 100, $centr_x+5, $_ymax-100)
WAITMS(50)
END_CYC
IF($hash_new = $hash)
LOGWRITE ("Вышло время ожидания изменения страницы")
HINTPOPUP("Вышло время ожидания изменения страницы")
END_IF
END_SUB
$centr_x = INT($_xmax/2)
save_hash() // запоминаем хэш
KEYPRESS(#END) // действие
read_hash(7000) // ждём изменений в течении 7 сек