【NetHack小技巧】NetHack配置文件使用教程

修改于2022/01/09965 浏览攻略
之前的整活内容镇楼。
TapTap
TapTap
(解密:图中的整活原理参见本帖4.1.7节)
大家好!
本攻略帖旨在提供NetHack配置文件使用指导,让玩家们能够根据自己的喜好调整游戏的外观和交互操作等。
除介绍配置文件使用方法外,本帖还会列举并介绍NetHack游戏中的各种选项(部分对游戏性影响较小的选项不介绍),并根据选项涉及的领域对选项进行简单的分类,如读者对选项分类或其它方面有更好的建议,欢迎在评论区提出。
本帖内容基于NetHack 3.6.6 Windows版本。各配置选项的相关资料来自NetHack Wiki和《NetHack用户手册》,感谢各位Wiki编辑者作出的贡献。
由于内容过长,本帖分多段发布,持续更新中。
目录:
1. 游戏内选项配置
2. 配置文件的编辑
3. 配置选项的基础知识
4. 各选项介绍
4.1 一般选项
4.2 交互选项
4.3 游戏外观选项
4.4 界面外观选项
1. 游戏内选项配置:
玩家可以在游戏内输入“O”操作打开游戏内的选项菜单,该菜单可以查看大多数选项的设定值,但只能修改其中的一部分。若需要修改所有选项,必须使用配置文件。
2. 配置文件的编辑:
NetHack的游戏内容配置涉及到三个游戏数据文件:.nethackrc、sysconf和symbols。其中,.nethackrc为游戏的主要配置文件,其文件名根据操作系统不同可能有所不同(例如,目前Android 3.6.1版文件名为defaults.nh,其它操作系统用户可以参考NetHack Wiki: Options条目);sysconf为游戏的操作系统级配置文件,可以改变游戏程序部分编译时选项,本帖仅对其作简单涉及;symbols为游戏的字符集文件,规定游戏中各种实体的符号表示,每一套符号表示统合为一个字符集,可以通过修改设置使用不同的字符集。
游戏配置文件在计算机内的储存位置随操作系统不同而不同。欲查看其存储路径,可以在游戏内的选项菜单中检视“CONFIGDIR”选项。你可以在sysconf文件里修改CONFIGDIR的数据值来自定义配置文件的存储位置(格式为“CONFIGDIR=<路径>”),但要确保该路径存在。你也可以在sysconf文件中设置“portable_device_paths=1”来令所有数据文件默认存储在游戏程序目录下(这样寻找和编辑配置文件更轻松,转移游戏程序和数据时也更方便)。在Android版NetHack中,可以在游戏内设置菜单选择“编辑配置文件”来编辑游戏的defaults.nh配置文件。
 所有配置文件均为纯文本文件,且没有后缀名。如果指定路径下没有创建配置文件,你可能需要自己创建一个。游戏路径下存储的后缀名为“.template”的文件为对应配置文件的示例副本,玩家可以参考其格式编辑配置文件。
如同一些编程语言,配置文件内有“#”前缀的行会被判定为注释,其内容会被游戏程序自动忽略。编辑选项时通常必须使用半角符号,否则游戏程序无法识别。
如无特别提及,本帖接下来的内容均只涉及.nethackrc配置文件。
3. 配置选项的基础知识:
3.1 选项格式:
 如无特别说明,选项的设置格式为
 OPTIONS=<设置1>[, <设置2>, <设置3>, ...]
 即每行以“OPTIONS=”开头,随后跟随一个设置语句,或多个用逗号隔开的设置语句。未指定值的选项会设为默认值。
 部分选项的语句格式可能会不同,以说明为准。
3.2 选项类型:
布尔(Boolean)选项和复合(Compound)选项:
布尔选项即只有“开启”(true)和“关闭”(false)两种值的选项。其设置格式为
 [<取反符号>]<选项名>
 其中“取反符号”可以用感叹号“!”或“no”,例如
 OPTIONS=autodig, !autopickup(也可以写成"noautopickup")
 此设置语句将开启“autodig”并关闭“autopickup”。
复合选项为具有多种取值的选项。其设置格式为
 <选项名>:<设置值>
 例如
 OPTIONS=dogname:旺财
 此设置语句将dogname选项的值设为“旺财”(当然,英文版不一定会支持这个修改)。
固定(Persistent)选项:
部分选项属于固定选项,玩家在游戏内设置了它的值并保存游戏后,下次加载游戏时该设置值仍会保留(但开始新游戏时不会)。非固定的选项在每次进入游戏时都会还原为默认值(或配置文件里设置的值)。
4. 各选项介绍:
各分类下的选项按首字母顺序排列(部分关联性强的选项可能会排到一起)。推荐使用网页端的页内查找功能搜索你需要的内容。
4.1 一般选项:
4.1.1 align
复合选项。
设置随机创建角色的起始阵营偏好。可使用的取值为“lawful”(秩序)、“neutral”(中立)、“chaotic”(混沌)和“random”(随机),所有值均可使用首字母代替,并支持使用“!”前缀排除指定选择,如
 OPTIONS=align:!n
 意为“随机选择阵营时,不会选择中立阵营”。
 默认值为“random”。
 不能在游戏内设置。
4.1.2 blind
布尔选项。
 开启后角色进入游戏时即为永久失明状态。
警告:具有挑战性的选项!
默认值为“false”。
 不能在游戏内设置。
 固定选项。
4.1.3 bones
布尔选项。
开启时允许游戏程序保存和读取尸体存档文件。
 默认值为“true”。
 固定选项。
4.1.4 catname、dogname和horsename
复合选项。
 设置角色起始宠物的名称。
 不能在游戏内设置。
4.1.5 character/role
复合选项。
 “character”和“role”两个名称均可使用。
 设置随机创建角色的起始职业偏好。可使用的取值为所有职业的英文名及“random”(随机),除“ranger”(游侠)、“rogue”(盗贼)和“random”(随机)外的值均可用首字母代替,支持使用“!”前缀排除指定选择。
 默认值为“random”。
 不能在游戏内设置。
 固定选项。
4.1.6 CHOOSE
特殊格式选项,使用格式为
 CHOOSE=<标识符1>, <标识符2>, ...
 [<标识符1>]
<设置语句1>
 [<标识符2>]
 <设置语句2>
 ...
 进入游戏时,随机选择一个标识符,该标识符下的设置语句将生效,其余标识符下的设置语句将失效。该选项可以进行一些诸如更细致的随机角色创建等操作,例如
 CHOOSE=arg1, arg2
 [arg1]
 OPTIONS=role:arc, race:dwa, align:law, gender:fem
 [arg2]
OPTIONS=role:wiz, race:elf, align:cha, gender:mal
 可以让游戏在随机生成角色时,在秩序女性矮人考古学家和混沌男性精灵巫师两种组合间随机选择。
4.1.7 fruit
复合选项。
设置游戏内自定义水果物品的名称。若在游戏中修改,则该名称只会作用于本局中新生成的水果物品。
默认值为“slime mold”(汉化版中为“黏液”)。
4.1.8 gender
复合选项。
设置随机创建角色的初始性别偏好。可使用的取值为“male”(男性)、“female”(女性)和“random”(随机)。
 默认值为“random”。
 不能在游戏内设置。
4.1.9 mail
布尔选项。
允许在游戏进行时接收其他玩家的邮件消息。该选项仅在服务器上进行游戏时有意义。
 默认值为“true”。
4.1.10 msghistory
复合选项。
设置“消息”指令可显示的最大缓存消息数。可使用合适的正整数作为取值,一般取值范围为20~60。
默认值为20。
 不能在游戏内设置。
4.1.11 msg_window
复合选项。
设置“消息”指令显示消息的方式。可用取值为:
 “single”(每次在界面上方显示单条消息)
 “combination”( 连续输入时,前两次在界面上方显示单条消息,之后同“full”)
 “full”(直接弹出罗列所有消息的窗口,旧消息在前)
 “reversed”(直接弹出罗列所有消息的窗口,新消息在前)
 所有取值可以使用首字母代替。出于向后兼容的考虑,该选项可以使用布尔选项的格式设置,即
 OPTIONS=msg_window(等效于msg_window:full)
 或
 OPTIONS=!msg_window(等效于msg_window:single)
 仅于Windows平台的字符版中可以在游戏内设置。
4.1.12 MSGTYPE
特殊格式选项,使用格式为
 MSGTYPE=<显示模式> "<regex>"
该选项使用<regex>指定的POSIX正则表达式匹配指定的消息字符串,并通过<显示模式>指定该类消息的显示模式。
 其中,<显示模式>可用的值为
 “hide”(隐藏此类消息)
 “stop”(显示此类消息时中断游戏)
 “norep”(显示此类消息,但多次重复时隐藏重复消息)
 “show”(总是显示此类消息,此为默认值)
 如果多个MSGTYPE语句匹配到同一消息字符串,则仅其中最后一条设置语句生效。
 使用示例:
 MSGTYPE=hide "你和.*换了个位置"(隐藏和宠物换位的消息)
 MSGTYPE=norep "你看到这里有.*"(不重复显示看到地上物品的消息)
 MSGTYPE=stop "你开始感到虚弱"(因过度饥饿而虚弱时,中断游戏)
4.1.13 name
复合选项。
设置角色的名称。取值格式为
 name:<名称>[ <后缀选项>]
 其中<名称>指定角色名称,如果设置为“player”,则游戏会在开始时指示玩家输入一个名称。
 <后缀选项>是可选内容,可以不指定。它指定角色的起始职业,格式为“-X”,其中X为角色职业英文名的缩写,如“-A”代表“考古学家”,“-T”代表“游客”,“-Ra”代表“游侠”,等等。特别地,“-@”代表随机职业。
 默认值为玩家的计算机用户名或“player”。
不能在游戏内设置。
4.1.14 nudist
布尔选项。
开始新游戏时,移除玩家初始物品中的防具。
警告:具有挑战性的选项!
默认值为“false”。
 固定选项。
4.1.15 pettype
复合选项。
设定玩家开始游戏时获得的初始宠物类型。可用取值为“cat”、“dog”和“none”。如设定为“none”则开始游戏时不会获得初始宠物。部分角色的起始宠物类型为固定的(例如巫师的初始宠物一定是小猫,骑士的初始宠物一定是小马),不会受该选项的影响(“none”除外)。
 不能在游戏内设置。
4.1.16 race
复合选项。
设置随机创建角色的起始种族偏好。可用取值为“human”(人类)、“elf”(精灵)、“dwarf”(矮人)、“gnome”(侏儒)、“orc”(兽人)和“random”(随机)。各取值可用首字母代替,支持使用“!”前缀排除指定选择。
 默认值为“random”。
 不能在游戏内设置。
 固定选项。
4.1.17 scores
复合选项。
设置游戏结束时显示的得分榜会显示哪些信息。支持以下设定值:
 “o”(显示本局游戏的得分,可以使用“!”前缀设置不显示得分)
 “Xa”(显示得分榜中离本局得分最接近的X条分数记录)
 “Xt”(显示得分榜中最高的X条分数记录)
 各设定值间用空格分隔。
 默认值为“10t 2a o”。
 固定选项。
4.1.18 SOUND和SOUNDDIR
特殊格式选项。使用格式为
 SOUNDDIR=<路径>
 SOUND=MESG "<regex>" "<文件名>" <音量>
该选项设置游戏音效。SOUNDDIR语句指定音效文件所在的路径,每条SOUND语句使用<regex>指定的POSIX正则表达式匹配游戏中指定类型的信息,当游戏中输出匹配到的信息时,以指定的音量播放<文件名>对应的音频文件。例如
 SOUNDDIR=D:\NHSounds
 SOUND=MESG "这个门是锁着的" "上锁声.wav" 100
 SOUND=MESG "咚!!!" "咚.wav" 100
 SOUND=MESG "你把门踢.*" "破门声.wav" 100
6
12
12