From d5e9bbcf96cf98d767ba073774b1ee287569659d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 24 十一月 2018 18:20:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index ac1538e..848c439 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通知
@@ -618,7 +619,8 @@
return
onlineCnt = __GetBossOnlineHeroCnt(bossid)[0]
LVLimit = ipyData.GetLVLimit()
- if PyGameData.g_yesterdayPlayerLVDict:
+ openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
+ if openServerDay != 0 and LVLimit and len(LVLimit) == 2:
yesterdayCnt = len([1 for lv in PyGameData.g_yesterdayPlayerLVDict.values() if LVLimit[0]<=lv <= LVLimit[1]]) #参数昨日活跃人数
else:
yesterdayCnt = IpyGameDataPY.GetFuncCfg('FirstDayActivePlayerCnt')
@@ -948,8 +950,10 @@
refreshTime = 0
PyGameData.g_sortBOSSRefreshList[i] = [bossID, killedTime, refreshTime]
bossIDList.append(bossID)
+ curTime = int(time.time())
+ PyGameData.g_sortBOSSRefreshList.sort(key=lambda asd:max(0, asd[2] - (curTime - asd[1])))
GameWorld.Log(' boss复活活动 重生boss bossIDList=%s'%bossIDList)
- g_lastBossRebornTime = int(time.time())
+ g_lastBossRebornTime = curTime
else:
#广播
needNotifyPointPerList = IpyGameDataPY.GetFuncEvalCfg('BossRebornNotify')
@@ -1035,23 +1039,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