From d661f7bb084dacb9b6cb048cbb586881bdfcea6f Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期三, 26 九月 2018 20:20:53 +0800 Subject: [PATCH] 1889 神兽副本npc刷新时间通知修改 --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py index ac1538e..db89328 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py @@ -467,6 +467,7 @@ state = gameWorld.GetDictByKey(ChConfig.Def_WorldKey_OperationActionState % ShareDefine.OperationActionName_BossReborn) if state: Sync_BossRebornPoint(curPlayer) + Sync_DogzNPCRefreshTime(curPlayer) return ## 地图启动ok通知 @@ -1035,23 +1036,24 @@ NetPackCommon.SendFakePack(curPlayer, packData) return -def Sync_DogzNPCRefreshTime(msgList): +def Sync_DogzNPCRefreshTime(curPlayer=None): #同步神兽副本NPC刷新时间 - playerID, refreshTimeDict = msgList - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID) if playerID else None - if playerID and not curPlayer: - return + refreshTimeDict = PyGameData.g_dogzNPCRefreshTimeDict + if not refreshTimeDict: return + curTime = int(time.time()) packData = ChPyNetSendPack.tagGCDogzNPCRefreshTime() packData.InfoList=[] - for npcid, rTime in refreshTimeDict.items(): + for npcid, timeinfo in refreshTimeDict.items(): + lastRefreshTime, nextNeedTime = timeinfo + remainTime = max(0, nextNeedTime - curTime + lastRefreshTime) timeInfo = ChPyNetSendPack.tagDogzTimeInfoObj() timeInfo.NPCID = npcid - timeInfo.RefreshSecond = rTime + timeInfo.RefreshSecond = remainTime packData.InfoList.append(timeInfo) packData.Cnt = len(packData.InfoList) - if not playerID: + if not curPlayer: playerManager = GameWorld.GetPlayerManager() for i in xrange(playerManager.GetActivePlayerCount()): curPlayer = playerManager.GetActivePlayerAt(i) -- Gitblit v1.8.0