Author Topic: Вопрос в освоении переключателей  (Read 1779 times)

0 Members and 1 Guest are viewing this topic.

kvenom

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Вопрос в освоении переключателей
« on: September 09, 2020, 02:44:33 PM »
Хелп
Я не совсем понимаю как они здесь пишутся, я пытаюсь создать скрипт, который каждые 9 секунд активирует зацикленное  зажатие клавиши 4 на секунды 4, и сам этот скрипт включается/выключается по нажатию другой клавиши(например Z).

Т.е.:
Если Нажата кнопка Z
То Включается скрипт:
{Зажим 4
Ожидание 4000 мс
Отпустить 4
Ожидание 9000 мс}
Повтор скрипта до следующего нажатия Z

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Вопрос в освоении переключателей
« Reply #1 on: September 09, 2020, 06:49:27 PM »
Code: (clickermann) [Select]
THREAD(cl, 0)
    KEYDOWN(#4)   
    WAITMS(4000)
    KEYUP(#4)
    WAITMS(9000)
END_THREAD

// переключатель
IF(ISKEYDOWN(#Z) = 1)
    $run = $run ^ 1
    IF($run = 0)
        SETTHREAD(cl, 2)
        WAITMS(20)
        IF(ISKEYDOWN(#4) = 1)
            KEYUP(#4)
        END_IF
    ELSE
        SETTHREAD(cl, 1)
    END_IF
    WHILE(ISKEYDOWN(#Z) = 1)
        WAITMS(20)
    END_CYC
END_IF
WAITMS(30)


4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Вопрос в освоении переключателей
« Reply #2 on: September 09, 2020, 07:06:13 PM »
Не успел я немного.)) Напишу раз уж сделал.
Неправильно у меня работает. Удалил.
Добавил в переключать пропущенный KEYUP(#4). Заработало.)
Code: (clickermann) [Select]
DEFINE($cond, 2)

IF(ISKEYDOWN(#Z) = 1)
   $cond = $cond ^ 3
   KEYUP(#4)
   SETTHREAD (hread, $cond)
   WHILE(ISKEYDOWN(#Z) = 1)
      WAITMS(30)
   END_CYC
END_IF

THREAD(hread, 0)
   KEYDOWN(#4)
   WAITMS(4000)
   KEYUP(#4)
   WAITMS(9000)
END_THREAD

WAITMS(30)

« Last Edit: September 09, 2020, 07:35:31 PM by 4.У.В.@.К »