沒BUG就奪冠了紅方蘭博缺傷害BUG存在14年疑似影響了S14決賽

        24直播網
        電競資訊7月28日稱 近日,有B站UP主發布視頻揭露蘭博的BUG,該視頻顯示藍色方蘭博比紅色方蘭博傷害高,隨后逐幀解析紅色方蘭博BUG以及賽事錄像證據。

        該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,可通過狀態欄圖標觀察??梢姰攬D標轉到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場職業比賽

        主站蜘蛛池模板: 清河县| 文安县| 焦作市| 白水县| 开江县| 西乌珠穆沁旗| 津南区| 曲阜市| 彭山县| 昌宁县| 天门市| 阿拉善盟| 黄浦区| 鸡东县| 昔阳县| 故城县| 亚东县| 尤溪县| 延寿县| 大荔县| 进贤县| 鸡泽县| 龙川县| 兴城市| 溆浦县| 威宁| 濉溪县| 永平县| 武川县| 双流县| 共和县| 广德县| 射洪县| 肥乡县| 福州市| 图们市| 靖宇县| 襄汾县| 五原县| 鄯善县| 金昌市|