文本标记的应用:物品装备套装效果显示

修改于2023/10/22888 浏览主题教程

前言:

        首先感谢[嗒啦啦4_好耶]群里的各位大佬指点,@小虫@爱死寂寞@灰……(其他大佬不在一一列举),才有了这篇文章。本人小白,教程不足之处还请各位大佬指点,没错指指点点[表情_狗头]
TapTap
TapTap
horizontal linehorizontal line

物品套装效果显示的应用

1. 实现思路

       首先说一下文本标记的用法,文本是可以通过一些代码来改变颜色,加粗,倾斜等操作。比如我把【测试文本】加上颜色代码<#831515:【测试文本】:>,就会改变颜色,游戏中仍然适用。
TapTap
       然后套装的未激活状态其实就是灰色的描述,激活了就是彩色的描述,这些都是可以通过标记代码实现的。
TapTap
TapTap
         那么接下来怎么让这个文本显示在物品信息界面呢?[表情_思考]对没错buff,给 物品加上buff然后让装备把buff信息显示出来就行。在装备的显示信息选项中就有我们需要的。显示提示信息对应的是buff名称,显示词缀提示信息对应的是buff词缀描述
TapTap
TapTap
       所以我们要想实现这个功能也很简单,我们只需要预先准备两个buff(以2件套为例),一个是灰色的未激活套装buff,一个是激活的彩色套装buff。
TapTap
彩色激活
TapTap
灰色未激活
       然后我们只要在写一个穿脱装备的触发,判断下身上套装数量,满足套装数量就给装备加上套装激活的buff,删掉套装未激活的buff,反过来不满足就删掉激活的buff,换上未激活的buff。思路是不是非常简单?[表情_狗头],下面我们来实践。
horizontal linehorizontal line

2. 实践操作(实践是检验真理的唯一标准)

        在上手操作之前我们来思考几个问题。
        第一个问题:判断套装数量我们用if还是Switch?先说结论,推荐用Switch,原因待会大家可以思考一下。[表情_思考]
        第二个问题:穿脱装备是写成一个触发器还是写成两个触发器?[嗒啦啦4_懵]写成一个触发器会有什么问题呢?
方案1:穿脱写成一个触发器
        还是先思考一个问题:以4件套为例,如果我身上的套装数量为2,那么我在穿脱装备的触发中,应该执行什么逻辑?
        A.当然是为装备添加激活buff,删掉未激活buff呀          B.什么也不需要处理。
        那么到底选哪一个呢?
        答案是都有可能。要判断情况。[嗒啦啦4_拒绝]为什么呢?
        举个例子,单位身上已经有了1件套装,现在穿装备时满足套装数量2的条件,当然会执行A
        而如果单位身上是3件套装,脱装备时也同样满足套装数量2的条件,此时应该执行B。因为装备3件套的时候2件套效果肯定激活状态,也就是是已经添加过激活buff了,所以不需要再次添加buff了。
        这一点理解了,那么之前的问题答案就显而易见了,穿脱装备写成2个触发事件单独触发。(一个触发事件也可以,大佬随意[表情_吐舌头])判断套装数量最好是Switch,因为每个套装数量都要有对应的执行逻辑(详情查看触发器部分)。
方案2:穿脱写成2个触发器(以4件套为例)
horizontal linehorizontal line
1. 单位获取物品触发器。(这个应该没有疑问吧)
        首先说下多套套装怎么构筑,很简单,Switch来帮忙。我这里用分类标签做了一个条件限制减少触发。另外又用了分类标签来做套装区分(别学我[嗒啦啦4_坏笑],这里不推荐,如果套装比较多需要很多分类标签),也可以用自定义字符串属性,其他方法我就不再一一赘述(其实是不会[嗒啦啦4_拒绝])。
TapTap
       接下来是遍历装备栏,获取身上的套数数量。建议打包成函数提高效率。
TapTap
       判断套装数量,执行对应的逻辑。这部分应该比较容易理解,物品拾取到背包中,会根据身上的装备数量自动激活对应的套装buff。(这里先留下一个坑,红色框框部分[表情_狗头]
TapTap
horizontal linehorizontal line
2. 丢弃装备触发器。
      这里的逻辑就比较简单了,丢弃就删除所有激活与未激活的buff。
TapTap
horizontal linehorizontal line
3. 穿装备触发器。(重复的部分都尽量打包成函数)
       多套套装的方法与获取逻辑相同。
TapTap
       遍历装备栏,获取装备的套装数量与获取物品触发器中的写法一致,不再展开。
TapTap
TapTap
horizontal linehorizontal line
4. 脱装备触发器。(重复的部分都尽量打包成函数)
       与穿装备的逻辑基本一致。(自己限制身上的套装数量不要超过套装上限)多套的写法。
TapTap
       套装数量,同获取物品,不再展开。
TapTap
       注意修改buff的时候装备栏背包栏都需要执行。
TapTap
TapTap
       好啦,触发部分就完成了,相信大家都能理解,那么下面来填坑。之前在物品获取里留下的坑大家还记得的吧?下面来解释下。因为拾取物品的时候如果是直接穿戴了,那么就会同时触发获取物品穿套装的触发事件,一些逻辑会重复触发,导致显示出错。(问就是无数次试错来的[表情_吐舌头]
       例如,当我身上已经有了1件套装的时候,我再拾取一件套装直接装备而不是先进入背包,就会同时触发获取和穿戴的触发器,那么在获取触发中会给物品添加激活buff,穿装备的触发中又会给物品填加激活buff,那么物品上就会有两个2件套的显示了。
       那么怎么解决呢,改变背包顺序?让拾取的物品优先进入背包而不是装备,可以但又不完全可以,因为如果背包满了,装备栏空的话还是会直接装备。
       那怎么办呢[表情_思考]?也很简单,只要在获取触发的时候加个条件限制,在添加激活buff的时候判断下物品是否装备,如果装备了就不添加buff,没有装备才添加buff。另外4件套效果如果装备了还要额外给套装加上2件套激活buff,因为穿装备的触发中只会添加4件套激活buff。
TapTap
       最后展示下实际效果:
horizontal linehorizontal line

3. 写在最后

        1.该教程只负责套装激活与未激活的显示效果(buff实际就是个空壳),实际的属性加成还请大家偷偷加上。
        2.本文提供的思路也只是临时解决办法,实际效果也不是完美的,比如2件套和4件套的显示顺序是没法控制的,完美的解决方案自己写[表情_狗头]或者等星火官方预制[表情_送花](求求了)。
        3.第一次写教程还有很多不足之处,还请大家多多指点。
        4.最后,再次感谢群里的各位大佬的指导,感谢大家观看,下期再见![TapFamily_赞]
19
26
8