123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604 |
- ---@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, "<color=#5DE367>" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "</color>/" .. GUIUtil.GetSampleNumberString(lastTbl.typeDemandValue))
- else
- GUI:Text_setString(self.view.PersonLastjindu_count, "<color=#fe5047>" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "</color>/" .. 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, "<color=#5DE367>" .. GUIUtil.FormatTimeHMSD(timeText // 1000) .. "</color>")
- 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
|