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 plane_type: u32,
pub world_id: u32, pub world_id: u32,
pub sections: Vec<u32>, pub sections: Vec<u32>,
pub saved_values: HashMap<String, i32> pub saved_values: HashMap<String, i32>,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@@ -144,6 +144,7 @@ pub struct JsonConfig {
pub level_output_configs: HashMap<u32, HashMap<String, LevelOutputConfig>>, pub level_output_configs: HashMap<u32, HashMap<String, LevelOutputConfig>>,
pub avatar_configs: HashMap<u32, AvatarConfig>, pub avatar_configs: HashMap<u32, AvatarConfig>,
pub map_default_entrance_map: HashMap<u32, u32>, pub map_default_entrance_map: HashMap<u32, u32>,
pub relic_avatar_recommend: HashMap<u32, Vec<u32>>,
} }
pub static GAME_RES: LazyLock<JsonConfig> = LazyLock::new(|| { 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 proto::{get_big_data_all_recommend_sc_rsp::RecommendType, *};
use crate::net::PlayerSession; 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() { match req.big_data_recommend_type() {
BigDataRecommendType::RelicAvatar => { BigDataRecommendType::RelicAvatar => {
res.recommend_type = Some(RecommendType::RelicAvatar(BigDataRecommendRelicAvatar { res.recommend_type = Some(RecommendType::RelicAvatar(BigDataRecommendRelicAvatar {
recommended_avatar_info_list: UNLOCKED_AVATARS recommended_avatar_info_list: GAME_RES
.into_iter() .relic_avatar_recommend
.map(|recommend_avatar_id| RecomendedAvatarInfo { .iter()
avatar_id_list: vec![], .map(|(set_id, avatar_list)| RecomendedAvatarInfo {
recommend_avatar_id, avatar_id_list: avatar_list.clone(),
relic_set_id: 0, recommend_avatar_id: avatar_list.first().copied().unwrap_or_default(),
relic_set_id: *set_id,
}) })
.collect(), .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.client_time_ms = body.client_time_ms;
res.server_time_ms = body.client_time_ms; res.server_time_ms = body.client_time_ms;
// res.download_data = Some(ClientDownloadData { res.download_data = Some(ClientDownloadData {
// version: 51, version: 51,
// time: res.server_time_ms as i64, time: res.server_time_ms as i64,
// data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(), data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(),
// haehhcpoapp: 0 haehhcpoapp: 0
// }); });
} }
pub async fn on_player_login_finish_cs_req( pub async fn on_player_login_finish_cs_req(
@@ -34,13 +34,14 @@ pub async fn on_player_login_finish_cs_req(
.send(ContentPackageSyncDataScNotify { .send(ContentPackageSyncDataScNotify {
data: Some(PackageData { data: Some(PackageData {
info_list: [ info_list: [
200001, 200002, 200003, 200004, 150017, 150015, 150021, 150018, 130011, 130012, 200001, 200002, 200003, 200004, 200005, 200006, 200007, 200008, 150017, 150015,
130013, 150021, 150018, 130011, 130012, 130013, 150025, 140006, 150026, 130014, 150034,
150029, 150035, 150041, 150039, 150045,
] ]
.iter() .into_iter()
.map(|v| ContentInfo { .map(|v| ContentInfo {
status: ContentPackageStatus::Finished.into(), status: ContentPackageStatus::Finished.into(),
content_id: *v, content_id: v,
}) })
.collect(), .collect(),
..Default::default() ..Default::default()
@@ -50,21 +51,3 @@ pub async fn on_player_login_finish_cs_req(
Ok(()) 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, state: prop.prop_state,
config_id: prop.inst_id, 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 scene.world_id
}, },
lighten_section_list: scene.sections.clone(), lighten_section_list: scene.sections.clone(),
// chest_id_list: scene chest_id_list: scene
// .scenes .scenes
// .values() .values()
// .flat_map(|v| v.chests.clone()) .flat_map(|v| v.chests.clone())
// .collect::<Vec<_>>(), .collect::<Vec<_>>(),
// scene_mission_info: Some(MissionStatusBySceneInfo { scene_mission_info: Some(MissionStatusBySceneInfo {
// finished_mission_id_list: scene finished_mission_id_list: scene
// .scenes .scenes
// .values() .values()
// .flat_map(|s| s.finished_main_missions.clone()) .flat_map(|s| s.finished_main_missions.clone())
// .collect::<Vec<_>>(), .collect::<Vec<_>>(),
// sub_mission_status_list: scene sub_mission_status_list: scene
// .scenes .scenes
// .values() .values()
// .flat_map(|s| { .flat_map(|s| {
// s.finished_sub_missions.iter().map(|sm| Mission { s.finished_sub_missions.iter().map(|sm| Mission {
// id: *sm, id: *sm,
// status: MissionStatus::MissionFinish.into(), status: MissionStatus::MissionFinish.into(),
// progress: 0, progress: 0,
// }) })
// }) })
// .collect::<Vec<_>>(), .collect::<Vec<_>>(),
// ..Default::default() ..Default::default()
// }), }),
floor_saved_data: scene.saved_values.clone(), floor_saved_data: scene.saved_values.clone(),
..Default::default() ..Default::default()
}; };
+1 -1
View File
File diff suppressed because one or more lines are too long