Adjust protocol structs naming

This commit is contained in:
xeon 2025-03-12 19:01:55 +03:00
parent e512efe106
commit de4bf109ed
21 changed files with 1038 additions and 415 deletions

View file

@ -9,10 +9,10 @@ pub struct FightScene {
} }
impl FightScene { impl FightScene {
pub fn get_protocol_scene_info(&self) -> trigger_protocol::SceneInfo { pub fn get_protocol_scene_data(&self) -> trigger_protocol::SceneData {
use trigger_protocol::*; use trigger_protocol::*;
SceneInfo { SceneData {
scene_type: 3, scene_type: 3,
local_play_type: self.play_type.into(), local_play_type: self.play_type.into(),
event_id: self.event_id, // or maybe it's actually scene_id ? event_id: self.event_id, // or maybe it's actually scene_id ?

View file

@ -15,10 +15,10 @@ pub enum Scene {
} }
impl Scene { impl Scene {
pub fn get_protocol_scene_info(&self) -> trigger_protocol::SceneInfo { pub fn get_protocol_scene_data(&self) -> trigger_protocol::SceneData {
match self { match self {
Self::Fight(scene) => scene.get_protocol_scene_info(), Self::Fight(scene) => scene.get_protocol_scene_data(),
Self::Rally(scene) => scene.get_protocol_scene_info(), Self::Rally(scene) => scene.get_protocol_scene_data(),
} }
} }

View file

@ -10,10 +10,10 @@ pub struct RallyScene {
} }
impl RallyScene { impl RallyScene {
pub fn get_protocol_scene_info(&self) -> trigger_protocol::SceneInfo { pub fn get_protocol_scene_data(&self) -> trigger_protocol::SceneData {
use trigger_protocol::*; use trigger_protocol::*;
SceneInfo { SceneData {
scene_type: 7, scene_type: 7,
local_play_type: ELocalPlayType::RallyLongFight.into(), local_play_type: ELocalPlayType::RallyLongFight.into(),
event_id: self.event_id, // or maybe it's actually scene_id ? event_id: self.event_id, // or maybe it's actually scene_id ?

View file

@ -67,8 +67,8 @@ async fn on_change_game_state(
); );
let enter_scene_notify = EnterSceneScNotify { let enter_scene_notify = EnterSceneScNotify {
scene_info: Some(game_state.scene.get_protocol_scene_info()), scene: Some(game_state.scene.get_protocol_scene_data()),
dungeon_info: Some(game_state.dungeon.get_protocol_dungeon_info()), dungeon: Some(game_state.dungeon.get_protocol_dungeon_info()),
}; };
session.game_state = Some(game_state); session.game_state = Some(game_state);

View file

@ -9,7 +9,7 @@ use scene::SceneModel;
use trigger_database::{entity::*, prelude::*, DatabaseConnection}; use trigger_database::{entity::*, prelude::*, DatabaseConnection};
use trigger_fileconfig::NapFileCfg; use trigger_fileconfig::NapFileCfg;
use trigger_logic::scene::ESceneType; use trigger_logic::scene::ESceneType;
use trigger_protocol::PlayerBasicInfo; use trigger_protocol::PlayerInfo;
use trigger_sv::message::GameStateData; use trigger_sv::message::GameStateData;
use yorozuya::YorozuyaModel; use yorozuya::YorozuyaModel;
@ -126,15 +126,17 @@ impl NapPlayer {
.expect("player_basic_info::update failed"); .expect("player_basic_info::update failed");
} }
pub fn get_protocol_player_basic_info(&self) -> PlayerBasicInfo { pub fn get_protocol_player_info(&self) -> PlayerInfo {
PlayerBasicInfo { PlayerInfo {
nick_name: self.player_basic_info.nick_name.clone(), nick_name: self.player_basic_info.nick_name.clone(),
level: self.player_basic_info.level as u32, level: self.player_basic_info.level as u32,
exp: self.player_basic_info.exp as u32, exp: self.player_basic_info.exp as u32,
avatar_id: self.player_basic_info.avatar_id as u32, avatar_id: self.player_basic_info.avatar_id as u32,
player_avatar_id: self.player_basic_info.player_avatar_id as u32, player_avatar_id: self.player_basic_info.player_avatar_id as u32,
control_avatar_id: self.player_basic_info.control_avatar_id as u32, control_avatar_id: self.player_basic_info.control_avatar_id as u32,
last_enter_world_timestamp: self.scene_model.last_enter_world_timestamp(), role_create_time: 0,
name_change_times: 1,
portrait_id: 0,
} }
} }

View file

@ -138,10 +138,6 @@ impl SceneModel {
.expect("scene_basic_info::find_by_id failed") .expect("scene_basic_info::find_by_id failed")
} }
pub fn last_enter_world_timestamp(&self) -> i64 {
self.player_world_info.last_enter_world_timestamp
}
async fn load_or_create_player_world_info(context: &NapContext) -> player_world_info::Model { async fn load_or_create_player_world_info(context: &NapContext) -> player_world_info::Model {
let player_uid = context.player_uid as i32; let player_uid = context.player_uid as i32;

View file

@ -12,11 +12,4 @@ mod battle_event_module {
event_info: Some(BattleEventInfo::default()), event_info: Some(BattleEventInfo::default()),
} }
} }
pub async fn on_report_battle_team(
_context: &mut MessageContext<'_, '_>,
_request: ReportBattleTeamCsReq,
) -> ReportBattleTeamScRsp {
ReportBattleTeamScRsp { retcode: 0 }
}
} }

View file

@ -1,15 +0,0 @@
use super::MessageContext;
use trigger_codegen::handlers;
#[handlers]
mod fairy_module {
pub async fn on_get_fairy_data(
_context: &mut MessageContext<'_, '_>,
_request: GetFairyDataCsReq,
) -> GetFairyDataScRsp {
GetFairyDataScRsp {
retcode: 0,
data: Some(FairyData::default()),
}
}
}

View file

@ -13,7 +13,7 @@ modules! {
quest, quest,
abyss, abyss,
bangboo, bangboo,
client_systems, system,
gacha, gacha,
mail, mail,
ramen, ramen,
@ -22,10 +22,10 @@ modules! {
reward_buff, reward_buff,
arcade, arcade,
daily_challenge, daily_challenge,
fairy, tips,
activity, activity,
land_revive, land_revive,
collections, workbench,
perform, perform,
battle_event, battle_event,
vhs_store, vhs_store,
@ -39,8 +39,9 @@ modules! {
camp_idle, camp_idle,
miniscape_entrust, miniscape_entrust,
fishing_contest, fishing_contest,
qa_game,
ridus_got_boo, ridus_got_boo,
qa_game training
} }
client_message_forwarding! { client_message_forwarding! {

View file

@ -8,13 +8,13 @@ mod player_module {
use crate::logic::avatar_util; use crate::logic::avatar_util;
pub async fn on_get_player_basic_info( pub async fn on_get_player_info(
context: &mut MessageContext<'_, '_>, context: &mut MessageContext<'_, '_>,
_request: GetPlayerBasicInfoCsReq, _request: GetPlayerInfoCsReq,
) -> GetPlayerBasicInfoScRsp { ) -> GetPlayerInfoScRsp {
GetPlayerBasicInfoScRsp { GetPlayerInfoScRsp {
retcode: 0, retcode: 0,
basic_info: Some(context.player.get_protocol_player_basic_info()), player_info: Some(context.player.get_protocol_player_info()),
} }
} }
@ -89,7 +89,7 @@ mod player_module {
.await; .await;
context.add_notify(PlayerSyncScNotify { context.add_notify(PlayerSyncScNotify {
basic_info: Some(context.player.get_protocol_player_basic_info()), player_info: Some(context.player.get_protocol_player_info()),
..Default::default() ..Default::default()
}); });

View file

@ -75,35 +75,6 @@ mod quest_module {
} }
} }
pub async fn on_begin_training_course_battle(
context: &mut MessageContext<'_, '_>,
request: BeginTrainingCourseBattleCsReq,
) {
let scene_model = &mut context.player.scene_model;
let scene_info = scene_model.create_scene_info(ESceneType::Fight).await;
let dungeon_equip =
dungeon_util::build_dungeon_equip_info(&context.player, &request.avatar_id_list);
context
.session
.change_game_state(
context.request_id,
BeginTrainingCourseBattleScRsp { retcode: 0 },
GameStateData::Fight {
play_type: ELocalPlayType::TrainingRoom.into(),
quest_id: request.quest_id,
buddy_id: request.buddy_id,
avatar_id_list: request.avatar_id_list,
dungeon_equip,
},
&scene_info,
context.player,
true,
)
.await;
}
pub async fn on_begin_archive_battle_quest( pub async fn on_begin_archive_battle_quest(
context: &mut MessageContext<'_, '_>, context: &mut MessageContext<'_, '_>,
request: BeginArchiveBattleQuestCsReq, request: BeginArchiveBattleQuestCsReq,

View file

@ -4,9 +4,10 @@ use trigger_codegen::handlers;
#[handlers] #[handlers]
mod scene_module { mod scene_module {
use tracing::debug; use tracing::debug;
use trigger_logic::scene::ESceneType; use trigger_logic::scene::{ELocalPlayType, ESceneType};
use trigger_sv::message::GameStateData;
use crate::logic::scene_util; use crate::logic::{dungeon_util, scene_util};
pub async fn on_enter_world(context: &mut MessageContext<'_, '_>, _request: EnterWorldCsReq) { pub async fn on_enter_world(context: &mut MessageContext<'_, '_>, _request: EnterWorldCsReq) {
let scene_model = &mut context.player.scene_model; let scene_model = &mut context.player.scene_model;
@ -88,6 +89,35 @@ mod scene_module {
} }
} }
pub async fn on_enter_training_room(
context: &mut MessageContext<'_, '_>,
request: EnterTrainingRoomCsReq,
) {
let scene_model = &mut context.player.scene_model;
let scene_info = scene_model.create_scene_info(ESceneType::Fight).await;
let dungeon_equip =
dungeon_util::build_dungeon_equip_info(&context.player, &request.avatar_id_list);
context
.session
.change_game_state(
context.request_id,
EnterTrainingRoomScRsp { retcode: 0 },
GameStateData::Fight {
play_type: ELocalPlayType::TrainingRoom.into(),
quest_id: request.quest_id,
buddy_id: request.buddy_id,
avatar_id_list: request.avatar_id_list,
dungeon_equip,
},
&scene_info,
context.player,
true,
)
.await;
}
pub async fn on_leave_cur_scene( pub async fn on_leave_cur_scene(
context: &mut MessageContext<'_, '_>, context: &mut MessageContext<'_, '_>,
_request: LeaveCurSceneCsReq, _request: LeaveCurSceneCsReq,

View file

@ -93,24 +93,30 @@ mod client_systems_module {
PlayerOperationScRsp { retcode: 0 } PlayerOperationScRsp { retcode: 0 }
} }
pub async fn on_get_tips_info( pub async fn on_get_system_settings(
_context: &mut MessageContext<'_, '_>, _context: &mut MessageContext<'_, '_>,
_request: GetTipsInfoCsReq, request: GetSystemSettingsCsReq,
) -> GetTipsInfoScRsp { ) -> GetSystemSettingsScRsp {
GetTipsInfoScRsp { GetSystemSettingsScRsp {
retcode: 0, retcode: 0,
tips_info: Some(TipsInfo::default()), r#type: request.r#type,
settings: Some(SystemSettings {
systems: Vec::new(),
switch_of_qte: false,
switch_of_story_mode: false,
}),
player_settings_map: HashMap::new(),
} }
} }
pub async fn on_get_client_systems_data( pub async fn on_get_unlock_data(
context: &mut MessageContext<'_, '_>, context: &mut MessageContext<'_, '_>,
_request: GetClientSystemsDataCsReq, _request: GetUnlockDataCsReq,
) -> GetClientSystemsDataScRsp { ) -> GetUnlockDataScRsp {
GetClientSystemsDataScRsp { GetUnlockDataScRsp {
retcode: 0, retcode: 0,
data: Some(ClientSystemsData { data: Some(UnlockData {
unlock_data: Some(UnlockData { unlock: Some(UnlockInfo {
unlocked_list: context unlocked_list: context
.state .state
.filecfg .filecfg
@ -122,7 +128,7 @@ mod client_systems_module {
.collect(), .collect(),
..Default::default() ..Default::default()
}), }),
post_girl_data: Some(PostGirlData { post_girl: Some(PostGirlInfo {
post_girl_item_list: context post_girl_item_list: context
.state .state
.filecfg .filecfg
@ -138,7 +144,7 @@ mod client_systems_module {
selected_post_girl_id_list: vec![3510028], selected_post_girl_id_list: vec![3510028],
show_random_selected: false, show_random_selected: false,
}), }),
music_player_data: Some(MusicPlayerData { music_player: Some(MusicPlayerInfo {
music_list: context music_list: context
.state .state
.filecfg .filecfg
@ -153,7 +159,7 @@ mod client_systems_module {
}) })
.collect(), .collect(),
}), }),
teleport_data: Some(TeleportData { teleport: Some(TeleportUnlockInfo {
unlocked_list: context unlocked_list: context
.state .state
.filecfg .filecfg

View file

@ -0,0 +1,32 @@
use super::MessageContext;
use trigger_codegen::handlers;
#[handlers]
mod tips_module {
use std::collections::HashMap;
pub async fn on_get_tips_data(
_context: &mut MessageContext<'_, '_>,
_request: GetTipsDataCsReq,
) -> GetTipsDataScRsp {
GetTipsDataScRsp {
retcode: 0,
data: Some(TipsData {
tips: Some(TipsInfo {
tips_list: Vec::new(),
tips_group_list: Vec::new(),
}),
fairy: Some(FairyInfo {
fairy_groups: HashMap::new(),
fairy_record_list: Vec::new(),
}),
popup_window: Some(PopupWindowInfo {
popup_window_list: Vec::new(),
}),
loading_page_tips: Some(LoadingPageTipsInfo {
unlocked_list: Vec::new(),
}),
}),
}
}
}

View file

@ -0,0 +1,19 @@
use super::MessageContext;
use trigger_codegen::handlers;
#[handlers]
mod training_module {
use tracing::info;
pub async fn on_start_training(
_context: &mut MessageContext<'_, '_>,
request: StartTrainingCsReq,
) -> StartTrainingScRsp {
info!("{request:?}");
StartTrainingScRsp {
retcode: 0,
training_uid: 1000000,
}
}
}

View file

@ -2,24 +2,27 @@ use super::MessageContext;
use trigger_codegen::handlers; use trigger_codegen::handlers;
#[handlers] #[handlers]
mod collections_module { mod workbench_module {
pub async fn on_get_collect_map( pub async fn on_get_workbench_data(
_context: &mut MessageContext<'_, '_>, _context: &mut MessageContext<'_, '_>,
_request: GetCollectMapCsReq, _request: GetWorkbenchDataCsReq,
) -> GetCollectMapScRsp { ) -> GetWorkbenchDataScRsp {
GetCollectMapScRsp { GetWorkbenchDataScRsp {
retcode: 0, retcode: 0,
collect_map: Some(CollectMap::default()), workbench_data: Some(WorkbenchData {
workbench_app_list: vec![1, 2, 3, 4, 5],
clue_data: Some(ClueData::default()),
}),
} }
} }
pub async fn on_workbench_get_data( pub async fn on_get_partner_data(
_context: &mut MessageContext<'_, '_>, _context: &mut MessageContext<'_, '_>,
_request: WorkbenchGetDataCsReq, _request: GetPartnerDataCsReq,
) -> WorkbenchGetDataScRsp { ) -> GetPartnerDataScRsp {
WorkbenchGetDataScRsp { GetPartnerDataScRsp {
retcode: 0, retcode: 0,
workbench_data: Some(WorkbenchData::default()), partner_data: Some(PartnerData::default()),
} }
} }

View file

@ -137,12 +137,12 @@ pub fn notify_enter_scene(
} }
listener.add(EnterSceneScNotify { listener.add(EnterSceneScNotify {
scene_info: Some(SceneInfo { scene: Some(SceneData {
scene_type: ESceneType::Hall as u32, scene_type: ESceneType::Hall as u32,
hall_scene_info: Some(hall_scene_info), hall_scene_info: Some(hall_scene_info),
..Default::default() ..Default::default()
}), }),
dungeon_info: None, dungeon: None,
}); });
} }
} }

View file

@ -21,6 +21,7 @@ pub enum ESceneType {
Fight = 3, Fight = 3,
Fresh = 4, Fresh = 4,
MultiFight = 5, MultiFight = 5,
TrainingRoom = 6,
Rally = 7, Rally = 7,
} }

View file

@ -12,13 +12,16 @@ pub struct GetRewardBuffDataScRsp {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerBasicInfo { pub struct PlayerInfo {
#[xor(15327)] #[xor(15327)]
#[prost(uint32, tag = "9")] #[prost(uint32, tag = "9")]
pub level: u32, pub level: u32,
#[xor(3181)]
#[prost(uint32, tag = "8")]
pub name_change_times: u32,
#[xor(3247)] #[xor(3247)]
#[prost(int64, tag = "2")] #[prost(int64, tag = "2")]
pub last_enter_world_timestamp: i64, pub role_create_time: i64,
#[xor(9120)] #[xor(9120)]
#[prost(uint32, tag = "12")] #[prost(uint32, tag = "12")]
pub avatar_id: u32, pub avatar_id: u32,
@ -28,6 +31,9 @@ pub struct PlayerBasicInfo {
#[xor(8142)] #[xor(8142)]
#[prost(uint32, tag = "1658")] #[prost(uint32, tag = "1658")]
pub control_avatar_id: u32, pub control_avatar_id: u32,
#[xor(13432)]
#[prost(uint32, tag = "7")]
pub portrait_id: u32,
#[prost(string, tag = "11")] #[prost(string, tag = "11")]
pub nick_name: ::prost::alloc::string::String, pub nick_name: ::prost::alloc::string::String,
#[xor(9818)] #[xor(9818)]
@ -112,6 +118,13 @@ pub struct DressedEquip {
pub equip_uid: u32, pub equip_uid: u32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoadingPageTipsInfo {
#[prost(int32, repeated, tag = "12")]
pub unlocked_list: ::prost::alloc::vec::Vec<i32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(4672)] #[cmdid(4672)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -137,7 +150,7 @@ pub struct AvatarSkillLevel {
#[cmdid(2764)] #[cmdid(2764)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetCollectMapCsReq {} pub struct GetPartnerDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -165,7 +178,7 @@ pub struct EndBattleCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct PostGirlData { pub struct PostGirlInfo {
#[prost(uint32, repeated, tag = "7")] #[prost(uint32, repeated, tag = "7")]
pub selected_post_girl_id_list: ::prost::alloc::vec::Vec<u32>, pub selected_post_girl_id_list: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "6")] #[prost(message, repeated, tag = "6")]
@ -225,9 +238,16 @@ pub struct HallSceneInfo {
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnterSceneScNotify { pub struct EnterSceneScNotify {
#[prost(message, optional, tag = "10")] #[prost(message, optional, tag = "10")]
pub scene_info: ::core::option::Option<SceneInfo>, pub scene: ::core::option::Option<SceneData>,
#[prost(message, optional, tag = "9")] #[prost(message, optional, tag = "9")]
pub dungeon_info: ::core::option::Option<DungeonInfo>, pub dungeon: ::core::option::Option<DungeonInfo>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PerformInfo {
#[prost(uint32, repeated, tag = "11")]
pub perform_id_list: ::prost::alloc::vec::Vec<u32>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(499)] #[cmdid(499)]
@ -345,9 +365,9 @@ pub struct DressEquipmentCsReq {
#[cmdid(6803)] #[cmdid(6803)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetFairyDataScRsp { pub struct GetTipsDataScRsp {
#[prost(message, optional, tag = "7")] #[prost(message, optional, tag = "7")]
pub data: ::core::option::Option<FairyData>, pub data: ::core::option::Option<TipsData>,
#[xor(3416)] #[xor(3416)]
#[prost(int32, tag = "6")] #[prost(int32, tag = "6")]
pub retcode: i32, pub retcode: i32,
@ -478,6 +498,19 @@ pub struct GetBuddyDataScRsp {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct TipsSync {
#[prost(int32, repeated, tag = "13")]
pub tips_group_list: ::prost::alloc::vec::Vec<i32>,
#[prost(uint32, repeated, tag = "6")]
pub popup_window_list: ::prost::alloc::vec::Vec<u32>,
#[prost(int32, repeated, tag = "7")]
pub tips_list: ::prost::alloc::vec::Vec<i32>,
#[prost(map = "int32, enumeration(FairyState)", tag = "4")]
pub fairy_groups: ::std::collections::HashMap<i32, i32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Transform { pub struct Transform {
#[prost(double, repeated, tag = "1")] #[prost(double, repeated, tag = "1")]
pub position: ::prost::alloc::vec::Vec<f64>, pub position: ::prost::alloc::vec::Vec<f64>,
@ -530,7 +563,7 @@ pub struct RallySceneInfo {
#[cmdid(4158)] #[cmdid(4158)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetPlayerBasicInfoCsReq {} pub struct GetPlayerInfoCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(4021)] #[cmdid(4021)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
@ -566,9 +599,12 @@ pub struct FinishArchivePerformScRsp {
#[cmdid(6778)] #[cmdid(6778)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportBattleTeamCsReq { pub struct StartTrainingCsReq {
#[prost(int32, repeated, tag = "3")] #[prost(int32, repeated, tag = "3")]
pub avatar_list: ::prost::alloc::vec::Vec<i32>, pub avatar_list: ::prost::alloc::vec::Vec<i32>,
#[xor(6606)]
#[prost(int32, tag = "9")]
pub special_training_index: i32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(744)] #[cmdid(744)]
@ -592,10 +628,22 @@ pub struct StartHollowQuestCsReq {
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetWebActivityDataCsReq {} pub struct GetWebActivityDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(1149)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EndTrainingCsReq {
#[xor(15023)]
#[prost(int32, tag = "4")]
pub special_training_index: i32,
#[xor(4240)]
#[prost(int64, tag = "5")]
pub training_uid: i64,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(358)] #[cmdid(358)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WorkbenchGetDataCsReq {} pub struct GetWorkbenchDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(5494)] #[cmdid(5494)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
@ -612,6 +660,19 @@ pub struct AbyssGetDataScRsp {
pub abyss_group_list: ::prost::alloc::vec::Vec<AbyssGroup>, pub abyss_group_list: ::prost::alloc::vec::Vec<AbyssGroup>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct VhsGuestInfo {
#[xor(2834)]
#[prost(int32, tag = "2")]
pub guest_id: i32,
#[xor(7940)]
#[prost(uint32, tag = "3")]
pub guest_type: u32,
#[prost(bool, tag = "7")]
pub has_guest: bool,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(7852)] #[cmdid(7852)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
@ -664,6 +725,15 @@ pub struct StartHollowQuestScRsp {
pub retcode: i32, pub retcode: i32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TipsInfo {
#[prost(int32, repeated, tag = "12")]
pub tips_group_list: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "15")]
pub tips_list: ::prost::alloc::vec::Vec<i32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(2708)] #[cmdid(2708)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -692,7 +762,7 @@ pub struct GetRewardBuffDataCsReq {}
#[cmdid(8186)] #[cmdid(8186)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct BeginTrainingCourseBattleCsReq { pub struct EnterTrainingRoomCsReq {
#[xor(8200)] #[xor(8200)]
#[prost(uint32, tag = "5")] #[prost(uint32, tag = "5")]
pub quest_id: u32, pub quest_id: u32,
@ -717,6 +787,24 @@ pub struct QuestCollection {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct PopupWindowInfo {
#[prost(uint32, repeated, tag = "4")]
pub popup_window_list: ::prost::alloc::vec::Vec<u32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(8963)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetVhsStoreDataScRsp {
#[xor(4520)]
#[prost(int32, tag = "12")]
pub retcode: i32,
#[prost(message, optional, tag = "11")]
pub data: ::core::option::Option<VhsStoreData>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemSync { pub struct ItemSync {
#[prost(message, repeated, tag = "6")] #[prost(message, repeated, tag = "6")]
pub material_list: ::prost::alloc::vec::Vec<Material>, pub material_list: ::prost::alloc::vec::Vec<Material>,
@ -1015,7 +1103,7 @@ pub struct GetQuestDataCsReq {
#[cmdid(2325)] #[cmdid(2325)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetTipsInfoCsReq { pub struct GetSystemSettingsCsReq {
#[xor(12773)] #[xor(12773)]
#[prost(uint32, tag = "12")] #[prost(uint32, tag = "12")]
pub r#type: u32, pub r#type: u32,
@ -1128,24 +1216,28 @@ pub struct GetQuestionsAnswerGameDataCsReq {}
#[cmdid(4174)] #[cmdid(4174)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetClientSystemsDataScRsp { pub struct GetUnlockDataScRsp {
#[xor(2530)] #[xor(2530)]
#[prost(int32, tag = "3")] #[prost(int32, tag = "3")]
pub retcode: i32, pub retcode: i32,
#[prost(message, optional, tag = "6")] #[prost(message, optional, tag = "6")]
pub data: ::core::option::Option<ClientSystemsData>, pub data: ::core::option::Option<UnlockData>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(6645)] #[cmdid(6645)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTipsInfoScRsp { pub struct GetSystemSettingsScRsp {
#[xor(11676)] #[xor(11676)]
#[prost(uint32, tag = "10")] #[prost(uint32, tag = "10")]
pub r#type: u32, pub r#type: u32,
#[xor(10864)] #[xor(10864)]
#[prost(int32, tag = "5")] #[prost(int32, tag = "5")]
pub retcode: i32, pub retcode: i32,
#[prost(map = "uint32, uint32", tag = "15")]
pub player_settings_map: ::std::collections::HashMap<u32, u32>,
#[prost(message, optional, tag = "12")]
pub settings: ::core::option::Option<SystemSettings>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(1087)] #[cmdid(1087)]
@ -1219,6 +1311,14 @@ pub struct PlayerGetTokenScRsp {
pub sign: ::prost::alloc::string::String, pub sign: ::prost::alloc::string::String,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PromoterInfo {
#[xor(10809)]
#[prost(uint32, tag = "11")]
pub id: u32,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(3631)] #[cmdid(3631)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
@ -1299,6 +1399,13 @@ pub struct SyncEventInfoScNotify {
pub owner_type: i32, pub owner_type: i32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VhsFlowInfo {
#[prost(message, repeated, tag = "9")]
pub buff_list: ::prost::alloc::vec::Vec<VhsFlowBuffInfo>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(9161)] #[cmdid(9161)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
@ -1354,18 +1461,25 @@ pub struct GetFashionStoreDataCsReq {}
#[cmdid(7302)] #[cmdid(7302)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPlayerBasicInfoScRsp { pub struct GetPlayerInfoScRsp {
#[xor(4333)] #[xor(4333)]
#[prost(int32, tag = "10")] #[prost(int32, tag = "10")]
pub retcode: i32, pub retcode: i32,
#[prost(message, optional, tag = "8")] #[prost(message, optional, tag = "8")]
pub basic_info: ::core::option::Option<PlayerBasicInfo>, pub player_info: ::core::option::Option<PlayerInfo>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct VhsFlowBuffInfo {
#[prost(enumeration = "VhsFlowBuffSource", tag = "3")]
pub buff_source: i32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(6289)] #[cmdid(6289)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetClientSystemsDataCsReq {} pub struct GetUnlockDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(2111)] #[cmdid(2111)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
@ -1378,15 +1492,19 @@ pub struct GetChatEmojiListScRsp {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientSystemsData { pub struct UnlockData {
#[prost(message, optional, tag = "1")] #[prost(message, optional, tag = "1")]
pub post_girl_data: ::core::option::Option<PostGirlData>, pub post_girl: ::core::option::Option<PostGirlInfo>,
#[prost(message, optional, tag = "14")] #[prost(message, optional, tag = "14")]
pub unlock_data: ::core::option::Option<UnlockData>, pub unlock: ::core::option::Option<UnlockInfo>,
#[prost(message, optional, tag = "10")] #[prost(message, optional, tag = "10")]
pub teleport_data: ::core::option::Option<TeleportData>, pub teleport: ::core::option::Option<TeleportUnlockInfo>,
#[prost(message, optional, tag = "2")]
pub hollow_event: ::core::option::Option<HollowEventUnlockInfo>,
#[prost(message, optional, tag = "8")] #[prost(message, optional, tag = "8")]
pub music_player_data: ::core::option::Option<MusicPlayerData>, pub music_player: ::core::option::Option<MusicPlayerInfo>,
#[prost(message, optional, tag = "4")]
pub perform: ::core::option::Option<PerformInfo>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(2014)] #[cmdid(2014)]
@ -1419,7 +1537,7 @@ pub struct GetActivityDataCsReq {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnlockData { pub struct UnlockInfo {
#[prost(int32, repeated, tag = "13")] #[prost(int32, repeated, tag = "13")]
pub unlocked_list: ::prost::alloc::vec::Vec<i32>, pub unlocked_list: ::prost::alloc::vec::Vec<i32>,
} }
@ -1496,6 +1614,18 @@ pub struct GetCafeDataScRsp {
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PlayerLogoutCsReq {} pub struct PlayerLogoutCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VhsStoreOpenInfo {
#[prost(message, optional, tag = "4")]
pub cur_promoter: ::core::option::Option<PromoterInfo>,
#[prost(int32, repeated, tag = "13")]
pub vhs_collection_id_list: ::prost::alloc::vec::Vec<i32>,
#[xor(3569)]
#[prost(int64, tag = "3")]
pub setup_time: i64,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(6280)] #[cmdid(6280)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -1556,7 +1686,7 @@ pub struct GetMonthCardRewardListCsReq {}
#[cmdid(4783)] #[cmdid(4783)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GetFairyDataCsReq {} pub struct GetTipsDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(3591)] #[cmdid(3591)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
@ -1623,6 +1753,13 @@ pub struct PlayerGetTokenCsReq {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct HollowEventUnlockInfo {
#[prost(int32, repeated, tag = "3")]
pub unlocked_list: ::prost::alloc::vec::Vec<i32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DungeonEquipInfo { pub struct DungeonEquipInfo {
#[prost(message, repeated, tag = "15")] #[prost(message, repeated, tag = "15")]
pub equip_list: ::prost::alloc::vec::Vec<Equip>, pub equip_list: ::prost::alloc::vec::Vec<Equip>,
@ -1657,7 +1794,9 @@ pub struct PlayerSyncScNotify {
#[prost(message, optional, tag = "2")] #[prost(message, optional, tag = "2")]
pub avatar_sync: ::core::option::Option<AvatarSync>, pub avatar_sync: ::core::option::Option<AvatarSync>,
#[prost(message, optional, tag = "5")] #[prost(message, optional, tag = "5")]
pub basic_info: ::core::option::Option<PlayerBasicInfo>, pub player_info: ::core::option::Option<PlayerInfo>,
#[prost(message, optional, tag = "13")]
pub tips: ::core::option::Option<TipsSync>,
#[prost(message, optional, tag = "1")] #[prost(message, optional, tag = "1")]
pub item_sync: ::core::option::Option<ItemSync>, pub item_sync: ::core::option::Option<ItemSync>,
} }
@ -1748,6 +1887,18 @@ pub struct UpdateEventGraphScNotify {
pub event_graph_uid: u32, pub event_graph_uid: u32,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(2753)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StartTrainingScRsp {
#[xor(9872)]
#[prost(int64, tag = "15")]
pub training_uid: i64,
#[xor(1222)]
#[prost(int32, tag = "13")]
pub retcode: i32,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(7975)] #[cmdid(7975)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)] #[derive(Clone, Copy, PartialEq, ::prost::Message)]
@ -1777,11 +1928,20 @@ pub struct GetDisplayCaseDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct TeleportData { pub struct TeleportUnlockInfo {
#[prost(int32, repeated, tag = "8")] #[prost(int32, repeated, tag = "8")]
pub unlocked_list: ::prost::alloc::vec::Vec<i32>, pub unlocked_list: ::prost::alloc::vec::Vec<i32>,
} }
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FairyInfo {
#[prost(map = "int32, enumeration(FairyState)", tag = "10")]
pub fairy_groups: ::std::collections::HashMap<i32, i32>,
#[prost(int32, repeated, tag = "14")]
pub fairy_record_list: ::prost::alloc::vec::Vec<i32>,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[cmdid(5659)] #[cmdid(5659)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
@ -1805,6 +1965,37 @@ pub struct ClickHollowSystemCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct VhsStoreData {
#[xor(2629)]
#[prost(uint32, tag = "4")]
pub store_level: u32,
#[prost(int32, repeated, tag = "3")]
pub unlock_collection_id_list: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "13")]
pub vhs_store_open_info: ::core::option::Option<VhsStoreOpenInfo>,
#[prost(map = "uint32, message", tag = "10")]
pub promoter_info_map: ::std::collections::HashMap<u32, PromoterInfo>,
#[prost(message, optional, tag = "2")]
pub vhs_guest_info: ::core::option::Option<VhsGuestInfo>,
#[prost(message, optional, tag = "1")]
pub vhs_flow_info: ::core::option::Option<VhsFlowInfo>,
#[prost(bool, tag = "8")]
pub is_need_refresh: bool,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SystemSettings {
#[prost(uint32, repeated, tag = "1")]
pub systems: ::prost::alloc::vec::Vec<u32>,
#[prost(bool, tag = "7")]
pub switch_of_story_mode: bool,
#[prost(bool, tag = "6")]
pub switch_of_qte: bool,
}
#[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QuestInfo { pub struct QuestInfo {
#[xor(5460)] #[xor(5460)]
#[prost(uint32, tag = "14")] #[prost(uint32, tag = "14")]
@ -1861,7 +2052,7 @@ pub struct MusicPlayerItem {
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct SceneInfo { pub struct SceneData {
#[prost(message, optional, tag = "11")] #[prost(message, optional, tag = "11")]
pub hall_scene_info: ::core::option::Option<HallSceneInfo>, pub hall_scene_info: ::core::option::Option<HallSceneInfo>,
#[xor(10113)] #[xor(10113)]
@ -1896,11 +2087,20 @@ pub struct GetWeaponDataCsReq {}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct FairyData {} pub struct TipsData {
#[prost(message, optional, tag = "5")]
pub tips: ::core::option::Option<TipsInfo>,
#[prost(message, optional, tag = "7")]
pub fairy: ::core::option::Option<FairyInfo>,
#[prost(message, optional, tag = "10")]
pub loading_page_tips: ::core::option::Option<LoadingPageTipsInfo>,
#[prost(message, optional, tag = "9")]
pub popup_window: ::core::option::Option<PopupWindowInfo>,
}
#[derive(trigger_protobuf_derive::CmdID)] #[derive(trigger_protobuf_derive::CmdID)]
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, PartialEq, ::prost::Message)] #[derive(Clone, PartialEq, ::prost::Message)]
pub struct MusicPlayerData { pub struct MusicPlayerInfo {
#[prost(message, repeated, tag = "3")] #[prost(message, repeated, tag = "3")]
pub music_list: ::prost::alloc::vec::Vec<MusicPlayerItem>, pub music_list: ::prost::alloc::vec::Vec<MusicPlayerItem>,
} }
@ -5925,26 +6125,26 @@ impl Ilojlciaack {
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)] #[repr(i32)]
pub enum Eifoghmicik { pub enum FairyState {
Cldigdhookf = 0, EifoghmicikCldigdhookf = 0,
Fjookhinkdm = 1, EifoghmicikFjookhinkdm = 1,
} }
impl Eifoghmicik { impl FairyState {
/// String value of the enum field names used in the ProtoBuf definition. /// String value of the enum field names used in the ProtoBuf definition.
/// ///
/// The values are not transformed in any way and thus are considered stable /// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use. /// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str { pub fn as_str_name(&self) -> &'static str {
match self { match self {
Self::Cldigdhookf => "EIFOGHMICIK_CLDIGDHOOKF", Self::EifoghmicikCldigdhookf => "EIFOGHMICIK_CLDIGDHOOKF",
Self::Fjookhinkdm => "EIFOGHMICIK_FJOOKHINKDM", Self::EifoghmicikFjookhinkdm => "EIFOGHMICIK_FJOOKHINKDM",
} }
} }
/// Creates an enum from field names used in the ProtoBuf definition. /// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> { pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value { match value {
"EIFOGHMICIK_CLDIGDHOOKF" => Some(Self::Cldigdhookf), "EIFOGHMICIK_CLDIGDHOOKF" => Some(Self::EifoghmicikCldigdhookf),
"EIFOGHMICIK_FJOOKHINKDM" => Some(Self::Fjookhinkdm), "EIFOGHMICIK_FJOOKHINKDM" => Some(Self::EifoghmicikFjookhinkdm),
_ => None, _ => None,
} }
} }
@ -17299,27 +17499,33 @@ impl Fgchgkjflpl {
#[derive(trigger_protobuf_derive::XorFields)] #[derive(trigger_protobuf_derive::XorFields)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)] #[repr(i32)]
pub enum Amnemeaehhp { pub enum VhsFlowBuffSource {
VhsFlowBuffSourceNone = 0, AmnemeaehhpVhsFlowBuffSourceNone = 0,
VhsFlowBuffSourceQuest = 1, AmnemeaehhpVhsFlowBuffSourceQuest = 1,
} }
impl Amnemeaehhp { impl VhsFlowBuffSource {
/// String value of the enum field names used in the ProtoBuf definition. /// String value of the enum field names used in the ProtoBuf definition.
/// ///
/// The values are not transformed in any way and thus are considered stable /// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use. /// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str { pub fn as_str_name(&self) -> &'static str {
match self { match self {
Self::VhsFlowBuffSourceNone => "AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_NONE", Self::AmnemeaehhpVhsFlowBuffSourceNone => {
Self::VhsFlowBuffSourceQuest => "AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_QUEST", "AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_NONE"
}
Self::AmnemeaehhpVhsFlowBuffSourceQuest => {
"AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_QUEST"
}
} }
} }
/// Creates an enum from field names used in the ProtoBuf definition. /// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> { pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value { match value {
"AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_NONE" => Some(Self::VhsFlowBuffSourceNone), "AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_NONE" => {
Some(Self::AmnemeaehhpVhsFlowBuffSourceNone)
}
"AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_QUEST" => { "AMNEMEAEHHP_VHS_FLOW_BUFF_SOURCE_QUEST" => {
Some(Self::VhsFlowBuffSourceQuest) Some(Self::AmnemeaehhpVhsFlowBuffSourceQuest)
} }
_ => None, _ => None,
} }

File diff suppressed because it is too large Load diff

View file

@ -30,24 +30,26 @@ where
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1)] #[id(1)]
pub struct GetPlayerBasicInfoCsReq {} pub struct GetPlayerInfoCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PlayerBasicInfo { pub struct PlayerInfo {
pub nick_name: String, pub nick_name: String,
pub level: u32, pub level: u32,
pub exp: u32, pub exp: u32,
pub avatar_id: u32, pub avatar_id: u32,
pub player_avatar_id: u32, pub player_avatar_id: u32,
pub role_create_time: i64,
pub name_change_times: u32,
pub portrait_id: u32,
pub control_avatar_id: u32, pub control_avatar_id: u32,
pub last_enter_world_timestamp: i64,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2)] #[id(2)]
pub struct GetPlayerBasicInfoScRsp { pub struct GetPlayerInfoScRsp {
pub retcode: i32, pub retcode: i32,
pub basic_info: Option<PlayerBasicInfo>, pub player_info: Option<PlayerInfo>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
@ -145,7 +147,7 @@ pub struct CafeSync {
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(100)] #[id(100)]
pub struct PlayerSyncScNotify { pub struct PlayerSyncScNotify {
pub basic_info: Option<PlayerBasicInfo>, pub player_info: Option<PlayerInfo>,
pub avatar_sync: Option<AvatarSync>, pub avatar_sync: Option<AvatarSync>,
pub item_sync: Option<ItemSync>, pub item_sync: Option<ItemSync>,
pub ramen_sync: Option<RamenSync>, pub ramen_sync: Option<RamenSync>,
@ -261,7 +263,7 @@ pub struct Transform {
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct SceneInfo { pub struct SceneData {
pub scene_type: u32, pub scene_type: u32,
pub event_id: u32, pub event_id: u32,
pub local_play_type: u32, pub local_play_type: u32,
@ -392,8 +394,8 @@ pub struct EnterWorldScRsp {
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(452)] #[id(452)]
pub struct EnterSceneScNotify { pub struct EnterSceneScNotify {
pub scene_info: Option<SceneInfo>, pub scene: Option<SceneData>,
pub dungeon_info: Option<DungeonInfo>, pub dungeon: Option<DungeonInfo>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
@ -695,7 +697,7 @@ pub struct GetPrivateMessageDataScRsp {
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(640)] #[id(640)]
pub struct BeginTrainingCourseBattleCsReq { pub struct EnterTrainingRoomCsReq {
pub quest_id: u32, pub quest_id: u32,
pub buddy_id: u32, pub buddy_id: u32,
pub avatar_id_list: Vec<u32>, pub avatar_id_list: Vec<u32>,
@ -703,7 +705,7 @@ pub struct BeginTrainingCourseBattleCsReq {
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(641)] #[id(641)]
pub struct BeginTrainingCourseBattleScRsp { pub struct EnterTrainingRoomScRsp {
pub retcode: i32, pub retcode: i32,
} }
@ -1052,7 +1054,7 @@ pub struct EatRamenScRsp {
// Client systems // Client systems
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct UnlockData { pub struct UnlockInfo {
pub unlocked_list: Vec<i32>, pub unlocked_list: Vec<i32>,
} }
@ -1063,7 +1065,7 @@ pub struct PostGirlItem {
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PostGirlData { pub struct PostGirlInfo {
pub post_girl_item_list: Vec<PostGirlItem>, pub post_girl_item_list: Vec<PostGirlItem>,
pub selected_post_girl_id_list: Vec<u32>, pub selected_post_girl_id_list: Vec<u32>,
pub show_random_selected: bool, pub show_random_selected: bool,
@ -1077,21 +1079,61 @@ pub struct MusicPlayerItem {
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct MusicPlayerData { pub struct MusicPlayerInfo {
pub music_list: Vec<MusicPlayerItem>, pub music_list: Vec<MusicPlayerItem>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct TeleportData { pub struct TeleportUnlockInfo {
pub unlocked_list: Vec<i32>, pub unlocked_list: Vec<i32>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct ClientSystemsData { pub struct NewbieInfo {
pub unlock_data: Option<UnlockData>, pub unlocked_list: Vec<i32>,
pub post_girl_data: Option<PostGirlData>, }
pub teleport_data: Option<TeleportData>,
pub music_player_data: Option<MusicPlayerData>, #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PerformInfo {
pub perform_id_list: Vec<u32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct HollowEventUnlockInfo {
pub unlock_map: Vec<i32>,
pub new_unlock_map: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct HollowCardUnlockInfo {
pub unlock_map: Vec<i32>,
pub new_unlock_map: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct HollowItemUnlockInfo {
pub unlock_map: Vec<i32>,
pub new_unlock_map: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct CurseUnlockInfo {
pub unlock_map: Vec<i32>,
pub new_unlock_map: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct UnlockData {
pub unlock: Option<UnlockInfo>,
pub newbie: Option<NewbieInfo>,
pub perform: Option<PerformInfo>,
pub hollow_event: Option<HollowEventUnlockInfo>,
pub hollow_card: Option<HollowCardUnlockInfo>,
pub hollow_item: Option<HollowItemUnlockInfo>,
pub curse: Option<CurseUnlockInfo>,
pub teleport: Option<TeleportUnlockInfo>,
pub post_girl: Option<PostGirlInfo>,
pub music_player: Option<MusicPlayerInfo>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
@ -1120,27 +1162,35 @@ pub struct SavePlayerSystemSettingScRsp {
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1305)] #[id(1305)]
pub struct GetTipsInfoCsReq {} pub struct GetSystemSettingsCsReq {
pub r#type: u32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct TipsInfo {} pub struct SystemSettings {
pub systems: Vec<u32>,
pub switch_of_story_mode: bool,
pub switch_of_qte: bool,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1306)] #[id(1306)]
pub struct GetTipsInfoScRsp { pub struct GetSystemSettingsScRsp {
pub retcode: i32, pub retcode: i32,
pub tips_info: Option<TipsInfo>, pub r#type: u32,
pub settings: Option<SystemSettings>,
pub player_settings_map: HashMap<u32, u32>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1307)] #[id(1307)]
pub struct GetClientSystemsDataCsReq {} pub struct GetUnlockDataCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1308)] #[id(1308)]
pub struct GetClientSystemsDataScRsp { pub struct GetUnlockDataScRsp {
pub retcode: i32, pub retcode: i32,
pub data: Option<ClientSystemsData>, pub data: Option<UnlockData>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
@ -1300,20 +1350,47 @@ pub struct GetDailyChallengeDataScRsp {
pub data: Option<DailyChallengeData>, pub data: Option<DailyChallengeData>,
} }
// Fairy // Tips
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1601)] #[id(1601)]
pub struct GetFairyDataCsReq {} pub struct GetTipsDataCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct FairyData {} pub struct TipsInfo {
pub tips_group_list: Vec<i32>,
pub tips_list: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct FairyInfo {
pub fairy_record_list: Vec<i32>,
pub fairy_groups: HashMap<i32, i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PopupWindowInfo {
pub popup_window_list: Vec<u32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct LoadingPageTipsInfo {
pub unlocked_list: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct TipsData {
pub tips: Option<TipsInfo>,
pub fairy: Option<FairyInfo>,
pub popup_window: Option<PopupWindowInfo>,
pub loading_page_tips: Option<LoadingPageTipsInfo>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(1602)] #[id(1602)]
pub struct GetFairyDataScRsp { pub struct GetTipsDataScRsp {
pub retcode: i32, pub retcode: i32,
pub data: Option<FairyData>, pub data: Option<TipsData>,
} }
// Activity // Activity
@ -1386,36 +1463,54 @@ pub struct GetMainCityRevivalDataScRsp {
pub main_city_revival_data: Option<MainCityRevivalData>, pub main_city_revival_data: Option<MainCityRevivalData>,
} }
// Collections // Workbench
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2001)] #[id(2000)]
pub struct GetCollectMapCsReq {} pub struct GetWorkbenchDataCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct CollectMap {} pub struct ClueData {
pub unlocked_clue_area_list: Vec<i32>,
pub unlocked_clue_id_list: Vec<i32>,
pub awarded_clue_id_list: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable)]
#[id(2002)] pub struct WorkbenchData {
pub struct GetCollectMapScRsp { pub workbench_app_list: Vec<u32>,
pub retcode: i32, pub clue_data: Option<ClueData>,
pub collect_map: Option<CollectMap>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2021)] #[id(2001)]
pub struct WorkbenchGetDataCsReq {} pub struct GetWorkbenchDataScRsp {
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct WorkbenchData {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2022)]
pub struct WorkbenchGetDataScRsp {
pub retcode: i32, pub retcode: i32,
pub workbench_data: Option<WorkbenchData>, pub workbench_data: Option<WorkbenchData>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2010)]
pub struct GetPartnerDataCsReq {}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PartnerTrustInfo {
pub level: u32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable)]
pub struct PartnerData {
pub partner_memory_id_list: Vec<u32>,
pub partner_trust_list: Vec<PartnerTrustInfo>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2011)]
pub struct GetPartnerDataScRsp {
pub retcode: i32,
pub partner_data: Option<PartnerData>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2041)] #[id(2041)]
pub struct GetAbyssRewardDataCsReq {} pub struct GetAbyssRewardDataCsReq {}
@ -1504,6 +1599,20 @@ pub struct PerformEndScRsp {
pub retcode: i32, pub retcode: i32,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2406)]
pub struct StartTrainingCsReq {
pub avatar_list: Vec<i32>,
pub special_training_index: i32,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2407)]
pub struct StartTrainingScRsp {
pub retcode: i32,
pub training_uid: i64,
}
// BattleEvent // BattleEvent
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
@ -1520,18 +1629,6 @@ pub struct GetBattleEventInfoScRsp {
pub event_info: Option<BattleEventInfo>, pub event_info: Option<BattleEventInfo>,
} }
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2452)]
pub struct ReportBattleTeamCsReq {
pub avatar_list: Vec<i32>,
}
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]
#[id(2453)]
pub struct ReportBattleTeamScRsp {
pub retcode: i32,
}
// VhsStore // VhsStore
#[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)] #[derive(Default, Debug, Clone, Encodeable, Decodeable, ClientCmdID)]