2.2.19版本触发器新增的流程特质
2023/10/13227 浏览综合
1. 字符串功能
这个功能类似计数器,不同的是它设置字符为内容,取出内容一样使用[字符串名称]这个符号。
1.1 字符串名:和计数器不能重名(优先引用计数器)。
1.2 设置为:可以使用任意字符,但:[]不会被解析。
举例:设置字符串B="[A]0"(引号内为填入方框的内容,不包含引号,下同),此时B直接获得这四个符号作为其值,而不会管A是什么。(重要!下面会继续说)
引用为空时,这里按计数器同样处理,得到字符"0"。因此,想要给字符串设置空值,需要设置为一个不会被显示的值,例如"<b></b>"。
1.3 使用字符串:可以使用另一个字符串名,获得其内容。
举例:设置字符串A="张三",设置字符串B使用字符串"A",则B得到"张三”。
这个功能可以引用计数器。设置计数器A=1,设置字符串B使用字符串"A",则B得到"1"。
引用既不是计数器也不是字符串的空符号时,默认按计数器处理,得到字符"0"。
2. 嵌套解析显示
事情开始有意思起来了。
令字符串A=“B",字符串B=”张三",显示"[[A]]",得到结果"张三"。这里首先解析"[A]"得到"B",再次解析"[B]"得到"张三"。
继续上面的话题,那么字符串包含括号时会显示什么呢?
令字符串A="[B]",字符串B=”张三",显示"[A]"。首先解析"[A]"为"[B]"(这个括号来源于A的内容),再次解析"[B]"得到张三,显示为"张三"。
令字符串A="[A]",显示"[A]",得到"[A]"。看起来没什么问题?
我们令字符串A="[A]1",显示"[A]",得到什么呢?

这个解释是这样的。首先解析"[A]"得到"[A]1",然后我们又发现了一个"[A]",继续解析为"[A]1"1,依此类推无限下去。当然,实际操作不会无限,因为使用[]解析的上限为100次。仔细数一下,我们得到了[A]后面跟着100个1,说明解析了100次。
由于这个特性,我们无法连接字符串,这是一件麻烦的事,但反过来想,我们输出包含[]的字符串信息的时候,始终都能得到最新的实时消息。
3. 触发器|计数器|字符串名支持解析使用
最重量级的改动来了。
3.1 令字符串A="C",计数器B=1。令计数器“[A][B]"=2,将会使计数器"C1"=2。字符串设置可以类推。
然后我们触发"触发器[[A][B]]",结果是"触发器C1"被触发。
这个特性使我们能在运行中动态控制整个触发的流程和参数。
换句话说,这是指针——这个相当高级的特质。倘若将触发器看成函数,计数器和字符串看成变量,我们突然拥有了一整套高级语言的基础语句。
3.2 这个特质最常用的方式是用来实现数组,通过计数器名[A]-[B]的形式,还可以引用多维数组。
我们预先设定单位1="士兵",单位2="弓手",随后我们可以在显示中通过[单位[单位编号]]来显示出单位编号指定的名称,进一步,我们通过调用"生成[单位[单位编号]]"触发器,实现"生成士兵"和"生成弓手"两个触发器选择调用。
再进一步,我们每次击杀士兵,令击杀数1增加1,每次击杀弓手,令击杀数2增加1,那么总的击杀数是多少呢?
我们设置A=1,总击杀数=0,然后执行以下触发器一次:
条件:A<=2
总击杀数 增加 击杀数[A]
A 增加 1
触发 自身
执行后就得到了所需要的和,看看是不是和这个代码结构很像?
let Sum = 0;
for (let A = 1; A <= 2; A++) Sum += Item[A];
这里的2可以替换成20,200……只要你有那么多的数据来源,你就可以一句话把他处理掉。
3.3 单位标签
单位的标签现在支持方括号格式的解析了。
例如,给你的大法师添加标签"击杀0"
随后,每次大法师击杀时,执行这一段:
当A>=0时:
设置A=99,B=100
对带有标签"击杀[A]"的大法师,赋予标签"击杀[B]",移除标签"击杀[A]"
A减少1,B减少1
触发 自身
你的大法师标签就会跟着击杀数与时俱进了。这有什么用呢?当大法师带有标签"击杀50"的时候,你可以跳出来播放一段对话,恭喜你击杀了50个敌人……
当然,更多的用法需要制图大佬们继续探索。
3.4 一些缺陷
目前,触发条件的判断中计数器名称不会被解析。倘若你的名称含有[],那么这个计数器会因为没有被定义(也没法被定义),而得到0的结果,自然条件判断也就谈不上了。