From bb652eeae4e39ee66f342975a2804ae305f0f969 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 11 十二月 2020 10:26:41 +0800 Subject: [PATCH] 4869 【主干】【长尾】【BT】七日巡礼重置逻辑优化;运营活动所处天索引逻辑优化; --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 81 ++++++++++++++++++++++++++++++++-------- 1 files changed, 64 insertions(+), 17 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py index ffb1c07..42df784 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py @@ -72,9 +72,15 @@ import ChPyNetSendPack import NetPackCommon import AuctionHouse +import PlayerFairyDomain +import GameWorldSkyTower +import GameWorldArena +import GameWorldItem +import PlayerAssist import time import datetime +import json #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -329,16 +335,25 @@ SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict) return + serverGroupID = GameWorld.GetServerGroupID() + zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID) + if not zoneIpyData: + return + zoneID = zoneIpyData.GetZoneID() + # 本服缓存超时,发送跨服服务器查询 playerID = curPlayer.GetPlayerID() - CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, {"PlayerID":playerID, "MapID":mapID, "NPCIDList":npcIDList}) + 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(mapID, serverGroupID) + + zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, mapID) if not zoneIpyData: return realMapID = zoneIpyData.GetMapID() @@ -493,6 +508,11 @@ PlayerCompensation.SendPersonalItemMailBatch(eval(resultName)) return + 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 == "SendMsgToCrossServer": msgType, dataMsg = eval(resultName) CrossRealmMsg.SendMsgToCrossServer(msgType, dataMsg) @@ -512,19 +532,12 @@ PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList) return - if callName == "DynamicLineMapOpen": - realMapID, copyMapID = eval(resultName) - PlayerFB.OnCrossDynamicLineOpen(realMapID, copyMapID) - return - - if callName == "DynamicLineMapClose": - realMapID, copyMapID = eval(resultName) - PlayerFB.OnCrossDynamicLineClose(realMapID, copyMapID) + if callName == "DynamicLineMapStateChange": + PlayerFB.OnCrossDynamicLineStateChange(eval(resultName)) return if callName == "DynamicLineMapInitOK": - realMapID, copyMapCount = eval(resultName) - PlayerFB.OnCrossDynamicMapReset(realMapID, copyMapCount) + PlayerFB.OnCrossDynamicMapReset(eval(resultName)) return if callName == "CommMapServerInitOK": @@ -710,6 +723,11 @@ GameWorldProcess.UpdGlobalKillCount(eval(resultName)) return + # 缓存装备广播信息中的装备明细信息 + if callName == "NotifyEquipDetailInfo": + GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick) + return + #生成仙盟红包 if callName == "MapServer_CreatRedPacket": PlayerFamilyRedPacket.MapServer_CreatRedPacket(eval(resultName)) @@ -769,15 +787,25 @@ 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": @@ -836,6 +864,10 @@ #骑宠BOSS结束 if callName =="HorsePetBossOver": PlayerHorsePetBoss.HorsePetBossKilled(int(resultName)) + return + #缥缈仙域事件出现 + if callName =="AddFairyDomainEvent": + PlayerFairyDomain.AddFairyDomainEvent(eval(resultName)) return #---return分割线----------------------------------------------------------------- @@ -902,6 +934,21 @@ 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 == "SkyTower": + ret = GameWorldSkyTower.MapServer_SkyTowerInfo(eval(resultName)) + if ret == None: + return + resultName = '%s' % ret # # 战盟仓库 # if callName == "FamilyStore": -- Gitblit v1.8.0