feat: Add support for 3.8.5x

This commit is contained in:
amizing25
2026-01-06 23:57:37 +07:00
parent 56bdb1abc1
commit 14692dc78e
17 changed files with 79422 additions and 82321 deletions
+24 -27
View File
@@ -1,13 +1,11 @@
use std::collections::HashMap;
use super::*;
pub static UNLOCKED_AVATARS: [u32; 74] = [
pub static UNLOCKED_AVATARS: [u32; 76] = [
1002, 1003, 1004, 1005, 1006, 1008, 1009, 1013, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,
1109, 1110, 1111, 1112, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212,
1213, 1214, 1215, 1217, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1312, 1315, 1310,
1314, 1218, 1221, 1220, 1222, 1223, 1317, 1313, 1225, 1402, 1401, 1404, 1403, 1405, 1407, 1406,
1409, 1014, 1015, 1408, 1410, 1412, 1413, 1414, 1415, 1321,
1409, 1014, 1015, 1408, 1410, 1412, 1413, 1414, 1415, 1321, 1501, 1502,
];
pub async fn on_get_avatar_data_cs_req(
@@ -37,38 +35,37 @@ pub async fn on_get_avatar_data_cs_req(
.map(|id| {
json.avatars
.get(&id)
.map(|v| {
v.to_avatar_proto(
json.lightcones.iter().find(|v| v.equip_avatar == id),
json.relics
.iter()
.filter(|v| v.equip_avatar == id)
.collect(),
)
})
.map(|v| v.to_avatar_proto(json.lightcones.iter().find(|v| v.equip_avatar == id)))
.unwrap_or(Avatar {
base_avatar_id: id,
level: 80,
promotion: 6,
rank: 6,
skilltree_list: (1..=4)
.map(|m| AvatarSkillTree {
point_id: id * 1000 + m,
level: 1,
})
.collect(),
first_met_time_stamp: 1712924677,
..Default::default()
cur_multi_path_avatar_type: 0,
equipment_unique_id: 0,
has_taken_promotion_reward_list: Vec::with_capacity(0),
is_marked: false,
exp: 0,
})
})
.collect();
res.cur_avatar_path = HashMap::from([
(8001, json.main_character.get_type().into()),
(1001, json.march_type.get_type().into()),
]);
res.multi_path_avatar_info_list = json.get_multi_path_info();
res.avatar_path_data_info_list = UNLOCKED_AVATARS
.into_iter()
.chain(mc_ids.iter().copied())
.chain(march_ids.iter().copied())
.filter_map(|id| {
json.avatars.get(&id).map(|v| {
v.to_avatar_path_data_proto(
json.lightcones.iter().find(|v| v.equip_avatar == id),
json.relics
.iter()
.filter(|v| v.equip_avatar == id)
.collect(),
)
})
})
.collect();
}
pub async fn on_set_avatar_enhanced_id_cs_req(