在特定时间下释放一把钥匙会重置顺序吗



所以我得到了这个代码,它工作得很好。这是一款剑术游戏。

如果我按住鼠标左键(LMB(,它将发送键5(斜线攻击(,如果我释放LMB,它将发出键7(佯攻(。密钥6(头顶攻击(也是如此,如果我释放LMB,它就会发送密钥7(佯攻(。

所以序列是这样的5,6,5,6等等,就像一个符咒。

如果我没有按下LMB 1.5秒,序列会自行重置。所以它总是像5,5,5,5等。它也很好用。

这是这个的工作代码:

*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秒内释放LMB,它应该总是重置排序并发送5,5,5等。如果释放时间超过0.3秒,则序列应作为默认的5,6,5,6等工作

抱歉英语不好,希望你能理解。thx:(

我想我有你需要的:

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

最新更新