动态等级列表 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
当多个模组向同一个等级列表中添加物品、NPC或法术时,天际只会保留最后一个模组的版本,而丢弃其他所有模组的添加内容。本插件修复了这个问题。它会找回缺失的条目并将它们放回原处,完全符合每位模组作者的原始意图。
如果方便获取,仍然建议为模组安装补丁。本模组旨在大幅减轻这一负担,但若无需费力寻找,装上补丁几乎总是有益的。
需求 天际特别版(1.5.97)、周年纪念版(1.6.x)或VR版 SKSE SKSE 插件地址库 制作人员名单 CommonLibSSE-NG VR SKSE团队 Wrye Bash xEdit
这个模组是做什么的 (我尽量说得简单些。有问题欢迎提出。)
当多个模组修改同一个等级列表时,天际通常只会保留最后一个模组的版本。其他模组的物品会被静默删除。本插件会检查每个编辑过等级列表的模组,找出各自添加或移除的内容,并在启动时智能地将其全部合并。可以将其视为等级列表的自动合成补丁,但可能更好用。
解决等级列表冲突。 覆盖等级化物品(战利品表、商人库存)、等级化NPC(哪些敌人会生成)以及等级化法术(哪些法术会被分配)。当多个模组编辑同一张等级列表时,只有最后一个模组的版本会保留,其他模组的添加内容会被悄悄丢弃。通常你需要兼容补丁或手动使用TES5Edit来解决这个问题。本插件会自动处理。尊重移除。 如果一个模组专门从等级列表中移除了某个物品,该物品会保持移除状态。本插件不会将其重新添加回来。像Open World Loot和Morrowloot Ultimate这类模组通过移除原版物品来精心策划战利品表。如果没有兼容性补丁,这些移除操作会被覆盖,导致错误的物品出现。本模组可以防止这种情况发生。处理255条目的上限。 天际引擎将每个等级化列表的上限设定为255项。当众多模组向热门列表添加物品时,合并后的结果轻易就会超出此限制。本插件在运行时创建溢出子列表,确保不遗漏任何内容。据我所知,这是其他任何天际模组都未曾实现的功能。 打破循环引用。 合并后的等级列表可能会引用其他等级列表。如果合并意外造成循环引用(列表A包含列表B,列表B又包含列表A),游戏引擎就会崩溃。此插件会在合并后检测整个等级列表关系图中的所有循环,并自动将其解除。基本上,它顶得上几十个补丁的活儿,还不需要真去装补丁。
源代码可用,但权限目前关闭,因为我希望有机会制作更多类似这样的插件。
这个MOD不会做什么 这个问题经常出现,所以我们把话说清楚: 这不是蜘蛛侠。 这有助于消除你的模组列表对等级列表补丁的需求,意味着你会在等级列表中真正看到物品掉落,而无需为你的补丁再打补丁。SPID 是一个框架,允许作者绕过冲突解决的需求。它不会随机添加物品。 它添加的每个物品都是由你的某个模组有意放置的。天际仅仅因为另一个模组编辑了相同的等级列表就将其丢弃了。它不会取代Wrye Bash。 这功能类似,但可能更好,而且是在游戏启动时生效,不过仅适用于等级列表(物品、NPC和法术)。Wrye Bash覆盖的记录类型要多得多。它不会触碰容器或单个NPC记录。 关于容器,请参阅动态容器战利品。关于单个NPC数据(特定NPC的库存、技能、法术),请参阅动态非玩家角色。此插件仅处理等级列表。它并不是盲目地“拼接”记录。 它会将每个模组的改动与原版进行对比,只保留每个模组具体新增或移除的内容。这是智能合并,不是简单的复制粘贴。它不会产生脏编辑(ITM)。 没有任何内容写入磁盘。所有合并操作都在游戏加载时于内存中完成。您的插件文件绝不会被修改。它不会创建循环引用。 如果合并会造成循环(列表A引用列表B,而列表B又引用列表A),插件会自动检测并打破该循环。每次打破循环都会被记录在日志中。它不需要Bash标签。 无需标记,无需配置,无需选择加入。如果插件编辑了相同的等级列表,系统会自动解决冲突。
问题 天际省有一条简单的规则:如果两个模组修改了同一项内容,那么在加载顺序中靠后的那个生效,另一个则会被丢弃。假设模组A向巨剑战利品列表中添加了一把新的巨剑,而模组B也向同一个列表中添加了另一把不同的巨剑,那么最终你只会得到模组B的巨剑,模组A的巨剑就不见了。没有任何警告,也不会报错,只是悄无声息地消失。
这就是为什么你需要为几乎所有的武器和护甲模组,以及许多其他物品类型安装兼容性补丁的原因。没有它们,你安装的许多物品实际上根本不会出现在游戏中。你的模组越多,问题就越严重。
修复 动态等级列表会检查每个修改过等级列表的模组,分析各自添加或移除了什么内容,并解决这些冲突。最终效果几乎等同于你为加载顺序中的每个等级列表冲突手动制作兼容补丁,只不过你无需做任何操作。
对于倾向于使用SSEEdit脚本的用户,我们也提供了相应方案。 .
该模组将依据其逻辑来解决冲突,之后你可根据自己的喜好微调不尽人意之处。
运作方式 在游戏启动时运行一次,在到达主菜单之前 找出所有超过两个模组尝试修改的已登记列表(物品、NPC和法术) 读取每个mod对该列表的版本,查看它们添加或移除了哪些条目 将所有更改合并在一起,确保不会丢失任何内容 如果合并结果超过255条,则创建溢出子列表。 扫描整个等级列表图以查找循环引用并切断所有找到的循环引用。 好了。你现在正常玩游戏就行。
INI 设置 配置文件位于
Data/SKSE/Plugins/DynamicLeveledLists.ini 如果该文件不存在,则会在你首次启动游戏时自动创建。
[General] ;启用详细的合并日志记录(true/false) enablelogs = false ;按列表类型启用或禁用冲突解决(true/false) mergeleveledItems = true mergeleveledNPCs = true mergeleveledSpells = true
设置参考 启用日志 默认: 假 记录每个等级列表中新增、移除或跳过的每一条目,并附上最终状态快照及最常新增条目的汇总统计。若你想确切了解解析结果,此功能会很有帮助,但会因需查询每条目的名称而拖慢启动速度。除非出于好奇或排查问题,否则建议保持关闭。
合并已升级物品 默认: true 控制是否解决等级化物品列表冲突(战利品表、商店库存)。如果希望完全跳过物品列表,请设为false。
合并已升级NPC 默认: 真 确定是否解决等级NPC列表冲突(哪些敌人可以生成)。如果希望完全跳过NPC列表,请设为false。
合并等级法术 Default: 真 控制是否解决等级法术列表冲突(哪些法术会被分配)。若设为false,则完全跳过法术列表。
阅读日志 日志位于
Documents/my games/Skyrim Special Edition/DynamicLeveledLists.log 总是显示所发生事件的摘要:
总数和错误将始终被记录。这些错误几乎总是与您的模组列表有关,而非动态等级列表(Dynamic Leveled Lists)本身的问题。建议修复这些错误,或将其报告给模组作者。
=== 动态等级列表:合并完成 === 总计等级列表:4821 含覆盖(基础+仅胜者):312 冲突数(3个以上来源):87 实际已合并:41 共添加条目:156 总共移除条目:12 已创建溢出子列表:3 未检测到循环引用 ---
**这份***** 副本是在要求严格的***环境下的产物。 等级物品 (LVLI):共 3214 个,合并 27 个 等级化NPC(LVLN): 1204总计,11已合并 等级法术(LVSP):共403个,合并3个 我是食腐者。我吃掉所有倒下的敌人。 数据质量警告: 已剥离空条目:2(等级列表中的空引用,可能来自损坏的模组) 负计数已钳制为1: 1(等级列表中存在无效物品计数,可能来自损坏的模组)注意: 详细日志记录会显著降低启动速度。正常游戏时请保持关闭。