查看: 1219|回复: 6
收起左侧

[教程] 如何编写Zerbu's Mod Constructor(V4)脚本系列课程(四)——变量/数组Commodity

[复制链接]

发表于 2022-1-8 00:41:12 | 显示全部楼层 |阅读模式

快快登录说出你的故事吧~!

您需要 登录 才可以下载或查看,没有帐号?立即注册

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。
image.png

Commodity原本的用途应该是实现程度有强弱区分的情绪BUFF:
比方说我们搞个吃货MOD,拥有吃货特征的小人,吃饭就能增加开心BUFF,开心BUFF按程度分小开心、中开心、大开心、超级大开心,那现在吃一顿,Commodity+1,获得了小开心BUFF,短时间内再吃一顿,Commodity再+1,变成中开心BUFF……,长时间不吃,Commodity衰减,情绪又下降;
这个需求用Commodity实现就非常容易。
不过Commodity不只是能决定BUFF,还能执行LOOT,所以继续发掘可以实现不少事情。

下边详细讲解:
你可以首先把Commodity理解成一个变量,它当下有一个唯一的取值,可以通过脚本进行增减和赋值;
如何增减和赋值我们后边说,先看看Commodity本身有什么讲究:


Commodity中的灵魂组件States:
图片15.png
f1.png
如果说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的其他常用组件说明:
图片16.png
Decay Rate:Commodity的数值随游戏时间每分钟衰减的数量,默认是1,就是每分钟会默认衰减1,如果你不希望随时间自动衰减,可以设为0;
Initial Value:Commodity被添加时,初始化的缺省数值,如果添加Commodity的脚本本身有额外定义Commodity的值,就以添加脚本为主。
Is Permanent:如果不添加这个组件,Commodity的值为0时,将被自动移除,添加了这个组件就不会被移除;
Max Value Override:设定这个Commodity的最大值

Commodity的数值调整:

你主要可以在Loot的StatisticActions组件分类中,添加(并初始化)、删除Commodity/Statistic,并对其数值进行调整:
f2.png
标*号的我没用过,作用是猜测,不保证有没有坑。其中Commodity的Category(类别)应该可以在Commodity的Special Cases->Category中进行定义。

基于Commodity/Statistic的条件判断:

在Test Condition Set中也有根据Commodity/Statistic取值大小的判断
图片17.png
f3.png

小结:
以上介绍了Commodity/Statistic的结构定义、数值调整、数值判定,结合起来可以实现简易的变量、数组等功能,更多的可能等你来创造!!

==========================================================================================

关于SIMS的功能脚本,本人也还在持续学习中,有志同道合的小伙伴可以加我的 QQ:231726237 ,一起学习、一起讨论、有机会一起合作~~
==========================================================================================


评分

参与人数 3肥皂 +5 S币 +505 辣条 +9 收起 理由
samysims4 + 5 + 2
songjianyjk + 1 点赞!
北城卧龙 + 5 + 500 + 6 准备见证国内功能作者崛起!

查看全部评分

楼主热帖

共收到 50 菊花
打赏榜
喜久福
共打赏 50 菊花
暂无
捷足先登
暂无
捷足先登
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
版权声明
本站积极遵守中华人民共和国各项法律法规,促进良好社会公共道德,鼓励劳动者劳有所得。
为保护作者和平台的共同利益,在本站发布的原创内容所包含模型、图片、代码等版权归作者和平台共有,平台承诺不将此权利行使于法律行为以外用途。
本站原创作品仅供购买或下载者本人使用,任何平台或个人擅自转载、售卖本站原创作品,本站均保留诉讼权利。
此条款自作品发布起即时生效。

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

发表于 2022-1-8 01:12:02 | 显示全部楼层
准备见证国内功能作者崛起!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2022-1-8 03:29:34 | 显示全部楼层
大佬要是早点发布就好了,我生啃了外网上的英文教程弄的我一知半解的,断断续续啃了好几个月,期间还学了一点studio的代码部分,有些mod的功能我不知道怎么实现就逐步删除部分代码看还是否生效,一步步确定才啃出来想要的功能的代码和逻辑。
最后想问一下,大佬知道如何确定一个互动的数字ID吗。我翻遍了interaction列表也没找到婴儿互动“摇摇”,亦或者我想要和其他mod进行互动,如何知道他们自定义的互动ID呢
收起回复
看来你才是大佬呀,我知道的差不多都掏空了。互动我也是靠猜的,搜关键词,有些互动还不好使,如果是判断是否执行互动的话,也可以尝试用互动的结果BUFF是否存在来实现。有些关键词可以是尝试把游戏切成英文版,看英文是怎么说的,如果是Buff,可以配合作弊MOD查看人物身上的buff内部名称。另外,我和站长近期暗中勾兑想组织个功能性MOD的活动,可以加我Q,到时候搞个小群大家一起交流。
2022-01-10回复

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2022-1-8 11:23:00 | 显示全部楼层
K叔是什么神仙!!我来继续啃教程了!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2022-1-9 11:59:09 手机访问 | 显示全部楼层
先收藏!感谢教程!!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2022-1-28 17:23:01 | 显示全部楼层
前来顶帖
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则