早期鸟 NPC 日程表

早期鸟 NPC 日程表

修改NPC日程,使他们更早开始一天的活动,减少白天浪费的时间。安排在上午进行的NPC活动现在会更早开始,而下下午和傍晚的活动仅做轻微调整。修士的日程则不做修改。

NPCs

我喜欢在天刚黑时让亨利上床睡觉,并在日出前叫醒他,但所有 NPC 都像懒鬼一样睡懒觉!拉泰市场要到上午晚些时候才开门,农民们浪费了那么多白天的时光,简直可笑。这个模组是我为了让 NPC 们更早开始一天的生活而制作的。基于 1.8.2 版本制作和测试。

特性

  • 大多数 NPC 活动都会提前开始。清晨(约 70 分钟)有较大变化,13:00 之后变化较小(< 30 分钟)。
  • 大多数 NPC 的日常日程提前了 40 到 75 分钟,但在下午晚些时候/傍晚早期会与原始日程同步。
  • 时间变化是保持顺序的。这意味着,如果原版中 NPC A 在 NPC B 做 Y 之前做了 X,那么在这个模组中也是如此。这避免了像食物在人们到达酒馆之前就上桌这样的问题。(僧侣是个例外,他们的日程没有被修改。)
  • 因为 NPC 太多,无法手动编辑每个日程,所以我写了一些 Python 代码来完成这项工作。我已将这些代码包含在可选文件中。欢迎调整代码并使用它来制作你自己的日程调整模组,或者在必要时更新这个模组。如果你使用此代码制作新模组或更新,可以随意发布(但注名出处会更好)!

日程调整细节(给技术爱好者)

在 soul.xml 文件中,每个 NPC 最多有八个活动,每个活动都有自己的开始时间。我将每个活动的开始时间转换为十进制小时(例如,下午 3:30 将变为 15.5),并将该时间代入一个函数中,该函数会输出一个新时间。我将新时间写入替换的 soul.xml 文件中。时间更改函数将十进制时间 t 减少 (t - a) * exp((a - t) / tau) [代码] 如果 t > a,否则保持不变。我使用了 a = 2.0 和 tau = 3.5。参数 a 意味着如果人们原本不在这个时间之前做事,那么不会让他们这样做。参数 tau 控制时间偏移的衰减;值越高,我们在一天中较早的时间停止对日程进行大幅更改的时间点越晚。最大时间偏移是 tau/e,发生在 t=tau+a 时(e ~= 2.72)。对于我使用的参数,此偏移将上午 5:30 映射到凌晨 4:13。

逐小时日程调整

以下是每天每小时的成对数据。第一个数字是原版时间,第二个数字是模组化时间(自午夜起的小时数)。 (0, 0.0) (1, 1.0) (2, 2.0) 注意:按设计,午夜到凌晨 2 点之间时间不变。 (3, 2.248522706924714) 注意:凌晨 2:00 到 3:00 之间最大间隔收缩,此小时约收缩 4 倍 (4, 2.8705637559844814) (5, 3.72688146296915) 注意:最大变化发生在 5:30,为 1 小时 17 分(凌晨 4:13) (6, 4.724373770704118) 注意:接近 5:30 时,间隔长度保持最佳;此前收缩,此后增长 (7, 5.801744817791121) (8, 6.919446127112286) 注意:大多数懒鬼会提前一小时起床(大多数 NPC 在早上 8:00 左右醒来);拉泰市场摊位现在大约在早上 7:00-8:00 开门 (9, 8.052653017343712) 注意:最大间隔增长仅为约 8 分钟/小时,几乎正好发生在 9:00 (10, 9.186388861566185) (11, 10.312163417083088) 注意:大多数懒惰的商人提前 40 分钟到 1 小时开门 (12, 11.425673807323827) (13, 12.525247598124022) 注意:午餐及之后基本不变(最大变化 < 30 分钟) (14, 13.610801109262454) (15, 14.683153027047366) (16, 15.743581055557721) (17, 16.793543199004244) (18, 17.83450922885411) (19, 18.86786478347474) (20, 19.894862407822487) (21, 20.91660212498721) (22, 21.93402988488122) (23, 22.947946204290005) (24, 23.959020028529636) 注意:最小的非零变化约为 0.04 小时 ~= 2 分钟

安装、兼容性与操作指南

安装: 要安装本模组,请将其解压到你的 KingdomComeDeliverance\Mods\ 文件夹中,文件夹结构应如下所示: KingdomComeDeliverance\Mods\EarlyBird_EarlierSchedules_v0-0-0\Data\EarlyBird.pak。 如果在现有存档上安装,更改可能不会立即生效。尝试等待 1 小时。如果不起作用,再等 24 小时。如果还不行,请发表评论。

兼容性: 本模组影响 Data\Libs\Tables\rpg\soul.xml 文件。

如何调整: 你可以编辑 AlarmClock.py 以满足你的日程偏好。我建议在游戏内测试之前,先检查每个小时的结果(例如,通过在 Wolfram|Alpha 中输入“table (t,t - (t-2) * exp((2-t)/3.5)) for t = 2 to 24”)。

要使用该代码,请将 Python 代码放在与 soul.xml 文件相同的目录中,然后运行它,生成一个名为 soul_timechange.xml 的新文件。如果要在另一个模组的 soul.xml 版本上运行(例如,soul_modname.xml),请在运行 Python 代码之前,将该模组的 soul 文件重命名为 soul.xml。将 soul_timechange.xml 放入一个名为 Libs\Tables\rpg\ 的新文件夹中,并将其重命名为 soul__modname.xml。将新的 Libs 文件夹添加到一个 zip 存档中。将 zip 文件扩展名从 .zip 重命名为 .pak。新的 pak 文件放入 KingdomComeDeliverance\Mods[MOD NAME HERE]\Data\ 中。按照 http://wiki.tesnexus.com/index.php/Modding_guide_for_KCD 上描述的模组 wiki 创建模组清单。