implement the music game

This commit is contained in:
Akka
2022-06-26 20:16:50 +08:00
committed by Melledy
parent 154224066b
commit 4cab477479
52 changed files with 1050 additions and 142 deletions

View File

@@ -36,6 +36,7 @@ import "SumoActivityDetailInfo.proto";
import "TreasureMapActivityDetailInfo.proto";
import "TrialAvatarActivityDetailInfo.proto";
import "WaterSpiritActivityDetailInfo.proto";*/
import "MusicGameActivityDetailInfo.proto";
message ActivityInfo {
uint32 activity_id = 1;
@@ -59,54 +60,54 @@ message ActivityInfo {
//bool MIFCLBCMKJI = 28;
//bool BPGCBIEDEDM = 29;
//map<uint32, uint32> AGKPABKOHDA = 30;
/*oneof detail {
SeaLampActivityDetailInfo sam_lamp_info = 11;
CrucibleActivityDetailInfo crucible_info = 12;
SalesmanActivityDetailInfo salesman_info = 13;
TrialAvatarActivityDetailInfo trial_avatar_info = 14;
DeliveryActivityDetailInfo delivery_info = 16;
AsterActivityDetailInfo aster_info = 21;
FlightActivityDetailInfo flight_info = 25;
DragonSpineActivityDetailInfo dragon_spine_info = 31;
EffigyActivityDetailInfo effigy_info = 32;
TreasureMapActivityDetailInfo treasure_map_info = 35;
BlessingActivityDetailInfo blessing_info = 41;
SeaLampActivityInfo sea_lamp_info = 42;
ExpeditionActivityDetailInfo expedition_info = 43;
ArenaChallengeActivityDetailInfo arena_challenge_info = 44;
FleurFairActivityDetailInfo fleur_fair_info = 51;
WaterSpiritActivityDetailInfo water_spirit_info = 52;
ChannelerSlabActivityDetailInfo challneler_slab_info = 61;
MistTrialActivityDetailInfo mist_trial_activity_info = 62;
HideAndSeekActivityDetailInfo hide_and_seek_info = 63;
FindHilichurlDetailInfo find_hilichurl_info = 64;
SummerTimeDetailInfo summer_time_info = 65;
BuoyantCombatDetailInfo buoyant_combat_info = 66;
EchoShellDetailInfo echo_shell_info = 67;
BounceConjuringActivityDetailInfo bounce_conjuring_info = 68;
BlitzRushActivityDetailInfo blitz_rush_info = 69;
ChessActivityDetailInfo chess_info = 70;
SumoActivityDetailInfo sumo_info = 71;
MoonfinTrialActivityDetailInfo moonfin_trial_info = 72;
LunaRiteDetailInfo luna_rite_info = 73;
PlantFlowerActivityDetailInfo plant_flower_info = 74;
oneof detail {
// SeaLampActivityDetailInfo sam_lamp_info = 11;
// CrucibleActivityDetailInfo crucible_info = 12;
// SalesmanActivityDetailInfo salesman_info = 13;
// TrialAvatarActivityDetailInfo trial_avatar_info = 14;
// DeliveryActivityDetailInfo delivery_info = 16;
// AsterActivityDetailInfo aster_info = 21;
// FlightActivityDetailInfo flight_info = 25;
// DragonSpineActivityDetailInfo dragon_spine_info = 31;
// EffigyActivityDetailInfo effigy_info = 32;
// TreasureMapActivityDetailInfo treasure_map_info = 35;
// BlessingActivityDetailInfo blessing_info = 41;
// SeaLampActivityInfo sea_lamp_info = 42;
// ExpeditionActivityDetailInfo expedition_info = 43;
// ArenaChallengeActivityDetailInfo arena_challenge_info = 44;
// FleurFairActivityDetailInfo fleur_fair_info = 51;
// WaterSpiritActivityDetailInfo water_spirit_info = 52;
// ChannelerSlabActivityDetailInfo challneler_slab_info = 61;
// MistTrialActivityDetailInfo mist_trial_activity_info = 62;
// HideAndSeekActivityDetailInfo hide_and_seek_info = 63;
// FindHilichurlDetailInfo find_hilichurl_info = 64;
// SummerTimeDetailInfo summer_time_info = 65;
// BuoyantCombatDetailInfo buoyant_combat_info = 66;
// EchoShellDetailInfo echo_shell_info = 67;
// BounceConjuringActivityDetailInfo bounce_conjuring_info = 68;
// BlitzRushActivityDetailInfo blitz_rush_info = 69;
// ChessActivityDetailInfo chess_info = 70;
// SumoActivityDetailInfo sumo_info = 71;
// MoonfinTrialActivityDetailInfo moonfin_trial_info = 72;
// LunaRiteDetailInfo luna_rite_info = 73;
// PlantFlowerActivityDetailInfo plant_flower_info = 74;
MusicGameActivityDetailInfo music_game_info = 75;
RoguelikeDungeonActivityDetailInfo roguelike_dungoen_info = 76;
DigActivityDetailInfo dig_info = 77;
DOCNGBMKEID hachi_info = 78;
DLHPBNNDGFI winter_camp_info = 79;
IFACCKLEJCC potion_info = 80;
PFMCPMIMGLM tanuki_travel_activity_info = 81;
JEIAODKGIBD lantern_rite_activity_info = 82;
EPDOGGKOCAP michiae_matsuri_info = 83;
NHMFHLIGAKL bartender_info = 84;
EAGKNMCLJDI ugc_info = 85;
ADPBMLFDHJD crystal_link_info = 86;
JACDNLEIDOO irodori_info = 87;
EHDKFDJEEGP photo_info = 88;
BEPFLAKHNHL spice_info = 89;
MMNEJBFMAEA gacha_info = 90;
JLMHDDHOGGD luminance_stone_challenge_info = 91;
IGBMCJOPGIL rogue_diary_info = 92;
}*/
// RoguelikeDungeonActivityDetailInfo roguelike_dungoen_info = 76;
// DigActivityDetailInfo dig_info = 77;
// DOCNGBMKEID hachi_info = 78;
// DLHPBNNDGFI winter_camp_info = 79;
// IFACCKLEJCC potion_info = 80;
// PFMCPMIMGLM tanuki_travel_activity_info = 81;
// JEIAODKGIBD lantern_rite_activity_info = 82;
// EPDOGGKOCAP michiae_matsuri_info = 83;
// NHMFHLIGAKL bartender_info = 84;
// EAGKNMCLJDI ugc_info = 85;
// ADPBMLFDHJD crystal_link_info = 86;
// JACDNLEIDOO irodori_info = 87;
// EHDKFDJEEGP photo_info = 88;
// BEPFLAKHNHL spice_info = 89;
// MMNEJBFMAEA gacha_info = 90;
// JLMHDDHOGGD luminance_stone_challenge_info = 91;
// IGBMCJOPGIL rogue_diary_info = 92;
}
}

10
proto/MusicBeatmap.proto Normal file
View File

@@ -0,0 +1,10 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicBeatmapList.proto";
message MusicBeatmap {
uint32 music_id = 1;
repeated MusicBeatmapList beatmap_item_list = 2;
}

View File

@@ -0,0 +1,9 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicBeatmapNote.proto";
message MusicBeatmapList {
repeated MusicBeatmapNote beatmap_note_list = 1;
}

View File

@@ -0,0 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message MusicBeatmapNote {
uint32 start_time = 1;
uint32 end_time = 2;
}

View File

@@ -0,0 +1,26 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message MusicBriefInfo {
uint64 music_share_id = 1;
uint32 music_id = 2;
string author_nickname = 3;
uint32 music_note_count = 4;
uint32 max_score = 5;
uint32 score = 6;
uint32 create_time = 7;
uint32 share_time = 8;
uint32 DOANBAODBMA = 9;
bool settle = 10;
uint32 version = 11;
bool can_share = 12;
bool OAPKHNELBPH = 13;
bool NJHAMJMHPAA = 14;
uint64 ADIBIKKNPKK = 15;
uint32 save_position = 21;
repeated uint32 GIDFMAJFIFE = 22;
repeated uint32 OKBJPAKOLIH = 23;
uint32 FAOPBAMDFJB = 24;
uint32 FELMANEFAOE = 25;
}

View File

@@ -2,11 +2,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
//import "MusicBriefInfo.proto";
//import "MusicGameRecord.proto";
//
//message MusicGameActivityDetailInfo {
// map<uint32, MusicGameRecord> music_game_record_map = 1;
// repeated MusicBriefInfo LGNAAPPDLGG = 2;
// repeated MusicBriefInfo HHHIDFPPPFK = 3;
//}
import "MusicBriefInfo.proto";
import "MusicGameRecord.proto";
message MusicGameActivityDetailInfo {
map<uint32, MusicGameRecord> music_game_record_map = 1;
repeated MusicBriefInfo person_custom_beatmap = 2;
repeated MusicBriefInfo others_custom_beatmap = 3;
}

View File

@@ -0,0 +1,21 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicBeatmap.proto";
import "MusicBriefInfo.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6326
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message MusicGameCreateBeatmapReq {
MusicGameUnknown1Enum unknown_enum1 = 12;
oneof beatmap {
MusicBeatmap music_record = 10;
}
oneof brief_info {
MusicBriefInfo music_brief_info = 1021;
}
}

View File

@@ -0,0 +1,15 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6347
// EnetChannelId: 0
// EnetIsReliable: true
message MusicGameCreateBeatmapRsp {
int32 retcode = 10;
MusicGameUnknown1Enum unknown_enum1 = 12;
uint64 music_share_id = 5;
}

View File

@@ -0,0 +1,19 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicGameUnknown2Enum.proto";
import "MusicGameGetBeatmapReqType.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6318
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message MusicGameGetBeatmapReq {
MusicGameUnknown1Enum unknown_enum1 = 1;
uint64 music_share_id = 10;
MusicGameUnknown2Enum unknown_enum2 = 12;
bool CDFOGGDLKNA = 15;
MusicGameGetBeatmapReqType req_type = 11;
}

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum MusicGameGetBeatmapReqType {
MusicGameGetBeatmapReqType_u1 = 0;
// edit_beatmap
MusicGameGetBeatmapReqType_u2 = 1;
// play_others
MusicGameGetBeatmapReqType_u3 = 2;
// try
MusicGameGetBeatmapReqType_u4 = 3;
MusicGameGetBeatmapReqType_u5 = 4;
}

View File

@@ -0,0 +1,24 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicGameGetBeatmapReqType.proto";
import "MusicBeatmap.proto";
import "MusicBriefInfo.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6309
// EnetChannelId: 0
// EnetIsReliable: true
message MusicGameGetBeatmapRsp {
int32 retcode = 13;
MusicGameUnknown1Enum unknown_enum1 = 1;
uint64 music_share_id = 5;
MusicGameGetBeatmapReqType req_type = 2;
oneof beatmap {
MusicBeatmap music_record = 9;
}
oneof brief_info {
MusicBriefInfo music_brief_info = 953;
}
}

View File

@@ -0,0 +1,9 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message MusicGameRecord {
uint32 max_score = 1;
uint32 max_combo = 2;
bool is_unlock = 3;
}

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6343
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message MusicGameSearchBeatmapReq {
MusicGameUnknown1Enum unknown_enum1 = 10;
uint64 music_share_id = 6;
}

View File

@@ -0,0 +1,18 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MusicBriefInfo.proto";
import "MusicGameUnknown1Enum.proto";
// CmdId: 6304
// EnetChannelId: 0
// EnetIsReliable: true
message MusicGameSearchBeatmapRsp {
int32 retcode = 9;
MusicGameUnknown1Enum unknown_enum1 = 3;
uint64 music_share_id = 4;
oneof ELBEIFGDBMM {
MusicBriefInfo music_brief_info = 11;
}
}

View File

@@ -11,17 +11,20 @@ message MusicGameSettleReq {
uint32 score = 2;
uint32 combo = 10;
uint32 correct_hit = 8;
uint64 KKONDPNGBJD = 11;
uint64 music_share_id = 11;
// is_default_beatmap
bool KJNDJLBOJLM = 4;
uint32 FBELCAFFGIJ = 3;
uint32 OOFMAKIDFOL = 15;
// beatmap_difficulty_level
uint32 HJPDEIMECHB = 1;
repeated uint32 MNCMGANHCFI = 13;
uint32 max_combo = 9;
uint32 JJADNMELLAH = 1975;
// detail_score
repeated uint32 EIAGEEFABPO = 1171;
uint32 CPIFLFBHNJP = 1104;
bool DJCKOHKLIOB = 998;
bool success = 998;
uint32 GGHBOMGJGFP = 268;
bool PFHCIHKCJFJ = 238;
float speed = 887;

View File

@@ -10,5 +10,5 @@ message MusicGameSettleRsp {
uint32 music_basic_id = 9;
bool is_unlock_next_level = 1;
bool is_new_record = 3;
uint64 KKONDPNGBJD = 11;
uint64 music_share_id = 11;
}

View File

@@ -8,6 +8,6 @@ option java_package = "emu.grasscutter.net.proto";
// IsAllowClient: true
message MusicGameStartReq {
uint32 music_basic_id = 10;
uint64 KKONDPNGBJD = 8;
uint64 music_share_id = 8;
bool KJNDJLBOJLM = 5;
}

View File

@@ -8,5 +8,5 @@ option java_package = "emu.grasscutter.net.proto";
message MusicGameStartRsp {
int32 retcode = 5;
uint32 music_basic_id = 14;
uint64 KKONDPNGBJD = 12;
uint64 music_share_id = 12;
}

View File

@@ -0,0 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum MusicGameUnknown1Enum {
MusicGameUnknown1Enum_NONE = 0;
MusicGameUnknown1Enum_u2 = 1;
}

View File

@@ -0,0 +1,9 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum MusicGameUnknown2Enum {
MusicGameUnknown2Enum_u1 = 0;
MusicGameUnknown2Enum_MINE = 1;
MusicGameUnknown2Enum_u3 = 2;
}