作为CS2Bot对战玩家,是否想过能将本地对战像各大对战平台一样统计每一场对局的KDA、Rating、回合细节?是否希望有直观的可视化界面,复盘自己的每一次击杀、每一轮攻防?「CS2对局统计」——从服务端插件部署,到Electron桌面端可视化,一站式搞定CS2对局数据的记录与分析。

一、工具简介

「CS2对局统计」是基于CounterStrikeSharp框架开发的CS2数据统计解决方案,包含服务端插件Electron桌面查看器两部分:

  • 插件端:自动监听游戏事件,记录每局的击杀、死亡、助攻、MVP、炸弹事件、武器使用等核心数据,生成标准化JSON文件;

  • 桌面端:基于Electron开发的跨平台应用,自动扫描游戏路径,通过可视化图表(环形图、折线图)和详情面板,直观展示对局数据、玩家评分、回合事件。

该工具是CS2-Bot-Improver的扩展插件,完美兼容BOT难度检测,支持HLTV Rating 1.0评分体系,兼顾专业度和易用性。主要针对BOT对战爱好者的对局战绩记录和综合数据统计。

二、准备工作

在安装前,请确保满足以下基础条件,避免踩坑:

核心依赖

  1. 已安装「CS2-Bot-Improver」主项目(插件运行的基础框架);

  2. CounterStrikeSharp框架已正确部署到CS2服务器;

  3. (可选).NET 8.0 SDK:若自行编译插件需要,直接用编译好的DLL则无需安装;

  4. (桌面端)Windows 10/11系统 + Node.js 16+(源码运行需安装,直接用安装包则无需)。

环境确认

  • CS2游戏已安装,且能正常启动(建议通过-insecure参数或CS2-Bot-Improver Panel启动);

  • 确保Steam/CS2安装目录有读写权限(桌面端需要扫描和读取对局文件)。

三、安装步骤

第一步:部署服务端插件(数据采集核心)

插件负责在游戏内采集数据,有「编译安装」和「直接下载」两种方式,任选其一即可。

方式1:手动编译插件(适合开发者)

# 克隆项目(或下载源码包)
git clone https://github.com/TGP258/CS2_Match_Stats.git
cd CS2_Match_Stats
​
# 编译Release版本
dotnet build -c Release

编译完成后,找到输出的DLL文件:bin/Release/net8.0/CS2MatchStats.dll

方式2:直接下载编译好的插件(推荐)

前往CS2_Match_Stats Releases下载最新版DLL,若无法打开可点击此处下载。

插件部署

在CS2-Bot-Improver的plugins目录下创建CS2MatchStats文件夹,放入插件,目录结构如下:

CS2-Bot-Improver/
└── addons/
    └── counterstrikesharp/
        └── plugins/
            └── CS2MatchStats/     # 插件文件夹
                ├── CS2MatchStats.dll  # 核心DLL
                └── 其他依赖文件(若有)

第二步:安装Electron桌面查看器(数据可视化)

桌面端支持「安装包」和「源码运行」两种方式,新手推荐安装包,开发者可尝试源码。

方式1:一键安装(新手首选)

  1. 下载最新版安装包:CS2 Match Stats Setup x.x.x.exe;(可点击此处),或者下载绿色版,解压即可使用。

  2. 双击运行安装程序,按向导完成安装(默认路径即可);

  3. 安装完成后,桌面会生成快捷方式,直接启动即可。

方式2:源码运行(适合自定义开发)

# 克隆桌面端项目
git clone https://github.com/TGP258/CS2MatchStatsElectron.git
cd CS2MatchStatsElectron
​
# 安装依赖(国内用户建议换镜像)
npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/
npm install
​
# 启动应用
npm start

验证安装是否成功

  1. 启动CS2游戏,进入对局并完成至少1轮比赛;

  2. 检查游戏目录下是否生成对局文件:

    SteamLibrary/steamapps/common/Counter-Strike Global Offensive/game/csgo/match_history/

    若出现match_xxxx.json文件,说明插件采集数据成功;

  3. 启动桌面端,启动自动扫描或手动添加CSGO游戏目录,若能显示对局列表,说明桌面端部署成功。

四、使用指南

1. 基础操作:启动与路径配置

  • 桌面端首次启动:自动扫描Steam/CS2安装路径、match_history目录,无需手动配置;

  • 若自动扫描失败:点击右上角「⚙ 设置」→ 手动选择CS2安装目录和match_history文件夹,设置会自动保存。

2. 核心功能使用

(1)玩家统计面板(主页)

  • 顶部选择玩家:支持筛选人类/机器人玩家;

  • 核心数据展示:

    • 环形图:直观显示当前Rating评分(基于HLTV 1.0算法);

    • 数据卡片:KDA、ADR(平均每回合伤害)、RWS(回合胜利得分)、爆头率、胜率、场

    • 折线图:近10场Rating变化趋势,清晰看到状态起伏

(2)对局列表与详情

  • 对局列表:按时间排序展示所有历史对局,显示地图、时长、胜负结果;

  • 点击任意对局:进入「比赛详情页」,查看:

  • 大比分:CT/T阵营最终得分,自动识别换边并修正比分;

  • 计分板:所有玩家的K/D/A、MVP、Rating、爆头数等详细数据

  • 回合指示:点击回合圆点,弹出「回合详情」,查看该轮的击杀事件(含武器、爆头标记)、炸弹安放/拆除时间。

(3)游戏内快捷命令

插件支持3个核心控制台命令,方便手动管理数据:

命令

作用

match_save

手动保存当前对局数据(无需等换图)

match_list

列出已保存的所有对局ID和基本信息

match_info

显示当前对局的实时数据(比分、玩家数、时长)

五、核心特点

1. 数据采集:全面且精准

  • 全维度记录:覆盖击杀、死亡、助攻、MVP、爆头、首杀、多杀、残局、伤害量等核心指标;

  • BOT兼容:支持记录机器人数据,且能检测BOT难度(Low/Medium/High),适配CS2-Bot-Improver;

  • 事件完整:记录炸弹安放/拆除、换边、武器使用等关键事件,还原对局全貌;

  • 数据标准化:所有记录输出为JSON格式,结构清晰,便于二次开发。

2. 可视化:直观且专业

  • 图表化展示:Rating环形图、近十场趋势折线图,一眼看懂自身水平变化;

  • 详情穿透:从对局列表→计分板→回合详情,三级穿透查看数据,复盘更精准;

  • 响应式设计:桌面/移动端适配,支持中英双语切换;

  • 自动换边检测:修正比分计算逻辑,避免换边后比分统计错误。

3. 易用性:傻瓜式操作

  • 自动扫描:无需手动配置路径,桌面端自动识别Steam/CS2目录;

  • 数据持久化:保存路径设置、选中玩家等配置,下次启动无需重复设置;

  • 免安装选项:桌面端提供绿色版,无需安装直接运行。

六、技术实现:核心原理拆解

1. 插件端(C# + CounterStrikeSharp)

  • 核心逻辑:通过CounterStrikeSharp的事件监听接口(如OnPlayerDeathOnBombPlantedOnRoundEnd),捕获游戏内关键事件;

  • 数据计算:基于HLTV Rating 1.0公式计算玩家评分,结合BOT难度系数(0-3.5)修正评分;

  • 数据存储:将对局数据序列化为JSON,写入match_history目录,命名规则为match_时间戳.json

2. 桌面端(Electron + 原生前端)

  • 架构:采用Electron的「主进程+渲染进程」模式:

    • 主进程(main.js):负责路径扫描、文件读取、IPC通信、窗口管理;

    • 渲染进程(index.html):原生HTML/CSS/JS实现UI,通过SVG绘制图表,无第三方框架依赖;

  • 数据解析:读取JSON文件后,解析玩家数据、回合事件,计算KDA、爆头率、胜率等衍生指标;

  • 打包发布:基于electron-builder打包为NSIS安装包,支持Windows平台一键安装。

七、常见问题:避坑指南

Q1:插件加载失败,游戏内无数据?

A1:检查3点:

  1. CS2-Bot-Improver主项目是否安装正确;

  2. CounterStrikeSharp框架是否正常运行;

  3. 游戏是否通过-insecure或Panel启动(非此方式可能导致插件加载失败)。

Q2:桌面端显示空页面,无对局数据?

A2:排查步骤:

  1. 确认match_history目录下有match_*.json文件(至少完成1场对局);

  2. 桌面端设置中手动指定CS2安装目录;

  3. 检查文件权限,确保桌面端能读取match_history文件夹。

Q3:Rating计算异常/助攻统计不准?

A3:当前已知问题:

  • 队友击杀(TK)会被计入击杀数,影响KD/Rating;

  • MVP统计、助攻数据存在少量偏差(源于游戏事件监听的限制); 后续版本会逐步修复,可关注项目Releases更新。

八、总结

「CS2对局统计」工具完美解决了CS2BOT模式下无详细对局统计的痛点,从数据采集到可视化形成闭环:插件端保证数据的全面性,桌面端降低数据查看的门槛,无论是普通玩家复盘,还是服务器管理员统计数据,都能满足需求。

项目地址