PTT評價

[閒聊] 查詢比賽資料的方法分享

看板LoL標題[閒聊] 查詢比賽資料的方法分享作者
danny901203
(GoldBaby)
時間推噓17 推:17 噓:0 →:1

看了前幾篇 LCK 的數據圖,本來在 PCS 第四週的時候要完成,
不過最後還是太懶了加上有一場的紀錄缺失 (剛剛發現補上了),所以就沒弄了。

這裡來分享幾個可以找到職業比賽完整數據的方法。

1. Oracle's Elixir https://oracleselixir.com/
2. gol.gg https://gol.gg/esports/home/

這兩個應該是大家比較常用的網站,所以就不多作介紹了。
優點是都幫大家整理好了,
缺點是有時候會少幾場資料,或者無法看到自己想看的數據。

接下來分享一個可以用 Leaguepedia 提供的 api 查看完整的數據和遊戲資料:

1. 進入到你想查詢的聯賽頁面
eg. 2022 PCS Summer
https://lol.fandom.com/wiki/PCS/2022_Season/Summer_Season

eg. 2022 LCK Summer
https://lol.fandom.com/wiki/LCK/2022_Season/Summer_Season

2. 查詢每一場的 RiotPlatformGameId (RPGID)
eg. 2022 PCS Summer
https://lol.fandom.com/wiki/Data:PCS/2022_Season/Summer_Season

eg. 2022 LCK Summer
https://lol.fandom.com/wiki/Data:LCK/2022_Season/Summer_Season

就是在原本網址 /wiki/ 後方加上 Data: 就可以了。

3. 有了每一場的 RPGID 後,就可以看到 Riot 有紀錄的結算數據和每分鐘發生什麼事。

3-1. 查看結算數據 eg. 2022 PCS Summer / W1D1 / PSG vs CFO
在步驟二可以知道這一場的 RPGID 是 ESPORTSTMNT03_2820005
透過這個網址 https://lol.fandom.com/wiki/V5_data:ESPORTSTMNT03_2820005 就可以知道原始數據了,如果想看別場就把 V5_data: 後面的 RPGID 換掉。

在 participants 裡面有 10 位選手的結算數據,數據名稱是按照字典序排列的 像是第一個就是 assists (助攻) 接續下去
然後 challenges 那一大格裡面有 111 的小格就是挑戰系統,可以自己對照
https://bit.ly/3zVBY05 ← Reddit上有人整理的清單

提供幾個比較常用的數據:
1. damagePerMinute (DPM)
2. goldPerMinute (GPM)
3. kda
4. killParticipation (KP%) 這項有時候會錯,自己要驗證看看
5. soloKills
6. teamDamagePercentage (輸出佔比)
7. visionScorePerMinute (每分鐘視野分數)
8. doubleKills / tripleKills / quadraKills / pentaKills
9. FB% (首殺率) = (firstBloodAssist + firstBloodKill) / 場次
10. goldEarned (經濟)
11. totalDamageDealtToChampions (對英雄造成的傷害)
12. CS = neutralMinionsKilled (野怪) + totalMinionsKilled (小兵) 13. DPG = totalDamageDealtToChampions / goldEarned

3-2. 查看遊戲每一分鐘發生什麼事 (可用來計算 GD15、CSD15、XPD15)
eg. 2022 PCS Summer / W1D1 / PSG vs CFO
這時候只要在 3-1 的網址後方加上 /Timeline 就可以了
https://lol.fandom.com/wiki/V5_data:ESPORTSTMNT03_2820005/Timeline

因為 PCS 比較常用14分鐘的對位差,所以就用14分鐘來舉例:

首先要先找到 14分鐘 在哪裡?
在 frames → participantFrames 的時間是切成每一分鐘,也就是 60秒,
這裡顯示的單位是 毫秒,所以是 60000ms 一個間隔。
14分鐘就是 840XXX (XXX可以算誤差值,不用管),
就可以 Ctrl+F 搜尋 timestamp 是 840開頭 的欄位,
像這一場記錄到的時間就是 840174。

然後那一大格子會有 10小格 (編號 1~10) (1~5就是藍方) (6~10就是紅方)
要注意的是10號格子在1號格子下面,因為也是按照字典序排列。

對位就是以下格子的數值相減,兩邊呈現相反數
1 ↔ 6 / 2 ↔ 7 / 3 ↔ 8 / 4 ↔ 9 / 5 ↔ 10

GD 看 totalGold
CSD 看 jungleMinionsKilled + minionsKilled
XPD 看 xp

https://i.imgur.com/hnjxNT8.png


如果要看10或15分鐘的對位差距也是以此類推,
搜尋你要的 timestamp 就可以了。

以上就是簡單的查詢方法提供給大家參考,
有時候 RPGID 不一定會有,像是一開始提到缺的那場就是 第一週 DWT vs MFT。(已補上)gol.gg 就沒有那一場的數據 https://gol.gg/game/stats/41516/page-fullstats/

(進階) 接下來再提供想要透過程式來整理數據的方法:

雖然網頁查詢很方便,但是就比較慢,而且有時候可能會看錯,
這時候就可以透過一些簡單的程式。

其實 3-1 和 3-2 的原始資料都是可以透過 api 網址拿到回傳的 json 格式。

1. 將 RPGID 進行 URL編碼
eg. V5_data:ESPORTSTMNT03_2820005 → V5_data%3AESPORTSTMNT03_2820005
(把 冒號: 換成 %3A)

2. 把黃色 RPGID 的地方換成 URL編碼 過的格式

https://lol.fandom.com/api.php?action=query&
format=json&prop=revisions&titles=RPGID&rvprop=content&rvslots=main
(原始網址太長,使用時請自行接回)

縮網址 → https://bit.ly/3Pt6Lai (3-1的資料)
(瀏覽器可以直接點開,如果格式跑掉可以裝擴充 JSONVue 等工具)

如果要看時間軸的資料,也是替換 RPGID 就好了
https://lol.fandom.com/api.php?action=query&format=json&
prop=revisions&titles=RPGID%2FTimeline&rvprop=content&rvslots=main
(原始網址太長,使用時請自行接回)

縮網址 → https://bit.ly/3QsHfTW (3-2的資料)
(瀏覽器可以直接點開,如果格式跑掉可以裝擴充 JSONVue 等工具)

3. 這時候就看你要用什麼程式語言比較方便去接 api 然後解析 json 格式的資料


以上方法分享給大家。

實作可以參考的連結
https://lol.fandom.com/wiki/Help:Leaguepedia_API
https://lol.fandom.com/wiki/Help:ACS_archive_%26_post-game_JSONs

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.207.204 (臺灣)
PTT 網址

bluedp 08/15 04:02先推 好人一生平安

fishpill 08/15 04:15WIKI是真的蠻好抓的

wayne5992 08/15 04:28推分享

IrritaBowel 08/15 04:44推推

IrritaBowel 08/15 04:44感謝用心介紹

Nishiwaki 08/15 07:58推用心

as349349 08/15 08:15還有附api 用心推推

TweLVe1228 08/15 09:06推用心

imwfyl 08/15 09:35

TPPlazycow 08/15 10:19很有用 推

kanding255 08/15 11:01

y12544 08/15 11:26

MadDoggo 08/15 11:57用心推

jlun4mdn12 08/15 12:04用心推

soweiz 08/15 12:06太酷惹,沒想到中立野怪CS是獨立的xD

nothingsun 08/15 12:24

jason35512 08/15 12:51推用心

piyo0604 08/18 19:06補推用心