123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- ConditionHandler:register(ConditionId.active["真实时间检测"], "真实时间检测", function(actor, param)
- local activeTime = string.split(param,"-")
- if table.count(activeTime) < 2 then
- return false
- end
- local startDataStr = string.split(activeTime[1],"_")
- local startTime = TimeUtil.earlyOneMorning(tonumber(startDataStr[1]),tonumber(startDataStr[2]),tonumber(startDataStr[3]))
- local endDataStr = string.split(activeTime[2],"_")
- local endTime = TimeUtil.midnightOneDay(tonumber(endDataStr[1]),tonumber(endDataStr[2]),tonumber(endDataStr[3]))
- local currentTime = getbaseinfo("nowsec")
- if currentTime >= startTime and currentTime < endTime then
- return true
- end
- return false
- end)
- ConditionHandler:register(ConditionId.active["主活动持续时间检测"], "主活动持续时间检测", function(actor, param)
- -- 读取当前活动的开始时间
- local mainDurationInfo = string.split(param,"#")
- if table.count(mainDurationInfo) < 2 then
- return true
- end
- local mainGroup = tonumber(mainDurationInfo[1])
- local durationDay = tonumber(mainDurationInfo[2])
- local currentActive = getsysvar(CURRENT_ACTIVE)
- if table.isNullOrEmpty(currentActive) then
- return true
- end
- local mainActive = currentActive.mainActive
- local saveMainGroup = mainActive["mainGroup"]
- if saveMainGroup == mainGroup then
- local closeTime = mainActive["closeTime"]
- local currentTime = getbaseinfo("now")
- if currentTime < closeTime then
- return false
- end
- end
- return true
- end)
- ConditionHandler:register(ConditionId.active["子活动持续时间检测"], "子活动持续时间检测", function(actor, param)
- -- 读取当前活动的开始时间
- local mainDurationInfo = string.split(param,"#")
- if table.count(mainDurationInfo) < 3 then
- return true
- end
- local mainGroup = tonumber(mainDurationInfo[1])
- local subType = tonumber(mainDurationInfo[2])
- local durationDay = tonumber(mainDurationInfo[3])
- local currentActive = getsysvar(CURRENT_ACTIVE)
- if table.isNullOrEmpty(currentActive) then
- return true
- end
- local subActive = currentActive.subActive
- if table.isNullOrEmpty(subActive) then
- return true
- end
- local subActiveId = ConfigDataManager.getTableValue("cfg_OperateActivity_subActivity","id","mainGroup",mainGroup,"subType",subType)
- local subStartTime = subActive[tonumber(subActiveId)]
- if subStartTime == nil then
- return true
- end
- local subCloseTime = TimeUtil.addDayEnd(subStartTime, durationDay)
- local currentTime = getbaseinfo("nowsec")
- if currentTime < subCloseTime then
- return false
- end
- return true
- end)
- ConditionHandler:register(ConditionId.active["检测为几周"], "检测为几周", function(actor, param)
- -- 读取当前活动的开始时间
- local checkWeek = string.split(param,"#")
- local currentTime = getbaseinfo("nowsec")
- local weekDay = tonumber(os.date("%w", tonumber(currentTime)))
- if weekDay == 0 then
- weekDay = 7
- end
- for k, day in pairs(checkWeek) do
- if tonumber(day) == weekDay then
- return true
- end
- end
- return false
- end)
|