找回密码
 点一下
查看: 6575|回复: 32

以前的致命一击做法真是弱爆了!——最简单的纯数据编辑器版通用致命一击的实现。

[复制链接]
发表于 2011-3-5 22:40:44 | 显示全部楼层 |阅读模式
发现一个以前一直都忽略了的问题~~


以前大家在讨论如何实现纯数据编辑器版本的致命一击时都做过测试,当伤害反应的响应位置在攻击方时,调整伤害倍率是无效的。

因此一致认为无法通过攻击方伤害响应来完成致命一击。虽然攻击方响应伤害的时候可以 引发效果,但是以前都会认为这时候既然都已经开始伤害响应了,再给目标加一个下一次伤害倍增的buff显然是毫无意义了,因为只能使下一次伤害增加一倍。

所以当时完全放弃了这条思路,都没去试一下就认定不行,于是转而去寻求那些麻烦而复杂的方法,唉。


但实际上就算直到这时候才附加buff,依然还是可以对本次伤害进行响应。这一点完全不符合触发器的伤害响应原理。看来数据编辑器的内部机制果然是非常神奇啊。



无论如何,我以前做的那个致命一击根本就是白花功夫,这次只需要两个buff一个效果就能解决:

一个攻击方的伤害响应,一定几率响应自己对敌人造成的伤害,然后发动添加buff效果来把“下一次伤害增加一倍”的buff附加给对方。

结束。

至于“下一次受到的伤害增加一倍的buff”其实就是伤害响应次数(Charge)为1的buff,所以只受到一次伤害就会消失。

实现过程简单地无法形容。但是光要想到这点竟然花了近一年时间…………


而且不同的致命一击buff还能叠加,我这个演示里机枪兵身上就有一个30%致命一击buff和一个60%致命一击,大家可以看出实际打出的致命几率是两者独立叠加的产物。


而高阶圣殿武士有30%几率的致命一击,所以灵能风暴每次伤害都有独立的致命一击几率。


演示中注册了全局伤害事件,这样可以看出每次伤害造成的伤害值。不过由于灵能风暴的伤害过于频繁,所以大家最好不要使用触发器debug窗口模式进行测试。因为开着脚本debug窗口的情况下,触发事件过于频繁会很卡的。
Screenshot2011-03-05 22_35_29.jpg
Screenshot2011-03-05 22_36_58.jpg
Screenshot2011-03-05 22_38_02.jpg

DataDrivenCrit.SC2Map

17 KB, 下载次数: 244

 楼主| 发表于 2011-3-5 22:43:26 | 显示全部楼层
http://bbs.islga.org/read-htm-tid-48199.html
这帖子可以废掉了。 GAx3 Mod里的致命一击将采用本贴的法子来实现。
回复

使用道具 举报

发表于 2011-3-5 22:53:03 | 显示全部楼层
攻击者加的自身Buff,在本次攻击中就会产生效果?这个还真没考虑到,很有趣~
如此的话,确实非常简单的说。

另一个关键点则是,行为不仅仅可以通过持续时间来消耗掉,也可以用Charge的说。
回复

使用道具 举报

 楼主| 发表于 2011-3-5 22:55:42 | 显示全部楼层
我用的就是charge啊,用持续时间的话会不准的,因为可能有一次性的多个伤害。

另外原理不是你说的那样。我说的是攻击者响应伤害的时候给被攻击者加buff,受到的伤害增加一倍。给攻击者自身加buff是没用的,因为当次伤害效果的值在根效果创建的时候就已经被确定了。这时候已经改不了了。
回复

使用道具 举报

发表于 2011-3-5 23:00:51 | 显示全部楼层
真标题:
你是何时产生了BUFF要在下一次才能生效的错觉
回复

使用道具 举报

发表于 2011-3-5 23:01:28 | 显示全部楼层
哦呢~了解了呢~
但是这样岂不是成了“被”爆击了~那么会不会出现以下状况:
单位A给单位C加了一个可被爆击行为,
但是同时单位C被同时被单位B击中,而消耗掉了这个被爆击行为呢?


啊啊啊啊~头晕~不想了 干活先~
回复

使用道具 举报

 楼主| 发表于 2011-3-5 23:04:10 | 显示全部楼层
这不可能啊。因为两个伤害是不会同时处理的,必然是队列式地先处理一个再处理另一个。

因为附加buff的时机本来就已经是伤害响应时了。附加的那个buff响应的是同一个伤害。中间可不会有其它伤害插入呢。
回复

使用道具 举报

 楼主| 发表于 2011-3-5 23:09:00 | 显示全部楼层
引用第4楼multic于2011-03-05 23:00发表的  :
真标题:
你是何时产生了BUFF要在下一次才能生效的错觉

这里不只是buff是不是下一次才能生效的问题。而是同一个伤害竟然能连续响应2次,一次是在攻击者身上的buff上响应,第二次是攻击者身上的buff在受害者身上所创建的新buff。所以很神奇呢。
回复

使用道具 举报

发表于 2011-3-5 23:33:47 | 显示全部楼层
连续响应两次是什么状况?
回复

使用道具 举报

发表于 2011-3-5 23:53:08 | 显示全部楼层
这让我想起了魔兽3中的腐蚀之球,到底是伤害后减甲还是减甲后伤害呢,一直有这个懒得去验证的困惑……看起来应该是一样的道理吧
回复

使用道具 举报

发表于 2011-3-6 01:38:01 | 显示全部楼层
另附好消息:增伤的瞬时buff可以被event unit take damage捕捉到
也就是说触发器也可以响应crit事件,如跳暴击数字啥的
回复

使用道具 举报

发表于 2011-3-6 02:07:44 | 显示全部楼层
请问是否可以考虑直接使用一个伤害效果 效果的旗标设置为击杀 效果的概率控制在所需的范围?
temp.png
回复

使用道具 举报

 楼主| 发表于 2011-3-6 02:16:45 | 显示全部楼层
哦~~我这里说的致命一击不是指一招秒了对方~~

而是一定几率2倍伤害~~又称作暴击的东西~~
回复

使用道具 举报

 楼主| 发表于 2011-3-6 02:20:32 | 显示全部楼层
引用第10楼za12567于2011-03-06 01:38发表的  :
另附好消息:增伤的瞬时buff可以被event unit take damage捕捉到
也就是说触发器也可以响应crit事件,如跳暴击数字啥的

这个我清楚,只是这不是这个演示的必要步骤而已。如果写一大段如何捕捉暴击的方法,这文的重心就偏掉了。

而且其实这个是不大准的,对于低频率的伤害还没什么问题,不过你可以试试看扔灵能风暴。

由于触发器是在伤害造成后才抛出事件,和buff附加和响应的时机不大一样。所以如果有无间隔的队列伤害的话就会出现没捕捉到buff的情况了。
回复

使用道具 举报

 楼主| 发表于 2011-3-6 02:31:01 | 显示全部楼层
还有一点是同样由于延迟,致死的那一击是肯定检测不到buff的。因为当事件抛出时单位已经死了,buff也就立刻被删除了。
回复

使用道具 举报

发表于 2011-3-6 10:44:31 | 显示全部楼层
囧……


编辑器原来是这样的……改地图去……
回复

使用道具 举报

 楼主| 发表于 2011-3-6 12:32:18 | 显示全部楼层
一会儿发个致命飘字的演示。
回复

使用道具 举报

发表于 2011-3-6 13:38:04 | 显示全部楼层
哈~這樣的確很有趣
但是如果這個BUFF直接掛在單位上的話。
那它不論是武器還是技能造成的傷害都會出現“暴擊”效果。
如過我單單只是把BUFF掛在武器上,只在武器開火時才把“被暴擊” 的BUFF仍到目標上去那技能的傷害就不會產生暴擊了。




   
致命一擊.SC2Map (17 KB, 下载次数: 27)
回复

使用道具 举报

 楼主| 发表于 2011-3-6 13:49:39 | 显示全部楼层
因为你加的时机不对~~如果是要在攻击时附加要用我以前那个演示~~


但是这里完全用不着区分武器和技能~~

最简单的方法就是~~

只钩上近战\\远程\\溅射三种伤害响应就可以了~~反正只要你做的技能伤害类型都是法术就OK~~
回复

使用道具 举报

发表于 2011-3-6 14:35:15 | 显示全部楼层
哦..
腦子漿糊了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-8-8 03:16 , Processed in 1.200886 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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