军团战棋英雄时代触发器攻略八:计数器的加减乘除
军团战棋英雄时代触发器攻略八:计数器的加减乘除如下:
大家好,我是背婆玩。
本文旨意在提供一些由浅入深实现方法,希望能够抛砖引玉,能够让多数喜欢作图的玩家获取一些经验,也不负我投入的时间。另外,作者水平有限,仅能简述一下触发器的功能,如有遗漏和错误,烦请见谅。攻略主贴:
正文(待补充图片)—————————————————
最近在研究宠物小精灵的时候,需要用到一些计算。基础篇:加减法和乘法。
1:加减法
比如,分散的概率通过加减,汇聚为总概率,通过总概率作为计数器条件,来分别触发不同的触发器,从而达到多条件影响下,计数器的值→实际触发概率的动态效果。游戏内提供了加减法,不赘述。
2:乘法
乘法其实很好理解,就是某个被乘数A,乘以乘数B,得到积C。公式A*B=C。但是游戏内并没有直接提供,所以只能使用最原始的办法:用加法来实现乘法的效果。
公式:C=(C+B)*A或者C=(C+A)*B
两个公式计算结果一致,计算次数不一致。通过A和B大小来决定使用哪个。比如A=1,B=1000,也就是1*1000,在两个公式里前者只需要计算一次,后者需要计算1000次。以下以前者为例进行设计:
0:三个需要被计算的计数器:被乘数X,和乘数Y,结果Z。这三个是游戏内需要计算的数值,不同场景下这几个计数器不一样,这里是举个例子。
1:三个中间参数计数器:被乘数A,乘数B,积C,名字任意,方便理解就行。不需要单独去设置0。
2:用三个触发器:XY乘法启动触发器,(加法触发器),结果Z输出触发器来实现。()内的触发器可以利旧重复使用。其中:
XY乘法启动触发器:作用有四个,1是把X和Y的值,给到A和B,2是把C的值清零,否则后续再次计算乘法的时候,会吧之前的结果也算上。3是触发加法触发器,也就是驱动乘法计算。4是把计算结果积C给到结果Z。结构如下:
启动略
条件略
效果1:修改计数器,A设置为X;
效果2:修改计数器,B设置为Y;
效果3:修改计数器,C设置为0;
效果4,开关触发器,触发,加法触发器,使用计数器,乘数B
效果5:修改计数器,结果Z,设置为,积C
加法触发器:作用是令积C+被乘数A。结构如下:
启动略
条件略
效果1:修改计数器,积C,增加,使用计数器,被乘数A
结果Z输出触发器:作用是把积C给到结果Z
启动略
条件略
效果1:修改计数器,结果Z,设置为,使用计数器,积C
以上便是触发器用在乘法的结构,十分简单。另外需要做乘法的情景,只需复制上述两个触发器(**乘法启动触发器以及结果*输出触发器)稍微调整内容即可。
需要注意的是,游戏为了杜绝卡死,一次触发触发器的次数限制在550次以内。所以建议A和B如果大于500的时候,分次执行。也可在以上的基础上优化。——————————————————
进阶篇:伪除法
除法有一段时间困惑很久,后面做小精灵的时候发现其实也并不难。但因为计数器数值为整数,所以只能做伪除法,通过计数器1.计数器2计数器3的方式来得到10.33,30.46等效果。
后续要通过这些数字进行计算的话需要移位等操作,非必要不使用。
观察除法结构:
被除数÷除数=商~余数,公式化:
(被除数A—除数B)*C次=商C+余数K
参考乘法的原理,考虑用循环减法来实现:
被除数减去除数,成功相减,则商+1。直到被除数小于除数,商则为小数点前的数字。剩下的被除数为余数,将余数*10,再进行上述过程,得到的商为小数点后1位数字。
拆解一下:
1,当被除数A大于等于除数B时,被除数A-除数B,商C+1,被减后的被除数,当成新的被除数,进入下一轮判断被除数和除数大小。
2,当被除数A小于除数B时,停止。
3,随后输出商C,此时的商C值为正整数,剩下的被除数为余数K,这就解决了小数点前的数字。
4,将商C归0,将余数K设置为被除数A。
5,然后把被除数A*10(即(被除数A+K)*9次),再进行一轮判断:
6,当被除数A大于等于除数B时,被除数A-除数B,商C+1,被减后的被除数,当成新的被除数,进入下一轮判断被除数和除数大小。
7,随后输出商C,此时的商C值为正整数,剩下的被除数为余数,这就解决了小数点后的第一位数字。以此类推,就能把小数点后2位数字,3位数字输出。
以下是2位小数除法触发器的设计
0:输入数设计:输入数:被除数X,除数Y。结果Z0.Z1Z2(Z0为小数点前正整数,Z1为小数点后1位,Z2为小数点后2位)
1:中间参数设计:被除数A,除数B,商C,余数K。
2:触发器设计:XY除法启动触发器,(减法触发器,新余数触发器,余数*9触发器)。()内触发器可复用,以下是触发器架构:
XY除法启动触发器:作用是,1把XY的值分别给到AB,2触发减法触发器,3把商输出给Z0,Z1,Z2等。4,把商设置0。避免历史数据导致计算错误。5,触发新余数触发器。
启动略
条件1,Y大于0(为了避免除数是0)
效果1,修改计数器,A,设置为,使用触发器,X
效果2,修改计数器,B,设置为,使用触发器,Y
效果3,修改计数器,商C,设置为,0
效果4,开关触发器,触发,减法触发器
效果5,修改计数器,Z0,设置为,使用计数器,商C
效果6,开关触发器,触发,新余数触发器
效果7,开关触发器,触发,减法触发器
效果8,修改计数器,Z1,设置为,使用计数器,商C
效果9,开关触发器,触发,新余数触发器
效果10,开关触发器,触发,减法触发器
效果11,修改计数器,Z2,设置为,使用计数器,商C
可以看到678,91011等后续结构是一样的,小数点后每数字+1位,效果+3条。
减法触发器:作用是,1条件判断,2做减法。3触发自身形成循环。
启动略
条件:A大于等于B
效果1,修改计数器,A,减去,使用触发器,B
效果2,开关触发器,触发,减法触发器
新余数触发器:作用是,1是把商设置为0。2是把余数K设置为被除数,3是触发被除数*9触发器(即把被除数*10作为新的被除数)。
启动略
条件略
效果1,修改计数器,商,设置为,0
效果2,修改计数器,K,设置为,使用计数器,A
效果3,开关触发器,触发,被除数*9触发器,9次
被除数*9触发器:作用是,把被除数*9(即计算后的余数*10。)
启动略
条件略
效果1,修改计数器,A,增加,使用触发器,K
这就是伪除法的解决办法。与乘法相比,多的就是一个循环触发自身的触发器。与乘法类似,触发触发器的次数上限是550。所以可以增加一个判断:B*550是否大于A来规避。
后续有机会讲解一下循环触发自身的触发器可以做什么。
以上就是军团战棋英雄时代触发器攻略八:计数器的加减乘除相关内容。