快快登录说出你的故事吧~!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 K大叔 于 2022-1-8 00:43 编辑
系列课程索引:
如何编写Zerbu's Mod Constructor(V4)脚本系列课程(一)——函数思维、对话控件
如何编写Zerbu's Mod Constructor(V4)脚本系列课程(二)——流程可视化
如何编写Zerbu's Mod Constructor(V4)脚本系列课程(三)——条件判断、广播控件
如何编写Zerbu's MOD Constructor(V4)脚本系列课程(四)——变量/数组Commodity
==========================================================================================
本帖介绍可以当变量/数组用的Commodity(Statistic)
我目前熟悉的是Commodity,Statistic还没具体用过,Statistic我猜可能是简化版只有变量作用的Commodity。在MC4中,其他组件对Commodity/Statistic进行的各种操作命名,会把Commodity/Statistic统一叫做Statistic。
Commodity原本的用途应该是实现程度有强弱区分的情绪BUFF: 比方说我们搞个吃货MOD,拥有吃货特征的小人,吃饭就能增加开心BUFF,开心BUFF按程度分小开心、中开心、大开心、超级大开心,那现在吃一顿,Commodity+1,获得了小开心BUFF,短时间内再吃一顿,Commodity再+1,变成中开心BUFF……,长时间不吃,Commodity衰减,情绪又下降; 这个需求用Commodity实现就非常容易。 不过Commodity不只是能决定BUFF,还能执行LOOT,所以继续发掘可以实现不少事情。
下边详细讲解: 你可以首先把Commodity理解成一个变量,它当下有一个唯一的取值,可以通过脚本进行增减和赋值; 如何增减和赋值我们后边说,先看看Commodity本身有什么讲究:
Commodity中的灵魂组件States: 如果说Commodity是变量,那States可以理解为,以Commodity为索引的数组; 在上图的示例中,我们对Commodity_test1进行了定义,添加了0、1、2、5这几个数值锚点,意思是,当Commodity_test1取值进入到对应区间的时候,将触发相应的结果; 注意,我们没有定义3、4,当Commodity_test1从2~4之外的数值变为2~4时,将触发锚点2对应的结果,只在2~4这几个数值内变化,不会额外触发新效果; 接下来我们看锚点2的设定: Value:默认是0,改成你要设定的锚点值,示例这里就是2; Buff:当Commodity的数值处于本区间时,展示的Buff。注意,这里填入的Buff,自身的Duration(持续时间)失效,通过这个Buff去执行Loot也不是很灵,所以只适合简单的情绪展示型Buff,如果你希望实现更特殊的效果、可以通过下边的Loot来调用。 Loot:当Commodity的数值从别的锚点区间落入到本区间时,触发执行。所以像上图示例中的情况,Commodity_test1从1变成3,会执行锚点2的Loot,从2变成3,不会执行Loot。
Commodity的其他常用组件说明: Decay Rate:Commodity的数值随游戏时间每分钟衰减的数量,默认是1,就是每分钟会默认衰减1,如果你不希望随时间自动衰减,可以设为0; Initial Value:Commodity被添加时,初始化的缺省数值,如果添加Commodity的脚本本身有额外定义Commodity的值,就以添加脚本为主。 Is Permanent:如果不添加这个组件,Commodity的值为0时,将被自动移除,添加了这个组件就不会被移除; Max Value Override:设定这个Commodity的最大值
Commodity的数值调整:
你主要可以在Loot的StatisticActions组件分类中,添加(并初始化)、删除Commodity/Statistic,并对其数值进行调整: 标*号的我没用过,作用是猜测,不保证有没有坑。其中Commodity的Category(类别)应该可以在Commodity的Special Cases->Category中进行定义。
基于Commodity/Statistic的条件判断:
在Test Condition Set中也有根据Commodity/Statistic取值大小的判断
小结: 以上介绍了Commodity/Statistic的结构定义、数值调整、数值判定,结合起来可以实现简易的变量、数组等功能,更多的可能等你来创造!!
==========================================================================================
关于SIMS的功能脚本,本人也还在持续学习中,有志同道合的小伙伴可以加我的 QQ:231726237 ,一起学习、一起讨论、有机会一起合作~~ ==========================================================================================
|