RobinSR/gameserver/src/net/handlers/player.rs
2024-06-23 06:47:56 +07:00

200 lines
7.4 KiB
Rust

use std::collections::HashMap;
use crate::{
net::tools::JsonData,
util::{self, cur_timestamp_ms},
};
use super::*;
pub async fn on_get_basic_info_cs_req(
session: &mut PlayerSession,
_body: &GetBasicInfoCsReq,
) -> Result<()> {
session
.send(
CMD_GET_BASIC_INFO_SC_RSP,
GetBasicInfoScRsp {
retcode: 0,
player_setting_info: Some(PlayerSettingInfo::default()),
..Default::default()
},
)
.await
}
// pub async fn on_get_hero_basic_type_info_cs_req(
// session: &mut PlayerSession,
// _body: &GetHeroBasicTypeInfoCsReq,
// ) -> Result<()> {
// let mc = JsonData::load().await.main_character;
// session
// .send(
// CMD_GET_HERO_BASIC_TYPE_INFO_SC_RSP,
// GetHeroBasicTypeInfoScRsp {
// retcode: 0,
// gender: mc.get_gender().into(),
// cur_basic_type: mc.get_type().into(),
// basic_type_info_list: vec![HeroBasicTypeInfo {
// basic_type: mc.get_type().into(),
// ..Default::default()
// }],
// ..Default::default()
// },
// )
// .await
// }
pub async fn on_player_heart_beat_cs_req(
session: &mut PlayerSession,
body: &PlayerHeartBeatCsReq,
) -> Result<()> {
session
.send(
CMD_PLAYER_HEART_BEAT_SC_RSP,
PlayerHeartBeatScRsp {
retcode: 0,
client_time_ms: body.client_time_ms,
server_time_ms: util::cur_timestamp_ms(),
download_data: Some(ClientDownloadData {
version: 51,
time: util::cur_timestamp_ms() as i64,
data: rbase64::decode("G0x1YVMBGZMNChoKBAQICHhWAAAAAAAAAAAAAAAod0ABKEBDOlxVc2Vyc1x4ZW9uZGV2XERvd25sb2Fkc1xyYWJzdHZvLmx1YQAAAAAAAAAAAAEEEAAAACQAQAApQEAAKYBAACnAQABWAAEALIAAAR1AQQCkgEEA5ABAAOnAwQHpAMIB6UDCAawAAAEsgAAAH8BChRkAgAAMAAAABANDUwQMVW5pdHlFbmdpbmUEC0dhbWVPYmplY3QEBUZpbmQEKVVJUm9vdC9BYm92ZURpYWxvZy9CZXRhSGludERpYWxvZyhDbG9uZSkEF0dldENvbXBvbmVudEluQ2hpbGRyZW4EB3R5cGVvZgQEUlBHBAdDbGllbnQEDkxvY2FsaXplZFRleHQEBXRleHQURVJvYmluU1IgaXMgYSBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZS4gZGlzY29yZC5nZy9yZXZlcnNlZHJvb21zAQAAAAEAAAAAABAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAFX0VOVg==").unwrap()
}),
},
)
.await
}
pub type PlayerLoginFinishCsReq = Dummy;
pub async fn on_player_login_finish_cs_req(
session: &mut PlayerSession,
_: &PlayerLoginFinishCsReq,
) -> Result<()> {
session
.send(CMD_PLAYER_LOGIN_FINISH_SC_RSP, Dummy {})
.await?;
session
.send(CMD_CONTENT_PACKAGE_UNLOCK_SC_RSP, Dummy {})
.await?;
session
.send(CMD_CONTENT_PACKAGE_GET_DATA_SC_RSP, Dummy {})
.await?;
session
.send(
CMD_CONTENT_PACKAGE_SYNC_DATA_SC_NOTIFY,
ContentPackageSyncDataScNotify {
data: Some(PackageData {
info_list: vec![
ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: 200001,
},
ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: 200002,
},
ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: 200003,
},
ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: 150017,
},
ContentInfo {
status: ContentPackageStatus::Finished.into(),
content_id: 150015,
},
],
fnmhgeaflmn: 0,
}),
},
)
.await?;
Ok(())
}
pub async fn on_get_multi_path_avatar_info_cs_req(
session: &mut PlayerSession,
_: &GetMultiPathAvatarInfoCsReq,
) -> Result<()> {
session
.send(
CMD_GET_MULTI_PATH_AVATAR_INFO_SC_RSP,
GetMultiPathAvatarInfoScRsp {
retcode: 0,
multi_path_avatar_type_info_list: vec![
MultiPathAvatarTypeInfo {
multi_path_avatar_type: MultiPathAvatarType::GirlShamanType.into(),
rank: 6,
equip_relic_list: vec![],
skilltree_list: vec![
AvatarSkillTree {
level: 1,
point_id: 8006001,
},
AvatarSkillTree {
level: 1,
point_id: 8006002,
},
AvatarSkillTree {
level: 1,
point_id: 8006003,
},
AvatarSkillTree {
level: 1,
point_id: 8006004,
},
AvatarSkillTree {
level: 1,
point_id: 8006001,
},
],
all_path_special_skilltree_list: vec![],
path_equipment_id: 0,
all_path_unlocked_special_point_id_list: vec![],
},
MultiPathAvatarTypeInfo {
multi_path_avatar_type: MultiPathAvatarType::Mar7thKnightType.into(),
rank: 6,
equip_relic_list: vec![],
skilltree_list: vec![
AvatarSkillTree {
level: 1,
point_id: 1224001,
},
AvatarSkillTree {
level: 1,
point_id: 1224002,
},
AvatarSkillTree {
level: 1,
point_id: 1224003,
},
AvatarSkillTree {
level: 1,
point_id: 1224004,
},
AvatarSkillTree {
level: 1,
point_id: 1224005,
},
],
all_path_special_skilltree_list: vec![],
path_equipment_id: 1224,
all_path_unlocked_special_point_id_list: vec![],
},
],
gmhdhimdkfi: vec![],
current_multi_path_avatar_id: HashMap::from([
(8001, MultiPathAvatarType::GirlShamanType.into()),
(1001, MultiPathAvatarType::Mar7thRogueType.into()),
]),
},
)
.await
}