// Additional game protocol schemas missing from the repository base file. // Extracted from the user-supplied Ungrouped.proto; that file has no revision marker. // CmdID routing is intentionally not inferred from this schema-only source. syntax = "proto3"; option go_package = "gac-hkrpg-go/protocol/proto"; import "protocol/proto/StarRail.proto"; // This shared key/value structure was imported as Common.proto in the supplied bundle. // It is included here because that dependency was not included. message KVP { uint32 value = 3; // offset: 28 uint32 key = 9; // offset: 24 } enum GGLMGBPOCOP { GGLMGBPOCOP_BMKFIMEJPOM = 0; GGLMGBPOCOP_MLOGJAKGHHD = 1; GGLMGBPOCOP_ILMKHLENPNI = 2; } message B51RacingAgendaInfo { uint32 day = 2; // offset: 40 B51RacingMatchInfo match = 6; // offset: 32 B51RacingDevelopmentInfo development = 11; // offset: 24 } message B51RacingCarDisplay { repeated uint32 equipped_part_id_list = 3; // offset: 16 uint32 car_id = 4; // offset: 32 uint32 car_num = 6; // offset: 36 uint32 paint_id = 12; // offset: 40 } message B51RacingCarLivery { uint32 car_num = 1; // offset: 28 uint32 paint_id = 3; // offset: 24 } message B51RacingCarLiveryCsReq { B51RacingCarLivery livery = 9; // offset: 16 } message B51RacingCarLiveryScRsp { B51RacingCarLivery livery = 5; // offset: 16 uint32 retcode = 10; // offset: 32 } message B51RacingChallengeCarData { uint32 cycle_id = 10; // offset: 40 repeated uint32 equipped_part_id_list = 13; // offset: 24 B51RacingCarLivery livery = 15; // offset: 16 } message B51RacingChallengeData { uint32 driver_id = 1; // offset: 40 repeated KVP team_point_list = 13; // offset: 24 B51RacingChallengeCarData car = 14; // offset: 16 } message B51RacingChallengeEndMatchCsReq { uint32 match_id = 1; // offset: 44 B51RacingMatchStats stats = 2; // offset: 16 uint32 rank = 7; // offset: 36 uint32 random_seed = 9; // offset: 32 HPICFNLLMCO result_type = 11; // offset: 52 uint32 finish_time_ms = 13; // offset: 48 uint32 track_id = 14; // offset: 40 } message B51RacingChallengeEndMatchScRsp { uint32 match_id = 7; // offset: 32 uint32 track_id = 10; // offset: 24 uint32 retcode = 11; // offset: 36 uint32 score = 13; // offset: 28 } message B51RacingChallengeStartMatchCsReq { uint32 track_id = 4; // offset: 32 uint32 match_id = 9; // offset: 24 uint32 driver_id = 12; // offset: 28 } message B51RacingChallengeStartMatchScRsp { uint32 random_seed = 3; // offset: 28 uint32 driver_id = 11; // offset: 24 uint32 retcode = 12; // offset: 32 } message B51RacingChallengeUpdateCarCsReq { repeated uint32 equipped_part_id_list = 3; // offset: 32 uint32 cycle_id = 11; // offset: 40 B51RacingCarLivery livery = 12; // offset: 24 } message B51RacingChallengeUpdateCarScRsp { uint32 retcode = 5; // offset: 32 B51RacingChallengeCarData car = 15; // offset: 24 } message B51RacingCycleData { uint32 car_id = 2; // offset: 76 uint32 finished_match_num = 3; // offset: 64 B51RacingPartInfo part_info = 4; // offset: 16 B51RacingStatInfo stat_info = 6; // offset: 32 B51RacingAgendaInfo agenda = 7; // offset: 48 B51RacingCarLivery livery = 10; // offset: 56 uint32 driver_id = 11; // offset: 68 uint32 cycle_id = 12; // offset: 72 repeated B51RacingPreMatchTrackInfo pre_match_track_info_list = 13; // offset: 40 } message B51RacingDevelopmentInfo { repeated uint32 active_part_id_list = 4; // offset: 24 repeated uint32 active_action_id_list = 6; // offset: 32 uint32 finished_action_num = 10; // offset: 40 } message B51RacingDriverUnlockScNotify { repeated uint32 driver_id_list = 10; // offset: 24 } message B51RacingEndMatchCsReq { B51RacingMatchStats stats = 2; // offset: 24 uint32 random_seed = 7; // offset: 48 HPICFNLLMCO result_type = 8; // offset: 32 uint32 track_id = 10; // offset: 40 uint32 finish_time_ms = 11; // offset: 36 uint32 rank = 15; // offset: 44 } message B51RacingEndMatchScRsp { uint32 finished_match_num = 3; // offset: 36 B51RacingAgendaInfo agenda = 5; // offset: 24 uint32 retcode = 8; // offset: 32 uint32 added_team_point = 10; // offset: 40 bool is_cycle_finished = 12; // offset: 44 } message B51RacingMatchInfo { uint32 match_id = 2; // offset: 32 uint32 random_seed = 4; // offset: 28 uint32 track_id = 6; // offset: 24 uint64 start_time_ms = 14; // offset: 40 } message B51RacingMatchStats { uint32 charge_count = 2; // offset: 44 uint32 lap_time_ms = 6; // offset: 36 uint32 overtake_count = 7; // offset: 24 uint32 collision_count = 9; // offset: 32 uint32 drift_time_ms = 10; // offset: 48 uint32 max_speed = 11; // offset: 52 bool is_perfect = 12; // offset: 40 uint32 boost_count = 14; // offset: 28 } message B51RacingMissionChangeAgendaScNotify { B51RacingAgendaInfo agenda = 2; // offset: 16 repeated uint32 unlocked_driver_id_list = 6; // offset: 32 } message B51RacingPartInfo { repeated uint32 equipped_part_id_list = 7; // offset: 24 uint32 equipped_decal_id = 9; // offset: 40 repeated uint32 developed_part_id_list = 15; // offset: 32 } message B51RacingPreMatchTrackInfo { uint32 match_id = 3; // offset: 28 uint32 track_id = 4; // offset: 24 uint32 day = 10; // offset: 32 } message B51RacingReplacePartScRsp { B51RacingPartInfo part_info = 11; // offset: 16 uint32 retcode = 12; // offset: 32 } message B51RacingSelectDevelopActionCsReq { uint32 action_id = 3; // offset: 24 } message B51RacingSelectDevelopActionScRsp { uint32 remaining_action_count = 1; // offset: 48 bool is_development_finished = 2; // offset: 56 B51RacingStatInfo stat_info = 4; // offset: 24 uint32 retcode = 6; // offset: 52 B51RacingAgendaInfo agenda = 10; // offset: 32 B51RacingPartInfo part_info = 15; // offset: 40 } message B51RacingSelectDevelopPartCsReq { uint32 part_id = 14; // offset: 24 } message B51RacingSelectDevelopPartScRsp { uint32 remaining_select_count = 4; // offset: 52 B51RacingPartInfo part_info = 5; // offset: 24 B51RacingAgendaInfo agenda = 7; // offset: 32 uint32 retcode = 11; // offset: 48 B51RacingStatInfo stat_info = 15; // offset: 40 } message B51RacingSetDriverCsReq { uint32 driver_id = 9; // offset: 24 } message B51RacingSetDriverScRsp { uint32 retcode = 3; // offset: 24 uint32 driver_id = 14; // offset: 28 } message B51RacingStartCycleCsReq { uint32 car_id = 9; // offset: 36 uint32 cycle_id = 11; // offset: 32 B51RacingCarLivery livery = 15; // offset: 24 } message B51RacingStartCycleScRsp { B51RacingCycleData cycle = 2; // offset: 16 uint32 retcode = 9; // offset: 32 } message B51RacingStartMatchCsReq { uint32 match_id = 13; // offset: 24 uint32 track_id = 15; // offset: 28 } message B51RacingStartMatchScRsp { B51RacingMatchInfo match = 9; // offset: 16 uint32 retcode = 11; // offset: 32 } message B51RacingStatInfo { repeated KVP stat_value_list = 6; // offset: 24 repeated KVP target_stat_tier_list = 13; // offset: 32 } message BlindBoxResetPoolPositionCsReq { uint32 pool_id = 12; // offset: 24 } message BlindBoxResetPoolPositionScRsp { uint32 retcode = 1; // offset: 24 uint32 pool_id = 7; // offset: 28 } message CHNMJPLALEC { uint32 retcode = 3; // offset: 24 uint64 MJNENEAAOAE = 5; // offset: 32 } message ExpeditionBattleAvatarDamage { uint32 avatar_id = 11; // offset: 24 uint64 damage = 14; // offset: 32 } message ExpeditionBattleAvatarInfo { AvatarType avatar_type = 9; // offset: 28 uint32 avatar_id = 12; // offset: 24 } message ExpeditionBattleEndScNotify { ExpeditionBattleMapData map_data = 7; // offset: 16 bool is_new_record = 12; // offset: 32 } message ExpeditionBattleFunRecord { uint32 fun_id = 2; // offset: 24 uint32 avatar_id = 7; // offset: 28 uint64 fun_count = 9; // offset: 32 } message ExpeditionBattleLevelRecord { uint32 level_id = 2; // offset: 40 repeated ExpeditionBattleAvatarDamage avatar_damage_list = 7; // offset: 16 repeated uint32 dead_avatar_id_list = 8; // offset: 24 } message ExpeditionBattleLineup { repeated ExpeditionBattleAvatarInfo avatar_list = 1; // offset: 24 uint32 route_id = 9; // offset: 32 } message ExpeditionBattleMapData { uint32 remaining_challenge_count = 3; // offset: 36 uint32 map_id = 11; // offset: 32 repeated ExpeditionBattleRouteRecord route_record_list = 15; // offset: 16 } message ExpeditionBattleRouteRecord { uint32 passed_level = 1; // offset: 72 uint32 battle_round_count = 3; // offset: 60 bool is_new_record = 4; // offset: 56 repeated ExpeditionBattleAvatarInfo avatar_list = 6; // offset: 16 uint32 route_id = 7; // offset: 68 uint64 buff_value = 8; // offset: 48 uint32 last_level_percent = 9; // offset: 64 repeated ExpeditionBattleFunRecord fun_list = 10; // offset: 32 repeated ExpeditionBattleLevelRecord level_record_list = 13; // offset: 40 } message ExpeditionBattleRouteSettleInfo { repeated uint32 dead_avatar_id_list = 4; // offset: 16 uint64 buff_value = 6; // offset: 56 uint32 route_id = 8; // offset: 48 bool is_passed = 10; // offset: 52 repeated ExpeditionBattleAvatarDamage avatar_damage_list = 11; // offset: 24 uint32 battle_round_count = 13; // offset: 44 uint32 last_level_percent = 14; // offset: 40 } message ExpeditionBattleSetLineupCsReq { repeated ExpeditionBattleLineup lineup_list = 11; // offset: 24 uint32 map_id = 15; // offset: 32 } message ExpeditionBattleSetLineupScRsp { uint32 retcode = 1; // offset: 32 uint32 map_id = 5; // offset: 36 repeated ExpeditionBattleLineup lineup_list = 12; // offset: 24 } message ExpeditionBattleSettleScNotify { uint32 map_id = 1; // offset: 44 repeated ExpeditionBattleRouteSettleInfo route_settle_list = 3; // offset: 32 repeated ExpeditionBattleFunRecord fun_list = 4; // offset: 16 uint32 level_turn = 6; // offset: 40 } message ExpeditionBattleStartCsReq { uint32 map_id = 6; // offset: 24 } message ExpeditionBattleStartScRsp { uint32 retcode = 3; // offset: 24 } message GetExpeditionBattleDataCsReq { } message GetExpeditionBattleDataScRsp { repeated ExpeditionBattleMapData map_data_list = 7; // offset: 16 uint32 retcode = 15; // offset: 32 } message HLJINHODOPP { repeated NMEGIPHFFDA order_list = 3; // offset: 24 uint32 retcode = 6; // offset: 32 } message ILBLJAFMBBK { uint64 FIEOPKNBHKJ = 6; // offset: 24 } message IOPNJIOPAFI { MMBIBKFEFNG filter = 13; // offset: 16 GGLMGBPOCOP ADPEKIOPFKG = 15; // offset: 32 } message MMBIBKFEFNG { bool FMHBALCGMFF = 3; // offset: 32 repeated uint32 PODLFMBEKEG = 9; // offset: 16 } message ODHFCEALPFN { repeated ODLEEMAALIP IIIAGPNGPJM = 1; // offset: 24 uint32 JJPLIMAENEB = 3; // offset: 48 uint32 JNBIALMKFCL = 5; // offset: 52 repeated ODLEEMAALIP FMCCHBBIJKF = 7; // offset: 40 repeated ODLEEMAALIP OFNINJLHHDE = 9; // offset: 16 bool LLMLOGNFFCD = 10; // offset: 60 uint32 mode = 13; // offset: 56 } message PEMMJHDFOLM { } message SocialPlayPreCheckEnterRoomCsReq { uint32 teleport_id = 7; // offset: 32 MFPDAKOIOED GJNMHILINHC = 8; // offset: 24 uint32 entry_id = 15; // offset: 28 } message VoracityInvasionGetDataCsReq { }