ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
@@ -46,7 +46,7 @@
# 获取玩家跨服服务器上的名字
def GetCrossPlayerName(curPlayer):
    # 通过游戏账号中的平台标志获取名称,目前为spid
    playerName = curPlayer.GetPlayerName()
    playerName = curPlayer.GetName()
    
    opName = ReadChConfig.GetPyMongoConfig("Merge", "OpName_%s_%s" % (GameWorld.GetPlayerPlatform(curPlayer), 
                                           GameWorld.GetPlayerServerSID(curPlayer)))
@@ -316,7 +316,6 @@
    sendPack.ItemDataSize = len(sendPack.ItemData)
    sendPack.PlusData = PlusData
    sendPack.PlusDataSize = len(sendPack.PlusData)
    sendPack.CrossPlayer = 1
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    return
@@ -352,5 +351,36 @@
    curPlayer.MapServer_QueryPlayerResult(0, 0, "CrossGiveMoney", msgInfo, len(msgInfo))
    return
def SetCrossPlayerAttrValue(msgInfo, tick):
    ## 设置跨服玩家属性值
    playerID, setType, setDict, isDelay = msgInfo
    if not PyGameData.g_crossSetPlayerAttr:
        GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick, tick)
    playerSetInfoList = PyGameData.g_crossSetPlayerAttr.get(playerID, [])
    playerSetInfoList.append([setType, setDict])
    PyGameData.g_crossSetPlayerAttr[playerID] = playerSetInfoList
    if not isDelay:
        __SendCrossServerSetPlayerAttr(0)
    return
def OnCrossProcess(tick):
    __SendCrossServerSetPlayerAttr(tick)
    return
def __SendCrossServerSetPlayerAttr(tick):
    if not PyGameData.g_crossSetPlayerAttr:
        return
    if tick:
        # 延迟10秒一次性同步,主要是比如OnDay的时候当多个玩家同时跨服时,减少同步次数,延迟统一发送
        if tick - GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick) < 10 * 1000:
            return
        GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick, tick)
    CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_SetPlayerAttrValue, PyGameData.g_crossSetPlayerAttr)
    PyGameData.g_crossSetPlayerAttr = {}
    return