Kick on RpcReenterWorld to avoid stuck
This commit is contained in:
parent
1a41d4b07b
commit
f97bc25688
3 changed files with 33 additions and 0 deletions
|
@ -68,6 +68,7 @@ protocol_handlers! {
|
||||||
RpcDelNewMap;
|
RpcDelNewMap;
|
||||||
RpcEndBattle;
|
RpcEndBattle;
|
||||||
RpcEnterWorld;
|
RpcEnterWorld;
|
||||||
|
RpcReenterWorld;
|
||||||
RpcFinishActPerformShow;
|
RpcFinishActPerformShow;
|
||||||
RpcFinishEventGraphPerformShow;
|
RpcFinishEventGraphPerformShow;
|
||||||
RpcGetPlayerMails;
|
RpcGetPlayerMails;
|
||||||
|
|
|
@ -350,3 +350,22 @@ pub async fn on_rpc_enter_world(
|
||||||
session.ns_prop_mgr.serialize_player_info().await,
|
session.ns_prop_mgr.serialize_player_info().await,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn on_rpc_reenter_world(
|
||||||
|
session: &NetworkSession,
|
||||||
|
_arg: &RpcReenterWorldArg,
|
||||||
|
) -> Result<RpcReenterWorldRet> {
|
||||||
|
tracing::warn!("OnRpcReenterWorld: world re-entrance is not implemented yet, kicking player!");
|
||||||
|
|
||||||
|
session
|
||||||
|
.send_rpc_arg(
|
||||||
|
PTC_KICK_PLAYER_ID,
|
||||||
|
&PtcKickPlayerArg {
|
||||||
|
reason_id: 2,
|
||||||
|
reason_str: String::new(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(RpcReenterWorldRet::error(ErrorCode::Fail, Vec::new()))
|
||||||
|
}
|
||||||
|
|
|
@ -76,6 +76,9 @@ pub struct PtcEnterSceneArg {
|
||||||
pub camera_y: u32,
|
pub camera_y: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(OctData, Clone, Debug)]
|
||||||
|
pub struct RpcReenterWorldArg {}
|
||||||
|
|
||||||
#[derive(OctData, Clone, Debug)]
|
#[derive(OctData, Clone, Debug)]
|
||||||
pub struct RpcEnterWorldArg {}
|
pub struct RpcEnterWorldArg {}
|
||||||
|
|
||||||
|
@ -343,6 +346,12 @@ pub struct PtcSyncSceneTimeArg {
|
||||||
pub last_timestamp: u64,
|
pub last_timestamp: u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(OctData, Debug)]
|
||||||
|
pub struct PtcKickPlayerArg {
|
||||||
|
pub reason_id: i32,
|
||||||
|
pub reason_str: String,
|
||||||
|
}
|
||||||
|
|
||||||
ret! {
|
ret! {
|
||||||
struct RpcLoginRet {
|
struct RpcLoginRet {
|
||||||
account_info: PropertyBlob,
|
account_info: PropertyBlob,
|
||||||
|
@ -352,6 +361,10 @@ ret! {
|
||||||
player_info: PropertyBlob,
|
player_info: PropertyBlob,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct RpcReenterWorldRet {
|
||||||
|
player_info: PropertyBlob,
|
||||||
|
}
|
||||||
|
|
||||||
struct RpcGetPlayerMailsRet {
|
struct RpcGetPlayerMailsRet {
|
||||||
mail_count: u32, // Actually List<CPlayerMailInfo>, TODO!
|
mail_count: u32, // Actually List<CPlayerMailInfo>, TODO!
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue