---@class KLOpenServerAthleticsRankingItem:UIKmlLuaPanelBase ---@field view KLOpenServerAthleticsRankingItemView local KLOpenServerAthleticsRankingItem = class(UIKmlLuaPanelBase) local this =KLOpenServerAthleticsRankingItem ---创建时调用一次 function this:Init() self.RankItemList={} self.careerId = SL:GetMetaValue(EMetaVarGetKey.JOB) end ---注册UI事件和服务器消息 function this:RegistEvents() end ---界面显示时调用一次 function this:Show() end function this:UpdateUI(Rank,ShowDataRankTbl,ShowDataRankList,BtnSelectIndex) local rankNumberBg = self.view.rankNumberBg local rankNumberText = self.view.rankNumberText local HeadIcon = self.view.HeadIcon local PlayerName = self.view.PlayerName local TextTitle = self.view.TextTitle local layout23 = self.view.layout23 if Rank <= 3 then GUI:SetActive(rankNumberBg, true) GUI:SetActive(rankNumberText, false) GUI:Image_loadTexture(rankNumberBg, "img_no" .. Rank, "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") else GUI:SetActive(rankNumberBg, false) GUI:SetActive(rankNumberText, true) GUI:Text_setString(rankNumberText, tostring(Rank)) end GUI:SetActive(HeadIcon,false) GUI:Text_setString(PlayerName, "") GUI:Text_setString(TextTitle, "虚位以待") if ShowDataRankList[Rank] then GUI:SetActive(HeadIcon,true) self:SetHeadIconByCareerId(HeadIcon, ShowDataRankList[Rank].job) local desc = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[BtnSelectIndex].desc GUI:Text_setString(TextTitle, desc[3]..":"..GUIUtil.GetSampleNumberString(ShowDataRankList[Rank].num).. "") GUI:Text_setString(PlayerName, ShowDataRankList[Rank].name) end for i, v in pairs(ShowDataRankTbl[Rank].rankReward) do if v[1] == self.careerId or v[1] == 0 then local itemId = v[2] local count = v[3] local data = { width = "70", height = "70", itemid = itemId, mfixsize = "70,70", tips = "1", itemcustomcount = count } if self.RankItemList[i]then GUI:Item_UpdataData(self.RankItemList[i], data) else local item = GUI:Item_Create(layout23, data) self.RankItemList[i] = item end GUI:AddOnClickEvent(self.RankItemList[i], self, function() SL:OpenTips(nil, itemId) end) end end if self.RankTimer then SL:UnSchedule(self.RankTimer) end self.RankTimer=nil local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[BtnSelectIndex].rankSettlementTime - 1 local reRankTime = SL:GetEndTimeStamp(tonumber(rankLimitData), 0) if reRankTime - Time.GetServerTime() >= 0 then self.RankTimer = SL:Schedule(self.RankTimer, 0, 1, -1, function() local timeText = reRankTime - Time.GetServerTime() GUI:SetActive(self.view.YU, true) if timeText <= 0 then GUI:SetActive(self.view.YU, false) if self.RankTimer then SL:UnSchedule(self.RankTimer) end return end end) else GUI:SetActive(self.view.YU, false) end end function this:SetHeadIconByCareerId(HeadIcon, CareerId) if CareerId == 1 then GUI:Image_loadTexture(HeadIcon, "11", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") elseif CareerId == 2 then GUI:Image_loadTexture(HeadIcon, "12", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") elseif CareerId == 3 then GUI:Image_loadTexture(HeadIcon, "13", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") end end ---创建或者刷新界面数据时调用 function this:Refresh() end function this:Close() if self.RankTimer then SL:UnSchedule(self.RankTimer) end self.RankTimer=nil end return this