From 5ef7afe58747896f9528e87f979b503822ab850f Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 16 Dec 2021 18:19:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=90=AF=E5=85=B3?= =?UTF-8?q?=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/GlobalDataManaager.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 9e9ec5c68..57eaa33df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -114,6 +114,9 @@ public class GlobalDataManaager implements IManager { int id = sGlobalSystemConfig.getId(); long systemOpenLong = sGlobalSystemConfig.getSystemOpenLong(); long systemEndLong = sGlobalSystemConfig.getSystemEndLong(); + if (now < systemOpenLong || now > systemEndLong) { + continue; + } if(openTimeOfFuntionCache.containsKey(id)){ //强制关闭 if(nowsystemEndLong)){ @@ -154,8 +157,8 @@ public class GlobalDataManaager implements IManager { long mod = passTims % (diffTime + seasonInterval); // 每个周期的时间+间隔时间 if(mod < diffTime ){//新的周期开启 一轮周期的时间 //开服几天后开启 + int[]limitDay = sGlobalSystemConfig.getIfOpen(); if(getServerOpenTimeCompareSpecialTimeResult()){ - int[]limitDay = sGlobalSystemConfig.getIfOpen(); if(limitDay.length > 0){ if( limitDay[0] == 2 ){ long day = TimeUtils.getGapDaysByTwoTime(GameApplication.serverConfig.getOpenTime(),TimeUtils.getTimeStamp2(TimeUtils.now()))+1; @@ -165,9 +168,18 @@ public class GlobalDataManaager implements IManager { } } } - openList.add(id); + //计算开启时间、关闭时间 long turns = passTims / ((diffTime + seasonInterval)); + if (limitDay.length > 0) { + // 达到指定轮数,不再开启该功能 + if (limitDay[0] == 3) { + if (turns > limitDay[1]) { + continue; + } + } + } + openList.add(id); long addTim = turns * (diffTime + seasonInterval); long timeOpenOfThis =seasonOpenLong+addTim; long timeCloseOfThis =seasonEndLong+addTim;