Lethal Company
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
last week
Downloads
532
Size
185KB

LastWords / 遗言

《致命公司》(Lethal Company) 的 BepInEx 5 模组。玩家每次死亡后会获得一次发表遗言的机会,复活后次数重置。

当前版本:0.5.4

功能

  • 每帧追踪本地玩家的存活状态,死亡后弹出遗言输入框。
  • 每次死亡只能发送或放弃一次;反复打开界面不会得到额外机会。
  • 只有至少一名其他队员仍然存活时才允许发表遗言;最后一名玩家死亡时不会弹窗,输入期间全员阵亡也会取消发送。
  • 默认 Auto 模式:
    • 飞船已安装且 Signal Translator 可用时,始终调用原版飞船广播;输入可以超过 10 字符,但真正广播的内容只取前 10 个可见字符;
    • 没有设备或设备仍在冷却时,自动使用 LastWords 的可靠命名消息通道发送完整内容,消息格式为 [DECEASED] 玩家名: 遗言。
  • Signal Translator 仍使用游戏原生 RPC,未安装模组的玩家也能看到;LastWords 网络回退要求房间内所有玩家安装同一版本的模组。
  • 网络回退由主机验证死者身份与存活队友,再可靠广播给全员;接收端使用模组自己的置顶 Canvas 显示,不受原版聊天 HUD 限制。
  • 遗言界面采用暗红色“最终通讯”样式,发送与沉默按钮居中对称;接收横幅以红色显示由主机确认的死者姓名和遗言。
  • 发送时会立即把遗言写入发送者本机聊天记录;同时由模组自己的置顶 Canvas 显示 8 秒发送横幅,不再依赖单人全灭后会被隐藏的原版聊天 HUD。
  • 支持中文输入;换行会被压成空格,富文本尖括号会被转义。

Signal Translator 自身有冷却时间。若你希望每条遗言都即时、可靠显示,请在配置中将 BroadcastMode 改成 Chat。

构建

前置条件:

  1. 本机安装《致命公司》。
  2. 安装 BepInEx 5,并至少启动游戏一次。
  3. 安装 .NET SDK 10(项目本身仍输出 netstandard2.1,供 Unity/BepInEx 加载)。

配置并构建:

Copy-Item Config.Build.user.props.template Config.Build.user.props
# 编辑 Config.Build.user.props 中的 GameDirectory
dotnet build LastWords.slnx -c Release

构建结果位于:

src/LastWords/bin/Release/netstandard2.1/LastWords.dll

将 DLL 放进:

<游戏目录>/BepInEx/plugins/LastWords/LastWords.dll

也可以在 Config.Build.user.props 中把 DeployToGame 改为 true,之后每次构建都会自动复制 DLL。

BepInEx 5.4.23.5 / Unity 2022 启动入口

保持 BepInEx 的安全默认入口:

[Preloader.Entrypoint]
Assembly = UnityEngine.CoreModule.dll
Type = Application
Method = .cctor

不要把 Type 改成 MonoBehaviour。该入口会让包括汉化模组在内的所有插件过早初始化;若插件在 Awake 中载入 Unity 贴图,可能导致 UnityPlayer.dll 原生崩溃。LastWords 0.5.2 使用局部的游戏循环补丁解决 v81 不派发早期插件 Update 的问题,不再需要修改全局启动时机。

配置

首次运行后会生成:

BepInEx/config/cn.lastwords.lethalcompany.cfg
  • BroadcastMode = Auto:短消息在真实 Signal Translator 可用时优先使用原版飞船广播,其余使用 LastWords 网络通道(默认)。
  • BroadcastMode = SignalTranslator:只使用真实的飞船广播;允许按 MaximumMessageLength 输入,但实际广播只显示前 10 个字符;必须购买 Signal Translator。
  • BroadcastMode = Chat:始终使用 LastWords 网络消息;所有玩家必须安装模组。
  • MaximumMessageLength = 50:遗言输入的最大长度,安全范围 1–200;Signal Translator 仍只广播前 10 个字符。
  • OpenDelaySeconds = 0.75:死亡到弹窗出现的延迟。
  • AllowWhenAllPlayersDeadForTesting = false:仅用于单人开发测试;设为 true 可临时绕过全灭限制,正式游玩应保持 false。

联机说明

Signal Translator 模式复用游戏原生 HUDManager.UseSignalTranslatorServerRpc。只有飞船实际购买并生成了 Signal Translator 时,未安装 LastWords 的客户端才能接收这条原版广播,并且仍受原版 10 个可见字符限制。没有设备或消息过长时,模组使用 Netcode 命名消息,不创建自定义 NetworkObject,也不需要 Netcode weaver,但所有玩家必须安装相同版本的 LastWords 才能接收回退消息;模组不会自动解锁或伪造 Signal Translator。

“每次死亡一次”的限制在发表者客户端执行,目标是正常联机体验,并非反作弊机制。主机若需要强制校验次数,后续可以增加全员必装的服务端权威网络协议。

作者、版权与转载

LastWords 由 青金石 独立开发。允许玩家下载官方原版用于个人、非商业游玩,也允许制作截图、评测、教程、游戏视频和直播;禁止未经书面许可转载或重新打包 DLL、发布修改版、出售模组、删除署名或冒充作者。

完整条款见 LICENSE.md,真伪与官方发布信息见 NOTICE.md。分享时请优先分享官方发布页链接,不要直接重新上传压缩包。

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