feat: Add support for 4.1.5x

This commit is contained in:
amizing25
2026-03-17 21:24:16 +07:00
parent c697c799d6
commit cc389bd368
9 changed files with 101229 additions and 91043 deletions
+11 -1
View File
@@ -21,6 +21,8 @@ pub enum MultiPathAvatar {
FemaleHarmony = 8006, FemaleHarmony = 8006,
MaleRemembrance = 8007, MaleRemembrance = 8007,
FemaleRemembrance = 8008, FemaleRemembrance = 8008,
MaleElation = 8009,
FemaleElation = 8010,
MarchHunt = 1224, MarchHunt = 1224,
MarchPreservation = 1001, MarchPreservation = 1001,
#[default] #[default]
@@ -38,6 +40,8 @@ impl From<u32> for MultiPathAvatar {
8006 => Self::FemaleHarmony, 8006 => Self::FemaleHarmony,
8007 => Self::MaleRemembrance, 8007 => Self::MaleRemembrance,
8008 => Self::FemaleRemembrance, 8008 => Self::FemaleRemembrance,
8009 => Self::MaleElation,
8010 => Self::FemaleElation,
1224 => Self::MarchHunt, 1224 => Self::MarchHunt,
1001 => Self::MarchPreservation, 1001 => Self::MarchPreservation,
_ => Self::Unk, _ => Self::Unk,
@@ -56,9 +60,11 @@ impl From<MultiPathAvatar> for u32 {
MultiPathAvatar::FemaleHarmony => 8006, MultiPathAvatar::FemaleHarmony => 8006,
MultiPathAvatar::MaleRemembrance => 8007, MultiPathAvatar::MaleRemembrance => 8007,
MultiPathAvatar::FemaleRemembrance => 8008, MultiPathAvatar::FemaleRemembrance => 8008,
MultiPathAvatar::MaleElation => 8009,
MultiPathAvatar::FemaleElation => 8010,
MultiPathAvatar::MarchHunt => 1224, MultiPathAvatar::MarchHunt => 1224,
MultiPathAvatar::MarchPreservation => 1001, MultiPathAvatar::MarchPreservation => 1001,
_ => 8006, MultiPathAvatar::Unk => 8006,
} }
} }
} }
@@ -88,6 +94,8 @@ impl MultiPathAvatar {
MultiPathAvatar::Unk => MultiPathAvatarType::None, MultiPathAvatar::Unk => MultiPathAvatarType::None,
MultiPathAvatar::MaleRemembrance => MultiPathAvatarType::BoyMemoryType, MultiPathAvatar::MaleRemembrance => MultiPathAvatarType::BoyMemoryType,
MultiPathAvatar::FemaleRemembrance => MultiPathAvatarType::GirlMemoryType, MultiPathAvatar::FemaleRemembrance => MultiPathAvatarType::GirlMemoryType,
MultiPathAvatar::MaleElation => MultiPathAvatarType::BoyElationType,
MultiPathAvatar::FemaleElation => MultiPathAvatarType::GirlElationType,
} }
} }
@@ -105,6 +113,8 @@ impl MultiPathAvatar {
Self::FemaleHarmony, Self::FemaleHarmony,
Self::MaleRemembrance, Self::MaleRemembrance,
Self::FemaleRemembrance, Self::FemaleRemembrance,
Self::MaleElation,
Self::FemaleElation,
Self::MarchHunt, Self::MarchHunt,
Self::MarchPreservation, Self::MarchPreservation,
] ]
+8566 -4387
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,13 +1,13 @@
use super::*; use super::*;
pub static BASE_AVATAR_IDS: [u32; 79] = [ pub static BASE_AVATAR_IDS: [u32; 81] = [
8001, 1001, // 8001, 1001, //
// //
1002, 1003, 1004, 1005, 1006, 1008, 1009, 1013, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 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, 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, 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, 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, 1501, 1502, 1504, 1409, 1014, 1015, 1408, 1410, 1412, 1413, 1414, 1415, 1321, 1501, 1502, 1504,1505,1506
]; ];
pub async fn on_get_avatar_data_cs_req( pub async fn on_get_avatar_data_cs_req(
+9 -9
View File
@@ -27,8 +27,8 @@ pub async fn on_get_friend_login_info_cs_req(
_req: &GetFriendLoginInfoCsReq, _req: &GetFriendLoginInfoCsReq,
res: &mut GetFriendLoginInfoScRsp, res: &mut GetFriendLoginInfoScRsp,
) { ) {
res.cobofagagkm = vec![SERVER_UID]; res.bhjonholeaa = vec![SERVER_UID];
res.pkdoflgoaof = vec![SERVER_UID]; res.doahbaphmbo = vec![SERVER_UID];
} }
pub async fn on_get_friend_list_info_cs_req( pub async fn on_get_friend_list_info_cs_req(
@@ -65,9 +65,9 @@ pub async fn on_get_private_chat_history_cs_req(
.iter() .iter()
.map(|text| ChatMessageData { .map(|text| ChatMessageData {
create_time: cur_time, create_time: cur_time,
aeelknkiici: Some(Jdpgjoadlle { ngiifilphni: Some(Pkjcignoion {
nihajmhkobc: 1, ifkjohednbd: 1,
mhhbnffopoj: Some(jdpgjoadlle::Mhhbnffopoj::Uid(SERVER_UID)), fpcdpdphkjj: Some(pkjcignoion::Fpcdpdphkjj::Uid(SERVER_UID)),
}), }),
message_datas: vec![MessageChatData { message_datas: vec![MessageChatData {
message_type: 1, message_type: 1,
@@ -285,12 +285,12 @@ fn create_send_message(
) -> RevcMsgScNotify { ) -> RevcMsgScNotify {
RevcMsgScNotify { RevcMsgScNotify {
chat_type, chat_type,
dkdlooaaake: to, eokimloiohi: to,
recv_message_data: Some(ChatMessageData { recv_message_data: Some(ChatMessageData {
create_time: cur_timestamp_ms(), create_time: cur_timestamp_ms(),
aeelknkiici: Some(Jdpgjoadlle { ngiifilphni: Some(Pkjcignoion {
nihajmhkobc: 0, ifkjohednbd: 0,
mhhbnffopoj: Some(jdpgjoadlle::Mhhbnffopoj::Uid(from)), fpcdpdphkjj: Some(pkjcignoion::Fpcdpdphkjj::Uid(from)),
}), }),
message_datas: vec![MessageChatData { message_datas: vec![MessageChatData {
message_type, message_type,
+12 -9
View File
@@ -42,7 +42,7 @@ pub async fn on_enter_scene_cs_req(
req: &EnterSceneCsReq, req: &EnterSceneCsReq,
res: &mut EnterSceneScRsp, res: &mut EnterSceneScRsp,
) { ) {
if load_scene(session, req.entry_id, true, Some(req.teleport_id)) if load_scene(session, req.entry_id, true, Some(req.entry_id2))
.await .await
.is_err() .is_err()
{ {
@@ -55,9 +55,8 @@ pub async fn on_get_scene_map_info_cs_req(
req: &GetSceneMapInfoCsReq, req: &GetSceneMapInfoCsReq,
res: &mut GetSceneMapInfoScRsp, res: &mut GetSceneMapInfoScRsp,
) { ) {
for floor_id in &req.floor_id_list { for floor_id in req.scene_identifiers.iter().map(|v| v.floor_id) {
let mut map_info = SceneMapInfo { let mut map_info = SceneMapInfo {
retcode: 0,
chest_list: vec![ chest_list: vec![
ChestInfo { ChestInfo {
chest_type: 101, chest_type: 101,
@@ -72,13 +71,13 @@ pub async fn on_get_scene_map_info_cs_req(
..Default::default() ..Default::default()
}, },
], ],
floor_id: *floor_id, floor_id: floor_id,
..Default::default() ..Default::default()
}; };
let floor_configs = GAME_RES let floor_configs = GAME_RES
.map_default_entrance_map .map_default_entrance_map
.get(floor_id) .get(&floor_id)
.and_then(|v| { .and_then(|v| {
GAME_RES GAME_RES
.level_output_configs .level_output_configs
@@ -88,7 +87,7 @@ pub async fn on_get_scene_map_info_cs_req(
if let Some((_, floor_config)) = floor_configs { if let Some((_, floor_config)) = floor_configs {
for (group_id, group) in floor_config.scenes.iter() { for (group_id, group) in floor_config.scenes.iter() {
map_info.maze_group_list.push(MazeGroup { map_info.group_list.push(MapInfoGroup {
group_id: *group_id, group_id: *group_id,
..Default::default() ..Default::default()
}); });
@@ -98,7 +97,7 @@ pub async fn on_get_scene_map_info_cs_req(
} }
for prop in &group.props { for prop in &group.props {
map_info.maze_prop_list.push(MazePropState { map_info.map_info_prop_list.push(MapInfoProp {
group_id: prop.group_id, group_id: prop.group_id,
state: prop.prop_state, state: prop.prop_state,
config_id: prop.inst_id, config_id: prop.inst_id,
@@ -114,7 +113,7 @@ pub async fn on_get_scene_map_info_cs_req(
} }
map_info.lighten_section_list = floor_config.sections.clone(); map_info.lighten_section_list = floor_config.sections.clone();
map_info.floor_saved_data = floor_config.saved_values.clone(); map_info.floor_saved_value_map = floor_config.saved_values.clone();
// #TODO! // #TODO!
// map_info // map_info
// .chest_unlock_progress_list // .chest_unlock_progress_list
@@ -275,6 +274,10 @@ async fn load_scene(
..Default::default() ..Default::default()
}), }),
floor_saved_data: scene.saved_values.clone(), floor_saved_data: scene.saved_values.clone(),
scene_identifier: Some(SceneIdentifier {
floor_id,
..Default::default()
}),
..Default::default() ..Default::default()
}; };
@@ -404,7 +407,7 @@ async fn load_scene(
scene_info.entity_group_list.push(SceneEntityGroupInfo { scene_info.entity_group_list.push(SceneEntityGroupInfo {
state: 0, state: 0,
group_id: 0, group_id: 0,
ggnjmghhhmj: HashMap::with_capacity(0), opljdfoomgf: HashMap::with_capacity(0),
entity_list: json entity_list: json
.lineups .lineups
.iter() .iter()
+5 -5
View File
@@ -1,9 +1,9 @@
{ {
"lineups": { "lineups": {
"0": 1414, "0": 1506,
"1": 1410, "1": 1505,
"2": 0, "2": 8001,
"3": 0 "3": 1409
}, },
"position": { "position": {
"x": 422379, "x": 422379,
@@ -16,6 +16,6 @@
"floor_id": 20511001, "floor_id": 20511001,
"entry_id": 2051101 "entry_id": 2051101
}, },
"main_character": "FemaleRemembrance", "main_character": "FemaleElation",
"march_type": "MarchHunt" "march_type": "MarchHunt"
} }
+30652 -28426
View File
File diff suppressed because it is too large Load Diff
+61888 -58126
View File
File diff suppressed because it is too large Load Diff
+30 -24
View File
@@ -5,13 +5,7 @@
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2", "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a" "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
}, },
"CNBETAWin3.5.55": { "OSPRODWin3.6.0": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_11797411_74704086c081_d40a71b41ba492",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_11823033_c9e8c870bcc7_b78f37c36487d0",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_11798340_8c6543a1d6c5_2d60cd9b1584b8",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885"
},
"CNBETAWin3.7.51": {
"asset_bundle_url": "", "asset_bundle_url": "",
"ex_resource_url": "", "ex_resource_url": "",
"lua_url": "", "lua_url": "",
@@ -23,18 +17,6 @@
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027", "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885" "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885"
}, },
"CNBETAWin3.6.52X": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12150127_00d6d096d968_cd76a04beb7ba6",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12178965_e246796e0bb6_05bcce36cd648b",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12150614_5279f6d8029a_bdecff99d2d817",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12164593_8e3fba5163df_b2b6fc46de4c06"
},
"OSPRODWin3.6.0": {
"asset_bundle_url": "",
"ex_resource_url": "",
"lua_url": "",
"ifix_url": ""
},
"OSBETAWin3.8.51X": { "OSBETAWin3.8.51X": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_13490885_bf25e1553b38_e9adc23a6b6710", "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_13490885_bf25e1553b38_e9adc23a6b6710",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_13532881_eb1de9bedabd_c74ab2513059ad", "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_13532881_eb1de9bedabd_c74ab2513059ad",
@@ -47,16 +29,40 @@
"lua_url": "", "lua_url": "",
"ifix_url": "" "ifix_url": ""
}, },
"OSBETAWin4.0.51X": { "CNBETAWin4.1.51": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14026982_55a517a26691_89300298bf2b2e", "asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14036546_28a134460a9a_5805431f75f0ff", "ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14372319_01febed213ae_b1f343e62353c2",
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14028456_7088b08fd431_59194837d90977", "lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4" "ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
},
"CNBETAWin3.6.52X": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12150127_00d6d096d968_cd76a04beb7ba6",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12178965_e246796e0bb6_05bcce36cd648b",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12150614_5279f6d8029a_bdecff99d2d817",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12164593_8e3fba5163df_b2b6fc46de4c06"
},
"CNBETAWin3.5.55": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_11797411_74704086c081_d40a71b41ba492",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_11823033_c9e8c870bcc7_b78f37c36487d0",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_11798340_8c6543a1d6c5_2d60cd9b1584b8",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885"
},
"CNBETAWin3.7.51": {
"asset_bundle_url": "",
"ex_resource_url": "",
"lua_url": "",
"ifix_url": ""
}, },
"OSBETAWin4.0.51": { "OSBETAWin4.0.51": {
"asset_bundle_url": "", "asset_bundle_url": "",
"ex_resource_url": "", "ex_resource_url": "",
"lua_url": "", "lua_url": "",
"ifix_url": "" "ifix_url": ""
},
"OSBETAWin4.0.51X": {
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14026982_55a517a26691_89300298bf2b2e",
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14036546_28a134460a9a_5805431f75f0ff",
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14028456_7088b08fd431_59194837d90977",
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
} }
} }