allennai 发表于 2014-9-11 16:00:10

可以做到免疫所有伤害的有几中方法?

本帖最后由 allennai 于 2016-4-9 14:07 编辑

目前我知道两种。
①一种是添加99999生命牌,然后0秒后删除。但是如果在同一时间触发伤害就会冲突。

②另外一种是灵魂锁链,但这个不大会用……

我是用在中型数据地图。后期大概1000~几十W的伤害输出。还有哪一种免疫所有的伤害可以使用?

RoyalFlare 发表于 2014-9-11 16:14:43

负数值的狂战士技能+999999W伤害减免的硬化皮肤 添加到魔法书里 隐藏魔法书对触发单位的所有者

allennai 发表于 2014-9-11 16:22:36

RoyalFlare 发表于 2014-9-11 16:14
负数值的狂战士技能+999999W伤害减免的硬化皮肤 添加到魔法书里 隐藏魔法书对触发单位的所有者

狂战士的技能不用使用就有效果了?

有没有什么后遗症,比如会不会触发下面这个触发

任意单位受到伤害
伤害大于0
XXXX

ckpig 发表于 2014-9-11 17:22:57

无敌

RoyalFlare 发表于 2014-9-11 19:32:03

你为何要使用任意单位受到伤害这个事件?
地图中只要没有这个玩意就没有问题

allennai 发表于 2014-9-11 23:25:24

RoyalFlare 发表于 2014-9-11 19:32
你为何要使用任意单位受到伤害这个事件?
地图中只要没有这个玩意就没有问题

有判断条件的,其实和动态注册伤害事件没什么区别

allennai 发表于 2014-9-11 23:25:41

ckpig 发表于 2014-9-11 17:22
无敌

无敌会出现很多BUG

chyj4747 发表于 2014-9-12 07:50:30

添加血牌不会冲突的啊。。至少我用到现在没冲突过

如果冲突是指:
1. 在抵消伤害时要额外造成不被抵消的伤害的:使用伤害动作或者马甲扔技能前先关闭接受伤害触发,造成伤害动作做完再打开
2. 多个伤害同时作用:把免伤处理集中到一个触发里,记录伤害值之类的(不同技能不同量的免伤应该在这个地方处理完再记录比较好),如果加过血牌那就不再添加,没加过血牌那就加0秒血牌,在血牌移除后把减免后的伤害量扣掉,当然LZ说的完全免疫的话就不用扣了

allennai 发表于 2014-9-12 14:50:06

chyj4747 发表于 2014-9-12 07:50
添加血牌不会冲突的啊。。至少我用到现在没冲突过

如果冲突是指:


我的方法预防了额外伤害。我在所有额外伤害之前都添加了0秒计时器。

但时不时还会出现就算添加了血牌免疫伤害,该单位还是死了的情况。
所以想找一个非血牌的做法

RoyalFlare 发表于 2014-9-12 16:49:43

@chyj4747 如何杀死1个处于无敌状态的单位? 触发中的伤害目标动作对无敌单位无法造成有效伤害 直接命令杀死触发单位貌似可行?

allennai 发表于 2014-9-12 18:32:06

RoyalFlare 发表于 2014-9-12 16:49
@chyj4747 如何杀死1个处于无敌状态的单位? 触发中的伤害目标动作对无敌单位无法造成有效伤害 直接命令杀死 ...

杀死单位会默认为玩家1为凶手的……

chyj4747 发表于 2014-9-12 21:19:27

本帖最后由 chyj4747 于 2014-9-12 21:20 编辑

RoyalFlare 发表于 2014-9-12 16:49
@chyj4747 如何杀死1个处于无敌状态的单位? 触发中的伤害目标动作对无敌单位无法造成有效伤害 直接命令杀死 ...

要看你要不要凶手啊,不要凶手什么的直接把血量设置成0不就行了,当然杀死单位也是有效的,无敌仅仅是免疫任何伤害而已

chyj4747 发表于 2014-9-12 21:29:16

allennai 发表于 2014-9-12 14:50
我的方法预防了额外伤害。我在所有额外伤害之前都添加了0秒计时器。

但时不时还会出现就算添加了血牌 ...

什么叫在所有额外伤害前都加0秒计时器?那不是所有额外伤害都慢一拍。。

首先当然你得保证伤害量不是很大啊,像你说的几十万伤害什么的,如果已经超过血牌+单位生命最大值的话肯定不行啊。。
如果伤害量很大,那么除了加血牌外,每次受伤还得把生命值回满,当然这么做的问题就是万一你做了其它触发会检查单位生命值状态来做动作的话就会有非常小的可能性(毕竟0秒计时器)造成严重的bug
如果你不需要slk优化的话那么可以尝试把血牌的数据加大

allennai 发表于 2014-9-13 07:26:31

chyj4747 发表于 2014-9-12 21:29
什么叫在所有额外伤害前都加0秒计时器?那不是所有额外伤害都慢一拍。。

首先当然你得保证伤害量不是 ...

血牌是999W的,额外伤害都是慢半拍的,因为额外伤害也要触发减免,实际上的效果看起来也是瞬间的。
我也注意到那些按照目标当前生命为伤害的技能,所以我添加血牌都是在触发最后,然后开启0秒计时器删掉。

请问一下SLK是什么?我用的就是红狼的那个优化器,我也记得上面有这个功能,但没用,不清楚是什么

chyj4747 发表于 2014-9-13 08:58:06

allennai 发表于 2014-9-13 07:26
血牌是999W的,额外伤害都是慢半拍的,因为额外伤害也要触发减免,实际上的效果看起来也是瞬间的。
我也 ...

血牌加上去后掉了血如果血量掉的多的话还是要补回去的,因为删掉血牌的时候是按百分比计算的,伤害值小的时候无所谓补不补是因为百分比小,四舍五入血量后还是原值

或者你这么做:
补血的时候把那些跟血量相关的触发关掉下,补完再打开
额外伤害别慢半拍,用关掉触发器的方法来避免额外触发

slk就是魔兽读取的数据文本,地图里面当然不是用这种数据,mpq里的数据类型,而slk优化器就是把地图数据类型转成slk这种类型,转换过程中顺便删掉些没用的数据(比如物编里新建了一个单位但是未使用)就是所谓的优化,由于不同类型的文本数据排序方面可能会不一样,所以也许slk比地图用的文本要小

allennai 发表于 2014-9-13 18:08:45

chyj4747 发表于 2014-9-13 08:58
血牌加上去后掉了血如果血量掉的多的话还是要补回去的,因为删掉血牌的时候是按百分比计算的,伤害值小 ...

果然是没注意到回血……我直接添加血牌,然后删除,时不时可以免疫,时不时就算免疫了还是会扣那么几点血,有的时候则一点血也不扣……

allennai 发表于 2014-9-13 18:12:34

chyj4747 发表于 2014-9-13 08:58
血牌加上去后掉了血如果血量掉的多的话还是要补回去的,因为删掉血牌的时候是按百分比计算的,伤害值小 ...

但如果满血之后再加血会不会依旧触发继续扣血的BUG?

497252179 发表于 2014-9-13 18:26:47

最好的就是完全模拟所有伤害,在伤害单位之前就判定出单位是否免疫伤害

allennai 发表于 2014-9-13 18:29:40

chyj4747 发表于 2014-9-13 08:58
血牌加上去后掉了血如果血量掉的多的话还是要补回去的,因为删掉血牌的时候是按百分比计算的,伤害值小 ...

懂了……是在删除血牌之前回复受到的伤害……保持血量的百分比?

497252179 发表于 2014-9-13 18:38:20

我现在将所有伤害模拟了,其实几十万伤害完全没问题,我以前用的千万血牌,判定条件调好了完全不会出问题和卡
页: [1] 2
查看完整版本: 可以做到免疫所有伤害的有几中方法?