# 使用参考 —— 一句话直接复制给 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` 里面必须用 `