|

楼主 |
发表于 2014-2-25 13:29:02
|
显示全部楼层
F2: damage calculation change, a FIX (v5),作者為Glovz
https://www.nma-fallout.com/threads/f2-damage-calculation-change-a-fix-v3-by-my-count.200361/
Glovz從很早之前就試著修正穿甲彈的問題,v1針對目標裝甲來調整使用穿甲彈時的傷害計算,v2把DR與彈藥傷害修正都定義為DT的加成參數,DR本身不再直接減少傷害。兩次嘗試都有些問題,特別是v2在最後叫砲塔打Frank Horrigan時幾乎傷不了它分毫,所以v3之後又是整個砍掉重來。
Glovz的修正不像YAAM一樣把彈藥DR修正值改成DT修正值,它特別針對幾個原版公式的問題進行修正,例如本來除法運算是完全捨去小數不進位,它就把除法以連續減法的迴圈取代,然後拿餘數去和除數比對來決定是否進位,小數進位方式採Bankers' Rounding(四捨六入五成雙)。
計算流程:- 確定最初的傷害淨值,如果有Bonus Ranged Damage又是遠距攻擊就一併加上:ND=RD+RB
. - 如果目標裝甲DT小於等於0,就再檢查目標裝甲DR,若仍小於等於0則直接跳到第12步進行額外傷害計算,不然接到第6步繼續。
. - 限制彈藥傷害修正的除數,最小為1。
. - 如果目標裝甲DT大於0,就把裝甲DT除以彈藥傷害修正的除數:DT=armDT/amY
. - 傷害淨值減去修正後的裝甲DT:ND=ND-DT,如果小於等於0就等於沒傷害然後進行下一次迴圈或離開。
. - 檢查目標裝甲DR,小於等於0就跳到第13步,另外彈藥DR修正值不得為正數,如果是正數就修改為同絕對值的負數。
. - 把彈藥DR修正值加上目標裝甲DR:armDR+amDRM
. - 檢查戰鬥難易度設定值,若CD大於100目標裝甲DR就減20(CD'=-20),小於100則目標裝甲DR加20(CD'=20),然後計算出目標DR總值:DR=armDR+amDRM+CD'
. - 限制彈藥傷害修正的被除數,最小為1,然後將DR總值除以彈藥傷害修正的被除數:DR=DR/amX
. - 傷害值乘上修正後的裝甲DR,然後除以100,此即為DR減去的傷害量:temp=(ND*DR)/100
. - 傷害值減去DR抵掉的傷害量:ND=ND-temp,如果小於等於0就等於沒傷害然後進行下一次迴圈或離開。
. - 只有在第2步目標裝甲DT與DR皆小於等於0才會進行此步驟,第11步結束不會接到這邊。
.
(A) 如果彈藥傷害修正的被除數小於等於1,且除數大於1,就把傷害值乘以10再除以100,然後加回傷害值中:ND=ND+(ND*10)/100
.
(B) 如果彈藥傷害修正的被除數大於1,且除數小於等於1,就把傷害值乘以20再除以100,然後加回傷害值中:ND=ND+(ND*20)/100
.
(C) 如果彈藥傷害修正的被除數與除數皆大於1,就把傷害值乘以15再除以100,然後加回傷害值中:ND=ND+(ND*15)/100
. - 如果是暴擊(CM>2),就把傷害值乘以暴擊傷害乘數,再除以2,小數捨去(因為只會有0.5):ND=(ND*CM)/2
. - 和原本一樣把各個子彈傷害加總(如果是用連發攻擊)就是遊戲中顯示出來的傷害值了。
※在不考慮流程順序的情況,單發傷害計算可用數學式表達如下:
變動最大的是彈藥傷害修正值的代表意義,從傷害倍數變成DT與DR的除數。原版除了武器有貫穿屬性或暴擊擲出穿甲效果之外無法修改裝甲DT,彈藥只能影響DR,而YAAM則是先扣DT,等到DT扣完才能去動DR。v5可以同時減少裝甲DT與DR,也由於Glovz一開始設計時有考慮到和遊戲原本的彈藥參數相容,所以就算不修改彈藥proto檔也能讓JHP和AP的特性發揮出來,只是一些彈藥的擊穿DR效果會變得太過有效,而能量武器的傷害也不會有變動,激光還是一樣弱。
Glovz提出的新彈藥參數如下表:
彈藥 | AC修正值 | DR修正值 | 彈藥X值 | 彈藥Y值 | 10mm JHP | 0 | 0 | 2 | 1 | 10mm AP | -5 | 0 | 1 | 2 | .44 Magnum JHP | 0 | -10 | 2 | 1 | .44 Magnum FMJ | -5 | -10 | 2 | 2 | .223 FMJ | -15 | -15 | 2 | 2 | 12 ga. Shotgun Shells | -15 | 0 | 3 | 1 | 5mm JHP | 0 | -15 | 2 | 1 | 5mm AP | -5 | -15 | 1 | 2 | 14mm AP | -5 | -30 | 1 | 2 | 7.62mm | -10 | -20 | 2 | 2 | 9mm Ball | 0 | 0 | 1 | 1 | 9mm | 0 | 0 | 2 | 1 | .45 Caliber | 0 | -5 | 2 | 1 | BB's | 0 | 0 | 1 | 1 | HN Needler Cartridge | -20 | -5 | 1 | 1 | HN AP Needler Cartridge | -20 | -5 | 1 | 2 | 4.7mm Caseless | -5 | -25 | 1 | 2 | 2mm EC | -25 | -20 | 1 | 3 | Flamethrower Fuel | -20 | 0 | 1 | 1 | Flamethrower Fuel MKII | -20 | -15 | 1 | 1 | Explosive Rocket | -10 | 0 | 1 | 1 | Rocket AP | -10 | 0 | 1 | 2 | Small Energy Cell | -20 | 0 | 2 | 1 | Micro Fusion Cell | -20 | 0 | 2 | 1 | Robo Rocket Ammo (此彈種實際上沒有武器使用) | -10 | -10 | 1 | 1 |
他也做了個HTML/JavaScript版本的傷害計算機,可以列出各彈藥對上所有裝甲的傷害數值,同時列出原版數值供對照:http://di.proximitystore.com/newCalculator.html(原網頁已死,附件的RAR檔裡面有。)
Glovz傷害計算修正整套用下來,.223與7.62mm的連發武器會比原版更強悍,特別是對上重裝甲目標。明顯例子之一就是Enclave鑽油平台最後一段,因為Frank Horrigan是占多個六角格的人物,機槍砲塔的掃射攻擊判定不太會偏到其他目標,現在它們吃.223 FMJ的Heavy Dual Minigun對他一掃很容易就傷害上一兩百(單發4~10),在開啟反暴動模式下他幾乎活不過一個完整回合,當然要是沒開反暴動模式的話就換你痛苦了,就算全隊都穿動力裝甲也討不到什麼便宜。
使用方法:
Glovz傷害計算修正是藉由sfall運作,3.2版之前用的還是有問題的舊版源碼,3.3版之後才是現在這個公式。使用Glovz傷害計算修正只要打開ddraw.ini確認DamageFormula=1即可。若設定成DamageFormula=2則是使用暴擊傷害倍率有調整過的版本:暴擊傷害 = ND + (ND * 25% * CM),原本是暴擊傷害 = ND * CM / 2。
如果想套用上面新的彈藥參數,可以下載附件的Glovz_Fix2.rar,把裡面的內容解壓縮到Fallout2主文件夾內,其中gl_ammomod.ssl是腳本源碼,如果你有興趣看的話。這個全域腳本是我參考JimTheDinosaur的原版重寫一份而來的,加上了可調整AC修正值的部份,與避免INI檔不存在時會寫入錯誤數值進彈藥參數內的問題。
想自己修改彈藥參數只要編輯AmmoGlovz.ini內的項目就好,可以調整的參數有AC修正值、DR修正值、彈藥X值、彈藥Y值四項,這做法省去了修改一堆proto檔案的麻煩事,不想用了也只要移除AmmoGlovz.ini與gl_ammomod.int,不用再去一個一個把修改過的proto檔案刪除或改回來。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|