Отпустите ключ в течение указанного c времени, чтобы сбросить последовательность? - PullRequest
0 голосов
/ 05 апреля 2020

Итак, я получил этот код, он работает нормально. Это для боя на мечах.

Если я удерживаю левую кнопку мыши (ЛКМ), он отправит ключ 5 (sla sh атака), а если я отпущу ЛКМ, он отправит ключ 7 (финт ). То же самое касается ключа 6 (атака сверху), и если я отпускаю ЛКМ, он отправляет ключ 7 (финт).

Таким образом, последовательность выглядит следующим образом: 5,6,5,6 и c. работает как шарм.

Если я не нажимаю ЛКМ в течение 1,5 сек c, последовательность сбрасывается сама. Так что всегда будет как 5,5,5,5 и c. Он тоже работает нормально.

Вот рабочий код для этого:

*lbutton::
    send % Seqkeys("5","6")
    KeyWait, lbutton
    Send, 7
return

Seqkeys(params*){ 
    static s:=0, c:=0, t:=1500
    max := params.MaxIndex()
    (A_TickCount-s<=t && (c+=1)<=max) ? c : c:=1, s:=A_TickCount
    return params[c]
}

Теперь я хочу добиться того, чтобы, если я выпустил ЛКМ под 0.3 se c, он должен всегда сбросить последовательность и отправить 5,5,5,5 et c. Если выпуск был больше 0,3 se c, последовательность должна работать по умолчанию 5,6,5,6 et c.

Прошу прощения за плохой английский sh Надеюсь, вы понимаете. спасибо:)

1 Ответ

0 голосов
/ 08 апреля 2020

Я думаю, у меня есть то, что вам нужно:

global s:=0, c:=0, t:=1500, t2:=1000/3

*lbutton::
    send % Seqkeys("5","6")
    KeyWait, lbutton
    If (A_TickCount-s < t2)
        c := 0
    Send, 7
return

Seqkeys(params*) { 
    global s, c, t
    max := params.MaxIndex()
    (A_TickCount-s<=t && (c+=1)<=max) ? c : c:=1
    s := A_TickCount
    return params[c]
}

Пример:

Button down: 5
Button up (down for 0.5s): 7
Button down: 6
Button up (down for 0.5s): 7
Button down: 5
Button up (down for 0.2s): 7
Button down: 5
Button up (down for 0.2s): 7
Button down: 5
Button up (down for 0.5s): 7
Button down: 6
Button up (down for 0.5s): 7
...