FindFairyManager = {}; local this = FindFairyManager --本地表数据 this.rankRewardData={}--排名大奖数据 this.loginScore=0--登陆时的免费次数 this.myScore=0--我的积分 this.tempScore=0--临时积分 local index={39,40,41}--寻仙限时豪礼表索引(rechargeCommodityConfig没字段,暂时写死) this.NoticeState=0--预告状态 0活动状态 1预告状态 --是否处于出海状态 this.isGoToSea=false --是否是活动结束返回this.isOver=false this.isOver=false function this.Initialize() end -- 设置排名大奖数据 function this.SetRankRewardData() local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy) for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRankingReward)) do if(v.ActivityId==curActivityId) then table.insert(this.rankRewardData,v) end end end --设置一些数据 function this.SetActivityData() local activitData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairy) if activitData then this.myScore = activitData.value this.tempScore = activitData.value % 150 this.loginScore =PrivilegeManager.GetPrivilegeRemainValue(32) end --Log("获取数据后 我的积分"..this.myScore.." 免费次数 "..this.loginScore.." 临时积分"..this.tempScore.." ") end --设置免费抽取次数 function this.SetFreeExtract(num) this.myScore = this.myScore + num * 10 this.tempScore = this.tempScore + num * 10 if num == 1 then--单抽 if PrivilegeManager.GetPrivilegeRemainValue(32) > 0 then PrivilegeManager.RefreshPrivilegeUsedTimes(32,num) end else--十连 if PrivilegeManager.GetPrivilegeRemainValue(32) >= 10 then PrivilegeManager.RefreshPrivilegeUsedTimes(32, num) end end local addScore = math.floor(this.tempScore / 150) if addScore > 0 then this.tempScore = this.tempScore - addScore * 150 if PrivilegeManager.GetPrivilegeRemainValue(32)>=0 then PrivilegeManager.RefreshPrivilegeUsedTimes(32, -addScore) end end --local activitData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairy) --if activitData then -- Log("我的积分"..activitData.value.." 临时积分"..(activitData.value % 150).." 免费次数".. PrivilegeManager.GetPrivilegeRemainValue(32).." ") --end end --获取当前期活动Id function this.GetCurActivityId() local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy) return curActivityId end --获取英雄信息 function this.GetHeroData(activityId) local scoreRewardData={} for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)) do if(v.ActivityId==tonumber(activityId)) then table.insert(scoreRewardData,v) end end local heroLiveId = scoreRewardData[1].Drawing local heroData= ConfigManager.GetConfigData(ConfigName.HeroConfig,heroLiveId) return heroData end --获取按钮数据并重新排序数据(操作数据包含value) 寻仙积分奖励、寻仙盛典用 function this.GetBtnDataState(curActivityId) local state={} for i, v in pairs(ActivityGiftManager.mission) do for i = 1, #v.mission do if v.activityId==curActivityId then table.insert(state,{missionId=v.mission[i].missionId,state=v.mission[i].state,value=v.value}) --插入领取状态 当前积分 对应表Id end end end local lingqu={}--领取(请忽略LowB的命名方式) local weidacheng={}--未达成 local yilingqu={}--已领取 local newData={} for i, v in ipairs(state) do local data=ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig,v.missionId) if v.value>= data.Values[1][1] and v.state==0 then lingqu[#lingqu+1]=v end if v.value< data.Values[1][1] then weidacheng[#weidacheng+1]=v end if v.value>= data.Values[1][1] and v.state==1 then yilingqu[#yilingqu+1]=v end end table.sort(lingqu, function (a, b) return a.missionId < b.missionId end) table.sort(weidacheng, function (a, b) return a.missionId < b.missionId end) table.sort(yilingqu, function (a, b) return a.missionId < b.missionId end) for i = 1, #lingqu do newData[#newData + 1] = lingqu[i] end for i = 1, #weidacheng do newData[#newData + 1] = weidacheng[i] end for i = 1, #yilingqu do newData[#newData + 1] = yilingqu[i] end return newData,#lingqu--返回重新排序后的数据,返回可领取的数量 end --获取寻仙限时豪礼数据 并数据重组 寻仙限时豪礼用 function this.GetGiftBtnState() local config={} local data={} local allConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig, "ShowType", DirectBuyType.XSHL) for k,v in pairs(allConfigs) do table.insert(config,ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,v.Id)) local _data=OperatingManager.GetGiftGoodsInfo(config[k].Type,config[k].Id) if _data then table.insert(data,{server=_data,native=config[k]})--data由服务器数据与本地表数据组成 end end local notPurchas={} local purchased={} local newData={} for k,v in pairs(data) do if v.server.buyTimes< v.native.Limit then table.insert(notPurchas,v) else table.insert(purchased,v) end end table.sort(notPurchas,function(a,b) return a.native.Id0 return open end --检测奖励按钮红点 function this.CheckRewardBtn() local open local data,num =this.GetBtnDataState(ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy)) open = num>0 return open end -- --检测进阶礼的红点 -- function this.CheckFindFairyUpStarRedPoint() -- --ActivityTypeDef.FindFairyUpStar -- local activeData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.ShengXingYouLi) -- if activeData then -- for i = 1, #activeData.mission do -- local sConFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, activeData.mission[i].missionId) -- if sConFigData then -- local value = sConFigData.Values[1][1] -- if activeData.mission[i].state == 0 and activeData.mission[i].progress >= value then -- return true -- end -- end -- end -- end -- return false -- end --检测寻仙盛典的红点 function this.CheckFindFairyCeremonyRedPoint() --ActivityTypeDef.FindFairyUpStar local activeData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairyCeremony) if activeData then for i = 1, #activeData.mission do local sConFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, activeData.mission[i].missionId) if sConFigData then local value = sConFigData.Values[1][1] if activeData.mission[i].state == 0 and activeData.value >= value then return true end end end end return false end --获取寻仙天官赐福 and 每日仙缘礼 function this.GetGiftActiveBtnState(DirectBuyTypeVal) local RechargeCommodityConfigIds = {} local allConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig, "ShowType", DirectBuyTypeVal) for k,v in pairs(allConfigs) do local _data=OperatingManager.GetGiftGoodsInfo(v.Type,v.Id) if _data then table.insert(RechargeCommodityConfigIds,v.Id) end end return RechargeCommodityConfigIds end return this