---@class KLOpenServerAthleticsPanel:UIKmlLuaPanelBase ---@field view KLOpenServerAthleticsPanelView local KLOpenServerAthleticsPanel = class(UIKmlLuaPanelBase) local this = KLOpenServerAthleticsPanel function this:AsyncLoadUI() end ---创建时调用一次 function this:Init() self.BaseSelectIndex = 0 self.careerId = SL:GetMetaValue(EMetaVarGetKey.JOB) self.ShowDataRankList = {}---服务器排行数据 ---@type cfg_openSerCompetition_rank_column self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[1]---客户端排行数据 self.openSerCompetitionTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl self.UIOpenServerRankingTemplateList = {} self.UIPersonChallengeTemplateList = {} self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[1]---客户端排行数据 self.ShowDataChallengeList = {}---服务器积分数据 self.ChallengeLitmList = {} self.UIGiftTemplateList = {} self.ShowDataGiftTbl = {} self.TradeBtnList = {} self.TradeBtnList[1] = self.view.BtnRanking self.TradeBtnList[2] = self.view.BtnChallenge self.TradeBtnList[3] = self.view.BtnGiftBag self.BtnSelectIndex = 0 self.TradeBtnSelectIndex = 0 self:InitBtn() self:InitRankList() self:InitChallengeList() self:InitGiftList() end function this:InitGiftList() GUI:DataListInitData(self.view.GiftListDataList, function() return table.count(self.ShowDataGiftTbl) end, function() local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGift/KLOpenServerAthleticsGiftItem", self.view.UIOpenServerRankingDataList, self, nil, true) if not self.UIGiftTemplateList then self.UIGiftTemplateList = {} end local kmlCtrl = item.view.root self.UIGiftTemplateList[kmlCtrl] = item return kmlCtrl end, function() end, function(realIndex, kmlCtrl) local luaIndex = realIndex + 1 local item = self.UIGiftTemplateList[kmlCtrl] item:UpdateUI(luaIndex, self.ShowDataGiftTbl) end) end function this:GetGiftTblByType(type) local list = {} if InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl then for _, gift in pairs(InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[type].gift) do if gift[1] == self.careerId or gift[1] == 0 then for i, id in pairs(gift) do if i ~= 1 then local data = SL:GetConfig("cfg_openSerCompetition_gift", id) table.insert(list, data) end end end end end table.sort(list, function(a, b) if a.count and b.count then local buycount1, totalcount1 = InfoManager.countInfo:GetLimitAndTotalCountByKey(a.count) local buycount2, totalcount2 = InfoManager.countInfo:GetLimitAndTotalCountByKey(b.count) if buycount1 <= 0 and buycount2 > 0 then return false end if buycount1 > 0 and buycount2 <= 0 then return true end end return a.id < b.id end) return list end function this:InitChallengeList() GUI:DataListInitData(self.view.UIPersonChallengeDataList, function() return table.count(self.ShowDataChallengeTbl) - 1 end, function() local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsPersonChallenge/KLOpenServerAthleticsPersonChallengeItem", self.view.UIOpenServerRankingDataList, self, nil, true) if not self.UIPersonChallengeTemplateList then self.UIPersonChallengeTemplateList = {} end local kmlCtrl = item.view.root self.UIPersonChallengeTemplateList[kmlCtrl] = item return kmlCtrl end, function() end, function(realIndex, kmlCtrl) local luaIndex = realIndex + 1 local item = self.UIPersonChallengeTemplateList[kmlCtrl] item:UpdateUI(luaIndex, self.ShowDataChallengeTbl, self.ShowDataChallengeList, self.BtnSelectIndex) end) end function this:InitRankList() GUI:DataListInitData(self.view.UIOpenServerRankingDataList, function() return table.count(self.ShowDataRankTbl) end, function() local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsRanking/KLOpenServerAthleticsRankingItem", self.view.UIOpenServerRankingDataList, self, nil, true) if not self.UIOpenServerRankingTemplateList then self.UIOpenServerRankingTemplateList = {} end local kmlCtrl = item.view.root self.UIOpenServerRankingTemplateList[kmlCtrl] = item return kmlCtrl end, function() end, function(realIndex, kmlCtrl) local Rank = realIndex + 1 local item = self.UIOpenServerRankingTemplateList[kmlCtrl] item:UpdateUI(Rank, self.ShowDataRankTbl, self.ShowDataRankList, self.BtnSelectIndex) end) --GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList) end function this:InitBtn() self.BtnTempList = {} ---@type cfg_openSerCompetition_column GUI:DataListInitData(self.view.BtnDataList, function() return table.count(self.openSerCompetitionTbl) end, function() end, function() end, function(realIndex) local index = realIndex + 1 local BtnInfo = self.openSerCompetitionTbl[index] local UIOpenServerBtnTemplate = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'UIOpenServerBtnTemplate') local OnGoing = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'OnGoing') local Lock = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'Lock') local Red = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'Red') local IsLock = false local IsShow = false local showCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].showCondition local activityCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].activityCondition local nextShowCondition = "false" if InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index + 1] then nextShowCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index + 1].showCondition end if showCondition == "" or ConditionManager.Check4D(showCondition) then GUI:SetActive(UIOpenServerBtnTemplate, true) IsShow = true else GUI:SetActive(UIOpenServerBtnTemplate, false) IsShow = false end local rankSettlementTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].rankSettlementTime - 1 local reRankTime = SL:GetEndTimeStamp(tonumber(rankSettlementTime), 0) if reRankTime - Time.GetServerTime() >= 0 then GUI:SetActive(OnGoing, true) else GUI:SetActive(OnGoing, false) end if activityCondition == "" or ConditionManager.Check4D(activityCondition) then GUI:SetActive(Lock, false) IsLock = false else GUI:SetActive(Lock, true) GUI:SetActive(OnGoing, false) IsLock = true end if self.BaseSelectIndex == 0 and not IsLock and IsShow then self.BaseSelectIndex = BtnInfo.type end --[[ if nextShowCondition == "false" or not ConditionManager.Check4D(nextShowCondition) then GUI:SetActive(OnGoing, true) end]] GUI:Button_setTitleText(UIOpenServerBtnTemplate, BtnInfo.name) local btnData = { IsLock = IsLock, index = BtnInfo.type } GUI:AddOnClickEvent(UIOpenServerBtnTemplate, self, self.BtnListOnclick, btnData) local data = { OnGoing = OnGoing, Lock = Lock, UIOpenServerBtnTemplate = UIOpenServerBtnTemplate, Red = Red } self.BtnTempList[BtnInfo.type] = data end) end function this:UpDataRedBtn() for type, v in pairs(self.BtnTempList) do if InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(type) or InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(type) then GUI:SetActive(v.Red, true) else GUI:SetActive(v.Red, false) end end end function this:BtnListOnclick(_, data) local index = data.index if index == self.BtnSelectIndex then return end if data and data.IsLock == true then local activityCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[index].activityCondition local day = ConditionManager.GetConditionParams(activityCondition) if day and day[1] then SL:TipMessage("第" .. day[1] .. "天开启", 1, NoticeType.NoticeMid) end if day and day[2] and tonumber(day[2]) < SL:GetOpenServerDay() then ---已结束 SL:TipMessage("已结束", 1, NoticeType.NoticeMid) end return end self.BtnSelectIndex = index GUI:SetActive(self.view.Red1, false) GUI:SetActive(self.view.Red2, InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(self.BtnSelectIndex)) GUI:SetActive(self.view.Red3, InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(self.BtnSelectIndex)) ----变动数据刷新界面 if data and data.index then self:SelectBtn(index) if self.TradeBtnSelectIndex == 1 then local rankGroup = InfoManager.openServerAthleticsInfo:FindRankTblByType(self.BtnSelectIndex) self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[rankGroup] ---竞技排行 SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_COMPETITION_RANK_INFO, { type = index }) elseif self.TradeBtnSelectIndex == 2 then local ChallengeGroup = InfoManager.openServerAthleticsInfo:FindChallengeTblByType(self.BtnSelectIndex) self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[ChallengeGroup] SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_INFO, { type = index }) else self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex) GUI:DataListUpdateData(self.view.GiftListDataList) end local limitTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].challengeLimitTime - 1 local reTime = SL:GetEndTimeStamp(tonumber(limitTime), 0) if reTime - Time.GetServerTime() >= 0 then GUI:SetActive(self.view.BtnLimitIcon, true) else GUI:SetActive(self.view.BtnLimitIcon, false) end end end function this:SelectBtn(index) for i, v in pairs(self.BtnTempList) do if i == index then GUI:Image_loadTexture(v.UIOpenServerBtnTemplate, "btn_chosen", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") else GUI:Image_loadTexture(v.UIOpenServerBtnTemplate, "btn_nochosen", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") end end end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.BtnRanking, self, self.TradeBtnListOnclick, 1) GUI:AddOnClickEvent(self.view.BtnChallenge, self, self.TradeBtnListOnclick, 2) GUI:AddOnClickEvent(self.view.BtnGiftBag, self, self.TradeBtnListOnclick, 3) SL:RegisterLUAEvent(LUA_EVENT_COMPETITION_RANK_CHANGE, self.LUA_EVENT_COMPETITION_RANK_CHANGE, self) SL:RegisterLUAEvent(LUA_EVENT_SINGLE_CHALLENGE_CHANGE, self.LUA_EVENT_SINGLE_CHALLENGE_CHANGE, self) SL:RegisterLUAEvent(LUA_OPEN_SERVER_GIFT_COUNT_CHANGE, self.LUA_OPEN_SERVER_GIFT_COUNT_CHANGE, self) GUI:AddOnClickEvent(self.view.PersonLastBtnGo, self, self.PersonLastBtnGoOnclick) end function this:PersonLastBtnGoOnclick() local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)] if lastTbl then if self.IsGetChallengeState == 0 and self.BtnSelectIndex then local instruction = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].instruction GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel") shortcutOutMgr.DO(instruction) --SL:HideMainPanel() return end if self.IsGetChallengeState == 1 then SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_AWARD, { id = lastTbl.id }) else SL:TipMessage(SL:GetConfig('cfg_string', 338).text, 1, NoticeType.NoticeMid) return end end end function this:LUA_OPEN_SERVER_GIFT_COUNT_CHANGE(_, key) if key then --[[ local pos = 1 for i,v in pairs(self.ShowDataGiftTbl) do if v.count == key then pos = i end end]] self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex) GUI:DataListUpdateData(self.view.GiftListDataList) --GUI:SetScrollView_scrollpos(self.view.GiftList,pos) GUI:SetActive(self.view.Red3, InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(self.BtnSelectIndex)) self:UpDataRedBtn() SL:RefreshPanelALLRedStateKmlByCondition("KLUISystemTopPanel") InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed()) end end ---个人排行消息 function this:LUA_EVENT_COMPETITION_RANK_CHANGE(_, type) if type then if tonumber(type) ~= self.BtnSelectIndex then return end self.ShowDataRankList = {} local dataList = InfoManager.openServerAthleticsInfo.RankDataList[type] for _, v in pairs(dataList.rankInfo) do self.ShowDataRankList[v.rank] = v end local desc = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].desc local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].rankLimitData if dataList.myInfo and dataList.myInfo.myNum ~= 0 and dataList.myInfo.myNum >= rankLimitData then GUI:Text_setString(self.view.Mintxt, "当前排名: 无") if dataList.myInfo.rank ~= 0 then GUI:Text_setString(self.view.Mintxt, "当前排名: " .. dataList.myInfo.rank) end GUI:Text_setString(self.view.MidText, desc[1] .. ":" .. dataList.myInfo.myNum) GUI:Text_setString(self.view.Tiptxt, "(" .. desc[2] .. ")") else GUI:Text_setString(self.view.Mintxt, desc[1] .. ":" .. dataList.myInfo.myNum) GUI:Text_setString(self.view.MidText, "最低上榜条件:" .. rankLimitData) GUI:Text_setString(self.view.Tiptxt, "(" .. desc[2] .. ")") end local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].rankSettlementTime - 1 local reRankTime = SL:GetEndTimeStamp(tonumber(rankLimitData), 0) if self.RankTimer then SL:UnSchedule(self.RankTimer) end self.RankTimer = nil if reRankTime - Time.GetServerTime() >= 0 then self.RankTimer = SL:Schedule(self.RankTimer, 0, 1, -1, function() local timeText = reRankTime - Time.GetServerTime() GUI:Text_setString(self.view.TxtTimePrefix, "排行进行中 " .. GUIUtil.FormatTimeHMSD(timeText // 1000)) if timeText <= 0 then GUI:Text_setString(self.view.TxtTimePrefix, "排行已产生") GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList) GUI:DataListUpdateData(self.view.BtnDataList,_,function() self:BtnListOnclick(_, { index = self.BaseSelectIndex }) end) return end end) else GUI:Text_setString(self.view.TxtTimePrefix, "排行已产生") end GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList) end end ---积分消息 function this:LUA_EVENT_SINGLE_CHALLENGE_CHANGE(_, type) if type then if tonumber(type) ~= self.BtnSelectIndex then return end self.ShowDataChallengeList = {} local dataList = InfoManager.openServerAthleticsInfo.PersonDataList[type] self.ShowDataChallengeList = dataList table.sort(self.ShowDataChallengeTbl, function(a, b) local isGetA = false local isGetB = false local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)] if a.id == lastTbl.id or b.id == lastTbl.id then return a.id < b.id end for key, v in pairs(dataList.challengeAwardInfo) do if a.id == tonumber(key) then isGetA = true end if b.id == tonumber(key) then isGetB = true end end if isGetA and not isGetB then return false end if not isGetA and isGetB then return true end return a.id < b.id end) GUI:DataListUpdateData(self.view.UIPersonChallengeDataList) self:ChallengeUpdateUI() GUI:SetActive(self.view.Red2, InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(self.BtnSelectIndex)) self:UpDataRedBtn() InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed()) end end ---更改界面显示 function this:TradeBtnListOnclick(_, index) if index then if index == self.TradeBtnSelectIndex then return end if self.BtnSelectIndex == 0 then return end self.TradeBtnSelectIndex = index self:SelectTradeBtn(index) if index == 1 then GUI:SetActive(self.view.RankPanel, true) GUI:SetActive(self.view.PersonPanel, false) GUI:SetActive(self.view.GiftPanel, false) local rankGroup = InfoManager.openServerAthleticsInfo:FindRankTblByType(self.BtnSelectIndex) self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[rankGroup] SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_COMPETITION_RANK_INFO, { type = self.BtnSelectIndex }) elseif index == 2 then GUI:SetActive(self.view.RankPanel, false) GUI:SetActive(self.view.PersonPanel, true) GUI:SetActive(self.view.GiftPanel, false) local ChallengeGroup = InfoManager.openServerAthleticsInfo:FindChallengeTblByType(self.BtnSelectIndex) self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[ChallengeGroup] SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_INFO, { type = self.BtnSelectIndex }) elseif index == 3 then GUI:SetActive(self.view.RankPanel, false) GUI:SetActive(self.view.PersonPanel, false) GUI:SetActive(self.view.GiftPanel, true) self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex) GUI:DataListUpdateData(self.view.GiftListDataList) end end end function this:ChallengeUpdateUI() if self.ShowDataChallengeTbl then self.IsGetChallengeState = 0 self.IsLimitReward = false local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)] GUI:Text_setString(self.view.PersonLastCount, lastTbl.desc) GUI:SetActive(self.view.PersonLastFinished, false) GUI:Text_setString(self.view.PersonLastBtnGo, "去提升") GUI:SetActive(self.view.Red4, false) if self.ShowDataChallengeList then if self.ShowDataChallengeList.num >= lastTbl.typeDemandValue then GUI:Text_setString(self.view.PersonLastjindu_count, "" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "/" .. GUIUtil.GetSampleNumberString(lastTbl.typeDemandValue)) else GUI:Text_setString(self.view.PersonLastjindu_count, "" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "/" .. GUIUtil.GetSampleNumberString(lastTbl.typeDemandValue)) end if self.ShowDataChallengeList.num >= lastTbl.typeDemandValue then GUI:SetActive(self.view.Red4, true) GUI:Text_setString(self.view.PersonLastBtnGo, "可领取") self.IsGetChallengeState = 1 for key, v in pairs(self.ShowDataChallengeList.challengeAwardInfo) do if lastTbl.id == tonumber(key) then GUI:Text_setString(self.view.PersonLastBtnGo, "已领取") GUI:SetActive(self.view.Red4, false) self.IsGetChallengeState = 2 self.IsLimitReward = v end end end end -------------倒计时------------------------------------- if self.ChallengeTimer then SL:UnSchedule(self.ChallengeTimer) end self.ChallengeTimer = nil local limitTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].challengeLimitTime - 1 local reTime = SL:GetEndTimeStamp(tonumber(limitTime), 0) if self.IsLimitReward == true then GUI:SetActive(self.view.PersonLastEndIcon, false) else GUI:SetActive(self.view.PersonLastEndIcon, true) end if reTime - Time.GetServerTime() >= 0 then GUI:SetActive(self.view.BtnLimitIcon, true) GUI:SetActive(self.view.PersonLastEndIcon, true) GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_xianshi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") self:ShowTime(reTime) else GUI:SetActive(self.view.BtnLimitIcon, false) GUI:Text_setString(self.view.PersonLastLimitTime, "") GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") -- GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") end -------------------------------------------------------------------- local index = 1 for i, v in pairs(lastTbl.challengeReward) do local itemId = v[1] local count = v[2] local data = { width = "60", height = "60", itemid = itemId, mfixsize = "60,60", tips = "1", itemcustomcount = count } --[[ if self.ChallengeLitmList[index] then GUI:Item_UpdataData(self.ChallengeLitmList[index], data) else local item = GUI:Item_Create(self.view.layout59, data) self.ChallengeLitmList[index] = item end GUI:AddOnClickEvent(self.ChallengeLitmList[index], self, function() SL:OpenTips(nil, itemId) end)]] if not self.ChallengeLitmList[index] then self.ChallengeLitmList[index] = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGetItem/KLOpenServerAthleticsGetItemItem", self.view.layout59, self, nil, true) end self.ChallengeLitmList[index]:UpDataItem(data) if self.IsGetChallengeState == 2 then self.ChallengeLitmList[index]:SetGet(true) else self.ChallengeLitmList[index]:SetGet(false) end index = index + 1 end local limitTimeReward = lastTbl.limitTimeReward if limitTimeReward then if table.isNullOrEmpty(limitTimeReward) then GUI:setVisible(self.view.PersonLastLimitAward, false) return end GUI:setVisible(self.view.PersonLastLimitAward, true) for i, v in pairs(limitTimeReward) do if v[1] == self.careerId or v[1] == 0 then local itemId = v[2] local count = v[3] local data = { width = "55", height = "55", itemid = itemId, mfixsize = "55,55", tips = "1", bgtype = "0", itemcustomcount = count } if not self.ChallengeLitmList[index] then self.ChallengeLitmList[index] = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGetItem/KLOpenServerAthleticsGetItemItem", self.view.PersonLastLimitAward, self, nil, true) end self.ChallengeLitmList[index]:UpDataItem(data) if self.IsLimitReward then self.ChallengeLitmList[index]:SetGet(true) else self.ChallengeLitmList[index]:SetGet(false) end end end end end end function this:ShowTime(endTime) self.ChallengeTimer = SL:Schedule(self.ChallengeTimer, 0, 1, -1, function() local timeText = endTime - Time.GetServerTime() GUI:Text_setString(self.view.PersonLastLimitTime, "" .. GUIUtil.FormatTimeHMSD(timeText // 1000) .. "") if timeText <= 0 then GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") GUI:Text_setString(self.view.PersonLastLimitTime, "") --[[ if self.ChallengeTimer then SL:UnSchedule(self.ChallengeTimer) end]] return end end) end function this:SelectTradeBtn(index) for i, v in pairs(self.TradeBtnList) do if i == index then GUI:Image_loadTexture(v, "btn_green1", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") else GUI:Image_loadTexture(v, "btn_green2", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas") end end end ---界面显示时调用一次 function this:Show() end ---创建或者刷新界面数据时调用 function this:Refresh() self.BtnSelectIndex = 0 self.TradeBtnSelectIndex = 0 self.lastBtnIndex = 1 GUI:DataListUpdateData(self.view.BtnDataList,_,function() self:BtnListOnclick(_, { index = self.BaseSelectIndex }) self:TradeBtnListOnclick(_, 1) self:UpDataRedBtn() end) InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed()) end function this:Close() if self.ChallengeTimer then SL:UnSchedule(self.ChallengeTimer) end self.ChallengeTimer = nil if self.RankTimer then SL:UnSchedule(self.RankTimer) end self.RankTimer = nil for _, v in pairs(self.ChallengeLitmList) do GUI:UIPanel_Close(nil,v) end end return this