這次我們要做的技能是Dota裡變體精靈的波浪形態,這是一個衝鋒技能,技能如下:
工具/原料
YDWE魔獸地圖編輯器(含衝鋒技能的版本)
衝鋒技能的小瑕疵
有的同學可能會說,直接用YDWE裡的衝鋒技能就好了,簡單方便。於是我們可以用這個衝鋒技能寫出下面這個簡單的觸發(設定傷害值為100)。
經過測試後,細心的同學們應該會發現,單位受到的技能傷害不止我們設定的100這個值。比如一個生命值2500點的步兵受到一次傷害,居然失去了近400點生命值。這是為啥?
這是YDWE裡衝鋒技能的一個小瑕疵。
我們先來了解一下衝鋒技能的原理:每過很短的一段時間(比如0.03秒),判斷單位前方是否是可通行的地形,若是,則立刻改變單位的座標,也就是讓他瞬移到下一位置,同時選取其圓周範圍內的敵人,對選取的這些敵人造成傷害。
我們觀察衝鋒這個技能時可以注意到,裡面有一個引數叫重新整理週期,就是上面的0.03秒這個短暫的時間,也就是說衝鋒的單位每過0.03秒就將對周圍單位造成一次範圍傷害,那麼就有可能在經過一個單位身邊時對這個單位造成多次傷害(比如經過時間為0.12秒,就傷害4次),那麼當然就不止我們上面設定的100這個傷害值了。
這對我們的敵人真是大大的不公平!那麼如何避免這種情況,讓敵人每次只受到100點傷害呢?
保護單位組的利用
有一定基礎的同學可以自行製作衝鋒技能,對於喜歡從簡的同學也有個方便的辦法,在保留YDWE衝鋒技能的同時,進行一點小修改。這裡需要用到單位組和上一篇中逆天計時器的一些知識。
由於衝鋒技能的傷害有缺陷,我們就自己來製作衝鋒的傷害:先將被傷害過一次的敵人加入一個單位組中(這個稱為保護單位組),在命令衝鋒單位造成下一次傷害前,判斷敵人是否在保護單位組中,若是,則不做任何傷害動作,若不是,則命令衝鋒單位傷害他們,並將他們加入單位組中,防止二次傷害,不斷迴圈至技能結束。當然,技能結束後要清空這個單位組裡的所有單位,不然下一次衝鋒就無法傷害他們了。
有了上面的思路,那麼我們可以在保留衝鋒技能的同時(傷害設定成0),寫出以下改良的波浪形態。
也就是在發動波浪形態時命令變體精靈做衝鋒,同時開啟週期0.03秒迴圈的逆天計時器,計時器每到期一次就命令變體精靈傷害周圍沒有在保護單位組內的敵人,並將他們新增進單位組中,這裡的全域性變數dwz就是我們設定的保護單位組。
要注意的是,在逆天計時器裡,我們用到了下面這個條件,它的作用是判斷變體精靈是否到達波浪形態的技能施放點,若到達,則關閉計時器,不再造成傷害,否則就繼續傷害周圍單位。
這樣再進行測試,步兵就只受到一次波浪的傷害了。這樣一個改良版的波浪形態就完成了。
測試圖共享地址
最後是測試圖的下載地址:
;uk=1728454555
本篇中的技能並未嚴格按照Dota原版技能的引數製作,僅提供製作思路。