找回密码
 点一下
查看: 3130|回复: 18

关于吸收伤害不掉血的提问?(已解决)

[复制链接]
发表于 2011-3-10 10:42:04 | 显示全部楼层 |阅读模式
       就是  怎么做  让单位 吸收伤害   可以用变量记录伤害值   但是不掉血

我的思路是   变量记录伤害值  然后  设置生命值增加   疑问的是  伤害值 和 掉的血是不是同一个数值

看上去会不会有纰漏  如果瞬间伤害造成死亡了   那么 再利用 增加生命值 会出问题吗


只需要看了 "西瓦"的回答 我就发现我懂了  他解释得详细啊   再伴随着HS的绑定  我估计可以做得稍微好点
虽然用不到  但是想到了 就问下  呵呵


PS:一个问题  把论坛的一些隐藏恶魔都暴露了
发表于 2011-3-10 11:57:53 | 显示全部楼层
1设置单位生命值为 生命值+所受伤害 变量=变量+伤害
2伤害值就是掉的血
3触发会在前,所以单位收到伤害后会先加生命然后减去伤害的生命,所以生命值很少的时候不会死亡,但是伤害值大于最大生命时就会秒掉了。
回复

使用道具 举报

发表于 2011-3-10 14:15:42 | 显示全部楼层
在“接受伤害”事件里面,“伤害值”就是单位减少的生命值。
所以,在接受伤害的时候增加单位的生命值就可以实现伤害减免,就像下面这样:

[trigger]Test
    事件
        单位 - 山丘之王 0001 <预设> 接受伤害
    条件
    动作
        单位 - 设置 (触发单位) 的生命值为 ((生命值 对于 (触发单位)) + (单位所受伤害))
[/trigger]

需要注意的是:“接受伤害”事件是发生在单位扣血之前的
因此,运行上面的触发(效果是:减少“山丘之王”所受到的100%伤害)会有以下几个情况:

①如果“山丘之王”受到了足以致死的伤害(伤害值 > 生命值),且(伤害值 < 最大生命值),那么单位并不会出现“瞬间伤害造成死亡”的情况,实际上它可能连减血也不会,因为“接受伤害”事件是发生在“生命减少”和“判断死亡”之前的。

②如果(“伤害值” > “最大生命值” - “当前生命值”),那么单位还是会减少(“伤害值”-“最大生命值”+“当前生命值”)的生命值。
也就是说,如果“山丘之王”满血,那么它受到的伤害是无法抵挡的。
因为“接受伤害”事件是发生在“生命减少”之前的。

③如果(“伤害值” > “最大生命值”),那么你会听见pia的一声,然后该单位就挂了……

而为了解决这些问题,我们可以:在单位接受伤害时为其添加一个“生命最大值增加99999”的技能,然后触发设置其生命值,最后开启零秒计时器删除该技能。
回复

使用道具 举报

发表于 2011-3-10 19:29:36 | 显示全部楼层
对于2,解决方法是记录生命值,开启0秒计时器,设置生命值
回复

使用道具 举报

发表于 2011-3-10 22:34:12 | 显示全部楼层
但是那样就不能抵御致死伤害了丫
而且为了绑定生命值,需要用到hashtable,感觉挺麻烦的~
回复

使用道具 举报

发表于 2011-3-10 22:39:23 | 显示全部楼层
为什么不能呢?2和3是不同情况,if 1 then 对1处理 else if 2 the n对2处理 else if 3 then 对3处理啊

而且3虽然不处理生命值也没什么但处理下也不会有问题的
回复

使用道具 举报

发表于 2011-3-11 10:15:22 | 显示全部楼层
其实问题已经回答完了
对于是生命值小于伤害值 可加可不加,秒掉也没什么
加最大生命的技能,再删去然后0秒计时器到期
再添加减去最大生命的技能,再删去

不过例如虚空假面那样 比如900/1200血 受到800 伤害 最终也只是剩 400 的血
最大生命值始终有问题
或者判断 现有生命值+伤害值 是否大于等于 最大生命值 然后在开计时器

谁叫 伤害值() 这个破函数 不能手动改变呢
要是能直接设置 伤害值()=0 一切都方便了
总之LZ还是照自己需不需要麻烦一点判断来解决吧
回复

使用道具 举报

发表于 2011-3-11 15:55:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2011-3-11 17:57:25 | 显示全部楼层
忘记了,如果瞬间无敌会怎样?
回复

使用道具 举报

发表于 2011-3-11 18:17:18 | 显示全部楼层
如果可以,那么瞬间修改最大生命值(添加物品技能)修改生命值也是可以的。记得以前测试过技能添加似乎是在触发完成后或进入等待才执行的。
回复

使用道具 举报

发表于 2011-3-11 18:48:20 | 显示全部楼层
测试了下,修改最大生命值和无敌都有效,最大生命值法似乎有点误差,
回复

使用道具 举报

发表于 2011-3-11 19:52:59 | 显示全部楼层
要是被秒   也可以嘛?
回复

使用道具 举报

发表于 2011-3-11 19:55:00 | 显示全部楼层
引用第10楼疯人¢衰人于2011-03-11 18:48发表的  :
测试了下,修改最大生命值和无敌都有效,最大生命值法似乎有点误差,

修改最大值要有度,否则的话变回来的时候最大生命值会变小的……
误差是指什么呢?如果是指实际生命值还是会变少一点的话,就像我前面说的,添加之前先记录生命值

瞬间无敌的话,会出现有些buff会一起被干掉,但有些干不掉的尴尬场面
回复

使用道具 举报

发表于 2011-3-11 20:16:35 | 显示全部楼层
引用第8楼疯人¢衰人于2011-03-11 17:57发表的 :
忘记了,如果瞬间无敌会怎样?

瞬间无敌怪物会走的,然后尴尬一下再回来
回复

使用道具 举报

发表于 2011-3-11 20:34:12 | 显示全部楼层
引用第12楼zhuzeitou于2011-03-11 19:55发表的  :修改最大值要有度,否则的话变回来的时候最大生命值会变小的……误差是指什么呢?如果是指实际生命值还是会变少一点的话,就像我前面说的,添加之前先记录生命值.......
实际生命值缺了6,最大生命值减少是因为超过上限被重置成上限。其实我不过是说个办法而已。
回复

使用道具 举报

发表于 2011-3-11 20:36:11 | 显示全部楼层
这玩意还是一个不死效果而已,反正不*让单位死了就行
回复

使用道具 举报

发表于 2011-3-11 20:43:10 | 显示全部楼层
引用第14楼疯人¢衰人于2011-03-11 20:34发表的  :
实际生命值缺了6,最大生命值减少是因为超过上限被重置成上限。其实我不过是说个办法而已。

嗯,最大是多少以前专门试过,现在忘了……
那个是当时做一个小小的伤害系统来玩时候用过,结果遇到的问题
回复

使用道具 举报

发表于 2011-3-11 20:47:23 | 显示全部楼层
引用第16楼zhuzeitou于2011-03-11 20:43发表的  :嗯,最大是多少以前专门试过,现在忘了……那个是当时做一个小小的伤害系统来玩时候用过,结果遇到的问题
记得设为0.几血会不死来着,可以用那个方法
回复

使用道具 举报

发表于 2011-3-13 10:53:31 | 显示全部楼层
这个方法貌似不会有误差的吧……
伤害抵消.w3x (12 KB, 下载次数: 42)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 04:49 , Processed in 0.064236 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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