From c65290e4ebcbecf93fbde371947ff99feab7d29d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 26 六月 2024 14:41:51 +0800
Subject: [PATCH] 10191 【越南】【主干】【港台】新增多种培养材料副本

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py |  519 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 378 insertions(+), 141 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 4572e63..1de01c2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -34,33 +34,28 @@
 import ChConfig
 import GMCommon
 import DirtyList
+import CrossBillboard
 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 PlayerFamilyZhenfa
 import PlayerFamilyRedPacket
-import PlayerFamilyStore
+import PlayerFBHelpBattle
+import PlayerHorsePetBoss
+#import PlayerFamilyStore
 import PlayerFamilySWRH
 import GameWorldProcess
 import PlayerLVAward
@@ -72,9 +67,32 @@
 import PyDataManager
 import PyGameData
 import PlayerTalk
+import PlayerStore
+import CrossYaomoBoss
+import CrossRealmPlayer
+import CrossRealmMsg
+import CrossRealmPK
+import CrossChampionship
+import CrossBattlefield
+import CrossFamilyFlagwar
+import CrossActAllRecharge
+import PlayerActBossTrial
+import PlayerActFamilyCTGAssist
+import ChPyNetSendPack
+import NetPackCommon
+import AuctionHouse
+import PlayerFairyDomain
+import GameWorldSkyTower
+import GameWorldMineArea
+import PlayerTurnFight
+import GameWorldArena
+import GameWorldItem
+import PlayerAssist
+import PlayerLove
 
 import time
 import datetime
+import json
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -258,7 +276,7 @@
         return
     # 查询地图NPC数量
     elif queryType == ChConfig.queryType_NPCCnt:
-        __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD)
+        __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick)
         return
     else:
         GameWorld.ErrLog('unKnow queryType = %s' % (queryType))
@@ -299,7 +317,7 @@
 #  @param queryCallName: 请求回调名
 #  @param sendCMD: 请求的命令 根据请求类型和请求命令来决定最终操作
 #  @return None
-def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD):
+def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick):
     playerManager = GameWorld.GetPlayerManager()
     try:
         mapInfo = eval(sendCMD)
@@ -311,9 +329,87 @@
         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 请求的玩家
@@ -413,28 +509,55 @@
     callName = pack.GetCallName()
     resultName = pack.GetResultName()                       #[queryid, 人气值, 物品ID]
     
-    if callName == 'SendMail':
-        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver = eval(resultName)
-        limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
-        limitTime = limitTime.split(".")[0]
-        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver)
+    if callName == "PlayerRealLoginOK":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        loginMsg = eval(resultName)
+        ChPlayer.DoPlayerRealLoginOK(curPlayer, loginMsg, tick)
         return
     
-    if callName == 'SendMailBatch':
+    if callName == "SendMail":
+        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource, crossMail = eval(resultName)
+        limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
+        limitTime = limitTime.split(".")[0]
+        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource, crossMail=crossMail)
+        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 == "SendEntireMail":
+        mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
+        PlayerCompensation.SendEntireMail(mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource)
         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 == "SendMsgToCrossServer":
+        msgType, dataMsg = eval(resultName)
+        CrossRealmMsg.SendMsgToCrossServer(msgType, dataMsg)
+        return
+    
+    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":
@@ -446,6 +569,10 @@
     if callName == "UpdateBillboard":     #地图服务器更新排行榜
         PlayerBillboard.MapServer_UpdateBillboard(eval(resultName), tick)
         return
+
+    if callName == "UpdateCrossBillboard":     #地图服务器更新跨服排行榜
+        CrossBillboard.MapServer_UpdateCrossBillboard(eval(resultName))
+        return
     
     if callName == 'PyAddFamilyInfoValue':     #地图服务器增加战盟信息值
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
@@ -454,31 +581,19 @@
         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))
+    if callName == 'ExitExam': #地图服务器玩家退出答题
+        PlayerExam.MapServer_ExitAction(srcPlayerID)
         return
     
-    if callName == 'UpdMSFamilyKillBossBillboard':    #地图服务器更新玩家合服活动战盟击杀boss总数排行榜
+    if callName == 'FuncOpen':
         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
         if not curPlayer:
             return
-        GameWorldMixServerCampaign.UpdMixCampaignFamiliyBossCnt(curPlayer, eval(resultName))
-        return
-    
-    if callName == 'ExitExam': #地图服务器玩家退出答题
-        PlayerExam.MapServer_ExitAction(srcPlayerID)
+        PlayerControl.DoFuncOpenLogic(curPlayer, eval(resultName))
         return
     
     if  callName == 'TeamNotify':
@@ -487,11 +602,6 @@
         msg, msgList = eval(resultName)
         
         PlayerControl.TeamNotify(teamID, msg, msgList)
-        return
-    
-    if callName == 'ReveiveRecallAward':
-        #召回奖励领取情况
-        PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName)
         return
     
     if callName == "NotifyTruckDestroy":
@@ -525,33 +635,71 @@
         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 == "CrossChampionshipPKOver":
+        CrossChampionship.MapServer_CrossChampionshipPKOver(eval(resultName), tick)
         return
     
-    #跨服匹配PK
-    if callName == 'MergePKOver':
-        GameWorldMergePK.MapServer_MergePKOver(eval(resultName))
+    #跨服匹配PK战斗结算
+    if callName == "CrossPKOver":
+        CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick)
+        return
+    
+    #跨服匹配房间开启
+    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
+    
+    # 跨服战场结算
+    if callName =="CrossBattlefieldOver":
+        CrossBattlefield.MapServer_CrossBattlefieldOver(eval(resultName))
+        return
+    
+    # 跨服仙盟夺旗战/逐鹿万界 结算
+    if callName =="CrossFamilyFlagwarOver":
+        CrossFamilyFlagwar.MapServer_CrossFamilyFlagwarOver(eval(resultName))
+        return
+    
+    # 跨服妖魔boss伤害结算
+    if callName =="CrossYaomoBossHurtInfo":
+        CrossYaomoBoss.MapServer_CrossYaomoBossHurtInfo(eval(resultName))
+        return
+    
+    # 跨服全民充值
+    if callName == "CrossActAllRecharge":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        CrossActAllRecharge.MapServer_CrossActAllRecharge(curPlayer, eval(resultName))
+        return
+    
+    # Boss历练
+    if callName == "BossTrial":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        PlayerActBossTrial.MapServer_BossTrial(curPlayer, eval(resultName))
         return
     
     #py喇叭聊天
@@ -560,6 +708,14 @@
         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
     
     # 战盟联赛
@@ -590,22 +746,6 @@
                 
         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)
-        return
-    
-
     # 击杀boss掉落好物品
     if callName =="BossDropGoodItem":
         GameWorldBoss.OnKillBossDropGoodItem(eval(resultName), tick)
@@ -618,7 +758,7 @@
     
     # 世界boss状态
     if callName =="GameWorldBossState":
-        GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick)
+        GameWorldBoss.OnGameWorldBossStateChange(eval(resultName), tick)
         return
     
     # 仙盟归属boss信息同步
@@ -644,25 +784,14 @@
         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':
@@ -686,6 +815,10 @@
     if callName =="DuJieFBOver":
         PlayerDuJie.DoDuJieFBOver(eval(resultName))
         return
+    #境界提升全服buff
+    if callName =="RealmUpAddBuff":
+        PlayerDuJie.DoRealmUpAddBuff(resultName)
+        return
     
     # 组队副本队长请求进入询问结果
     if callName == "EnterFBTeamAsk":
@@ -705,15 +838,35 @@
         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":
@@ -765,14 +918,50 @@
     if callName =="AddBossRebornPoint":
         GameWorldBoss.AddBossRebornPoint(eval(resultName))
         return
-    #通知神兽副本NPC刷新时间
-    if callName =="DogzNPCTime":
-        GameWorldBoss.Sync_DogzNPCRefreshTime(eval(resultName))
+    #多仙盟BOSS结束
+    if callName =="AllFamilyBossOver":
+        PlayerFamilyBoss.AllFamilyBossKilled()
         return
+    #仙盟阵法
+    if callName =="FamilyZhenfa":
+        curPlayer = None
+        if srcPlayerID:
+            curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+            if not curPlayer:
+                return
+        PlayerFamilyZhenfa.MapServer_FamilyZhenfa(curPlayer, eval(resultName))
+        return
+    #仙盟传功
+    if callName =="FamilyChuangong":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        PlayerFamily.MapServer_FamilyChuangong(curPlayer, eval(resultName))
+        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)
@@ -801,55 +990,103 @@
             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 == "Arena":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldArena.MapServer_Arena(curPlayer, eval(resultName))
+        resultName = '%s' % ret if ret != None else '' # 需要重置间隔,每次都回复
         
+    # 仙盟充值互助
+    if callName == "FamilyCTGAssist":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerActFamilyCTGAssist.MapServer_FamilyCTGAssist(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 仙盟boss
+    if callName == "FamilyBoss":
+        ret = PlayerFamilyBoss.MapServer_FamilyBoss(eval(resultName), tick)
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 情缘
+    if callName == "Love":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerLove.MapServer_Love(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 回合制
+    if callName == "TurnFight":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = PlayerTurnFight.MapServer_TurnFight(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 福地
+    if callName == "MineArea":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldMineArea.MapServer_MineArea(curPlayer, eval(resultName))
+        if ret == None:
+            return
+        resultName = '%s' % ret
+        
+    # 天星塔
+    if callName == "SkyTower":
+        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+        if not curPlayer:
+            return
+        ret = GameWorldSkyTower.MapServer_SkyTowerInfo(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)
+    
+    if not srcPlayerID:
+        return
+    
     srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
     
     if not srcPlayer:

--
Gitblit v1.8.0