ChatHistory
Add a chat message record to your game.x聊天记录 - ChatHistory
REPO(R.E.P.O)聊天记录增强模组,旁路监听原生聊天消息,不修改游戏任何原生 UI。 Chat history enhancement mod for REPO (R.E.P.O). Passively listens to native chat messages without modifying any game UI.
功能
- 左侧渐隐提示:新聊天消息以原生风格小条显示在屏幕左下方,停留后自动渐隐消失。
- 可滚动历史:打开聊天框(按聊天键)时,屏幕左侧出现历史记录面板(与原生聊天框同侧),滚轮上下滚动查看此前所有消息,最新消息自动滚到底部。
- 位置上移不挡输入:聊天框(toast 渐隐提示与历史记录面板)整体上移(Y=128),不遮挡游戏原生打字框。
- 不互相覆盖:聊天记录面板(打开聊天框才出现)显示期间,渐隐提示自动抬到面板上方;面板收起后回落到原位。渐入/停留/渐隐效果与位置不变,只是两者错开区域。
- 玩家名:每条记录显示发送者玩家名。
- 零侵入:不遮挡不拦截游戏输入,纯旁路监听 + 自绘 Canvas。
安装
可直接手动装载:将压缩包内文件解压到 BepInEx 插件目录(
BepInEx/plugins)即可,也可使用 Thunderstore Mod Manager / r2modman 导入安装。
- 将压缩包
x聊天记录-ChatHistory.zip导入 Thunderstore Mod Manager / r2modman,或将包内文件手动放入 BepInEx 插件目录。 - 确认已安装依赖
BepInEx-BepInExPack-5.4.2100。 - 启动游戏,进房聊天即可生效。
配置
首次运行后在 BepInEx 配置目录生成 com.chathistory.repo.cfg:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| General.Enabled | true | 总开关 |
| Toast.Enabled | true | 左侧渐隐提示开关 |
| Toast.Duration Seconds | 3 | toast 停留秒数 |
| Toast.Fade Seconds | 1.5 | toast 渐隐秒数 |
| History.Max Entries | 200 | 历史最大保留条数 |
| Style.Font Size | 16 | 字号 |
| Style.Panel Alpha | 0.2 | 背景透明度(20%) |
| Debug.Log Chat Events | false | 记录每条捕获消息到 BepInEx 日志(排查用) |
技术说明
- 消息捕获:主捕获点
PlayerAvatar.ChatMessageSpeak(本地ChatMessageSend与远端ChatMessageSendRPC均经过,覆盖所有玩家),Postfix 直接取发送者 PlayerAvatar 与消息文本;LobbyChatUI.Update作兜底,双通道 2s 内“玩家名+文本”字典去重防重复。 - 防重叠:toast 区域与历史面板共用左下锚点(24,128),面板可见期间 toast 自动抬到面板上方(Y=480),面板收起后回落 Y=128;toast 的渐入/停留/渐隐逻辑不做任何改动。
- 聊天框开合:每 0.2s 轮询
ChatManager.chatActive字段,打开聊天框自动显示历史面板,关闭即隐藏。 - 所有游戏类型均通过
AccessTools反射解析,不引用 Assembly-CSharp.dll,游戏更新不易崩。 - 加载成功后 BepInEx 日志会输出
ChatHistory v0.1.2 loaded. capture=ChatMessageSpeak+LobbyChatUI;若日志缺失说明模组未加载,请检查依赖。
