From f47e3587c7a92e487300986380826cbba2683b19 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 24 十二月 2018 17:56:08 +0800 Subject: [PATCH] 5368 【后端】【1.4】聚魂功能开发(报错修复) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 80 ++++++++++++++++++++++++++++++---------- 1 files changed, 60 insertions(+), 20 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py index 4572e63..2f5eb69 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py @@ -60,6 +60,7 @@ #import PlayerFamilyTech import MergeChildMsg import PlayerFamilyRedPacket +import PlayerFBHelpBattle import PlayerFamilyStore import PlayerFamilySWRH import GameWorldProcess @@ -72,6 +73,10 @@ import PyDataManager import PyGameData import PlayerTalk +import PlayerStore +import CrossRealmPlayer +import CrossRealmMsg +import CrossRealmPK import time import datetime @@ -413,23 +418,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': @@ -532,26 +539,36 @@ return #跨服赛报名获得新账号 - if callName == 'MergeRegister': - PlayerMergeRegister.MergeWarRegisterNewAcc(srcPlayerID, eval(resultName), tick) - return + #if callName == 'MergeRegister': + # PlayerMergeRegister.MergeWarRegisterNewAcc(srcPlayerID, eval(resultName), tick) + # return #跨服王者争霸 if callName == 'MergeKingFB': GameWorldMergeKing.MapServer_MergeKingFB(eval(resultName)) return - #跨服匹配PK - if callName == 'MergePKOver': - GameWorldMergePK.MapServer_MergePKOver(eval(resultName)) + #跨服匹配PK战斗结算 + if callName == "CrossPKOver": + CrossRealmPK.MapServer_MergePKOver(eval(resultName)) + return + + #跨服匹配房间开启 + if callName == "CrossPKRoomOpen": + CrossRealmPK.MapServer_CrossPKRoomOpen(eval(resultName)) 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 + + #跨服注册结果 + if callName == "CrossRealmReg": + CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick) return #py喇叭聊天 @@ -618,7 +635,7 @@ # 世界boss状态 if callName =="GameWorldBossState": - GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick) + GameWorldBoss.OnGameWorldBossStateChange(eval(resultName), tick) return # 仙盟归属boss信息同步 @@ -767,12 +784,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) @@ -830,6 +859,17 @@ # 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) -- Gitblit v1.8.0