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