ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -46,20 +46,16 @@
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 PlayerFBHelpBattle
import PlayerFamilyStore
import PlayerFamilySWRH
import GameWorldProcess
@@ -72,6 +68,10 @@
import PyDataManager
import PyGameData
import PlayerTalk
import PlayerStore
import CrossRealmPlayer
import CrossRealmMsg
import CrossRealmPK
import time
import datetime
@@ -413,23 +413,25 @@
    callName = pack.GetCallName()
    resultName = pack.GetResultName()                       #[queryid, 人气值, 物品ID]
    
    if callName == 'SendMail':
        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver = eval(resultName)
    if callName == "SendMail":
        title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail = eval(resultName)
        limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
        limitTime = limitTime.split(".")[0]
        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver)
        PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail)
        return
    
    if callName == 'SendMailBatch':
    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 == "SendMsgToClientServer":
        msgType, dataMsg, serverGroupIDList = eval(resultName)
        CrossRealmMsg.SendMsgToClientServer(msgType, dataMsg, serverGroupIDList)
        return
    
    if callName == 'MergeWorldNotify':
@@ -525,33 +527,35 @@
        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喇叭聊天
@@ -618,12 +622,17 @@
    
    # 世界boss状态
    if callName =="GameWorldBossState":
        GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick)
        GameWorldBoss.OnGameWorldBossStateChange(eval(resultName), tick)
        return
    
    # 仙盟归属boss信息同步
    if callName =="FamilyOwnerBossInfo":
        GameWorldBoss.MapServer_FamilyOwnerBossInfo(eval(resultName))
        return
    # 骑宠争夺伤血玩家同步
    if callName =="HorsePetRobBossHurtPlayer":
        GameWorldBoss.MapServer_HorsePetRobBossHurtPlayer(eval(resultName))
        return
    
    # 全局掉落CD
@@ -633,6 +642,10 @@
    # 全局击杀数换算掉落概率
    if callName =="GlobalDropRate":
        GameWorldProcess.UpdGlobalDropRate(eval(resultName))
        return
    # 全局击杀数统计
    if callName =="GlobalKillCount":
        GameWorldProcess.UpdGlobalKillCount(eval(resultName))
        return
    
    # 自定义商店全服限购次数清空
@@ -758,12 +771,24 @@
        return
    #通知神兽副本NPC刷新时间
    if callName =="DogzNPCTime":
        GameWorldBoss.Sync_DogzNPCRefreshTime(eval(resultName))
        PyGameData.g_dogzNPCRefreshTimeDict = eval(resultName)
        GameWorldBoss.Sync_DogzNPCRefreshTime()
        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)
@@ -806,21 +831,23 @@
        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 =="FBHelpBattle":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        if not curPlayer:
            return
        ret = PlayerFBHelpBattle.MapServer_FBHelpBattle(curPlayer, eval(resultName))
        if ret == None:
            return
        resultName = '%s' % ret
    # 战盟仓库
    if callName == "FamilyStore":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)