找回密码
 点一下
楼主: 东方油瓶

若频繁使用数据模板是否会导致延迟或卡顿?

[复制链接]
发表于 2016-12-20 07:12:19 | 显示全部楼层
不管是触发器还是数据。执行时都没有任何延迟。

都过了这么多年了怎么还有这种谬论。


这里的原因仅仅是因为触发器的事件本来就是在当前周期内所有效果都执行完以后才开始响应的而已。不同步的是事件而不是动作。简单来说,就算一个效果被执行,也不会直接去发出“效果被执行”的事件,而是等这个周期的效果都执行完以后再批量发送。

执行效果A
执行效果B
执行效果C
引发效果A被执行事件
引发效果B被执行事件
引发效果B被执行事件

顺序和直觉上不同,但中间是没有任何延迟的。


另外,想要完全由脚本控制伤害的话太简单了,直接全部用buff吸收掉,然后用触发器来捕捉伤害,进行你所需要的计算,然后用触发器造成伤害即可。

点评

这样的话会造成两次伤害....怎么说,可能出于懒。 用起来可能会遇到一些毛病。 避免错误响应,很多伤害事件要加入特殊判断,所以....并不是很可取啊。... 个人习惯个人习惯,或者我没有正确理解头目的意思  详情 回复 发表于 2016-12-20 08:44
大概头目就是这个意思,我表述的有问题。 将我原话中的 时间或者延迟 ,变成顺序关系,应该就没毛病了,主要强调的是一个顺序问题。  详情 回复 发表于 2016-12-20 08:42
回复

使用道具 举报

 楼主| 发表于 2016-12-20 08:42:36 | 显示全部楼层
麦德三世 发表于 2016-12-20 07:12
不管是触发器还是数据。执行时都没有任何延迟。

都过了这么多年了怎么还有这种谬论。

大概头目就是这个意思,我表述的有问题。

将我原话中的 时间或者延迟 ,变成顺序关系,应该就没毛病了,主要强调的是一个顺序问题。
回复

使用道具 举报

 楼主| 发表于 2016-12-20 08:44:43 | 显示全部楼层
麦德三世 发表于 2016-12-20 07:12
不管是触发器还是数据。执行时都没有任何延迟。

都过了这么多年了怎么还有这种谬论。

这样的话会造成两次伤害....怎么说,可能出于懒。

用起来可能会遇到一些毛病。

避免错误响应,很多伤害事件要加入特殊判断,所以....并不是很可取啊。...

个人习惯个人习惯,或者我没有正确理解头目的意思吧。

点评

第一次听到明明自己了解那么少却还敢说我的方案不可取的。  详情 回复 发表于 2016-12-20 18:12
回复

使用道具 举报

发表于 2016-12-20 18:12:57 | 显示全部楼层
东方油瓶 发表于 2016-12-20 08:44
这样的话会造成两次伤害....怎么说,可能出于懒。

用起来可能会遇到一些毛病。

第一次听到明明自己了解那么少却还说我的方案不可取的。
回复

使用道具 举报

发表于 2016-12-20 18:38:14 | 显示全部楼层
这有个最简单的演示,地图里所有单位受到的伤害全部都会被抹除,然后变成用触发器制造双倍的,伤害类型变成近战,计算2倍护甲。

这只是一个最简单的例子,实际可以做出各种各样的伤害公式来。而且这只是千百种实现方法中之一而已。

TriggerDamage.SC2Map

12.79 KB, 下载次数: 2

点评

所有的实际伤害响应,行为、触发器。 都要加入=triggerdamage。 而且行为伤害响应不能判断伤害的效果类型了,因为所有的实际伤害效果都是一个模板。 那相关的动作都得使用触发器完成。 指定的"伤害效果类型"  详情 回复 发表于 2016-12-21 07:46
回复

使用道具 举报

 楼主| 发表于 2016-12-21 07:46:55 | 显示全部楼层
麦德三世 发表于 2016-12-20 18:38
这有个最简单的演示,地图里所有单位受到的伤害全部都会被抹除,然后变成用触发器制造双倍的,伤害类型变成 ...

所有的实际伤害响应,行为、触发器。
都要加入=triggerdamage。

而且行为伤害响应不能判断伤害的效果类型了,因为所有的实际伤害效果都是一个模板。
那相关的动作都得使用触发器完成。

指定的"伤害效果类型",全部要使用触发器判定。

-假设1-
在单位受到X技能法术伤害时追加一次Y技能法术伤害,Y技能法术伤害不能追加本身造成的法术伤害。

这样的效果,如何用行为响应完成呢?
必须使用触发器吧。

-假设2-
我需要捕获单位的某个伤害效果造成的伤害量,并进行累计计算,计算单位某个技能在游戏进程中造成的总伤害。

这个时候,可以用这种做法吧——“单位使用效果- 触发效果量”
如果使用以上这种做法,首先必须要用触发器,并且必须在单位造成伤害的触发器下面添加函数判定。

为什么呢,假设有一个行为:单位受到的法术伤害降低 20%。
做法使用行为响应,那这个时候由于真实造成的法术伤害是模板效果造成的。
我并不能捕获,单位的这一效果类型造成的实际伤害(因为已经被抹去了)
那么就只能在造成伤害时进行修改,或者在造成伤害时添加相关的判定。

所有的,有关于单位受到伤害的触发器and行为响应,都要为这样一个模板效果添加判定。
并且所有的伤害判定,在最开始时的事件都会变成双倍的份。

可以做出伤害系统的方式的确很多,但是伤害有时候不止是需要完成简单的 修改伤害量
还有伤害效果的ID本身,就是一个可以应用的数据啊。

所以我认为并不可取,如果有理解错误,头目可以指出。
回复

使用道具 举报

发表于 2016-12-21 11:32:41 | 显示全部楼层
都瞎扯什么啊。你到底看过这个演示没有?



通篇的“不能”,“不行”。自己不去多研究一下就来乱下断言。我那个触发器里存在任何重复触发吗?我有加伤害效果不是xxx的触发器条件吗?

而且我几时有说过“所有的buff都要做这个处理”的了?

至于“如何获取id”?难道你觉得只排除同一个效果id的伤害就没法用触发器做出不同id的伤害效果了吗?


看一下这个例子,然后再好好想一想吧。
http://bbs.islga.org/read-htm-tid-2449995-page-1-fpage-1.html




其它的实现方案还多的是,比如你觉得一个用触发器完全控制伤害的系统会无法知道目标单位身上有些什么buff,有哪些buff可以吸收伤害,会吸收哪类伤害,以及还能吸收多少这些数据?


点评

这个演示很简单, 将原来的伤害量抹去,然后使用模板效果造成伤害。 那不是造成两次伤害是什么? 那不是所有的相关判定都要加上这两次伤害的额外判定? 哪次是真的伤害,哪次不是,你都将原来实际效果的伤害量抹  详情 回复 发表于 2016-12-21 12:42
回复

使用道具 举报

 楼主| 发表于 2016-12-21 12:42:13 | 显示全部楼层
麦德三世 发表于 2016-12-21 11:32
都瞎扯什么啊。你到底看过这个演示没有?

这个演示很简单, 将原来的伤害量抹去,然后使用模板效果造成伤害。
那不是造成两次伤害是什么?
那不是所有的相关判定都要加上这两次伤害的额外判定?
哪次是真的伤害,哪次不是,你都将原来实际效果的伤害量抹去了,怎么能通过效果链来获取呢真是奇怪了。造成实际伤害的只剩下模板效果了,但是模板效果怎么添加链?模板效果怎么判断是由哪个实际效果引发的?那是不是都要写在触发器里判断?

如果是这样的话我为什么不所有效果都直接自己用触发器来创建呢?
还要删除一个原来的,再添加一个后来的,然后所有的单位受到伤害效果都要将假效果的给抹去。

操作这么复杂有什么可取性?功能性强大了?还是效率高了?
效率不高,功能性强大,操作复杂。
那这个演示的思路只完成了一点:功能性强大。
功能性强大的做法太多了吧,实际做出来游戏卡不卡能不能用不考虑么?

我通篇根本没有一个字是什么 "不行""不能",只是在罗列了实际情况后最后给出一个结果:不可取。

怎么能说我是在瞎扯呢,不去研究,一下就来乱下断言这种话怎么说的这么随意呢?
回复

使用道具 举报

发表于 2016-12-21 12:49:41 | 显示全部楼层
少年,看看你自己放在第一页那张图片。然后再睁眼跟我说“效率”和“复杂”两词儿怎么写。

然后么,对于态度歪成你这样的家伙,我也不打算多说什么的。该提示你的都写在上面了,只是零散了点。要是你肯动点脑经而不是一味地乱下断言就能知道如何正确地整合它们。


当然你也可以继选择坐井观天,只不过我不会再理会你了。

点评

我的言语的确偏激,思想也的确偏激。 但起码比那些阿谀奉承拍马之流要好,我还不能理解的东西我就是不理解。 我不会心里不理解然后嘴巴上说头目好厉害啊。 希望头目可以明白这个意思。 以后如果看明白了  详情 回复 发表于 2016-12-21 12:53
回复

使用道具 举报

 楼主| 发表于 2016-12-21 12:53:27 | 显示全部楼层
麦德三世 发表于 2016-12-21 12:49
少年,看看你自己放在第一页那张图片。然后再睁眼跟我说“效率”和“复杂”两词儿怎么写。

然后么,对于 ...

我的言语的确偏激,思想也的确偏激。

但起码比那些阿谀奉承拍马之流要好,我还不能理解的东西我就是不理解。

我不会心里不理解然后嘴巴上说头目好厉害啊。

希望头目可以明白这个意思。

以后如果看明白了,我自然会发帖道歉,此事到此为止,头目辛苦了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-23 17:56 , Processed in 0.195431 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表