文本标记的应用:物品装备套装效果显示
前言:
首先感谢群里的各位大佬指点,@小虫@爱死寂寞@灰……(其他大佬不在一一列举),才有了这篇文章。本人小白,教程不足之处还请各位大佬指点,没错指指点点。
物品套装效果显示的应用
1. 实现思路
首先说一下文本标记的用法,文本是可以通过一些代码来改变颜色,加粗,倾斜等操作。比如我把【测试文本】加上颜色代码<#831515:【测试文本】:>,就会改变颜色,游戏中仍然适用。
然后套装的未激活状态其实就是灰色的描述,激活了就是彩色的描述,这些都是可以通过标记代码实现的。
那么接下来怎么让这个文本显示在物品信息界面呢?对没错buff,给 物品加上buff然后让装备把buff信息显示出来就行。在装备的显示信息选项中就有我们需要的。显示提示信息对应的是buff名称,显示词缀提示信息对应的是buff词缀描述。
所以我们要想实现这个功能也很简单,我们只需要预先准备两个buff(以2件套为例),一个是灰色的未激活套装buff,一个是激活的彩色套装buff。
然后我们只要在写一个穿脱装备的触发,判断下身上套装数量,满足套装数量就给装备加上套装激活的buff,删掉套装未激活的buff,反过来不满足就删掉激活的buff,换上未激活的buff。思路是不是非常简单?,下面我们来实践。
2. 实践操作(实践是检验真理的唯一标准)
在上手操作之前我们来思考几个问题。
第一个问题:判断套装数量我们用if还是Switch?先说结论,推荐用Switch,原因待会大家可以思考一下。
第二个问题:穿脱装备是写成一个触发器还是写成两个触发器?写成一个触发器会有什么问题呢?
方案1:穿脱写成一个触发器
还是先思考一个问题:以4件套为例,如果我身上的套装数量为2,那么我在穿脱装备的触发中,应该执行什么逻辑?
A.当然是为装备添加激活buff,删掉未激活buff呀 B.什么也不需要处理。
那么到底选哪一个呢?
答案是都有可能。要判断情况。为什么呢?
举个例子,单位身上已经有了1件套装,现在穿装备时满足套装数量2的条件,当然会执行A。
而如果单位身上是3件套装,脱装备时也同样满足套装数量2的条件,此时应该执行B。因为装备3件套的时候2件套效果肯定激活状态,也就是是已经添加过激活buff了,所以不需要再次添加buff了。
这一点理解了,那么之前的问题答案就显而易见了,穿脱装备写成2个触发事件单独触发。(一个触发事件也可以,大佬随意)判断套装数量最好是Switch,因为每个套装数量都要有对应的执行逻辑(详情查看触发器部分)。
方案2:穿脱写成2个触发器(以4件套为例)
1. 单位获取物品触发器。(这个应该没有疑问吧)
首先说下多套套装怎么构筑,很简单,Switch来帮忙。我这里用分类标签做了一个条件限制减少触发。另外又用了分类标签来做套装区分(别学我,这里不推荐,如果套装比较多需要很多分类标签),也可以用自定义字符串属性,其他方法我就不再一一赘述(其实是不会)。
接下来是遍历装备栏,获取身上的套数数量。建议打包成函数提高效率。
判断套装数量,执行对应的逻辑。这部分应该比较容易理解,物品拾取到背包中,会根据身上的装备数量自动激活对应的套装buff。(这里先留下一个坑,红色框框部分)
2. 丢弃装备触发器。
这里的逻辑就比较简单了,丢弃就删除所有激活与未激活的buff。
3. 穿装备触发器。(重复的部分都尽量打包成函数)
多套套装的方法与获取逻辑相同。
遍历装备栏,获取装备的套装数量与获取物品触发器中的写法一致,不再展开。
4. 脱装备触发器。(重复的部分都尽量打包成函数)
与穿装备的逻辑基本一致。(自己限制身上的套装数量不要超过套装上限)多套的写法。
套装数量,同获取物品,不再展开。
注意修改buff的时候装备栏和背包栏都需要执行。
好啦,触发部分就完成了,相信大家都能理解,那么下面来填坑。之前在物品获取里留下的坑大家还记得的吧?下面来解释下。因为拾取物品的时候如果是直接穿戴了,那么就会同时触发获取物品和穿套装的触发事件,一些逻辑会重复触发,导致显示出错。(问就是无数次试错来的)
例如,当我身上已经有了1件套装的时候,我再拾取一件套装直接装备而不是先进入背包,就会同时触发获取和穿戴的触发器,那么在获取触发中会给物品添加激活buff,穿装备的触发中又会给物品填加激活buff,那么物品上就会有两个2件套的显示了。
那么怎么解决呢,改变背包顺序?让拾取的物品优先进入背包而不是装备,可以但又不完全可以,因为如果背包满了,装备栏空的话还是会直接装备。
那怎么办呢?也很简单,只要在获取触发的时候加个条件限制,在添加激活buff的时候判断下物品是否装备,如果装备了就不添加buff,没有装备才添加buff。另外4件套效果如果装备了还要额外给套装加上2件套激活buff,因为穿装备的触发中只会添加4件套激活buff。
最后展示下实际效果:
3. 写在最后
1.该教程只负责套装激活与未激活的显示效果(buff实际就是个空壳),实际的属性加成还请大家偷偷加上。
2.本文提供的思路也只是临时解决办法,实际效果也不是完美的,比如2件套和4件套的显示顺序是没法控制的,完美的解决方案自己写或者等星火官方预制(求求了)。
3.第一次写教程还有很多不足之处,还请大家多多指点。
4.最后,再次感谢群里的各位大佬的指导,感谢大家观看,下期再见!