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