feat: Add support for version 3.0.5x UNTESTED

This commit is contained in:
aorus22 2025-01-14 10:21:22 +07:00 committed by aorus22
parent 5514615c91
commit 948e1f886b
15 changed files with 104568 additions and 32860 deletions

View File

@ -60,6 +60,6 @@ mhy-kcp = { path = "kcp/", features = ["tokio"] }
[profile.release]
strip = true # Automatically strip symbols from the binary.
lto = true # Link-time optimization.
opt-level = 3 # Optimize for speed.
codegen-units = 1 # Maximum size reduction optimizations.
opt-level = "z" # Optimize for size.
lto = true
codegen-units = 1

File diff suppressed because it is too large Load Diff

View File

@ -2,11 +2,11 @@ use crate::net::tools::FreesrData;
use super::*;
static UNLOCKED_AVATARS: [u32; 61] = [
static UNLOCKED_AVATARS: [u32; 63] = [
8001, 1001, 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,
1315, 1310, 1314, 1218, 1221, 1220, 1222, 1223, 1317, 1313, 1225, 1402, 1401, 1404, 1403
];
pub async fn on_get_avatar_data_cs_req(

View File

@ -267,7 +267,7 @@ async fn create_battle_info(caster_id: u32, skill_index: u32) -> SceneBattleInfo
max_sp: 10_000,
}),
}),
// skill_info: vec![],
skill_info: Vec::with_capacity(0)
})
}
@ -280,8 +280,8 @@ async fn create_battle_info(caster_id: u32, skill_index: u32) -> SceneBattleInfo
player_detail_info: Some(RogueMagicBattleUnitInfo {
item: Some(Item::BattleRogueMagicData(BattleRogueMagicData {
round_cnt: Some(BattleRogueMagicRoundCount {
jnejloobmad: 3,
jfaidmkbmof: 0,
gpojenhaiba: 3,
kljklbmlefo: 0,
}),
battle_scepter_list: player
.battle_config
@ -321,7 +321,7 @@ async fn create_battle_info(caster_id: u32, skill_index: u32) -> SceneBattleInfo
.collect(),
})),
}),
scepter: Some(Hnpkkiadpid { mokbhfdehnf: 5 }),
scepter: Some(Plgjihifpag { egmebanhhnf: 5 }),
});
}

View File

@ -9,14 +9,14 @@ use crate::{
use super::*;
const SERVER_UID: u32 = 727;
const SERVER_HEAD_ICON: u32 = 201008;
const SERVER_HEAD_ICON: u32 = 201402;
const SERVER_CHAT_BUBBLE_ID: u32 = 220005;
const SERVER_CHAT_HISTORY: [&str; 5] = [
"'dvd' render a dvd bouncing effect. you need to put the image into your game folder, with name \"image.png\"",
"'sync'",
"'sync' to synchronize stats between json and in-game view",
"'mc {mc_id}' mc_id can be set from 8001 to 8008",
"'march {march_id}' march_id can be set 1001 or 1224",
"available command:",
"available commands:",
"visit srtools.pages.dev to configure the PS! (you configure relics, equipment, monsters from there)"
];
pub async fn on_get_friend_login_info_cs_req(
@ -90,6 +90,7 @@ pub async fn on_send_msg_cs_req(
from_uid: SERVER_UID,
to_uid: 25,
chat_type: body.chat_type,
hnbepabnbng: body.hnbepabnbng.clone(),
})
.await
.unwrap();
@ -121,18 +122,25 @@ pub async fn on_send_msg_cs_req(
from_uid: SERVER_UID,
to_uid: 25,
chat_type: body.chat_type,
hnbepabnbng: body.hnbepabnbng.clone(),
})
.await
.unwrap();
}
"march" => {
let march_type = MultiPathAvatar::from(
let mut march_type = MultiPathAvatar::from(
args.first()
.unwrap_or(&"")
.parse::<u32>()
.unwrap_or(json.march_type as u32),
);
if march_type != MultiPathAvatar::MarchPreservation
&& march_type != MultiPathAvatar::MarchHunt
{
march_type = MultiPathAvatar::MarchHunt
}
json.march_type = march_type;
json.save().await;
@ -152,6 +160,7 @@ pub async fn on_send_msg_cs_req(
from_uid: SERVER_UID,
to_uid: 25,
chat_type: body.chat_type,
hnbepabnbng: body.hnbepabnbng.clone(),
})
.await
.unwrap();

View File

@ -113,7 +113,10 @@ async fn refresh_lineup(session: &mut PlayerSession, player: &FreesrData) {
})),
})
.collect(),
bccgjihncdn: Vec::with_capacity(0),
}],
floor_id: 0, // TODO!
gfhglffhfbd: 0,
})
.await
.unwrap();

View File

@ -110,7 +110,6 @@ dummy! {
GetPlayerBoardData,
GetActivityScheduleConfig,
GetMissionData,
GetMissionEventData,
GetChallenge,
GetCurChallenge,
GetRogueInfo,

View File

@ -1,9 +1,6 @@
use std::collections::HashMap;
use crate::{
net::tools::{FreesrData, MultiPathAvatar},
util::cur_timestamp_ms,
};
use crate::net::tools::{FreesrData, MultiPathAvatar};
use super::*;
@ -27,8 +24,8 @@ pub async fn on_player_heart_beat_cs_req(
res.download_data = Some(ClientDownloadData {
version: 51,
time: res.server_time_ms as i64,
data: rbase64::decode("bG9jYWwgZnVuY3Rpb24gYmV0YV90ZXh0KG9iaikKICAgIGxvY2FsIGdhbWVPYmplY3QgPSBDUy5Vbml0eUVuZ2luZS5HYW1lT2JqZWN0LkZpbmQoIlVJUm9vdC9BYm92ZURpYWxvZy9CZXRhSGludERpYWxvZyhDbG9uZSkiKQoKICAgIGlmIGdhbWVPYmplY3QgdGhlbgogICAgICAgIGxvY2FsIHRleHRDb21wb25lbnQgPSBnYW1lT2JqZWN0OkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpCgogICAgICAgIGlmIHRleHRDb21wb25lbnQgdGhlbgogICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnRleHQgPSAiUm9iaW5TUiBpcyBhIGZyZWUgYW5kIG9wZW4gc291cmNlIHNvZnR3YXJlLiBkaXNjb3JkLmdnL3JldmVyc2Vkcm9vbXMiCiAgICAgICAgZW5kCiAgICBlbHNlCiAgICBlbmQKZW5kCgpiZXRhX3RleHQoKQ==").unwrap(),
ghkpbpdfijh: 0
data: rbase64::decode("bG9jYWwgZnVuY3Rpb24gYmV0YV90ZXh0KG9iaikKICAgIGxvY2FsIGdhbWVPYmplY3QgPSBDUy5Vbml0eUVuZ2luZS5HYW1lT2JqZWN0LkZpbmQoIlVJUm9vdC9BYm92ZURpYWxvZy9CZXRhSGludERpYWxvZyhDbG9uZSkiKQogICAgaWYgZ2FtZU9iamVjdCB0aGVuCiAgICAgICAgbG9jYWwgdGV4dENvbXBvbmVudCA9IGdhbWVPYmplY3Q6R2V0Q29tcG9uZW50SW5DaGlsZHJlbih0eXBlb2YoQ1MuUlBHLkNsaWVudC5Mb2NhbGl6ZWRUZXh0KSkKICAgICAgICBpZiB0ZXh0Q29tcG9uZW50IHRoZW4KICAgICAgICAgICAgdGV4dENvbXBvbmVudC50ZXh0ID0gIiIKICAgICAgICBlbmQKICAgIGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHZlcnNpb25fdGV4dChvYmopCiAgICBsb2NhbCBnYW1lT2JqZWN0ID0gQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpCiAgICBpZiBnYW1lT2JqZWN0IHRoZW4KICAgICAgICBsb2NhbCB0ZXh0Q29tcG9uZW50ID0gZ2FtZU9iamVjdDpHZXRDb21wb25lbnRJbkNoaWxkcmVuKHR5cGVvZihDUy5SUEcuQ2xpZW50LkxvY2FsaXplZFRleHQpKQogICAgICAgIGlmIHRleHRDb21wb25lbnQgdGhlbgogICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnRleHQgPSAiPGNvbG9yPSMwMGUxZmY+Um9iaW5TUiE8L2NvbG9yPiIKICAgICAgICBlbmQKICAgIGVuZAplbmQKCnZlcnNpb25fdGV4dCgpCmJldGFfdGV4dCgpCg==").unwrap(),
haehhcpoapp: 0
});
}
@ -98,6 +95,7 @@ pub async fn on_get_multi_path_avatar_info_cs_req(
.find(|v| v.equip_avatar == *mp_type as u32)
.map(|v| v.internal_uid)
.unwrap_or_default(),
dressed_skin_id: 0,
})
})
.collect();

View File

@ -368,7 +368,7 @@ async fn load_scene(
scene_info.entity_group_list.push(SceneEntityGroupInfo {
state: 0,
group_id: 0,
gbnnlkibhon: HashMap::new(),
hejamoojbcj: HashMap::with_capacity(0),
entity_list: json
.lineups
.iter()

View File

@ -219,4 +219,5 @@ trait_handler! {
DoGacha;
PlayerLoginFinish;
RelicRecommend;
// SetClientPaused;
}

File diff suppressed because it is too large Load Diff

11360
res.json

File diff suppressed because it is too large Load Diff

View File

@ -39,24 +39,26 @@ pub async fn query_gateway(parameters: Query<QueryGatewayParameters>) -> String
retcode: 0,
ip: String::from("127.0.0.1"),
port: 23301,
asset_bundle_url: config.asset_bundle_url.clone(),
ex_resource_url: config.ex_resource_url.clone(),
lua_url: config.lua_url.clone(),
ifix_version: String::from("0"),
unk1: true,
unk2: true,
unk3: true,
unk4: true,
unk5: true,
unk6: true,
unk7: true,
video_bundle_version_update_url: config.asset_bundle_url.clone(),
design_data_bundle_version_update_url: config.ex_resource_url.clone(),
lua_bundle_version_update_url: config.lua_url.clone(),
i_fix_patch_revision: String::from("0"),
enable_video_bundle_version_update: true,
enable_design_data_bundle_version_update: true,
enable_upload_battle_log: true,
network_diagnostic: true,
close_redeem_code: true,
android_middle_package_enable: true,
ejcmkocjnkg: true,
event_tracking_open: true,
nehifogigfc: true,
cdn_ipv_6_enable: 1,
..Default::default()
}
} else {
Gateserver {
retcode: 9,
msg: format!("forbidden version: {} or invalid bind", parameters.version),
login_white_msg: format!("forbidden version: {} or invalid bind", parameters.version),
..Default::default()
}
};

View File

@ -1,14 +1,14 @@
{
"CNBETAWin2.5.51": {
"asset_bundle_url": "",
"ex_resource_url": "",
"lua_url": "",
"ifix_url": ""
},
"CNBETAWin2.5.52": {
"asset_bundle_url": "",
"ex_resource_url": "",
"lua_url": "",
"ifix_url": ""
}
{
"CNBETAWin3.0.51": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_9191572_33717c67eee7",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_9194543_a2c963cc027a",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_9188077_6eddb96c0602",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253"
},
"OSBETAWin3.0.51": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_9191572_33717c67eee7",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_9194543_a2c963cc027a",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_9188077_6eddb96c0602",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253"
}
}

View File

@ -1,8 +1,14 @@
{
"OSBETAWin2.6.51": {
"asset_bundle_url": "",
"ex_resource_url": "",
"lua_url": "",
"ifix_url": ""
}
{
"CNBETAWin3.0.51": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_9191572_33717c67eee7",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_9194543_a2c963cc027a",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_9188077_6eddb96c0602",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253"
},
"OSBETAWin3.0.51": {
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_9191572_33717c67eee7",
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_9194543_a2c963cc027a",
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_9188077_6eddb96c0602",
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_0_40d2ce0253"
}
}