Using for reading data from malody. It's easy to use this library to develop plugins.
if (Malody::MalodyReader::get().Init())
{
std::cout << "Reader init succeed." << std::endl;
}
else
{
std::cout << "Reader init failed." << std::endl;
system("pause");
return 0;
}
std::cout << "--------" << std::endl;
Malody::MapData Data;
Malody::OnlinePlayer Player;
Malody::MalodyReader::get().Player.GetData(Player);
std::cout << "ID:" << Player.ID << std::endl;
std::cout << "Name:" << Player.Name << std::endl;
std::cout << "--------" << std::endl;
Malody::MalodyReader::get().Map.GetData(Data);
std::cout << "Song:" << Data.SongName << std::endl;
std::cout << "Level:" << Data.LevelName << std::endl;
std::cout << "Artists:" << Data.Artists << std::endl;
std::cout << "Creator:" << Data.Creator << std::endl;
std::cout << "Mode:" << Data.Mode << std::endl;
std::cout << "BPM:" << Data.BPM << std::endl;
std::cout << "KeyCounts:" << Data.KeyCount << std::endl;
std::cout << "--------" << std::endl;
Malody::ResultData Result;
Malody::MalodyReader::get().DataInGame.GetData(Result);
Malody::MalodyReader::get().DataInResult.GetData(Result);
读取游戏主要数据。
/// <summary> /// 游戏状态 /// </summary> enum GameStatus : DWORD { STATUS_DEFAULTE = 0, // 大厅界面 STATUS_GAMING = 1, // 游戏中界面 STATUS_ROOM = 2, // 房间界面 STATUS_RESULT = 4, // 结算界面 STATUS_STORE = 5, // 商店界面 STATUS_CREATE = 6, // 编辑界面 }; /// <summary> /// 游戏判定 /// </summary> enum GameJudge : DWORD { JUDGE_A, JUDGE_B, JUDGE_C, JUDGE_D, JUDGE_E, };
读取游戏中数据。
/// <summary> /// 游戏数据 /// </summary> class ResultData { public: int Score = 0; double Accuracy = 0; int MaxCombo = 0; int CurrentCombo = 0; struct _hitdata { int Best = 0; int Cool = 0; int Great = 0; int Miss = 0; }Hit; };
读取结算数据
/// <summary> /// 游戏数据 /// </summary> class ResultData { public: int Score = 0; double Accuracy = 0; int MaxCombo = 0; int CurrentCombo = 0; struct _hitdata { int Best = 0; int Cool = 0; int Great = 0; int Miss = 0; }Hit; };
读取当前谱面数据
/// <summary> /// 当前选中谱面数据 /// </summary> class MapData { public: std::string SongName; std::string LevelName; std::string Artists; std::string Creator; float BPM = 0; GameMode Mode = MODE_NONE; int KeyCount = 0; // Key模式下的Key数量 }; /// <summary> /// 游戏模式 /// </summary> enum GameMode : DWORD { MODE_KEY = 0, // Key MODE_CATCH = 3, // Catch MODE_JUBEAT = 4, // Jubeat MODE_TAIKO = 5, // Taiko MODE_RING = 6, // Ring MODE_SLIDER = 7, // Slieder MODE_NONE = 8, // None };
读取本地玩家信息。
/// <summary> /// 玩家数据 /// </summary> class OnlinePlayer { public: int ID = 0; std::string Name; OnlinePlayer(){} OnlinePlayer(int ID, std::string Name) :ID(ID), Name(Name) {} };
Name | Using | |
---|---|---|
CalcAccuracy | 计算准确度 | 游戏游玩中打击的总准确度 |
CalcMM | 计算MM值 | 计算单曲Malody metric值 |