首先,将所有差分版本的mod进行批量重命名:
可以手动重命名,如果数量太多也可以下载一个重命名工具(如ReNamer Lite)。
然后使用“GIMI-Mod合并工具”的-c参数合并mod,使用-c参数是为了删除重复文件,缩小合并后mod的体积。但使用该参数需要确保你的ini代码没有多余的引用,否则会合并失败。
所以使用-c参数进行合并前,建议先备份mod文件。如果合并失败,可以用“文件一致性检查工具”检查ini代码是否有多余引用。
-c参数使用方法:
将“GIMI-Mod合并工具”放入文件夹中,在路径栏中输入cmd并回车,打开命令行窗口:
在窗口中输入“GIMI-Mod合并工具.exe -c”并回车,然后正常合并即可:
合并完成后打开Merged.ini进行修改,建议使用VSCode打开,记事本也能改但是费眼睛。
修改方法1:
打开ini后先修改切换键部分:
想要的效果是H切换配色,J切换尾巴,K切换发光,L切换大雷。
将切换键部分修改如下:
其实就是将[KeySwap]部分复制粘贴出4个,分别改好标题、切换键、变量名和切换(0,1),[Constants]下面的变量也是复制粘贴改成对应的4个。
然后就是修改切换逻辑。
首先讲一下这个逻辑,设“黑红兔尾正常发光”为(0,0,0,0),那么“粉白鼠尾巨大不发光”就是(1,1,1,1)。对照你一开始重命名时候的顺序:
那么00原本对应的是“$swapvar == 0”,只要检索“$swapvar == 0”,全部替换成“$color == 0 && $tail == 0 && $Chest == 0 && $Glow == 0”即可:
(图片内容仅供参考,替换内容少打了个&,正确写法看文字。)
01~15的修改同理。建议从后向前进行替换,即先替换15,因为当你检索1时,11、12、13等也会被检索到。
全部替换后如图:
最后说一下,建议如果各部位是单独的mod的话,每个部位单独做合并切换。(此例子中的切换因为都在身体上,是同一个mod,没法再拆分了。)因为各个部位全都放一起做切换的话可能逻辑会变得太繁杂。
修改方法2:
如果觉得一个个进行替换太过繁杂,也可以在[Present]部分写入切换逻辑,前提是你能看懂并会写一些简单的if语句。
下面用4个变体合并后的ini进行演示,将两个按键分别绑定到颜色切换和身体切换。
首先展示修改前的constants部分:
首先,在[Constants]下添加两个新的变量$color和$body:
脚本生成的变量$swapvar需要保留,因为下面需要用到。
变量名可以根据需求命名,大小写不敏感。
另外解释一下变量前的 persist 修饰词的作用,这是为了给变量赋予持续性,这样在按下F10后会固定在当前变体,而不是恢复默认。但这要求mod所处的路径不含中文,实际情况是你很难保证玩家使用的路径非中文,所以效果不够理想,不如使用命名空间,不加这个修饰词也可以。
然后用两个新的[KeySwap1]和[KeySwap2]替换脚本生成的[KeySwap]:
标题名称可以根据需求来决定,原则上可以是[Key+任意内容],比如[KeyBody]、[KeyColor]等
最后,在[Present]下写入切换逻辑:
结果如下:
切换逻辑还可以使用嵌套结构:
最终效果是可以实现用方向键↑和方向键↓分别控制两种切换(示例为颜色和身体)。
也可以按照此示例继续增加变体和切换键,来做出更加复杂的多部位切换。