| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- local TowerRankDataMgr = class("TowerRankDataMgr")
- local ClimbingTowerRankData = require("ClimbingTower/ClimbingTowerRankData")
- function TowerRankDataMgr:ctor()
-
- self.ranks = nil
- self.rankPlayerIds = nil
- self.lastPassedTime = 0
- self.selfRank = 10000
- self.type = Enum.FriendTogglePageType.WjTowerRank-- Enum.FriendTogglePageType.ClimbingTower
- self.CallBack = nil
- end
- function TowerRankDataMgr:Clear()
- self.ranks = nil
- self.rankPlayerIds = nil
- end
- function TowerRankDataMgr:FindRankerData(uid)
- if self.ranks == nil then
- return nil
- end
- for i=1, #self.ranks do
- if self.ranks[i].playerId == uid then
- return self.ranks[i]
- end
- end
- return nil
- end
- function TowerRankDataMgr:GetRankList()
- return self.ranks
- end
- function TowerRankDataMgr:GetRankUidList(cnt)
- local uids = {}
- if self.rankPlayerIds ~= nil then
- if cnt > #self.rankPlayerIds then
- cnt = #self.rankPlayerIds
- end
- for i = 1, cnt do
- uids[#uids+1] = self.rankPlayerIds[i]
- end
- end
- return uids
- end
- function TowerRankDataMgr:OnTowerRankAck(data)
- --LogError("OnTowerRankAck:" .. Inspect(data))
- if data.error == 0 then
- self.ranks = {}
- self.rankPlayerIds = {}
- for i = 1, #data.rank_list do
- local player = ClimbingTowerRankData:new(data.rank_list[i].key,data.rank_list[i].value)
- self.ranks[#self.ranks+1] = player
- self.rankPlayerIds[#self.rankPlayerIds+1] = data.rank_list[i].key
- end
- self.selfRank = data.self_rank
- local uid_list = self:GetRankUidList(10)
-
- self:ReqTowerRankBriefData(uid_list)
- else
- self.ranks = nil
- end
- end
- function TowerRankDataMgr:ReqTowerRankBriefData(uids)
- if uids == nil or #uids == 0 then
- --LogError('444444444')
- return
- end
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GET_OTHER_PLAYER_BRIEF_INFO_REQ, {type=self.type, player_list=uids})
- end
- function TowerRankDataMgr:OnGetRankBriefInfoAck(data)
- LogError("aaa OnGetRankBriefInfoAck:" .. Inspect(data))
- if data.type ~= self.type then --WjTowerRank
- return
- end
- if data.brief_info ~= nil then
- for i = 1, #data.brief_info do
- local info = data.brief_info[i]
- local ranker = self:FindRankerData(info.uid)
- if ranker ~= nil then
- ranker:SetRankData(info)
- end
- self:RemoveTempRankerId(info.uid)
- end
- end
- if self.CallBack ~= nil then
- self.CallBack()
- end
- end
- function TowerRankDataMgr:RemoveTempRankerId(uid)
- if self.rankPlayerIds == nil then
- return
- end
- for i = 1, #self.rankPlayerIds do
- if self.rankPlayerIds[i] == uid then
- table.remove(self.rankPlayerIds,i)
- return
- end
- end
- end
- return TowerRankDataMgr
|