欢迎光临散文网 会员登陆 & 注册

魔兽地图技巧(1) 捕捉单位彻底消失

2022-01-28 14:43 作者:bili_38354167  | 我要投稿

发一些冷门细节和小技巧,随便开个坑,不定期更新。

基本上是贴吧搜不到,或者说的不详细的。

(废话很多,如果有基础可直接看结论和演示图)

相信如果用过YDWE,那么你一定知道逆天这个功能,以及逆天自定义值。

如果你没有用过YDWE,原生WE或者重置版WE,那么也多半是知道哈希表。

逆天自定义值的本质就是哈希表 详细参考https://tieba.baidu.com/p/5940558639


哈希表可以用来给很多东西绑定数据(常见用法父索引GetHandleId(h)),但是有时候需要清空绑定的数据。

比如说给单位绑定了一堆数据,但是单位死亡了,如果不清空,很有可能会被新的单位继承这些数据。因为魔兽的handle会回收利用。所以通常用单位死亡事件来清空数据,如果单位死亡,就清空哈希表以单位HandleId为父索引下的数据。

但这会导致一个问题,对于尸体交互的支持力不足,比如说圣骑士大招复活了单位,那单位之前的数据全部就没了,因为绑定的数据已经触发了死亡事件被清空。

所以我们需要捕捉单位即将彻底离开地图的时刻,再将其数据清空。

在魔兽里,一个单位彻底消失,除非是直接被燃灰,炮火攻击,吞噬尸体,召唤骷髅,不会腐化等等特殊因素击杀或作用,否则得等待尸体消散,单位才会彻底从地图中移除。(就是完全没救了 白牛和圣骑士之类的复活救不了他)

我在hive上偶然得知,取消顶盾命令会在单位死亡时触发一次,从地图移除前一刻被触发一次。(顺带一提,单位被暂停也会触发一次取消顶盾命令,同理还有魔法盾之类的开关技能)


结论:通过判断死亡后第二次的取消顶盾命令来捕捉单位彻底离开地图,然后清空绑定他的数据。


演示图:

链接:https://pan.baidu.com/s/1NGIap6z4Mle-XrzQcHdheA 

提取码:niud

(演示图只能捕捉单位自然死亡到尸体消散,但不能捕捉触发器RemoveUnit,因为并没有事先给别的单位添加顶盾技能,如有需要可用KillUnit代替RemoveUnit)

支持魔兽的各个版本,当然用了vjass,原生WE可能用不了,不过似乎重置版的WE已经内置了vjass,所以应该问题不大。


魔兽地图技巧(1) 捕捉单位彻底消失的评论 (共 条)

分享到微博请遵守国家法律