傳奇鑰石中的打斷:踢斷、控制,以及那些必須打斷的施法
在路線之後,打斷是鑰石裡時間藏身的第二個地方,也是日誌最容易被讀錯的地方。這份指南就是我們在 Keystone Delta 裡搭建打斷統計時學到的東西,包括真正花掉幾個小時的坑,以及一位朋友的糾正。
遊戲用的那個標記
沒有任何姓名板插件自己維護一份危險施法清單。Plater、Platynator、Details 的施法條和暴雪自帶的施法條,都只向客戶端問同一個問題:C_Spell.IsSpellImportant(spellID),它在 12.0 修補檔中為「不打斷就會致命的法術」而加入,並按其答案把施法條塗紅。這個標記只存在於客戶端。它不在可下載的法術資料表裡,Warcraft Logs 也不暴露它。我們在每個修補檔之後到遊戲裡把它匯出來,作為每一行打斷紀錄上的紅色 must stop 標籤發布。按地城分的完整清單,連同施放每個法術的怪,就是必打斷施法頁面。
必須應對,不等於必須打斷
這個標記指的是必須應對的施法,而不是必須打斷的施法。在 Altar of Fangs,Evolve 只能靠控制來解決(Evolved 根本不是施法,而是 Evolve 引導完成後怪物獲得的增益),而 The Writhing Coil 的引導會在你跑出範圍時自行中斷。我們工具的第一個版本,對每一個被標記且成功命中的施法都寫著「當時打斷是好的」;一位讀了自己報告的守護德魯伊發現了這個問題。現在只有當 Archon 針對該地城的可打斷清單裡點名了它,或者兩份日誌中有一份顯示確實有打斷阻止過它時,這個施法才被當作可打斷。我們那個示例裡四十六個被標記的施法中,有十四個屬於另一類,它們被標註為「不是打斷:移動或控制」,並被排除在打斷帳之外。
Warcraft Logs 記錄了什麼,它的表又在哪裡是瞎的
Warcraft Logs 上的 Interrupts 表是由 interrupt 事件建構的。它在兩個對傳奇鑰石很關鍵的地方是瞎的。
打斷施法條的控制技能會被記成一條 interrupt 事件,卻不帶造成它的那個法術。在我們的日誌裡,電能圖騰、致殘咆哮、致盲之光、制裁之錘、致盲和颱風都是這樣,一場紀錄裡出現了十五次,而表格把它們歸到「沒有法術」下面。從事件重建就能修好:取每一次敵方施法的開始,給它一個到該施法者下一個動作為止的時間窗,然後在窗內比對該施法者實例上的 interrupt 事件。在同一份日誌裡,Envenom 的被阻止次數從 33 變成了 40。
打斷引導的控制技能,根本不會留下任何 interrupt 事件。Warcraft Logs 只為被打斷的施法條合成這種事件,而引導沒有施法條。唯一的痕跡,是引導中途落在施法者身上的那個負面效果。毫秒級時間線證明了這一點:Evolve 在 690.87 開始,咆哮在 692.89 落在那隻 Evolutionist 身上,怪轉為近戰,並在咆哮一掉就開始新的施法。所以工具還會讀取施加在敵人身上的控制類負面效果,施法途中落在施法者身上的光環,會算作一次歸給該光環來源的阻止。這讓一位玩家的阻止次數從 6 變成了 15。
引導和硬讀條的算法不一樣
硬讀條會發出一個開始事件,讀完的話再發一個 cast 事件。引導則只在開始時發一個 cast 事件,結束時什麼都不發。把引導的 cast 事件當成「成功命中」,會讓 Evolve 讀成「12 次裡成功 10 次」,可其中十次都在六秒引導的第三秒就結束了,只有兩次撐得夠久才有意義。完整時長是到該施法者下一個動作為止的最長間隔;低於它 90% 的都算「被截斷」,用剪刀圖示標出。被日誌說不清的東西截斷的引導,就一直是「被截斷」;沒有事件支撐,工具絕不會把它算到某位玩家頭上。
仍然看不見的兩件事
落在兩次施法之間的控制會攔下下一次施法,卻什麼都沒留下可以統計。還有,當兩個人阻止了同一次施法時,只有第一個人被計入。這兩點都是資料的限制,而不是解讀的限制。
打斷帳
按每場紀錄來算:隊伍每分鐘的打斷加制止次數,對照它需要應對的必打斷施法。當工具建議連拉兩波時,它會把兩波分開拉時的必打斷施法起始點壓縮到合併後那一波的秒數裡,看看打斷的供給夠不夠;建議會把這個結論作為標籤帶上。只有當打斷跟得上時,連拉才算建議。 第三個標籤「機制」說明合拉的一波裡是否有隨怪物數量疊加的東西:死亡時觸發的技能或沒有任何按鍵能阻止的傷害,靠的是編排而不是治療。
怎麼讀這張表
按敵方法術分行:開始、被阻止(打斷和控制分開,註明是誰、用了什麼)、命中、被截斷。「開始」不等於「被阻止加命中」:施法者或其目標死亡時施法也會結束。排序把必打斷的放在最前。只有當該施法至少被阻止過一次,或者它帶有標記時,才會出現這一行;否則地城裡每一個不可打斷的施法都會寫著「沒人阻止它」。
沒有施法條的標記法術永遠不會成為一行。遊戲除了標記施法本身,還標記怪物引導完成後獲得的增益(來自 Evolve 的 Evolved)和普通光環(Tempest Stormshield、Deep Corruption),而在日誌裡它們看起來和引導開始一模一樣。施法時間和引導標誌讀自客戶端資料表;兩者都沒有的,就顯示為施法帶來的結果,絕不顯示為「命中」的施法。
常見問題
必打斷標記是從哪來的?
來自 WoW 客戶端本身:C_Spell.IsSpellImportant,姓名板插件正是呼叫它來把施法條塗紅的。可下載的法術資料和 Warcraft Logs 的 API 裡都沒有它,所以要在每個修補檔之後到遊戲裡匯出。
為什麼 Warcraft Logs 顯示的打斷次數比 Keystone Delta 少?
Warcraft Logs 的表把被控制或擊退打斷的施法條歸到「沒有法術」下,而被控制打斷的引導則根本不產生 interrupt 事件。Keystone Delta 會用施法起始、interrupt 事件,以及落在施法者身上的控制類負面效果,把這個數字重新還原出來。
每個必打斷施法都要靠打斷嗎?
不是。有些被標記的施法要靠走出去或者用控制來應對。只有當 Archon 或 Method 把它列為可打斷,或者兩份日誌中有一份顯示確實被打斷阻止過時,Keystone Delta 才會把它算進打斷帳。