如何启用 NetHack Stuff 上的 itemcat 和 dynkey 补丁
这两个补丁都不是“下载即用”的成品,而是需要你自己编译进 NetHack 源码的 diff 文件。启用方式分两步:先在 config.h 里打开对应的编译开关,再按补丁要求修改配置文件或源码。itemcat 的开关是 ITEMCAT 和 ITEMCAT_JP,dynkey 的开关是 DYNKEY。补丁文件名后缀标明了适用的 NetHack 版本,选错版本会导致打补丁失败。
先确认版本匹配
NetHack Stuff 上的补丁用文件名后缀标注 NetHack 版本号,例如 itemcat-343.diff 对应 3.4.3,dynkey-343.diff 同样对应 3.4.3。SLASH'EM 有单独的 itemcat-007e6f3.diff。
选择补丁前先确认你手上的源码版本,再挑后缀一致的 diff。站点也提醒,如果补丁很新,可能带有较严重的 bug;如果某个补丁用起来问题很大,换旧版本可能更稳。
启用 itemcat
itemcat 的作用是在 drop、put_in、take_out 菜单里增加额外的物品分类选项。根据站点说明,它新增的分类包括:
| 分类键 | 含义 |
|---|---|
I |
未鉴定物品(若还想选 b/u/c 状态未知的物品,用 I 加 X) |
P |
刚取出或刚拾取的物品(取决于你上一个动作) |
Q |
自动拾取的物品(会尊重自动拾取例外设置) |
r |
已知易锈物品(需设置类似 like_swimming 的选项) |
Z |
反选,即选中除正常选择之外的所有物品(通常与按 @ 不同) |
启用步骤:
- 把对应版本的
itemcat-*.diff应用到 NetHack 源码。 - 打开
config.h,定义ITEMCAT和ITEMCAT_JP来启用该补丁。 - 重新编译。编译时可以选择启用一个或多个额外物品分类。
站点提到该补丁的多个分类建议来自 M. Drew Streib、Pasi Kallinen、Keiran 等人,SLASH'EM 版本由 Justin Flude 完成。
启用 dynkey
dynkey 用于动态键位绑定。启用步骤:
- 应用对应版本的
dynkey-*.diff。 - 在
config.h中启用DYNKEY。 - 在配置文件里添加绑定行,例如:
MAP=z ySWAP=C-d q
- 重新编译并加载你的配置文件。
站点说明 dynkey 0.2 版修改了 do_name.c。更完整的配置说明需要参考补丁自带的文档。
常见卡点
- 版本不匹配:diff 后缀和源码版本不一致时,打补丁会报错或产生错误结果。
- 忘记改 config.h:只应用 diff 而不定义
ITEMCAT、ITEMCAT_JP或DYNKEY,功能不会生效。 - Guidebook.txt 被改动:部分补丁会修改
Guidebook.txt。这对在 PC 上阅读的 Windows 用户有帮助,但如果需要正确的排版,得从Guidebook.mn重新生成。 - 存档与骨骼兼容性:站点明确说明这些补丁不会破坏骨骼或存档兼容性,所以不必担心旧存档无法继续使用。
- 新补丁的 bug 风险:站点提醒很新的补丁可能含有严重 bug,遇到问题可回退到旧版本。