關(guān)于賽爾號傷害計算公式的一個小知識以及計算器中的一些錯誤

本文僅討論本人所發(fā)現(xiàn)的一些小問題,實驗次數(shù)有限,過程較為簡單,因此可能有疏漏以及錯誤,歡迎指出。
如果你打開瀏覽器搜索賽爾號傷害計算公式,你可能會得到這個結(jié)果:
(0.84×攻擊方攻擊/防御方防御×技能威力+2)×克制系數(shù)×本系加成1.5×(0.85~1)
本專欄所討論的地方就在于上述公式中標(biāo)紅部分,即浮動參數(shù)。
實際上我們知道,相比于上式,賽爾號傷害計算公式更準(zhǔn)確的寫法應(yīng)為:
(0.84×攻擊方攻擊/防御方防御×技能威力+2)×克制系數(shù)×本系加成1.5×(217/255~1)
通過這個式子我們可知,游戲內(nèi)的傷害計算公式中,攻擊方攻擊、防御方防御、克制系數(shù)以及是否有本系加成都是固定參數(shù),當(dāng)對線雙方精靈面板、特性、技能威力以及寶石明確時,得出的最大傷害值是固定的,那么進(jìn)行一次攻擊后,我們所看到的最終傷害值唯一的懸念就取決于浮動參數(shù),即217/255~1。
為了方便測試公式在游戲中的具體體現(xiàn),我選擇了草系和自然冰兩個屬性分別作為被攻擊方和攻擊方,因為克制系數(shù)高,最終所得結(jié)果更高,當(dāng)浮動值取不同參數(shù)時,差距更大,更方便觀測并得出結(jié)論。以下是兩只精靈的面板,雙方均無任何增減傷。


艾絲可玲使用150威力的刺骨寒氣,以下為計算器得出的計算結(jié)果:

以下為一部分測試結(jié)果:
1611——對應(yīng)情況為1842×223/255=1610.84
1791——對應(yīng)情況為1842×248/255=1791.43
1770——同上,1842×245/255=1769.76
1625——1842×225/255=1625.29
1582——1842×219/255=1581.95
1690——1842×234/255=1690.31
1741——1842×241/255=1740.87
從上述結(jié)果不難看出,傷害的最終數(shù)值不同于游戲內(nèi)精靈面板數(shù)值,在精靈面板計算中,某項面板的最終結(jié)果若不是整數(shù),則多余的小數(shù)部分不管多高都會直接舍去。根據(jù)上述結(jié)果可知,游戲內(nèi)的傷害計算是明顯存在四舍五入的情況的。
除此之外的一點就是很多計算器的傷害計算浮動以及擊殺概率的誤差,很多計算器在計算擊殺概率時,會直接按照傷害浮動上下值的差作為分母,并將滿足擊殺的最低數(shù)值以及以上部分作為分子,直接得出擊殺概率。然而根據(jù)我個人的測試,最終傷害在游戲內(nèi)的表現(xiàn)也是最高傷害的結(jié)果在217/255~255/255中隨機乘以一個分?jǐn)?shù),即只有39種結(jié)果,而非完全隨機的數(shù)值。簡單來說,比如上述例子中最高傷害是1842,當(dāng)浮動為254/255時,傷害值為1835,浮動為255/255即最高浮動時,傷害值為1842,那么在1835-1842之間的幾個傷害數(shù)值則不會出現(xiàn),也就是上述對線情況不會打出1836、1837這種處于相鄰的兩個浮動值區(qū)間內(nèi)的傷害。
目前的傷害計算器中存在的誤差就在于,每一次進(jìn)行傷害模擬會直接隨機取傷害范圍內(nèi)的任意一個整數(shù),經(jīng)過我的個人測試,這種方法計算出的某些結(jié)果在游戲中無法得出,比如下面的模擬結(jié)果:

那么由于傷害取量存在些錯誤,計算擊殺結(jié)果也會相應(yīng)的出現(xiàn)一些問題:
為了更直觀的看出問題,以下模擬選擇的是650特攻精神烏拉強化+1,6級威力神秘石打545特防堅硬,1040體力的星皇,可以看到最高傷害浮動為1041,擊殺概率為0.65%,然而實際上,如果按照傷害計算公式的計算方式來看,能擊殺的情況只有一種,即傷害浮動最高,1041×255/255=1041這種情況,也就是分子在217~255這段區(qū)間中,必須取到255這一種情況,那么可知擊殺率則為1/39=2.56%,而非0.65%,同理,若上述說法正確,則游戲中其他各種情況的擊殺率也都按照x/39去計算結(jié)果,x即為滿足擊殺條件傷害的浮動參數(shù)數(shù)量,比如最后一張圖中模擬展示的結(jié)果,若有粉白則要減去后再進(jìn)行計算。



本專欄討論的問題在實戰(zhàn)中可能影響不大,也很少有人會在乎擊殺率、浮動值的一些微小差別,但我認(rèn)為即使簡單也是有討論的必要的。計算器存在的傷害計算問題還有弱化等級計算錯誤等等,已經(jīng)被其他玩家所發(fā)現(xiàn)。因此在游戲中,也要聯(lián)系實際再根據(jù)已有知識去探索、討論,也正是因為一直有玩家能做到遇到實際問題后去思考和測試,才能發(fā)現(xiàn)游戲中的各種判定問題。