MUSYNX Steam Client Savefile Decode & Analyze Tool C++ Version
- 提供全球排行榜显示功能 (需要调用SteamAPI)
- 将提供一个文档来演示使用方法 (在写了,咕咕咕)
- 使用文件夹内指定文件名的方式自定义美化UI
- 一键获取上次谱面游玩结果
- 使用GitHub Action workflow实现自动分发
- 重排版SongName.json
- 滑动条在重加载后保持位置不变
- 隐藏cmd窗口
- 将像Windows资源管理器一样使用列标题栏进行排序
- 将高级功能整合为
ExtraFunction.cfg
配置文件
NoConsole版本为没有命令提示符界面,适合正常使用
WithConsole版本为带命令提示符界面,适合出现bug时快速定位错误发生地点以及原因
控制参数详解
于./musynx_data/ExtraFunction.cfg
文件中启用/禁用对应功能
配置项 | 默认值 | 值类型 | 配置说明 |
---|---|---|---|
EnableAcc-Sync |
false | boolean | 是否启用Acc-Synx图表 |
DisableCheckUpdate |
false | boolean | 是否禁用更新检测 |
EnableAnalyzeWhenStarting |
false | boolean | 是否启用每次启动时重新扫描存档文件 |
EnableDLLInjection |
false | boolean | 是否启用DLL注入以开启高级功能 |
SystemDPI |
自动获取 |
string | 读取系统DPI, 提供DPI窗体修正(未实现) |
EnableDonutChartinHitDelay |
false | boolean | 是否在单次游玩统计中显示击打延迟环形图 |
EnableDonutChartinAllHitAnalyze |
false | boolean | 是否在全局统计中显示击打延迟环形图 |
EnablePDFofCyanExact |
false | boolean | 是否在全局统计中显示仅CyanExact的正态分布拟合 |
EnableNarrowDelayInterval |
true | boolean | 是否在单次游玩统计中使用更狭窄的击打区间来计算平均偏移值(Delay) [true=45ms,false=90ms] |
ConsoleAlpha |
75 | int | 喵赛克游戏本体控制台窗口的不透明度 (取值范围[0,100],100为完全不透明,不建议取值在30以下) |
ConsoleFont |
'霞鹜文楷等宽' | string | 喵赛克游戏本体控制台窗口的字体 |
ConsoleFontSize |
36 | int | 喵赛克游戏本体控制台窗口的字号 |
MainExecPath |
自动获取 |
string | 喵赛克游戏本体主程序所在的路径 |
ChangeConsoleStyle |
false | boolean | 是否启用自定义喵赛克游戏本体控制台窗口样式 |
EnableFramelessWindow |
false | boolean | 是否启用无边框窗口样式(未完成) |
TransparentColor |
'#FFFFFF' | string boolean |
设置透明色(仅限新样式) 设置为false即为关闭透明色 |
DefaultKeys |
false | boolean | 高级功能 中默认键数 参数 |
DefaultDiffcute |
0 | int | 高级功能 中默认难度 参数 |
下列组件对游戏客户端有修改,请谨慎使用
***
HitDelay模块用法:启用DLL注入后,在本次游戏进行首次谱面游玩时会打开一个cmd窗口
-
HitDelayFix.dll
被精心修改过的客户端文件,原始文件为./MUSYNX_Data/Managed/Assembly-CSharp.dll
. -
HitDelayLine.py
用于读取./musynx_data/HitDelay.log
中的击打信息生成可视化数据表,标题栏提供三个统计信息.AvgDelay
平均击打延迟,即所有击打的平均值,能够一定程度上提示游戏延迟应该调整的数值(可能有较大偏差,仅供参考). 比如游戏内判定补偿是+010ms,AvgDelay数值为-5ms,那么就应将游戏内判定补偿减少5ms,但是具体需要调整多少请多次测试.AllKeys
谱面中存在note的数目.AvgAcc
平均击打偏差,即所有击打的绝对值的平均值,该值总为正数. 该值反应了您当前谱面本次游玩击打Key的时机的精准度,该值与您本次游玩的结算成绩有一定的关联:
该值越小,就说明您击打的越精准,(在该值小于45ms时,您的)分值就会越高.
创建SQL::CreateTable()
函数
- 修改
Config::load()
和Config::dump()
中的字段 - 重写色彩宏:
FRED
、FORANGE
、FYELLOW
、FGREEN
、FCYAN
、FBLUE
、FPURPLE
,
BRED
、BORANGE
、BYELLOW
、BGREEN
、BCYAN
、BBLUE
、BPURPLE
,
RESET
- 调整头文件引用
- 应用色彩宏
- 完成
Config::Conifg
构造函数 - 将
Config::load()
和Config::dump()
中的文件校验移动到构造函数中 - 将
Config::DefaultKeys
和Config::DefaultDiffcute
设置为枚举类型 - 完成
Config::FromConfig_v1()
函数 - 将
Functions
中的枚举添加FunctionsEnum
命名空间 - 添加
HitDelay
中的按钮样式 - 添加
SQL::CheckOldSQLite()
、SQL::FromSql_v2()
(未完成)、SQL::FromSql_v1()
(未完成) - delete
include
folder
- 修改函数参数类型
isFileExists(std::string&)
->isFileExists(QString)
- 编写函数
FileMD5()
- 编写函数
SearchMainExecPath()
- 创建构造函数
Config::Config()
- 重写函数
LoadConfig()
->Config::load()
- 重写函数
WriteConfig()
->Config::dump()
- 添加默认色彩宏,分别为
FGRED
,BGRED
,FGGREEN
,BGGREEN
,FGBLUE
,BGBLUE
,RESET
- 创建数据库表结构
字段 类型 备注 SongMapName text PMK Keys int Diffcuty text RecordTime text PMK AvgDelay real AllKeys int AvgAcc real HitMap text - 增加数据库连接确认
- 修改项目名:
MUSYNXSavDecode
->MUSYNXSavDecodeCPP
- 修改数据库名:
HitDelayHistory_v2.db
->data.db
- 修改数据库表名:
HitDelayHistory
->HitDelayHistory_v3
- 修改
HitDelay.ui
中的表格布局 - 把函数注释从实现(.cpp)移动到声明(.h)
- 添加配置类用于在程序中存储配置数据
- 新增多个工具函数
- 删除
stdafx
预编译头 - 修改moc目录
- 修改uic目录
- 添加引用树
- 删除
HitDelay
、DifficultyScoreAnalyze
头文件中的Q_DECL_IMPORT
- 修复主界面头文件引用
- 使用前向声明的方式解决
Q_OBJECT
与Q_DECL_IMPORT
冲突的问题
- 添加注释
- 对HitDelayHistoryORM添加切换Insert/Update函数
- 将全局的
MUSYNC
替换为MUSYNX
- 将
Functions
分离为DLL文件 - 筛选
musynx_data
目录中的文件 - 将
HitDelay
页面分离为DLL文件 - 将
SQL
封装分离为DLL文件 - 将
DifficultyScoreAnalyze
页面分离为DLL文件 - 将所有
GBK
编码转换为UTF-8-BOM
编码
- 将所有
GBK
编码转换为UTF-8-BOM
编码 - 将所有
UTF-8
编码转换为UTF-8-BOM
编码 - 对所有UI添加基础信号槽函数
- 调整UI部件命名
- 微调UI布局
- 关联多个窗口
- 修复Repo链接指向的Python版仓库而不是cpp版仓库的错误
- 将筛选转换为枚举类型
- 从Python项目添加资源文件
- 微调UI布局
- 添加HitDelay窗口
- 主窗口添加版本显示
- 主窗口移除SQL相关库
- 主窗口添加版本信息
- 初步完成SQL封装
- 添加获取系统DPI函数
- 微调UI
- 初始化项目,搭建框架