一个用于《星痕共鸣》游戏的实时战斗数据统计工具,通过网络抓包技术实时分析战斗数据,提供伤害统计、DPS 计算等功能。
该工具的数据准确性已经经过多次实际战斗验证,在网络环境稳定的情况下暂未发现数据丢失的问题。
该工具无需修改游戏客户端,不违反游戏服务条款。该工具旨在帮助玩家更好地理解战斗数据,减少无效提升,提升游戏体验。使用该工具前,请确保不会将数据结果用于战力歧视等破坏游戏社区环境的行为。
- 🎯 实时伤害统计 - 实时捕获并统计战斗中的伤害数据
- 📊 DPS 计算 - 提供瞬时 DPS 和总体 DPS 计算
- 🎲 详细分类 - 区分普通伤害、暴击伤害、幸运伤害等类型
- 🌐 Web 界面 - 提供美观的实时数据展示界面,折线图展示
- 🌙 主题切换 - 支持日间/夜间模式切换
- 🔄 自动刷新 - 数据实时更新,无需手动刷新
- 📈 统计分析 - 暴击率、幸运率等详细统计信息
前往 GitHub Actions 页面 下载最新自动打包版本。
前往 Release 页面 下载发布版本。
前往 夸克网盘 下载发布版本。
- Node.js >= 22.15.0
- pnpm >= 10.13.1
- WinPcap/Npcap (网络抓包驱动)
- Visual Studio Build Tools (编译依赖)
- 可通过 Visual Studio Installer 安装
- 选择“C++ 生成工具”工作负载
- Python 3.10 (编译依赖)
- 可通过 Python 官网 下载并安装
- 确保 Python 添加到系统 PATH 中
-
克隆仓库
git clone https://github.com/dmlgzs/StarResonanceDamageCounter.git cd StarResonanceDamageCounter -
安装依赖
corepack enable pnpm install -
安装 WinPcap/Npcap
-
运行
node server.js
运行后将提示你:
- 选择用于抓包的网络设备(可通过控制面板查看网卡信息)
- 选择日志等级(
info:基础信息,debug:详细日志)
你也可以通过命令行参数直接指定:
node server.js <device_number> <log_level>
或使用自动检测模式(推荐):
node server.js auto info
自动检测模式会:
- 智能识别物理网卡,排除虚拟网卡(如 ZeroTier、VMware 等)
- 分析 3 秒网络流量,自动选择最活跃的网卡
- 无流量时回退到路由表方法
手动指定示例:
node server.js 4 info
-
选择网络设备
- 启动程序后,会显示可用的网络设备列表
- 输入对应设备在程序输出的列表里显示的数字编号(通常选择主网卡)
- 可以前往控制面板或者系统设置查找使用的网卡
-
设置日志级别
- 选择日志级别:
info或debug - 推荐使用
info级别以减少日志输出
- 选择日志级别:
-
启动游戏
- 程序会自动检测游戏服务器连接
- 当检测到游戏服务器时,会输出服务器信息,并开始统计数据
-
查看数据
- 打开浏览器访问:
http://localhost:8989 - 实时查看战斗数据统计
- 打开浏览器访问:
- 角色 ID - 玩家角色标识
- 总伤害/治疗 - 累计造成的总伤害/治疗量
- 伤害分类 - 纯暴击、纯幸运、暴击幸运等详细分类
- 暴击率/幸运率 - 战斗中的暴击和幸运触发概率
- 瞬时 DPS/HPS - 当前秒的伤害/治疗输出
- 最大瞬时 - 历史最高瞬时输出记录
- 总 DPS/HPS - 整体平均输出效率
- 清空数据 - 重置所有统计数据
- 主题切换 - 在日间/夜间模式间切换
- 自动刷新 - 每 100ms 自动更新数据
- cap - 网络数据包捕获
- express - Web 服务器框架
- protobufjs - Protocol Buffers 解析
- winston - 日志管理
获取实时战斗数据统计
响应示例:
{
"code": 0,
"user": {
"114514": {
"realtime_dps": 0,
"realtime_dps_max": 3342,
"total_dps": 451.970764813365,
"total_damage": {
"normal": 9411,
"critical": 246,
"lucky": 732,
"crit_lucky": 0,
"hpLessen": 8956,
"total": 10389
},
"total_count": {
"normal": 76,
"critical": 5,
"lucky": 1,
"total": 82
},
"realtime_hps": 4017,
"realtime_hps_max": 11810,
"total_hps": 4497.79970662755,
"total_healing": {
"normal": 115924,
"critical": 18992,
"lucky": 0,
"crit_lucky": 0,
"hpLessen": 0,
"total": 134916
},
"taken_damage": 65,
"profession": "愈合"
}
},
"enemy": {
"15395": {
"name": "雷电食人魔",
"hp": 18011262,
"max_hp": 18011262
}
}
}清空所有统计数据
响应示例:
{
"code": 0,
"msg": "Statistics have been cleared!"
}获取敌方数据
响应示例:
{
"code": 0,
"enemy": {
"15395": {
"name": "雷电食人魔",
"hp": 18011262,
"max_hp": 18011262
}
}
}其余 API 可在源码中查看
-
无法检测到游戏服务器
- 检查网络设备选择是否正确
- 确认游戏正在运行且已连接服务器
- 尝试前往同一张地图的非人群密集处
-
Web 界面无法访问
- 检查端口 8989 是否被占用
- 确认防火墙设置允许本地连接
-
数据统计异常
- 检查日志输出是否有错误信息
- 尝试重启程序重新捕获
-
cap 模块编译错误
- 确保已安装 Visual Studio Build Tools 和 Python
- 确认 Node.js 版本符合要求
-
启动程序立马自动退出
- 确保已安装 Npcap
- 确认网络设备选择输入了正确的数字编号
本项目采用 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证。
使用本项目即表示您同意遵守该许可证的条款。
- 若修改源代码并重新发布,必须在显著位置注明本项目。
- 若参考内部实现(如服务器识别、协议解析、数据处理等)发布另一个项目,必须在显著位置注明本项目。
如果您不认可本许可和附加条款,请不要使用本项目或查阅相关代码。
欢迎提交 Issue 和 Pull Request 来改进项目!
如果这个项目对您有帮助,请给它一个 Star ⭐
免责声明:本工具仅用于游戏数据分析学习目的,不得用于任何违反游戏服务条款的行为。使用者需自行承担相关风险。项目开发者不对任何他人使用本工具的恶意战力歧视行为负责。请在使用前确保遵守游戏社区的相关规定和道德标准。
