RankingManager = {} local this = RankingManager --需要显示的排行 local NeedRanking={ --[1]={Id=53,OpenLv=0,Name="外敌",PanelType=0}, [1]={Id=8,OpenLv=0,Name=Language[11725],PanelType=0,Des=Language[11725]}, [2]={Id=30,OpenLv=0,Name=Language[11726],PanelType=0,Des=Language[11259]}, [3]={Id=55,OpenLv=0,Name=Language[11727],PanelType=0,Des=""}, [4]={Id=44,OpenLv=0,Name=Language[11728],PanelType=0,Des=Language[11728]}, [5]={Id=26,OpenLv=0,Name=Language[11729],PanelType=0,Des=""}, } --Tab按钮显示文字 local TabTextData={ -- [1]={txt=""}, [1]={txt=""}, [2]={txt=""}, [3]={txt=""}, [4]={txt=""}, [5]={txt=""}, } this.CurPage=0 this.WarPowerData={}--战力排行滚动数据 this.WarPowerMyRankData={} --我的数据 this.ArenaData={}--逐胜场 this.ArenaMyRankData={} this.TrialData={}--试炼 this.TrialMyRankData={} this.MonsterData={}--兽潮 this.MonsterMyRankData={} this.AdventureData={}--外敌 this.AdventureMyRankData={} this.CustomsPassData={}--关卡 this.CustomsPassMyRankData={} this.GuildData={}--公会 this.GuildMyRankData={} this.GoldExperData={}--点金 this.GoldExperMyRankData={} --是否加载完成 this.LoadCompleted={ WarPower=0, Arena=0, Trial=0, Monster=0, FightAlien=0, CustomsPass=0, GuildForce=0, GoldExperSort=0, } this.mainLevelConfig={} this.isRequest=0--防止连续请求 function this.Initialize() this.InitNeedRanking() end --初始化需要显示的排行 function this.InitNeedRanking() this.mainLevelConfig=ConfigManager.GetConfig(ConfigName.MainLevelConfig) --开启等级赋值 for i = 1, #NeedRanking do NeedRanking[i].OpenLv=ConfigManager.GetConfigData(ConfigName.GlobalSystemConfig,NeedRanking[i].Id).OpenRules[2] end --排序 table.sort(NeedRanking,function(a,b) return a.OpenLv= page then return end --this.CurPage=page --if page==1 then -- this.WarPowerData={} --end --自身数据 this.WarPowerMyRankData.myRank=msg.myRankInfo.rank this.WarPowerMyRankData.myForce=msg.myRankInfo.param1 --滚动数据 local length=#this.WarPowerData for i, rank in ipairs(msg.ranks) do this.WarPowerData[length+i]=rank end this.LoadCompleted.WarPower=1 Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnWarPowerChange) end --请求下一页数据 function this.RequestNextWarPowerPageData() Log(Language[11738]) --if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.ALLRANKING) then -- PopupTipPanel.ShowTip("本赛季已结束") -- return --end ----判断是否符合刷新条件 --local rankNum = #this.WarPowerData ---- 最多显示100 --local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 7) --local MaxNum = config and tonumber(config.Value) or 100 --if rankNum >= MaxNum then return end ---- 上一页数据少于20条,则没有下一页数,不再刷新 --if rankNum % 20 > 0 then -- return --end -- -- 请求下一页 --NetManager.RequestWarPowerSortData(this.CurPage + 1,ActivityTypeDef.WarPowerSort,function(page,msg) -- this.ReceiveWarPowerData(page,msg) --end) end --获取排行榜信息 function this.GetWarPowerInfo() return this.WarPowerData, this.WarPowerMyRankData end ---逐胜场 function this.ReceiveArenaData(page,msg) if this.CurPage >= page then return end this.CurPage=page if page==1 then this.ArenaData={} end --自身数据 this.ArenaMyRankData.myRank=msg.myRank this.ArenaMyRankData.myScore=msg.myscore --滚动数据 local length=#this.ArenaData for i, rank in ipairs(msg.rankInfos) do this.ArenaData[length+i]=rank end this.LoadCompleted.Arena=1 Log(Language[11739]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnArenaChange) end function this.RequestNextArenaPageData() if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.ARENA) then --PopupTipPanel.ShowTip("本赛季已结束") return end --判断是否符合刷新条件 local rankNum = #this.ArenaData -- 最多显示100 local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 3) local MaxNum = config and tonumber(config.Value) or 100 if rankNum >= MaxNum then return end -- 上一页数据少于20条,则没有下一页数,不再刷新 if rankNum % 20 > 0 then return end -- 请求下一页 NetManager.RequestArenaRankData(this.CurPage + 1,function(page,msg) this.ReceiveArenaData(page,msg) end) end function this.GetArenaInfo() return this.ArenaData, this.ArenaMyRankData end ---试炼 function this.ReceiveTrialData(msg) --自身数据 this.TrialMyRankData.rank=msg.myRankInfo.rank this.TrialMyRankData.highestTower=msg.myRankInfo.param1 --滚动数据 local length=#this.TrialData for i, rank in ipairs(msg.ranks) do this.TrialData[length+i]=rank end this.LoadCompleted.Trial=1 Log(Language[11740]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnTrialChange) end function this.GetTrialInfo() return this.TrialData, this.TrialMyRankData end ---兽潮 function this.ReceiveMonsterData(msg) --自身数据 this.MonsterMyRankData.myRank=msg.myRankInfo.rank this.MonsterMyRankData.myScore=msg.myRankInfo.param1 --滚动数据 local length=#this.MonsterData for i, rank in ipairs(msg.ranks) do this.MonsterData[length+i]=rank end this.LoadCompleted.Monster=1 Log(Language[11741]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnMonsterChange) end function this.GetMonsterInfo() return this.MonsterData, this.MonsterMyRankData end ---外敌 function this.ReceiveAdventureData(page,msg) if this.CurPage >= page then return end this.CurPage=page if page==1 then this.AdventureData={} end --自身数据 this.AdventureMyRankData.rank=msg.myInfo.rank this.AdventureMyRankData.hurt=msg.myInfo.hurt --滚动数据 local length=#this.AdventureData for i, rank in ipairs(msg.adventureRankItemInfo) do this.AdventureData[length+i]=rank end this.LoadCompleted.FightAlien=1 Log(Language[11742]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnAdventureChange) end function this.RequestNextAdventurePageData() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.FIGHT_ALIEN) then PopupTipPanel.ShowTip(Language[10082]) return end --判断是否符合刷新条件 local rankNum = #this.AdventureData -- 最多显示100 local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 6) local MaxNum = config and tonumber(config.Value) or 100 if rankNum >= MaxNum then return end -- 上一页数据少于20条,则没有下一页数,不再刷新 if rankNum % 20 > 0 then return end -- 请求下一页 NetManager.GetAdventureRankRequest(this.CurPage + 1,function(page,msg) this.ReceiveAdventureData(page,msg) end) end function this.GetAdventureInfo() return this.AdventureData,this.AdventureMyRankData end ---关卡 function this.ReceiveCustomsPassData(msg) if this.LoadCompleted.CustomsPass==1 then return end --自身数据 this.CustomsPassMyRankData.myRank=msg.myRankInfo.rank this.CustomsPassMyRankData.fightId=msg.myRankInfo.param1 --滚动数据 local length=#this.CustomsPassData for i, rank in ipairs(msg.ranks) do this.CustomsPassData[length+i]=rank end this.LoadCompleted.CustomsPass=1 Log(Language[11743]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnCustomsPassChange) end function this.GetCustomsPassInfo() return this.CustomsPassData,this.CustomsPassMyRankData end ---公会 function this.ReceiveGuildForeData(msg) --this.GuildData={}--公会 --this.GuildMyRankData={} if this.LoadCompleted.GuildForce==1 then return end --自身数据 this.GuildMyRankData.myRank=msg.myRankInfo.rank this.GuildMyRankData.myForce=msg.myRankInfo.param1 --滚动数据 local length=#this.GuildData for i, rank in ipairs(msg.ranks) do this.GuildData[length+i]=rank end this.LoadCompleted.GuildForce=1 Log(Language[11743]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnGuildForceChange) end function this.GetGuildForeInfo() return this.GuildData,this.GuildMyRankData end ---点金 function this.ReceiveGoldExperSortData(msg) if this.LoadCompleted.GoldExperSort==1 then return end --自身数据 this.GoldExperMyRankData.myRank=msg.myRankInfo.rank this.GoldExperMyRankData.myNum=msg.myRankInfo.param1 --滚动数据 local length=#this.GoldExperData for i, rank in ipairs(msg.ranks) do this.GoldExperData[length+i]=rank end this.LoadCompleted.GoldExperSort=1 Log(Language[11744]) Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnGoldExperSortChange) end function this.GetGoldExperSortInfo() return this.GoldExperData,this.GoldExperMyRankData end --膜拜信息 local RankProud = {} local firstRankProud = {}--后端临时数据 function this.SetAllRankProud(types,prouds) for i = 1, #types do RankProud[types[i]] = prouds[i] end end function this.SetSingleRankProud(type,proud) RankProud[type] = proud end function this.GetRankProud() return RankProud end function this.SetAllFirstRankProud(types,_firstRankProud) for i = 1, #_firstRankProud do firstRankProud[types[i]] = _firstRankProud[i] end end function this.GetAllFirstRankProud() return firstRankProud end --数据拆分 d数据 function this.CutDate(d) local dt,db={},{} for i, v in ipairs(d) do if i==1 then table.insert(dt,v) else table.insert(db,v) end end return dt,db end --膜拜红点 function this.RefreshRedPoint() if (ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.ALLRANKING)) then local proud = RankingManager.GetRankProud() local allFirstRankProud = RankingManager.GetAllFirstRankProud() if proud then for i, v in pairs(proud) do --LogGreen("proud[i] "..v) --LogGreen("allFirstRankProud[i].uid "..allFirstRankProud[i].uid) if v == 0 and allFirstRankProud[i].uid ~= 0 then--没有膜拜过 return true end end end return false else return false end end return this