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

Основной раздел => Общие вопросы => Topic started by: SimplY on April 21, 2020, 10:57:15 PM

Title: Таймер 15 секунд. Выполнить действие, если за это время была нажата клавиша
Post by: SimplY on April 21, 2020, 10:57:15 PM
После проигрывания SOUND(RNDFROM("1", "2", "3")) если я нажимаю пробел в течении 15 секунд, то значение переменной $balls = +1 от предыдущего значения (например, $balls была = 5, а после нажатия клавиши =6) и звук. Также сразу после нажатия кликер продолжает работу не дожидаясь окончания 15 секунд.
Code: (clickermann) [Select]
BEEP(1800,150) //Звуковой файл после нажатия пробела
Если клавиша не была нажата в течении 15 секунд или была нажата позже, то 0 от предыдущего значения и продолжить

Code: (clickermann) [Select]
$kv = 30
$balls = 0
FOR($a=0,$a<$kv)
   WAIT(RND(3, 10)) //Рандомное время для эффекта неожидданности
   SOUND(RNDFROM("1", "2", "3"))
   //Нажать пробел в течении 15 секунд. Если клавиша нажата, то $balls = +1, звук BEEP(1800,150) и повтрить цикл, если это 30-й цикл, то продолжить дальше
END_CYC

WAIT(5)
SOUND("тз")
WAIT(10)
$procent =
WAIT(10)
HINTPOPUP(STRCONCAT("Результат: ", $procent, "%"), "Результат теста:")
HALT

Я попытался и что-то в ту степь куда-то ушел, но не смог сделать.
Code: (clickermann) [Select]
$time = $_time_t + 15 // таймер на 15 секунд
   WHILE($time > $_time_t)
      WHILE(iskeydown(#SPACE)=0)
         WAITMS(20)
         $time = 0
         WAITMS(20)
      END_CYC
      WHILE(iskeydown(#SPACE)=1)
         WAITMS(20)
         $time = 0
         WAITMS(20)
      END_CYC
      INC($balls, 1)
      WAITMS(10)
      BEEP(1800,150)
      WAITMS(100)
   ELSE
      WAITMS(100)
   END_CYC
   
IF($time ! 0)
      INC($balls, 0)
      WAITMS(100)
END_IF

После 15 секунд скрипт должен сам продолжаться не присваивая переменной 1

Также во всплывающем окне необходимо рассчитать % = $procent.

$procent = 100 делим на значение $kv и получаем число X. Затем $balls умножаем на X. После округляем до целого числа в большую пользу. Было 78,56 а стало 79.

Заранее спасибо:)
Title: Re: Выполнить действие, если в течении 15 секунд была нажата клавиша
Post by: JacsoN on April 21, 2020, 11:44:48 PM
могу ошиьбатся но тут  нигде не нажимается какая либо клавиша....
Title: Re: Таймер 15 секунд. Выполнить действие, если за это время была нажата клавиша
Post by: Vint on April 22, 2020, 10:09:28 AM
Code: (clickermann) [Select]
$time = $_ms + 15000 // таймер на 15 секунд
WHILE($time > $_ms)
    WHILE(iskeydown(#SPACE) = 1)
        $time = 0
        INC($balls, 1)
        BEEP(1800, 150)
        WAITMS(100)
    END_CYC
    WAITMS(10)
END_CYC

Процент с округлением в большую сторону
Code: (clickermann) [Select]
$procent = INT((100 / $kv) * $balls + 0.9999999999)
Title: Re: Таймер 15 секунд. Выполнить действие, если за это время была нажата клавиша
Post by: SimplY on April 22, 2020, 02:34:46 PM
Code: (clickermann) [Select]
$time = $_ms + 15000 // таймер на 15 секунд
WHILE($time > $_ms)
    WHILE(iskeydown(#SPACE) = 1)
        $time = 0
        INC($balls, 1)
        BEEP(1800, 150)
        WAITMS(100)
    END_CYC
    WAITMS(10)
END_CYC

Процент с округлением в большую сторону
Code: (clickermann) [Select]
$procent = INT((100 / $kv) * $balls + 0.9999999999)

Спасибо большое!!!