天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟

标题: 【T】伤害事件和逆天 [打印本页]

作者: Seago    时间: 2020-11-2 02:07
标题: 【T】伤害事件和逆天
本篇比较简单,是纯理论分析。一个朋友偶然遇到的问题就总结一下以提醒新手。

做伤害扩展的时候比较容易出现套娃的现象导致死循环,相信大家都知道。所以需要添加一些条件以避免重复触发的情况。
那么加条件有两种方式,1种是直接在触发器的条件中添加,1种是在动作中使用If来添加。一般情况下,两者的执行效果没有什么区别。
本篇教程要说一个特殊情况,和逆天局部混用。

首先说一下两种方式的区别。T中,触发器界面有三个部分,事件,条件,动作。当满足事件时,会先检查条件,如果条件通过,则去执行动作。所以我们很容易得出结论:如果我们将条件写在触发器的条件中,条件不通过,则触发器的动作不会被执行。如果将条件写在触发器的动作中,那么无论这个条件是否满足,都必然需要先执行触发器的动作,然后才会去判断这个条件,进而决定后面的动作是否需要被执行。两者最根本的区别就在于触发器动作这个整体是否执行了

再来看逆天局部的原理。以前的教程中有简单的提过,逆天局部的本质是使用哈希表来存取数据。它以当前触发器的handleId作为主索引,基于此触发器动作的执行次数产生一个次索引。次所引的产生方式是黑盒的,即使用T的作者是不要感知的。

两者结合便可能产生一些问题。以伤害扩展为例。我想做一个溅射伤害。那么通常会以是否为普攻伤害作条件进行区分,避免产生套娃。那么简单的思路就是,任意单位受伤害,如果伤害是普攻伤害,选取XX范围内的XX单位做动作。在这一过程中,可能需要进行一些计算,比如根据攻击力、溅射伤害率等计算实际的伤害值。如果使用逆天局部来记录一些数值的话,有的人会发现,对单位组进行伤害的时候,只有第一个单位被伤害了,后面的单位都无事发生。为什么会出现这样的情况?

通常出现这种情况的原因,是用于区分的条件被写在了动作中,并且触发中使用了逆天局部进行数据的存取。
结合前文的机制分析。假如将条件写在动作中,那么当我们普攻一个单位时,触发了伤害事件,选取单位做动作。伤害第一个单位,再次触发了伤害事件,执行事件的动作。动作中的条件判断这不是普攻,所以结束触发,没有产生套娃。于是接着对第二个单位造成伤害,失败。继续第三个,依然失败……为什么第二个开始会失败?因为伤害第一个单位时又触发了一次伤害事件。前文分析过,逆天局部的次索引是基于当前触发器的动作的执行次数的。因此,虽然在动作中增加了条件判断是否普攻伤害避免了套娃现象,但是这并没有阻止动作本身被执行,所以执行次数增加了,此时次索引被改变了,因此当对后面的单位再造成伤害时,之前记录的逆天局部已经无法获取了。而如果将条件写在触发器的条件中时,则对第一个单位造成伤害,触发伤害事件,触发器的条件检查阶段发现不通过,直接阻止了后续的事情,不会再进入触发器的动作执行阶段,逆天局部的次索引也就没有改变,原来的逆天值也就还可以取到,所以后续的伤害也都能正常进行。



作者: qq200877776    时间: 2020-11-2 02:50
感谢分享~
作者: nkjvxdaf    时间: 2020-11-2 08:07
感谢,学习了
作者: 退隐的老者    时间: 2020-11-2 09:59
让我看看
作者: yishiwangxi    时间: 2020-11-2 10:40
技术贴,感谢大佬分享
作者: 安圣基    时间: 2020-11-2 11:07
有演示图吗
作者: 是我是我    时间: 2020-11-2 12:51

感谢,学习了
作者: thk1992    时间: 2020-11-2 19:45
康康是什么
作者: 三分    时间: 2020-11-3 14:11
感谢分享
作者: 晚秋    时间: 2020-11-3 15:58
感谢分享,学习下
作者: xueyuan1996    时间: 2020-11-3 16:37
看的一脸懵
作者: 沃之文化    时间: 2020-11-3 19:51

感谢,学习了
作者: 大将老龙    时间: 2020-11-3 22:31
感谢分享~
作者: sanyangzhihuo    时间: 2020-12-14 15:39
感谢大佬 谢谢
作者: yo梦    时间: 2020-12-14 23:37
感谢,学习了
作者: 萌新灰尘    时间: 2021-2-20 03:56
感谢学习到了
作者: q313182461    时间: 2021-2-20 08:13
懵逼。。大老牛逼,看不懂。。
作者: kiss220265    时间: 2021-2-22 10:26
谢谢楼主,看一下
作者: 山居客    时间: 2021-3-9 12:05
感谢,学习了
作者: qqwwee147159    时间: 2021-3-17 19:15
受益匪浅 大进步啊我
作者: liou111213    时间: 2021-6-30 13:30
感谢分享~
作者: SKinsomnia    时间: 2021-7-26 16:03
伤害触发用了就卡,不知道什么鬼
作者: 傲月残云    时间: 2021-9-6 09:56
这个原理还是很不错的
作者: 天行无方    时间: 2021-9-6 16:59
感谢分享
作者: 七绪    时间: 2021-10-12 11:01
了解一下。。
作者: qwer4869    时间: 2021-10-22 21:47
学习一下
作者: 瀚海漂流    时间: 2021-10-27 13:02
学习了 看看是什么
作者: xianshi    时间: 2021-11-9 17:59
看看是什么
作者: 牧少皇    时间: 2021-11-15 01:33
膜拜粉少,电个牛子
作者: 今晚不打老虎    时间: 2021-12-5 01:00
张伟伤害头疼呢!!!
作者: 小脑薯胖了胖    时间: 2021-12-17 13:04
继续学习
作者: 1148172801    时间: 2021-12-18 13:08
支持支持!!!!!支持大佬!!!!!
作者: 艾拉吃布丁    时间: 2022-1-21 01:33
学习了!
作者: 斯内克    时间: 2022-5-5 11:04
技术贴,感谢大佬分享
作者: lcszdewv    时间: 2022-7-13 04:59
看看写了什么
作者: 剑云    时间: 2022-11-24 10:49
4644FDHHFJ
作者: 永恒之奕    时间: 2023-1-19 17:16
我来看看
作者: duacroy    时间: 2023-1-27 18:16
谢谢分享,学习一个
作者: 青邶.    时间: 2023-5-11 23:25
学习学习
作者: Acelin    时间: 2023-7-1 09:28
我来瞅瞅
作者: qababfyi    时间: 2024-1-10 19:57
感谢,学习了
作者: eevvok    时间: 2024-2-24 02:59
支持一下,希望天工越来越好
作者: 暗夜の风雨    时间: 2025-11-23 13:26
谢谢大佬分享
作者: GMs2484990328    时间: 2026-1-23 03:19
感谢分享  学习




欢迎光临 天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟 (http://bbs.mvprpg.com/) Powered by Discuz! X3.4