該UP主表示紅色方蘭博存在嚴重的傷害缺失bug長達14年;並且這個bug過於隱蔽,多年沒人發現;這個bug影響了很多關鍵的比賽 很多戰隊可能因此拿不到s冠。
後續評論中有網友整理出了LPL與LCK兩個賽區蘭博紅藍方的勝利,其中LPL蘭博藍勝71藍敗45,61.2%;紅勝37紅敗47,42.5%。而LCK蘭博藍勝64藍敗35,64.6%;紅勝46紅敗55,45.5%。
該UP主原帖內容:
-經測試,Q/R技能的總傷害、傷害段數和單次傷害在紅藍方均相同。
現可通過遊戲內簡易測試複現該bug:
Q技能:施放Q後立即垂直移動(不使用閃現)。藍方蘭博對紅方英雄至少造成3段傷害,而紅方蘭博對藍方英雄僅造成2段傷害。
對小兵則雙方都至少造成3段傷害。該測試需要極其精確的鼠標點擊且不穩定,因難以確保Q持續時間精確到毫秒級。
注意:必須使用兩個遊戲賬號才能觸發該bug,使用假人無效。
R技能:由於R的debuff會顯示在狀態欄,測試更簡單。最簡易方法是讓樂芙蘭用W(魔影迷蹤)穿過蘭博大招。藍方蘭博會對紅方樂芙蘭造成2段傷害,而紅方蘭博對藍方樂芙蘭僅造成1段傷害。
這顯然是bug,因蘭博R的debuff持續1秒且每0.5秒造成傷害,理應始終至少2段傷害。僅造成1段即為bug。
注意:極低概率樂芙蘭穿過R時不受任何傷害,該情況在雙方都可能出現。
既然已證明Q/R當前存在導致紅方蘭博丟失傷害的bug,下麵詳細說明傷害丟失的條件與原因:
R技能分析:
蘭博R施加1.00秒灼燒debuff,可通過狀態欄圖標觀察。可見當圖標轉到3點鍾方向(持續時間的1/4處)時會重置(刷新為1.00秒)。
這意味著蘭博R每0.25秒就會施加新的1.00秒灼燒debuff,重複施加會將持續時間刷新為1.00秒。
測試時使用樂芙蘭W、崔絲塔娜W和佐伊R來確保單位在R中停留固定時長,但發現傷害不穩定,因debuff施加次數不穩定。
這是由於單位進入R的時刻與R的0.25秒傷害檢查未同步所致。蘭博R每0.25秒檢查一次——若單位碰撞箱在此時刻與傷害區域重疊,則施加1.00秒灼燒debuff。
為簡化說明,暫不考慮Tick舍入問題。
設x = (在R中停留時間)/0.25
將x分解為整數和小數部分:x = |x| + {x}
debuff施加次數(N)為:
N = |x| + Bernoulli({x})
其中Bernoulli({x})是以概率{x}為1、1−{x}為0的隨機變量。
例如:
樂芙蘭W(快速位移)→ x≈0.9 → N=0或1(1的概率更大)
崔絲塔娜W(慢速位移)→ x≈1.5 → N=1或2
佐伊R(0.75秒)→ x≈3.5 → N=3或4
經大量測試發現:
當N=1,2,3,4時,藍方蘭博造成2,2,3,3段傷害,紅方蘭博造成1,2,2,3段傷害。
結論:當N為奇數時,紅方蘭博比藍方少1段傷害;N為偶數時雙方傷害相同。
進階測試方法:
我設計了一種巧妙方法,使紅藍方技能時間精確到毫秒級同步:
讓紅方蘭博同時對藍方英雄和假人施放R。
原理:
• 傷害和狀態計算按固定順序處理,很可能基於單位ID優先級:
藍方英雄 > 紅方英雄 > 假人/小兵
bug觸發條件:
• 當低優先級單位(紅方蘭博)傷害高優先級單位(藍方英雄)時觸發bug
• 當高優先級單位(藍方蘭博)傷害低優先級單位(紅方英雄/假人)時不觸發
因此紅方蘭博對目標假人的行為與對藍方蘭博對紅方英雄相同,使蜜桃网在线观看视频能同時觀察兩種場景且時間完全同步。
R技能發現:
• 目標站在R起點時,雙方均受10段傷害
• 目標站在R終點時,雙方均受9段傷害
• 存在中間位置使一方受9段、另一方受10段,因為兩個偶數中間必有一個奇數
蜜桃网在线观看视频可以發現:
• 紅方蘭博R對藍方英雄有0.25秒傷害延遲
• 傷害不同步——紅方蘭博的傷害會在目標間交替生效
Q技能發現:
• 蘭博Q每秒造成4次傷害(每0.25秒1次)
• 紅方蘭博Q對藍方英雄有約0.25秒傷害延遲
• 若Q被提前打斷,紅方蘭博會少1段傷害(如2:1、3:2等)
這意味著每次線上Q換血都可能丟失傷害,嚴重影響紅方蘭博表現
丟失段數還會影響符文(如奧術彗星)和裝備(如蘭德裏的苦楚)
bug起源推測:
蘭博Q/R被歸類為DOT-AOE傷害,在引擎層(AOE)和腳本層(DOT)表現不一致
這導致了蘭博代碼在引擎層與腳本層存在隱形耦合
即傷害計算與狀態計算存在耦合
這種矛盾可能引發基於服務器幀優先級的傷害計算的時序bug。
我懷疑:
原始bug(紅藍方傷害不均)被"修複"的方式是給紅方蘭博添加延遲,雖"平衡"了總傷害卻製造了更隱蔽的新bug
即設計師將一個小bug修成了一個更隱蔽的大bug
該bug影響14年來的數億局遊戲,包括約3000場職業比賽