feat: lighten map sections
This commit is contained in:
@@ -114,6 +114,9 @@ pub struct SceneData {
|
||||
pub props: Vec<ScenePropInfo>,
|
||||
pub monsters: Vec<SceneMonsterInfo>,
|
||||
pub teleports: HashMap<u32, TeleportInfo>,
|
||||
pub finished_sub_missions: Vec<u32>,
|
||||
pub finished_main_missions: Vec<u32>,
|
||||
pub chests: Vec<u32>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
@@ -123,6 +126,8 @@ pub struct LevelOutputConfig {
|
||||
pub scenes: HashMap<u32, SceneData>,
|
||||
pub plane_type: u32,
|
||||
pub world_id: u32,
|
||||
pub sections: Vec<u32>,
|
||||
pub saved_values: HashMap<String, i32>
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
@@ -138,7 +143,7 @@ pub struct JsonConfig {
|
||||
/// `entryid` -> `P[planeId]_F[floorId]` -> `groupId`
|
||||
pub level_output_configs: HashMap<u32, HashMap<String, LevelOutputConfig>>,
|
||||
pub avatar_configs: HashMap<u32, AvatarConfig>,
|
||||
pub map_default_entrance_map: HashMap<u32, u32>
|
||||
pub map_default_entrance_map: HashMap<u32, u32>,
|
||||
}
|
||||
|
||||
pub static GAME_RES: LazyLock<JsonConfig> = LazyLock::new(|| {
|
||||
|
||||
@@ -76,11 +76,7 @@ pub async fn on_get_scene_map_info_cs_req(
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
for i in 0..100 {
|
||||
map_info.lighten_section_list.push(i)
|
||||
}
|
||||
|
||||
let group_config = GAME_RES
|
||||
let floor_configs = GAME_RES
|
||||
.map_default_entrance_map
|
||||
.get(floor_id)
|
||||
.and_then(|v| {
|
||||
@@ -90,8 +86,8 @@ pub async fn on_get_scene_map_info_cs_req(
|
||||
.and_then(|v| v.iter().next())
|
||||
});
|
||||
|
||||
if let Some((_, group_config)) = group_config {
|
||||
for (group_id, group) in group_config.scenes.iter() {
|
||||
if let Some((_, floor_config)) = floor_configs {
|
||||
for (group_id, group) in floor_config.scenes.iter() {
|
||||
map_info.maze_group_list.push(MazeGroup {
|
||||
group_id: *group_id,
|
||||
..Default::default()
|
||||
@@ -109,6 +105,15 @@ pub async fn on_get_scene_map_info_cs_req(
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
map_info.lighten_section_list = floor_config.sections.clone();
|
||||
map_info.floor_saved_data = floor_config.saved_values.clone();
|
||||
// TODO!
|
||||
map_info.jmldmocnmhm = vec![Npaogkfkaae {
|
||||
fljindnjphl: 2,
|
||||
fokcifjmjgl: 2,
|
||||
slot: 2,
|
||||
}]
|
||||
}
|
||||
|
||||
res.map_list.push(map_info)
|
||||
@@ -235,6 +240,32 @@ async fn load_scene(
|
||||
} else {
|
||||
scene.world_id
|
||||
},
|
||||
lighten_section_list: scene.sections.clone(),
|
||||
chest_id_list: scene
|
||||
.scenes
|
||||
.values()
|
||||
.flat_map(|v| v.chests.clone())
|
||||
.collect::<Vec<_>>(),
|
||||
scene_mission_info: Some(MissionStatusBySceneInfo {
|
||||
finished_mission_id_list: scene
|
||||
.scenes
|
||||
.values()
|
||||
.flat_map(|s| s.finished_main_missions.clone())
|
||||
.collect::<Vec<_>>(),
|
||||
sub_mission_status_list: scene
|
||||
.scenes
|
||||
.values()
|
||||
.flat_map(|s| {
|
||||
s.finished_sub_missions.iter().map(|sm| Mission {
|
||||
id: *sm,
|
||||
status: MissionStatus::MissionFinish.into(),
|
||||
progress: 0,
|
||||
})
|
||||
})
|
||||
.collect::<Vec<_>>(),
|
||||
..Default::default()
|
||||
}),
|
||||
floor_saved_data: scene.saved_values.clone(),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
|
||||
+10
-10
@@ -14420,7 +14420,7 @@ pub mod fhabeikafbo {
|
||||
}
|
||||
#[derive(proto_derive::CmdID)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Feahpjpkgoa {
|
||||
pub struct MainMissionCustomValue {
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub main_mission_id: u32,
|
||||
#[prost(message, optional, tag = "12")]
|
||||
@@ -14580,7 +14580,7 @@ pub struct GetMissionStatusScRsp {
|
||||
#[prost(uint32, repeated, tag = "5")]
|
||||
pub unfinished_main_mission_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(message, repeated, tag = "12")]
|
||||
pub main_mission_mcv_list: ::prost::alloc::vec::Vec<Feahpjpkgoa>,
|
||||
pub main_mission_mcv_list: ::prost::alloc::vec::Vec<MainMissionCustomValue>,
|
||||
#[prost(uint32, tag = "6")]
|
||||
pub retcode: u32,
|
||||
}
|
||||
@@ -28097,15 +28097,15 @@ pub struct SceneGroupState {
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct MissionStatusBySceneInfo {
|
||||
#[prost(uint32, repeated, tag = "8")]
|
||||
pub icbikgmghik: ::prost::alloc::vec::Vec<u32>,
|
||||
pub disabled_main_mission_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(uint32, repeated, tag = "11")]
|
||||
pub ndnonhfimfi: ::prost::alloc::vec::Vec<u32>,
|
||||
pub unfinished_main_mission_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(uint32, repeated, tag = "6")]
|
||||
pub finished_mission_id: ::prost::alloc::vec::Vec<u32>,
|
||||
pub finished_mission_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(message, repeated, tag = "14")]
|
||||
pub bigehkdpgpn: ::prost::alloc::vec::Vec<Feahpjpkgoa>,
|
||||
pub bigehkdpgpn: ::prost::alloc::vec::Vec<MainMissionCustomValue>,
|
||||
#[prost(message, repeated, tag = "13")]
|
||||
pub dgkjillcfla: ::prost::alloc::vec::Vec<Mission>,
|
||||
pub sub_mission_status_list: ::prost::alloc::vec::Vec<Mission>,
|
||||
}
|
||||
#[derive(proto_derive::CmdID)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
@@ -28116,9 +28116,9 @@ pub struct SceneInfo {
|
||||
i32,
|
||||
>,
|
||||
#[prost(message, repeated, tag = "11")]
|
||||
pub mhknnlmping: ::prost::alloc::vec::Vec<EntityBuffInfo>,
|
||||
pub entity_buff_info_list: ::prost::alloc::vec::Vec<EntityBuffInfo>,
|
||||
#[prost(message, repeated, tag = "9")]
|
||||
pub gkpnkmeeibm: ::prost::alloc::vec::Vec<CustomSaveData>,
|
||||
pub custom_data_list: ::prost::alloc::vec::Vec<CustomSaveData>,
|
||||
#[prost(uint32, tag = "7")]
|
||||
pub world_id: u32,
|
||||
#[prost(uint32, tag = "8")]
|
||||
@@ -28136,7 +28136,7 @@ pub struct SceneInfo {
|
||||
#[prost(uint32, tag = "3")]
|
||||
pub client_pos_version: u32,
|
||||
#[prost(uint32, repeated, tag = "624")]
|
||||
pub djbibijmebh: ::prost::alloc::vec::Vec<u32>,
|
||||
pub chest_id_list: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(message, repeated, tag = "15")]
|
||||
pub entity_list: ::prost::alloc::vec::Vec<SceneEntityInfo>,
|
||||
#[prost(message, repeated, tag = "351")]
|
||||
|
||||
Reference in New Issue
Block a user