方法与口径

METHODS & DEFINITIONS

每个指标怎么算的、阈值多少、排除了什么,都写在这。所有数值由 demoparser2 确定性解析、全精度落盘,可旁路复现(见仓库 VERIFICATION.md)。

速查 —— 每张卡怎么算

demos(.dem×114) → demoparser2 确定性解析 → 6 张 parquet 表 → 卡片。排名一律每回合率(消盘数偏置) · 小样本 Wilson 下界 · 伤害按剩余血封顶 · 已对账 HLTV。

卡片分三种性质(首页可按此筛选):猜想=提出可证伪命题并给出验证结果(相关系数/证伪结论);榜单=谁最X的排行;画像=打法风格描述,不判强弱。之前统一叫"猜想"名不副实,已改。

机械 / 瞄准8
整体急停控速各吃急停武器开火速度÷T;按果断率(0.3T–T,停进准射区就立刻开)排,过度停火/跑打都扣分
AK-47 控速同上,仅 AK 的移动开火(is_sample);按果断率排
左右手协调散点:X=急停成功率 × Y=步枪首枪命中率
步枪首枪命中率每段交战第一枪,开火后 ≤4tick 内有伤害 = 命中
扫射修正首枪没中后 ~0.75s 内补中 ÷ 首枪没中次数
扫射转移一条连续扫射(间隔≤16tick)打死≥2人,后续即转移杀;场均转移杀
每杀命中数100 ÷ 平均每发原始伤害(几发命中放倒满血人,HP无关,越低落点越狠)
爆头率随距离各距离段爆头率,对比全体同段平均
对枪 / 残局17
KAST杀/助攻/存活/死后3s被队友报仇 任占其一=有效回合;有效回合÷参与回合,HLTV 同名口径,门槛≥150回合
T 进攻首杀稳健率T 侧开局:进攻首杀÷(进攻首杀+进攻首死),排名取 Wilson 95% 下界(小样本压低),实际率见明细,进攻高手榜
CT 防守首杀稳健率CT 侧开局:防守首杀÷(防守首杀+防守首死),排名取 Wilson 95% 下界,实际率见明细,防守高手榜
首杀值不值钱?散点:X=每回合首杀 × Y=首杀回合本队胜率;基线72%,r≈+0.08——转化率与人无关,首杀价值在数量
宿敌对位攻击者→受害者定向击杀计数(≥16),明细带反向+净压制;是遭遇量×压制的混合
数据注水率击杀时本方存活−对方≥2 的优势杀 ÷ 总杀(逐回合按死亡序维护存活数);KPR 含金量视角,门槛≥80杀
被交易率死后 3s 内队友击杀凶手 ÷ 总死亡
交易机会率死后 3s 内有队友造成伤害 ÷ 总死亡(近似)
多杀回合率单回合 ≥3 杀的回合 ÷ 参与回合
破局多杀率均势/劣势下打出的多杀 ÷ 参与回合
1vX 残局Wilson 下界(残局获胜 ÷ 进入残局)
残局先杀率Wilson 下界(进残局后先击杀 ÷ 进入残局)
残血反杀率HP<20 完成的枪杀 ÷ 参与回合
穷局击杀贡献装备<2500 回合的击杀 ÷ 该选手穷局数
手枪王总手枪击杀 ÷ 总地图数(明细拆 CT/T)
双枪王双枪(elite)击杀 ÷ 参赛图数(≥8图&≥4杀)
沙鹰王沙鹰(deagle)击杀 ÷ 参赛图数(≥8图&≥4杀)
走位 / 位置3
慢步占比走路(shift)tick ÷ 移动 tick
每回合移动距离存活时相邻 tick 位移和 ÷ 回合数
游走 × 入场散点:X=每回合移动距离 × Y=入场首杀成功率
道具 / 特技3
隔烟击杀率thrusmoke 击杀 ÷ 参与回合
雷伤 / 回合HE+燃烧实际伤害(dmg_eff 封顶) ÷ 参与回合
道具转化稳健率命中后 4s 内目标死亡 ÷ 命中应用数,排名取 Wilson 95% 下界(小样本压低),门槛降至 ≥12 次纳入更多人,实际率见明细
习惯 / 个案6
硬仗指数打Top5强队(本届地图胜率前五)KPR ÷ 打其余KPR;对手变强人人掉战力,高于全场中位=抗压好;门槛 打Top5≥60回合&其余≥100
donk AK 用量×发挥散点:每场 AK 开火/回合 × 击杀/回合
狙击手依赖度主狙手(狙≥40杀)里非狙击杀占比,越高越不依赖 AWP
CT 定点度CT 击杀点最热 3 格(512)占比,跨图按杀加权;高=架枪定点手,门槛≥40杀
T 游走度1−T 定点度(最热3格占比);高=满图穿插,门槛≥40杀
大心脏指数决胜图(bo3 m3)KPR ÷ 常规图 KPR;>1=关键局更猛;门槛决胜≥40回合&常规≥100
队伍 / 经济7
eco 偷分率队伍维度:eco(人均<2000)打对方长枪(≥4000)获胜率,Wilson 下界排序,门槛≥12对位
长枪翻车率队伍维度:长枪(≥4000)打对方 eco(<2000)落败率,Wilson 下界排序,门槛≥12对位
取胜方式赢的回合里 清场/爆炸/拆·时 占比,按清场占比排;高=枪战队,低=战术队,门槛≥30胜
手枪局胜率第1、13回合胜率,Wilson 下界排序,门槛≥8手枪局
手枪局定江山?散点:X=手枪局胜率 × Y=地图胜率(r=+0.57);均势枪战预测强弱,eco/翻车相关是幸存者偏差
手枪局雪球赢手枪局后紧接 2 回合(反eco段)胜率,Wilson 排序,门槛≥10回合
换边诅咒|T侧胜率−CT侧胜率|,差大=半场偏科;图池效应会混入,门槛两侧各≥50回合

图解 —— 4 个多步指标

大多数卡是一行"率"(计数÷回合),公式即最清楚。下面 4 个有真正的多步过程,画出来更直观。

① 急停判定:开火那一刻速度落在哪一段
急停判定速度下降曲线与三段阈值 180 73=T 22 0 开火速度 u/s 时间 → 开火 v≈48 → 果断(停到刚好就开) 跑打 >T 果断 .3T–T 过度停火 ≤.3T peek ~180 急刹 ↓ 再往下停 = 磨蹭,白费时间
先筛样本(开火前 300ms 速度峰值>100 才算移动开火)。≤T 即恢复精度,所以 0.3T–T「果断区」最优(停到刚好就开、又快又准);≤0.3T 是「过度停火」(准但磨蹭),>T 跑打(不准)。急停成功率仍=(≤T)/样本,但卡片按果断率(果断区占比)排名
② 步枪首枪命中:开火序列 → tick 窗口里找伤害
首枪命中配对开火与命中按时刻配对 开火 命中 时间(tick)→ 首枪 首枪 首枪 命中 窗口内无伤害=未中 命中
同人开火按 >0.5s 间隔切成"每段第一枪"(橙圈);橙框 = 开火后 ≤4tick 窗口,框内 player_hurt 有伤害 = 首枪命中。命中率 = 命中÷首枪数。
③ 1vX 残局 / 残局先杀:逐死亡追踪存活
残局模拟从5v5逐死亡到本队剩1人进入残局 5v5 开局 逐死亡减员 本队剩 1 人(对面≥1) = 进入残局 看下一次交火 先杀 or 先死 先击杀 → 残局先杀率 回合最终获胜 → 1vX 胜率 两个比例都用 Wilson 置信下界排名(小样本更保守),明细给实际率与残局次数。
按死亡顺序模拟两队存活,某队降到 1 人即记一次残局;"先杀率"看残局者下一次交火先击杀的比例,"1vX 胜率"看回合最终是否获胜。
④ 伤害封顶:overkill 砍掉,只算实际扣的血
伤害封顶原始伤害超过剩余血,封顶为实际扣血 100 HP 上限 原始 第1发 60 第2发 58 超出18 dmg_health = 118 封顶后 60 40(剩余血) dmg_eff = 100 逐发取 min(伤害, 受害者剩余血):第2发只剩 40 血,实算 40 而非 58。雷伤/ADR 用 dmg_eff 才对得上 HLTV。
解析出的 dmg_health 是武器原始伤害(含 overkill,max 568);按受害者每回合剩余血逐发封顶得 dmg_eff = 实际扣血。

一、覆盖情况

整届 IEM Cologne Major 2026 共 40 场 / 114 个 demo 文件(含分段 -pN)、80 名选手、约 247K 次开火已解析。当前 44 张猜想卡分布在 机械/瞄准 · 对枪/残局 · 走位/位置 · 道具/特技 · 习惯/个案 · 队伍/经济 六类。

状态指标说明
✅ 已上板 急停成功率/控速、各武器移动开火控速、左右手协调(果断度×首枪命中)、步枪首枪命中率、T进攻首杀、CT防守首杀、被交易率、多杀回合(3K/4K/ACE)、关键多杀(破局)、残局先杀率、交易机会率(近似)、扫射修正、扫射转移、游走×入场、穷局击杀贡献、1vX 残局、每杀命中数(仅步枪)、残血反杀、隔烟击杀、爆头率随距离(对比全体)、雷伤/回合、道具伤害转化率、慢步占比、每回合移动距离、狙击手依赖度、手枪王(场均手枪杀,CT/T)、双枪王、沙鹰王 看板/猜想板可见,旁路核对一致
🔧 已修正 回合归属(回合表错配 + 区间归属)、1vX 残局胜负归一、cs_control 全量排名、ak_control 移动样本口径、残血反杀只算枪械击杀 见下方"四、回合归属与数据正确性修正"
🟡 有混淆因素 被交易率、开局首杀、donk 用 AK 越多发挥越好 是风格/角色指标,不是单纯强弱;卡片已标注,见"五、局限"
🔴 需地图几何 真·反应时间(视线遮挡)、准星预瞄质量、热力图叠雷达 需要地图可见性/雷达资源;暂未做

口径原则 —— 怎么保证"科学"

所有卡片遵循同一套口径,专门避开几个常见统计陷阱:

原则为什么 / 怎么做
排名一律用率/每回合,不用总量 总量榜会让打得多、进决赛的人天然排前(盘数偏置)。多杀、破局多杀、残血反杀、隔烟、雷伤等全部 ÷ 参与回合。
小样本用 Wilson 置信下界(稳健率) 什么意思:同样 67% 命中,打 3 次中 2 次,和打 60 次中 40 次,可信度天差地别——前者很可能是运气。Wilson 下界就是"在统计上有把握不低于多少"的那个保守值:样本越小、扣得越狠,样本一大就贴近实际率。所以排名用它,小样本撞运气的人冲不上去,又多又稳的人才排前。例:T 进攻首杀里 Jame 实际 67% 但只打 15 次 → 稳健率 42%,而 donk 实际 58%/打 62 次 → 稳健率 46% 反超。
用在哪:T/CT 开局首杀、1vX 残局、残局先杀、道具转化——这几张样本本就小(几十次)。其余率卡(被交易、首枪命中、多杀等)样本都 ≥100,Wilson 几乎不改排名,就直接用实际率。明细一律给"实际率 + 样本量",可自行判断。
伤害按剩余血封顶 dmg_health 是武器原始伤害(含 overkill,max 568),先逐回合按受害者剩余血封顶得实际伤害(dmg_eff)再用——经 HLTV 对账才对得上。
急停只统计吃急停的武器 无镜步枪 + 沙鹰;排除 AWP/狙、AUG/SG553 架点枪、冲锋枪、手枪——这些不靠急停。
全量 vs 抽样一致 控速表显示全部合格选手不抽样;排名 verdict 写的分母 = 实际显示的人数,不会"分母全量、视觉截断"。

二、每个指标的精确口径

急停成功率 / 控速(counter-strafe)

筛样本:只看吃急停的真枪开火(AK/M4A4/M4A1-S/Galil/FAMAS + 沙鹰;排除 AWP/狙、AUG/SG553 架点枪、冲锋枪、其余手枪)。对每次开火,取开火前 300ms 窗口(64-tick → 19 ticks)内水平速度峰值;峰值 > 100 u/s 才算"移动中开火"计入样本,否则视为站定、排除。这个标记(is_sample)在解析层就完成,源头纯化(样本里非急停武器数 = 0)。

判定:取开火那一 tick 的水平速度 v 与武器准射阈值 T(T = 最大移速 × 系数:步枪 T≈73、沙鹰≈69)。v ≤ T×0.3 完美 / v ≤ T 合格 / v > T 跑打失败。

成功率 =(完美+合格)/ 样本数;完美率 = 完美 / 样本数。速度是 demoparser 的 velocity 标量(≈水平 2D),全精度比较。各武器移动开火控速卡(如 AK-47)同样只取 is_sample

击杀 / 爆头率 / 特技击杀

来自 player_death。击杀 = attacker 是他的条数(排除空 attacker = 世界伤害)。爆头率 = headshot flag 占比。隔烟(thrusmoke)、空中(attacker_inair)、穿墙(penetrated>0)等都是原生布尔 flag,零推断。爆头率随距离:按 distance 分桶,只算枪械击杀(is_firearm)。

雷伤 / 回合

player_hurt 里武器为 hegrenade/inferno/molotov/incgrenade 的实际伤害求和,÷ 该选手参与回合数(player_rounds 计数),门槛 ≥80 回合,按回合均摊不受盘数影响。
封顶:解析出的 dmg_health 是武器原始伤害、未封顶(把 overkill 过量伤害也算进去,max 竟达 568),故先按受害者每回合剩余血逐发封顶得 dmg_eff 再求和——经 HLTV 对账这样才对得上(donk 封顶后 ADR 88.9 vs HLTV 87.6;未封顶 111 虚高)。

被交易率 / 1vX 残局

都依赖"每选手每回合的队伍"(player_rounds,在 freeze 结束那刻采样)与回合归属。被交易率 = 死后 3s 内队友击杀凶手的比例;1vX = 某队降到 1 人(对面还有人)时该幸存者赢下回合的比例(含 1v1~1v5)。

三、猜想卡示例

donk 用 AK 越多发挥越好

每场算 AK 开火数 / 回合数(横轴)与 击杀数 / 回合数(纵轴),除回合数消除场次长短影响,算 Pearson 相关。相关 ≠ 因果,样本仅几场——卡片已标保留。

四、回合归属与数据正确性修正

一轮交叉验证(独立旁路复现)发现并修正了几处会让数字失真的问题。所有修正都附了复现命令,原始数据已备份(data/_rounds_backup/)。

① 回合表按 tick 重配(原 339 行 end<start)
demoparser 的 round_end.round 编号相对 round_start 滞后错位(尤其分段重开 -pN 的 demo),直接 merge(on=round) 会把回合结束配到错误的开始。改为丢弃不可靠的 round 字段、纯按 tick 配对:每个有胜负的 round_end 配它之前最近的 round_start,按 end 顺序重新编号 1..N。修复后 end<start = 0,回合号连续。

② 击杀回合归属用区间(原 2460 条越界)
原先只用"最近的 round_start"归属,导致回合结束后到下一回合开始前(买枪期)的击杀被算进上一回合。改为要求 start_tick ≤ tick ≤ end_tick,回合外的击杀标 _round=-1 不计入。修复后越界 = 0(177 条买枪期击杀被正确排除)。影响 entry/trade/经济/连杀/残局。

③ 1vX 残局 T 方胜利归一
rounds.winnerT/CT,player_rounds.sideTERRORIST/CT,比较时 "T" ≠ "TERRORIST" 导致 T 方残局胜利永远不计。已加映射归一。

④ 口径修正
cs_control 排名原来用抽样后的分母(donk 显示 10/19),改为全量合格选手(真实 38/76);ak_control 标题"移动开火"却用了全部 AK 开火(混入站定开火把速度拉低),改为只取 is_sample;残血反杀的击杀分母混入了雷/火/刀,加 is_firearm 过滤与开火口径对齐。

四点五、与 HLTV 数据的关系(哪些算"重复造轮子")

诚实回答:确实有一部分卡与 HLTV 的标准指标同口径——但这是故意的,不是无用功。全站的卡分三类:

类型有哪些为什么存在
标准指标(HLTV 也有) KAST、多杀占比、首杀率系、1vX 残局、手枪局胜率 对账锚:我们独立解析出的 KAST/击杀/爆头率/ADR 能对上 HLTV 官方数,才证明整条管线可信——它们是其余所有独有指标的信用背书;同时档案页/猜猜看也要用标准指标当骨架。
HLTV 给不了的(tick 级 / 坐标级) 急停果断率、首枪命中、扫射修正/转移、每杀命中数、CT定点/T游走(击杀坐标)、隔烟、数据注水(逐杀存活差)、宿敌对位 需要逐 tick / 逐事件解析 demo 才算得出,HLTV 网页上没有——这是本站的核心增量。
关系与猜想(谁都不提供) 手枪局定江山(r=+0.57)、首杀值不值钱(零结果)、eco偷分/翻车的幸存者偏差、雪球、换边诅咒、取胜方式、大心脏、硬仗指数 不是给一个数,而是回答一个问题、并点破哪些相关是假象。

同样诚实地说做不了的:赛事分级权重、MVP/EVP 荣誉积分、跨赛事 Rating 曲线——这些需要整赛季多赛事样本,本站只有一届 Major 的 demo。

五、局限(诚实说明)

六、怎么验证我没编造

两层验证。① 旁路复现:任何数都能绕过我的代码、用 demoparser 原生接口自己数一遍核对;回合表修正、击杀归属也能用 data/_rounds_backup/ 对照前后。详见仓库 VERIFICATION.md

② 对账 HLTV 官方数据(逐选手核对 8 名主力):

指标结果
击杀 / K-D / 死亡8 人里 7 人和 HLTV 完全一致(HeavyGod 差 2 杀,demo 解析正常容差)
回合数全部 8 人完全一致(donk 357=357、m0NESY 474=474…)
爆头率对上(donk 62.4% vs HLTV 62.6%)
ADR封顶后对上(donk 88.9 vs HLTV 87.6;未封顶 111 是 bug,已修)
Rating / KAST对不了(HLTV 私有加权公式,无法复刻)

能对 HLTV 的基础/高阶项都对上了,说明底层解析 + 击杀/回合归属准确;HLTV 没有的机械指标(急停/首枪/开火移速)就踩在这套已验证的地基上。