feat: handle avatar enhanced state

This commit is contained in:
amizing25
2025-05-24 05:50:15 +07:00
parent 0cb4138562
commit 81a783a078
10 changed files with 15172 additions and 37288 deletions
+20
View File
@@ -70,3 +70,23 @@ pub async fn on_get_avatar_data_cs_req(
res.multi_path_avatar_type_info_list = json.get_multi_path_info();
}
pub async fn on_set_avatar_enhanced_id_cs_req(
_session: &mut PlayerSession,
_req: &SetAvatarEnhancedIdCsReq,
_res: &mut SetAvatarEnhancedIdScRsp,
) {
// let Some(json) = session.json_data.get_mut() else {
// return;
// };
// let Some(avatar) = json.avatars.get_mut(&req.avatar_id) else {
// return;
// };
// avatar.enhanced_id = if req.enhanced_id == 0 {
// Option::<u32>::None
// } else {
// Some(req.enhanced_id)
// };
// res.growth_avatar_id = avatar.avatar_id;
// res.unk_enhanced_id = req.enhanced_id;
}
+47 -35
View File
@@ -217,21 +217,27 @@ async fn create_battle_info(
// pf score object
if player.battle_config.battle_type == BattleType::PF {
if battle_info.stage_id >= 30309011 {
battle_info.battle_target_info.insert(1, BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 10003,
progress: 0,
..Default::default()
}],
});
battle_info.battle_target_info.insert(
1,
BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 10003,
progress: 0,
..Default::default()
}],
},
);
} else {
battle_info.battle_target_info.insert(1, BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 10002,
progress: 0,
..Default::default()
}],
});
battle_info.battle_target_info.insert(
1,
BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 10002,
progress: 0,
..Default::default()
}],
},
);
}
for i in 2..=4 {
@@ -240,31 +246,37 @@ async fn create_battle_info(
.insert(i, BattleTargetList::default());
}
battle_info.battle_target_info.insert(5, BattleTargetList {
battle_target_list: vec![
BattleTarget {
id: 2001,
progress: 0,
..Default::default()
},
BattleTarget {
id: 2002,
progress: 0,
..Default::default()
},
],
});
battle_info.battle_target_info.insert(
5,
BattleTargetList {
battle_target_list: vec![
BattleTarget {
id: 2001,
progress: 0,
..Default::default()
},
BattleTarget {
id: 2002,
progress: 0,
..Default::default()
},
],
},
);
}
// Apocalyptic Shadow
if player.battle_config.battle_type == BattleType::AS {
battle_info.battle_target_info.insert(1, BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 90005,
progress: 0,
..Default::default()
}],
});
battle_info.battle_target_info.insert(
1,
BattleTargetList {
battle_target_list: vec![BattleTarget {
id: 90005,
progress: 0,
..Default::default()
}],
},
);
}
// SU
+1 -1
View File
@@ -172,12 +172,12 @@ trait_handler! {
PlayerLogin;
GetMissionStatus;
GetBasicInfo;
// GetMultiPathAvatarInfo;
GetAvatarData;
GetAllLineupData;
GetCurLineupData;
GetCurSceneInfo;
PlayerHeartBeat;
SetAvatarEnhancedId;
// Entity move (dummy!)
+6 -4
View File
@@ -41,10 +41,12 @@ impl PlayerSession {
let (shutdown_tx, shutdown_rx) = watch::channel(());
Self {
token,
kcp: Arc::new(Mutex::new(Kcp::new(conv, token, false, RemoteEndPoint {
socket,
addr,
}))),
kcp: Arc::new(Mutex::new(Kcp::new(
conv,
token,
false,
RemoteEndPoint { socket, addr },
))),
start_time: util::cur_timestamp_secs(),
json_data: OnceLock::new(),
shutdown_rx,