198 lines
6.7 KiB
Lua
198 lines
6.7 KiB
Lua
RankingManager = {}
|
|
local this = RankingManager
|
|
this.CurPage=0
|
|
this.curRankingData={}--战力排行滚动数据
|
|
this.curRankingMyRankData={} --我的数据
|
|
this.mainLevelConfig={}
|
|
this.isRequest=0--防止连续请求
|
|
|
|
function this.Initialize()
|
|
end
|
|
|
|
local cur_rankType = 0
|
|
local cur_activiteId = 0
|
|
local cur_rankIndex = 0
|
|
local cur_isMax = false
|
|
--初始化排行数据(待优化)
|
|
function this.InitData(rankType,fun,id,rankIndex)
|
|
cur_rankType = rankType
|
|
local activiteId = (id ~= nil and id > 0) and id or nil--点金时需要 当为公会副本是为章节id
|
|
cur_activiteId = activiteId
|
|
cur_rankIndex = 1
|
|
cur_isMax = false
|
|
local isCross = 0
|
|
for i = 1, #rankKingList do
|
|
if rankType == rankKingList[i].rankType then
|
|
if rankKingList[i].isRankingMainPanelShow == 2 or rankKingList[i].isRankingMainPanelShow == 3 then
|
|
isCross = 1
|
|
end
|
|
if rankKingList[i].isRankingMainPanelShow == 4 then--跨服十绝阵判断
|
|
if PlayerManager.isCross == 1 then
|
|
isCross = 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
--LogYellow("cur_rankType "..cur_rankType.." activiteId "..tostring(activiteId))
|
|
NetManager.RequestRankInfo(rankType, function (msg)--请求数据
|
|
this.ReceiveRankingData(msg,fun)
|
|
end,activiteId,cur_rankIndex,isCross)
|
|
end
|
|
|
|
--请求排行榜下面数据
|
|
function this.RequestNextWarPowerPageData(fun)
|
|
if cur_isMax then
|
|
--LogGreen(Language[12215])
|
|
return
|
|
end
|
|
-- Log("cur_rankIndex "..cur_rankIndex)
|
|
local isCross = 0
|
|
for i = 1, #rankKingList do
|
|
if cur_rankType == rankKingList[i].rankType then
|
|
if rankKingList[i].isRankingMainPanelShow == 2 or rankKingList[i].isRankingMainPanelShow == 3 then
|
|
isCross = 1
|
|
end
|
|
if rankKingList[i].isRankingMainPanelShow == 4 then
|
|
if PlayerManager.isCross == 1 then
|
|
isCross = 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
NetManager.RequestRankInfo(cur_rankType, function (msg)--请求数据
|
|
this.ReceiveNextRankingData(msg,fun)
|
|
end,cur_activiteId,cur_rankIndex,isCross)
|
|
end
|
|
---战力战力
|
|
--接收服务器战力数据
|
|
function this.ReceiveRankingData(msg,fun)
|
|
--自身数据
|
|
this.curRankingData = {}
|
|
this.curRankingMyRankData=msg.myRankInfo
|
|
--滚动数据
|
|
local length=#this.curRankingData
|
|
for i, rank in ipairs(msg.ranks) do
|
|
-- LogGreen("UserRank:"..rank.rankInfo.rank.." userName:"..rank.userName.." userGuide:"..rank.guildName.." rank.rankInfo.param1:"..rank.rankInfo.param1.." rank.rankInfo.param2:"..rank.rankInfo.param2.." practiceLevel:"..rank.practiceLevel)
|
|
rank.userName = PracticeManager.SetNameColor(rank.userName,rank.practiceLevel)
|
|
--rank.crossScore=100
|
|
this.curRankingData[length+i]=rank
|
|
end
|
|
if #msg.ranks < 20 or #this.curRankingData >= 100 then
|
|
cur_isMax = true
|
|
end
|
|
cur_rankIndex = cur_rankIndex + #msg.ranks
|
|
if fun then fun() end
|
|
-- Game.GlobalEvent:DispatchEvent(GameEvent.RankingList.AllRankingList)
|
|
end
|
|
--接收服务器战力数据
|
|
function this.ReceiveNextRankingData(msg,fun)
|
|
--滚动数据
|
|
local length=#this.curRankingData
|
|
for i, rank in ipairs(msg.ranks) do
|
|
-- LogGreen("UserRank "..rank.rankInfo.rank.." userName "..rank.userName.." rank.rankInfo.param1 "..rank.rankInfo.param1.." practiceLevel:"..rank.practiceLevel)
|
|
-- LogError("rank.practiceLevel:"..tostring(rank.practiceLevel))
|
|
rank.userName = PracticeManager.SetNameColor(rank.userName,rank.practiceLevel)
|
|
this.curRankingData[length+i]=rank
|
|
end
|
|
if #msg.ranks < 20 or #this.curRankingData >= 100 then
|
|
cur_isMax = true
|
|
end
|
|
cur_rankIndex = cur_rankIndex + #msg.ranks
|
|
if fun then fun() end
|
|
end
|
|
--获取排行榜信息
|
|
function this.GetRankingInfo()
|
|
return this.curRankingData, this.curRankingMyRankData
|
|
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()
|
|
local redPoint = this.RefreshRedPoint1()--本服
|
|
if not redPoint then
|
|
redPoint = this.RefreshRedPoint2()--跨服
|
|
end
|
|
return redPoint
|
|
end
|
|
|
|
--本服膜拜红点
|
|
function this.RefreshRedPoint1()
|
|
if (ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.ALLRANKING)) then
|
|
local proud = RankingManager.GetRankProud()
|
|
local allFirstRankProud = RankingManager.GetAllFirstRankProud()
|
|
if proud then
|
|
--i 是编队类型
|
|
for i, v in pairs(proud) do
|
|
if v == 0 and allFirstRankProud[i].uid > 0 and
|
|
(i == RANK_TYPE.FIGHT_LEVEL_RANK or i == RANK_TYPE.FORCE_CURR_RANK or i == RANK_TYPE.GUILD_FORCE_RANK or i == RANK_TYPE.MONSTER_RANK) then--没有膜拜过 --i <= 4 前四个本服
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
return false
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
--跨服膜拜红点
|
|
function this.RefreshRedPoint2()
|
|
if GetTimeStamp() - PlayerManager.GetServerOpenTime() < 7*24*60*60 or PlayerManager.isCross == 0 then
|
|
return false
|
|
end
|
|
if (ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.ALLRANKING)) then
|
|
local proud = RankingManager.GetRankProud()
|
|
local allFirstRankProud = RankingManager.GetAllFirstRankProud()
|
|
if proud and PlayerManager.isCross == 1 then
|
|
--i 是编队类型
|
|
for i, v in pairs(proud) do
|
|
if v == 0 and allFirstRankProud[i].uid > 0 and
|
|
(i == RANK_TYPE.JUMPSERVER_FORCE_CURR_RANK or i == RANK_TYPE.JUMPSERVER_MONSTER_RANK or i == RANK_TYPE.JUMPSERVER_FIGHTLEVEL_STAR or i == RANK_TYPE.JUMPSERVER_GUILD_FORCE_RANK) then--没有膜拜过--i > 4 后四个跨服
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
return false
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
return this |