R.E.P.O.
Install with App

Details

Latest version
0.5.3
Last Updated
First Uploaded
Downloads
2.1K
Likes
1
Size
230KB
Dependants

中途加入 Simple / LateJoinSimple

REPO 游戏交流 QQ 群:573485890


版权声明

  • 原作:中途立即加入 / LateJoinNow,作者 (Zichen)。

  • 本模组:LateJoinSimple 在获得原作者许可的前提下,基于 LateJoinNow 1.1.0 接手修复与继续维护的版本,由 cn_xc 维护,非原作官方发行。

  • 原作声明照录:

    本模组为独家原创作品,禁止未经授权进行代码复制、二次打包移植或转载,违者将依法进行维权投诉。

  • 未经原作者与维护者许可,请勿复制、二次打包、移植或转载本模组代码。


⚠️ 测试版说明(v0.5.3)

这是一个公开测试版。双端联机测试目前主要依靠群里的测试员协助(见文末致谢),也欢迎大家继续帮忙验证:

  • 中途加入主流程已实测可用(排队 → 场景 / 物品 / 宝物 / 状态同步 → 落地动画 → 移动检测通过)。
  • 联机细节仍可能存在未知问题,欢迎反馈。
  • 反馈请附日志:BepInEx/LogOutput.log(或 BepInEx 控制台),并说明是房主端还是加入者端。
  • 本版相关修复:不再销毁带铰链的门(原版会销毁,可能导致加入者看到「只有门框、门没了」)。
  • 本版新增:房间可见性同步(需双端都装)——房主把本局已探索的房间发给中途加入者,修的是游戏内地图(DirtFinder)上的房间揭示;并新增光照守卫,拦截光照系统异常以免整片房间不发亮。
  • 「虚空门 / 缺墙 / 门框里没有门」已修复:0.3.4 起双端实测与日志中未再出现(Level Point: Not connected、Ev Destroy Failed 均已归零)。

✨ 功能

  • 随时中途加入:朋友可以在卡车 / 商店 / 关卡进行中加入你的房间,三个场景可分别用配置控制。
  • 房主权威:场景同步全部由房主执行,加入者只接收,避免状态污染。
  • 同步内容:地图模块(墙体 / 内饰连接)、贵重物品价格与发现状态、物品属性,以及 22 项场景状态(撤离点、门禁、升级台、各类陷阱与宝物等)。
  • 房间信息 HUD(仅房主可见):左下角显示房间类型(含「可加入 / 已锁定」)、房间名称、当前人数;字号与透明度可调。
  • 中途加入进度显示:等待连接 / 排队中 / 加载中 / 已中途加入。
  • 公开房名自动前缀:创建公开房时自动加 [中途加入-小菜] 前缀。
  • 切关冷却保护:切换场景时自动临时锁房,防止过渡阶段有人撞入。
  • 双端协同优化:房主与加入者都装本模组时自动启用(加载更快、外观与语音自动刷新),HUD 中该玩家显示「(优化)」。
  • 虚空兜底:地图分帧重发 + 20 秒移动检测,尽量避免加入者卡在虚空。
  • 房间可见性同步(需双端都装):房主把本局已探索的房间发给中途加入者,让你的游戏内地图(DirtFinder)与团队一致(与「缺墙」不是同一条线)。
  • 光照守卫:拦截光照系统的异常,避免中途加入时房间整片发黑。
  • 中途加入稳健性:模块连接对每个加入者只发一次(避免抬高客户端的 ModulesSpawned)、后台只补发「没收到过」的模块、快捷栏槽位自动补注册、以及若干游戏侧 NRE 守卫。本模组不会改动任何墙 / 门 / 通路的开关。
  • 冲突自检:检测到其它「中途加入」类模组时弹窗警告。
  • 升级属性重放(0.5.0):中途加入者会错过历史上所有「购买升级」的网络 RPC,导致跳跃/体力/冲刺/力量/抓取范围/投掷/攀爬/翅膀/血上限等属性停留在默认值。现在加入后按 StatsManager 存档调用游戏自带的 PunManager.Update*RightAway 重放一次。
  • OwnerOnlyRPC 异常兜底(0.4.1):对象没有 owner 时,游戏自己的 SemiFunc.OwnerOnlyRPC 会在内部抛 NRE(导致抓取链接 / 地图工具等 RPC 失败)。现在捕获后放行并只记一次日志。
  • [玩家视图] 诊断(0.4.1,只读):加入后比对「房间人数」与「本机可见 avatar 数」,若本机 avatar 少于房间人数会明确提示 —— 用于定位「属性同步不了」是否其实是玩家视图缺失。
  • [属性快照] / 目标信息诊断(0.4.3,只读):房主推送时打印目标与数量;加入者落地 12 秒后打印本机看到的每个玩家血量/上限实际值 —— 两端对照即可判定属性是否真的收到。

📦 安装

  1. 确保已安装 BepInExPack。
  2. 将 LateJoinSimple.dll 放入 BepInEx/plugins。
  3. 启动游戏,模组会自动生成配置文件。

强烈建议:房主与加入者都装本模组(协同模式),可避免单端模式的已知问题(见下)。


⚙️ 配置

配置文件位置:BepInEx/config/cn_xc.LateJoinSimple.cfg

配置项 默认值 说明
ModEnabled true 关闭后整个模组全部功能失效
PublicRoomNamePrefix true 创建公开房时自动加 [中途加入-小菜] 前缀
TeleportToHostOnJoin false 加入后传送到房主位置;房主死亡则传送到最近的存活玩家
CoopMode true 双端都装同版本时启用协同优化
AllowJoinInTruck true 卡车阶段允许中途加入
AllowJoinInShop true 商店阶段允许中途加入
AllowJoinInLevel true 关卡进行中允许中途加入
HudEnabled true 左下角显示房间信息框(仅房主)
ShowJoinStatus true 显示中途加入玩家的进度
ShowPlayerCount true HUD 显示当前 / 最大人数
ShowRoomType true HUD 显示房间类型(公开 / 私人 / 单人)
ShowRoomName true HUD 显示房间名称
HudFontSize 16 HUD 字号(10–28)
HudOpacity 80 HUD 文字透明度 %(20–100)
VerboseLog false 输出详细调试日志(排查问题时可开)
ShowConflictWarning true 检测到同类模组时弹窗警告
FixInventorySlots true 中途加入后把场景里的 InventorySpot 补注册进 Inventory(修复快捷栏)
ModuleResendSeconds 60 后台只补发「尚未发过连接数据」的模块(每个模块只发一次;0 = 关闭)
PlayerHealthSync true 房主在加入者落地后推送每个玩家的血量 / 生命上限(修复「看不到别人的血」)
PlayerCosmeticsSync true 房主在加入者落地后推送每个玩家的外观颜色(修复「看不到别人的颜色」)
ApplyUpgradesOnJoin true 加入后按存档重放升级属性(跳跃/体力/冲刺/力量/抓取/投掷/攀爬/翅膀/血上限…)
模组版本号 当前版本 只读,勿改。0.3.5 起版本更新不会清空你的设置;若要还原默认,删除 cfg 后重启

⚠️ 已知问题

已修复(0.3.x)

  • ✅ 虚空门 / 缺墙 / 门框里没有门 —— 已修复。0.3.4 之后的双端实测与日志中未再出现(Level Point: Not connected 从 31 归到 1 且仅剩入口点、Ev Destroy Failed 从 122 归零)。
  • ✅ 快捷栏限制(加入者无法把武器放进快捷栏)—— 已修复(FixInventorySlots:关卡生成后把场景里的 InventorySpot 补注册进 Inventory)。

以上修复都需要加入者也安装本模组(协同模式)。加入者是原版客户端时,本模组无法修正其表现。

混合模式 / 单端模式仍可能存在的问题(本模组无法修正)

以下两种情况本模组都无法修正 —— 「客户端协同补丁」需要房主也运行本模组才会启用:

  1. 房主没装任何中途加入模组,只有加入者装了本模组。
  2. 房主装的是 LateJoinNow(Zichen 原版),加入者装的是本模组 —— 两边房间属性键不同(LateJoinNow.* vs LateJoinSimple.*),协议不通,等效单端。本模组检测到这种房主时会打一行明确提示。

表现(属预期,非 bug):日志可能出现 Received RPC "ModuleConnectionSetRPC" for viewID … but this …、Received RPC "DollarValueSetRPC" …、KeyNotFoundException: The given key '6024' —— 房主在同步「加入者本地并不存在」的对象;部分门 / 建筑物件与宝物数据可能缺失。 另有 部分建筑不可见:早期版本偶有反馈;0.3.4 之后的双端日志中未再出现,但未专门验证是否已完全消除。

规避办法:房主与加入者使用同一个中途加入模组(推荐都用本模组 → 协同模式)。

中途加入者的「玩家属性」同步

已覆盖的(房主在加入者落地后推送,并 4 秒后补一次):

  • ✅ 血量 / 血上限(0.3.9)—— PlayerHealth.UpdateHealthRPC。开关 PlayerHealthSync。
  • ✅ 外观颜色(0.4.0)—— PlayerCosmetics.SetupColorsRPC(该 RPC 仅房主可发)。开关 PlayerCosmeticsSync。
  • 两个开关互相独立,只关一个不影响另一个。

游戏本身没有同步通道的属性(不存在"没同步"这回事):

  • 升级属性:速度 / 力量 / 体力上限 / 攀爬 / 翅膀 / 电池 / 地图人数 / 蹲伏恢复 —— 这些在游戏里没有任何 PunRPC,是各客户端按本地存档计算的;其他玩家本来就不会看到你的升级数值(只能看到动作表现)。

尚未覆盖:

  • 装扮(帽子等):其 RPC(SetupCosmeticsRPC)需要 int[],而本地字段是 List,需要做一次转换,留待后续版本。

说明:PlayerHealth.Update 在「头像引用为空」时仍会跳过该组件的更新,以避免每帧刷 NRE(日志里的 PlayerHealth.Update 的头像引用为空… 即此),属于防崩措施,与本修复不冲突。

其它

  • 过渡期禁入:最后一个提取点完成 → 下一关加载完成前,模组会临时拒绝新玩家加入,这是设计行为。
  • 网络要求:房主未开加速器时,加入者可能连接超时或卡在加载界面。
  • 人数上限:建议与 MorePlayersSimple 搭配;房间人数上限的修改只在创建房间前生效。
  • 日志里的 Level Point: Not connected 可忽略:这是游戏自身提示,与外观无关。协同模式实测:该提示出现 1 / 15 / 31 条时,均未观察到虚空墙、门框没门或通路堵塞。

❓ 常见问题

Q:这个能和 Zichen 的 LateJoinNow 一起装吗? A:不能。两者 GUID 与房间属性键都不同,同时启用会出现重复 RPC 与缓存清理,导致卡加载 / 地图异常。请只保留一个。

Q:加入者的门框里没有门怎么办? A:该问题已修复(0.3.4 起,协同模式下双端实测未再出现)。若仍遇到,请先确认加入者也安装了本模组,然后把双端 LogOutput.log 发我。

Q:怎么判断是不是协同模式? A:HUD 里玩家名后显示「(优化)」即表示协同模式生效。

Q:改了配置没生效? A:配置在启动时读取,改完请重启游戏。版本更新不会清空你的设置(0.3.5 起);若要还原默认,删除 BepInEx/config/cn_xc.LateJoinSimple.cfg 后重启即可。


🙏 致谢

  • ( Zichen) —— 原作「中途立即加入 / LateJoinNow」的作者。本模组的全部核心逻辑、场景同步思路与踩坑经验均来自其 1.1.0 版本,并在其授权下继续维护。
  • 本 README 中的功能说明与「已知局限」记录同样来自原作文档。
  • 测试协助:感谢 排排坐 食果果(绊倒铁盒) 与 Sunshine° 帮忙做双端联机测试与日志反馈。

QQ群:573485890

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.