hxp
2019-01-23 3b4ce1ec803c9f40c94647693cbf9ebe12f3682c
6035 【后端】【1.5.100】蓬莱仙境宝箱支持按指定时间点刷新
1个文件已修改
20 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: