創作內容

1 GP

Fallout一二代的命中率計算

作者:Mercenary│異塵餘生 2│2018-12-13 22:58:09│巴幣:5│人氣:400
趁有空閒時間把一些過去資料整理一下。


前言:
  • 資料出自FOnline開發者對FO2反組譯得到的虛擬碼(pseudocode),因為單純把計算邏輯列出來沒啥意義也不太直觀,所以我直接把所有可能性組合全拆開條列了,至少簡單明瞭一些。
  • pseudocode是FO2的,不過在讀code與驗證過程中,我順便拿FO1驗證了一下自己的假設,所以這份資料也包括了FO1的狀況。
  • 這篇我只貼在巴哈姆特、BN13、TROW,要轉載到其他地方請先和我聯絡並取得我的同意。

命中率計算:
  1. 首先看是用什麼戰鬥技能攻擊來計算出命中率(ToHit)基礎值:
  2. ★徒手(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代換。

     
  3. 如果力量低於武器最低需求,每差1點命中率-20。
    如果玩家perk有選Weapon Handling(武器專家),在這邊判定時力量+3。
  4.  
  5. 如果玩家trait有選One Hander(單槍客)而且是用單手武器,命中率+20,雙手武器則-40。
    武器是單手或雙手取決於武器proto檔案內的設定,不是看角色持用外觀。
  6.  
  7. 如果武器perk為Accurate,命中率+20。
  8.  
  9. 減去目標AC,在FO2會受到彈藥參數內的AC修正值(AC mod)影響。
    FO1有彈藥參數的設定值,但完全沒用在遊戲內。
  10.  
  11. 瞄準攻擊則計算瞄準部位的命中懲罰,如果是徒手/近戰攻擊則命中懲罰減半。
  12. 瞄準部位 軀幹 雙腿 雙臂 胯下 頭部 眼睛
    命中懲罰 0 -20 -30 -30 -40 -60

  13. 如果目標是占多個六角格的,例如雙頭牛(brahmin)、死爪(deathclaw)、多腳獸(centaur)之類,命中率+15。
  14.  
  15. 如果攻擊者是玩家,則檢查目標的光照度(看目標周圍地上)決定命中懲罰,從稍暗到完全黑暗分成-10、-25、-40三階段。
    如果武器perk為Night Sight,則目標光照度設為最亮(無命中懲罰)。
    另外NPC命中率不受黑暗影響,所以別以為你在躲在暗處,敵人就比較打不到你XD
  16.  
  17. 攻擊者如果眼盲,命中率-25。
  18.  
  19. 目標若是倒在地上,命中率+40。
  20.  
  21. 攻擊者如果不是玩家或隊友,再看遊戲設定的戰鬥難易度,簡單(Wimpy)命中率+20,困難(Rough)則-20。
  22.  
  23. 最後計算出來的命中率最大值限制在95。

附註:
  1. 純徒手/近戰角色單純就戰鬥面來看,你甚至可以創個PE 1的大近視也不影響戰鬥表現,當然實際上會建議再怎麼低也別低於5(一般人水準),至少perk可以選Awareness(警覺力)。
  2. 原版Sharpshooter的實際作用和說明不符,它的+2並不是真的加在PE上,所以命中加成沒多少。sfall 3.6以前的修正方式是把+2變成+4,所以相關加減全加倍了,到sfall 3.7之後才把+2真的加到PE上。
  3. FO2玩家有一開始計算就先PE -2的nerf,所以NPC在其他條件相同的情況下,命中率會比你高。
  4. FO1沒有Scope Range這項武器perk,所以遠距攻擊最後那段我只有導出數學模型但無從驗證。
  5. FOnline命中率計算基本上也是照FO2的方式運作。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4225643
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:異塵餘生 2|異塵餘生

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★NovaRain 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:FO2引擎mod - s... 後一篇:sfall更新資訊(自3...

追蹤私訊切換新版閱覽

作品資料夾

dhreekingdon幸運看見的你
給你一顆紅心~讓你能保有一整天的好心情~祝你有個愉快的一天喲(<ゝω・)~❤看更多我要大聲說11小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】