# Speaker **Repository Path**: starwish9527/speaker ## Basic Information - **Project Name**: Speaker - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-13 - **Last Updated**: 2026-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一键发言 · Speech Board > 泰坦陨落 2 · 北极星(Northstar)客户端 mod > 把想说的话存成「一条记录 = 一个按键 + 多行消息」,对局中按一次键,整条记录按顺序快速发出。 `starwish9527.Speaker` · v1.0.0 · 需要 [Northstar](https://northstar.tf/) 客户端 --- ## 功能 - 把常用台词存成「记录」:**一条记录 = 自定义名字 + 一个按键 + 多行消息**; - 对局中按一次键,整条记录的多行消息**按顺序快速发出**; - 按键在 mod 界面里**直接绑定**,支持几乎所有按键; - 记录保存在可手动编辑的 JSON 里,界面支持繁中 / 英文。 --- ## 安装 1. 确保已安装 [Northstar 客户端](https://northstar.tf/); 2. 把 `starwish9527.Speaker` 整个文件夹放进: ``` <泰坦陨落2安装目录>/R2Northstar/mods/ ``` 3. 启动游戏。主菜单左下角会出现 **一键发言** 入口(手柄为 LB), 「模组 / Mods」菜单里也有同样的入口。 从 Thunderstore 安装的话,用 Northstar 的 Mods 管理器或直接解压到上面这个目录即可。 --- ## 使用 ### 编辑记录 1. 打开「一键发言」界面; 2. 左栏是记录列表,点击选中一条; 3. 右栏上方填 **记录名**,中间填 **消息内容 —— 一行一条**,下方是 **按键绑定**。 ### 绑定按键 右侧底部有两个绑定按钮: - **按鍵綁定:…** —— 给**当前选中的这条记录**绑键; - **全部發送/停止:…** —— 给**一个切换键**绑键:没在连发时按下就把所有记录依次发出,正在连发时按下就立刻停止。 点按钮后变成「請按下要綁定的按鍵」,**按下想用的键**即可。 - `Esc` 取消这次绑定 - `Del` 清除这条记录的绑定 - 字母、数字、F1–F12、小键盘、方向键、符号键、修饰键……**几乎所有键都能绑** - 如果某个键已经被游戏占用,绑定会覆盖它(想找回原绑定可在「设置 → 控制 → 按键绑定」里改) ### 在游戏里使用 选中记录的按键后,对局中按一下,这条记录的多行消息就会**按顺序快速发出**(默认每条间隔 0.35 秒)。 --- ## 数据文件 记录保存在游戏目录下(Northstar 的 mod 存档区): ``` /R2Northstar/save_data/starwish9527.Speaker/speaker_data.json ``` 格式(可以手动编辑,游戏内用 `speaker_reload` 重新读取): ```json { "version": "1", "count": "2", "r1_name": "打招呼", "r1_key": "F1", "r1_text": "收到!\n干得漂亮!\nGG", "r2_name": "战术", "r2_key": "F2", "r2_text": "小心狙击手\n我来占点" } ``` - `rN_name` 记录名,`rN_key` 绑定的按键(留空 = 未绑定),`rN_text` 消息内容; - `rN_text` 里用 `\n` 分隔多条消息,**每一条会作为单独一条聊天发出**。 > 为什么不是「一条聊天里带换行」?因为泰坦陨落 2 的聊天面板是行缓冲、消息要经单行指令通道传输, > 换行会破坏解析。所以设计成「一条记录 = 多条聊天,按顺序快速发出」。 > 详见 [DEVELOPMENT.md](starwish9527.Speaker/DEVELOPMENT.md) 第 9 节的调研。 --- ## 控制台命令 | 命令 | 作用 | |------|------| | `speaker_say ` | 发出第 N 条记录(绑定按键实际执行的就是它) | | `speaker_say_all` | 按顺序发出全部记录 | | `speaker_toggle` | 一个键切换:没在连发就全部发出,正在连发就停止(「全部發送/停止」绑定键执行的就是它) | | `speaker_stop` | 中断正在进行的连发 | | `speaker_reload` | 重新读取数据文件 | | `speaker_status` | 打印当前记录、绑定与存档路径 | | `speaker_test_say` | 聊天通道测试 A(客户端 `say`) | | `speaker_test_impersonate` | 聊天通道测试 B(服务端 `Chat_Impersonate`) | ## 配置项 | ConVar | 默认 | 说明 | |--------|------|------| | `speaker_line_delay` | `0.35` | 同一记录内多条消息之间的间隔秒数,越小越快 | | `speaker_team_chat` | `0` | `1` = 发到团队频道,`0` = 全体频道 | | `speaker_send_mode` | `0` | `0` = 客户端 `say`(推荐);`1` = 服务端 `Chat_Impersonate` | | `speaker_debug` | `0` | `1` = 启动时在日志里打印界面布局与按键绑定自检 | 想改就把这些写进 `R2Northstar/mod/cfg/autoexec_ns_client.cfg`(或游戏内控制台直接输入)。 --- ## 常见问题 **Q:按下绑定键没反应?** A:先确认记录里确实有消息内容(列表行尾的 `(N)` 是消息条数,`(0)` 表示空的)。再确认绑定按钮上显示的是键名而不是「未設定」。若仍然无效,用 `speaker_status` 看绑定是否写进去了。 **Q:聊天里没出现我发的话?** A:先用 `speaker_test_say` 测通道 A。如果没反应,把 `speaker_send_mode` 设为 `1` 走通道 B —— 通道 B 需要**服务端也装了本 mod**(私人房/自建服务器满足;进别人的服务器不满足)。 **Q:绑定的键和原来的功能冲突了?** A:绑定会直接覆盖。mod 界面里能绑的键很多,建议优先用小键盘或 F 区这类平时不用的键。 想恢复原绑定:在「设置 → 控制 → 按键绑定」里改回去。 **Q:改完记录忘了保存就退出了?** A:退出时会弹窗问你要不要保存,选「保存并退出」即可。 **Q:想批量改台词?** A:直接用文本编辑器改 `speaker_data.json`(注意 `\n` 是转义换行),然后在游戏里执行 `speaker_reload`。 --- ## 兼容性与依赖 - 需要 **Northstar 客户端**;无其它 mod 依赖。 - 聊天通道 B 需要服务端加载本 mod,通道 A(默认)不需要。 - 与 Northstar 官方 mod、DemoManager 等共存测试通过。 - 已知限制: - 游戏里极少数字符会被过滤(`"` `;` `%` 与换行),以避免破坏指令解析; - 同一按键只能属于一条记录,重复绑定会自动解除旧的。 ## 更新日志 **1.0.0** - 首次发布:多行记录 + 按键绑定 + 就地捕获全部按键 + JSON 存档 + 中英文界面 ## 许可 CC0-1.0(可自由使用、修改、再发布) ## 联系/反馈 2648761808@qq.com或starwish9527@gmail.com [starwish/Speaker](https://gitee.com/starwish9527/speaker)