mirror of
https://git.neonteam.dev/amizing/robinsr.git
synced 2025-03-12 03:28:30 -04:00
2.2.51
This commit is contained in:
parent
1e0cfa6f12
commit
5ae73b4d8c
28
README.md
28
README.md
@ -1,17 +1,19 @@
|
||||
# Supported Version: 2.1.51, 2.1.52, 2.1.53, 2.1.54, 2.1.55
|
||||
# Supported Version: 2.2.51
|
||||
Run the game by clicking run.bat file.
|
||||
|
||||
Tool website: [https://freesr-tools.pages.dev](https://freesr-tools.pages.dev)
|
||||
|
||||
Start battle by entering any calyx in the map, DON'T ATTACK THE ENEMIES, IT WON'T WORK (maybe)
|
||||
|
||||
Some scenes might not loaded properly. If you stuck at loading screen, remove persistent file.
|
||||
Some scenes might not loaded properly. If you stuck at loading screen, remove `persistent` file.
|
||||
|
||||
# RobinSR
|
||||
Original: [https://git.xeondev.com/reversedrooms/RobinSR/](https://git.xeondev.com/reversedrooms/RobinSR/)
|
||||
Original:
|
||||
[https://git.xeondev.com/reversedrooms/RobinSR](https://git.xeondev.com/reversedrooms/RobinSR)
|
||||
[https://git.xeondev.com/reversedrooms/JadeSR](https://git.xeondev.com/reversedrooms/JadeSR)
|
||||
|
||||
A Server emulator for the game [`Honkai: Star Rail`](https://hsr.hoyoverse.com/en-us/)
|
||||

|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
@ -65,19 +67,5 @@ run the following in a terminal:
|
||||
```
|
||||
|
||||
## Connecting
|
||||
[Get 2.2 beta client](https://bhrpg-prod.oss-accelerate.aliyuncs.com/client/beta/20240322124944_scfGE0xJXlWtoJ1r/StarRail_2.1.51.zip),
|
||||
replace [mhypbase.dll](https://git.xeondev.com/reversedrooms/RobinSR/raw/branch/master/mhypbase.dll) file in your game folder, it will redirect game traffic (and also disable in-game censorship)
|
||||
|
||||
## Contributing
|
||||
|
||||
Pull requests are welcome. For major changes, please open an issue first to discuss
|
||||
what you would like to change, and why.
|
||||
|
||||
## Bug Reports
|
||||
|
||||
If you find a bug, please open an issue with as much detail as possible. If you
|
||||
can, please include steps to reproduce the bug.
|
||||
|
||||
Bad issues such as "This doesn't work" will be closed immediately, be _sure_ to
|
||||
provide exact detailed steps to reproduce your bug. If it's hard to reproduce, try
|
||||
to explain it and write a reproducer as best as you can.
|
||||
[Get 2.2 beta client](https://bhrpg-prod.oss-accelerate.aliyuncs.com/client/beta/20240322124944_scfGE0xJXlWtoJ1r/StarRail_2.1.51.zip)
|
||||
Replace [mhypbase.dll](https://git.xeondev.com/reversedrooms/RobinSR/raw/branch/master/mhypbase.dll) file in your game folder, it will redirect game traffic (and also disable in-game censorship)
|
||||
9628
freesr-data.json
9628
freesr-data.json
File diff suppressed because it is too large
Load Diff
@ -2,11 +2,11 @@ use crate::net::tools::JsonData;
|
||||
|
||||
use super::*;
|
||||
|
||||
static UNLOCKED_AVATARS: [u32; 54] = [
|
||||
static UNLOCKED_AVATARS: [u32; 56] = [
|
||||
8001, 8002, 8003, 8004, 8005, 8006, 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,
|
||||
1306, 1307, 1308, 1309, 1312, 1315, 1310, 1314,
|
||||
];
|
||||
|
||||
pub async fn on_get_avatar_data_cs_req(
|
||||
|
||||
@ -13,8 +13,9 @@ pub async fn on_start_cocoon_stage_cs_req(
|
||||
let mut battle_info = SceneBattleInfo {
|
||||
stage_id: player.battle_config.stage_id,
|
||||
logic_random_seed: rand::thread_rng().gen::<u32>(),
|
||||
// battle_id: 1,
|
||||
kimmjioaodn: player.battle_config.cycle_count,
|
||||
battle_id: 1,
|
||||
// cleheggdkal: player.battle_config.cycle_count, // wave
|
||||
ohfkoaahoib: player.battle_config.cycle_count, // wave
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -91,21 +92,21 @@ pub async fn on_start_cocoon_stage_cs_req(
|
||||
|
||||
// pf score object
|
||||
if player.battle_config.battle_type == BattleType::PF {
|
||||
let mut battle_target = Hbinjjdphdo::default();
|
||||
battle_target.bgnpebhgelb.push(BattleTarget {
|
||||
let mut battle_target = Cnngaoldopi::default();
|
||||
battle_target.fdfcmhbhnmc.push(BattleTarget {
|
||||
id: 10001,
|
||||
progress: 0,
|
||||
..Default::default()
|
||||
});
|
||||
|
||||
battle_info.ichnbmifjdi.insert(1, battle_target);
|
||||
battle_info.jelkfckaonl.insert(1, battle_target);
|
||||
for i in 2..=4 {
|
||||
battle_info.ichnbmifjdi.insert(i, Hbinjjdphdo::default());
|
||||
battle_info.jelkfckaonl.insert(i, Cnngaoldopi::default());
|
||||
}
|
||||
battle_info.ichnbmifjdi.insert(
|
||||
battle_info.jelkfckaonl.insert(
|
||||
5,
|
||||
Hbinjjdphdo {
|
||||
bgnpebhgelb: vec![
|
||||
Cnngaoldopi {
|
||||
fdfcmhbhnmc: vec![
|
||||
BattleTarget {
|
||||
id: 2001,
|
||||
progress: 0,
|
||||
@ -121,11 +122,21 @@ pub async fn on_start_cocoon_stage_cs_req(
|
||||
);
|
||||
}
|
||||
|
||||
// Apocalyptic Shadow
|
||||
if player.battle_config.battle_type == BattleType::AS {
|
||||
let mut battle_target = Cnngaoldopi::default();
|
||||
battle_target.fdfcmhbhnmc.push(BattleTarget {
|
||||
id: 10002,
|
||||
progress: 0,
|
||||
..Default::default()
|
||||
});
|
||||
}
|
||||
|
||||
// SU
|
||||
if player.battle_config.battle_type == BattleType::SU {
|
||||
battle_info.mpobegkcikn.push(Npjnkmmjfdf {
|
||||
chgdaadjepi: player.battle_config.path_resonance_id,
|
||||
status: Some(Agpocmnmmdi {
|
||||
battle_info.ldkhpbclcbd.push(Mnnlfkgifmc {
|
||||
ejilnblflii: player.battle_config.path_resonance_id,
|
||||
status: Some(Fmaobdmmcjb {
|
||||
sp: Some(AmountInfo {
|
||||
cur_amount: 10_000,
|
||||
max_amount: 10_000,
|
||||
@ -167,14 +178,18 @@ pub async fn on_pve_battle_result_cs_req(
|
||||
}
|
||||
|
||||
// scene cast skill cs req
|
||||
pub async fn on_mpemgbdkigg(session: &mut PlayerSession, request: &Mpemgbdkigg) -> Result<()> {
|
||||
pub async fn on_scene_cast_skill_cs_req(
|
||||
session: &mut PlayerSession,
|
||||
request: &SceneCastSkillCsReq,
|
||||
) -> Result<()> {
|
||||
let player = tools::JsonData::load().await;
|
||||
|
||||
let mut battle_info = SceneBattleInfo {
|
||||
stage_id: player.battle_config.stage_id,
|
||||
logic_random_seed: rand::thread_rng().gen::<u32>(),
|
||||
// battle_id: 1,
|
||||
kimmjioaodn: player.battle_config.cycle_count,
|
||||
battle_id: 1,
|
||||
// cleheggdkal: player.battle_config.cycle_count, // wave
|
||||
ohfkoaahoib: player.battle_config.cycle_count, // wave
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -251,21 +266,21 @@ pub async fn on_mpemgbdkigg(session: &mut PlayerSession, request: &Mpemgbdkigg)
|
||||
|
||||
// pf score object
|
||||
if player.battle_config.battle_type == BattleType::PF {
|
||||
let mut battle_target = Hbinjjdphdo::default();
|
||||
battle_target.bgnpebhgelb.push(BattleTarget {
|
||||
let mut battle_target = Cnngaoldopi::default();
|
||||
battle_target.fdfcmhbhnmc.push(BattleTarget {
|
||||
id: 10001,
|
||||
progress: 0,
|
||||
..Default::default()
|
||||
});
|
||||
|
||||
battle_info.ichnbmifjdi.insert(1, battle_target);
|
||||
battle_info.jelkfckaonl.insert(1, battle_target);
|
||||
for i in 2..=4 {
|
||||
battle_info.ichnbmifjdi.insert(i, Hbinjjdphdo::default());
|
||||
battle_info.jelkfckaonl.insert(i, Cnngaoldopi::default());
|
||||
}
|
||||
battle_info.ichnbmifjdi.insert(
|
||||
battle_info.jelkfckaonl.insert(
|
||||
5,
|
||||
Hbinjjdphdo {
|
||||
bgnpebhgelb: vec![
|
||||
Cnngaoldopi {
|
||||
fdfcmhbhnmc: vec![
|
||||
BattleTarget {
|
||||
id: 2001,
|
||||
progress: 0,
|
||||
@ -281,11 +296,21 @@ pub async fn on_mpemgbdkigg(session: &mut PlayerSession, request: &Mpemgbdkigg)
|
||||
);
|
||||
}
|
||||
|
||||
// Apocalyptic Shadow
|
||||
if player.battle_config.battle_type == BattleType::AS {
|
||||
let mut battle_target = Cnngaoldopi::default();
|
||||
battle_target.fdfcmhbhnmc.push(BattleTarget {
|
||||
id: 10002,
|
||||
progress: 0,
|
||||
..Default::default()
|
||||
});
|
||||
}
|
||||
|
||||
// SU
|
||||
if player.battle_config.battle_type == BattleType::SU {
|
||||
battle_info.mpobegkcikn.push(Npjnkmmjfdf {
|
||||
chgdaadjepi: player.battle_config.path_resonance_id,
|
||||
status: Some(Agpocmnmmdi {
|
||||
battle_info.ldkhpbclcbd.push(Mnnlfkgifmc {
|
||||
ejilnblflii: player.battle_config.path_resonance_id,
|
||||
status: Some(Fmaobdmmcjb {
|
||||
sp: Some(AmountInfo {
|
||||
cur_amount: 10_000,
|
||||
max_amount: 10_000,
|
||||
@ -298,15 +323,15 @@ pub async fn on_mpemgbdkigg(session: &mut PlayerSession, request: &Mpemgbdkigg)
|
||||
// monsters
|
||||
battle_info.monster_wave_list = Monster::to_scene_monster_waves(&player.battle_config.monsters);
|
||||
|
||||
let mut resp = Ifiohnjlehh {
|
||||
elgjckaejld: request.elgjckaejld,
|
||||
let mut resp = SceneCastSkillScRsp {
|
||||
jkdaceoekll: request.jkdaceoekll,
|
||||
retcode: 0,
|
||||
pbgpinglheg: vec![],
|
||||
diehcelekfj: vec![],
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let targets = request
|
||||
.jpieajikioh
|
||||
.igkjjpeealc
|
||||
.iter()
|
||||
.filter(|id| **id > 30_000 || **id < 1_000)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
@ -8,31 +8,31 @@ use crate::{
|
||||
|
||||
use super::*;
|
||||
|
||||
pub async fn on_nhfajfplkep(session: &mut PlayerSession, _: &Nhfajfplkep) -> Result<()> {
|
||||
pub async fn on_jhfffmnkcbf(session: &mut PlayerSession, _: &Jhfffmnkcbf) -> Result<()> {
|
||||
session
|
||||
.send(
|
||||
CMD_GET_FRIEND_LIST_INFO_SC_RSP,
|
||||
Pbfkjlnnnim {
|
||||
amgpdgdnlgd: vec![Leldmbjfheh {
|
||||
gpgdedmpjla: PlayingState::None.into(),
|
||||
cfmiklhjmle: Some(Alcoeanikil::default()),
|
||||
hiljemhhhnk: String::from("RobinSR"),
|
||||
kmclngophda: Some(Hcdpijbnijp {
|
||||
Fmonbbgkfpp {
|
||||
nffnphfnbph: vec![Pbbkojapeaj {
|
||||
jkmlmffobmi: PlayingState::None.into(),
|
||||
eejlmfccjnm: Some(Bhkoekppbaf::default()),
|
||||
ddnklblgmaa: String::from("RobinSR"),
|
||||
mkabddponma: Some(Mionicmdpaa {
|
||||
uid: 727,
|
||||
mbdjcknimop: 3,
|
||||
igmaomgegaj: 1,
|
||||
gjlfhjlijon: 201008,
|
||||
jpajpffgnbi: 220005,
|
||||
platform: 3,
|
||||
mjbmlkimpnn: 1,
|
||||
dgojjmfnomj: 201008,
|
||||
kpiphlhfiib: 220005,
|
||||
level: 70,
|
||||
nickname: String::from("Server"),
|
||||
plmbeaaegak: vec![AssistSimpleInfo {
|
||||
oemkmkkhkde: vec![AssistSimpleInfo {
|
||||
avatar_id: 1008,
|
||||
level: 70,
|
||||
..Default::default()
|
||||
}],
|
||||
..Default::default()
|
||||
}),
|
||||
gjdiplfecfa: true,
|
||||
niekopdjolm: true,
|
||||
}],
|
||||
..Default::default()
|
||||
},
|
||||
@ -40,20 +40,36 @@ pub async fn on_nhfajfplkep(session: &mut PlayerSession, _: &Nhfajfplkep) -> Res
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn on_komknbijgpi(session: &mut PlayerSession, _: &Komknbijgpi) -> Result<()> {
|
||||
pub async fn on_pignjacjgdl(session: &mut PlayerSession, _: &Pignjacjgdl) -> Result<()> {
|
||||
session
|
||||
.send(
|
||||
CMD_GET_PRIVATE_CHAT_HISTORY_SC_RSP,
|
||||
Ooibcglpnac {
|
||||
pgofeopnpbm: vec![Bpifmdladdn {
|
||||
bdjoneohhpj: MsgType::CustomText.into(),
|
||||
phhhfhobhmk: cur_timestamp_ms(),
|
||||
fbelgjfhbkh: ":motorized_wheelchair:".to_string(),
|
||||
nokipdbhglc: 727,
|
||||
Hachagdjilp {
|
||||
fepangjbmpa: vec![
|
||||
Gnbekokccfc {
|
||||
mgmicgabebd: MsgType::CustomText.into(),
|
||||
hkkkjdbgiao: cur_timestamp_ms(),
|
||||
anjfbjikchf: "'sync'".to_string(),
|
||||
befmkobhohp: 727,
|
||||
..Default::default()
|
||||
}],
|
||||
fjbkleaflam: 727,
|
||||
oligkfnjkma: 1337,
|
||||
},
|
||||
Gnbekokccfc {
|
||||
mgmicgabebd: MsgType::CustomText.into(),
|
||||
hkkkjdbgiao: cur_timestamp_ms(),
|
||||
anjfbjikchf: "'mc {mc_id}' mc_id can be set from 8001 to 8006".to_string(),
|
||||
befmkobhohp: 727,
|
||||
..Default::default()
|
||||
},
|
||||
Gnbekokccfc {
|
||||
mgmicgabebd: MsgType::CustomText.into(),
|
||||
hkkkjdbgiao: cur_timestamp_ms(),
|
||||
anjfbjikchf: "available command:".to_string(),
|
||||
befmkobhohp: 727,
|
||||
..Default::default()
|
||||
},
|
||||
],
|
||||
cibgdjekbja: 727, // from
|
||||
ienomggikon: 1337, // to
|
||||
..Default::default()
|
||||
},
|
||||
)
|
||||
@ -61,22 +77,24 @@ pub async fn on_komknbijgpi(session: &mut PlayerSession, _: &Komknbijgpi) -> Res
|
||||
}
|
||||
|
||||
// RecvMsgCsReq
|
||||
pub async fn on_bgfjcbbfiek(session: &mut PlayerSession, body: &Bgfjcbbfiek) -> Result<()> {
|
||||
pub async fn on_dgaiigecbee(session: &mut PlayerSession, body: &Dgaiigecbee) -> Result<()> {
|
||||
let mut json = JsonData::load().await;
|
||||
if let Some((cmd, args)) = parse_command(&body.moiplammfad) {
|
||||
|
||||
if let Some((cmd, args)) = parse_command(&body.ajlhdpcjand) {
|
||||
match cmd {
|
||||
"sync" => {
|
||||
sync_player(session, json).await?;
|
||||
session
|
||||
.send(
|
||||
CMD_REVC_MSG_SC_NOTIFY,
|
||||
Kifdjbodlcc {
|
||||
pofomobijdg: body.pofomobijdg,
|
||||
kjdhmhgjdmc: body.kjdhmhgjdmc,
|
||||
moiplammfad: String::from("Inventory Synced"),
|
||||
bdjoneohhpj: body.bdjoneohhpj,
|
||||
aljhmlmnmhp: 727,
|
||||
djefnoaonkc: 1337,
|
||||
Klonpheafip {
|
||||
ggadmjhlomj: body.ggadmjhlomj.clone(),
|
||||
kokadficdfb: body.kokadficdfb,
|
||||
ajlhdpcjand: String::from("Inventory Synced"),
|
||||
mgmicgabebd: body.mgmicgabebd,
|
||||
ghojifhngmc: 727, // from
|
||||
cmmildghfnl: 1337, // to
|
||||
nmfepfoojic: body.nmfepfoojic,
|
||||
},
|
||||
)
|
||||
.await?;
|
||||
@ -113,13 +131,14 @@ pub async fn on_bgfjcbbfiek(session: &mut PlayerSession, body: &Bgfjcbbfiek) ->
|
||||
session
|
||||
.send(
|
||||
CMD_REVC_MSG_SC_NOTIFY,
|
||||
Kifdjbodlcc {
|
||||
pofomobijdg: body.pofomobijdg,
|
||||
kjdhmhgjdmc: body.kjdhmhgjdmc,
|
||||
moiplammfad: format!("Set MC to: {mc:#?}"),
|
||||
bdjoneohhpj: body.bdjoneohhpj,
|
||||
aljhmlmnmhp: 727,
|
||||
djefnoaonkc: 1337,
|
||||
Klonpheafip {
|
||||
ggadmjhlomj: body.ggadmjhlomj.clone(),
|
||||
kokadficdfb: body.kokadficdfb,
|
||||
ajlhdpcjand: format!("Set MC to: {mc:#?}"),
|
||||
mgmicgabebd: body.mgmicgabebd,
|
||||
ghojifhngmc: 727,
|
||||
cmmildghfnl: 1337,
|
||||
nmfepfoojic: body.nmfepfoojic,
|
||||
},
|
||||
)
|
||||
.await?;
|
||||
@ -131,7 +150,7 @@ pub async fn on_bgfjcbbfiek(session: &mut PlayerSession, body: &Bgfjcbbfiek) ->
|
||||
session
|
||||
.send(
|
||||
CMD_SEND_MSG_SC_RSP,
|
||||
Jhickbdnnii {
|
||||
Ckcjblcacof {
|
||||
retcode: 0,
|
||||
end_time: 0,
|
||||
},
|
||||
@ -153,9 +172,9 @@ async fn sync_player(session: &mut PlayerSession, json: JsonData) -> Result<()>
|
||||
session
|
||||
.send(
|
||||
CMD_PLAYER_SYNC_SC_NOTIFY,
|
||||
Eckkajafean {
|
||||
lminpcphbfp: (2000..3500).collect(),
|
||||
oglioehgbal: (1..2000).collect(),
|
||||
Pkbehgpoein {
|
||||
ipnkigfoikl: (2000..3500).collect(),
|
||||
idgakomjiio: (1..2000).collect(),
|
||||
..Default::default()
|
||||
},
|
||||
)
|
||||
@ -164,8 +183,8 @@ async fn sync_player(session: &mut PlayerSession, json: JsonData) -> Result<()>
|
||||
session
|
||||
.send(
|
||||
CMD_PLAYER_SYNC_SC_NOTIFY,
|
||||
Eckkajafean {
|
||||
fihplpphfme: Some(Abcekhjbnmp {
|
||||
Pkbehgpoein {
|
||||
enfnppagfpp: Some(Gkjoiapbbne {
|
||||
avatar_list: json
|
||||
.avatars
|
||||
.values()
|
||||
@ -180,7 +199,7 @@ async fn sync_player(session: &mut PlayerSession, json: JsonData) -> Result<()>
|
||||
session
|
||||
.send(
|
||||
CMD_PLAYER_SYNC_SC_NOTIFY,
|
||||
Eckkajafean {
|
||||
Pkbehgpoein {
|
||||
relic_list: json.relics.iter().map(|v| v.to_relic_proto()).collect(),
|
||||
equipment_list: json
|
||||
.lightcones
|
||||
@ -195,8 +214,8 @@ async fn sync_player(session: &mut PlayerSession, json: JsonData) -> Result<()>
|
||||
session
|
||||
.send(
|
||||
CMD_PLAYER_SYNC_SC_NOTIFY,
|
||||
Eckkajafean {
|
||||
fihplpphfme: Some(Abcekhjbnmp {
|
||||
Pkbehgpoein {
|
||||
enfnppagfpp: Some(Gkjoiapbbne {
|
||||
avatar_list: json
|
||||
.avatars
|
||||
.values()
|
||||
|
||||
@ -32,35 +32,41 @@ pub async fn on_get_archive_data_cs_req(
|
||||
.send(
|
||||
CMD_GET_ARCHIVE_DATA_SC_RSP,
|
||||
GetArchiveDataScRsp {
|
||||
archive_data: Some(ArchiveData::default()),
|
||||
bkcflgbcjmi: Some(ArchiveData::default()),
|
||||
retcode: 0,
|
||||
},
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn on_oakankcfbec(session: &mut PlayerSession, _: &Oakankcfbec) -> Result<()> {
|
||||
pub async fn on_gfmigicacfn(session: &mut PlayerSession, _: &Gfmigicacfn) -> Result<()> {
|
||||
// ?
|
||||
session
|
||||
.send(CMD_DRESS_RELIC_AVATAR_SC_RSP, Dummy::default())
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn on_cnpajjnhfpa(session: &mut PlayerSession, _: &Cnpajjnhfpa) -> Result<()> {
|
||||
pub async fn on_nbmofdgfejk(session: &mut PlayerSession, _: &Nbmofdgfejk) -> Result<()> {
|
||||
// ?
|
||||
session
|
||||
.send(CMD_TAKE_OFF_RELIC_SC_RSP, Dummy::default())
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn on_copkgioejac(session: &mut PlayerSession, _: &Copkgioejac) -> Result<()> {
|
||||
pub async fn on_dress_avatar_cs_req(
|
||||
session: &mut PlayerSession,
|
||||
_: &DressAvatarCsReq,
|
||||
) -> Result<()> {
|
||||
// ?
|
||||
session
|
||||
.send(CMD_DRESS_AVATAR_SC_RSP, Dummy::default())
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn on_aafgmacgenl(session: &mut PlayerSession, _: &Aafgmacgenl) -> Result<()> {
|
||||
pub async fn on_take_off_equipment_cs_req(
|
||||
session: &mut PlayerSession,
|
||||
_: &TakeOffEquipmentCsReq,
|
||||
) -> Result<()> {
|
||||
// ?
|
||||
session
|
||||
.send(CMD_TAKE_OFF_EQUIPMENT_SC_RSP, Dummy::default())
|
||||
|
||||
@ -10,8 +10,8 @@ pub async fn on_get_all_lineup_data_cs_req(
|
||||
let lineup = LineupInfo {
|
||||
extra_lineup_type: ExtraLineupType::LineupNone.into(),
|
||||
name: "Squad 1".to_string(),
|
||||
njjbfegnhjc: 5,
|
||||
bpkggopoppf: 5,
|
||||
mp: 5,
|
||||
mp_max: 5,
|
||||
avatar_list: AvatarJson::to_lineup_avatars(&player),
|
||||
..Default::default()
|
||||
};
|
||||
@ -35,8 +35,8 @@ pub async fn on_get_cur_lineup_data_cs_req(
|
||||
let mut lineup = LineupInfo {
|
||||
extra_lineup_type: ExtraLineupType::LineupNone.into(),
|
||||
name: "Squad 1".to_string(),
|
||||
njjbfegnhjc: 5,
|
||||
bpkggopoppf: 5,
|
||||
mp: 5,
|
||||
mp_max: 5,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -112,7 +112,7 @@ pub async fn on_replace_lineup_cs_req(
|
||||
|
||||
let lineups = &mut player.lineups;
|
||||
for (slot, avatar_id) in &mut *lineups {
|
||||
if let Some(lineup) = req.jkifflmenfn.get(*slot as usize) {
|
||||
if let Some(lineup) = req.replace_slot_list.get(*slot as usize) {
|
||||
*avatar_id = if lineup.id > 8000 {
|
||||
player.main_character as u32
|
||||
} else {
|
||||
@ -150,25 +150,25 @@ async fn refresh_lineup(sess: &mut PlayerSession, player: &JsonData) -> Result<(
|
||||
extra_lineup_type: ExtraLineupType::LineupNone.into(),
|
||||
name: "Squad 1".to_string(),
|
||||
avatar_list: AvatarJson::to_lineup_avatars(player),
|
||||
njjbfegnhjc: 5,
|
||||
bpkggopoppf: 5,
|
||||
mp_max: 5,
|
||||
mp: 5,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
sess.send(
|
||||
CMD_SCENE_GROUP_REFRESH_SC_NOTIFY,
|
||||
Ljihfeagpcl {
|
||||
kpfomkdmoce: vec![Jnofbbanolk {
|
||||
Kecnjlcjefm {
|
||||
kpjckjjpjhj: vec![Makfkmagkli {
|
||||
group_id: 0,
|
||||
state: 0,
|
||||
kppckepfpce: 0,
|
||||
fiiciciambe: player
|
||||
kcbpdfengaa: 0,
|
||||
hdaiklkffjh: player
|
||||
.lineups
|
||||
.iter()
|
||||
.map(|(idx, v)| Gffbkjofnad {
|
||||
fimallpbobk: 0,
|
||||
mggfjbdchjh: 0,
|
||||
glalelmdamm: Some(SceneEntityInfo {
|
||||
.map(|(idx, v)| Kbikoelgpde {
|
||||
kjjeiknincl: 0,
|
||||
cojmgafmcjm: 0,
|
||||
gonncekbppg: Some(SceneEntityInfo {
|
||||
actor: Some(SceneActorInfo {
|
||||
avatar_type: AvatarType::AvatarFormalType.into(),
|
||||
base_avatar_id: *v,
|
||||
|
||||
@ -141,20 +141,20 @@ pub async fn on_get_mission_status_cs_req(
|
||||
retcode: 0,
|
||||
finished_main_mission_id_list: FINISHED_MAIN_MISSIONS.to_vec(),
|
||||
sub_mission_status_list: body
|
||||
.main_mission_id_list
|
||||
.sub_mission_id_list
|
||||
.iter()
|
||||
.map(|id| Mission {
|
||||
id: *id,
|
||||
progress: 0,
|
||||
progress: 1,
|
||||
status: MissionStatus::MissionFinish.into(),
|
||||
})
|
||||
.collect(),
|
||||
mission_event_status_list: body
|
||||
.mission_event_id_list
|
||||
.main_mission_id_list
|
||||
.iter()
|
||||
.map(|id| Mission {
|
||||
id: *id,
|
||||
progress: 0,
|
||||
progress: 1,
|
||||
status: MissionStatus::MissionFinish.into(),
|
||||
})
|
||||
.collect(),
|
||||
|
||||
@ -28,15 +28,32 @@ pub use tutorial::*;
|
||||
pub use inventory::*;
|
||||
pub use chat::*;
|
||||
|
||||
#[allow(unused_imports)]
|
||||
use proto::{
|
||||
Aaihejacdpk::*, Achkcddkkkj::*, Bancodieeof::*, CmdActivityType::*, CmdBattleType::*,
|
||||
CmdPlayerType::*, Cmpepmnekko::*, Cpbdjpocnai::*, Ddhbjcelmjp::*,
|
||||
Eegmjpcijbc::*, Emhbkpkpjpa::*, Fdkapmfjgjl::*, Gaifgoihffa::*, Galijhmhgcg::*, Gdjpnkniijf::*,
|
||||
Hfjpennlffa::*, Hmnbojnkleh::*, Ieoildlcdkb::*, Kfmpmaojchm::*, Lopidcokdih::*, Lpegmiilfjm::*,
|
||||
Mbnnmfkffbo::*, Mkeclbphcol::*, Niinikapdpg::*, Pfokmnnfiap::*, Pjmghcfmmge::*, Pnjfenbhbhg::*,
|
||||
Pnnbhogkeeh::*,
|
||||
CmdActivityType::*, CmdAdventureType::*, CmdAetherDivideType::*, CmdAlleyType::*,
|
||||
CmdArchiveType::*, CmdAvatarType::*, CmdBattleCollegeType::*, CmdBattlePassType::*,
|
||||
CmdBattleType::*, CmdBoxingClubType::*, CmdChallengeType::*, CmdChatType::*,
|
||||
CmdChessRogueType::*, CmdClockParkType::*, CmdContentPackageType::*, CmdDailyActiveType::*,
|
||||
CmdDrinkMakerType::*, CmdEvolveBuildType::*, CmdExpeditionType::*,
|
||||
CmdFantasticStoryActivityType::*, CmdFeverTimeActivityType::*, CmdFightActivityType::*,
|
||||
CmdFightMathc3Type::*, 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::*,
|
||||
CmdPlayerSync::*, CmdPlayerType::*, CmdPlotType::*, CmdPunkLordType::*, CmdQuestType::*,
|
||||
CmdRaidCollectionType::*, CmdRaidType::*, CmdRedDotType::*, CmdReplayType::*,
|
||||
CmdRndOptionType::*, CmdRogueCommonType::*, CmdRogueEndless::*, CmdRogueModifierType::*,
|
||||
CmdRogueTournType::*, CmdRogueType::*, CmdRollShopType::*, CmdSceneType::*,
|
||||
CmdServerPrefsType::*, CmdShopType::*, CmdSpaceZooType::*, CmdStarFightType::*,
|
||||
CmdStoryLineType::*, CmdStrongChallengeActivityType::*, CmdTalkRewardType::*,
|
||||
CmdTelevisionActivityType::*, CmdTextJoinType::*, CmdTrainVisitorType::*,
|
||||
CmdTravelBrochureType::*, CmdTreasureDungeonType::*, CmdTutorialType::*, CmdWaypointType::*,
|
||||
CmdWolfBroType::*,
|
||||
};
|
||||
|
||||
|
||||
macro_rules! dummy {
|
||||
($($cmd:ident),* $(,)*) => {
|
||||
paste! {
|
||||
@ -102,7 +119,7 @@ dummy! {
|
||||
GetCurChallenge,
|
||||
GetRogueInfo,
|
||||
GetExpeditionData,
|
||||
GetRogueDialogueEventData,
|
||||
// GetRogueDialogueEventData,
|
||||
GetJukeboxData,
|
||||
SyncClientResVersion,
|
||||
DailyFirstMeetPam,
|
||||
|
||||
@ -58,7 +58,10 @@ pub async fn on_get_cur_scene_info_cs_req(
|
||||
}
|
||||
|
||||
// enterscene
|
||||
pub async fn on_lckgkdehclb(session: &mut PlayerSession, request: &Lckgkdehclb) -> Result<()> {
|
||||
pub async fn on_enter_scene_cs_req(
|
||||
session: &mut PlayerSession,
|
||||
request: &EnterSceneCsReq,
|
||||
) -> Result<()> {
|
||||
let mut player = JsonData::load().await;
|
||||
|
||||
// send packet first
|
||||
@ -71,7 +74,7 @@ pub async fn on_lckgkdehclb(session: &mut PlayerSession, request: &Lckgkdehclb)
|
||||
&mut player,
|
||||
request.entry_id,
|
||||
true,
|
||||
Some(request.maplanefddc),
|
||||
Some(request.dehbihbbbgo),
|
||||
)
|
||||
.await?;
|
||||
|
||||
@ -79,23 +82,26 @@ pub async fn on_lckgkdehclb(session: &mut PlayerSession, request: &Lckgkdehclb)
|
||||
}
|
||||
|
||||
// getscenemapinfocsreq
|
||||
pub async fn on_fkjoeabiioe(sesison: &mut PlayerSession, request: &Fkjoeabiioe) -> Result<()> {
|
||||
let mut map_infos = Vec::<Fjniajephmj>::new();
|
||||
pub async fn on_get_scene_map_info_cs_req(
|
||||
sesison: &mut PlayerSession,
|
||||
request: &GetSceneMapInfoCsReq,
|
||||
) -> Result<()> {
|
||||
let mut map_infos = Vec::<SceneMapInfo>::new();
|
||||
|
||||
for entry_id in &request.dmkkkfnkofh {
|
||||
let mut map_info = Fjniajephmj {
|
||||
for entry_id in &request.entry_id_list {
|
||||
let mut map_info = SceneMapInfo {
|
||||
retcode: 0,
|
||||
dcbdhkkkpgd: vec![
|
||||
Gbiimoglajl {
|
||||
gommoeicmjg: Kihbdaniehp::MapInfoChestTypeNormal.into(),
|
||||
chest_info_list: vec![
|
||||
ChestInfo {
|
||||
fmangokfagc: MapInfoChestType::Normal.into(),
|
||||
..Default::default()
|
||||
},
|
||||
Gbiimoglajl {
|
||||
gommoeicmjg: Kihbdaniehp::MapInfoChestTypePuzzle.into(),
|
||||
ChestInfo {
|
||||
fmangokfagc: MapInfoChestType::Puzzle.into(),
|
||||
..Default::default()
|
||||
},
|
||||
Gbiimoglajl {
|
||||
gommoeicmjg: Kihbdaniehp::MapInfoChestTypeChallenge.into(),
|
||||
ChestInfo {
|
||||
fmangokfagc: MapInfoChestType::Challenge.into(),
|
||||
..Default::default()
|
||||
},
|
||||
],
|
||||
@ -104,7 +110,7 @@ pub async fn on_fkjoeabiioe(sesison: &mut PlayerSession, request: &Fkjoeabiioe)
|
||||
};
|
||||
|
||||
for i in 0..100 {
|
||||
map_info.phicefeaigb.push(i)
|
||||
map_info.lighten_section_list.push(i)
|
||||
}
|
||||
|
||||
let group_config = GAME_RESOURCES.map_entrance.get(entry_id).and_then(|v| {
|
||||
@ -115,47 +121,43 @@ pub async fn on_fkjoeabiioe(sesison: &mut PlayerSession, request: &Fkjoeabiioe)
|
||||
if let Some(level) = group_config {
|
||||
// add teleports
|
||||
for teleport in &level.teleports {
|
||||
map_info.ojlnmnehgai.push(*teleport.0)
|
||||
map_info.unlock_teleport_list.push(*teleport.0)
|
||||
}
|
||||
|
||||
for (group_id, group) in &level.group_items {
|
||||
map_info.pmolfbcbfpe.push(Gecjjlmabhp {
|
||||
map_info.maze_group_list.push(MazeGroup {
|
||||
group_id: *group_id,
|
||||
..Default::default()
|
||||
});
|
||||
|
||||
// prop
|
||||
for prop in &group.props {
|
||||
map_info.cgkfbhoadpc.push(Kangcibfhee {
|
||||
map_info.maze_prop_list.push(MazePropState {
|
||||
group_id: prop.group_id,
|
||||
state: if prop.prop_state_list.contains(&PropState::CheckPointEnable) {
|
||||
PropState::CheckPointEnable as u32
|
||||
} else {
|
||||
prop.state.clone() as u32
|
||||
},
|
||||
ifjocipnpgd: prop.id,
|
||||
config_id: prop.id,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Debug
|
||||
// tokio::fs::write(format!("./text-{}.txt", entry_id), format!("{:#?}", map_info)).await?;
|
||||
map_infos.push(map_info)
|
||||
}
|
||||
|
||||
sesison
|
||||
.send(
|
||||
CMD_GET_SCENE_MAP_INFO_SC_RSP,
|
||||
Cegeebldbke {
|
||||
GetSceneMapInfoScRsp {
|
||||
retcode: 0,
|
||||
mhefdgcamjl: map_infos,
|
||||
map_info_list: map_infos,
|
||||
..Default::default()
|
||||
},
|
||||
)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
.await
|
||||
}
|
||||
|
||||
lazy_static! {
|
||||
@ -186,13 +188,13 @@ pub async fn on_scene_entity_move_cs_req(
|
||||
}
|
||||
|
||||
if let Some(motion) = &entity.motion {
|
||||
if let Some(pos) = &motion.aomilajjmii {
|
||||
player.position.x = pos.baimdminomk;
|
||||
player.position.y = pos.bemlopmcgch;
|
||||
player.position.z = pos.bagloppgnpb;
|
||||
if let Some(pos) = &motion.pos {
|
||||
player.position.x = pos.x;
|
||||
player.position.y = pos.y;
|
||||
player.position.z = pos.z;
|
||||
}
|
||||
if let Some(rot) = &motion.eiaoiankefd {
|
||||
player.position.rot_y = rot.bemlopmcgch;
|
||||
if let Some(rot) = &motion.rot {
|
||||
player.position.rot_y = rot.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -214,7 +216,7 @@ pub async fn on_get_entered_scene_cs_req(
|
||||
.filter(|(_, v)| {
|
||||
!v.finish_main_mission_list.is_empty() || !v.finish_sub_mission_list.is_empty()
|
||||
})
|
||||
.map(|(_, v)| Lpllljogfeh {
|
||||
.map(|(_, v)| Hhglkmjngeg {
|
||||
floor_id: v.floor_id,
|
||||
plane_id: v.plane_id,
|
||||
})
|
||||
@ -223,19 +225,14 @@ pub async fn on_get_entered_scene_cs_req(
|
||||
session
|
||||
.send(
|
||||
CMD_GET_ENTERED_SCENE_SC_RSP,
|
||||
Mkgidalegbd {
|
||||
lejonbbgdnn: scenes,
|
||||
Fchnfpafjce {
|
||||
npbjclegekf: scenes,
|
||||
retcode: 0,
|
||||
},
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
// getunlockteleportcsreq
|
||||
pub async fn on_kkbapmgmmcb(_session: &mut PlayerSession, _request: &Kkbapmgmmcb) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn load_scene(
|
||||
session: &mut PlayerSession,
|
||||
json: &mut JsonData,
|
||||
@ -278,24 +275,26 @@ async fn load_scene(
|
||||
floor_id: enterance.floor_id,
|
||||
plane_id: enterance.plane_id,
|
||||
entry_id,
|
||||
game_mode_type: plane.plane_type as u32,
|
||||
pbfgagecpcd: plane.world_id,
|
||||
pjbjelcgkof: plane.plane_type as u32,
|
||||
nnfgkelcban: 1,
|
||||
lgflfajffjl: 1,
|
||||
game_mode_type: 1,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let lineup_info = AvatarJson::to_lineup_info(&json.lineups);
|
||||
let player_pos = MotionInfo {
|
||||
// rot
|
||||
eiaoiankefd: Some(Vector {
|
||||
baimdminomk: 0,
|
||||
bemlopmcgch: position.rot_y,
|
||||
bagloppgnpb: 0,
|
||||
rot: Some(Vector {
|
||||
x: 0,
|
||||
y: position.rot_y,
|
||||
z: 0,
|
||||
}),
|
||||
// pos
|
||||
aomilajjmii: Some(Vector {
|
||||
baimdminomk: position.x,
|
||||
bemlopmcgch: position.y,
|
||||
bagloppgnpb: position.z,
|
||||
pos: Some(Vector {
|
||||
x: position.x,
|
||||
y: position.y,
|
||||
z: position.z,
|
||||
}),
|
||||
};
|
||||
|
||||
@ -305,7 +304,7 @@ async fn load_scene(
|
||||
let mut monster_entity_id = 30_000;
|
||||
|
||||
for (group_id, group) in &group_config.group_items {
|
||||
let mut group_info = Dhkacjhaoid {
|
||||
let mut group_info = SceneGroupInfo {
|
||||
state: 0,
|
||||
group_id: *group_id,
|
||||
..Default::default()
|
||||
@ -365,7 +364,7 @@ async fn load_scene(
|
||||
entity_id: npc_entity_id,
|
||||
motion: Some(npc_position.to_motion()),
|
||||
npc: Some(SceneNpcInfo {
|
||||
egeneneoadj: npc.npcid,
|
||||
npc_id: npc.npcid,
|
||||
..Default::default()
|
||||
}),
|
||||
..Default::default()
|
||||
@ -403,11 +402,11 @@ async fn load_scene(
|
||||
group_info.entity_list.push(info);
|
||||
}
|
||||
|
||||
scene_info.chhmmbdhjpg.push(group_info);
|
||||
scene_info.scene_group_list.push(group_info);
|
||||
}
|
||||
|
||||
// load player entity
|
||||
let mut player_group = Dhkacjhaoid {
|
||||
let mut player_group = SceneGroupInfo {
|
||||
state: 0,
|
||||
group_id: 0,
|
||||
..Default::default()
|
||||
@ -418,16 +417,16 @@ async fn load_scene(
|
||||
entity_id: (*slot) + 1,
|
||||
motion: Some(MotionInfo {
|
||||
// pos
|
||||
aomilajjmii: Some(Vector {
|
||||
baimdminomk: json.position.x,
|
||||
bemlopmcgch: json.position.y,
|
||||
bagloppgnpb: json.position.z,
|
||||
pos: Some(Vector {
|
||||
x: json.position.x,
|
||||
y: json.position.y,
|
||||
z: json.position.z,
|
||||
}),
|
||||
// rot
|
||||
eiaoiankefd: Some(Vector {
|
||||
baimdminomk: 0,
|
||||
bemlopmcgch: json.position.rot_y,
|
||||
bagloppgnpb: 0,
|
||||
rot: Some(Vector {
|
||||
x: 0,
|
||||
y: json.position.rot_y,
|
||||
z: 0,
|
||||
}),
|
||||
}),
|
||||
actor: Some(SceneActorInfo {
|
||||
@ -439,13 +438,13 @@ async fn load_scene(
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
scene_info.chhmmbdhjpg.push(player_group);
|
||||
scene_info.scene_group_list.push(player_group);
|
||||
|
||||
if _save {
|
||||
session
|
||||
.send(
|
||||
CMD_ENTER_SCENE_BY_SERVER_SC_NOTIFY,
|
||||
Jdokmmikidp {
|
||||
EnterSceneByServerScNotify {
|
||||
scene: Some(scene_info.clone()),
|
||||
lineup: Some(lineup_info),
|
||||
..Default::default()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -51,8 +51,8 @@ impl AvatarJson {
|
||||
} else {
|
||||
0
|
||||
},
|
||||
ojneijnggfo: 1712924677,
|
||||
amafpakcckf: relics
|
||||
first_met_timestamp: 1712924677,
|
||||
equip_relic_list: relics
|
||||
.iter()
|
||||
.map(|v| v.to_equipment_relic_proto())
|
||||
.collect::<Vec<_>>(),
|
||||
@ -153,8 +153,8 @@ impl AvatarJson {
|
||||
let mut lineup_info = LineupInfo {
|
||||
extra_lineup_type: ExtraLineupType::LineupNone.into(),
|
||||
name: "Squad 1".to_string(),
|
||||
njjbfegnhjc: 5,
|
||||
bpkggopoppf: 5,
|
||||
mp: 5,
|
||||
mp_max: 5,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -197,7 +197,7 @@ impl Lightcone {
|
||||
pub fn to_equipment_proto(&self) -> Equipment {
|
||||
Equipment {
|
||||
base_avatar_id: self.equip_avatar,
|
||||
imhlbinfhlh: self.equip_avatar,
|
||||
cmmegdchmlb: self.equip_avatar,
|
||||
exp: 0,
|
||||
is_protected: false,
|
||||
level: self.level,
|
||||
@ -249,7 +249,7 @@ impl Relic {
|
||||
pub fn to_relic_proto(&self) -> proto::Relic {
|
||||
proto::Relic {
|
||||
base_avatar_id: self.equip_avatar,
|
||||
imhlbinfhlh: self.equip_avatar,
|
||||
cmmegdchmlb: self.equip_avatar,
|
||||
exp: 0,
|
||||
is_protected: false,
|
||||
level: self.level,
|
||||
@ -291,9 +291,9 @@ impl Relic {
|
||||
|
||||
pub fn to_equipment_relic_proto(&self) -> EquipRelic {
|
||||
EquipRelic {
|
||||
ipnhjoomhdm: self.relic_id % 10,
|
||||
iaglgkpdloe: self.relic_id % 10,
|
||||
// ?
|
||||
llepdadmfdo: 1 + self.internal_uid,
|
||||
ekjochfepap: 1 + self.internal_uid,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -309,11 +309,11 @@ pub struct Monster {
|
||||
}
|
||||
|
||||
impl Monster {
|
||||
fn to_scene_monster_info(&self) -> SceneMonsterParam {
|
||||
SceneMonsterParam {
|
||||
fn to_scene_monster_info(&self) -> SceneMonsterData {
|
||||
SceneMonsterData {
|
||||
monster_id: self.monster_id,
|
||||
max_hp: self.max_hp,
|
||||
aiapcboelmg: self.max_hp,
|
||||
jjhfeikbakk: self.max_hp,
|
||||
}
|
||||
}
|
||||
|
||||
@ -324,9 +324,9 @@ impl Monster {
|
||||
}
|
||||
|
||||
SceneMonsterWave {
|
||||
iilhbcalikm: wave_index, // wave indexx??
|
||||
imapolkmefn: wave_index, // wave indexx??
|
||||
|
||||
ejahmdkklbn: Some(Holldlkceof {
|
||||
acpannfhach: Some(Kjfnknacfin {
|
||||
// monster param
|
||||
level: monsters.iter().map(|v| v.level).max().unwrap_or(95),
|
||||
..Default::default()
|
||||
@ -387,6 +387,7 @@ pub enum BattleType {
|
||||
Moc = 1,
|
||||
PF = 2,
|
||||
SU = 3,
|
||||
AS = 4,
|
||||
}
|
||||
|
||||
impl Default for BattleType {
|
||||
@ -462,16 +463,16 @@ impl Position {
|
||||
pub fn to_motion(&self) -> MotionInfo {
|
||||
MotionInfo {
|
||||
// rot
|
||||
eiaoiankefd: Some(Vector {
|
||||
baimdminomk: 0,
|
||||
bemlopmcgch: self.rot_y,
|
||||
bagloppgnpb: 0,
|
||||
rot: Some(Vector {
|
||||
x: 0,
|
||||
y: self.rot_y,
|
||||
z: 0,
|
||||
}),
|
||||
// pos
|
||||
aomilajjmii: Some(Vector {
|
||||
baimdminomk: self.x,
|
||||
bemlopmcgch: self.y,
|
||||
bagloppgnpb: self.z,
|
||||
pos: Some(Vector {
|
||||
x: self.x,
|
||||
y: self.y,
|
||||
z: self.z,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
BIN
mhypbase.dll
BIN
mhypbase.dll
Binary file not shown.
22
persistent
22
persistent
@ -1,20 +1,20 @@
|
||||
{
|
||||
"lineups": {
|
||||
"0": 1315,
|
||||
"1": 1309,
|
||||
"2": 1303,
|
||||
"3": 1217
|
||||
"0": 1310,
|
||||
"1": 1308,
|
||||
"2": 1314,
|
||||
"3": 1308
|
||||
},
|
||||
"position": {
|
||||
"x": 34639,
|
||||
"y": 192819,
|
||||
"z": 435863,
|
||||
"rot_y": 26508
|
||||
"x": -3588,
|
||||
"y": 56256,
|
||||
"z": -87629,
|
||||
"rot_y": 318488
|
||||
},
|
||||
"scene": {
|
||||
"plane_id": 20313,
|
||||
"floor_id": 20313001,
|
||||
"entry_id": 2031301
|
||||
"plane_id": 20321,
|
||||
"floor_id": 20321001,
|
||||
"entry_id": 2032101
|
||||
},
|
||||
"main_character": "FemaleHarmony"
|
||||
}
|
||||
48492
proto/out/_.rs
48492
proto/out/_.rs
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
use crate::config::versions;
|
||||
use axum::extract::Query;
|
||||
use prost::Message;
|
||||
use proto::{Dispatch, Gateserver, RegionInfo};
|
||||
use proto::{Gateserver, GlobalDispatchData, ServerData};
|
||||
use serde::Deserialize;
|
||||
|
||||
pub const QUERY_DISPATCH_ENDPOINT: &str = "/query_dispatch";
|
||||
@ -9,12 +9,12 @@ pub const QUERY_GATEWAY_ENDPOINT: &str = "/query_gateway";
|
||||
|
||||
#[tracing::instrument]
|
||||
pub async fn query_dispatch() -> String {
|
||||
let rsp = Dispatch {
|
||||
let rsp = GlobalDispatchData {
|
||||
retcode: 0,
|
||||
region_list: vec![RegionInfo {
|
||||
server_list: vec![ServerData {
|
||||
name: String::from("RobinSR"),
|
||||
title: String::from("RobinSR"),
|
||||
env_type: String::from("9"),
|
||||
env_type: String::from("11"),
|
||||
dispatch_url: String::from("http://127.0.0.1:21000/query_gateway"),
|
||||
..Default::default()
|
||||
}],
|
||||
@ -44,20 +44,13 @@ pub async fn query_gateway(parameters: Query<QueryGatewayParameters>) -> String
|
||||
lua_url: config.lua_url.clone(),
|
||||
lua_version: config.lua_version.clone(),
|
||||
ifix_version: String::from("0"),
|
||||
jblkncaoiao: true,
|
||||
hjdjakjkdbi: true,
|
||||
ldknmcpffim: true,
|
||||
feehapamfci: true,
|
||||
eebfeohfpph: true,
|
||||
dfmjjcfhfea: true,
|
||||
najikcgjgan: true,
|
||||
giddjofkndm: true,
|
||||
fbnbbembcgn: false,
|
||||
dedgfjhbnok: false,
|
||||
pdpbjhfgnjk: true,
|
||||
bipcmeeljhj: true,
|
||||
hecpclndaac: true,
|
||||
nlfkefmfige: true,
|
||||
oigmgpfnloj: true,
|
||||
pnnionnkbnn: true,
|
||||
use_tcp: true,
|
||||
linlaijbboh: false,
|
||||
ahmbfbkhmgh: false,
|
||||
nmdccehcdcc: false,
|
||||
..Default::default()
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -1,65 +1,14 @@
|
||||
{
|
||||
"OSBETAWin2.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6744505_89b2f5dc973e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6759713_b4e0e740f0da",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6755976_3c46d7c46e2c",
|
||||
"lua_version": "6755976"
|
||||
"CNBETAWin2.2.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_7037158_b67f5a6a68fb",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_7033392_aaca9c1b456b",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_7050564_f05a0f949b10",
|
||||
"lua_version": "7050564"
|
||||
},
|
||||
"CNBETAWin2.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6744505_89b2f5dc973e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6759713_b4e0e740f0da",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6755976_3c46d7c46e2c",
|
||||
"lua_version": "6755976"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6785106_15237df2ef89",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6787319_5f3f1dae4769",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6785460_26c4b6c61a8b",
|
||||
"lua_version": "6785460"
|
||||
},
|
||||
"CNBETAWin2.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6785106_15237df2ef89",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6787319_5f3f1dae4769",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6785460_26c4b6c61a8b",
|
||||
"lua_version": "6785460"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.53": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6828321_72f2df86102b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6834225_44836493b261",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6828764_f749b48347fd",
|
||||
"lua_version": "6828764"
|
||||
},
|
||||
"CNBETAWin2.1.53": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6828321_72f2df86102b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6834225_44836493b261",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6828764_f749b48347fd",
|
||||
"lua_version": "6828764"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.54": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6875067_4783dbc33bcd",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6894513_13602cb3df26",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6875272_2cb77cca61ea",
|
||||
"lua_version": "6875272"
|
||||
},
|
||||
"CNBETAWin2.1.54": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6875067_4783dbc33bcd",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6894513_13602cb3df26",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6875272_2cb77cca61ea",
|
||||
"lua_version": "6875272"
|
||||
},
|
||||
"CNBETAWin2.1.55": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6918564_f65307ddaa2b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6928643_3ce1c3e895fa",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6931760_dcbf48d15383",
|
||||
"lua_version": "6931760"
|
||||
},
|
||||
"OSBETAWin2.1.55": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6918564_f65307ddaa2b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6928643_3ce1c3e895fa",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6931760_dcbf48d15383",
|
||||
"lua_version": "6931760"
|
||||
"OSBETAWin2.2.51": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_7037158_b67f5a6a68fb",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_7033392_aaca9c1b456b",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_7050564_f05a0f949b10",
|
||||
"lua_version": "7050564"
|
||||
}
|
||||
}
|
||||
@ -1,65 +1,14 @@
|
||||
{
|
||||
"OSBETAWin2.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6744505_89b2f5dc973e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6759713_b4e0e740f0da",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6755976_3c46d7c46e2c",
|
||||
"lua_version": "6755976"
|
||||
"CNBETAWin2.2.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_7037158_b67f5a6a68fb",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_7033392_aaca9c1b456b",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_7050564_f05a0f949b10",
|
||||
"lua_version": "7050564"
|
||||
},
|
||||
"CNBETAWin2.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6744505_89b2f5dc973e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6759713_b4e0e740f0da",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6755976_3c46d7c46e2c",
|
||||
"lua_version": "6755976"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6785106_15237df2ef89",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6787319_5f3f1dae4769",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6785460_26c4b6c61a8b",
|
||||
"lua_version": "6785460"
|
||||
},
|
||||
"CNBETAWin2.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6785106_15237df2ef89",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6787319_5f3f1dae4769",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6785460_26c4b6c61a8b",
|
||||
"lua_version": "6785460"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.53": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6828321_72f2df86102b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6834225_44836493b261",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6828764_f749b48347fd",
|
||||
"lua_version": "6828764"
|
||||
},
|
||||
"CNBETAWin2.1.53": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6828321_72f2df86102b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6834225_44836493b261",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6828764_f749b48347fd",
|
||||
"lua_version": "6828764"
|
||||
},
|
||||
|
||||
"OSBETAWin2.1.54": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6875067_4783dbc33bcd",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6894513_13602cb3df26",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6875272_2cb77cca61ea",
|
||||
"lua_version": "6875272"
|
||||
},
|
||||
"CNBETAWin2.1.54": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6875067_4783dbc33bcd",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6894513_13602cb3df26",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6875272_2cb77cca61ea",
|
||||
"lua_version": "6875272"
|
||||
},
|
||||
"CNBETAWin2.1.55": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6918564_f65307ddaa2b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6928643_3ce1c3e895fa",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6931760_dcbf48d15383",
|
||||
"lua_version": "6931760"
|
||||
},
|
||||
"OSBETAWin2.1.55": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_6918564_f65307ddaa2b",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6928643_3ce1c3e895fa",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_6931760_dcbf48d15383",
|
||||
"lua_version": "6931760"
|
||||
"OSBETAWin2.2.51": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_7037158_b67f5a6a68fb",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_7033392_aaca9c1b456b",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_7050564_f05a0f949b10",
|
||||
"lua_version": "7050564"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user