該UP主表示紅色方蘭博存在嚴(yán)重的傷害缺失bug長達(dá)14年;并且這個(gè)bug過于隱蔽,多年沒人發(fā)現(xiàn);這個(gè)bug影響了很多關(guān)鍵的比賽 很多戰(zhàn)隊(duì)可能因此拿不到s冠。
后續(xù)評論中有網(wǎng)友整理出了LPL與LCK兩個(gè)賽區(qū)蘭博紅藍(lán)方的勝利,其中LPL蘭博藍(lán)勝71藍(lán)敗45,61.2%;紅勝37紅敗47,42.5%。而LCK蘭博藍(lán)勝64藍(lán)敗35,64.6%;紅勝46紅敗55,45.5%。
該UP主原帖內(nèi)容:
-經(jīng)測試,Q/R技能的總傷害、傷害段數(shù)和單次傷害在紅藍(lán)方均相同。
現(xiàn)可通過游戲內(nèi)簡易測試復(fù)現(xiàn)該bug:
Q技能:施放Q后立即垂直移動(dòng)(不使用閃現(xiàn))。藍(lán)方蘭博對紅方英雄至少造成3段傷害,而紅方蘭博對藍(lán)方英雄僅造成2段傷害。
對小兵則雙方都至少造成3段傷害。該測試需要極其精確的鼠標(biāo)點(diǎn)擊且不穩(wěn)定,因難以確保Q持續(xù)時(shí)間精確到毫秒級。
注意:必須使用兩個(gè)游戲賬號才能觸發(fā)該bug,使用假人無效。
R技能:由于R的debuff會(huì)顯示在狀態(tài)欄,測試更簡單。最簡易方法是讓樂芙蘭用W(魔影迷蹤)穿過蘭博大招。藍(lán)方蘭博會(huì)對紅方樂芙蘭造成2段傷害,而紅方蘭博對藍(lán)方樂芙蘭僅造成1段傷害。
這顯然是bug,因蘭博R的debuff持續(xù)1秒且每0.5秒造成傷害,理應(yīng)始終至少2段傷害。僅造成1段即為bug。
注意:極低概率樂芙蘭穿過R時(shí)不受任何傷害,該情況在雙方都可能出現(xiàn)。
既然已證明Q/R當(dāng)前存在導(dǎo)致紅方蘭博丟失傷害的bug,下面詳細(xì)說明傷害丟失的條件與原因:
R技能分析:
蘭博R施加1.00秒灼燒debuff,可通過狀態(tài)欄圖標(biāo)觀察??梢姰?dāng)圖標(biāo)轉(zhuǎn)到3點(diǎn)鐘方向(持續(xù)時(shí)間的1/4處)時(shí)會(huì)重置(刷新為1.00秒)。
這意味著蘭博R每0.25秒就會(huì)施加新的1.00秒灼燒debuff,重復(fù)施加會(huì)將持續(xù)時(shí)間刷新為1.00秒。
測試時(shí)使用樂芙蘭W、崔絲塔娜W和佐伊R來確保單位在R中停留固定時(shí)長,但發(fā)現(xiàn)傷害不穩(wěn)定,因debuff施加次數(shù)不穩(wěn)定。
這是由于單位進(jìn)入R的時(shí)刻與R的0.25秒傷害檢查未同步所致。蘭博R每0.25秒檢查一次——若單位碰撞箱在此時(shí)刻與傷害區(qū)域重疊,則施加1.00秒灼燒debuff。
為簡化說明,暫不考慮Tick舍入問題。
設(shè)x = (在R中停留時(shí)間)/0.25
將x分解為整數(shù)和小數(shù)部分:x = |x| + {x}
debuff施加次數(shù)(N)為:
N = |x| + Bernoulli({x})
其中Bernoulli({x})是以概率{x}為1、1?{x}為0的隨機(jī)變量。
例如:
樂芙蘭W(快速位移)→ x≈0.9 → N=0或1(1的概率更大)
崔絲塔娜W(慢速位移)→ x≈1.5 → N=1或2
佐伊R(0.75秒)→ x≈3.5 → N=3或4
經(jīng)大量測試發(fā)現(xiàn):
當(dāng)N=1,2,3,4時(shí),藍(lán)方蘭博造成2,2,3,3段傷害,紅方蘭博造成1,2,2,3段傷害。
結(jié)論:當(dāng)N為奇數(shù)時(shí),紅方蘭博比藍(lán)方少1段傷害;N為偶數(shù)時(shí)雙方傷害相同。
進(jìn)階測試方法:
我設(shè)計(jì)了一種巧妙方法,使紅藍(lán)方技能時(shí)間精確到毫秒級同步:
讓紅方蘭博同時(shí)對藍(lán)方英雄和假人施放R。
原理:
? 傷害和狀態(tài)計(jì)算按固定順序處理,很可能基于單位ID優(yōu)先級:
藍(lán)方英雄 > 紅方英雄 > 假人/小兵
bug觸發(fā)條件:
? 當(dāng)?shù)蛢?yōu)先級單位(紅方蘭博)傷害高優(yōu)先級單位(藍(lán)方英雄)時(shí)觸發(fā)bug
? 當(dāng)高優(yōu)先級單位(藍(lán)方蘭博)傷害低優(yōu)先級單位(紅方英雄/假人)時(shí)不觸發(fā)
因此紅方蘭博對目標(biāo)假人的行為與對藍(lán)方蘭博對紅方英雄相同,使我們能同時(shí)觀察兩種場景且時(shí)間完全同步。
R技能發(fā)現(xiàn):
? 目標(biāo)站在R起點(diǎn)時(shí),雙方均受10段傷害
? 目標(biāo)站在R終點(diǎn)時(shí),雙方均受9段傷害
? 存在中間位置使一方受9段、另一方受10段,因?yàn)閮蓚€(gè)偶數(shù)中間必有一個(gè)奇數(shù)
我們可以發(fā)現(xiàn):
? 紅方蘭博R對藍(lán)方英雄有0.25秒傷害延遲
? 傷害不同步——紅方蘭博的傷害會(huì)在目標(biāo)間交替生效
Q技能發(fā)現(xiàn):
? 蘭博Q每秒造成4次傷害(每0.25秒1次)
? 紅方蘭博Q對藍(lán)方英雄有約0.25秒傷害延遲
? 若Q被提前打斷,紅方蘭博會(huì)少1段傷害(如2:1、3:2等)
這意味著每次線上Q換血都可能丟失傷害,嚴(yán)重影響紅方蘭博表現(xiàn)
丟失段數(shù)還會(huì)影響符文(如奧術(shù)彗星)和裝備(如蘭德里的苦楚)
bug起源推測:
蘭博Q/R被歸類為DOT-AOE傷害,在引擎層(AOE)和腳本層(DOT)表現(xiàn)不一致
這導(dǎo)致了蘭博代碼在引擎層與腳本層存在隱形耦合
即傷害計(jì)算與狀態(tài)計(jì)算存在耦合
這種矛盾可能引發(fā)基于服務(wù)器幀優(yōu)先級的傷害計(jì)算的時(shí)序bug。
我懷疑:
原始bug(紅藍(lán)方傷害不均)被"修復(fù)"的方式是給紅方蘭博添加延遲,雖"平衡"了總傷害卻制造了更隱蔽的新bug
即設(shè)計(jì)師將一個(gè)小bug修成了一個(gè)更隱蔽的大bug
該bug影響14年來的數(shù)億局游戲,包括約3000場職業(yè)比賽
24直播網(wǎng)是一個(gè)專門提供全球各類體育比賽在線直播的網(wǎng)站,為廣大體育迷提供了一個(gè)便捷、快速、高清的NBA直播、高清的CBA直播、五大足球聯(lián)賽直播觀賽平臺(tái)。
Copyright ? 2022-2025 24直播網(wǎng). All Rights Reserved. 黔ICP備17003197號-2
網(wǎng)站地圖