Skip to Content
VLRdevAPI

比赛回放时间线 (Series Replay)

获取逐回合的击杀日志回放时间线:包含武器与空间坐标的击杀事件、爆弹安放/拆除、复活记录以及存活视角朝向。

series.replay(series_id, game_id) 返回系列赛指定小局地图每一回合的击杀日志时间线(对应 vlr.gg 上的 logs 面板)。

函数签名

series.replay(
    series_id: int,
    game_id: int,
) -> ReplayData

通过柯里化链式访问:

vlrdevapi.series(series_id).replay(game_id: int) -> ReplayData

参数

Prop

Type

返回值 - ReplayData

Prop

Type

辅助方法 round(round_number)

ReplayData.round(n) 接受从 1 开始的回合号,返回对应的 ReplayRound 对象;若该回合无回放数据则返回 None。

ReplayRound 字段说明

Prop

Type

loadout_for(player) 辅助方法

ReplayRound.loadout_for(player) 接受不区分大小写的选手名称(例如 'Derke')或整数 player_id,返回该选手在该回合的 PlayerRoundLoadout,未找到则返回 None。

PlayerRoundLoadout

回合开始时单名选手的买枪阶段装备与经济快照。

Prop

Type

ReplayEvent

回合时间线中的单个事件。type 为 ReplayEventType 枚举(KILL、PLANT、DEFUSE、BOOM 或 RESURRECT;.value 给出小写字符串,.full_name 给出可读标签);derived: True 标记了 vlr.gg 原始日志未作为事件行记录的两种派生类型(爆弹引爆和复活)。

Prop

Type

ReplayActor / ReplayAlivePlayer

Prop

Type

ReplayPlayerRef

Prop

Type

示例

查看第 1 回合击杀日志流水

import vlrdevapi

replay = vlrdevapi.series.replay(series_id=754737, game_id=283288)
print(f"{replay.team1} 对阵 {replay.team2}(共 {replay.num_rounds} 回合)")

for ev in replay.round(1).events:
    who = ev.actor.name if ev.actor else "-"
    print(f"{ev.seq}. {ev.seconds}秒 {ev.type.full_name}: {who}", end="")
    if ev.cause:
        print(f" ({ev.cause})", end="")
    if ev.victim:
        print(f" -> {ev.victim.name}", end="")
    print()

追踪爆弹安放与引爆事件

import vlrdevapi
from vlrdevapi._series.replay.models import ReplayEventType

replay = vlrdevapi.series.replay(series_id=754737, game_id=283288)

for ev in replay.round(14).events:
    if ev.type in (ReplayEventType.PLANT, ReplayEventType.DEFUSE, ReplayEventType.BOOM):
        print(f"{ev.clock or '-'} {ev.type.full_name} 发生在 {ev.site} 包点,坐标 ({ev.pos_x}, {ev.pos_y})")

柯里化链式访问

import vlrdevapi

series = vlrdevapi.series(754737)
replay = series.replay(game_id=283288)
round_1 = replay.round(1)
for ld in round_1.loadouts[:4]:
    print(f"{ld.name} ({ld.agent}): {ld.weapon} + {ld.armor} (花费 ${ld.spent})")

最后更新于

本页内容