【发布时间】:2021-01-10 02:42:09
【问题描述】:
在 fps 中,我正在尝试设置一个热键,这样当我按住 L 按钮(左鼠标)时,枪的主要开火,然后点击 RButton,LButton 停止,RButton 开始。没有脚本的游戏,对于其他武器,我会自动得到想要的结果。那就是:我正在按住 LButton,但如果我在“之后”还按住 RButton,LButton 就会停止,而 RButton 的连发会发挥作用。但是,在完成上述操作后,没有脚本的不同范围武器会冻结。
所以我希望,一旦按下 RButton,就停止 LButton 的所有用户输入,直到 RButton 的热键完成。
~RButton
;Blockinput Mouse ;Send/Sendmouse
Send, {Click Left}{Click Right}{Click Left}
;BlockInput off
return
您可以将 Rbutton 脚本视为瞄准步枪。单击左激活范围,单击右激活它。目前,仅当我将手从 LButton 完全移开然后按 RButton 时,所需的行为才有效....我也能够让 ~LButton & ~RButton:: 工作,但这仅涵盖它们都第一次按下时的情况同时,我想介绍在 RButton 之前按下并按住 LButton 的实例。
我尝试过应用块输入,如上所示,使用 UAC 变通方法使其工作,阻止某些事情,但当它像 lbutton 一样被触发时似乎不会阻止任何持有的键,除非我错过了一些东西。如果有一个“在 RButton 触发后立即冻结 LButton 的用户输入,直到 RButton 的脚本完成”,这将解决我认为的问题。我尝试添加睡眠延迟,但它们似乎没有帮助。问题似乎是 LButton 在按住时会在 RButton 首次激活时继续触发。
我在按住 LButton 的同时使用了以下内容,并且声音确实触发了,所以这必须可以编写脚本。
*RButton::
Soundbeep
return
编辑:
;此处的代码有效,但仅在 100 次睡眠时,我必须在按下 rbutton 后 100 毫秒内将手从按下 lbutton 中移开。
*RButton::
GetKeyState, state, lbutton, p
if (state = "D")
{
soundbeep
send {Click Left Up}
sleep 100
;i need to actually disable the previous keypresses from it
}
Send, {Click Right}{Click Left}{Click Right}
return
【问题讨论】:
标签: scripting autohotkey