【发布时间】:2017-01-27 06:04:53
【问题描述】:
我为流放之路(我正在玩的一个游戏)编写了一个自动热键,当我按下一个键(我的空格键)时,可以同时按下 5 个按钮。目前,当我按空格键时,自动热键也会按 q、e、w、Space 和 Z。(全部 5 个)
但是,当我聊天并按空格键时,我的聊天中会输入“qew z”。这非常烦人,所以我创建了一个修复程序:“当我按下键盘上的 Enter 键时关闭自动热键脚本,然后当我再次按下 Enter 时将其重新打开。” (大多数游戏使用回车键开始聊天)这很有效,但一段时间后我的脚本会与游戏不同步。它会在我聊天时打开,打断我的聊天,然后在我聊天结束时关闭。
我发现这个问题有时是我同时按下 shift 或 control 和 Enter 的结果。这会打开聊天,但不会暂停脚本。为了解决这个问题,我在输入脚本前添加了 ^ 和 +,但它仍在寻找不同步的方法!!!
注意:#Ifwinactive,流放路径位于顶部,以防止在我没有打开流放路径时触发此脚本。这非常有效(我认为)。
请检查我下面的代码。我有两个问题:
是什么导致我的脚本与游戏中的聊天不同步?
对于我的问题,最好的解决方法是什么,以便在我打开聊天时脚本不会运行,而在我聊天结束后总是再次运行?
提前致谢!
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Recommended for catching common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#Ifwinactive, Path of Exile
Space::
Send {q}
Send {e}
Send {w}
Send {Space}
Send {z}
Return
^Space::
Send {q}
Send {e}
Send {w}
Send {Space}
Send {z}
Return
~Enter::
Suspend Permit
Suspend
Return
~!Enter::
Suspend Permit
Suspend
Return
~^Enter::
Suspend Permit
Suspend
Return
~+Enter::
Suspend Permit
Suspend
Return
【问题讨论】:
-
不一定是您想要的,但您可能已经发现,有很多方法可以破坏您的脚本。例如。如果游戏延迟并且您按了两次进入,但只记录了一次命中;可能,您可以使用
Esc或其他键离开聊天,这样 AHK 就不会知道它应该再次处于活动状态;等等。您可能想要切换到更可靠的解决方案。以下是一些建议: 1) 为普通空间或您的特殊功能创建一个独特的热键(如^Space或快速“双空格”)。 2) 定义“重新激活”热键,在脚本不同步时始终取消暂停。 -
我一定会注意退出键或双击。从来没想过:)
标签: autohotkey game-development social-gaming