|  |  | 
 |  |  | import PlayerBillboard
 | 
 |  |  | import PlayerExam
 | 
 |  |  | import PlayerControl
 | 
 |  |  | import PlayerRecall
 | 
 |  |  | import PlayerFamilyAction
 | 
 |  |  | import PlayerUniversalGameRec
 | 
 |  |  | import PlayerFamily
 | 
 |  |  | import GameWorldOpenServerCampaign
 | 
 |  |  | import GameWorldMixServerCampaign
 | 
 |  |  | import ShareDefine
 | 
 |  |  | import GameDataRecord
 | 
 |  |  | import GameWorldShopItem
 | 
 |  |  | import PlayerMergeRegister
 | 
 |  |  | import PlayerCompensation
 | 
 |  |  | import PlayerFB
 | 
 |  |  | import UpdatePlayerName
 | 
 |  |  | import PlayerFamilyBoss
 | 
 |  |  | import PlayerManorWar
 | 
 |  |  | import GameWorldBoss
 | 
 |  |  | import MergeBroadcast
 | 
 |  |  | import GameWorldFamilyWar
 | 
 |  |  | import GameWorldMergeKing
 | 
 |  |  | import GameWorldMergePK
 | 
 |  |  | #import PlayerFamilyTech
 | 
 |  |  | import MergeChildMsg
 | 
 |  |  | import PlayerFamilyRedPacket
 | 
 |  |  | import PlayerFamilyStore
 | 
 |  |  | import PlayerFBHelpBattle
 | 
 |  |  | import PlayerHorsePetBoss
 | 
 |  |  | #import PlayerFamilyStore
 | 
 |  |  | import PlayerFamilySWRH
 | 
 |  |  | import GameWorldProcess
 | 
 |  |  | import PlayerLVAward
 | 
 |  |  | 
 |  |  | import PyDataManager
 | 
 |  |  | import PyGameData
 | 
 |  |  | import PlayerTalk
 | 
 |  |  | import PlayerStore
 | 
 |  |  | import CrossRealmPlayer
 | 
 |  |  | import CrossRealmMsg
 | 
 |  |  | import CrossRealmPK
 | 
 |  |  | import ChPyNetSendPack
 | 
 |  |  | import NetPackCommon
 | 
 |  |  | import AuctionHouse
 | 
 |  |  | import PlayerFairyDomain
 | 
 |  |  | import GameWorldItem
 | 
 |  |  | import PlayerAssist
 | 
 |  |  | 
 | 
 |  |  | import time
 | 
 |  |  | import datetime
 | 
 |  |  | import json
 | 
 |  |  | #---------------------------------------------------------------------
 | 
 |  |  | #全局变量
 | 
 |  |  | #---------------------------------------------------------------------
 | 
 |  |  | 
 |  |  |         return
 | 
 |  |  |     # 查询地图NPC数量
 | 
 |  |  |     elif queryType == ChConfig.queryType_NPCCnt:
 | 
 |  |  |         __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD)
 | 
 |  |  |         __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick)
 | 
 |  |  |         return
 | 
 |  |  |     else:
 | 
 |  |  |         GameWorld.ErrLog('unKnow queryType = %s' % (queryType))
 | 
 |  |  | 
 |  |  | #  @param queryCallName: 请求回调名
 | 
 |  |  | #  @param sendCMD: 请求的命令 根据请求类型和请求命令来决定最终操作
 | 
 |  |  | #  @return None
 | 
 |  |  | def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD):
 | 
 |  |  | def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick):
 | 
 |  |  |     playerManager = GameWorld.GetPlayerManager()
 | 
 |  |  |     try:
 | 
 |  |  |         mapInfo = eval(sendCMD)
 | 
 |  |  | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     tagMapID = mapInfo[0]
 | 
 |  |  |     npcIDList = mapInfo[2]
 | 
 |  |  |     # 本服查询跨服地图怪物数
 | 
 |  |  |     if tagMapID in ChConfig.Def_CrossMapIDList and not GameWorld.IsCrossServer():
 | 
 |  |  |         __QueryCrossServerMapNPCCntInfo(curPlayer, tagMapID, npcIDList, tick)
 | 
 |  |  |         return
 | 
 |  |  |     playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), ChConfig.queryType_NPCCnt, 0, tagMapID,
 | 
 |  |  |                 queryCallName, sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def __QueryCrossServerMapNPCCntInfo(curPlayer, mapID, npcIDList, tick):
 | 
 |  |  |     ## 查询跨服地图NPC个数信息
 | 
 |  |  |     if mapID in PyGameData.g_crossMapNPCInfo:
 | 
 |  |  |         infoTick, mapNPCInfoDict = PyGameData.g_crossMapNPCInfo[mapID]
 | 
 |  |  |         if tick - infoTick < 60 * 1000:
 | 
 |  |  |             #GameWorld.DebugLog("直接同步本服缓存的跨服地图NPC信息")
 | 
 |  |  |             SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict)
 | 
 |  |  |             return
 | 
 |  |  |          | 
 |  |  |     serverGroupID = GameWorld.GetServerGroupID()
 | 
 |  |  |     zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID)
 | 
 |  |  |     if not zoneIpyData:
 | 
 |  |  |         return
 | 
 |  |  |     zoneID = zoneIpyData.GetZoneID()
 | 
 |  |  |      | 
 |  |  |     # 本服缓存超时,发送跨服服务器查询
 | 
 |  |  |     playerID = curPlayer.GetPlayerID()
 | 
 |  |  |     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(zoneID, mapID)
 | 
 |  |  |     if not zoneIpyData:
 | 
 |  |  |         return
 | 
 |  |  |     realMapID = zoneIpyData.GetMapID()
 | 
 |  |  |     copyMapID = zoneIpyData.GetCopyMapID()
 | 
 |  |  |      | 
 |  |  |     sendCMD = {"ServerGroupID":serverGroupID, "CopyMapID":copyMapID}
 | 
 |  |  |     sendCMD.update(msgData)
 | 
 |  |  |     sendCMD = str(sendCMD)
 | 
 |  |  |     GameWorld.GetPlayerManager().MapServer_QueryPlayer(0, 0, 0, realMapID, "NPCCntCross", sendCMD, len(sendCMD))
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def CrossServerMsg_NPCInfoRet(msgData, tick):
 | 
 |  |  |     ## 收到跨服服务器同步的地图NPC信息
 | 
 |  |  |      | 
 |  |  |     mapID = msgData["MapID"]
 | 
 |  |  |     playerID = msgData["PlayerID"]
 | 
 |  |  |     npcIDList = msgData["NPCIDList"]
 | 
 |  |  |     mapNPCInfoDict = msgData["Result"]
 | 
 |  |  |     PyGameData.g_crossMapNPCInfo[mapID] = [tick, mapNPCInfoDict]
 | 
 |  |  |     curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
 | 
 |  |  |     if curPlayer:
 | 
 |  |  |         SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict)
 | 
 |  |  |          | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict):
 | 
 |  |  |     ## 同步给玩家跨服地图NPC信息
 | 
 |  |  |      | 
 |  |  |     npcInfoPack = ChPyNetSendPack.tagMCNPCCntList()
 | 
 |  |  |     npcInfoPack.Clear()
 | 
 |  |  |     npcInfoPack.MapID = mapID
 | 
 |  |  |     npcInfoPack.NPCInfoList = []
 | 
 |  |  |      | 
 |  |  |     for npcID in npcIDList:
 | 
 |  |  |         npcInfo = ChPyNetSendPack.tagMCNPCCntInfo()
 | 
 |  |  |         npcInfo.Clear()
 | 
 |  |  |         npcInfo.NPCID = npcID
 | 
 |  |  |         npcInfo.Cnt = mapNPCInfoDict.get(npcID, 0)
 | 
 |  |  |         npcInfoPack.NPCInfoList.append(npcInfo)
 | 
 |  |  |          | 
 |  |  |     npcInfoPack.NPCInfoCnt = len(npcInfoPack.NPCInfoList)
 | 
 |  |  |     NetPackCommon.SendFakePack(curPlayer, npcInfoPack)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | ## 获得家族属性(等级,人数)获得自己所在家族的属性
 | 
 |  |  | #  @param curPlayer 请求的玩家
 | 
 |  |  | 
 |  |  |     resultName = pack.GetResultName()                       #[queryid, 人气值, 物品ID]
 | 
 |  |  |     
 | 
 |  |  |     if callName == "SendMail":
 | 
 |  |  |         title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail = eval(resultName)
 | 
 |  |  |         title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
 | 
 |  |  |         limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
 | 
 |  |  |         limitTime = limitTime.split(".")[0]
 | 
 |  |  |         PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail)
 | 
 |  |  |         PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == "SendMailBatch":
 | 
 |  |  |         PlayerCompensation.SendPersonalItemMailBatch(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == 'SendMergerChildMsg':
 | 
 |  |  |         operType, dataMsg = eval(resultName)
 | 
 |  |  |         MergeChildMsg.SendMergerChildToCenterStringData(operType, dataMsg)
 | 
 |  |  |         # 如果是恢复跨服PK连胜的,先记录恢复的玩家ID, 等待成功后同步最新结果给玩家
 | 
 |  |  |         if operType == ChConfig.Def_RecoverMergePKWin:
 | 
 |  |  |             GameWorldMergePK.Add_RecoverMergePKWinPlayer(srcPlayerID)
 | 
 |  |  |     if callName == "SendMsgToCrossServer":
 | 
 |  |  |         msgType, dataMsg = eval(resultName)
 | 
 |  |  |         CrossRealmMsg.SendMsgToCrossServer(msgType, dataMsg)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == 'MergeWorldNotify':
 | 
 |  |  |         country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo = eval(resultName)
 | 
 |  |  |         PlayerControl.MergeWorldNotify(country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo, 1)
 | 
 |  |  |     if callName == "SendMsgToClientServer":
 | 
 |  |  |         msgType, dataMsg, serverGroupIDList = eval(resultName)
 | 
 |  |  |         CrossRealmMsg.SendMsgToClientServer(msgType, dataMsg, serverGroupIDList)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == "SetCrossPlayerAttrValue":
 | 
 |  |  |         CrossRealmPlayer.SetCrossPlayerAttrValue(eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     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":
 | 
 |  |  | 
 |  |  |         PlayerFamily.MapServer_PyAddFamilyInfoValue(curPlayer, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == 'UpdRechargeRankBillboard':     #地图服务器更新玩家通知特惠累计充值排行榜
 | 
 |  |  |         PlayerBillboard.MapServer_UpdateRechargeRankBillboard(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == 'UpdCostRankBillboard':     #地图服务器更新玩家通知特惠累计消费排行榜
 | 
 |  |  |         PlayerBillboard.MapServer_UpdateCostRankBillboard(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == 'UpdateTotalRechargeBillboard':    #地图服务器更新玩家充值总数排行榜
 | 
 |  |  |         PlayerBillboard.MapServer_UpdateTotalRechargeBillboard(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == 'UpdMSRechargeRankBillboard':    #地图服务器更新玩家合服活动充值总数排行榜
 | 
 |  |  |         PlayerBillboard.MapServer_UpdMSRechargeRankBillboard(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == 'UpdMSFamilyKillBossBillboard':    #地图服务器更新玩家合服活动战盟击杀boss总数排行榜
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         GameWorldMixServerCampaign.UpdMixCampaignFamiliyBossCnt(curPlayer, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == 'ExitExam': #地图服务器玩家退出答题
 | 
 |  |  | 
 |  |  |         msg, msgList = eval(resultName)
 | 
 |  |  |         
 | 
 |  |  |         PlayerControl.TeamNotify(teamID, msg, msgList)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     if callName == 'ReveiveRecallAward':
 | 
 |  |  |         #召回奖励领取情况
 | 
 |  |  |         PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if callName == "NotifyTruckDestroy":
 | 
 |  |  | 
 |  |  |         GameDataRecord.ChangeCoinCnt(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #跨服广播子服
 | 
 |  |  |     if callName == 'SendBroadcastMergeClient':
 | 
 |  |  |         operType, mapID, dataDict, isRepeat = eval(resultName)
 | 
 |  |  |         MergeBroadcast.SendBroadcastMerge(operType, mapID, dataDict, isRepeat)
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     #跨服赛报名获得新账号
 | 
 |  |  |     if callName == 'MergeRegister':
 | 
 |  |  |         PlayerMergeRegister.MergeWarRegisterNewAcc(srcPlayerID, eval(resultName), tick)
 | 
 |  |  |         return     | 
 |  |  |      | 
 |  |  |     #跨服王者争霸
 | 
 |  |  |     if callName == 'MergeKingFB':
 | 
 |  |  |         GameWorldMergeKing.MapServer_MergeKingFB(eval(resultName))
 | 
 |  |  |     #跨服匹配PK战斗结算
 | 
 |  |  |     if callName == "CrossPKOver":
 | 
 |  |  |         CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #跨服匹配PK
 | 
 |  |  |     if callName == 'MergePKOver':
 | 
 |  |  |         GameWorldMergePK.MapServer_MergePKOver(eval(resultName))
 | 
 |  |  |     #跨服匹配房间开启
 | 
 |  |  |     if callName == "CrossPKRoomOpen":
 | 
 |  |  |         CrossRealmPK.MapServer_CrossPKRoomOpen(eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #跨服匹配PK取消匹配
 | 
 |  |  |     if callName == 'MergePKCancel':
 | 
 |  |  |     if callName == "CrossRealmPKCancel":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         GameWorldMergePK.SendCancelMergePKMatch(curPlayer, resultName)
 | 
 |  |  |         CrossRealmPK.SendCancelCrossRealmPKMatch(curPlayer, resultName)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     #跨服PK请求玩家当前排名
 | 
 |  |  |     if callName == "CrossPKSeasonOrder":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         CrossRealmPK.MapServer_QueryCrossPKSeasonOrder(curPlayer, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     #跨服注册结果
 | 
 |  |  |     if callName == "CrossRealmReg":
 | 
 |  |  |         CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #py喇叭聊天
 | 
 |  |  | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         PlayerTalk.ChatPYSpeaker(curPlayer, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     #刷新本服角色信息
 | 
 |  |  |     if callName == 'RefreshMainServerRole':
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         ChPlayer.DoRefreshMainServerRole(curPlayer)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 战盟联赛
 | 
 |  |  | 
 |  |  |             elif notifyType == 2:
 | 
 |  |  |                 PlayerUniversalGameRec.SendUniversalGameRecInfo(None, recType)
 | 
 |  |  |                 
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     # 领地争夺战拔旗消耗
 | 
 |  |  |     if callName =="ManorWarGetFlagCost":
 | 
 |  |  |         PlayerManorWar.ManorWarGetFlagCost(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     # 领地争夺战获胜战盟
 | 
 |  |  |     if callName =="ManorWarWinner":
 | 
 |  |  |         PlayerManorWar.DoMapServerManorWarWinner(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 战盟副本boss开始、被击杀
 | 
 |  |  | 
 |  |  |         GameWorldProcess.UpdGlobalKillCount(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 自定义商店全服限购次数清空
 | 
 |  |  |     if callName =="ShopItemClearBuyCnt":
 | 
 |  |  |         shopID = eval(resultName)[0]
 | 
 |  |  |         GameWorldShopItem.DoShopItemClearBuyCnt(shopID)
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     # 新手指导员天数
 | 
 |  |  |     if callName =="FreshmanGuiderDay":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |          | 
 |  |  |         guiderDay = eval(resultName)[0]
 | 
 |  |  |         PlayerControl.SetFreshmanGuiderDay(curPlayer, guiderDay)
 | 
 |  |  |     # 缓存装备广播信息中的装备明细信息
 | 
 |  |  |     if callName == "NotifyEquipDetailInfo":
 | 
 |  |  |         GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     #生成仙盟红包
 | 
 |  |  |     if callName == 'CreatFamilyRedPacket':
 | 
 |  |  |         PlayerFamilyRedPacket.CreatFamilyRedPacket(eval(resultName))
 | 
 |  |  |     if callName == "MapServer_CreatRedPacket":
 | 
 |  |  |         PlayerFamilyRedPacket.MapServer_CreatRedPacket(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     #发仙盟红包
 | 
 |  |  |     if callName == 'SendFamilyRedPacket':
 | 
 |  |  | 
 |  |  |     if callName =="DuJieFBOver":
 | 
 |  |  |         PlayerDuJie.DoDuJieFBOver(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     #境界提升全服buff
 | 
 |  |  |     if callName =="RealmUpAddBuff":
 | 
 |  |  |         PlayerDuJie.DoRealmUpAddBuff(resultName)
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 组队副本队长请求进入询问结果
 | 
 |  |  |     if callName == "EnterFBTeamAsk":
 | 
 |  |  | 
 |  |  |         PlayerBourse.OnGivePlayerBourseGainsResult(curPlayer, eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     # 拍卖行
 | 
 |  |  |     if callName == "AuctionHouse":
 | 
 |  |  |         curPlayer = None
 | 
 |  |  |         if srcPlayerID:
 | 
 |  |  |             curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |             if not curPlayer:
 | 
 |  |  |                 return
 | 
 |  |  |         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 =="AddBossRebornPoint":
 | 
 |  |  |         GameWorldBoss.AddBossRebornPoint(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     #通知神兽副本NPC刷新时间
 | 
 |  |  |     if callName =="DogzNPCTime":
 | 
 |  |  |         PyGameData.g_dogzNPCRefreshTimeDict = eval(resultName)
 | 
 |  |  |         GameWorldBoss.Sync_DogzNPCRefreshTime()
 | 
 |  |  |     #多仙盟BOSS结束
 | 
 |  |  |     if callName =="AllFamilyBossOver":
 | 
 |  |  |         PlayerFamilyBoss.AllFamilyBossKilled()
 | 
 |  |  |         return
 | 
 |  |  |     #骑宠BOSS结束
 | 
 |  |  |     if callName =="HorsePetBossOver":
 | 
 |  |  |         PlayerHorsePetBoss.HorsePetBossKilled(int(resultName))
 | 
 |  |  |         return
 | 
 |  |  |     #缥缈仙域事件出现
 | 
 |  |  |     if callName =="AddFairyDomainEvent":
 | 
 |  |  |         PlayerFairyDomain.AddFairyDomainEvent(eval(resultName))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  | #---return分割线-----------------------------------------------------------------
 | 
 |  |  | 
 | 
 |  |  |     
 | 
 |  |  | #---有可能return-----------------------------------------------------------------
 | 
 |  |  |     #商城全服购买限制
 | 
 |  |  |     if callName == "GetStoreServerBuyCnt":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         ret = PlayerStore.DoStoreServerBuyQueryResult(curPlayer, eval(resultName))
 | 
 |  |  |         if ret == None:
 | 
 |  |  |             resultName = ''
 | 
 |  |  |         else:
 | 
 |  |  |             resultName = '%s' % ret
 | 
 |  |  |          | 
 |  |  |     #玩家等级奖励
 | 
 |  |  |     if callName == "GetPlayerLVAward":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  | 
 |  |  |             return
 | 
 |  |  |         resultName = '%s' % ret
 | 
 |  |  |         
 | 
 |  |  |     if callName == 'SendInviteCode':
 | 
 |  |  |         #邀请码验证回复
 | 
 |  |  |         resultName = PlayerRecall.PlayerRecall_InviteCode(srcPlayerID, pack.GetQueryID())
 | 
 |  |  |          | 
 |  |  |     if callName == 'MixServerCampaignAward':
 | 
 |  |  |         #可否领取合服活动奖励
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         resultName = '%s' % GameWorldMixServerCampaign.CanGiveMixCampaignAward(curPlayer, eval(resultName))
 | 
 |  |  |      | 
 |  |  |     if callName == 'OpenServerCampaignAward':
 | 
 |  |  |         #可否领取开服活动奖励
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         resultName = '%s' % GameWorldOpenServerCampaign.CanGiveCampaignAward(curPlayer, eval(resultName))
 | 
 |  |  |         
 | 
 |  |  |     # 跨服PK奖励
 | 
 |  |  |     if callName == 'MergePKAward':
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         resultName = '%s' % GameWorldMergePK.MapServer_QueryMergePKAward(curPlayer, eval(resultName))
 | 
 |  |  |          | 
 |  |  |     # 跨服王者争霸
 | 
 |  |  |     if callName == 'MergeKing':
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         resultName = '%s' % GameWorldMergeKing.MapServer_MergeKingQuery(curPlayer, eval(resultName))
 | 
 |  |  |     
 | 
 |  |  |     # 玩家自身战盟科技等级提升, 改为地图直接处理, 暂屏蔽
 | 
 |  |  | #    if callName == 'PlayerFamilyTechLVUP':
 | 
 |  |  | #        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  | #        resultName = '%s' % PlayerFamilyTech.OnQuery_PlayerFamilyTechLVUP(curPlayer, eval(resultName))
 | 
 |  |  |     
 | 
 |  |  |     # 战盟仓库
 | 
 |  |  |     if callName == "FamilyStore":
 | 
 |  |  |      | 
 |  |  |     # 副本助战
 | 
 |  |  |     if callName =="FBHelpBattle":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         if not curPlayer:
 | 
 |  |  |             return
 | 
 |  |  |         resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
 | 
 |  |  |      | 
 |  |  |     # 自定义商店物品
 | 
 |  |  |     if callName == "ShopItem":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         resultName = '%s' % GameWorldShopItem.DoShopItemQueryResult(curPlayer, eval(resultName))
 | 
 |  |  |       | 
 |  |  |     # 玩家天梯奖励
 | 
 |  |  |     if callName == "HighLadderReward":
 | 
 |  |  |         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |         import HighLadder
 | 
 |  |  |         needResult, resultName = HighLadder.MapServer_HighLadderReward(curPlayer, eval(resultName))
 | 
 |  |  |         if not needResult:
 | 
 |  |  |         ret = PlayerFBHelpBattle.MapServer_FBHelpBattle(curPlayer, eval(resultName))
 | 
 |  |  |         if ret == None:
 | 
 |  |  |             return
 | 
 |  |  |         resultName = '%s' % ret
 | 
 |  |  |          | 
 |  |  | #    # 战盟仓库
 | 
 |  |  | #    if callName == "FamilyStore":
 | 
 |  |  | #        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  | #        if not curPlayer:
 | 
 |  |  | #            return
 | 
 |  |  | #        resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
 | 
 |  |  |         
 | 
 |  |  |     srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
 | 
 |  |  |     
 |