RankingManager = {} local this = RankingManager --需要显示的排行 local NeedRanking={ --[1]={Id=53,OpenLv=0,Name="外敌",PanelType=0}, [1]={Id=8,OpenLv=0,Name="逐胜",PanelType=0,Des="逐胜"}, [2]={Id=30,OpenLv=0,Name="试炼",PanelType=0,Des="试炼副本"}, [3]={Id=55,OpenLv=0,Name="战力",PanelType=0,Des=""}, [4]={Id=44,OpenLv=0,Name="试练",PanelType=0,Des="试练"}, [5]={Id=26,OpenLv=0,Name="关卡",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.LoadCompleted={ WarPower=0, Arena=0, Trial=0, Monster=0, FightAlien=0, CustomsPass=0, GuildForce=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 Log("战力 数据加载完成") Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnWarPowerChange) end --请求下一页数据 function this.RequestNextWarPowerPageData() Log("来呀打我呀!!, 就不给你分页") --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("逐胜 数据加载完成") 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("试炼 数据加载完成") 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("兽潮 数据加载完成") 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("外敌 数据加载完成") Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnAdventureChange) end function this.RequestNextAdventurePageData() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.FIGHT_ALIEN) then PopupTipPanel.ShowTip("本赛季已结束") 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("关卡 数据加载完成") 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("关卡 数据加载完成") Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.OnGuildForceChange) end function this.GetGuildForeInfo() return this.GuildData,this.GuildMyRankData end --膜拜信息 local RankProud = {} 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 return this