1 GP
Fallout一二代的命中率計算
作者:Mercenary│異塵餘生 2│2018-12-13 22:58:09│巴幣:5│人氣:400
趁有空閒時間把一些過去資料整理一下。
前言:
- 資料出自FOnline開發者對FO2反組譯得到的虛擬碼(pseudocode),因為單純把計算邏輯列出來沒啥意義也不太直觀,所以我直接把所有可能性組合全拆開條列了,至少簡單明瞭一些。
- pseudocode是FO2的,不過在讀code與驗證過程中,我順便拿FO1驗證了一下自己的假設,所以這份資料也包括了FO1的狀況。
- 這篇我只貼在巴哈姆特、BN13、TROW,要轉載到其他地方請先和我聯絡並取得我的同意。
命中率計算:
- 首先看是用什麼戰鬥技能攻擊來計算出命中率(ToHit)基礎值:
★徒手(Unarmed)/近戰武器(Melee):很簡單,就直接取技能值。
ToHit = Skill
★遠距離武器的部份就複雜多了:
PE:角色現在的感知數值,會受到藥物或傷殘影響,眼盲效果為PE -5(最低就扣到1)
Dist:距離,是到目標腳下而不是到“旁邊”的格子數,最低為1。
※攻擊者為FO2玩家,狀態正常:
(1) 武器沒有Long Range或Scope Range這兩個perk:
ToHit = Skill + (PE - 2) * 8 - Dist * 4 (公式1)
(2) 武器perk為Long Range:
A、距離在(PE * 2) - 8以內(只在PE >= 5成立):
ToHit = Skill + PE * 8 (等於在這段距離之內命中率都是定值)
B、距離在(PE * 2) - 8以上:照公式1計算,另外再加上(PE - 2) * 8。
ToHit = Skill + (PE - 2) * 16 - Dist * 4
(3) 武器perk為Scope Range:
A、距離在7格以內:
ToHit = Skill - (Dist + 8) * 4 (距離7格時命中最低)
B、距離8格以上但小於(PE * 3) - 10(只在PE >= 6成立):
ToHit = Skill + PE * 8
C、距離在8格與(PE * 3) - 10兩個條件以上:照公式1計算,另外再加上(PE - 2) * 12。
ToHit = Skill + (PE - 2) * 20 - Dist * 4
▲以上所有計算,如果玩家perk有選Sharpshooter(神射手),原版時每一級+8,如果有用sfall 3.6以前的Sharpshooter fix則是+16,sfall 3.7之後則是上面所有計算中的PE都以PE+2代換。
※攻擊者為NPC或FO1玩家,狀態正常:
(1) 武器沒有Long Range或Scope Range這兩個perk:
ToHit = Skill + PE * 8 - Dist * 4 (公式2)
(2) 武器perk為Long Range:
A、距離在PE * 2以內:
ToHit = Skill + PE * 8
B、距離在PE * 2以上:照公式2計算,另外再加上PE * 8。
ToHit = Skill + PE * 16 - Dist * 4
(3) 武器perk為Scope Range:
A、距離在7格以內:
ToHit = Skill - (Dist + 8) * 4
B、距離8格以上但小於PE * 3(只在PE >= 3成立):
ToHit = Skill + PE * 8
C、距離在8格與PE * 3兩個條件以上:照公式2計算,另外再加上PE * 12。
ToHit = Skill + PE * 20 - Dist * 4
▲以上所有計算,如果玩家perk有選Sharpshooter(神射手),原版時每一級+8,如果有用sfall 3.6以前的Sharpshooter fix則是+16,sfall 3.7之後則是上面所有計算中的PE都以PE+2代換。
※攻擊者為FO2玩家,眼盲:
(1) 武器沒有Long Range或Scope Range這兩個perk:
A、距離在(PE * 2) - 4以內(只在PE >= 3成立):仍照公式1計算。
ToHit = Skill + (PE - 2) * 8 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離在(PE * 2) - 4以上:
ToHit = Skill + (PE - 2) * 24 - Dist * 12 (公式3)
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
(2) 武器perk為Long Range:
A、距離在(PE * 2) - 8以內:
ToHit = Skill + PE * 8
▲原版Sharpshooter每一級+8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離在(PE * 2) - 8以上但小於(PE * 4) - 8(只在PE >= 3成立):照正常2-B計算。
ToHit = Skill + (PE - 2) * 16 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
C、距離在(PE * 4) - 8以上:照公式3計算,另外再加上(PE - 2) * 24。
ToHit = Skill + (PE - 2) * 48 - Dist * 12
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
(3) 武器perk為Scope Range:
A、距離在7格以內:
ToHit = Skill - (Dist + 8) * 12
▲原版Sharpshooter每一級-24(sfall 3.6以前-48),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離8格以上但小於(PE * 3) - 10(只在PE >= 6成立):
ToHit = Skill + PE * 8
▲原版Sharpshooter每一級+8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
C、距離在8格或(PE * 3) - 10以上(取較大者),但小於(PE * 5) - 10(只在PE >= 4成立):照正常3-C計算。
ToHit = Skill + (PE - 2) * 20 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
D、距離在8格與(PE * 5) - 10兩個條件以上:照公式3計算,另外再加上(PE - 2) * 36。
ToHit = Skill + (PE - 2) * 60 - Dist * 12
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
※攻擊者為NPC或FO1玩家,眼盲:
(1) 武器沒有Long Range或Scope Range這兩個perk:
A、距離在PE * 2以內:仍照公式2計算。
ToHit = Skill + PE * 8 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離在PE * 2以上:
ToHit = Skill + PE * 24 - Dist * 12 (公式4)
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
(2) 武器perk為Long Range:
A、距離在PE * 2以內:
ToHit = Skill + PE * 8
▲原版Sharpshooter每一級+8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離在PE * 2以上但小於PE * 4:照正常2-B計算。
ToHit = Skill + PE * 16 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
C、距離在PE * 4以上:照公式4計算,另外再加上PE * 24。
ToHit = Skill + PE * 48 - Dist * 12
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
(3) 武器perk為Scope Range:
A、距離在7格以內:
ToHit = Skill - (Dist + 8) * 12
▲原版Sharpshooter每一級-24(sfall 3.6以前-48),sfall 3.7之後上面算式中的PE都以PE+2代換。
B、距離8格以上但小於PE * 3(只在PE >= 3成立):
ToHit = Skill + PE * 8
▲原版Sharpshooter每一級+8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
C、距離在8格或PE * 3以上(取較大者),但小於PE * 5(只在PE >= 2成立):照正常3-C計算。
ToHit = Skill + PE * 20 - Dist * 4
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +8(sfall 3.6以前+16),sfall 3.7之後上面算式中的PE都以PE+2代換。
D、距離在8格與PE * 5兩個條件以上:照公式4計算,另外再加上PE * 36。
ToHit = Skill + PE * 60 - Dist * 12
▲原版Sharpshooter每一級在計算綠色距離條件時+2(sfall 3.6以前+4)、ToHit +24(sfall 3.6以前+48),sfall 3.7之後上面算式中的PE都以PE+2代換。
- 如果力量低於武器最低需求,每差1點命中率-20。
如果玩家perk有選Weapon Handling(武器專家),在這邊判定時力量+3。
- 如果玩家trait有選One Hander(單槍客)而且是用單手武器,命中率+20,雙手武器則-40。
武器是單手或雙手取決於武器proto檔案內的設定,不是看角色持用外觀。
- 如果武器perk為Accurate,命中率+20。
- 減去目標AC,在FO2會受到彈藥參數內的AC修正值(AC mod)影響。
FO1有彈藥參數的設定值,但完全沒用在遊戲內。
- 瞄準攻擊則計算瞄準部位的命中懲罰,如果是徒手/近戰攻擊則命中懲罰減半。
瞄準部位 |
軀幹 |
雙腿 |
雙臂 |
胯下 |
頭部 |
眼睛 |
命中懲罰 |
0 |
-20 |
-30 |
-30 |
-40 |
-60 |
- 如果目標是占多個六角格的,例如雙頭牛(brahmin)、死爪(deathclaw)、多腳獸(centaur)之類,命中率+15。
- 如果攻擊者是玩家,則檢查目標的光照度(看目標周圍地上)決定命中懲罰,從稍暗到完全黑暗分成-10、-25、-40三階段。
如果武器perk為Night Sight,則目標光照度設為最亮(無命中懲罰)。
另外NPC命中率不受黑暗影響,所以別以為你在躲在暗處,敵人就比較打不到你XD
- 攻擊者如果眼盲,命中率-25。
- 目標若是倒在地上,命中率+40。
- 攻擊者如果不是玩家或隊友,再看遊戲設定的戰鬥難易度,簡單(Wimpy)命中率+20,困難(Rough)則-20。
- 最後計算出來的命中率最大值限制在95。
附註:
- 純徒手/近戰角色單純就戰鬥面來看,你甚至可以創個PE 1的大近視也不影響戰鬥表現,當然實際上會建議再怎麼低也別低於5(一般人水準),至少perk可以選Awareness(警覺力)。
- 原版Sharpshooter的實際作用和說明不符,它的+2並不是真的加在PE上,所以命中加成沒多少。sfall 3.6以前的修正方式是把+2變成+4,所以相關加減全加倍了,到sfall 3.7之後才把+2真的加到PE上。
- FO2玩家有一開始計算就先PE -2的nerf,所以NPC在其他條件相同的情況下,命中率會比你高。
- FO1沒有Scope Range這項武器perk,所以遠距攻擊最後那段我只有導出數學模型但無從驗證。
- FOnline命中率計算基本上也是照FO2的方式運作。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4225643
All rights reserved. 版權所有,保留一切權利