[閒聊] 藍寶在紅藍方會因為代碼緣故傷害不一樣

作者: kemonoleader (kemonoleader)   2025-07-28 12:01:03
https://b23.tv/6luxqnB
B站連結 不喜誤點
-經測試,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(快速位移)→ x0.9 → N=0或1(1的概率更大)
崔絲塔娜W(慢速位移)→ x1.5 → N=1或2
佐伊R(0.75秒)→ x3.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場職業比賽
作者: kemonoleader (kemonoleader)   2025-07-28 12:03:00
這樣差不多等於紅方藍寶自帶少10%傷害debuff?
作者: sdfg014025xx (隨便就好)   2025-07-28 12:03:00
問就是機制
作者: roger2623900 (whitecrow)   2025-07-28 12:04:00
問就是機制
作者: kemonoleader (kemonoleader)   2025-07-28 12:05:00
內文是影片作者寫的下方簡介 所以文章內用的是對面的英雄稱呼
作者: frostdumplng (冷凍水餃)   2025-07-28 12:07:00
ok 紅方別選藍寶
作者: crazy6341556 (power_spike)   2025-07-28 12:29:00
吼吼 抓到囉
作者: ghytrfvbnmju (青色微藍)   2025-07-28 12:49:00
要是叫紅寶就不一樣了
作者: crazy6341556 (power_spike)   2025-07-28 13:17:00
總傷害一樣的前提是站著燒滿 dot延遲 在後面的很多實例中證明 會真的少一段
作者: GA2006165027 (GA2006165027)   2025-07-28 14:47:00
藍寶在藍方有加成也是很合理吧?
作者: SC30Warriors   2025-07-28 17:38:00
不是 你這樣在藍方拿藍寶的counter位還被單殺的很尷尬
作者: lzyamos99032 (lzyamos99032)   2025-07-30 05:26:00
藍寶藍方強正常

Links booklink

Contact Us: admin [ a t ] ucptt.com