前言:

如果你对环境与工具准备产生了些许疑问,请关闭此页面,你也许并不适合

本文章由shiroka半机翻并添加部分内容,如有意见请提出

1.环境与工具准备:

1.有点聪明的脑袋
2.普通的windows计算机
3.知道一些通过百度就能学会的基础编程语言
4.不会问出若至问题
5.Region.ini和working merge mod
6.待补充

2.正确的设置

  • 把Region.ini文件放进/Mods/BufferValues以确保mod文件夹中只有一个副本,方便将来更轻松地进行更新。

  • 将您的合并模组放在/Mods文件夹中的任何位置。(Region.ini是全局的,所以无论你的 mod 在哪里它都会工作。)

    将 merge mod 子文件夹命名为以数字开头,格式为 0、1、2… 的顺序(如果您的命名达到两位数,则将其命名为 00、01、02…10…)。这将帮助您稍后了解哪个值对应于哪个服装。

重点:仅在创建合并模块的 merge.ini 之前重命名您的文件夹,而不要在创建合并模块之后重命名,否则合并模块将无法工作

3.区域变量

当前区域由 Region.ini 文件标识,您可以使用变量 在 merged.ini 中访问它$\global\region\regioncheck。这将返回与游戏中每个区域相关的数字。每个数字的含义将写在Region.ini文件的开头。

在本教程中,它如下所示,但请务必检查您的Region.ini文件以确保安全。

1
2
3
4
5
6
7
8
; Regioncheck cheat sheet:
;
; 0: region unidentified
; 1: mondstadt
; 2: liyue
; 3: inazuma
; 4: sumeru
; 5: fontaine

您可以单独使用该变量$\global\region\regioncheck,也可以将其分配给另一个变量。例如,通过下面的代码,您可以使用变量$regioncheck来调用当前区域。此方法有助于提高代码的可读性。

1
global $regioncheck = $\global\region\regioncheck

4.服装变量

角色的服装通常由变量 表示$swapvar。这是子文件夹的命名变得很重要的地方。如果您按照上面指定的方式命名它,则$swapvar变量的值对应于您的文件夹的编号。例如$swapvar,0 表示文件夹中 0 的服装,$swapvar1 表示文件夹中 1 的服装,依此类推。

5.条件代码

由于您需要为每件服装 ( $swapvar) 设置条件以响应每个地区 ( $\global\region\regioncheck),因此将使用条件代码。一键谷歌就可以找到基本的内容。由于我们要采用最简单的形式,因此您需要知道的单词只有if, endif(没有空格)。对于每一个if,都会有一个endif,在这两者之间,我们将采取行动。

您的代码将具有如下逻辑

1
2
3
4
5
6
7
8
9
if current region is A
turn outfit to a
endif

if current region is B
turn outfit to b
endif

and so on for every region you want outfit change at.

6.将服装分配给特定区域

打开merge.ini并向下滚动到 [当前] 部分的末尾。将您的代码添加到那里。

您使用的代码如下

1
2
3
if $\global\region\regioncheck == 1
$swapvar = 2
endif

这段代码的含义是,如果变量$\global\region\regioncheck返回的值等于(symbol ==) 1(对应于 开头写入的区域Region.ini),则角色服装变量将更改为 2(对应于合并中带有 2 的文件夹中的服装)模组文件夹)。您可以将数字 1 和 2 更改为您想要的任何数字,只要该$\global\region\regioncheck值在开头指定的范围内Region.ini,并且$swapvar该值不超出您分配给合并 mod 文件夹中子文件夹的数字。对于您想要更换服装的每个区域,请重复该代码。如果您没有特定的服装可供更换,您可以跳过某个区域。

示例代码如下

1
2
3
4
5
6
7
8
9
if $\global\region\regioncheck == 1
$swapvar = 1
endif
if $\global\region\regioncheck == 3
$swapvar = 3
endif
if $\global\region\regioncheck == 5
$swapvar = 2
endif

或者你可以将其简化为

1
$swapvar = $\global\region\regioncheck

这会将服装分配给与区域编号相同的编号。只要文件夹中的服装编号与地区编号相同,此操作就有效。

您可以考虑删除文件中的按键检测代码,merge.ini因为该代码不需要它即可工作。它通常位于该[Present]部分上方,看起来与此类似:

1
2
3
4
5
[KeySwap]
key = y
condition = $active == 1
type = cycle
$swapver = 0, 1, 2, 3, 4, 5

代码的特点

使用上面的代码后,将得到下面的效果

  1. 当您进入指定服装的地区时,您的服装将更改为该指定服装。留在该地区时您将无法切换服装
  2. 当您进入没有指定服装的地区时,您的服装将与您之前所在地区的服装保持一致。留在该地区时您将能够切换服装