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