From 090d09182710271a2b55ccdb14a7576db09ec912 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 27 十二月 2018 15:43:19 +0800 Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发 上次匹配战斗未结算时,不能再发起匹配; 跨服增加验证登录玩家PK房间号合法性; 支持主动退出对战副本直接结算; --- ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py index 35f6bf2..c8d42a2 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py @@ -23,6 +23,7 @@ import PlayerControl import PlayerViewCache import ChPyNetSendPack +import IPY_PlayerDefine import NetPackCommon import PyGameData @@ -38,11 +39,27 @@ return (nameFormat%{"opname":opName, "sid":GameWorld.GetPlayerServerID(curPlayer)}).decode('gbk').encode(GameWorld.GetCharacterEncoding()) + playerName +def PlayerExitCrossServer(curPlayer): + ## 玩家退出跨服服务器 + + # 通知子服玩家退出跨服服务器 + playerID = curPlayer.GetPlayerID() + serverGroupID = PlayerControl.GetPlayerServerGroupID(curPlayer) + CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_ExitCrossServer, playerID, [serverGroupID]) + + # 设置非跨服状态,踢下线 + PlayerControl.SetCrossRealmState(curPlayer, 0) + curPlayer.Kick(0) + GameWorld.Log("PlayerExitCrossServer...serverGroupID=%s" % serverGroupID, playerID) + return + def CrossServerMsg_ExitCrossServer(msgData): ## 收到跨服服务器同步的玩家退出跨服服务器 playerID = msgData + GameWorld.Log("收到跨服服务器同步的玩家退出跨服服务器: playerID=%s" % playerID) curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID) if not curPlayer: + GameWorld.Log(" 退出跨服时本服玩家不在线!", playerID) return PlayerControl.SetCrossRealmState(curPlayer, 0) return -- Gitblit v1.8.0