作为CS2Bot对战玩家,是否想过能将本地对战像各大对战平台一样统计每一场对局的KDA、Rating、回合细节?是否希望有直观的可视化界面,复盘自己的每一次击杀、每一轮攻防?「CS2对局统计」——从服务端插件部署,到Electron桌面端可视化,一站式搞定CS2对局数据的记录与分析。
一、工具简介
「CS2对局统计」是基于CounterStrikeSharp框架开发的CS2数据统计解决方案,包含服务端插件和Electron桌面查看器两部分:
插件端:自动监听游戏事件,记录每局的击杀、死亡、助攻、MVP、炸弹事件、武器使用等核心数据,生成标准化JSON文件;
桌面端:基于Electron开发的跨平台应用,自动扫描游戏路径,通过可视化图表(环形图、折线图)和详情面板,直观展示对局数据、玩家评分、回合事件。
该工具是CS2-Bot-Improver的扩展插件,完美兼容BOT难度检测,支持HLTV Rating 1.0评分体系,兼顾专业度和易用性。主要针对BOT对战爱好者的对局战绩记录和综合数据统计。
二、准备工作
在安装前,请确保满足以下基础条件,避免踩坑:
核心依赖
已安装「CS2-Bot-Improver」主项目(插件运行的基础框架);
CounterStrikeSharp框架已正确部署到CS2服务器;
(可选).NET 8.0 SDK:若自行编译插件需要,直接用编译好的DLL则无需安装;
(桌面端)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:一键安装(新手首选)
下载最新版安装包:
CS2 Match Stats Setup x.x.x.exe;(可点击此处),或者下载绿色版,解压即可使用。双击运行安装程序,按向导完成安装(默认路径即可);
安装完成后,桌面会生成快捷方式,直接启动即可。
方式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验证安装是否成功
启动CS2游戏,进入对局并完成至少1轮比赛;
检查游戏目录下是否生成对局文件:
SteamLibrary/steamapps/common/Counter-Strike Global Offensive/game/csgo/match_history/若出现
match_xxxx.json文件,说明插件采集数据成功;启动桌面端,启动自动扫描或手动添加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个核心控制台命令,方便手动管理数据:
五、核心特点
1. 数据采集:全面且精准
全维度记录:覆盖击杀、死亡、助攻、MVP、爆头、首杀、多杀、残局、伤害量等核心指标;
BOT兼容:支持记录机器人数据,且能检测BOT难度(Low/Medium/High),适配CS2-Bot-Improver;
事件完整:记录炸弹安放/拆除、换边、武器使用等关键事件,还原对局全貌;
数据标准化:所有记录输出为JSON格式,结构清晰,便于二次开发。
2. 可视化:直观且专业
图表化展示:Rating环形图、近十场趋势折线图,一眼看懂自身水平变化;
详情穿透:从对局列表→计分板→回合详情,三级穿透查看数据,复盘更精准;
响应式设计:桌面/移动端适配,支持中英双语切换;
自动换边检测:修正比分计算逻辑,避免换边后比分统计错误。
3. 易用性:傻瓜式操作
自动扫描:无需手动配置路径,桌面端自动识别Steam/CS2目录;
数据持久化:保存路径设置、选中玩家等配置,下次启动无需重复设置;
免安装选项:桌面端提供绿色版,无需安装直接运行。
六、技术实现:核心原理拆解
1. 插件端(C# + CounterStrikeSharp)
核心逻辑:通过CounterStrikeSharp的事件监听接口(如
OnPlayerDeath、OnBombPlanted、OnRoundEnd),捕获游戏内关键事件;数据计算:基于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点:
CS2-Bot-Improver主项目是否安装正确;
CounterStrikeSharp框架是否正常运行;
游戏是否通过
-insecure或Panel启动(非此方式可能导致插件加载失败)。
Q2:桌面端显示空页面,无对局数据?
A2:排查步骤:
确认
match_history目录下有match_*.json文件(至少完成1场对局);桌面端设置中手动指定CS2安装目录;
检查文件权限,确保桌面端能读取
match_history文件夹。
Q3:Rating计算异常/助攻统计不准?
A3:当前已知问题:
队友击杀(TK)会被计入击杀数,影响KD/Rating;
MVP统计、助攻数据存在少量偏差(源于游戏事件监听的限制); 后续版本会逐步修复,可关注项目Releases更新。
八、总结
「CS2对局统计」工具完美解决了CS2BOT模式下无详细对局统计的痛点,从数据采集到可视化形成闭环:插件端保证数据的全面性,桌面端降低数据查看的门槛,无论是普通玩家复盘,还是服务器管理员统计数据,都能满足需求。
