|  |  | 
 |  |  | import ChPyNetSendPack
 | 
 |  |  | import NetPackCommon
 | 
 |  |  | import AuctionHouse
 | 
 |  |  | import PlayerFairyDomain
 | 
 |  |  | import GameWorldItem
 | 
 |  |  | import PlayerAssist
 | 
 |  |  | 
 | 
 |  |  | import time
 | 
 |  |  | import datetime
 | 
 |  |  | import json
 | 
 |  |  | #---------------------------------------------------------------------
 | 
 |  |  | #全局变量
 | 
 |  |  | #---------------------------------------------------------------------
 | 
 |  |  | 
 |  |  |             SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict)
 | 
 |  |  |             return
 | 
 |  |  |         
 | 
 |  |  |     serverGroupID = GameWorld.GetServerGroupID()
 | 
 |  |  |     zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID)
 | 
 |  |  |     if not zoneIpyData:
 | 
 |  |  |         return
 | 
 |  |  |     zoneID = zoneIpyData.GetZoneID()
 | 
 |  |  |      | 
 |  |  |     # 本服缓存超时,发送跨服服务器查询
 | 
 |  |  |     playerID = curPlayer.GetPlayerID()
 | 
 |  |  |     CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, {"PlayerID":playerID, "MapID":mapID, "NPCIDList":npcIDList})
 | 
 |  |  |     dataMsg = {"PlayerID":playerID, "ZoneID":zoneID, "MapID":mapID, "NPCIDList":npcIDList}
 | 
 |  |  |     CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, dataMsg)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def ClientServerMsg_QueryNPCInfo(serverGroupID, msgData):
 | 
 |  |  |     ## 收到子服请求查看跨服地图NPC个数信息
 | 
 |  |  |     
 | 
 |  |  |     zoneID = msgData["ZoneID"]
 | 
 |  |  |     mapID = msgData["MapID"]
 | 
 |  |  |     zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(mapID, serverGroupID)
 | 
 |  |  |      | 
 |  |  |     zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, mapID)
 | 
 |  |  |     if not zoneIpyData:
 | 
 |  |  |         return
 | 
 |  |  |     realMapID = zoneIpyData.GetMapID()
 | 
 |  |  | 
 |  |  |     if callName == 'CrossNotify':
 | 
 |  |  |         serverGroupIDList, crossNotifyList = eval(resultName)
 | 
 |  |  |         PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == "DynamicLineMapStateChange":
 | 
 |  |  |         PlayerFB.OnCrossDynamicLineStateChange(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == "DynamicLineMapInitOK":
 | 
 |  |  |         PlayerFB.OnCrossDynamicMapReset(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == "CommMapServerInitOK":
 | 
 |  |  | 
 |  |  |         GameWorldProcess.UpdGlobalKillCount(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 缓存装备广播信息中的装备明细信息
 | 
 |  |  |     if callName == "NotifyEquipDetailInfo":
 | 
 |  |  |         GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     #生成仙盟红包
 | 
 |  |  |     if callName == "MapServer_CreatRedPacket":
 | 
 |  |  |         PlayerFamilyRedPacket.MapServer_CreatRedPacket(eval(resultName))
 | 
 |  |  | 
 |  |  |         AuctionHouse.MapServer_AuctionHouseLogic(curPlayer, eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 协助
 | 
 |  |  |     if callName == "PlayerAssist":
 | 
 |  |  |         curPlayer = None
 | 
 |  |  |         if srcPlayerID:
 | 
 |  |  |             curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |             if not curPlayer:
 | 
 |  |  |                 return
 | 
 |  |  |         PlayerAssist.MapServer_PlayerAssistLogic(curPlayer, eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == "TeamMemFuncData":
 | 
 |  |  |         PlayerTeam.MapServer_TeamMemFuncData(srcPlayerID, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #封魔坛结束
 | 
 |  |  |     if callName == "SealDemonOver":
 | 
 |  |  |         playerID, lineID, rank = eval(resultName)
 | 
 |  |  |         PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank)
 | 
 |  |  |         return
 | 
 |  |  | #    #封魔坛结束
 | 
 |  |  | #    if callName == "SealDemonOver":
 | 
 |  |  | #        playerID, lineID, rank = eval(resultName)
 | 
 |  |  | #        PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank)
 | 
 |  |  | #        return
 | 
 |  |  |     
 | 
 |  |  |     #查询副本功能线路人数
 | 
 |  |  |     if callName == "FBLinePlayerCnt":
 | 
 |  |  | 
 |  |  |     if callName =="HorsePetBossOver":
 | 
 |  |  |         PlayerHorsePetBoss.HorsePetBossKilled(int(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     #缥缈仙域事件出现
 | 
 |  |  |     if callName =="AddFairyDomainEvent":
 | 
 |  |  |         PlayerFairyDomain.AddFairyDomainEvent(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  | #---return分割线-----------------------------------------------------------------
 | 
 |  |  | 
 |