传说中的高松灯 传说中的高松灯
关注数: 22 粉丝数: 23 发帖数: 1,809 关注贴吧数: 43
萌新求助,如何实现下述功能? 求助各位大佬,我是ahk萌新,想在《怪物猎人:世界》这款游戏中使用按键宏,实现以下效果(以下简称效果1和效果2): 1. 如果单独按下LShift(在松开LShift之前没有输入其他按键),在松开LShift时输出按键序列F3 6 7 8 F1,每一个按键之间间隔25毫秒; 2. 如果按住LShift的过程中输入了其他按键,不输出按键序列F3 6 7 8 F1,而是保留其原本的功能(例如游戏中LShift & W是向前跑) 以下是我的代码: #Requires AutoHotkey v2.0 ~LShift:: { otherKeysPressed := false shiftVK := GetKeyVK("LShift") ih := InputHook("L0 V") ih.OnKeyDown := (ih, vk, sc) => (vk != shiftVK && (otherKeysPressed := true)) ih.Start() KeyWait("LShift") ih.Stop() if (!otherKeysPressed) { Send "{F3}" Sleep 25 Send "6" Sleep 25 Send "7" Sleep 25 Send "8" Sleep 25 Send "{F1}" } } 我遇到了两个问题: 1. 在游戏外(记事本)进行测试时,效果1是正常的,效果2有问题:LShift & W正常输出了大写W(这个没问题),但是当我松开LShift时,仍然执行了按键序列F3 6 7 8 F1(这个有问题,我需要的效果是,如果按下LShift之后输入了其他按键,那么不执行按键序列F3 6 7 8 F1,仅保留LShift原有的功能) 2. 在游戏内进行测试时,效果1和2都是有问题的:游戏内置键位LShift是有其原本的功能的,LShift=收刀,LShift W=向前跑。这个游戏内置功能的优先级似乎比脚本高,当我按下LShift时,大概率执行收刀操作,并没有改为输出按键序列F3 6 7 8 F1(我需要的效果是,如果单独按下LShift,不执行其原本功能,改为输出按键序列F3 6 7 8 F1;如果LShift是作为组合键按下的,保留其原本功能) 我的尝试: 搜过教程,但是没搞明白;问过ai,但ai给的代码会报错 来贴吧求助大佬,谢谢
1 下一页