查看: 1097|回复: 2
收起左侧

[教程] 如何编写Zerbu's Mod Constructor(V4)脚本系列课程(三)——条件判断、广播控件

[复制链接]

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

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

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

x
本帖最后由 K大叔 于 2022-1-8 00:46 编辑

系列课程索引:
==========================================================================================

本贴主要介绍条件判断Test Condition Set及其应用思路,然后会顺带说下广播Broadcaster控件的机制。


一、条件判断Test Condition Set
image.png
条件判定的应用非常广泛,能灵活运用是成为高手的关键
添加/删除Buff、执行Loot、对话Social Interaction等过程中都可以进行条件判定
图片5.png 图片6.png 图片7.png
下图是条件判定中常用类别的含义:
f1.png
条件组件中大部分参数项应该是比较好懂的,对游戏比较了解的话,应该会知道意思和如何应用。
这里主要把一些重点概念、坑点做下说明:
1.1首先是“并且”跟“或”的逻辑

先以Buff Test为例:
image.png
这个条件的含义是:当前角色(拥有Buff1 或 Buff2)且 不拥有Buff3 且 不拥有Buff4
Whitelist中列出的多个Buff是“或”的关系,只要拥有其中一个就通过;
Blacklist中列出的多个Buff需要都不可以拥有,条件才通过;
Whitelist和Blacklist之间是“且”的关系,需要Whitelist通过且Blacklist通过,这一项Buff Test才通过。
如果你希望Buff1和Buff2都需要拥有才通过(即“且”的关系),有两种方式:

方式一:

可以添加两个Buff Test,同一个TestCondition Set下多个Component之间是“且”的关系,如下图
image.png

方式二:

你也可以用Merged Test Conditions来实现“且”的关系:
image.png
image.png
其中,Test Condition Set1和Test Condition Set2提前在 图片11.png 中进行添加
Test Condition Set1内容:
image.png
Test Condition Set2内容:
image.png

这两种方式等效,方式二主要是当某些子条件比较通用,可以多次被调用的情况

1.2 Interaction Running Test的坑点
在模拟人生中游玩,几乎就是各种Interaction的组合,通过对角色正在进行的Interaction进行判定,理论上可以实现很多想法。

你可以从这里调用原版游戏中已有的Interaction:
image.png
f3.png
图片8.png
你会发现类别非常丰富。
但是,非常不幸,这里边大部分Interaction Running Test好像都不太好用,至少我在做MOD的过程中没能成功,如果有大佬能找到其中原因,请一定不吝赐教~
所以当你有很好的想法,在Interaction Test中也找到了对应的条件判定,满心欢喜,但发现没有成功触发,那怎么办?
有一些行为可能可以通过其他方式来实现。
比方说你要做个恋爱365天MOD,经过364天的苦心刁难,小人终于迎来了第365天的终极羞羞挑战:“邀请你的ta一起泡三温暖,趁ta不注意,推倒、XXOO……

这个挑战的判定条件是“在大浴缸里嘿咻”,在Interaction Running Test中确实可以找到对应行为判定,如图:
image.png
但是,如前所述,我没有测试成功


不过这个行为其实在游戏中会产生一个独特的结果,就是
f2.png
所以通过Buff Test判断是否拥有这个Buff也可以实现效果,在Game Reference搜索你觉着可能的关键词:
图片9.png
image.png

这里就抛砖引玉,大家可以继续挖掘风骚的实现方式

1.3 Sim info中is NPC的判定反了,我们在第一课里有说过

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



二、广播Broadcaster

image.png
image.png
广播Broadcaster的作用是:广播者每间隔Pulse Frequency的游戏时间,向半径Circle Constraint格子范围内的其他SIMS发送指令,广播者将获得BUFF或执行LOOT
需要注意的点:
  • Broadcaster是通过Buff调用的;
  • 角色1的BUFF1通过Broadcaster广播给角色2添加BUFF2,此时,BUFF2自己的Duration(持续时间)组件不再有效,BUFF2的存亡,取决于BUFF1是否持续对角色2进行广播。我的理解是,假如角色2一直在角色1广播范围内,角色1会每间隔PulseFrequency对角色2进行一次广播,角色2的BUFF2也会获得Pulse Frequency这么长时间的续命,如果这个时候角色2离开了角色1的广播范围,在续命时间结束后,BUFF2就消失了,或者如果角色1的BUFF1被移除,角色2的BUFF2也会相应被移除;
  • 如果你希望让被广播者获得的BUFF走自己的Duration(持续时间),不受广播者BUFF影响,那就通过添加LOOT的方式,让LOOT去调用BUFF;
  • Circle Constraint的数值不可以过大,默认的6格在有些情况不太够用,有些情景下你甚至可能希望全图的SIMS都能被你广播到,但注意这个数值添过大后会导致广播失效,我用过20是可以的,999是失效的;
  • BUFF和LOOT的条件(Test Condition Sets)中,Participant默认留空的情况下,测试的角色主体都是指被广播者,不是广播者;



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

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

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

评分

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

查看全部评分

楼主热帖

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

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

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

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

回复 支持 反对

使用道具 举报

发表于 2022-1-9 11:58:14 手机访问 | 显示全部楼层
超级感谢!!
我要说一句

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

回复 支持 反对

使用道具 举报

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

本版积分规则