小屋創作

日誌2024-05-01 15:59

地形補正LE的算法

作者:大山

地形補正

遊戲內顯示為LE。有分三種LE:
「0%、15%、30%」。

大部份的遊戲攻略,介紹到LE時,通常都會寫「當角色停在有地形補正的位置時,防禦力會上升」。至於是上升多少?玩家都會直覺地認為是15%與30%,畢竟遊戲內它就那樣顯示。

不過真的是上升15%或30%防禦力嗎?怎麼我常常會覺得打出來的傷害與預期中的不一樣呢?

假設我的攻擊力30,敵人防禦力25,當我攻擊他時,「普攻傷害」應該是
"30-25 = 5"

如果這時敵人站在LE30%的地面上,他的防禦力應該會變成
"25+25*0.3 = 25+7.5 = 32.5"

我的攻擊力只有30,比他的防禦力32.5還低,照理來說應該只能打他1滴(最低傷害)才對。但事實上我打他還是會有4滴,這樣就跟上面講內容有出入了。

這幾天在研究必殺技傷害時,順便研究了一下LE實際算法,花了很多功夫才得到了一條最接近測試數據的算法了。不保證絕對正確,但我也找不到能推翻這算法的例子了,說是正確解答應該也行吧!

來,先說結論:

LE效果不是提升15%或30%防禦力,而是"降低普攻傷害量"。
而且也不是降低15%與30%,而是10%與20%。

以下說明



測試環境:

①我方攻擊力7~19。因為20之後,傷害高於14會開始產生浮動值,所以攻擊力20後的數據可以先無視。
②三位同樣的敵人,防禦力皆設定為6。
③敵人的LE分別設定為:0%(改為飛空)、15%(站在草地)、30%(站在森林)。

分別對這三位敵人進行普攻,會得到下圖的E、F、G欄。

E欄是LE0%,因為完全不影響傷害輸出,所以等於最基本的普攻傷害 ( 我方攻擊力 - 敵方防禦力 )。
F欄是攻擊LE15%的敵人所得到的數據。G欄是30%。

再來看I~L欄 (LE15%的相關數據)

將E欄的數據乘0.1,就會得到I欄的數據。
再將E欄(普攻傷害) - I欄(LE15%減傷值),會得到J欄的數據。
而這遊戲通常都是小數點無條件捨去,所以將J欄的小數點去掉,會得到L欄的數據。
將L欄與F欄做比對,是完全吻合的。


再來看看N~Q欄 (LE30%的相關數據)

將E欄的數據乘0.2,就會得到N欄的數據。
再將E欄(普攻傷害) - N欄(LE30%減傷值),會得到O欄的數據。
而這遊戲通常都是小數點無條件捨去,所以將O欄的小數點去掉,會得到Q欄的數據。
將Q欄與G欄做比對,是完全吻合的。

由上面的情況來推理LE的減傷機制,應該是:

普攻傷害 - 地形減傷 = 實際普攻傷害
  X    Y     Z (小數點無條件捨去)

X = 普攻傷害 = 我方攻擊力 - 敵方防禦力
Y = 地形減傷 = 0.1X 或 0.2X
Z = 實際普攻傷害 = X - Y ,小數點無條件捨去

補充:「不能直接把X乘0.9或0.8就好嗎?」
不行,這遊戲的加減乘除都是很一板一眼的在算,不能偷吃步。
而且那算法會讓結果有差異,因為原算式裡面還有"小數點無條件捨去"這個因素在干擾。


或許有人會說:數值那麼小,怎麼算都會很接近吧?而且採樣數那麼低,只有攻擊7~20的數據,不夠當做證據吧。
馬囧:我這不是來了嗎.jpg

測試環境:

①我方攻擊力101。
②三位同樣的敵人,防禦力皆設定為1。
③敵人的LE分別設定為30%(站在森林)、15%(站在草地)、0%(改為飛空)。

由於浮動傷害的關係,普攻傷害100時,浮動後的傷害會落在86~114之間。怎麼算出來的?去敲LE0%的敵人一千次做採樣,得到的數據便是如此。P.S.最大值與最小值出現率很低

而在LE15%的情況下,浮動傷害會變成78~102。(一樣敲了一千次做採樣)

LE30%,69~91。(ry

將這三組數據的最大值與最小值,代入上面說的 X - Y = Z 公式裡,會得到圖片上Q欄~V欄的結果。

LE0% 最大值 114

114 - 0.1*114 = 114 - 11.4 = 102.6 小數點捨去 = 102。剛好是LE15%的浮動傷害最大值 102。
114 - 0.2*114 = 114 - 22.8 =  91.2 小數點捨去 = 91。剛好是LE30%的浮動傷害最大值 91。

LE0% 最小值 86

86 - 0.1*86 = 86 - 8.6 = 77.4 小數點捨去 = 77。接近表上的最小值78。
86 - 0.2*86 = 86 - 17.2 = 68.8 小數點捨去 = 68。接近表上的最小值69。

不過實際上我凹不出LE15%的77,與LE30%的68。應該是還有其他隱藏機制沒被測出來。我認為是浮動傷害值最小值應該是86.7,但因為遊戲機制,小數點被捨去所以只會看到86。如果是86.7的話,最小值算起來就會是78與69了。至於為什麼會是86.7?因為13.3這數字,常在這遊戲內的很多地方開始產生奇怪效果,例如傷害浮動是在14後才開始產生、行動順序不按照素早也是從14開始出現異常。我也不知道為什麼會這樣,就…就很玄?
如果傷害值能夠多一位數到達1000,或許就可以測出正確的浮動值了,只是(還好)這遊戲的攻擊力最多只到255。(不然我就又要凹到吐血了)

結論:

















0

0

LINE 分享

相關創作

LOVE機率

我流傷害算法

各式必殺技資訊,先弄一弄以後用得到

留言

開啟 APP

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

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