From 3b4ce1ec803c9f40c94647693cbf9ebe12f3682c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 23 一月 2019 21:32:52 +0800 Subject: [PATCH] 6035 【后端】【1.5.100】蓬莱仙境宝箱支持按指定时间点刷新 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py index 6e0c400..1717fd8 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py @@ -908,7 +908,7 @@ 注意:同个虚拟线路中,标试点不可重复!标试点不可重复!标试点不可重复! ''' mapID = gameWorld.GetMapID() - # {mapID:{编号:[[多个NPCID], [多个标试点], 单个点最大数量, 所有点总数量, 刷怪间隔秒], ...}, ...} + # {mapID:{编号:[[多个NPCID], [多个标试点], 单个点最大数量, 所有点总数量, 刷怪间隔秒, 每整X小时], ...}, ...} randRefreshNPCDict = IpyGameDataPY.GetFuncEvalCfg("RandomRefreshNPC", 1, {}) if mapID not in randRefreshNPCDict: return @@ -922,14 +922,20 @@ return gameFB.SetGameFBDict(ChConfig.Def_RMark_RandomRefreshNPCTick, tick) - curTime = int(time.time()) + serverTime = GameWorld.GetCurrentTime() + curHour, curMinute = serverTime.hour, serverTime.minute refreshNumList = [] for num, refreshInfo in mapRandRefreshNPCDict.items(): - refreshCD = refreshInfo[-1] - numLastTime = gameFB.GetGameFBDictByKey(ChConfig.Def_RMark_RandomRefreshNPCNumTime % num) - if numLastTime and curTime - numLastTime < refreshCD: + refreshCD = refreshInfo[4] + numLastTick = gameFB.GetGameFBDictByKey(ChConfig.Def_RMark_RandomRefreshNPCNumTime % num) + perHours = refreshInfo[5] + if numLastTick and perHours: + if curHour % perHours != 0 or curMinute != 0: + continue + refreshCD = 65 # 1分钟内不重复刷新 + if numLastTick and tick - numLastTick < refreshCD * 1000: continue - gameFB.SetGameFBDict(ChConfig.Def_RMark_RandomRefreshNPCNumTime % num, curTime) + gameFB.SetGameFBDict(ChConfig.Def_RMark_RandomRefreshNPCNumTime % num, tick) refreshNumList.append(num) if not refreshNumList: @@ -949,7 +955,7 @@ #GameWorld.DebugLog("npcCountDict=%s" % npcCountDict, copyMapID) for num in refreshNumList: - npcIDList, markList, maxCount, totalMaxCount = mapRandRefreshNPCDict[num][:-1] + npcIDList, markList, maxCount, totalMaxCount = mapRandRefreshNPCDict[num][:4] curTotalCount = 0 for rMark in markList: -- Gitblit v1.8.0