# 使用参考 —— 一句话直接复制给 DSH **这份文档只有一件事:给你能原样粘贴进 DSH 的一句话。** 不用背参数,不用记工具名。找到你要做的事,复制那句,改一下里面的对象就行。 > 装插件、确认装好、卸载、排错,在 `安装说明.md`;每个文件干什么,在 `插件清单.md`。 > 这份文档只讲「怎么开口」。 --- ## 一、先记住三条(这三句不用复制,读一遍就够) - 插件 **只读日志**,从不改你的 mod 列表 —— 启用/禁用永远你自己勾,这是设计,不是限制。 - 想改什么,先说「能不能修」。它会给方案和风险;你说「做」才会真的落盘。 - 拿不准要不要处理时,让它 **「分开说哪些是推断、哪些是证据」** —— 报告里的归属是推断,堆栈才是证据。 > 改插件自己的设置(忽略清单、补丁目录等):**DSH 设置界面 → RimWorld 日志分析**,改完立即生效; > 或者直接对它说「打开设置」/「把 XX 加进忽略清单」。环境变量 > 界面配置 > settings.json > 默认。 --- ## 二、每次开游戏后 ``` 检查一下最近的日志:只报新增的 ERROR 并说明各自归哪个 mod;如果我刚更新过 mod,重点看新出现的问题;最后写一条归档记录,记下问题、结论和还没做的。 ``` --- ## 三、什么时候该跑什么 ``` 游戏刚才崩了,看下崩溃前后有没有错误。 ``` ``` 最近明显掉帧,查有没有每帧都在刷的错误或警告。 ``` ``` 我想装一个新 mod,看看会不会和现有列表冲突。 ``` ``` 我打的补丁没生效,帮我查为什么。 ``` ``` 我刚更新了几个 mod,列一下时间窗内更新/新增的 mod 和各自版本变化,重点看新出现的问题。 ``` ``` 重开游戏了,对比这次和上次的错误:只报新增的和消失的,说明各自归哪个 mod。 ``` ``` 审计一下启用中的修复补丁:工作区源码和部署目录是否一致,哪些改了还没部署。 ``` --- ## 四、怎么跟它说话(意图 → 一句话) | 你想干的事 | 直接复制这句 | |---|---| | 想知道这条报错是什么 | `解释一下这条报错是什么意思,要不要处理。` | | 想知道是谁的错 | `这个错误是哪个 mod 的?依据是什么,别猜。` | | 想让它修 | `这个能修吗?先说方案和风险,别直接改。` | | 批准动手 | `就按你说的做。` | | 想要一份能贴出去的结论 | `把结论整理成一份报告,我能直接贴给别人。` | | 想复查 | `上次那几处修完还剩什么没做?` | --- ## 五、日志怎么看(不用自己啃,问它) ``` 把这份报告整理成我能看懂的结论:分开说哪些是推断、哪些是证据;重复上百次的错误给根因和止住的办法;不确定要不要管的警告按轻重排一下。 ``` 只想先扫一眼,不想看长报告: ``` 用紧凑视图扫一下:每条错误一行,只给计数和归属;引擎类的折叠到一个桶,别逐条列。 ``` **三个概念**,知道就不会被吓到: | 你看到的 | 意思 | |---|---| | `[Likely: 某 mod]` | **推断**。按上下文猜的,不是证据 | | `This error repeated 100 more times` | 在刷屏。要治根因,不是把日志关掉 | | `Parsed 0.5 as int` | 某个 mod 把整数字段写成了小数,多数无害 | --- ## 六、修东西的规矩(**进阶,可跳过**) ``` 按这个流程改:先确认 xpath 命中,再动数据,最后告诉我改了哪些 def;没生效就按「xpath 命中 → 操作类型 → 加载顺序」三层查;继承来的 def 别用 XML 硬拼,用运行期改。 ``` **记住两句**:`success=Always` 会把失败藏起来;`PatchOperationSequence` 里面必须用 `
  • `。 --- ## 七、Combat Extended 相关(**进阶,可跳过**) **先判该不该做**,别一股脑全改: ``` 先审计这批武器和服装,判断哪些真的需要 CE 化(看 armorCategory、verbClass、伤害是不是走非弹道路径),给我一份「该做 / 不用做」的清单和依据。 ``` **动手补的时候,四类内容一起看**(近战只是其中一类): ``` 按 CE 规范补这批内容:远程武器补弹道与弹药与开火模式(MakeGunCECompatible 或手写 def),近战补 ToolCE 与穿透,服装把护甲换算成 CE 的 mm/MPa,缺配方的补配方;动手前先说会改哪些 def、参照了哪个同族武器,改完离线验证 xpath 与 XML 再告诉我结果。 ``` **改完再查重复与引用**: ``` 检查这些 CE 补丁:哪些是别人已经补过的(以他们的为准),以及我补丁引用的 packageId 是否都存在、有没有前缀识别不到的。 ``` > 每一类具体怎么取值,看 `COMBAT_EXTENDED.md`(护甲穿透链、`ToolCE`、两套远程写法、已验证的坑)。 --- ## 八、归档与迁移 ``` 导出迁移包(只带最新那份快照),再列一份换机器要带走和不能带的清单。 ``` ``` 核对一下最新快照和工作区是否完全一致,被跳过的目录也给我交代清楚。 ``` ``` 校验这个 mod 的 About.xml 写得对不对(结构、裸 & 符号、description 有没有嵌套)。 ``` --- ## 九、交付包(**维护者用,可跳过**) **一句话就能出包**,基线、检查、核对都在里面: ``` 把当前插件打成交付包:基线用 <上一版目录>,输出到 <输出目录>,打完自己核一遍(包内 6 份文档齐全、包内源码与插件逐文件一致、zip 能解开、SHA256SUMS 抽查),然后把包路径和「新增 / 修改 / 删除」的数量告诉我。 ``` 没有上一版目录时,换成这句: ``` 把当前插件打成交付包,这次不给基线,输出到 <输出目录>;更新日志里会写明「变更清单不可用」,打完告诉我包路径。 ``` 发完这一版,再补一句让它把记录接上: ``` 把这一版的改动缩成一段,插到 HISTORY.md 最上面,然后重新生成更新日志。 ``` --- ## 十、出问题了(症状 → 一句话) ``` 补丁没生效,先确认 xpath 是否命中,再告诉我差在哪一层。 ``` ``` 有 mod 加载不出来,看下 Player.log 里的 TypeLoadException。 ``` ``` 扫描说没找到日志,帮我确认 RimCrow 的 profile 和日志路径。 ``` ``` 工具返回空结果,帮我确认用的是哪份日志源。 ``` --- ## 十一、别这么问(会得到没用的答案) | 别这样说 | 为什么 | 换成 | |---|---|---| | 「帮我修好所有问题」 | 会得到一堆没验证的补丁 | 「按严重度排序,先说哪三个值得修」 | | 「把日志开关关掉就不报了」 | 只是看不见 | 「怎么让这个错误不再触发」 | | 「帮我把 ModsConfig 改一下」 | 插件不允许,也不该做 | 「列个启用/禁用清单,我自己勾」 | --- ## 十二、记住三句话 ``` 先方案后执行。 修完就归档。 定期整理。 ```