fix: auto-resize for receive buffer in NetworkEntity. Increase initial disc amount to 500
This commit is contained in:
parent
0834fe0653
commit
e703a725af
6 changed files with 641 additions and 452 deletions
|
@ -1,19 +1,22 @@
|
|||
// This file is @generated by prost-build.
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Transform {
|
||||
#[prost(double, repeated, tag = "1")]
|
||||
pub position: ::prost::alloc::vec::Vec<f64>,
|
||||
#[prost(double, repeated, tag = "2")]
|
||||
pub rotation: ::prost::alloc::vec::Vec<f64>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct Vector2Int {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub x: i32,
|
||||
#[prost(int32, tag = "2")]
|
||||
pub y: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct HollowGridState {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub node_state: i32,
|
||||
|
@ -24,7 +27,8 @@ pub struct HollowGridState {
|
|||
#[prost(int32, tag = "4")]
|
||||
pub sub_state: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct LogSkillUseInfo {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub skill_id: i32,
|
||||
|
@ -39,7 +43,8 @@ pub struct LogSkillUseInfo {
|
|||
#[prost(string, tag = "6")]
|
||||
pub skill_name: ::prost::alloc::string::String,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct LogBattleAvatarInfo {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub avatar_id: i32,
|
||||
|
@ -68,7 +73,8 @@ pub struct LogBattleAvatarInfo {
|
|||
#[prost(message, repeated, tag = "14")]
|
||||
pub skill_use: ::prost::alloc::vec::Vec<LogSkillUseInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct LogBattleStatistics {
|
||||
#[prost(int64, tag = "1")]
|
||||
pub battle_uid: i64,
|
||||
|
@ -87,7 +93,8 @@ pub struct LogBattleStatistics {
|
|||
#[prost(int32, tag = "11")]
|
||||
pub star: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct FightResult {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub result: i32,
|
||||
|
@ -185,7 +192,9 @@ impl HollowGridFlag {
|
|||
Self::SyncToClient => "HOLLOW_GRID_FLAG_SYNC_TO_CLIENT",
|
||||
Self::Door => "HOLLOW_GRID_FLAG_DOOR",
|
||||
Self::CanTriggerMultiTimes => "HOLLOW_GRID_FLAG_CAN_TRIGGER_MULTI_TIMES",
|
||||
Self::TemporaryVisibleAtAround => "HOLLOW_GRID_FLAG_TEMPORARY_VISIBLE_AT_AROUND",
|
||||
Self::TemporaryVisibleAtAround => {
|
||||
"HOLLOW_GRID_FLAG_TEMPORARY_VISIBLE_AT_AROUND"
|
||||
}
|
||||
Self::Unlocked => "HOLLOW_GRID_FLAG_UNLOCKED",
|
||||
Self::Brighten => "HOLLOW_GRID_FLAG_BRIGHTEN",
|
||||
Self::Guide => "HOLLOW_GRID_FLAG_GUIDE",
|
||||
|
@ -213,11 +222,17 @@ impl HollowGridFlag {
|
|||
"HOLLOW_GRID_FLAG_CAN_TRIGGER_EVENT" => Some(Self::CanTriggerEvent),
|
||||
"HOLLOW_GRID_FLAG_VISIBLE" => Some(Self::Visible),
|
||||
"HOLLOW_GRID_FLAG_VISIBLE_AT_GRID_AROUND" => Some(Self::VisibleAtGridAround),
|
||||
"HOLLOW_GRID_FLAG_VISIBLE_BY_TRIGGER_EVENT" => Some(Self::VisibleByTriggerEvent),
|
||||
"HOLLOW_GRID_FLAG_VISIBLE_BY_TRIGGER_EVENT" => {
|
||||
Some(Self::VisibleByTriggerEvent)
|
||||
}
|
||||
"HOLLOW_GRID_FLAG_SYNC_TO_CLIENT" => Some(Self::SyncToClient),
|
||||
"HOLLOW_GRID_FLAG_DOOR" => Some(Self::Door),
|
||||
"HOLLOW_GRID_FLAG_CAN_TRIGGER_MULTI_TIMES" => Some(Self::CanTriggerMultiTimes),
|
||||
"HOLLOW_GRID_FLAG_TEMPORARY_VISIBLE_AT_AROUND" => Some(Self::TemporaryVisibleAtAround),
|
||||
"HOLLOW_GRID_FLAG_CAN_TRIGGER_MULTI_TIMES" => {
|
||||
Some(Self::CanTriggerMultiTimes)
|
||||
}
|
||||
"HOLLOW_GRID_FLAG_TEMPORARY_VISIBLE_AT_AROUND" => {
|
||||
Some(Self::TemporaryVisibleAtAround)
|
||||
}
|
||||
"HOLLOW_GRID_FLAG_UNLOCKED" => Some(Self::Unlocked),
|
||||
"HOLLOW_GRID_FLAG_BRIGHTEN" => Some(Self::Brighten),
|
||||
"HOLLOW_GRID_FLAG_GUIDE" => Some(Self::Guide),
|
||||
|
@ -329,7 +344,9 @@ impl NodeVisible {
|
|||
"NODE_VISIBLE_VISIBLE" => Some(Self::Visible),
|
||||
"NODE_VISIBLE_VISIBLE_AT_GRID_AROUND" => Some(Self::VisibleAtGridAround),
|
||||
"NODE_VISIBLE_VISIBLE_BY_TRIGGER_EVENT" => Some(Self::VisibleByTriggerEvent),
|
||||
"NODE_VISIBLE_TEMPORARY_VISIBLE_AT_AROUND" => Some(Self::TemporaryVisibleAtAround),
|
||||
"NODE_VISIBLE_TEMPORARY_VISIBLE_AT_AROUND" => {
|
||||
Some(Self::TemporaryVisibleAtAround)
|
||||
}
|
||||
"NODE_VISIBLE_BLOCKED" => Some(Self::Blocked),
|
||||
_ => None,
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,6 @@
|
|||
// This file is @generated by prost-build.
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct PlayerData {
|
||||
#[prost(message, optional, tag = "1")]
|
||||
pub basic: ::core::option::Option<BasicData>,
|
||||
|
@ -28,7 +29,8 @@ pub struct PlayerData {
|
|||
#[prost(message, optional, tag = "13")]
|
||||
pub map: ::core::option::Option<MapData>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct BasicData {
|
||||
#[prost(string, tag = "1")]
|
||||
pub nick_name: ::prost::alloc::string::String,
|
||||
|
@ -49,12 +51,14 @@ pub struct BasicData {
|
|||
#[prost(uint32, tag = "9")]
|
||||
pub portrait_id: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct AvatarData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub avatar_list: ::prost::alloc::vec::Vec<AvatarItemInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct AvatarItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
|
@ -87,7 +91,8 @@ pub struct AvatarItemInfo {
|
|||
#[prost(bool, tag = "15")]
|
||||
pub is_favorite: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct ItemData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub item_list: ::prost::alloc::vec::Vec<GenericItemInfo>,
|
||||
|
@ -100,14 +105,16 @@ pub struct ItemData {
|
|||
#[prost(uint32, tag = "5")]
|
||||
pub item_uid_counter: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct GenericItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
#[prost(int32, tag = "2")]
|
||||
pub count: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct WeaponItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub uid: u32,
|
||||
|
@ -124,7 +131,8 @@ pub struct WeaponItemInfo {
|
|||
#[prost(bool, tag = "7")]
|
||||
pub lock: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct EquipPropertyInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub property_type: u32,
|
||||
|
@ -133,7 +141,8 @@ pub struct EquipPropertyInfo {
|
|||
#[prost(uint32, tag = "3")]
|
||||
pub add_value: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct EquipItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub uid: u32,
|
||||
|
@ -152,24 +161,28 @@ pub struct EquipItemInfo {
|
|||
#[prost(message, repeated, tag = "8")]
|
||||
pub sub_properties: ::prost::alloc::vec::Vec<EquipPropertyInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct AutoRecoveryItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub buy_times: u32,
|
||||
#[prost(int64, tag = "2")]
|
||||
pub last_recovery_timestamp: i64,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct QuestData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub quest_collection_list: ::prost::alloc::vec::Vec<QuestCollectionInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct MainCityQuestInfo {
|
||||
#[prost(uint32, repeated, tag = "1")]
|
||||
pub track_npc_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct QuestInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
|
@ -186,7 +199,8 @@ pub struct QuestInfo {
|
|||
#[prost(message, optional, tag = "7")]
|
||||
pub main_city_quest_info: ::core::option::Option<MainCityQuestInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct QuestCollectionInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub quest_type: u32,
|
||||
|
@ -195,21 +209,24 @@ pub struct QuestCollectionInfo {
|
|||
#[prost(uint32, repeated, tag = "3")]
|
||||
pub finish_quest_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct ArchiveData {
|
||||
#[prost(uint32, repeated, tag = "1")]
|
||||
pub hollow_archive_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(message, repeated, tag = "2")]
|
||||
pub videotape_list: ::prost::alloc::vec::Vec<VideotapeInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct VideotapeInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub archive_file_id: u32,
|
||||
#[prost(bool, tag = "2")]
|
||||
pub finished: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct HollowData {
|
||||
#[prost(uint32, repeated, tag = "1")]
|
||||
pub hollow_group_list: ::prost::alloc::vec::Vec<u32>,
|
||||
|
@ -224,7 +241,8 @@ pub struct HollowData {
|
|||
#[prost(uint32, repeated, tag = "6")]
|
||||
pub executed_hollow_event_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct HollowInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub hollow_quest_id: u32,
|
||||
|
@ -233,14 +251,17 @@ pub struct HollowInfo {
|
|||
#[prost(uint32, tag = "3")]
|
||||
pub acquired_hollow_challenge_reward: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct AbyssData {}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct BuddyData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub buddy_list: ::prost::alloc::vec::Vec<BuddyItemInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct BuddyItemInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
|
@ -259,7 +280,8 @@ pub struct BuddyItemInfo {
|
|||
#[prost(uint32, repeated, tag = "8")]
|
||||
pub taken_rank_up_reward_list: ::prost::alloc::vec::Vec<u32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct MiscData {
|
||||
#[prost(message, optional, tag = "1")]
|
||||
pub switch: ::core::option::Option<SwitchData>,
|
||||
|
@ -278,14 +300,16 @@ pub struct MiscData {
|
|||
#[prost(message, optional, tag = "8")]
|
||||
pub player_accessory: ::core::option::Option<PlayerAccessoryData>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct PlayerSkinInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub player_skin_id: u32,
|
||||
#[prost(uint32, repeated, tag = "2")]
|
||||
pub equipped_accessory_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct PlayerAccessoryInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub avatar_id: u32,
|
||||
|
@ -294,24 +318,28 @@ pub struct PlayerAccessoryInfo {
|
|||
#[prost(message, repeated, tag = "3")]
|
||||
pub player_skin_list: ::prost::alloc::vec::Vec<PlayerSkinInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct PlayerAccessoryData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub player_accessory_list: ::prost::alloc::vec::Vec<PlayerAccessoryInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct BusinessCardData {
|
||||
#[prost(uint32, repeated, tag = "1")]
|
||||
pub unlocked_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub selected_id: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct InputSettingInfo {
|
||||
#[prost(map = "uint32, int32", tag = "1")]
|
||||
pub input_type_map: ::std::collections::HashMap<u32, i32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SwitchData {
|
||||
#[prost(uint32, repeated, tag = "1")]
|
||||
pub open_system_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
|
@ -322,7 +350,8 @@ pub struct SwitchData {
|
|||
#[prost(map = "uint32, message", tag = "4")]
|
||||
pub input_setting_map: ::std::collections::HashMap<u32, InputSettingInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct QuickAccessItem {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub quick_access_id: u32,
|
||||
|
@ -331,19 +360,22 @@ pub struct QuickAccessItem {
|
|||
#[prost(int32, tag = "3")]
|
||||
pub quick_access_type: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct UnlockData {
|
||||
#[prost(int32, repeated, tag = "1")]
|
||||
pub unlocked_id_list: ::prost::alloc::vec::Vec<i32>,
|
||||
#[prost(message, repeated, tag = "2")]
|
||||
pub quick_access_list: ::prost::alloc::vec::Vec<QuickAccessItem>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct NewbieData {
|
||||
#[prost(int32, repeated, tag = "1")]
|
||||
pub finished_group_id_list: ::prost::alloc::vec::Vec<i32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct NewsStandData {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub cur_style: i32,
|
||||
|
@ -366,14 +398,16 @@ pub struct NewsStandData {
|
|||
#[prost(int64, tag = "10")]
|
||||
pub last_sign_time: i64,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct PostGirlItem {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
#[prost(int64, tag = "2")]
|
||||
pub unlock_time: i64,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct PostGirlData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub post_girl_item_list: ::prost::alloc::vec::Vec<PostGirlItem>,
|
||||
|
@ -382,12 +416,14 @@ pub struct PostGirlData {
|
|||
#[prost(bool, tag = "3")]
|
||||
pub post_girl_random_toggle: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct TeleportUnlockData {
|
||||
#[prost(int32, repeated, tag = "1")]
|
||||
pub unlocked_id_list: ::prost::alloc::vec::Vec<i32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct MainCityData {
|
||||
#[prost(uint32, tag = "3")]
|
||||
pub bgm_id: u32,
|
||||
|
@ -410,7 +446,8 @@ pub mod main_city_data {
|
|||
TransformId(::prost::alloc::string::String),
|
||||
}
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SceneData {
|
||||
#[prost(uint64, tag = "1")]
|
||||
pub cur_scene_uid: u64,
|
||||
|
@ -421,7 +458,8 @@ pub struct SceneData {
|
|||
#[prost(map = "uint64, message", tag = "4")]
|
||||
pub dungeons: ::std::collections::HashMap<u64, DungeonInfo>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct SceneInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub id: u32,
|
||||
|
@ -450,7 +488,8 @@ pub mod scene_info {
|
|||
LongFight(super::LongFightSceneInfo),
|
||||
}
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct HallSceneInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub cur_section_id: u32,
|
||||
|
@ -459,7 +498,8 @@ pub struct HallSceneInfo {
|
|||
#[prost(map = "int32, int32", tag = "3")]
|
||||
pub main_city_objects_state: ::std::collections::HashMap<i32, i32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct UnitInteract {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub tag_id: i32,
|
||||
|
@ -480,7 +520,8 @@ pub struct UnitInteract {
|
|||
#[prost(int32, repeated, tag = "9")]
|
||||
pub interact_target_list: ::prost::alloc::vec::Vec<i32>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct HallSceneUnit {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub npc_tag_id: u32,
|
||||
|
@ -489,14 +530,16 @@ pub struct HallSceneUnit {
|
|||
#[prost(map = "uint32, message", tag = "3")]
|
||||
pub interacts: ::std::collections::HashMap<u32, UnitInteract>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct AttachedGraphInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub reference_id: u32,
|
||||
#[prost(enumeration = "GraphReferenceType", tag = "2")]
|
||||
pub reference_type: i32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct EventStateInfo {
|
||||
#[prost(uint64, tag = "1")]
|
||||
pub event_uid: u64,
|
||||
|
@ -513,7 +556,8 @@ pub struct EventStateInfo {
|
|||
#[prost(uint32, tag = "7")]
|
||||
pub tag: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct HallSectionInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub section_id: u32,
|
||||
|
@ -526,30 +570,35 @@ pub struct HallSectionInfo {
|
|||
#[prost(uint64, repeated, tag = "5")]
|
||||
pub already_executed_event_uid_list: ::prost::alloc::vec::Vec<u64>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct HollowSceneInfo {}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct FightSceneInfo {
|
||||
#[prost(string, tag = "1")]
|
||||
pub time_period: ::prost::alloc::string::String,
|
||||
#[prost(string, tag = "2")]
|
||||
pub weather: ::prost::alloc::string::String,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct LongFightSceneInfo {
|
||||
#[prost(string, tag = "1")]
|
||||
pub time_period: ::prost::alloc::string::String,
|
||||
#[prost(string, tag = "2")]
|
||||
pub weather: ::prost::alloc::string::String,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct DungeonInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub quest_type: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct GachaStatisticsInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub gacha_id: u32,
|
||||
|
@ -564,14 +613,16 @@ pub struct GachaStatisticsInfo {
|
|||
#[prost(bool, tag = "6")]
|
||||
pub optional_up_item_state: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct GachaData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub gacha_statistics_list: ::prost::alloc::vec::Vec<GachaStatisticsInfo>,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub gacha_random: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct MapAreaGroupInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub group_id: u32,
|
||||
|
@ -580,7 +631,8 @@ pub struct MapAreaGroupInfo {
|
|||
#[prost(uint32, tag = "3")]
|
||||
pub area_progress: u32,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, Copy, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
|
||||
pub struct MapAreaStreetInfo {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub area_id: u32,
|
||||
|
@ -595,7 +647,8 @@ pub struct MapAreaStreetInfo {
|
|||
#[prost(bool, tag = "6")]
|
||||
pub new_area_portals_showed: bool,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct MapData {
|
||||
#[prost(message, repeated, tag = "1")]
|
||||
pub area_group_list: ::prost::alloc::vec::Vec<MapAreaGroupInfo>,
|
||||
|
@ -653,7 +706,8 @@ pub struct PlayerGetDataRsp {
|
|||
#[prost(message, optional, tag = "2")]
|
||||
pub player_data: ::core::option::Option<PlayerData>,
|
||||
}
|
||||
#[derive(::proto_derive::NetCmd, Clone, PartialEq, ::prost::Message)]
|
||||
#[derive(::proto_derive::NetCmd)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct NetCommand {
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub cmd_id: u32,
|
||||
|
@ -700,4 +754,4 @@ pub struct StopPlayerLogicReq {
|
|||
pub struct StopPlayerLogicRsp {
|
||||
#[prost(int32, tag = "1")]
|
||||
pub retcode: i32,
|
||||
}
|
||||
}
|
|
@ -96,6 +96,8 @@ impl NetworkEntity {
|
|||
listener: Arc<dyn NetworkEventListener>,
|
||||
encryption_state: Arc<EncryptionState>,
|
||||
) {
|
||||
const MAX_PACKET_SIZE: usize = 0x100000;
|
||||
|
||||
let mut receive_buffer = vec![0u8; 16384];
|
||||
let mut recv_index = 0;
|
||||
|
||||
|
@ -117,7 +119,18 @@ impl NetworkEntity {
|
|||
encryption_state.xor(&mut packet.body);
|
||||
listener.on_receive(id, packet);
|
||||
}
|
||||
Err(DecodeError::Incomplete(_, _)) => break Ok(()),
|
||||
Err(DecodeError::Incomplete(required, _)) => {
|
||||
if required > receive_buffer.len() {
|
||||
if required > MAX_PACKET_SIZE {
|
||||
error!("too big packet received, size: {required}");
|
||||
break Err(());
|
||||
}
|
||||
|
||||
receive_buffer.resize(required, 0);
|
||||
}
|
||||
|
||||
break Ok(());
|
||||
},
|
||||
Err(err) => {
|
||||
error!("failed to decode incoming packet: {err}");
|
||||
break Err(());
|
||||
|
|
|
@ -1,10 +1,19 @@
|
|||
use vivian_codegen::{handlers, required_state};
|
||||
use vivian_logic::item::EItemType;
|
||||
use vivian_proto::{
|
||||
AvatarFavoriteCsReq, AvatarFavoriteScRsp, AvatarLevelUpCsReq, AvatarLevelUpScRsp, AvatarShowWeaponCsReq, AvatarShowWeaponScRsp, AvatarSkinDressCsReq, AvatarSkinDressScRsp, AvatarSkinUnDressCsReq, AvatarSkinUnDressScRsp, EquipmentDressCsReq, EquipmentDressScRsp, EquipmentSuitDressCsReq, EquipmentSuitDressScRsp, EquipmentUnDressCsReq, EquipmentUnDressScRsp, GetAvatarDataCsReq, GetAvatarDataScRsp, GetAvatarRecommendEquipCsReq, GetAvatarRecommendEquipScRsp, ItemRewardInfo, WeaponDressCsReq, WeaponDressScRsp, WeaponUnDressCsReq, WeaponUnDressScRsp
|
||||
AvatarFavoriteCsReq, AvatarFavoriteScRsp, AvatarLevelUpCsReq, AvatarLevelUpScRsp,
|
||||
AvatarShowWeaponCsReq, AvatarShowWeaponScRsp, AvatarSkinDressCsReq, AvatarSkinDressScRsp,
|
||||
AvatarSkinUnDressCsReq, AvatarSkinUnDressScRsp, EquipmentDressCsReq, EquipmentDressScRsp,
|
||||
EquipmentSuitDressCsReq, EquipmentSuitDressScRsp, EquipmentUnDressCsReq, EquipmentUnDressScRsp,
|
||||
GetAvatarDataCsReq, GetAvatarDataScRsp, GetAvatarRecommendEquipCsReq,
|
||||
GetAvatarRecommendEquipScRsp, ItemRewardInfo, WeaponDressCsReq, WeaponDressScRsp,
|
||||
WeaponUnDressCsReq, WeaponUnDressScRsp,
|
||||
};
|
||||
|
||||
use crate::{sync::SyncType, util::{avatar_util, item_util}};
|
||||
use crate::{
|
||||
sync::SyncType,
|
||||
util::{avatar_util, item_util},
|
||||
};
|
||||
|
||||
use super::NetContext;
|
||||
|
||||
|
@ -351,10 +360,7 @@ impl AvatarHandler {
|
|||
avatar_util::dress_equip(
|
||||
context.player,
|
||||
request.avatar_id,
|
||||
(
|
||||
request.equip_uid,
|
||||
request.dress_index,
|
||||
),
|
||||
(request.equip_uid, request.dress_index),
|
||||
);
|
||||
|
||||
EquipmentDressScRsp { retcode: 0 }
|
||||
|
@ -370,14 +376,11 @@ impl AvatarHandler {
|
|||
.avatar_map
|
||||
.get_mut(&request.avatar_id)
|
||||
{
|
||||
request
|
||||
.undress_index_list
|
||||
.iter()
|
||||
.for_each(|undress_index| {
|
||||
avatar
|
||||
.dressed_equip_map
|
||||
.retain(|_, index| index != undress_index);
|
||||
});
|
||||
request.undress_index_list.iter().for_each(|undress_index| {
|
||||
avatar
|
||||
.dressed_equip_map
|
||||
.retain(|_, index| index != undress_index);
|
||||
});
|
||||
|
||||
EquipmentUnDressScRsp { retcode: 0 }
|
||||
} else {
|
||||
|
@ -397,33 +400,23 @@ impl AvatarHandler {
|
|||
return EquipmentSuitDressScRsp { retcode: 1 };
|
||||
}
|
||||
|
||||
if !request
|
||||
.param_list
|
||||
.iter()
|
||||
.fold(true, |v, param|
|
||||
v && context
|
||||
if !request.param_list.iter().all(|param| {
|
||||
context
|
||||
.player
|
||||
.item_model
|
||||
.equip_map
|
||||
.contains_key(¶m.equip_uid)
|
||||
)
|
||||
{
|
||||
}) {
|
||||
return EquipmentSuitDressScRsp { retcode: 1 };
|
||||
}
|
||||
|
||||
request
|
||||
.param_list
|
||||
.iter()
|
||||
.for_each(|param| {
|
||||
avatar_util::dress_equip(
|
||||
context.player,
|
||||
request.avatar_id,
|
||||
(
|
||||
param.equip_uid,
|
||||
param.dress_index,
|
||||
),
|
||||
);
|
||||
});
|
||||
request.param_list.iter().for_each(|param| {
|
||||
avatar_util::dress_equip(
|
||||
context.player,
|
||||
request.avatar_id,
|
||||
(param.equip_uid, param.dress_index),
|
||||
);
|
||||
});
|
||||
|
||||
EquipmentSuitDressScRsp { retcode: 0 }
|
||||
}
|
||||
|
|
|
@ -51,7 +51,9 @@ pub fn add_items_on_first_login(player: &mut Player) {
|
|||
|
||||
// Generate some Drive Discs for now
|
||||
let rng = &mut rand::thread_rng();
|
||||
let properties_map: [(u32, Vec<u32>, u32, Vec<u32>, u32); 19] = [
|
||||
|
||||
type IntVec = Vec<u32>;
|
||||
let properties_map: [(u32, IntVec, u32, IntVec, u32); 19] = [
|
||||
(11103, vec![1], 550, vec![1, 2, 3, 4, 5, 6], 112),
|
||||
(11102, vec![4, 5, 6], 750, vec![1, 2, 3, 4, 5, 6], 300),
|
||||
(12103, vec![2], 79, vec![1, 2, 3, 4, 5, 6], 19),
|
||||
|
@ -72,7 +74,8 @@ pub fn add_items_on_first_login(player: &mut Player) {
|
|||
(31703, vec![5], 750, vec![], 0),
|
||||
(31503, vec![5], 750, vec![], 0),
|
||||
];
|
||||
for _ in 0..100 {
|
||||
|
||||
for _ in 0..500 {
|
||||
let uid = player.item_model.next_uid();
|
||||
|
||||
let id = player
|
||||
|
@ -98,11 +101,15 @@ pub fn add_items_on_first_login(player: &mut Player) {
|
|||
for _ in 0..4 {
|
||||
let sub_property = properties_map
|
||||
.iter()
|
||||
.filter(|p| p.3.contains(&slot) && !sub_properties.contains_key(&p.0))
|
||||
.filter(|p| {
|
||||
p.3.contains(&slot)
|
||||
&& p.0 != main_property.0
|
||||
&& !sub_properties.contains_key(&p.0)
|
||||
})
|
||||
.choose(rng)
|
||||
.map(|p| {
|
||||
let add_value = rng.next_u32() % add_value_mod;
|
||||
add_value_mod = add_value_mod - add_value;
|
||||
add_value_mod -= add_value;
|
||||
(p.0, (p.4, 1 + add_value))
|
||||
})
|
||||
.unwrap();
|
||||
|
|
Loading…
Reference in a new issue