2020-09-23 15:49:48 +08:00
|
|
|
|
AllActivityManager = {};
|
|
|
|
|
local this = AllActivityManager
|
|
|
|
|
local ActivityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
|
|
|
|
|
local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
|
|
|
|
|
local giftData = {}
|
|
|
|
|
function this.Initialize()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- 获取服务器活动领取进度数据
|
|
|
|
|
function this.InitActivityServerData(msg, isUpdate)
|
|
|
|
|
if not isUpdate then
|
|
|
|
|
this.mission = {}
|
|
|
|
|
end
|
|
|
|
|
for i, v in ipairs(msg.activityInfo) do
|
|
|
|
|
|
|
|
|
|
this.CheckMoneyProgress(v)
|
|
|
|
|
this.mission[v.activityId] = v
|
|
|
|
|
LogRed("刷新活动数据activityId:" .. v.activityId .. " value:" .. v.value)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.RefreshActivityData(respond)
|
|
|
|
|
--closed
|
|
|
|
|
if respond.closeActivityId then
|
|
|
|
|
for i = 1, #respond.closeActivityId do
|
|
|
|
|
if this.mission[respond.closeActivityId[i]] then
|
|
|
|
|
LogRed(Language[10003] .. respond.closeActivityId[i])
|
|
|
|
|
this.mission[respond.closeActivityId[i]] = nil
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, {
|
|
|
|
|
type = activityType,
|
|
|
|
|
status = 0 --关闭
|
|
|
|
|
})
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--newOpen
|
|
|
|
|
if respond.activityInfo then
|
|
|
|
|
for i = 1, #respond.activityInfo do
|
|
|
|
|
LogRed(Language[10004] .. respond.activityInfo[i].activityId)
|
|
|
|
|
this.mission[respond.activityInfo[i].activityId] = respond.activityInfo[i]
|
|
|
|
|
local activityType = this.GetActivityTypeFromId(respond.activityInfo[i].activityId)
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, {
|
|
|
|
|
type = this.GetActivityTypeFromId(respond.activityInfo[i].activityId),
|
|
|
|
|
status = 1 --开启
|
|
|
|
|
})
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
this.InitActivityServerData(respond, true)
|
|
|
|
|
this.RefreshActivityRedPoint()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--刷新某个活动的数据进度
|
|
|
|
|
function this.RefreshActivityProgressData(msg)
|
|
|
|
|
-- 检测
|
|
|
|
|
this.CheckMoneyProgress(msg.activityInfo)
|
|
|
|
|
LogRed("刷新活动数据activityId:" .. msg.activityInfo.activityId .. "value:" .. msg.activityInfo.value)
|
|
|
|
|
if this.mission[msg.activityInfo.activityId] then
|
|
|
|
|
this.mission[msg.activityInfo.activityId].value = msg.activityInfo.value
|
|
|
|
|
for i = 1, #msg.activityInfo.mission do
|
|
|
|
|
for _, missionInfo in pairs(this.mission[msg.activityInfo.activityId].mission) do
|
|
|
|
|
if missionInfo.missionId == msg.activityInfo.mission[i].missionId then
|
|
|
|
|
missionInfo.state = msg.activityInfo.mission[i].state
|
|
|
|
|
missionInfo.progress = msg.activityInfo.mission[i].progress
|
|
|
|
|
LogRed(msg.activityInfo.activityId.." 刷新活动数据missionId:" .. missionInfo.missionId .. "state:" .. missionInfo.state .. "progress:" .. missionInfo.progress)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
this.RefreshActivityRedPoint()
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityProgressStateChange)
|
|
|
|
|
--断线重连时 在线奖励活动 数据刷新
|
|
|
|
|
this.CutUpLineUpdateOnLineData(msg)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--断线重连时 在线奖励活动 数据刷新
|
|
|
|
|
function this.CutUpLineUpdateOnLineData(msg)
|
|
|
|
|
if (msg.activityInfo.activityId == ActivityTypeDef.OnlineGift) then
|
|
|
|
|
for i = 1, #msg.activityInfo.mission do
|
|
|
|
|
this.onlineOpen = true
|
|
|
|
|
this.onlineGetRewardState[ msg.activityInfo.mission[i].missionId] = msg.activityInfo.mission[i].state
|
|
|
|
|
this.haveOnlineTime = msg.activityInfo.mission[i].progress
|
|
|
|
|
this.onlineTime= msg.activityInfo.mission[i].progress
|
|
|
|
|
this.cuOnLineTimestamp = GetTimeStamp() - msg.activityInfo.mission[i].progress
|
|
|
|
|
LogRed("------------------------------------后端刷新在线时长3 "..msg.activityInfo.mission[i].progress.." "..TimeToHMS(msg.activityInfo.mission[i].progress))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--五点凌晨刷新
|
|
|
|
|
function this.FiveAMRefreshActivityProgress(msg)
|
|
|
|
|
LogRed("5AM刷新活动数据")
|
|
|
|
|
for i = 1, #msg.activityInfo do
|
|
|
|
|
if not this.mission[msg.activityInfo[i].activityId] then
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, {
|
|
|
|
|
type = this.GetActivityTypeFromId(msg.activityInfo[i].activityId),
|
|
|
|
|
status = 1 --开启
|
|
|
|
|
})
|
|
|
|
|
end
|
|
|
|
|
-- 检测活动钱数
|
|
|
|
|
this.CheckMoneyProgress(msg.activityInfo[i])
|
|
|
|
|
this.mission[msg.activityInfo[i].activityId] = msg.activityInfo[i]
|
|
|
|
|
LogRed("刷新活动数据activityId:" .. msg.activityInfo[i].activityId .. "value:" .. msg.activityInfo[i].value)
|
|
|
|
|
end
|
|
|
|
|
this.RefreshActivityRedPoint()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- 检测进度
|
|
|
|
|
function this.CheckMoneyProgress(v)
|
|
|
|
|
if v.activityId == ActivityTypeDef.FirstRecharge
|
|
|
|
|
or v.activityId == ActivityTypeDef.LuckyCat
|
|
|
|
|
or v.activityId == ActivityTypeDef.DailyRecharge
|
|
|
|
|
-- or v.activityId == ActivityTypeDef.ContinuityRecharge
|
|
|
|
|
or v.activityId == ActivityTypeDef.AccumulativeRechargeExper
|
|
|
|
|
or v.activityId == ActivityTypeDef.DynamicAct_recharge
|
|
|
|
|
or v.activityId == ActivityTypeDef.FindFairyCeremony then
|
|
|
|
|
|
|
|
|
|
for n, m in ipairs(v.mission) do
|
|
|
|
|
m.progress = m.progress / 1000
|
|
|
|
|
end
|
|
|
|
|
v.value = v.value / 1000
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.RefreshActivityRedPoint()
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.MissionDaily.OnMissionDailyChanged)
|
|
|
|
|
CheckRedPointStatus(RedPointType.FirstRecharge)
|
|
|
|
|
CheckRedPointStatus(RedPointType.ContinuityRecharge)
|
|
|
|
|
CheckRedPointStatus(RedPointType.SevenDayCarnival)
|
|
|
|
|
--限时活动
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_AdventureExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_AreaExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_UpStarExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_EquipExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_GoldExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_FightExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_EnergyExper)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_Talisman)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_SoulPrint)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_AccumulativeRecharge)
|
|
|
|
|
CheckRedPointStatus(RedPointType.DynamicActRecharge)
|
|
|
|
|
CheckRedPointStatus(RedPointType.CourtesyDress_SevenDay)
|
|
|
|
|
CheckRedPointStatus(RedPointType.LuckyCat_GetReward)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_LuckyTurn)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_FindTreasure)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_Recruit)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_SecretBox)
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_Expedition)
|
2020-10-10 14:51:50 +08:00
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_Slhj)
|
2020-09-23 15:49:48 +08:00
|
|
|
|
--战力排行
|
|
|
|
|
CheckRedPointStatus(RedPointType.WarPowerSort_Sort)
|
|
|
|
|
--东海寻仙
|
|
|
|
|
CheckRedPointStatus(RedPointType.FindFairy_OneView)
|
|
|
|
|
CheckRedPointStatus(RedPointType.FindFairy_ThreeView)
|
|
|
|
|
CheckRedPointStatus(RedPointType.FindFairy_FourView)
|
|
|
|
|
CheckRedPointStatus(RedPointType.DynamicActTask)
|
|
|
|
|
CheckRedPointStatus(RedPointType.QinglongSerectTreasure)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--通过活动类型获取活动数据
|
|
|
|
|
function this.GetActivityTypeInfo(type)
|
|
|
|
|
local globalActConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.GlobalActivity, "Type", type)
|
|
|
|
|
local missionData = nil
|
|
|
|
|
table.walk(globalActConfigs, function(actConfigInfo)
|
|
|
|
|
if this.mission[actConfigInfo.Id] then
|
|
|
|
|
missionData = this.mission[actConfigInfo.Id]
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
return missionData
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--通过活动类型获取活动id
|
|
|
|
|
function this.GetActivityIdByType(type)
|
|
|
|
|
local globalActConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.GlobalActivity, "Type", type)
|
|
|
|
|
local id = 0
|
|
|
|
|
local missionData = nil
|
|
|
|
|
table.walk(globalActConfigs, function(actConfigInfo)
|
|
|
|
|
if this.mission[actConfigInfo.Id] then
|
|
|
|
|
--LogError("actConfigInfo.Id "..actConfigInfo.Id)
|
|
|
|
|
id = actConfigInfo.Id
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
return id
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetActivityValueInfo(type, Id)
|
|
|
|
|
if this.mission[type] then
|
|
|
|
|
-- LogBlue("this.mission[type].value:"..this.mission[type].value)
|
|
|
|
|
return this.mission[type].value
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
function this.GetActivityInfo(type, Id)
|
|
|
|
|
if this.mission[type] then
|
|
|
|
|
for _, missInfo in pairs(this.mission[type].mission) do
|
|
|
|
|
if missInfo.missionId == Id then
|
|
|
|
|
return missInfo
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
Log(string.format(Language[10001], type, Id))
|
|
|
|
|
return nil,0
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetActivityInfoByType(type)
|
|
|
|
|
if this.mission[type] then
|
|
|
|
|
return this.mission[type]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
function this.SetActivityInfo(type, Id, state)
|
|
|
|
|
for _, missInfo in pairs(this.mission[type].mission) do
|
|
|
|
|
if missInfo.missionId == Id then
|
|
|
|
|
missInfo.state = state
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetActivityOpenStatus(type)
|
|
|
|
|
local id = this.GetActivityIdByType(type)
|
|
|
|
|
if this.mission[id] then
|
|
|
|
|
return this.mission[id].reallyOpen == 1
|
|
|
|
|
else
|
|
|
|
|
Log(string.format(Language[10002], type))
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
function this.SetActivityOpenStatus(type)
|
|
|
|
|
if this.mission[type] then
|
|
|
|
|
this.mission[type].reallyOpen = 1
|
|
|
|
|
else
|
|
|
|
|
Log(string.format(Language[10002], type))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--获取活动结束时间
|
|
|
|
|
function this.GetTaskEndTime(activityType)
|
|
|
|
|
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(activityType)
|
|
|
|
|
local endTime = 0
|
|
|
|
|
if activityInfo then
|
|
|
|
|
endTime = activityInfo.endTime
|
|
|
|
|
end
|
|
|
|
|
return endTime
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取活动开始时间
|
|
|
|
|
function this.GetTaskStartTime(activityType)
|
|
|
|
|
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(activityType)
|
|
|
|
|
|
|
|
|
|
local startTime = 0
|
|
|
|
|
if activityInfo then
|
|
|
|
|
startTime = activityInfo.startTime
|
|
|
|
|
end
|
|
|
|
|
return startTime
|
|
|
|
|
end
|
|
|
|
|
------------------------------------------------
|
|
|
|
|
------------------------------------------------
|
|
|
|
|
------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.GetActivityRewardRequest(type, index)
|
|
|
|
|
--local rewardId=0
|
|
|
|
|
--向服务器发送领取在线奖励请求
|
|
|
|
|
NetManager.GetActivityRewardRequest(index, type, function(_drop)
|
|
|
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1)
|
|
|
|
|
if (type == ActivityTypeDef.OnlineGift) then
|
|
|
|
|
this.onlineGetRewardState[index] = 1
|
|
|
|
|
CheckRedPointStatus(RedPointType.CourtesyDress_Online)
|
|
|
|
|
table.sort(this.onlineData, function(a, b)
|
|
|
|
|
return a.Id < b.Id
|
|
|
|
|
end)
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.GetRewardRefresh, this.onlineData)
|
|
|
|
|
elseif (type == ActivityTypeDef.EightDayGift) then
|
|
|
|
|
this.sevenDayGetRewardState[index] = 1
|
|
|
|
|
CheckRedPointStatus(RedPointType.CourtesyDress_SevenDay)
|
|
|
|
|
table.sort(this.sevenDayData, function(a, b)
|
|
|
|
|
if this.sevenDayGetRewardState[a.Id] == this.sevenDayGetRewardState[b.Id] then
|
|
|
|
|
return a.Id < b.Id
|
|
|
|
|
else
|
|
|
|
|
return this.sevenDayGetRewardState[a.Id] < this.sevenDayGetRewardState[b.Id]
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.GetRewardRefresh, this.sevenDayData)
|
|
|
|
|
elseif (type == ActivityTypeDef.ChapterAward) then
|
|
|
|
|
this.chapterGetRewardState[index] = 1
|
|
|
|
|
CheckRedPointStatus(RedPointType.CourtesyDress_Chapter)
|
|
|
|
|
table.sort(this.chapterGiftData, function(a, b)
|
|
|
|
|
if this.chapterGetRewardState[a.Id] == this.chapterGetRewardState[b.Id] then
|
|
|
|
|
return a.Id < b.Id
|
|
|
|
|
else
|
|
|
|
|
return this.chapterGetRewardState[a.Id] < this.chapterGetRewardState[b.Id]
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.GetRewardRefresh, this.chapterGiftData)
|
|
|
|
|
end
|
|
|
|
|
--CheckRedPointStatus(RedPointType.SecretTer)
|
|
|
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Adventure.OnRefreshRedShow)
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
-- 红点检测监听方法
|
|
|
|
|
function this.CheckRedFunc(redType)
|
|
|
|
|
if redType == RedPointType.CourtesyDress_SevenDay then
|
|
|
|
|
if this.mission[ActivityTypeDef.EightDayGift] then
|
|
|
|
|
local number = 0
|
|
|
|
|
for i, v in pairs(this.sevenDayGetRewardState) do
|
|
|
|
|
if (v == 1) then
|
|
|
|
|
number = number + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local curDay = math.ceil((CalculateSecondsNowTo_N_OClock(24) + GetTimeStamp() - PlayerManager.userCreateTime)/86400)
|
|
|
|
|
if (number < curDay) then
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
elseif redType == RedPointType.CourtesyDress_Chapter then
|
|
|
|
|
local isShowRed = false
|
|
|
|
|
for i = 1, table.nums(this.chapterGetRewardState) do
|
|
|
|
|
for j, v in pairs(this.chapterGiftData) do
|
|
|
|
|
if (i == v.Sort) then
|
|
|
|
|
if FightPointPassManager.GetFightStateById(v.Values[1][1]) == FIGHT_POINT_STATE.PASS and this.chapterGetRewardState[v.Id] == 0 then
|
|
|
|
|
isShowRed = true
|
|
|
|
|
return isShowRed
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return isShowRed
|
|
|
|
|
elseif redType == RedPointType.CourtesyDress_Online then
|
|
|
|
|
local number = 0
|
|
|
|
|
for i, v in pairs(this.onlineGetRewardState) do
|
|
|
|
|
if (v == 1) then
|
|
|
|
|
number = number + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--当活动未开或奖励全部领取完毕
|
|
|
|
|
if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.Online_Reward)==false then
|
|
|
|
|
return false
|
|
|
|
|
else--当活动开启或奖励未领取完毕
|
|
|
|
|
local timeNum = GetTimeStamp() - this.cuOnLineTimestamp
|
|
|
|
|
local currentTimeIndex = 0
|
|
|
|
|
for i = 1, #this.onlineData do
|
|
|
|
|
if this.onlineGetRewardState[this.onlineData[i].Id] == 0 then
|
|
|
|
|
if (math.floor(timeNum)) >= (this.onlineData[i].Values[1][1]*60) then
|
|
|
|
|
currentTimeIndex = this.onlineData[i].Sort
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--Log("number < this.currentTimeIndex "..number .." "..currentTimeIndex)
|
|
|
|
|
if (number < currentTimeIndex) then --当已领取数小于未领取数
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.GetActivityTypeFromId(activityId)
|
|
|
|
|
local globalActConfig = ConfigManager.GetConfigDataByKey(ConfigName.GlobalActivity, "Id", activityId)
|
|
|
|
|
return globalActConfig.Type
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.IsActivityTypeOpen(type)
|
|
|
|
|
local globalActConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.GlobalActivity, "Type", type)
|
|
|
|
|
local activityId = nil
|
|
|
|
|
table.walk(globalActConfigs, function(actConfigInfo)
|
|
|
|
|
if this.mission and this.mission[actConfigInfo.Id] then
|
|
|
|
|
activityId = actConfigInfo.Id
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
return activityId
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetContinuityRechargeRedPoint()
|
|
|
|
|
local redPoint = false
|
|
|
|
|
if this.IsActivityTypeOpen(ActivityTypeDef.ContinuityRecharge) then
|
|
|
|
|
local continuityRechargeList = this.GetActivityTypeInfo(ActivityTypeDef.ContinuityRecharge)
|
|
|
|
|
for i = 1, #continuityRechargeList.mission do
|
|
|
|
|
local rechargeInfo = continuityRechargeList.mission[i]
|
|
|
|
|
redPoint = redPoint or (rechargeInfo.progress == 1 and rechargeInfo.state == 0)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return redPoint
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetGrowthRechargeExist()
|
|
|
|
|
if this.IsGetAllGrowthReward() or this.IsActivityTypeOpen(ActivityTypeDef.GrowthReward) == nil then
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.IsGetAllGrowthReward()
|
|
|
|
|
local isGetAll = true
|
|
|
|
|
if this.IsActivityTypeOpen(ActivityTypeDef.GrowthReward) then
|
|
|
|
|
local activityInfo = this.GetActivityTypeInfo(ActivityTypeDef.GrowthReward)
|
|
|
|
|
for i = 1, #activityInfo.mission do
|
|
|
|
|
isGetAll = isGetAll and activityInfo.mission[i].state == 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return isGetAll
|
|
|
|
|
end
|
|
|
|
|
--检测限时活动红点
|
|
|
|
|
function this.ExpterActivityIsShowRedPoint(activeIndex)
|
|
|
|
|
local activeType = 0
|
|
|
|
|
-- Log("activeIndex "..activeIndex)
|
|
|
|
|
--注意 红点枚举id %100 就是按钮顺序
|
|
|
|
|
activeType = numExChange[math.floor(activeIndex % 100)]
|
|
|
|
|
-- Log("activeType "..activeType)
|
|
|
|
|
local expertRewardTabs = this.GetActivityTypeInfo(activeType)
|
|
|
|
|
if expertRewardTabs then
|
|
|
|
|
for i = 1, #expertRewardTabs.mission do
|
|
|
|
|
local conFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, expertRewardTabs.mission[i].missionId)
|
|
|
|
|
local value = 0
|
|
|
|
|
--限时累计活动特殊数值读取处理
|
|
|
|
|
if activeType == ActivityTypeDef.AccumulativeRechargeExper then
|
|
|
|
|
value = conFigData.Values[1][1]
|
|
|
|
|
else
|
|
|
|
|
value = conFigData.Values[2][1]
|
|
|
|
|
end
|
|
|
|
|
if expertRewardTabs.mission[i].state == 0 then
|
|
|
|
|
if activeType == ActivityTypeDef.UpStarExper or activeType == ActivityTypeDef.Talisman
|
|
|
|
|
or activeType == ActivityTypeDef.SoulPrint or activeType == ActivityTypeDef.EquipExper
|
|
|
|
|
or activeType == ActivityTypeDef.FindTreasureExper then
|
|
|
|
|
--进阶因为每个都不一样 特殊判断
|
|
|
|
|
if expertRewardTabs.mission[i].progress >= value then
|
|
|
|
|
--Log("expertRewardTabs.mission[i].progress " .. expertRewardTabs.mission[i].progress)
|
|
|
|
|
--Log("限时红点 --------------- true")
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
elseif activeType == ActivityTypeDef.UpLvAct then
|
|
|
|
|
if expertRewardTabs.value >= value and expertRewardTabs.mission[i].progress >= 0 then
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
elseif activeType == ActivityTypeDef.FastExplore then
|
|
|
|
|
if expertRewardTabs.value >= value then
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
if expertRewardTabs.value >= value then
|
|
|
|
|
--Log("限时红点 --------------- true")
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--Log("限时红点 --------------- false")
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
--检测升级限时礼包活动红点
|
|
|
|
|
function this.ExperyUpLvActivityIsShowRedPoint()
|
|
|
|
|
local activeData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.UpLvAct)
|
|
|
|
|
if activeData and activeData.mission then
|
|
|
|
|
for i = 1, #activeData.mission do
|
|
|
|
|
local curConfigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig,activeData.mission[i].missionId)
|
|
|
|
|
if curConfigData and activeData.mission[i].state == 0 and activeData.value >= curConfigData.Values[2][1] and activeData.mission[i].progress>0 then
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
--检测周卡活动红点
|
|
|
|
|
function this.WeedCardActivityIsShowRedPoint()
|
|
|
|
|
local weekCardData = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.WeekCard, 12)
|
|
|
|
|
if weekCardData then
|
|
|
|
|
--Log("weekCardData.buyTimes "..weekCardData.buyTimes.." "..PatFaceManager.isFirstLog.." "..tostring(this.isOpenWeekCard))
|
|
|
|
|
if weekCardData.buyTimes <= 0 and PatFaceManager.isFirstLog == 0 and this.isOpenWeekCard == false then
|
|
|
|
|
--Log("检测周卡活动红点 --------------- true")
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--Log("检测周卡活动红点 --------------- false")
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
--检测战力排行活动红点
|
|
|
|
|
function this.WarPowerSortActivityIsShowRedPoint()
|
|
|
|
|
local expertRewardTabs = this.GetActivityTypeInfo(ActivityTypeDef.WarPowerReach)
|
|
|
|
|
if expertRewardTabs then
|
|
|
|
|
for i = 1, #expertRewardTabs.mission do
|
|
|
|
|
local conFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, expertRewardTabs.mission[i].missionId)
|
|
|
|
|
local value = conFigData.Values[1][1]
|
|
|
|
|
if expertRewardTabs.mission[i].state == 0 then
|
|
|
|
|
if expertRewardTabs.value >= value then
|
|
|
|
|
--Log("红点红点 ")
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
--限时活动里是否有活动开启 > 0 说明有开启的活动
|
|
|
|
|
function this.GetExpertActiveisOpen()
|
|
|
|
|
--所有达人
|
|
|
|
|
for i, v in pairs(numExChange) do
|
|
|
|
|
local curActiveData = ActivityGiftManager.GetActivityTypeInfo(v)
|
|
|
|
|
if curActiveData then
|
|
|
|
|
if curActiveData.endTime - GetTimeStamp() > 0 then
|
|
|
|
|
return i
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local LimitExchange = this.GetActivityTypeInfo(ActivityTypeDef.LimitExchange)
|
|
|
|
|
if LimitExchange then
|
|
|
|
|
if LimitExchange.endTime - GetTimeStamp() > 0 then
|
|
|
|
|
return ActivityTypeDef.LimitExchange
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local weekCardData = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.WeekCard, 12)
|
|
|
|
|
if weekCardData then
|
|
|
|
|
if weekCardData.endTime - GetTimeStamp() > 0 then
|
|
|
|
|
return ExperType.WeekCard
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local patFaceAllData = nil--{ConfigManager.GetConfigData(ConfigName.LoginPosterConfig,1)}--PatFaceManager.GetPatFaceAllDataTabs()
|
|
|
|
|
if RecruitManager.isTenRecruit == 0 then
|
|
|
|
|
patFaceAllData = { ConfigManager.GetConfigData(ConfigName.LoginPosterConfig, 1) }
|
|
|
|
|
end
|
|
|
|
|
if patFaceAllData and #patFaceAllData > 0 then
|
|
|
|
|
return ExperType.PatFace
|
|
|
|
|
end
|
|
|
|
|
--异妖直购
|
|
|
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.LoginPosterConfig)) do
|
|
|
|
|
if v.Type == 2 then
|
|
|
|
|
--异妖直购特殊处理
|
|
|
|
|
if v.OpenRules[1] == 1 then
|
|
|
|
|
if PlayerManager.level >= v.OpenRules[2] and PlayerManager.level <= v.CloseRules[2] then
|
|
|
|
|
local conFigData = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, v.ShopId)
|
|
|
|
|
local shopItemData = OperatingManager.GetGiftGoodsInfo(conFigData.Type, v.ShopId)
|
|
|
|
|
if shopItemData then
|
|
|
|
|
return ExperType.DiffMonster
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--幸运探宝
|
|
|
|
|
--local curActiveData = not not ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LuckyTurnTable_One)
|
|
|
|
|
--if curActiveData then
|
|
|
|
|
-- return 6
|
|
|
|
|
--end
|
|
|
|
|
--福星高照
|
|
|
|
|
local curActiveData = not not ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LuckyCat)
|
|
|
|
|
if curActiveData then
|
|
|
|
|
return ExperType.LuckyCat
|
|
|
|
|
end
|
|
|
|
|
-- 七日
|
|
|
|
|
local curActiveData = not not ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.EightDayGift)
|
|
|
|
|
if curActiveData then
|
|
|
|
|
return ExperType.SevenDay
|
|
|
|
|
end
|
|
|
|
|
--星级成长礼
|
|
|
|
|
if OperatingManager.IsHeroGiftActive() then
|
|
|
|
|
return ExperType.StarGrowGift
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
--判断七日,在线,章节是否全部领取完了
|
|
|
|
|
function this.ActivityIsHaveGetFinally(state)
|
|
|
|
|
local isGetAllReward = true
|
|
|
|
|
for i, v in pairs(state) do
|
|
|
|
|
if (v == 0) then
|
|
|
|
|
isGetAllReward = false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return isGetAllReward
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- 获取所有开启的显示活动ID
|
|
|
|
|
function this.GetExpertActiveisAllOpenIds()
|
|
|
|
|
local activityIds = {}
|
|
|
|
|
for i, v in pairs(numExChange) do
|
|
|
|
|
local curActiveData = ActivityGiftManager.GetActivityTypeInfo(v)
|
|
|
|
|
if curActiveData then
|
|
|
|
|
if curActiveData.endTime - GetTimeStamp() > 0 then
|
|
|
|
|
--Log("开启活动id ======== " .. curActiveData.activityId)
|
|
|
|
|
table.insert(activityIds,curActiveData.activityId)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local LimitExchange = this.GetActivityTypeInfo(ActivityTypeDef.LimitExchange)
|
|
|
|
|
if LimitExchange then
|
|
|
|
|
if LimitExchange.endTime - GetTimeStamp() > 0 then
|
|
|
|
|
table.insert(activityIds,LimitExchange.activityId)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local patFaceAllData = nil
|
|
|
|
|
if RecruitManager.isTenRecruit == 0 then
|
|
|
|
|
patFaceAllData = { ConfigManager.GetConfigData(ConfigName.LoginPosterConfig, 1) }
|
|
|
|
|
end
|
|
|
|
|
if patFaceAllData and #patFaceAllData > 0 then
|
|
|
|
|
table.insert(activityIds,ActivityTypeDef.PatFace)
|
|
|
|
|
end
|
|
|
|
|
--幸运探宝
|
|
|
|
|
local luckyTurnTable_One = 0
|
|
|
|
|
luckyTurnTable_One = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LuckyTurnTable_One)
|
|
|
|
|
local upper_Two = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LuckyTurnTable_Two)
|
|
|
|
|
if luckyTurnTable_One then
|
|
|
|
|
if luckyTurnTable_One > 0 then
|
|
|
|
|
table.insert(activityIds, luckyTurnTable_One)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if upper_Two then
|
|
|
|
|
if upper_Two > 0 then
|
|
|
|
|
table.insert(activityIds, upper_Two)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--福星高照
|
|
|
|
|
local luckyCat = 0
|
|
|
|
|
luckyCat = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LuckyCat)
|
|
|
|
|
if luckyCat then
|
|
|
|
|
if luckyCat > 0 then
|
|
|
|
|
table.insert(activityIds, luckyCat)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- 七日
|
|
|
|
|
local sevenDay = 0
|
|
|
|
|
sevenDay = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.EightDayGift)
|
|
|
|
|
if sevenDay then
|
|
|
|
|
if sevenDay > 0 then
|
|
|
|
|
table.insert(activityIds, sevenDay)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return activityIds
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---关卡通关豪礼相关---
|
|
|
|
|
--根据当前关数 获取最近下一关卡橙色角色
|
|
|
|
|
function this.GetNextHeroInfo()
|
|
|
|
|
local allData={}
|
|
|
|
|
local heroData={}
|
|
|
|
|
--Log("当前通过关卡"..FightPointPassManager.lastPassFightId)
|
|
|
|
|
local startIndex=5001
|
|
|
|
|
local mainLevelEndId=ConfigManager.TryGetConfigDataByKey(ConfigName.MainLevelConfig,"NextLevel",-1).Id--最高关卡
|
|
|
|
|
local endIndex=this.GetConfigForValues(ConfigName.ActivityRewardConfig,mainLevelEndId).Id
|
|
|
|
|
|
|
|
|
|
--活动表处于开始结束索引之间的全部数据
|
|
|
|
|
for i = startIndex, endIndex do
|
|
|
|
|
local reward = ConfigManager.TryGetConfigData(ConfigName.ActivityRewardConfig,i)
|
|
|
|
|
if reward then
|
|
|
|
|
table.insert(allData, reward)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--输出ActivityRewardConfig里下一关的索引
|
|
|
|
|
local index
|
|
|
|
|
for i = 1, #allData do
|
|
|
|
|
if ConfigManager.GetConfigData(ConfigName.MainLevelConfig,FightPointPassManager.curOpenFight).SortId-1 < ConfigManager.GetConfigData(ConfigName.MainLevelConfig,allData[i].Values[1][1]).SortId then
|
|
|
|
|
index= this.GetConfigForValues(ConfigName.ActivityRewardConfig,allData[i].Values[1][1]).Id
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--剩余数据
|
|
|
|
|
local residueData={}
|
|
|
|
|
for i = index, endIndex do
|
|
|
|
|
local reward = ConfigManager.TryGetConfigData(ConfigName.ActivityRewardConfig,i)
|
|
|
|
|
if reward then
|
|
|
|
|
table.insert(residueData, reward)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--剩余数据中将立绘数据存入
|
|
|
|
|
for i = 1, #residueData do
|
|
|
|
|
local itemData=ConfigManager.GetConfigData(ConfigName.ItemConfig,residueData[i].Reward[1][1])
|
|
|
|
|
if itemData.ItemType==1 and (itemData.Quantity==5 or itemData.Quantity==4)then --and allData[i].Reward[1][2]==1
|
|
|
|
|
table.insert(heroData,residueData[i])
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if #heroData>0 then --如果有数据
|
|
|
|
|
return heroData[1].Reward[1][1],heroData[1].Values[1][1] --返回目标立绘id 关卡id
|
|
|
|
|
else
|
|
|
|
|
return #heroData,#heroData--如果没数据 返回0
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--根据双重key的value锁定id value为2维数组(目前没有这种接口)
|
|
|
|
|
function this.GetConfigForValues(configName,pointId)
|
|
|
|
|
local data={}
|
|
|
|
|
for _, configInfo in ConfigPairs(ConfigManager.GetConfig(configName)) do
|
|
|
|
|
if configInfo.ActivityId == 3 and configInfo.Values[1][1] == pointId then
|
|
|
|
|
data = configInfo
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return data
|
|
|
|
|
end
|
|
|
|
|
---------------------
|
|
|
|
|
--- 根据活动ID获取表格中相同活动ID第一项的数据
|
|
|
|
|
function this.GetActivityDataById(id)
|
|
|
|
|
for k, v in ConfigPairs(ActivityRewardConfig) do
|
|
|
|
|
if v and v.ActivityId == id then
|
|
|
|
|
return v
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---剑影仙踪相关---
|
|
|
|
|
--获取剑影仙踪任务数据
|
|
|
|
|
function this.GetTaskData()
|
|
|
|
|
local taskList={}
|
|
|
|
|
local taskValue=0
|
|
|
|
|
|
|
|
|
|
local data= this.GetActivityTypeInfo(ActivityTypeDef.SupremeHero)
|
|
|
|
|
|
|
|
|
|
if not data then
|
|
|
|
|
return 0, taskList
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
table.sort(data.mission,function(a,b)
|
|
|
|
|
return a.missionId<b.missionId
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
for i = 1, #data.mission do
|
|
|
|
|
table.insert(taskList,i, data.mission[i].state)
|
|
|
|
|
if data.mission[i].state >= 1 then
|
|
|
|
|
taskValue = taskValue + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return taskValue,taskList
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--剑影仙踪红点检测 差一个通关完毕 符合要求的红点检测 点击领取红点未检测
|
|
|
|
|
function this.CheckSupremeHeroRedPoint()
|
|
|
|
|
if not ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.SupremeHero) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local isOpen
|
|
|
|
|
local num,list= this.GetTaskData()
|
|
|
|
|
|
|
|
|
|
local complete=0 --任务是否完成
|
|
|
|
|
local receive=0 --任务是否领取
|
|
|
|
|
for i = 1, #list do
|
|
|
|
|
if list[i]>0 then
|
|
|
|
|
complete=complete+1
|
|
|
|
|
end
|
|
|
|
|
if list[i]==2 then
|
|
|
|
|
receive=receive+1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if complete<3 then--任务未完成
|
|
|
|
|
isOpen=PatFaceManager.isFirstLog==0 and not this.isFirstForSupremeHero
|
|
|
|
|
else
|
|
|
|
|
isOpen=receive<3
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return isOpen
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--获取活动剩余时间
|
|
|
|
|
function this.GetTaskRemainTime(activityType)
|
|
|
|
|
local remainTime = 0
|
|
|
|
|
remainTime =this.GetTaskEndTime(activityType)- this.GetTaskEndTime(activityType)
|
|
|
|
|
return remainTime
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function this.GetRewardState()
|
|
|
|
|
local taskValue,missionData= this.GetTaskData()
|
|
|
|
|
local doneNum = 0
|
|
|
|
|
for i = 1, 3 do
|
|
|
|
|
if missionData[i] == 2 then
|
|
|
|
|
doneNum = doneNum + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local state = doneNum == 3 and 3 or 2
|
|
|
|
|
return state
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
----------------
|
|
|
|
|
-- 获取下一个每日奖励的时间
|
|
|
|
|
function this.GetNextOnlineRewardData()
|
|
|
|
|
for _, data in ipairs(this.onlineData) do
|
|
|
|
|
local state = this.onlineGetRewardState[data.Id]
|
|
|
|
|
if state ~= 1 then -- 如果不是已完成状态则返回数据
|
|
|
|
|
if state == 0 then
|
|
|
|
|
local curOnlineTime = GetTimeStamp() - ActivityGiftManager.cuOnLineTimestamp
|
|
|
|
|
local needTime = data.Values[1][1]*60
|
|
|
|
|
if curOnlineTime < needTime then
|
|
|
|
|
state = -1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return data, state
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--达人获取id
|
|
|
|
|
function this.GetOpenExpertIdByActivityType(activityType)
|
|
|
|
|
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(activityType)
|
|
|
|
|
if activityInfo then
|
|
|
|
|
return activityInfo.activityId
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--------------------------------------------
|
|
|
|
|
--主动刷新 置本地数据
|
|
|
|
|
function this.RefreshAcitvityData(acitvityIds,fun)
|
|
|
|
|
NetManager.RefreshAcitvityData(acitvityIds,function (msg)
|
|
|
|
|
for i = 1, #msg.activityInfo do
|
|
|
|
|
if this.mission[msg.activityInfo[i].activityId] then
|
|
|
|
|
this.mission[msg.activityInfo[i].activityId].value = msg.activityInfo[i].value
|
|
|
|
|
for j = 1, #msg.activityInfo[i].mission do
|
|
|
|
|
for _, missionInfo in pairs(this.mission[msg.activityInfo[i].activityId].mission) do
|
|
|
|
|
if missionInfo.missionId == msg.activityInfo[i].mission[j].missionId then
|
|
|
|
|
missionInfo.state = msg.activityInfo[i].mission[j].state
|
|
|
|
|
missionInfo.progress = msg.activityInfo[i].mission[j].progress
|
|
|
|
|
--LogError("msg.activityInfo[i].mission[j] "..msg.activityInfo[i].mission[j].missionId.." "..msg.activityInfo[i].mission[j].progress)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if fun then fun() end
|
|
|
|
|
CheckRedPointStatus(RedPointType.Expert_UpLv)
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取活动已开启的时间
|
|
|
|
|
function this.GetCurrentDayNumber(type)
|
|
|
|
|
local DayActInfo = ActivityGiftManager.GetActivityTypeInfo(type)
|
|
|
|
|
local startTime = DayActInfo.startTime
|
|
|
|
|
local needDayNumber = math.ceil((GetTimeStamp() - startTime) / 86400)
|
|
|
|
|
return needDayNumber
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--章节检测距离下次领奖还有几关
|
|
|
|
|
function this.GetRewardNeedLevel()
|
|
|
|
|
for i = 1, table.nums(this.chapterGetRewardState) do
|
|
|
|
|
for j, v in pairs(this.chapterGiftData) do
|
|
|
|
|
if (i == v.Sort) then
|
|
|
|
|
if FightPointPassManager.GetFightStateById(v.Values[1][1]) ~= FIGHT_POINT_STATE.PASS and this.chapterGetRewardState[v.Id] == 0 then
|
|
|
|
|
return this.mainLevelConfig[v.Values[1][1]].SortId - this.mainLevelConfig[FightPointPassManager.curOpenFight].SortId + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
--开服福利排序
|
|
|
|
|
local OpenSeverWelfareSortTable = {
|
|
|
|
|
[0] = 1,
|
|
|
|
|
[1] = 0,
|
|
|
|
|
}
|
|
|
|
|
function this. OpenSeverWelfareRewardTabsSort(missions)
|
|
|
|
|
table.sort(missions,function(a,b)
|
|
|
|
|
if a.state == b.state then
|
|
|
|
|
return a.missionId < b.missionId
|
|
|
|
|
else
|
|
|
|
|
return OpenSeverWelfareSortTable[a.state] > OpenSeverWelfareSortTable[b.state]
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.GetTimeStartToEnd(type)
|
|
|
|
|
local info= ActivityGiftManager.GetActivityTypeInfo(type)
|
|
|
|
|
local startTime= this.GetTimeShow(info.startTime)
|
|
|
|
|
local endtime= this.GetTimeShow(info.endTime)
|
|
|
|
|
return startTime.."~"..endtime
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---时间格式化接口
|
|
|
|
|
function this.GetTimeShow(data)
|
|
|
|
|
local year = math.floor(os.date("%Y", data))
|
|
|
|
|
local month = math.floor(os.date("%m", data))
|
|
|
|
|
local day = math.floor(os.date("%d", data))
|
|
|
|
|
local time = year .. "-" .. month .. "-" .. day
|
|
|
|
|
return time
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return this
|