fix: fix relic recommend & some scene not appearing

This commit is contained in:
amizing25
2025-05-24 05:50:58 +07:00
parent 81a783a078
commit 42545bbc53
5 changed files with 52 additions and 61 deletions
+2 -1
View File
@@ -127,7 +127,7 @@ pub struct LevelOutputConfig {
pub plane_type: u32,
pub world_id: u32,
pub sections: Vec<u32>,
pub saved_values: HashMap<String, i32>
pub saved_values: HashMap<String, i32>,
}
#[derive(Deserialize)]
@@ -144,6 +144,7 @@ pub struct JsonConfig {
pub level_output_configs: HashMap<u32, HashMap<String, LevelOutputConfig>>,
pub avatar_configs: HashMap<u32, AvatarConfig>,
pub map_default_entrance_map: HashMap<u32, u32>,
pub relic_avatar_recommend: HashMap<u32, Vec<u32>>,
}
pub static GAME_RES: LazyLock<JsonConfig> = LazyLock::new(|| {
+8 -7
View File
@@ -1,4 +1,4 @@
use common::sr_tools::FreesrData;
use common::{resources::GAME_RES, sr_tools::FreesrData};
use proto::{get_big_data_all_recommend_sc_rsp::RecommendType, *};
use crate::net::PlayerSession;
@@ -109,12 +109,13 @@ pub async fn on_get_big_data_all_recommend_cs_req(
match req.big_data_recommend_type() {
BigDataRecommendType::RelicAvatar => {
res.recommend_type = Some(RecommendType::RelicAvatar(BigDataRecommendRelicAvatar {
recommended_avatar_info_list: UNLOCKED_AVATARS
.into_iter()
.map(|recommend_avatar_id| RecomendedAvatarInfo {
avatar_id_list: vec![],
recommend_avatar_id,
relic_set_id: 0,
recommended_avatar_info_list: GAME_RES
.relic_avatar_recommend
.iter()
.map(|(set_id, avatar_list)| RecomendedAvatarInfo {
avatar_id_list: avatar_list.clone(),
recommend_avatar_id: avatar_list.first().copied().unwrap_or_default(),
relic_set_id: *set_id,
})
.collect(),
}))
+11 -28
View File
@@ -17,12 +17,12 @@ pub async fn on_player_heart_beat_cs_req(
) {
res.client_time_ms = body.client_time_ms;
res.server_time_ms = body.client_time_ms;
// res.download_data = Some(ClientDownloadData {
// version: 51,
// time: res.server_time_ms as i64,
// data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(),
// haehhcpoapp: 0
// });
res.download_data = Some(ClientDownloadData {
version: 51,
time: res.server_time_ms as i64,
data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(),
haehhcpoapp: 0
});
}
pub async fn on_player_login_finish_cs_req(
@@ -34,13 +34,14 @@ pub async fn on_player_login_finish_cs_req(
.send(ContentPackageSyncDataScNotify {
data: Some(PackageData {
info_list: [
200001, 200002, 200003, 200004, 150017, 150015, 150021, 150018, 130011, 130012,
130013,
200001, 200002, 200003, 200004, 200005, 200006, 200007, 200008, 150017, 150015,
150021, 150018, 130011, 130012, 130013, 150025, 140006, 150026, 130014, 150034,
150029, 150035, 150041, 150039, 150045,
]
.iter()
.into_iter()
.map(|v| ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: *v,
content_id: v,
})
.collect(),
..Default::default()
@@ -50,21 +51,3 @@ pub async fn on_player_login_finish_cs_req(
Ok(())
}
// pub async fn on_get_multi_path_avatar_info_cs_req(
// session: &mut PlayerSession,
// _req: &GetMultiPathAvatarInfoCsReq,
// res: &mut GetMultiPathAvatarInfoScRsp,
// ) {
// let Some(json) = session.json_data.get() else {
// tracing::error!("data is not set!");
// return;
// };
// res.current_multi_path_avatar_id = HashMap::from([
// (8001, json.main_character.get_type().into()),
// (1001, json.march_type.get_type().into()),
// ]);
// res.multi_path_avatar_type_info_list = json.get_multi_path_info();
// }
+30 -24
View File
@@ -103,6 +103,12 @@ pub async fn on_get_scene_map_info_cs_req(
state: prop.prop_state,
config_id: prop.inst_id,
});
map_info.lmngahfnaon.push(Ofcaigdhpoh {
group_id: prop.group_id,
state: prop.prop_state,
config_id: prop.inst_id,
extra_info: Option::None,
});
}
}
@@ -241,30 +247,30 @@ async fn load_scene(
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()
// }),
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()
};
+1 -1
View File
File diff suppressed because one or more lines are too long