|
|
@@ -13,6 +13,7 @@ local InnerMsg = require("core.InnerMsg")
|
|
|
local Util = require("common.Util")
|
|
|
local Timer = require("core.Timer")
|
|
|
local MiddleManager = require("middle.MiddleManager")
|
|
|
+local CommonDB = require("common.CommonDB")
|
|
|
local BaiZhanChengShenDB = require("baiZhanChengShen.BaiZhanChengShenDB")
|
|
|
local BaiZhanChengShenDefine = require("baiZhanChengShen.BaiZhanChengShenDefine")
|
|
|
local BzcsLog = require("baiZhanChengShen.BaiZhanChengShenLog")
|
|
|
@@ -103,7 +104,15 @@ local function isRunning()
|
|
|
return isInOpenWday()
|
|
|
end
|
|
|
|
|
|
--- 严格判断当前是否可开启新一轮: 周末 + 距上轮足够 + 已过本轮周六 0:10 + 上轮已结束
|
|
|
+-- 首轮开启前置: 跨服基准开服天数达到阈值(最老服)
|
|
|
+local function isFirstRoundOpenEligible()
|
|
|
+ local openDay = CommonDB.getServerOpenDay() or 0
|
|
|
+ return openDay >= BaiZhanChengShenDefine.BZCS_OPEN_SVR_DAY
|
|
|
+end
|
|
|
+
|
|
|
+-- 严格判断当前是否可开启新一轮:
|
|
|
+-- 周末开放日 + 已过本轮周六 0:10 + 未超过本轮周日 23:00
|
|
|
+-- 首轮还需满足跨服开服天数>=45; 非首轮需满足周期间隔且上轮已结束
|
|
|
local function canOpenNewRoundNow(now, lastReset, startTime, endTime)
|
|
|
now = now or os.time()
|
|
|
if not isInOpenWday() then
|
|
|
@@ -113,7 +122,14 @@ local function canOpenNewRoundNow(now, lastReset, startTime, endTime)
|
|
|
if now < roundStart then
|
|
|
return false
|
|
|
end
|
|
|
+ local roundEnd = calcRoundEnd(roundStart)
|
|
|
+ if now > roundEnd then
|
|
|
+ return false
|
|
|
+ end
|
|
|
if lastReset == 0 then
|
|
|
+ if not isFirstRoundOpenEligible() then
|
|
|
+ return false
|
|
|
+ end
|
|
|
return true
|
|
|
end
|
|
|
if Util.diffDay(lastReset) < BaiZhanChengShenDefine.BZCS_CYCLE_DAYS then
|
|
|
@@ -345,7 +361,7 @@ local function tryOpenNewRound(now, lastReset, startTime, endTime)
|
|
|
end
|
|
|
|
|
|
-- 周期阶段机 (oneMin/onHour 调用):
|
|
|
--- 1) 严格满足开新轮条件(周末/间隔/已过周六0:10/上轮已结束) -> newRoundHandle + ActOpen
|
|
|
+-- 1) 严格满足开新轮条件(含首轮45天门槛、周末窗口 0:10~23:00、间隔/结束检查) -> newRoundHandle + ActOpen
|
|
|
-- 2) 已过 endTime 且未发奖 -> endRoundHandle
|
|
|
-- 3) 刚进入可挑战窗口(如周六0:10) -> ActOpen 补偿逻辑服
|
|
|
local function timedStageHandle()
|