上古卷轴5重制版支持新的插件格式esl,该格式可以实现在传奇版中无法实现的255插件上限突破,让我们可以放心安装各种MOD而再也不用担心位置不够。
ESP和ESL不同之处
老滚5的插件为8个16进制数组成FFFFFFF
ESP文件(00FFFFFF),使用前面两位数作为排序,后面的6位用来存放form数据,理论上一个esp文件可以储存16777216个form数据,这种分配内存的方式显然是一种巨大的浪费,就连老滚本体也不过几万个form数据。
ESL文件(FE000FFF),则使用固定的FE开头,也就是说它在所有插件的排序中固定排在第254个位置,也就是最下面,因此制作ESL文件相当于把多个MOD一起整合到第254个esp里,它会在所有ESM和ESP插件都加载完以后才会加载。他的排序使用中间的三位16进制数,也就是说你可以最多拥有4096个esl文件,每个ESL文件可以储存4096个form数据,4096个数据位置对于大部分MOD来说已经是足够了的。
form* : 指的是插件中的任意一个数据组,任何一个法术,魔法效果,NPC等等能在sseedit里含有地址的东西都称为form
利用SSEedit将ESP转换成ESL文件,下面分几种情况讲解
例子1:不含覆盖式数据的esp
我们SKYUI为例,用sseedit打开SkyUI的esp,我们看到里面的所有form数据,它们都不会覆盖原版游戏的数据甚至不需要skyrim.esm作为前置,其地址的3,4,5位全是0,这以为这个esp可以直接被esl化并且不会对游戏存档有任何影响,我们只点击左边的Record Flags,给它加个esl的flag就可以了
我们可以看到,只要esp里的数据都符合345位全是0的情况并且未含有覆盖数据的情况下,那这个esp都是可以安全的被转换成esl并对游戏存档不会产生任何的影响。
例子2:仅含有覆盖数据的patch类文件
这里以烽火技能树与烽火魔法大修的patch为例,这个esp只有两个form的修改而且两个数据都是覆盖式的,这样的patch直接添加esl的flags即可转换,需要注意的是转换后这个数据则会被最后加载,也就是排序在最后。
例子3:Form含有地位的345位不全是0的混合式esp文件
这里以烽火打击感为例子,这个esp包含新的form数据以及对其它文件数据的修改和覆盖
这里可以看到,里面有几个form地址的345位不全是0,因此这个esp是不能直接被esl化的,必须对相关的formID的地址重新编号,右键点击该form点击change FormID,之后将345号位变为0,比如这里可以填为81000715,如果填完后发生错误,那说明这个esp里有另外一个form的地址为XX000715,这个时候你只需要把715换成另一个000~FFF之间的数据,直到你找到一个可以的ID。
找到可用地址后,会弹出需要更新其他调用到该form的form,点击确定即可更改。
批处理
如果需要更改的form太多可以使用批处理功能,选中需要修改的form右键点击apply script并在script中找到Renumber FormID,之后任意输入一个起始地址XX000XXX,脚本会按照起始地址+1的方式对form进行重新编号。
注意事项:任何需要重修对form编号的esp,都会对存档造成一定的影响,所以建议这样的MOD如果不是开新档,不建议将其esl化。其次,就算开新档如果该MOD的作者保持更新频繁,也不建议将其esl化。
总结
esl化的教程基本等于esp整合,esl也可以逆向输出回esp来解决冲突。我觉得你们可能看不懂我到底在说什么,建议你们多去自己尝试一下,然后再回来看教程,温故而知新。