RimWorld:故障排查指南(普通玩家?大概)

前言

相关内容来自RimWorld Wiki ,本文仅做翻译和有限的补充,除非另有说明,所属内容均在 CC BY-SA 3.0 下提供。

RimWorld Wiki:https://www.rimworldwiki.com/wiki/Main_PageRimWorld

RimWorld Wiki - Modding Troubleshooting Tips and Guides:https://www.rimworldwiki.com/wiki/Modding_Troubleshooting_Tips_and_Guides

水平有限,如有错漏,敬请见谅

如果您喜欢这篇文章,麻烦大家帮我点个赞,谢谢大家的支持!

故障排查的基本操作

“我的游戏出问题/崩溃/UI消失/卡死了,我该怎么办?”

你应该:

  • 使用Steam验证游戏完整性(如果你是用Steam运行游戏的话);
  • 检查模组排序(见下文);
  • 如果游戏之前正常运行,但在下次打开时出现了问题,检查是否有模组更新。
  • 清除配置(见下文);

模组加载顺序的基本规则

  • 确保模组在其所有依赖模组之下加载。例如,大多数模组都依赖 Core(游戏本体)来运行,因此必须在Core之下加载;
  • 模组不应该和其不兼容的模组同时加载;
    • 如何了解模组之间是否兼容呢?
      • 阅读模组描述;
      • 询问了解的人;
      • 或者试试看是否会出现错误。
  • 如果多个模组更改了相同的内容,以最后一个加载的模组优先;
    上述中“如果”很多,但通常有用。

本地模组默认文件夹

Windows: C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods或者C:\Program Files (x86)\RimWorld\Mods

Mac OS X:右键单击RimWorld应用程序并显示软件包内容 cd Library/Application\ Support/Steam/steamapps/common/RimWorld

Linux:~/.steam/steam/steamapps/common/Rimworld/Mods

Steam默认游戏安装路径

C:\Program Files (x86)\Steam\steamapps\common

Steam创意工坊模组默认安装路径

C:\Program Files (x86)\Steam\steamapps\workshop\content\294100

使用Steam验证游戏完整性

  • 进入Steam库;
  • 右键单击RimWorld;
  • 选择属性;
  • 选择已安装文件;
  • 选择验证游戏完整性;

使用Steam改变游戏版本

  • 进入Steam库;
  • 右键单击RimWorld;
  • 选择属性;
  • 选择测试版;
  • 在参与测试中选择你想要切换的游戏版本。

配置文件

%appdata%\..\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Config
  • RimWorld游戏和大部分模组的配置文件都被保存在这个文件夹中,删除这些文件会导致所有设置重置为默认值;
  • “清除配置”是指删除上述文件夹中的旧的或所有配置;
  • 旧的模组配置文件不会被自动移除;
  • 旧的模组配置文件可以会造成一些问题;
  • 记得备份保存ModsConfig.xml文件,这是模组的加载顺序文件,移除他会导致失去当前模组的加载顺序。

模组加载顺序

Rimpy是一个独立的,在游戏外运行的程序,它可帮助你更容易对模组进行排序。Rimpy有自己的自动排序功能,你可以看看这是否对你遇到的问题有所帮助:
https://steamcommunity.com/sharedfiles/filedetails/?id=1847679158&searchtext=rimpy

也有一些其他的模组管理器,同时作为模组和外部程序工作。

另一个选择是遵循以下指南排序模组:
https://rwom.fandom.com/wiki/Mod_Order_Guide

代码方面的解释

请记住,并不是所有的模组冲突都能通过改变加载顺序来解决。有时模组就是相互不兼容,只能等到模组作者修复。

有时候模组就是不兼容。

和大多数事情一样,关于模组加载的事实更为精细。粗略的看加载顺序是:Core,Mod 1, Mod 2, Mod 3,最后一个加载的模组优先。但实际加载顺序有点不同。

  • XML:游戏首先从Core, Mod 1, Mod 2, Mod 3加载所有XML(大多数是defs);
  • xpath:然后应用Mod 1、Mod 2、Mod 3中的所有xpath补丁(Patch);
    • XML继承发生在xpath之后(译者附)。
  • C#:最后从Mod 1, Mod 2, Mod 3加载C#。

所以,如果Mod 3用XML重写了某项内容,但Mod 2用xpath重写了某项内容,而Mod 1又用C#重写了某项内容,那么就是Mod 1优先,尽管按照加载顺序,Mod 3和Mod 2排在它之后。

加载顺序同以下几点相关:

  • 这个模组依赖另一个模组吗?例如依赖HugsLib, Proper Shotguns, Turret Extensions, Alien Races, JecsTools等模组。如果缺少任意一个依赖模组,你会得到一个漂亮的红色错误,就像这样:Could not find type named TurretExtensions.CompProperties_Upgradable from node <A lot of XML>。缺少依赖将使整个游戏处于故障并且不可继续游玩的状态;
  • 一些XML模组会做一件阴险的事情:覆盖(abstract)base。对此,建议访问https://github.com/RimWorld-CCL-Reborn/AllYourBase获得帮助。不幸的是,这些事情仍然经常发生,并且通常会造成严重破坏;
  • C#描述稍微偏离了事实,C#的加载甚至取决于他们如何实例化模组。有两到三个可能的HOOK,它们发生在不同的时间。大多数扰乱Defs的MOD都必须在第二个或第三个HOOK中完成。
    • inherit from mod,发生在Defs被加载之前。一般来说,C#不能在这里乱搞Defs;
    • staticconstructoronstartup注释,发生在Defs被加载之后。大多数情况下,这就是C#会与Defs纠缠的地方;
    • Hugslibs的ondefloaded,它与staticconstructoronstartup完全一样,但在staticconstructorsonstartup实用程序执行完成后运行。

而上述只是与Def有关的原因。

我(Wiki的原作者,非本文章译者)甚至还没有提及harmony冲突(更难检测)和运行冲突(有时会被记录,但并非总是如此)

以world edit模组为例:不记得它是哪个页面,但基本上是如果你点击某个“下一步”,就会被直接重定向到world edit的版本,不论原来的“下一步”到底应该是什么。

几乎没有机会通过编程检测到这种故障原因。

玩家通常会做的一些不该做的事

以下意见来自一个特定故障排查组的,而不是本文其他维护者。如果冒犯了你,请把的愤怒指向非官方的 Rimworld Discord 服务器,谢谢。

  • 不要使用过时的旧模组,模组适用于不同的游戏版本。目前唯一的例外是Allyourbase;
  • 如果你被要求添加和使用Allyourbase,不要打开详细日志记录,除非你被要求这样做;
  • 不要使用模组包。模组包几乎总是部分过时,部分损坏。如果你把模组包交给故障排查者,他们会告诉你要自己找模组。此外,Samuel Streamer需要停止编辑他们使用的所有开发命令,或者需要停止在没有首先修复模组包的情况下向人们提供模组包;
  • 不要光一句“有人能帮忙吗?”就进故障排查区发帖,再加上日志也不行。你需要提供问题描述和日志,这样故障排查者就不用花好几分钟搞清楚你究竟遇到了什么问题;
  • 如果一个故障排查者要求你做一些不违法并且不危险的事情,那就去做吧,即使你之前已经做过了。问问题不是为了拖延时间,也不是为了享受权力。你被要求这么做是为了让故障排查者们能够帮助你整好你的游戏;
  • 如果你曾经制作过《上古卷轴V:天际》或《辐射》的mod,并且你已经习惯了LOOT过滤器:你猜怎着,有Rimpy。尽管Rimpy还没有足够的时间去实现LOOT(开发者正在努力),试试嘛;
  • 如果可能的话,提供Hugslog日志。即使必须来自主菜单。即使必须在错误发生之前重新启动。Hugslog仍然是有用的
    • huglogs是通过添加Hugslib模组获得的,在游戏中按Ctrl+F12或者在开发者模式的调试窗口(Debug日志),找到点击绿色的“导出日志”按钮。;
  • 不是 Achtung 或者 Rocketman的问题(也有可能);
    • 这两个模组都会检查其他模组在做什么,试图让bug更容易被发现和修复。它们通常不是其捕获的错误的原因。
  • 你需要HARMONY和UNO。

日志的使用(译者附)

关于日志的使用详见本人另一篇博客:RimWorld:故障排查指南(日志相关)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值