AI機(jī)制:心中的義父如何變成霧鴉
更新了1.05版本的小伙伴,一定對(duì)義父能變成霧鴉這件事深有體會(huì),可是義父變成霧鴉的機(jī)制是什么樣的呢?
今天就來(lái)給大家說(shuō)道說(shuō)道

首先是最簡(jiǎn)單的,義父在受到遠(yuǎn)程射擊時(shí)有50%的概率防御,50%的概率變成霧鴉飛過(guò)來(lái)一個(gè)跳劈。

這一招也可能在遠(yuǎn)距離情況下直接作為一種接近手段發(fā)動(dòng)。
然后就是變成霧鴉+轉(zhuǎn)身二連,這一招在游戲中被設(shè)置為一種防御機(jī)制,可以肯定的是這招無(wú)法百分百觸發(fā),一定是受到隨機(jī)數(shù)控制的,有30%和50%兩種。30%的情況取代了義父原有的各種防御動(dòng)作,而50%的情況只是記錄了霧鴉二連和霧鴉跳劈,具體分析如下:
代碼就不復(fù)制過(guò)來(lái)了,義父的防御型霧鴉發(fā)動(dòng)機(jī)制:
首先是前面提到的30%概率替代防御動(dòng)作,玩家在打鐵時(shí)可以注意一個(gè)以前可能不太關(guān)心的問(wèn)題:義父什么時(shí)候開始防御?
舉個(gè)例子,彈開義父的超遠(yuǎn)距離跳劈后直接反擊,義父直接防御;而識(shí)破義父的突刺后反擊,義父會(huì)先受傷再防御;那么義父變成霧鴉僅替代防御動(dòng)作,而不是受傷動(dòng)作,所以玩家需要關(guān)注反擊或進(jìn)攻時(shí),義父從第幾下開始防御。由于狼的不同攻擊動(dòng)作耗時(shí)不同,不是所有情況下都能在多打一刀后彈開霧鴉二連,因此比較穩(wěn)妥的打法就是在判斷義父即將防御時(shí),注意義父的動(dòng)作,義父變霧鴉和舉刀招架的動(dòng)作是不一樣的,如果變霧鴉,玩家可以及時(shí)收手,調(diào)整站位,準(zhǔn)備彈開霧鴉二連。
PS:彈開義父的霧鴉二連后,如果反斬再次觸發(fā)霧鴉,且不在角落里的話,還是可以穩(wěn)定貪刀的。

義父的彈開機(jī)制也不復(fù)雜:
elseif local2 <= Get_ConsecutiveGuardCount(arg0) * arg2 then? 連續(xù)防御計(jì)數(shù)
??????????????? arg1:ClearSubGoal()
??????????????? arg1:AddSubGoal(GOAL_COMMON_EndureAttack, 0.1, 3101, TARGET_ENE_0, 9999, 0)
只要義父連續(xù)防御就會(huì)轉(zhuǎn)為彈開,在和心中的義父打鐵時(shí),按照我個(gè)人的經(jīng)驗(yàn),義父只會(huì)把招架動(dòng)作換為霧鴉二連,而彈開動(dòng)作不會(huì)變,也就是說(shuō)玩家只要看到義父是舉刀招架,就可以放心的繼續(xù)出刀,而不用擔(dān)心義父在一次招架后馬上變成霧鴉。

兩種霧鴉三連都不是主動(dòng)招式,這也很合理,畢竟玩家也不能主動(dòng)發(fā)動(dòng)霧鴉(除非中毒藥),但是具體怎么觸發(fā)還有待進(jìn)一步摸索。

如上圖,這種霧鴉三連僅出現(xiàn)在這一個(gè)AI目標(biāo)中,從分析其他角色的AI的情況來(lái)看,這是一種變招,也就是義父絕不會(huì)在對(duì)峙狀態(tài)下直接發(fā)動(dòng)霧鴉三連,而是會(huì)出現(xiàn)在某個(gè)動(dòng)作之后,且通過(guò)特定方式觸發(fā)。
目前根據(jù)ZeeGan大佬的研究,義父在二階段用過(guò)火鳥之后便會(huì)將下一個(gè)自由招式變?yōu)殪F鴉三連(隨機(jī)一種),包括被識(shí)破或者突刺被打斷或者打空等等,之后只要義父不做出對(duì)干擾的反應(yīng)(包括防御、藥檢、射擊檢測(cè)等等干擾類型),就會(huì)優(yōu)先發(fā)動(dòng)霧鴉三連。

最后說(shuō)說(shuō)藥檢,義父的藥檢能體現(xiàn)出老賊的仁慈,首先藥檢是看距離的,太近或者太遠(yuǎn)都會(huì)導(dǎo)致義父進(jìn)行“重計(jì)劃”,也就是使用主動(dòng)招式,只有在中等距離時(shí)會(huì)發(fā)動(dòng)一個(gè)跳劈。
if Interupt_Use_Item(arg1, 4, 20) and local3 == false then
??????? if local0 <= 5 then? ? ? ? ? ? ? ? ? ? //這里指的就是距離小于等于5
??????????? arg1:Replanning()? ? ? ? ? ? ?? ?//這里指的就是義父的AI重置
??????????? return true
??????? elseif local0 <= 10.7 - arg1:GetMapHitRadius(TARGET_SELF) - 1 then
??????????? arg2:ClearSubGoal()? ? ? ? ?//上面一行指的是距離不遠(yuǎn)不近的一段
??????????? arg2:AddSubGoal(GOAL_COMMON_Wait, 0.1, TARGET_SELF, 0, 0, 0)
??????????? arg2:AddSubGoal(GOAL_COMMON_ComboAttackTunableSpin, 10, 3003, TARGET_ENE_0, 6.2 - arg1:GetMapHitRadius(TARGET_SELF), 0, 0, 0, 0)
??????????? return true
??????? else? ? ?//最后的補(bǔ)集自然指的就是距離超級(jí)遠(yuǎn)
??????????? arg1:Replanning()
??????????? return true
??????? end
end
我們可以看到,在中等距離的跳劈那里,執(zhí)行的不是簡(jiǎn)單地跳劈,而是先Wait(等待)0.1秒,也就是說(shuō)為了讓玩家能夠彈開,老賊專門讓義父等了一下(憐憫?。?br>

總結(jié),按照FS社的偷懶傳統(tǒng),心中義父的AI就好比是在原來(lái)的基礎(chǔ)上以隨機(jī)的形式增加了射擊變霧鴉和招架防御變霧鴉,二階段的霧鴉三連基本上可以看作是一個(gè)主動(dòng)招式,不一定要由受傷觸發(fā),但肯定會(huì)銜接在火鳥之后。
我個(gè)人非常推薦一拍一打法,非常穩(wěn)妥!

當(dāng)然啦大家也可以模仿一下大佬的操作:
