触发器优化技巧 分发
條紋內褲傳奇
编辑于 2024年08月11日 11:02

通常一个T作者在做技能时,会有以下2种情况。

第一种情况就是预设触发器直接捕捉技能事件,条件中判断技能,动作里执行技能效果。

第二种情况就是在玩家选择英雄后,动态注册技能触发器,在动作中用if判断技能和执行技能效果。

第一种方法会比第二种方法容易无必要的占用资源,如果没有选择拥有这个技能的英雄,但触发器一直存在并且被触发。

第二种会比第一种不直观,因为逆天触发器动态注册基本上是在一条触发器中完成好几个技能,电脑差一点的话,看这个触发器和修改都是不流畅的。

cut-off

如果只用一个触发器,自己进行分发,会更加利于管理

用逆天自定义值将触发器绑定在技能上,触发器动作中根据技能执行对应触发器,一个触发器就可以搞定所有技能的发动技能效果。

如果不写条件则可以直接用运行触发器-无视条件

一个普通的群锤

一个大范围多次的雷霆一击

cut-off

让触发器看起来变得简洁了,一个触发器对应一个技能效果,运行效率增加了一些,这对大部分人来说应该够了。

cut-off

如果你的技能效果都是模拟的,那么可以通过全局变量将事件信息掌握在自己手里,这样就可以通过修改全局变量来修改技能释放目标,技能释放来源等等来达到一些目的。

因为要避免事件数据插队,所以用全局数组变量传参,例如技能a效果中途触发了一些效果,导致技能b发动了,这个时候是先完整的执行完技能b,才继续把技能a效果执行完,如果一个单一的全局变量,后续获取到的数据就被覆盖了,所以运行触发器前StackTop+1,运行结束StackTop-1,获取时用变量[StackTop],每个事件数据互不干扰。

这里搞了个技能,大概就是被联结的单位受到指向性技能时,技能释放目标会被修改为联结的来源单位。

可以看到在执行触发器之前,判断了一下联结来源状态,如果有就修改技能释放目标。

如果以之前的做法,需要在每个触发器前面if来判断是否存在这个状态,然后目标效果改成联结来源,纯纯的苦力活需要大量复制粘贴,改错了自己都不知道。

需要注意的是,这种方法仅适用于所有技能都自己模拟的情况,如果有技能是物编效果的,还是直接用上面简单的触发器分发就够了。

然后还可以通过传递参数加运行触发器来直接调用某个技能

普攻时强制发动雷霆一击效果,避免了再搞个马甲或者来一坨重复维护性差的一大串粘贴。

cut-off

如果是有使用原版物编效果的,就只用简单的进行触发器分发就够了,如果想要更进一步,技能效果都模拟之类的,可以试试全局变量传参自己掌握事件信息。

可能会有人会说,做到这个地步,我还用什么触发器。

我觉得是对的,纯触发器局限性还是有点的。

但是不写代码的理由有很多,懒得学,不想看引个利息,太难了学不会各种理由。

本来没有后半段的计划,只是想讲一下简单的触发器分发,因为根据我所了解,大部分触发器作者都是原版技能和模拟混着来的,后半段部分其实没什么鸟用。

写完感觉确实鸟用都没有了,不过写都写了就这样吧。

测试地图:

链接:https://pan.baidu.com/s/14pcaqEpdZRbsvu5slyzxLQ?pwd=ycg5 

提取码:ycg5

cut-off