【问题标题】:How do I turn off an autohotkey script when I press enter to chat in games?当我按下回车键在游戏中聊天时,如何关闭自动热键脚本?
【发布时间】:2017-01-27 06:04:53
【问题描述】:

我为流放之路(我正在玩的一个游戏)编写了一个自动热键,当我按下一个键(我的空格键)时,可以同时按下 5 个按钮。目前,当我按空格键时,自动热键也会按 q、e、w、Space 和 Z。(全部 5 个)

但是,当我聊天并按空格键时,我的聊天中会输入“qew z”。这非常烦人,所以我创建了一个修复程序:“当我按下键盘上的 Enter 键时关闭自动热键脚本,然后当我再次按下 Enter 时将其重新打开。” (大多数游戏使用回车键开始聊天)这很有效,但一段时间后我的脚本会与游戏不同步。它会在我聊天时打开,打断我的聊天,然后在我聊天结束时关闭。

我发现这个问题有时是我同时按下 shift 或 control 和 Enter 的结果。这会打开聊天,但不会暂停脚本。为了解决这个问题,我在输入脚本前添加了 ^ 和 +,但它仍在寻找不同步的方法!!!

注意:#Ifwinactive,流放路径位于顶部,以防止在我没有打开流放路径时触发此脚本。这非常有效(我认为)。

请检查我下面的代码。我有两个问题:

  1. 是什么导致我的脚本与游戏中的聊天不同步?

  2. 对于我的问题,最好的解决方法是什么,以便在我打开聊天时脚本不会运行,而在我聊天结束后总是再次运行?

提前致谢!

#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


【解决方案1】:

通配符 * 星号是您想要的。它的工作原理是允许热键触发,即使任何键组合被按住。无需重复代码,另一个上面的空白热键将触发下面的一个。同样,没有理由像您一样输入所有这些键。让它们内联工作并且很整洁。

试试:

SendMode Input 

#Ifwinactive, Path of Exile

^Space::
$Space::Send, qew{Space}z

*~Enter::Suspend

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2012-06-08
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    相关资源
    最近更新 更多