破門而入2的傷害與護甲機制

????今天心血來潮突然想搞明白DK2的護甲機制,如果你嫌棄太長不看,可以直接翻到文章結(jié)尾看結(jié)論。
????首先我們解釋下武器的傷害構(gòu)成,武器跟傷害掛鉤的屬性有傷害[Damage]和暴擊[Critchance],至于與傷害無關(guān)的散布[Accuracy]和瞄準時間[Aimtime]等其他屬性在本文不做討論。每個實體都有100點血,當子彈擊中實體時會根據(jù)發(fā)射的距離計算暴擊率,然后投一個一百面骰,如果小于暴擊率則該次傷害暴擊,造成100點傷害,如果未能暴擊則計算傷害,當實體血量≤0時實體死亡。子彈的傷害衰減和暴擊率衰減是一個一次函數(shù)。這些屬性的基礎(chǔ)數(shù)值來自于發(fā)射的子彈,武器和配件與射擊方式會對暴擊率,瞄準時間和精準度等屬性上一個修正,這個修正也是一次函數(shù)甚至干脆就是一個數(shù)值(不修正傷害)。
????那么我們看到的下面分段的這種屬性圖是怎么來的呢?

????分段的屬性變化來自于射擊方式的修正,在不同距離上特遣隊員使用的射擊方式不同,所以你會發(fā)現(xiàn)CIA和游騎兵的M4屬性也不一樣,盡管拋開射擊方式不談他們槍本身的屬性是一樣的(對比圖),至于我用紅色標出來的那種坡度……哈哈,那只是為了看起來不是直上直下那么突兀做的視覺效果,數(shù)據(jù)上就是下一米就突然蹦極,打個比方就是y=x(0≤x<3)&x+20(x≥3)。

????


? ??
?????如果你希望看眼具體的數(shù)據(jù)分析,我會在另一篇專欄從游戲里把游騎兵手里打M855的鐵瞄M4的數(shù)據(jù)拿出來講一遍,在這里拿出來要繞好幾圈(瞄具,子彈,射擊方式等),太長了。
? ? 傷害機制講完了,但我們還沒討論護甲會對傷害造成什么樣的影響呢。

????首先,可以確定的一點是DK2的護甲保護是在一個以角色面朝方向為垂直平分線的圓弧內(nèi)有一個保護幾率與保護等級,圓弧的弧度也有一個數(shù)值寫出。如果命中角度上有多個生效的圓弧,優(yōu)先計算弧度更小的圓?。ㄟ@也是護甲不同方向數(shù)據(jù)不同的原理)。子彈擊中時還是骰一百面骰,數(shù)字小于該角度上的保護幾率則子彈擊中護甲,開始計算穿甲。
????呃……如果你覺得上面那段太抽象看不懂的話,以下是一個例子,是游騎兵的Extended Vest/SAPI,無關(guān)保護的部分已刪去[出自Data/equipment/various.xml]。
<Armor name="Rangers SFLCS Extended" inventoryBinding="Armor"?
<ProtectionArc degrees="90" coveragePercent="65" piercingProtectionLevel="5"/>
<ProtectionArc degrees="270" coveragePercent="35" piercingProtectionLevel="5"/>
<ProtectionArc degrees="360" coveragePercent="45" piercingProtectionLevel="5"/>
</Armor>
<護甲名稱="Rangers SFLCS Extended" 裝備類型="護甲">
<保護弧角度="90" 保護幾率="65" 護甲等級="5">
<保護弧角度="270" 保護幾率="35" 護甲等級="5">
<保護弧角度="360" 保護幾率="45" 護甲等級="5">
????當有一枚子彈從視角方向的任何一側(cè)側(cè)射來,與視角方向的夾角為45°以內(nèi)時,生效的將是上述原文中的第一個保護弧,即有65%的概率子彈將會擊中插板,插板的護甲等級為5,當夾角大于45°小于等于135°時,觸發(fā)的是第二個保護弧,幾率為35等級為5,大于135°時,觸發(fā)第三個保護弧,幾率45等級為5。
? ? 好了,現(xiàn)在我們搞明白了防彈衣是怎么生效的,但是穿甲怎么算呢?第一反應(yīng)是找注釋,讓我們看看注釋里面找到了什么。(小字翻譯是我自己用工地英語渣翻的)
piercingProtectionLevel: gets compared to the bullet's piercingLevel
護甲等級:與子彈的穿甲等級比較[本注釋出自Data/equipment/various.xml]
piercingProtectionLevel: gets compared to the bullet's piercingLevel (recive 1 damage if > bulletPiercing and goes through CoveragePercent or normal damage otherwise)
護甲等級:與子彈的穿甲等級比較(如果防護等級大于子彈穿甲并命中保護區(qū)域就受到1傷害,否則正常造成傷害)[本注釋出自Data/equipment/various_enemy.xml,說實話這條我懷疑括號內(nèi)的內(nèi)容翻錯了,但是想不出更合理的說法。]
????呃……這兩個注釋顯然是1的遺留物,第二個注釋可能是因為與玩家可操控的內(nèi)容無關(guān),干脆連明顯是1的傷害機制的內(nèi)容都沒刪掉,這套傷害機制在二代被替換了,所以這段內(nèi)容沒有價值。那沒辦法,只能改屬性進游戲試了。
????我去游戲里面改了一件保護幾率100%的四級甲(數(shù)據(jù)6級),一件保護幾率100%的三級甲(數(shù)據(jù)5級),一件保護幾率100%的3A甲(數(shù)據(jù)4級),一件保護幾率為0的護甲(模擬敵軍子彈未擊中護甲),以及游戲內(nèi)CIA的不著甲(找不到數(shù)據(jù),根據(jù)DK1的經(jīng)驗和測試結(jié)果推算應(yīng)該是數(shù)據(jù)0級,全方位100%概率保護),加上最后為了驗證游戲自帶不著甲數(shù)據(jù)修改的保護幾率100%的0級“護甲”。使用開發(fā)者模式下F1視角的左鍵射擊保護方向,以下是測試結(jié)果。別問為啥只有一條,問就是懶得截多條,試過很多次,相同距離的情況下數(shù)據(jù)是一模一樣的。





需要補充不著甲

?????首先解釋一下這串文字代表的意思:
Takedamage on [受到傷害的實體] - damage=[實體在本次攻擊中受到的傷害]?critChance=[本次攻擊可能造成暴擊的幾率] ap=[本次攻擊的穿甲等級] health=[本次攻擊后實體剩余的血量,小于0則實體死亡]
另外,在Damage的傷害數(shù)字后有可能會接一個(Critical),如果出現(xiàn)意味著此次傷害暴擊,傷害數(shù)字應(yīng)為100。
????可以看到5級穿甲就不能擊穿5級的護甲了,子彈的穿甲等級必須大于護甲的防護等級才能擊穿,不能擊穿則不會對實體造成任何傷害,也不會有暴擊率。子彈在擊穿護甲的情況下護甲等級的不同不會對子彈的傷害計算有任何改變,以及——如果子彈未能擊中護甲,Critchance會有一個小小的加成。護盾的機制基本與這段相同,但是沒有未擊中的Critchance加成。
????呃……很難解釋為什么未擊中護甲會比100%保護的0級護甲CritChance更高,可能是指擊中了護甲沒有保護的弱點部位所以致命率更高吧,但按道理來說插板沒有保護的地方是較為次要的地方,說不通啊。不管怎樣,這意味著,如果敵人能夠穩(wěn)定擊穿你的插板,可能一件具有更大保護面積(保護幾率更高)的護甲好于一件保護等級更高但保護幾率更低的護甲。
? ?但是有一個很匪夷所思的問題我沒有弄明白,就是頭盔到底在護甲中是怎么計算的,測試中刻意射擊頭部(已修改頭盔為100%保護率6級防護)是按身體護甲結(jié)算的,射擊0%保護幾率的部分也是按未命中護甲算的,難不成是丟骰子決定打沒打中頭嗎……想不通,有知道的大佬歡迎在評論區(qū)或撰寫專欄補充,感激不盡。

以下是太長不看的結(jié)論部分,如果你覺得太抽象了我建議你還是看看正文:
子彈造成傷害的機制:子彈擊中實體時會根據(jù)發(fā)射的距離計算暴擊率,然后投一個一百面骰,如果小于暴擊率則該次傷害暴擊,造成100點傷害,如果未能暴擊則計算傷害,當實體血量≤0時實體死亡。
護甲與護盾的保護機制:在一個以角色面朝方向為垂直平分線的圓弧內(nèi)有一個保護幾率與保護等級,圓弧的弧度也有一個數(shù)值寫出。如果命中角度上有多個生效的圓弧,優(yōu)先計算弧度更小的圓弧(這也是護甲不同方向數(shù)據(jù)不同的原理)。子彈擊中時還是骰一百面骰,數(shù)字小于該角度上的保護幾率則子彈擊中護甲,開始計算穿甲。子彈的穿甲等級必須大于護甲/護盾的防護等級才能擊穿,不能擊穿則不會對實體造成任何傷害,也不會有暴擊率。子彈在擊穿護甲/護盾的情況下護甲等級的不同不會對子彈的傷害計算有任何改變,如果子彈未能擊中護甲,Critchance會有一個小小的加成(護盾沒有這個加成)。這意味著,如果敵人能夠穩(wěn)定擊穿你的插板,可能一件具有更大保護面積(保護幾率更高)的護甲好于一件保護等級更高但保護幾率更低的護甲。
至于頭盔,沒弄明白,歡迎評論區(qū)補充或另開專欄。