禁用Alt+Tab暂停 - 切出时游戏继续运行

禁用Alt+Tab暂停 - 切出时游戏继续运行

窗口失去焦点时游戏不再暂停,因此你可以切换到第二显示器而不中断游戏。你自己用ESC或控制器Start键打开的暂停菜单仍然像以前一样工作。

No Alt-Tab Pause

《血族之晨行者》在窗口失去焦点时会立刻暂停游戏并弹出暂停菜单。在单显示器上这很合理,但在双显示器上就成了麻烦——每次查看地图、攻略或 Discord 都会打断游戏。

这个模组让你在切出窗口时游戏保持运行。其他一切不变。

功能

  • Alt-Tab、点击其他窗口或打开覆盖层——游戏世界会继续运行
  • ESC 仍然可以打开功能完整的暂停菜单
  • 手柄 Start 键 仍然可以打开功能完整的暂停菜单
  • 菜单内的导航(包括子菜单)完全不受影响

要求

  • 为《血族之晨行者》安装并正常运行的 UE4SS

无需其他模组。此模组没有任何依赖,也不触碰任何游戏文件。

已在 UE4SS 3.0.1 Beta、游戏版本 1.0.2 下测试通过。

安装

  1. 关闭游戏
  2. 将压缩包中的 Dawnwalker 文件夹拖入你的游戏目录——即已经包含一个与 Engine 同级的 Dawnwalker 文件夹的那个目录。确认合并。
  3. 启动游戏

脚本最终会位于:

<Game>\Dawnwalker\Binaries\Win64\ue4ss\Mods\NoAltTabPause\

无需配置。不需要在 mods.txt 中添加条目——自带的 enabled.txt 就足够了。

卸载

删除 NoAltTabPause 文件夹,或者将 enabled.txt 重命名为 disabled.txt 以在本次会话中停用。

它加载了吗?

打开 <Game>\Dawnwalker\Binaries\Win64\ue4ss\UE4SS.log 并搜索 NoAltTabPause

[NoAltTabPause] v1.0 loaded
[NoAltTabPause] active - v1.0 (input type at startup: 0)

游戏每次尝试暂停都会写入一行:

#1 focus lost - resumed (1 menu, type 0)  <- alt-tab, handled
#2 ESC - menu kept                        <- your pause menu
#3 controller (type 1) - menu kept        <- your pause menu

如果日志显示 INACTIVE,说明模组故意不执行任何操作。这是安全回退机制,并非崩溃。

工作原理

游戏对失去焦点和真正的暂停使用同一个引擎调用,因此仅凭该调用无法判断触发原因。有两个信号可以区分它们:

  • ESC —— UE4SS 按键回调只在游戏获得焦点时运行。回调被触发即证明按键是玩家按下的。
  • 手柄 —— UE4SS 无法绑定手柄按键,因此模组会询问 CommonInputSubsystem 当前正在使用的设备。使用手柄意味着暂停操作来自你本人。

当两个信号都不存在时,说明窗口失去了焦点,模组会调用游戏自身的 ResumeGame 函数——即“继续”按钮背后的那个函数。游戏会自行清理,包括输入模式。

控件可见性从未被修改。隐藏菜单会使游戏停留在 UI 输入模式并导致无法操作;这种方法在开发过程中曾尝试过,后来被彻底移除。

已知限制

  • 通过鼠标点击而非 Alt-Tab 切换窗口时,有时无法被检测到,暂停菜单会照常出现。这是出于安全考虑:多出现一个菜单无害,但在你手指操作时突然关闭的菜单才有问题。
  • 模组针对 WBP_PauseMenu_C 及其 ResumeGame 函数。如果某个补丁重命名了其中任何一个,模组将停止生效——它不会破坏任何东西,只是找不到匹配项而保持静默。

兼容性

可与其他 UE4SS 模组同时使用。它只挂钩一个引擎函数并调用一个蓝图函数,不替换任何内容,也不覆盖任何资源。存档不受影响。

许可

可自由使用、修改和再分发。感谢注明出处。