diff --git a/Assets/ManagedResources/~Lua/Modules/DynamicActivity/DynamicActivityManager.lua b/Assets/ManagedResources/~Lua/Modules/DynamicActivity/DynamicActivityManager.lua index 1da0770f8d..bf53a250da 100644 --- a/Assets/ManagedResources/~Lua/Modules/DynamicActivity/DynamicActivityManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/DynamicActivity/DynamicActivityManager.lua @@ -426,4 +426,31 @@ function this.GetActivityTableDataByPageInde(pageIndex) return activityGroupsData end +-- 玩家是否有资格开启 +function this.IsQualifiled(id) + -- 相同类型活动解锁类型相同,所以只判断第一个 + local data = ConfigManager.GetConfigData(ConfigName.ActivityGroups,id) + LogGreen("data:"..tostring(data)) + if not data then return true end + + -- 当前玩家等级 + local qualifiled = false + local playerLv = PlayerManager.level + local openRule = data.OpenRules + LogGreen("openRule:"..tostring(openRule)) + if not openRule or #openRule < 1 then + return true + end + LogGreen("openRule[1]:"..openRule[1].." openRule[2]:"..openRule[2]) + if openRule[1] == 1 then -- 关卡开启 + qualifiled = FightPointPassManager.IsFightPointPass(openRule[2]) + elseif openRule[1] == 2 then -- 等级开启 + qualifiled = playerLv >= openRule[2] + elseif openRule[1] == 3 then -- 工坊等级开启 + qualifiled = WorkShopManager.WorkShopData.lv >= openRule[2] + end + LogGreen("id:"..id.." qualifiled:"..tostring(qualifiled)) + return qualifiled +end + return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua b/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua index a5aff6e296..245bfe152c 100644 --- a/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Main/MainPanel.lua @@ -1195,76 +1195,82 @@ function this.RefreshActivityShow() --八日登陆 this.RefreshEightGiftPreview() - for k,v in ipairs(activitys) do - if v.ActiveType == 0 and v.FunType == 0 then - if v.ActId == 666 then - --限时折扣 - local giftList = {} - giftList = OperatingManager.GetInfoList() - if #giftList > 0 then - local time = giftList[1].endTime - GetTimeStamp() - if time < 1 then - OperatingManager.RemoveItemInfoByType(GoodsTypeDef.DirectPurchaseGift, giftList[1].goodsId) - activityTabs[k].go.gameObject:SetActive(false) - else - activityTabs[k].go.gameObject:SetActive(true) - end - else - activityTabs[k].go.gameObject:SetActive(false) - end - elseif v.ActId == 668 then - --超值基金 - local isOpen_128 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_128) - local isOpen_328 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_328) - activityTabs[k].go.gameObject:SetActive(isOpen_128 or isOpen_328) - local cardType = nil - if isOpen_328 then - cardType = GoodsTypeDef.MONTHCARD_328 - end - if not cardType and isOpen_128 then - cardType = GoodsTypeDef.MONTHCARD_328 - end - if cardType then - local data = OperatingManager.GetGiftGoodsInfo(cardType) - if data then - local time = data.endTime - PlayerManager.serverTime + for k,v in ipairs(activitys) do + local ishow = DynamicActivityManager.IsQualifiled(v.Id) + if ishow then + if v.ActiveType < 1 and v.FunType < 1 then + if v.ActId == 666 then + --限时折扣 + local giftList = {} + giftList = OperatingManager.GetInfoList() + if #giftList > 0 then + local time = giftList[1].endTime - GetTimeStamp() if time < 1 then + OperatingManager.RemoveItemInfoByType(GoodsTypeDef.DirectPurchaseGift, giftList[1].goodsId) activityTabs[k].go.gameObject:SetActive(false) else activityTabs[k].go.gameObject:SetActive(true) - end - end - end - end - elseif v.ActiveType > 0 then - local activityId = ActivityGiftManager.IsActivityTypeOpen(v.ActiveType) - if activityId and activityId > 0 and ActivityGiftManager.IsQualifiled(v.ActiveType) then - if v.ActiveType == 42 then - if ActivityGiftManager.GetRewardState(42) ~= 3 then - local endTime = ActivityGiftManager.GetTaskEndTime(ActivityTypeDef.SupremeHero) - if endTime - PlayerManager.serverTime > 0 then - activityTabs[k].go.gameObject:SetActive(true) - else - activityTabs[k].go.gameObject:SetActive(false) end else - activityTabs[k].go.gameObject:SetActive(false) + activityTabs[k].go.gameObject:SetActive(false) + end + elseif v.ActId == 668 then + --超值基金 + local isOpen_128 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_128) + local isOpen_328 = OperatingManager.IsBaseOpen(GoodsTypeDef.MONTHCARD_328) + activityTabs[k].go.gameObject:SetActive(isOpen_128 or isOpen_328) + local cardType = nil + if isOpen_328 then + cardType = GoodsTypeDef.MONTHCARD_328 + end + if not cardType and isOpen_128 then + cardType = GoodsTypeDef.MONTHCARD_328 + end + if cardType then + local data = OperatingManager.GetGiftGoodsInfo(cardType) + if data then + local time = data.endTime - PlayerManager.serverTime + if time < 1 then + activityTabs[k].go.gameObject:SetActive(false) + else + activityTabs[k].go.gameObject:SetActive(true) + end + end + end + end + elseif v.ActiveType > 0 then + local activityId = ActivityGiftManager.IsActivityTypeOpen(v.ActiveType) + if activityId and activityId > 0 and ActivityGiftManager.IsQualifiled(v.ActiveType) then + if v.ActiveType == 42 then + if ActivityGiftManager.GetRewardState(42) ~= 3 then + local endTime = ActivityGiftManager.GetTaskEndTime(ActivityTypeDef.SupremeHero) + if endTime - PlayerManager.serverTime > 0 then + activityTabs[k].go.gameObject:SetActive(true) + else + activityTabs[k].go.gameObject:SetActive(false) + end + else + activityTabs[k].go.gameObject:SetActive(false) + end + else + activityTabs[k].go.gameObject:SetActive(true) end else - activityTabs[k].go.gameObject:SetActive(true) - end + activityTabs[k].go.gameObject:SetActive(false) + end + elseif v.FunType > 0 then + if ActTimeCtrlManager.SingleFuncState(v.FunType) then + activityTabs[k].go.gameObject:SetActive(true) + else + activityTabs[k].go.gameObject:SetActive(false) + end else - activityTabs[k].go.gameObject:SetActive(false) - end - elseif v.FunType > 0 then - if ActTimeCtrlManager.SingleFuncState(v.FunType) then - activityTabs[k].go.gameObject:SetActive(true) - else - activityTabs[k].go.gameObject:SetActive(false) + activityTabs[k].go.gameObject:SetActive(false) end else - activityTabs[k].go.gameObject:SetActive(false) + activityTabs[k].go.gameObject:SetActive(false) end + end end