|  |  |  | 
|---|
|  |  |  | 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 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 战盟联赛 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 领地争夺战拔旗消耗 | 
|---|
|  |  |  | if callName =="ManorWarGetFlagCost": | 
|---|
|  |  |  | PlayerManorWar.ManorWarGetFlagCost(eval(resultName)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 领地争夺战获胜战盟 | 
|---|
|  |  |  | if callName =="ManorWarWinner": | 
|---|
|  |  |  | PlayerManorWar.DoMapServerManorWarWinner(eval(resultName)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 战盟副本boss开始、被击杀 | 
|---|
|  |  |  | if callName =="FamilyBossFBState": | 
|---|
|  |  |  | PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 世界boss状态 | 
|---|
|  |  |  | if callName =="GameWorldBossState": | 
|---|
|  |  |  | GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick) | 
|---|
|  |  |  | GameWorldBoss.OnGameWorldBossStateChange(eval(resultName), tick) | 
|---|
|  |  |  | 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": | 
|---|
|  |  |  | 
|---|
|  |  |  | if not curPlayer: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 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 == "TeamMemFuncData": | 
|---|
|  |  |  | 
|---|
|  |  |  | if callName =="AddBossRebornPoint": | 
|---|
|  |  |  | GameWorldBoss.AddBossRebornPoint(eval(resultName)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | #通知神兽副本NPC刷新时间 | 
|---|
|  |  |  | if callName =="DogzNPCTime": | 
|---|
|  |  |  | GameWorldBoss.Sync_DogzNPCRefreshTime(eval(resultName)) | 
|---|
|  |  |  | #多仙盟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) | 
|---|
|  |  |  |  | 
|---|