找回密码
 点一下
查看: 1911|回复: 20

所受伤害的问题!!!

[复制链接]
发表于 2008-6-14 20:41:46 | 显示全部楼层 |阅读模式
我做了个触发
某个单位一受到伤害就加回相应生命值
相当于不受伤害
这本来是个相当简单的触发
可令人奇怪的是
该单位有时候仍然会受伤
这是为什么呢
发表于 2008-6-14 21:31:30 | 显示全部楼层
受伤害事件要比实际收到伤害要来得早,所以嘛,加血要比扣血早

比如说单位最大生命值1000,当前生命值900,受到伤害事件,伤害值为200,那么,就先加了200血,由于超过上限,血变成了最大值1000,然后再扣200,变成了800

所以,这么做是不行的,而且伤害值大于生命最大值的话仍然会秒杀单位

看下这个演示,所有单位都不会受到伤害

testInvulnerable.w3x (19 KB, 下载次数: 47)
回复

使用道具 举报

发表于 2008-6-14 21:57:48 | 显示全部楼层
话说朱朱曾经说过用那个BT触发同步可以成功
可是我还没挖出那个函数...
回复

使用道具 举报

发表于 2008-6-14 22:03:42 | 显示全部楼层
引用第2楼hke于2008-06-14 21:57发表的  :
话说朱朱曾经说过用那个BT触发同步可以成功
可是我还没挖出那个函数...
call TriggerSyncReady() 这个么?
回复

使用道具 举报

发表于 2008-6-14 22:08:11 | 显示全部楼层
引用第3楼libla于2008-06-14 22:03发表的  :

call TriggerSyncReady() 这个么?
貌似是自己写的函数
回复

使用道具 举报

发表于 2008-6-14 23:54:27 | 显示全部楼层
如果你说的是那个 以彼之道,还施彼身 的演示,那么就是
call TriggerSyncStart()
call TriggerSyncReady()
调用这个两个函数后,之后的动作是在受到伤害之后执行的,不过有比较明显的延迟,不如用0秒计时器

伤害减免.w3x

19 KB, 下载次数: 16

回复

使用道具 举报

发表于 2008-6-15 01:16:43 | 显示全部楼层
延迟果然好厉害,明显看得到单位变成无敌的额………………
回复

使用道具 举报

发表于 2008-6-15 01:22:07 | 显示全部楼层
猪头给的演示让我很汗啊

单位生命值在10000000+和420之间不停变

5楼的演示就是在无敌和不无敌之间不停变~~~

让人很无语
回复

使用道具 举报

发表于 2008-6-15 10:38:19 | 显示全部楼层
用无敌和不无敌也可以的呀~~

发现单位多了用T还是会有问题………………
于是用jass重写了

testInvulnerable.w3x (19 KB, 下载次数: 21)
回复

使用道具 举报

发表于 2008-6-15 11:21:54 | 显示全部楼层
朱朱的那个演示本来也就有延迟的
call TriggerSyncStart()
call TriggerSyncReady()
这两句放到条件里面,后面的函数都不会执行,所以性质应该和TriggerSleepAction差不多

单位多了用T确实有问题,到后来有一大半的单位不能复原
回复

使用道具 举报

发表于 2008-6-21 11:48:26 | 显示全部楼层
又是这个问题  在偶刚来GA的时候就多次提出讨论过  如果要用加回去的方法 始终是有延迟 而且遇到伤害>最大生命值时就完全无效了
有人让我参见DOTA的无光之盾  其实那个技能我也是很多次看见把血加回去的情况  不过好像J的运行比T快 血条闪时间很短
总结就是这个方法只能在平均伤害输出<最大生命值30%左右的情况下使用
目前我已经通过其他方法不完美的进行了解决 还在优化中
回复

使用道具 举报

发表于 2008-6-21 11:52:01 | 显示全部楼层
所以说要改变最大生命值,或者索性直接无敌,然后开启0秒计时器,计时器到期后恢复
伤害事件触发时单位生命值并没有变化,而计时器到期的时候伤害已经发生了,所以这么做是可行的~~
回复

使用道具 举报

发表于 2008-6-21 11:58:26 | 显示全部楼层
怕被人看到无敌的话可以加魔法盾技能,把BUFF隐藏掉。
回复

使用道具 举报

发表于 2008-6-21 12:00:19 | 显示全部楼层
但是仍然能看见0.01-0.20秒的护甲无敌时间 这样比加血回去更糟糕  如果只是单纯的考虑不受伤害那么很简单 在受到伤害时添加 最大值的硬化皮肤和魔法抗性 wait 0s 后删除 这样可以把泄露减少到最少  缺点是不能消除一些特殊伤害 比如 燃灰的叠加 末日审判等
回复

使用道具 举报

发表于 2008-6-21 12:03:21 | 显示全部楼层
明显是看不到无敌的事件的额,就像放缩投射物一样,只有投射物变大,而单位变大缩小的过程是完全无法用肉眼捕捉的

等待0秒和开启计时器0秒时完全不同的呀,等待误差太大,而且计时器貌似是在原进程结束后开启新进程的额
回复

使用道具 举报

发表于 2008-6-21 12:05:36 | 显示全部楼层
发现死海文书也是比较新的新人就当路人了。学习一定很努力吧?
回复

使用道具 举报

发表于 2008-6-21 12:06:52 | 显示全部楼层
计时器么  还没研究过这问题....不过确实  好像Timer的延迟相当小 嗯  这样也不错 抽空研究下Timer
回复

使用道具 举报

发表于 2008-6-21 12:58:13 | 显示全部楼层
就算延迟小,被打频率比较高,被多个单位群呕,很讨打的那种单位,也很容易现出无敌或者加生命的延迟的。所以还是用添加抵伤害的技能好用点。
回复

使用道具 举报

发表于 2008-6-21 12:59:11 | 显示全部楼层
这个貌似不是一个需要担心的问题额………………
回复

使用道具 举报

发表于 2008-6-21 14:12:40 | 显示全部楼层
0秒计时器好像就是0.001秒计时器,并不是进程结束开启的
还是有可能看得到的……我是把“无敌的”这几个红字在游戏界面改了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 12:59 , Processed in 0.054653 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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