feat: Add support for 4.4.5x
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Supported Version: 3.3.5x
|
# Supported Version: 4.4.5x
|
||||||
|
|
||||||
Run the game by clicking run.bat file.
|
Run the game by clicking run.bat file.
|
||||||
|
|
||||||
|
|||||||
+26574
-25631
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
pub static BASE_AVATAR_IDS: [u32; 85] = [
|
pub static BASE_AVATAR_IDS: [u32; 87] = [
|
||||||
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,
|
||||||
@@ -8,7 +8,7 @@ pub static BASE_AVATAR_IDS: [u32; 85] = [
|
|||||||
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, 1505, 1506, 1507,
|
1409, 1014, 1015, 1408, 1410, 1412, 1413, 1414, 1415, 1321, 1501, 1502, 1504, 1505, 1506, 1507,
|
||||||
1508, 1509, 1510
|
1508, 1509, 1510, 1512, 1513,
|
||||||
];
|
];
|
||||||
|
|
||||||
pub async fn on_get_avatar_data_cs_req(
|
pub async fn on_get_avatar_data_cs_req(
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ pub async fn on_send_msg_cs_req(
|
|||||||
.and_then(|x| x.extend_type.as_ref())
|
.and_then(|x| x.extend_type.as_ref())
|
||||||
.and_then(|x| match x {
|
.and_then(|x| match x {
|
||||||
ExtendType::MessageText(s) => Some(s.as_str()),
|
ExtendType::MessageText(s) => Some(s.as_str()),
|
||||||
_ => None,
|
_ => Option::<&str>::None,
|
||||||
})
|
})
|
||||||
.unwrap_or("");
|
.unwrap_or("");
|
||||||
|
|
||||||
@@ -325,7 +325,7 @@ fn create_send_message(
|
|||||||
) -> RevcMsgScNotify {
|
) -> RevcMsgScNotify {
|
||||||
RevcMsgScNotify {
|
RevcMsgScNotify {
|
||||||
chat_type,
|
chat_type,
|
||||||
dkdlooaaake: to,
|
pffpfkoglpo: to,
|
||||||
recv_message_data: Some(ChatMessageData {
|
recv_message_data: Some(ChatMessageData {
|
||||||
create_time: cur_timestamp_ms(),
|
create_time: cur_timestamp_ms(),
|
||||||
ckhpffenobe: Some(Eknabklpeel {
|
ckhpffenobe: Some(Eknabklpeel {
|
||||||
|
|||||||
@@ -135,10 +135,10 @@ pub async fn on_get_big_data_all_recommend_cs_req(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn on_active_eidolon_cs_req(
|
pub async fn on_rank_up_avatar_cs_req(
|
||||||
session: &mut PlayerSession,
|
session: &mut PlayerSession,
|
||||||
req: &ActiveEidolonCsReq,
|
req: &RankUpAvatarCsReq,
|
||||||
_: &mut ActiveEidolonScRsp,
|
_: &mut RankUpAvatarScRsp,
|
||||||
) -> Option<()> {
|
) -> Option<()> {
|
||||||
let player = session.json_data.get_mut()?;
|
let player = session.json_data.get_mut()?;
|
||||||
let avatar = player.avatars.get_mut(&req.avatar_id)?;
|
let avatar = player.avatars.get_mut(&req.avatar_id)?;
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ pub async fn on_get_mission_status_cs_req(
|
|||||||
body: &GetMissionStatusCsReq,
|
body: &GetMissionStatusCsReq,
|
||||||
res: &mut GetMissionStatusScRsp,
|
res: &mut GetMissionStatusScRsp,
|
||||||
) {
|
) {
|
||||||
res.finished_main_mission_id_list = body.main_mission_id_list.clone();
|
res.finished_main_mission_id_list = body.sub_mission_id_list.clone();
|
||||||
res.sub_mission_status_list = body
|
res.sub_mission_status_list = body
|
||||||
.sub_mission_id_list
|
.main_mission_id_list
|
||||||
.iter()
|
.iter()
|
||||||
.map(|id| Mission {
|
.map(|id| Mission {
|
||||||
id: *id,
|
id: *id,
|
||||||
|
|||||||
@@ -29,30 +29,6 @@ pub use mission::*;
|
|||||||
pub use player::*;
|
pub use player::*;
|
||||||
pub use scene::*;
|
pub use scene::*;
|
||||||
|
|
||||||
#[allow(unused_imports)]
|
|
||||||
use proto::{
|
|
||||||
CmdActivityType::*, CmdAdventureType::*, CmdAetherDivideType::*, CmdAlleyType::*,
|
|
||||||
CmdArchiveType::*, CmdAvatarType::*, CmdBattleCollegeType::*, CmdBattlePassType::*,
|
|
||||||
CmdBattleType::*, CmdBoxingClubType::*, CmdChallengeType::*, CmdChatType::*,
|
|
||||||
CmdChessRogueType::*, CmdClockParkType::*, CmdContentPackageType::*, CmdDailyActiveType::*,
|
|
||||||
CmdDrinkMakerType::*, CmdExpeditionType::*, CmdFantasticStoryActivityType::*,
|
|
||||||
CmdFeverTimeActivityType::*, CmdFightActivityType::*, CmdFightMatch3Type::*, CmdFightType::*,
|
|
||||||
CmdFriendType::*, CmdGachaType::*, CmdHeartdialType::*, CmdHeliobusType::*, CmdItemType::*,
|
|
||||||
CmdJukeboxType::*, CmdLineupType::*, CmdLobbyType::*, CmdMailType::*, CmdMapRotationType::*,
|
|
||||||
CmdMatchThreeModuleType::*, CmdMatchType::*, CmdMessageType::*, CmdMiscModuleType::*,
|
|
||||||
CmdMissionType::*, CmdMonopolyType::*, CmdMultiplayerType::*, CmdMultipleDropType::*,
|
|
||||||
CmdMuseumType::*, CmdOfferingType::*, CmdPamMissionType::*, CmdPhoneType::*,
|
|
||||||
CmdPlayerBoardType::*, CmdPlayerReturnType::*, CmdPlayerSyncType::*, CmdPlayerType::*,
|
|
||||||
CmdPunkLordType::*, CmdQuestType::*, CmdRaidCollectionType::*, CmdRaidType::*,
|
|
||||||
CmdRechargeGiftType::*, CmdRecommendType::*, CmdRedDotType::*, CmdReplayType::*,
|
|
||||||
CmdRndOptionType::*, CmdRogueCommonType::*, CmdRogueEndlessType::*, CmdRogueModifierType::*,
|
|
||||||
CmdRogueTournType::*, CmdRogueType::*, CmdRollShopType::*, CmdSceneType::*,
|
|
||||||
CmdServerPrefsType::*, CmdShopType::*, CmdSpaceZooType::*, CmdStarFightType::*,
|
|
||||||
CmdStoryLineType::*, CmdStrongChallengeActivityType::*, CmdTalkEventType::*,
|
|
||||||
CmdTelevisionActivityType::*, CmdTextJoinType::*, CmdTrainVisitorType::*,
|
|
||||||
CmdTreasureDungeonType::*, CmdTutorialType::*, CmdWaypointType::*, CmdWolfBroType::*,
|
|
||||||
};
|
|
||||||
|
|
||||||
macro_rules! dummy {
|
macro_rules! dummy {
|
||||||
($($cmd:ident),* $(,)*) => {
|
($($cmd:ident),* $(,)*) => {
|
||||||
paste! {
|
paste! {
|
||||||
@@ -60,7 +36,7 @@ macro_rules! dummy {
|
|||||||
pub const fn should_send_dummy_rsp(cmd_id: u16) -> bool {
|
pub const fn should_send_dummy_rsp(cmd_id: u16) -> bool {
|
||||||
match cmd_id {
|
match cmd_id {
|
||||||
$(
|
$(
|
||||||
x if x == [<Cmd $cmd CsReq>] as u16 => true,
|
x if x == <proto::[<$cmd CsReq>] as proto::CmdID>::CMD_ID => true,
|
||||||
)*
|
)*
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
@@ -69,7 +45,9 @@ macro_rules! dummy {
|
|||||||
pub async fn send_dummy_response(&mut self, req_id: u16) -> Result<()> {
|
pub async fn send_dummy_response(&mut self, req_id: u16) -> Result<()> {
|
||||||
let cmd_type = match req_id {
|
let cmd_type = match req_id {
|
||||||
$(
|
$(
|
||||||
x if x == [<Cmd $cmd CsReq>] as u16 => [<Cmd $cmd ScRsp>] as u16,
|
x if x == <proto::[<$cmd CsReq>] as proto::CmdID>::CMD_ID => {
|
||||||
|
<proto::[<$cmd ScRsp>] as proto::CmdID>::CMD_ID
|
||||||
|
},
|
||||||
)*
|
)*
|
||||||
_ => return Err(anyhow::anyhow!("Invalid request id {req_id:?}")),
|
_ => return Err(anyhow::anyhow!("Invalid request id {req_id:?}")),
|
||||||
};
|
};
|
||||||
@@ -140,5 +118,6 @@ dummy! {
|
|||||||
GetPreAvatarActivityList,
|
GetPreAvatarActivityList,
|
||||||
// GetUnreleasedBlockInfo,
|
// GetUnreleasedBlockInfo,
|
||||||
GetFriendAssistList,
|
GetFriendAssistList,
|
||||||
GetAssistList
|
GetAssistList,
|
||||||
|
B51RacingGetData
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,9 +34,11 @@ pub async fn on_player_login_finish_cs_req(
|
|||||||
.send(ContentPackageSyncDataScNotify {
|
.send(ContentPackageSyncDataScNotify {
|
||||||
data: Some(ContentPackageData {
|
data: Some(ContentPackageData {
|
||||||
content_package_list: [
|
content_package_list: [
|
||||||
200001, 200002, 200003, 200004, 200005, 200006, 200007, 200008, 150017, 150015,
|
200001, 200002, 200003, 200004, 200005, 200006, 200007, 200008, 200009, 200010,
|
||||||
150021, 150018, 130011, 130012, 130013, 150025, 140006, 150026, 130014, 150034,
|
200011, 200012, 150017, 150015, 150021, 150018, 130011, 130012, 130013, 150025,
|
||||||
150029, 150035, 150041, 150039, 150045,
|
140006, 150026, 130014, 150034, 150029, 150035, 150041, 150039, 150045, 150057,
|
||||||
|
150042, 150067, 150064, 150063, 150024, 171002, 150068, 150070, 150071, 150073,
|
||||||
|
150074, 150075, 150076, 150077, 150078, 150079,
|
||||||
]
|
]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|v| ContentPackageInfo {
|
.map(|v| ContentPackageInfo {
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ pub async fn on_get_scene_map_info_cs_req(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
floor_id: floor_id,
|
floor_id: floor_id,
|
||||||
|
scene_identifier: Some(SceneIdentifier {
|
||||||
|
floor_id,
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -87,7 +91,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()
|
||||||
});
|
});
|
||||||
@@ -97,11 +101,11 @@ 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(MazePropState {
|
||||||
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,
|
||||||
extra_info: None,
|
extra_info: Option::<PropExtraInfo>::None,
|
||||||
});
|
});
|
||||||
// map_info.maze_group_list.push(MazeGroup {
|
// map_info.maze_group_list.push(MazeGroup {
|
||||||
// group_id: prop.group_id,
|
// group_id: prop.group_id,
|
||||||
@@ -113,7 +117,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
|
||||||
@@ -124,7 +128,7 @@ pub async fn on_get_scene_map_info_cs_req(
|
|||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
res.scene_map_info.push(map_info)
|
res.scene_map_info_list.push(map_info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,29 +3,6 @@ use paste::paste;
|
|||||||
use tracing::Instrument;
|
use tracing::Instrument;
|
||||||
|
|
||||||
use proto::*;
|
use proto::*;
|
||||||
#[allow(unused_imports)]
|
|
||||||
use proto::{
|
|
||||||
CmdActivityType::*, CmdAdventureType::*, CmdAetherDivideType::*, CmdAlleyType::*,
|
|
||||||
CmdArchiveType::*, CmdAvatarType::*, CmdBattleCollegeType::*, CmdBattlePassType::*,
|
|
||||||
CmdBattleType::*, CmdBoxingClubType::*, CmdChallengeType::*, CmdChatType::*,
|
|
||||||
CmdChessRogueType::*, CmdClockParkType::*, CmdContentPackageType::*, CmdDailyActiveType::*,
|
|
||||||
CmdDrinkMakerType::*, CmdExpeditionType::*, CmdFantasticStoryActivityType::*,
|
|
||||||
CmdFeverTimeActivityType::*, CmdFightActivityType::*, CmdFightMatch3Type::*, CmdFightType::*,
|
|
||||||
CmdFriendType::*, CmdGachaType::*, CmdHeartdialType::*, CmdHeliobusType::*, CmdItemType::*,
|
|
||||||
CmdJukeboxType::*, CmdLineupType::*, CmdLobbyType::*, CmdMailType::*, CmdMapRotationType::*,
|
|
||||||
CmdMatchThreeModuleType::*, CmdMatchType::*, CmdMessageType::*, CmdMiscModuleType::*,
|
|
||||||
CmdMissionType::*, CmdMonopolyType::*, CmdMultiplayerType::*, CmdMultipleDropType::*,
|
|
||||||
CmdMuseumType::*, CmdOfferingType::*, CmdPamMissionType::*, CmdPhoneType::*,
|
|
||||||
CmdPlayerBoardType::*, CmdPlayerReturnType::*, CmdPlayerSyncType::*, CmdPlayerType::*,
|
|
||||||
CmdPunkLordType::*, CmdQuestType::*, CmdRaidCollectionType::*, CmdRaidType::*,
|
|
||||||
CmdRecommendType::*, CmdRedDotType::*, CmdReplayType::*, CmdRndOptionType::*,
|
|
||||||
CmdRogueCommonType::*, CmdRogueEndlessType::*, CmdRogueModifierType::*, CmdRogueTournType::*,
|
|
||||||
CmdRogueType::*, CmdRollShopType::*, CmdSceneType::*, CmdServerPrefsType::*, CmdShopType::*,
|
|
||||||
CmdSpaceZooType::*, CmdStarFightType::*, CmdStoryLineType::*,
|
|
||||||
CmdStrongChallengeActivityType::*, CmdTalkEventType::*, CmdTelevisionActivityType::*,
|
|
||||||
CmdTextJoinType::*, CmdTrainVisitorType::*, CmdTreasureDungeonType::*, CmdTutorialType::*,
|
|
||||||
CmdWaypointType::*, CmdWolfBroType::*,
|
|
||||||
};
|
|
||||||
|
|
||||||
use super::PlayerSession;
|
use super::PlayerSession;
|
||||||
use super::handlers::*;
|
use super::handlers::*;
|
||||||
@@ -138,27 +115,27 @@ macro_rules! trait_handler {
|
|||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
|
|
||||||
async fn on_message(session: &mut PlayerSession, cmd_type: u16, payload: Vec<u8>) -> Result<()> {
|
async fn on_message(session: &mut PlayerSession, cmd_id: u16, payload: Vec<u8>) -> Result<()> {
|
||||||
use ::prost::Message;
|
use ::prost::Message;
|
||||||
if PlayerSession::should_send_dummy_rsp(cmd_type) {
|
if PlayerSession::should_send_dummy_rsp(cmd_id) {
|
||||||
session.send_dummy_response(cmd_type).await?;
|
session.send_dummy_response(cmd_id).await?;
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
match cmd_type {
|
match cmd_id {
|
||||||
$(
|
$(
|
||||||
cmd_type if cmd_type == paste! { [<Cmd$name CsReq>] as u16 } => {
|
cmd_id if cmd_id == paste! { <proto::[<$name CsReq>] as proto::CmdID>::CMD_ID } => {
|
||||||
let body = paste! { proto::[<$name CsReq>]::decode(&mut &payload[..])? };
|
let body = paste! { proto::[<$name CsReq>]::decode(&mut &payload[..])? };
|
||||||
paste! {
|
paste! {
|
||||||
Self::[<on_$name:snake _cs_req>](session, &body)
|
Self::[<on_$name:snake _cs_req>](session, &body)
|
||||||
.instrument(tracing::info_span!(stringify!([<on_$name:snake>]), cmd_type = cmd_type))
|
.instrument(tracing::info_span!(stringify!([<on_$name:snake>]), cmd_id = cmd_id))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
_ => {
|
_ => {
|
||||||
tracing::warn!("Unknown command type: {cmd_type}");
|
tracing::warn!("Unknown command ID: {cmd_id}");
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -190,7 +167,7 @@ trait_handler! {
|
|||||||
TakeOffEquipment;
|
TakeOffEquipment;
|
||||||
DressRelicAvatar;
|
DressRelicAvatar;
|
||||||
TakeOffRelic;
|
TakeOffRelic;
|
||||||
ActiveEidolon;
|
RankUpAvatar;
|
||||||
|
|
||||||
// Chat (dummy!)
|
// Chat (dummy!)
|
||||||
SendMsg;
|
SendMsg;
|
||||||
|
|||||||
+9
-9
@@ -1,23 +1,23 @@
|
|||||||
{
|
{
|
||||||
"lineups": {
|
"lineups": {
|
||||||
"0": 1507,
|
"0": 1513,
|
||||||
"1": 1308,
|
"1": 1308,
|
||||||
"2": 1403,
|
"2": 1403,
|
||||||
"3": 1409
|
"3": 1409
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": -26968,
|
"x": 674182,
|
||||||
"y": 78953,
|
"y": 75562,
|
||||||
"z": 14457,
|
"z": -16482,
|
||||||
"rot_y": 11858
|
"rot_y": 204639
|
||||||
},
|
},
|
||||||
"scene": {
|
"scene": {
|
||||||
"plane_id": 20411,
|
"plane_id": 20511,
|
||||||
"floor_id": 20411001,
|
"floor_id": 20511001,
|
||||||
"entry_id": 2041101
|
"entry_id": 2051101
|
||||||
},
|
},
|
||||||
"main_character": "FemaleElation",
|
"main_character": "FemaleElation",
|
||||||
"march_type": "MarchHunt",
|
"march_type": "MarchHunt",
|
||||||
"enable_sw_global": true,
|
"enable_sw_global": true,
|
||||||
"enable_castorice_global": true
|
"enable_castorice_global": true
|
||||||
}
|
}
|
||||||
+4067
-38003
File diff suppressed because it is too large
Load Diff
+9373
-96601
File diff suppressed because it is too large
Load Diff
+29
-47
@@ -1,59 +1,35 @@
|
|||||||
{
|
{
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"CNBETAWin4.2.51": {
|
|
||||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14851990_9aa8ee8de0fa_ec7d1e42f851f1",
|
|
||||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14890490_fcc969a5461f_1f9258ee9068a5",
|
|
||||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14852119_8789f55c1c30_0c0cf5d3c9089b",
|
|
||||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14887825_65010135064b_71536d98b8abbf"
|
|
||||||
},
|
|
||||||
"OSPRODWin3.6.0": {
|
|
||||||
"asset_bundle_url": "",
|
|
||||||
"ex_resource_url": "",
|
|
||||||
"lua_url": "",
|
|
||||||
"ifix_url": ""
|
|
||||||
},
|
|
||||||
"OSBETAWin3.8.51X": {
|
|
||||||
"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",
|
|
||||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_13493894_ec7d6d879305_8b2cfd39d6e545",
|
|
||||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_13491130_ecfa51828143_4bd221b76c0d9a"
|
|
||||||
},
|
|
||||||
"CNBETAWin3.5.55": {
|
"CNBETAWin3.5.55": {
|
||||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_11797411_74704086c081_d40a71b41ba492",
|
"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",
|
"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",
|
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_11798340_8c6543a1d6c5_2d60cd9b1584b8",
|
||||||
"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.7.51X": {
|
|
||||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12579793_48327ff319b5_1b794dd1071e3a",
|
|
||||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12611332_5f583f2f54ae_c04979f13c950d",
|
|
||||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027",
|
|
||||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885"
|
|
||||||
},
|
|
||||||
"OSBETAWin3.8.51": {
|
|
||||||
"asset_bundle_url": "",
|
|
||||||
"ex_resource_url": "",
|
|
||||||
"lua_url": "",
|
|
||||||
"ifix_url": ""
|
|
||||||
},
|
|
||||||
"CNBETAWin3.6.51": {
|
"CNBETAWin3.6.51": {
|
||||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||||
"ex_resource_url": "https://autopatchcn-bhsr.neonteam.dev/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
"ex_resource_url": "https://autopatchcn-bhsr.neonteam.dev/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||||
"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"
|
||||||
},
|
},
|
||||||
"OSBETAWin4.0.51": {
|
"CNBETAWin3.6.52": {
|
||||||
"asset_bundle_url": "",
|
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12150127_00d6d096d968_cd76a04beb7ba6",
|
||||||
"ex_resource_url": "",
|
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12178965_e246796e0bb6_05bcce36cd648b",
|
||||||
"lua_url": "",
|
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12150614_5279f6d8029a_bdecff99d2d817",
|
||||||
"ifix_url": ""
|
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12164593_8e3fba5163df_b2b6fc46de4c06"
|
||||||
},
|
},
|
||||||
"OSBETAWin4.0.51X": {
|
"CNBETAWin3.7.51": {
|
||||||
|
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12579793_48327ff319b5_1b794dd1071e3a",
|
||||||
|
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12611332_5f583f2f54ae_c04979f13c950d",
|
||||||
|
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12579929_9566349ee5fb_c6341faaf9b027",
|
||||||
|
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253_c61ba99f70b885"
|
||||||
|
},
|
||||||
|
"OSBETAWin3.8.51": {
|
||||||
|
"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",
|
||||||
|
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_13493894_ec7d6d879305_8b2cfd39d6e545",
|
||||||
|
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_13491130_ecfa51828143_4bd221b76c0d9a"
|
||||||
|
},
|
||||||
|
"OSBETAWin4.0.51": {
|
||||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14026982_55a517a26691_89300298bf2b2e",
|
"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",
|
"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",
|
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14028456_7088b08fd431_59194837d90977",
|
||||||
@@ -65,10 +41,16 @@
|
|||||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||||
},
|
},
|
||||||
"CNBETAWin3.7.51": {
|
"CNBETAWin4.2.51": {
|
||||||
"asset_bundle_url": "",
|
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14851990_9aa8ee8de0fa_ec7d1e42f851f1",
|
||||||
"ex_resource_url": "",
|
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14890490_fcc969a5461f_1f9258ee9068a5",
|
||||||
"lua_url": "",
|
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14852119_8789f55c1c30_0c0cf5d3c9089b",
|
||||||
"ifix_url": ""
|
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14887825_65010135064b_71536d98b8abbf"
|
||||||
|
},
|
||||||
|
"OSBETAWin4.4.51": {
|
||||||
|
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15711835_1986f76c287e_9c3d058458edf0",
|
||||||
|
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15753142_3bb8238470fc_a7cec92c089da7",
|
||||||
|
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15712109_65eeab393c89_0c116c2699518d",
|
||||||
|
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user