| | |
| | | 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]
|
| | |
| | |
|
| | | #计算下次多久刷新
|
| | | __UpdateBossTime(npcID, refreshInfo[Def_TimeFormula])
|
| | | |
| | | if npcID in IpyGameDataPY.GetFuncEvalCfg('DogzFBRefreshCfg', 3):
|
| | | isNeedSync = True
|
| | | #通知时间
|
| | | SyncNPCRefreshTime()
|
| | | if isNeedSync:
|
| | | SyncNPCRefreshTime()
|
| | |
|
| | | return
|
| | |
|
| | |
| | | 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
|
| | |
|