船员进食 - 精制

船员进食 - 精制

让船员吃饱,不再被通知刷屏。

[url=https://www.nexusmods.com/starfield/mods/12100][b]Crew Eats Food[/b][/url] 由 [url=https://www.nexusmods.com/profile/viaconflictu]viaconflictu[/url] 制作,是我最喜欢的模组之一,但我发现每次船员消耗食物时涌现的大量通知相当分散注意力(会连续快速显示三条)。

我之前提出过一些改进建议,但鉴于作者已经两年没有活跃了,我想不如自己来实现这些改进。幸运的是,用补丁实现起来很容易。

此模组为 [url=https://www.nexusmods.com/starfield/mods/12100][b]Crew Eats Food[/b][/url](必需依赖项)打补丁,使 UI 不那么干扰:

[list]
[]通过在该模组的脚本上附加一条空 Message 来抑制通知。[/]
[]在魔法效果描述中添加剩余食物和饮品总数的实时计数,可在状态菜单中查看,以弥补被移除的通知。[/]
[/list]总体而言,我更喜欢这种方式,因为我可以随时快速查看状态菜单,了解货舱中还剩多少食物和饮品。

我决定不添加该模组中 Ultra / Premium 物品的计数。除了会给状态菜单增加杂乱之外,统计它们需要遍历多个 FormList,这比使用通用的原版关键词统计所有食物和饮品要慢得多:
使用仅关键词方法对满载货舱进行完整计数大约需要 0.1 秒,而包含额外 FormList 计数时大约需要 2 秒。

[b]TLDR:[/b] 我试过了,它能用,但不值得付出性能代价。

在转移多个物品时,可能会爆发大量物品添加/移除事件,因此计数会通过一个非常短的延迟进行防抖处理,以避免重复不必要的工作。总数会在库存事件稳定后更新。

未对底层功能或 FormList 做其他更改。原模组的表单仅在绝对必要时才会被覆盖。

我愿意接受进一步改进的建议,前提是它们可以实现,因为我无法访问原模组的源代码。

[url=https://creations.bethesda.net/en/starfield/details/2d16b1d2-3ee9-43db-8154-64d7cf098baa/Crew_Eats_Food][b]此模组也可在 Creations 上免费获取。[/b][/url]