Skip to content

joahpass/CS2-Match-Assistant

Repository files navigation

CS2 Match Assistant

MIT License Windows 10/11 Electron 33 TypeScript 5.7

Latest Release Downloads GitHub Stars GitHub Issues Last Commit


CS2 对局助手是一款面向普通玩家的 Windows 桌面对局工具。进入服务器后,它会自动识别名单,把敌方五人放在主视图,并逐步补齐 Steam 账号、封禁记录、完美平台分数、Rating 与近期表现。

它的核心目标很直接:少做操作,更快看懂对面五个人的账号情况与竞技实力。

Important

本项目只使用 GSI、本机 NetCon、console.log、Steam Web API,以及用户已登录的完美平台本地会话。它不读取游戏内存、不注入 DLL、不 Hook、不模拟游戏操作,也不绕过 VAC、PAC 或其他反作弊系统。

📑 快速导航


为什么做这个工具?

对局开始前,普通玩家真正需要的不是一整页专业术语,而是快速知道:对面账号是否公开、有没有封禁记录、账号大概用了多久、完美分与近期状态如何,以及哪些信息还没有查到。

因此主界面默认只突出敌方,我方折叠;风险与实力分开呈现,强不等于可疑,资料缺失也不会被伪装成 0

✨ 核心特性

能力 实际行为
👀 敌方优先 自动识别本方阵营,敌方五人全宽展示;完美对局半场换边后自动更新。
先快后深 名单和缓存立即出现,Steam 与完美数据逐行补齐,不等待整场查询结束。
🛡️ 账号风险 独立展示封禁、社区状态、账号年龄、资料可见性与数据不足,不作作弊定性。
🎯 竞技实力 完美分、段位、Rating、ADR、KD 与近期走势单独呈现,不参与账号风险结论。
🔗 Steam 直达 每名玩家均可一键打开规范的 Steam 社区主页。
🧭 可靠分队 完美国服优先使用 Wmpvp 当前比赛日志,其他模式使用 GSI;不会按人数瞎猜阵营。
🪟 只读悬浮窗 独立透明窗口显示敌方速览,不注入游戏,也不覆盖输入。
💾 本地缓存 SQLite 保存查询缓存和最近记录;过期缓存可先显示,再后台刷新。
🔌 单源降级 Steam 或完美平台暂时不可用时,另一数据源仍继续工作。
📦 双交付方式 同时提供快速安装版和单文件便携版,目标电脑无需 Node.js。

🚀 下载与安装

前往 Releases 下载最新版:

文件 适合场景
CS2-Match-Assistant-Setup-*.exe 推荐方式;自动安装、创建桌面快捷方式并启动。
CS2-Match-Assistant-Portable-*.exe 单文件免安装,适合临时使用或随身携带。
CS2-Match-Assistant-Deployment-Bundle-*.zip 同时包含安装版、便携版、部署说明和 SHA256。

Note

当前发布文件尚未使用商业代码签名证书,Windows 可能显示来源提示。请只从本仓库 Release 下载,并使用随包 SHA256 文件校验完整性。

🎮 首次使用

  1. 启动助手,它会自动检测 Steam 库、CS2 路径、GSI 与日志配置。
  2. 打开“连接与设置”,填写自己的 Steam Web API Key 并点击“保存并测试”。
  3. 需要完美数据时,先登录官方完美平台客户端,再点击“连接官方客户端”。
  4. 从助手点击“启动完美国服”或“启动国际服”。
  5. 进入服务器后等待名单自动出现,无需打开游戏控制台或手动输入 status

自动配置失败时应用不会退出,可在“连接与设置”中点击“自动修复”。如果 Steam 与 CS2 使用不同磁盘,路径解析器也会读取 libraryfolders.vdfappmanifest_730.acf 定位实际安装库。

👀 敌方成分视图

敌方五人按“值得先看”排序:

有封禁记录 → 高风险 → 需关注 → 数据不足 → 正常

同一级别再参考本局实力、完美分和数据完整度。加载阶段保留原名单顺序,核心数据完成后只重排一次,避免玩家行持续跳动。

风险信息分成三类:

  • 确认记录:Steam 返回的 VAC、游戏或社区封禁。
  • 账号信号:资料隐藏、账号创建时间较短等公开账号状态。
  • 统计参考:较高 KD、爆头率等只作数据提示,不会直接生成作弊结论。

界面仅使用“正常、需关注、高风险、有封禁记录、数据不足”等非定罪文案。

🪟 悬浮窗

悬浮窗跟随 CS2 窗口位置,默认显示敌方昵称、本局实力、完美分、Rating 与风险状态。它是 Electron 的独立只读窗口:

  • 不进入游戏渲染管线。
  • 不读取或修改游戏进程。
  • 不拦截鼠标键盘输入。
  • 可随时从主界面关闭。

📦 快捷部署

其他电脑不需要安装 Node.js、npm、SQLite 或浏览器插件。直接发送 Release 中的快捷部署包即可。

目标电脑要求:

  • Windows 10/11 64 位。
  • 已安装 Steam 和 CS2。
  • 查询 Steam 公开数据时需要网络和独立的 Steam Web API Key。
  • 完美平台数据需要目标电脑上的有效官方客户端登录状态。

详细说明见 DEPLOYMENT.md。Steam API Key 与完美会话使用 Windows 本机安全存储,不应跨电脑复制。

🔌 数据来源

来源 用途 失败时行为
CS2 GSI 地图、模式、比赛状态、本方阵营 保留已有名单,提示重新检测。
localhost NetCon + console.log 自动请求并解析 status 名单 不模拟键盘;连接失败时提示从助手重启 CS2。
完美平台 Wmpvp 日志 完美比赛十人名单、阵营和半场换边 完美国服中作为权威名单源。
Steam Web API 主页、封禁、等级和公开 CS2 统计 显示隐藏、限流或失败状态。
完美平台授权会话 完美分、段位、赛季与近期表现 独立降级,不阻断 Steam 查询。
SQLite 本地缓存 快速首屏、失败缓存和最近查询 支持过期清理和离线快照。

🏗️ 工作架构

flowchart LR
    A[CS2 GSI / Wmpvp / console.log] --> B[名单与敌我识别]
    B --> C[缓存快照立即展示]
    C --> D[Steam 批量资料与封禁]
    C --> E[完美赛季与近期数据]
    D --> F[统一玩家结果]
    E --> F
    F --> G[风险与实力分离]
    G --> H[敌方优先主界面]
    G --> I[只读悬浮窗]
    F --> J[(SQLite 缓存与历史)]
Loading

Electron 主进程负责路径、进程、GSI 服务、日志、网络请求与安全存储;React 渲染进程只负责界面。渲染器不能直接访问 Node.js,外部操作通过最小化 IPC 接口完成。

🔒 安全与隐私

  • Steam API Key 优先通过 Electron safeStorage 加密后保存在当前 Windows 用户目录。
  • 完美 Token、Cookie 与设备会话不写入 SQLite;退出登录后立即清理。
  • 短信验证码不落盘、不写日志。
  • Steam 主页 IPC 只接受合法 SteamID64,由主进程构造固定社区地址。
  • 查询历史默认只保存在本机,可在设置中清除。
  • 不批量抓取平台用户,不绕过验证码、风控或访问限制。

漏洞与敏感问题请按照 SECURITY.md 反馈,不要在 Issue 中上传 API Key、Cookie、手机号、Token、完整日志或数据库。

🧪 测试与兼容性

项目 状态
Windows 10/11 x64 ✅ 主要支持
Steam 国际服 ✅ GSI + status
完美国服 ✅ Wmpvp 权威名单 + 授权数据
休闲 / 竞技 / Premier ✅ 按实际捕获人数展示
Steam 资料隐藏 ✅ 独立状态
完美未注册 / 登录失效 ✅ 单源降级
游戏内注入 Overlay ❌ 明确不支持

发布前执行:

npm.cmd run typecheck
npm.cmd test
npm.cmd run encoding:check
npm.cmd run safety
npm.cmd run dist:quick

当前自动测试覆盖 SteamID、名单解析、BOT 过滤、敌我识别、完美换边、缓存、并发查询、风险分离、Steam 链接校验和完美响应映射。

🛠️ 本地开发

需要 Node.js 22、npm 和 Windows:

git clone https://github.com/joahpass/CS2-Match-Assistant.git
cd CS2-Match-Assistant
npm.cmd ci
npm.cmd run dev

常用命令:

npm.cmd run start
npm.cmd run typecheck
npm.cmd test
npm.cmd run dist:quick

❓ 常见问题

为什么进入对局后没有十个人?

竞技模式会等待并合并多个名单源。完美国服优先采用官方客户端 Wmpvp 日志中的十人房间;其他服务器使用 GSI 与 status。BOT、DemoRecorder 和引擎错误行会被过滤,不会用测试玩家补足人数。

为什么有些玩家没有 Steam 或完美数据?

常见原因包括资料隐藏、Steam API 限流、昵称尚未解析、玩家未注册完美平台或完美登录失效。界面会区分这些状态,不会统一显示成 0

高 KD 或高完美分会被标成作弊吗?

不会。竞技实力与账号风险是两套独立结论,高 KD、爆头率和高分只作数据参考。工具不会对玩家作作弊定性。

为什么推荐从助手启动 CS2?

助手会带上 -condebug、仅监听本机的 NetCon 端口和每台机器随机生成的密码,从而自动请求名单。直接从 Steam 启动时,需要先按连接中心提示配置完整启动参数。

🤝 贡献与反馈

欢迎提交 Issue 或 Pull Request。反馈问题时建议附上:

  • 软件版本、Windows 版本和对局模式。
  • 国际服或完美国服。
  • 实际捕获人数、期望人数和复现步骤。
  • 已脱敏的相关日志片段。

请勿提交 Steam API Key、完美 Token、手机号、验证码、Cookie、完整用户数据库或其他玩家的私人信息。

📄 许可与说明

本项目采用 MIT License。CS2、Steam、Valve、完美世界及相关商标归各自权利人所有;本项目与 Valve 或完美世界没有隶属、授权或背书关系。

版本变化见 CHANGELOG.md


如果这个工具让你进入对局后更快看懂对面五个人,欢迎点一颗 ⭐ Star

下载最新版 · 提交问题 · 查看更新记录

About

CS2 对局助手:敌方优先的 Steam 与完美平台自动对局查询工具

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors