开启之门 - 无战斗锁定与隐形墙移除

开启之门 - 无战斗锁定与隐形墙移除

移除人工战斗门关闭、自动锁定门以及将您困在遭遇室内的隐形门框墙壁。战斗中可自由行走、翻滚和撤退。

[center][img]https://raw.githubusercontent.com/AlonResearch/OpenDoors-Dawnwalker-Mod/master/assets/nexus_hero_banner_stylized.jpg[/img]


O P E N D O O R S

写实战斗开门导航与门槛屏障消除

进出自如。

版本 1.0.0虚幻引擎 5.5零待机开销GitHub 仓库


⚔️ 原版游戏存在的问题

在原始版的《The Blood of Dawnwalker》中,接近并推开沉重的门可以让你顺利进入守卫塔、强盗堡垒和城堡房间。

然而,一旦战斗开始(例如在 "Rayko, the Incorruptible" 中的塔楼遭遇战),引擎会强制执行一场竞技场封锁:

  1. 门会在你身后诡异地猛关(WasSystemicallyClosed = true)。
  2. 门会强制进入锁定状态(EDoorState::Locked)。
  3. 一个无形的碰撞箱(InvisibleWallForCombat)会在门槛处激活。

尽管门是你亲手打开的,而且也没有敌人阻挡门闩,你仍会被人为地困在一个密闭的杀戮区域里,完全没有踏出一步的能力。


✨ 主要特性

  • 🚪 真实的游戏世界之门:拔剑时门不再神奇地自行关闭或锁定。你推开的门会保持敞开。
  • 🛡️ 零隐形墙:直接在虚幻引擎的 Chaos 物理场景中消除隐形战斗屏障箱(InvisibleWallForCombatLockedObstacle)。不再有撞上隐形砖墙的问题。
  • 🏃 脱离战斗的战术自由:可先行侦察、评估敌军抵抗、撤退到庭院,或在门口卡住敌人。
  • 🗝️ 100% 剧情与任务锁保护:真正需要钥匙的剧情门(EDoorState::KeyLocked)会受到严格保护。你无法绕过任务进度锁。
  • 🌿 自然的被动生命周期:世界中未被访问的门保持自然关闭状态,直到你靠近并推开它们。
  • ⚡ 零待机 CPU 开销(0ms / 0 FPS 影响):100% 响应式且事件驱动。无后台 Tick 循环、无轮询线程、无持续距离扫描器。
  • 🔒 100% 防崩溃的非破坏性设计:不删除原生引擎 Actor 或 UObject 组件,完全避免遭遇空指针访问冲突导致的崩溃(0xc0000005)。

⚠️ 重要提示:敌人 AI 与追击边界

如果你撤退出门后敌人或怪物不再追击你,这不是本模组的 Bug — 这是原版游戏的原生 AI 导航边界。

在原始版的《The Blood of Dawnwalker》中,战斗遭遇设计时假设玩家总是会被锁在房间内。因此,敌人的战斗栓绳和 NavMesh 追击边界通常局限于室内。当你走出到庭院时,敌人到达其巡逻范围边界后会停止追击。

💡 我们目前正在研究原生 AI 寻路与追击栓绳扩展,以便在未来的更新或配套模组中让敌人能够追你到开阔的室外区域。


🛠️ 前置要求

  • 《The Blood of Dawnwalker》(PC / Steam)
  • Dawnwalker UE4SS(模组 #18)(v3.0.1 或更新版本)— 专为《The Blood of Dawnwalker》预校准,采用精确的虚表偏移与游戏签名。

📦 安装指南

点击展开安装说明

方法一:Vortex 模组管理器(推荐)

  1. 在 Files 标签页点击 Mod Manager Download 按钮。
  2. 在 Vortex 中启用/部署 Open Doors
  3. 启动游戏。

方法二:手动安装

  1. 确保 Dawnwalker UE4SS 已安装在游戏目录中: <GameRoot>/Dawnwalker/Binaries/Win64/ue4ss/
  2. 从 Files 标签页下载 OpenDoors-v1.0.0.zip
  3. 将 zip 文件直接解压到游戏文件夹中。文件会放置在: <GameRoot>/Dawnwalker/Binaries/Win64/ue4ss/Mods/OpenDoors/
  4. 启动游戏!

如何验证是否生效:

  • "Rayko, the Incorruptible" 中推开守卫塔的门。门会保持敞开,你可以自由走动或翻滚回到开阔的庭院。
  • 打开 ue4ss/UE4SS.log 并确认启动条目: [Lua] [OpenDoors] Mod loaded successfully (v1.0.0). Zero-polling Chaos physics neutralization active.

⚙️ 实现原理(供模组开发者参考)

点击展开技术细节

与那些尝试原始属性覆写或内存补丁的基础模组不同:

  • Chaos 物理场景驱逐:在虚幻引擎 5 的 Chaos 物理中,仅修改 Lua 属性会在活动场景中留下缓存的物理碰撞形状。OpenDoors 调用原生引擎物理方法(K2_SetRelativeLocationSetBoxExtentSetCollisionProfileName)将屏障物体物理移动到地下 500 米,并将其范围坍缩到 (0, 0, 0)。
  • 门扇网格通道处理:开启的门会自动设置 Mesh:SetCollisionResponseToChannel(ECC_Pawn, ECR_Ignore),确保木门扇永远不会卡住玩家在门框处的碰撞胶囊。
  • 稳健的高级原语:针对原生 /Script/DogwoodWorld.Door 反射事件。无硬编码内存偏移或脆弱的汇编补丁(AOB),不惧游戏更新破坏。

📜 制作人员与许可

  • 作者 / 开发:Alon(OpenDoors GitHub
  • 框架:RE-UE4SS 团队及 Dawnwalker UE4SS 贡献者。
  • 游戏:《The Blood of Dawnwalker》© Rebel Wolves Sp. z o.o.