This commit is contained in:
endernon 2024-05-10 23:06:38 +01:00
parent 948b7b560d
commit ab9ece1702
2 changed files with 85 additions and 67 deletions

View file

@ -1,76 +1,94 @@
use anyhow::Result;
use proto::*;
use super::*;
use crate::game::globals;
use serde_json::json;
use serde_json::Value;
use std::fs;
use crate::{net::PlayerSession, util};
pub async fn on_start_cocoon_stage_cs_req(
session: &PlayerSession,
body: &StartCocoonStageCsReq,
) -> Result<()> {
let player_info = session.player_info();
pub async fn on_get_bag_cs_req(session: &PlayerSession, _: &GetBagCsReq) -> Result<()> {
let json_data = fs::read_to_string("PATH HERE").expect("Failed to read inventory.json");
let json_value: Value = serde_json::from_str(&json_data).expect("Failed to parse JSON data");
let rsp = StartCocoonStageScRsp {
retcode: 0,
prop_entity_id: body.prop_entity_id,
cocoon_id: body.cocoon_id,
wave: body.wave,
battle_info: Some(SceneBattleInfo {
stage_id: 201012311,
logic_random_seed: 4444,
battle_id: 1,
battle_avatar_list: player_info
.lineup
.avatar_list
.iter()
.map(|avatar| BattleAvatar {
index: avatar.slot,
id: if avatar.id == 8001 {
player_info.hero_basic_type as u32
} else {
avatar.id
},
level: 80,
promotion: 6,
rank: 6,
hp: 10000,
avatar_type: 3,
sp: Some(AmountInfo {
cur_amount: 10000,
max_amount: 10000,
}),
..Default::default()
})
.collect(),
monster_wave_list: globals
.monster_wave_list
.iter()
.map(|monster_list| SceneMonsterWave {
monster_list: monster_list
.iter()
.map(|id| SceneMonsterData {
monster_id: *id,
..Default::default()
})
.collect(),
..Default::default()
})
.collect(),
..Default::default()
}),
};
// Extract ranks
let r1: u32 = json_value[0]["rank"].as_i64().expect("Failed to get rank for Equipment1") as u32;
let r2: u32 = json_value[1]["rank"].as_i64().expect("Failed to get rank for Equipment2") as u32;
let t1: u32 = json_value[0]["tid"].as_i64().expect("Failed") as u32;
let t2: u32 = json_value[1]["tid"].as_i64().expect("Failed") as u32;
let l1: u32 = json_value[0]["level"].as_i64().expect("Failed") as u32;
let l2: u32 = json_value[0]["level"].as_i64().expect("Failed") as u32;
//let e_rank3: u32 = json_value[2]["rank"].as_i64().expect("Failed to get rank for Equipment3") as u32;
session.send(CMD_START_COCOON_STAGE_SC_RSP, rsp).await
}
pub async fn on_get_cur_battle_info_cs_req(
session: &PlayerSession,
_body: &GetCurBattleInfoCsReq,
) -> Result<()> {
session
.send(
CMD_GET_BAG_SC_RSP,
GetBagScRsp {
kkdobdmaipc: vec![],
fllcfpejibd: vec![],
lgjeabihdpn: vec![],
retcode: 0,
equipment_list: vec![
Equipment {tid: t1, rank: r1, exp: 0, unique_id: 57, promotion: 6, level: l1, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: t2, rank: r2, exp: 0, unique_id: 58, promotion: 6, level: l2, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 59, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 60, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 61, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 62, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 63, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 64, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 65, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 5, exp: 0, unique_id: 66, promotion: 6, level: 80, base_avatar_id: 0, is_protected: true, ..Default::default()},
Equipment {tid: 23024, rank: 1, exp: 0, unique_id: 67, promotion: 0, level: 1, base_avatar_id: 0, is_protected: true, ..Default::default()},
//Equipment {tid: 1, rank: 1, exp: 0, unique_id: 59, promotion: 6, level: 1, base_avatar_id: 0, is_protected: true, ..Default::default()}
],
mbedbdbmekj: 0,
relic_list: vec![
Relic {
unique_id: 1488,
base_avatar_id: 1315, // avatar id
tid: 61202,
level: 15, is_protected: true,
main_affix_id: 1,
sub_affix_list: vec![ RelicAffix { affix_id: 7, cnt: 830, step: 20 }], ..Default::default() }
],
odeefdlejgg: vec![],
niemagjlpdl: vec![],
gddpphikjae: vec![],
macfjibhfad: vec![],
clkjaanbfpp: vec![ 101 ],
// .iter()
// .map(|id| {
// // {
// // tid: *id,
// // num: 500
// // }
// })
// .collect(),
biahmcppikj: vec![],
}
CMD_GET_CUR_BATTLE_INFO_SC_RSP,
GetCurBattleInfoScRsp {
battle_info: Some(SceneBattleInfo::default()),
ffbpkghgmjm: Some(Fjojkdhlonn::default()),
..Default::default()
},
)
.await
}
// let rsp = GetBagScRsp {
//
// }
}
pub async fn on_pve_battle_result_cs_req(
session: &PlayerSession,
body: &PveBattleResultCsReq,
) -> Result<()> {
session
.send(
CMD_P_V_E_BATTLE_RESULT_SC_RSP,
PveBattleResultScRsp {
retcode: 0,
end_status: body.end_status,
battle_id: body.battle_id,
..Default::default()
},
)
.await
}

View file

@ -9,7 +9,7 @@ use std::fs;
use crate::{net::PlayerSession, util};
pub async fn on_get_bag_cs_req(session: &PlayerSession, _: &GetBagCsReq) -> Result<()> {
let json_data = fs::read_to_string("PATH HERE").expect("Failed to read inventory.json");
let json_data = fs::read_to_string("inventory.json").expect("Failed to read inventory.json");
let json_value: Value = serde_json::from_str(&json_data).expect("Failed to parse JSON data");
// Extract ranks