ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
@@ -71,16 +71,47 @@
    CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_Notify, crossNotifyList, serverGroupIDList)
    return
def CrossNotifyEx(serverGroupIDList, crossNotifyList):
    ''' 跨服广播信息提示,支持同步多条,同时也建议多条一起同步
    @param serverGroupIDList: 需要同步到的目标服务器组ID列表
    @param crossNotifyList: 信息提示列表,[[notifyType, paramsList, 自定义扩展信息], ...]  notifyType 如 ShareDefine.CrossNotify_CrossAct
    '''
    CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_Notify, crossNotifyList, serverGroupIDList)
    return
def CrossServerMsg_Notify(crossNotifyList):
    GameWorld.DebugLog("收到跨服同步的广播提示内容: count=%s" % len(crossNotifyList))
    for notifyInfo in crossNotifyList:
        if "Type" not in notifyInfo or "Params" not in notifyInfo:
        if isinstance(notifyInfo, dict):
            if "Type" not in notifyInfo or "Params" not in notifyInfo:
                continue
            notifyType = notifyInfo["Type"]
            params = notifyInfo["Params"]
        elif isinstance(notifyInfo, list) and len(notifyInfo) >= 2:
            notifyType, params = notifyInfo[:2]
        else:
            continue
        notifyType = notifyInfo["Type"]
        params = notifyInfo["Params"]
        if notifyType == ShareDefine.CrossNotify_World:
            country, msgMark, msgParamList = params
            WorldNotify(country, msgMark, msgParamList)
        elif notifyType == ShareDefine.CrossNotify_CrossAct:
            country, msgMark, msgParamList = params
            serverIDRangeList = notifyInfo[2]
            playerManager = GameWorld.GetPlayerManager()
            for i in xrange(playerManager.GetPlayerCount()):
                curPlayer = playerManager.GetPlayerByIndex(i)
                if curPlayer == None or not curPlayer.GetInitOK() or GetIsTJG(curPlayer):
                    continue
                if not serverIDRangeList:
                    NotifyCode(curPlayer, msgMark, msgParamList)
                    return
                playerServerID = GameWorld.GetPlayerServerID(curPlayer)
                for serverIDA, serverIDB in serverIDRangeList:
                    if serverIDA <= playerServerID <= serverIDB:
                        NotifyCode(curPlayer, msgMark, msgParamList)
                        break
        elif notifyType == ShareDefine.CrossNotify_Family:
            familyID, msgMark, msgParamList = params
            FamilyNotify(familyID, msgMark, msgParamList)