From 5e3e992c98a7cd2d63abef53146cfb037f9a6b4e Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 10 十月 2018 15:01:43 +0800
Subject: [PATCH] 4102 【后端】混服支持 - 礼包卡兑换

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py
index bea625d..3fd128b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dogz.py
@@ -184,7 +184,7 @@
             continue
         rmark = npcRefresh.GetRefreshMark()
         npcCntDict[rmark] = npcCntDict.get(rmark, 0) + npcRefresh.GetCount()
-        
+    isNeedSync = False #是否需要通知
     for markInfo, refreshInfo in refreshDict.items():
         npcID = refreshInfo[Def_NPCID]
         refreshCnt = refreshInfo[Def_FirstRefreshCnt] if isFirst else refreshInfo[Def_RefreshCnt]
@@ -209,9 +209,11 @@
         
         #计算下次多久刷新
         __UpdateBossTime(npcID, refreshInfo[Def_TimeFormula])
-        
+        if npcID in IpyGameDataPY.GetFuncEvalCfg('DogzFBRefreshCfg', 3):
+            isNeedSync = True
     #通知时间
-    SyncNPCRefreshTime()
+    if isNeedSync:
+        SyncNPCRefreshTime()
     
     return
 
@@ -246,14 +248,15 @@
     nextNeedTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_NextNeedTime % npcID)
     return max(0, nextNeedTime - curTime + lastRefreshTime)
 
-def SyncNPCRefreshTime(playerid=0):
-    curTime = int(time.time())
+def SyncNPCRefreshTime():
     syncNPCIDList = IpyGameDataPY.GetFuncEvalCfg('DogzFBRefreshCfg', 3)
     syncDict = {}
     for npcID in syncNPCIDList:
-        refreshTime = GetDogzNPCRefreshTime(curTime, npcID)
-        syncDict[npcID] = refreshTime
-    msgStr = str([playerid, syncDict])
+        gameWorldMgr = GameWorld.GetGameWorld()
+        lastRefreshTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_LastRefreshTime % npcID)
+        nextNeedTime = gameWorldMgr.GetGameWorldDictByKey(Map_Dogzfb_NextNeedTime % npcID)
+        syncDict[npcID] = [lastRefreshTime, nextNeedTime]
+    msgStr = str(syncDict)
     GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'DogzNPCTime', msgStr, len(msgStr))
     return
 

--
Gitblit v1.8.0