魔獸地圖技巧(1) 捕捉單位徹底消失
發(fā)一些冷門細(xì)節(jié)和小技巧,隨便開個(gè)坑,不定期更新。
基本上是貼吧搜不到,或者說(shuō)的不詳細(xì)的。
(廢話很多,如果有基礎(chǔ)可直接看結(jié)論和演示圖)
相信如果用過(guò)YDWE,那么你一定知道逆天這個(gè)功能,以及逆天自定義值。
如果你沒有用過(guò)YDWE,原生WE或者重置版WE,那么也多半是知道哈希表。
逆天自定義值的本質(zhì)就是哈希表 詳細(xì)參考https://tieba.baidu.com/p/5940558639
哈希表可以用來(lái)給很多東西綁定數(shù)據(jù)(常見用法父索引GetHandleId(h)),但是有時(shí)候需要清空綁定的數(shù)據(jù)。
比如說(shuō)給單位綁定了一堆數(shù)據(jù),但是單位死亡了,如果不清空,很有可能會(huì)被新的單位繼承這些數(shù)據(jù)。因?yàn)槟ЙF的handle會(huì)回收利用。所以通常用單位死亡事件來(lái)清空數(shù)據(jù),如果單位死亡,就清空哈希表以單位HandleId為父索引下的數(shù)據(jù)。
但這會(huì)導(dǎo)致一個(gè)問(wèn)題,對(duì)于尸體交互的支持力不足,比如說(shuō)圣騎士大招復(fù)活了單位,那單位之前的數(shù)據(jù)全部就沒了,因?yàn)榻壎ǖ臄?shù)據(jù)已經(jīng)觸發(fā)了死亡事件被清空。
所以我們需要捕捉單位即將徹底離開地圖的時(shí)刻,再將其數(shù)據(jù)清空。
在魔獸里,一個(gè)單位徹底消失,除非是直接被燃灰,炮火攻擊,吞噬尸體,召喚骷髏,不會(huì)腐化等等特殊因素?fù)魵⒒蜃饔?,否則得等待尸體消散,單位才會(huì)徹底從地圖中移除。(就是完全沒救了 白牛和圣騎士之類的復(fù)活救不了他)
我在hive上偶然得知,取消頂盾命令會(huì)在單位死亡時(shí)觸發(fā)一次,從地圖移除前一刻被觸發(fā)一次。(順帶一提,單位被暫停也會(huì)觸發(fā)一次取消頂盾命令,同理還有魔法盾之類的開關(guān)技能)
結(jié)論:通過(guò)判斷死亡后第二次的取消頂盾命令來(lái)捕捉單位徹底離開地圖,然后清空綁定他的數(shù)據(jù)。
演示圖:
鏈接:https://pan.baidu.com/s/1NGIap6z4Mle-XrzQcHdheA?
提取碼:niud
(演示圖只能捕捉單位自然死亡到尸體消散,但不能捕捉觸發(fā)器RemoveUnit,因?yàn)椴]有事先給別的單位添加頂盾技能,如有需要可用KillUnit代替RemoveUnit)
支持魔獸的各個(gè)版本,當(dāng)然用了vjass,原生WE可能用不了,不過(guò)似乎重置版的WE已經(jīng)內(nèi)置了vjass,所以應(yīng)該問(wèn)題不大。