local UIHeroMatch3v3Base = UIViewClass() local HeroMatch3v3Race2 = DataSheetManager.ConstData:GetDataByID("HeroMatch3v3Race2").IntValue -- 筛选赛每日参与次数上限 local Const_Stage_View = { [MDL.HeroMatch3v3.Stage.ShowHero] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage6_Supremacy, [MDL.HeroMatch3v3.Stage.match_2T1] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage5, [MDL.HeroMatch3v3.Stage.match_4T2] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage4, [MDL.HeroMatch3v3.Stage.match_8T4] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage3, [MDL.HeroMatch3v3.Stage.match_16T8] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage2, [MDL.HeroMatch3v3.Stage.match_32T16] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage2, [MDL.HeroMatch3v3.Stage.match_64T32] = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage2, } -- 排序:id local function SortStage(MatchStage_1, MatchStage_2) return MatchStage_1.ID > MatchStage_2.ID end function UIHeroMatch3v3Base:OnOpened(context) self:RegistSystemEvent(EventID.UI_CloseAndRecoverView, self.OnCloseAndRecoverView) self:RegistSystemEvent(EventID.UI_HeroMatch3v3_ActiveBaseBG, self.OnActiveBaseBG) self:RegistSystemEvent(EventID.UI_SpecialTeam_TeamMemberFull, self.OnRefreshTeamEntryRed) self:RegistSystemEvent(EventID.UI_SpecialTeam_ApplyInfoHandle, self.OnRefreshTeamEntryRed) self:OnRefreshTeamEntryRed() if MDL.HeroMatch3v3.IsShowHeroMatch3v3Entry() then MDL.HeroMatch3v3.TryGetAllPlayerInfo() MDL.HeroMatch3v3.HeroMatchOpenRequest() MDL.Rank.GetRankInfoReq(MDL.Rank.RankType.HeroMatch3v3, { isPreRank = false }, CTL.Rank.SortType.MyServer) --标题 UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_HeroMatch3v3_Title) UIUtils.SetActive(self.UITemplateTitlePanel.img_LeftTopBg, false) self:RegistSystemEvent(EventID.UI_HeroMatch3v3_CloseView, self.OnBackButtonPressed) -- 赛程结束关闭界面 self:RegistSystemEvent(EventID.UI_HeroMatch3v3_RefreshInfo, self.RefreshHeroMatch3v3BaseView) -- 刷新界面信息 self.curSelectToggleIndex = 0 -- stage选中的cell index self.selectIndex = 0 -- stage 上次选中cell index self.lastSelectIndex = -1 self.btn_Attend:SetGray(true) self:RefreshHeroMatch3v3BaseView() if self.curStageID ~= MDL.HeroMatch3v3.Stage.ShowHero then self:StartRepeatFunc(self.UpdateAllPlayerInfosRepeatFunc, 300) -- 5分钟刷新一次64强玩家信息 else self:StopRepeatFunc(self.UpdateAllPlayerInfosRepeatFunc) end else self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end end function UIHeroMatch3v3Base:OnActiveBaseBG(state) UIUtils.SetActive(self.img_Bottom, state) end function UIHeroMatch3v3Base:OnClosePanel() UIUtils.SetActive(self.UITemplateTitlePanel.img_LeftTopBg, true) end function UIHeroMatch3v3Base:OnRefreshTeamEntryRed() if MDL.SpecialTeam.IsHasMemberApply() or CTL.SpecialTeam.IsHasSpecialTeamFullRedKey() then self.btn_Team:SetRedPoint(true) else self.btn_Team:SetRedPoint(false) end end ---@public 5分钟刷新一次64强玩家信息 function UIHeroMatch3v3Base:UpdateAllPlayerInfosRepeatFunc(deltaTime, timeSinceUpdate) MDL.HeroMatch3v3.TryGetAllPlayerInfo() end ---@public 赛季活动开始后入口状态变更 function UIHeroMatch3v3Base:UpdateAttendBtnStageRepeatFunc(deltaTime, timeSinceUpdate) self.btn_Attend:SetGray(false) end function UIHeroMatch3v3Base:OnBackButtonPressed() self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end function UIHeroMatch3v3Base:OnButtonClicked(comp) if comp == self.UITemplateTitlePanel.btn_close then self:CloseView(true) elseif comp == self.UITemplateTitlePanel.btn_Home then CTL.HomeMain.CloseViewBackHomeMain() elseif comp == self.UITemplateTitlePanel.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, { id = LuaConst.NoteID.HeroMatch3v3 }) elseif comp == self.btn_Team then -- 战队 CTL.SpecialTeam.OpenMain() elseif comp == self.btn_Reward then -- 奖励预览 UIManager.OpenView(Const_UI_Lua.UIEnum.UIHeroMatch3v3Reward, nil, Const_UI_Lua.UIEnum.UIHeroMatch1v1Reward) elseif comp == self.btn_Formation then -- 布阵 CTL.SpecialTeam.OpenFormatSetting() elseif comp == self.btn_Guess then -- 话题竞猜 UIManager.OpenView(Const_UI_Lua.UIEnum.UIHeroMatch3v3Guessing, nil, "HeroMatch1v1/UIHeroMatch1v1Guessing") elseif comp == self.btn_Watch then -- 观战奖励 UIManager.OpenView(Const_UI_Lua.UIEnum.UIHeroMatch1v1SubtitleReward) elseif comp == self.btn_Attend then -- 参加活动 if CTL.HeroMatch3v3.IfCanEnterBattleMatchLobby() then self:CloseView(true) CTL.HeroMatch3v3.EnterBattleMatchLobby() end elseif comp == self.btn_GoToSeeWinner then CTL.HeroMatch3v3.GoWorshipEvent() CTL.HomeMain.CloseViewBackHomeMain() elseif comp == self.btn_Store then -- 商店跳转 UIManager.OpenView(Const_UI_Lua.UIEnum.UIHeroMatch3v3Store, nil, "HeroMatch1v1/UIHeroMatch1v1Store") end end function UIHeroMatch3v3Base:OnCellInit(scrollRect, index, cellTable, data) if data.ID <= MDL.HeroMatch3v3.Stage.Filtration_2 then UIUtils.SetLabelText(cellTable.txt_Progress, Const_IDS.IDS_HeroMatch3v3_RaceOne) else UIUtils.SetLabel(cellTable.txt_Progress, string.FormatByIdsId(Const_IDS[data.InterfaceDes])) end if index == 0 then cellTable.state_Line:SetState(2) else cellTable.state_Line:SetState(data.ID >= self.curStageID and 0 or 1) end if data.ID == self.selectStage then cellTable.state_TabBg:SetState(1) else if data.ID <= MDL.HeroMatch3v3.Stage.Filtration_2 then cellTable.state_TabBg:SetState(self.curStageID >= data.ID and 0 or 2) if self.curStageID >= data.ID then cellTable.state_ProgressBg:SetState(index == 0 and 1 or 0) end else if self.curStageID <= MDL.HeroMatch3v3.Stage.Filtration_2 then cellTable.state_TabBg:SetState(2) else cellTable.state_TabBg:SetState(data.ID >= self.curStageID and 0 or 2) if index == 0 then cellTable.state_ProgressBg:SetState(self.curStageID >= data.ID and 1 or 0) end end end end cellTable.state_Scale:SetState(self.selectIndex - 1 == index and 1 or 0) end function UIHeroMatch3v3Base:OnCellClicked(scrollRect, index, cellTable, target, data) if target == cellTable.btn_Select then if data.ID ~= self.selectStage then if data.ID <= MDL.HeroMatch3v3.Stage.Filtration_2 then if self.curStageID >= MDL.HeroMatch3v3.Stage.Filtration_2 then self.curSelectToggleIndex = self.selectStage ~= data.ID and 0 or self.curSelectToggleIndex self.selectStage = data.ID self.selectIndex = index self:OpenHeroMatch3v3SubView() end else if self.curStageID > MDL.HeroMatch3v3.Stage.Filtration_2 and data.ID >= self.curStageID then self.curSelectToggleIndex = self.selectStage ~= data.ID and 0 or self.curSelectToggleIndex self.selectStage = data.ID self.selectIndex = index self:OpenHeroMatch3v3SubView() end end end end end function UIHeroMatch3v3Base:OnValueChanged(comp, value) if comp == self.group_Toggles then if self.selectStage >= MDL.HeroMatch3v3.Stage.match_2T1 then self.stageView:SetPlayerGroupInfo(value) self.curSelectToggleIndex = value end end end function UIHeroMatch3v3Base:RefreshHeroMatch3v3BaseView() local curStageID = MDL.HeroMatch3v3.GetCurStageID() self.curSelectToggleIndex = self.selectStage ~= curStageID and 0 or self.curSelectToggleIndex self.curStageID = curStageID self.selectStage = curStageID self.winnerStageInfo = MDL.HeroMatch3v3.GetMatchStageInfo(self.selectStage) self.matchStageList = {} if self.winnerStageInfo then if self.selectStage >= MDL.HeroMatch3v3.Stage.Filtration_1 then MDL.HeroMatch3v3.TryGetAllPlayerInfo() for k, v in DataSheetManager.TeamMatchStage:GetEnumerator() do if v.ID >= MDL.HeroMatch3v3.Stage.match_2T1 then table.insert(self.matchStageList, v) end end end if #self.matchStageList > 0 then table.sort(self.matchStageList, SortStage) if MDL.HeroMatch3v3.GetMatchStageInfo(MDL.HeroMatch3v3.Stage.Filtration_2) then table.insert(self.matchStageList, 1, DataSheetManager.TeamMatchStage:GetDataByID(MDL.HeroMatch3v3.Stage.Filtration_2)) else table.insert(self.matchStageList, 1, DataSheetManager.TeamMatchStage:GetDataByID(MDL.HeroMatch3v3.Stage.Filtration_1)) end table.insert(self.matchStageList, DataSheetManager.TeamMatchStage:GetDataByID(MDL.HeroMatch3v3.Stage.ShowHero)) end self:OpenHeroMatch3v3SubView() -- 设置上一次选中默认页签,初始-1 self.lastSelectIndex = self.selectIndex end self.btn_GoToSeeWinner:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HeroMatch3v3_WorshipReward)) end function UIHeroMatch3v3Base:TryOpenStageView(stage) local isOpenView = false local stageViewName = Const_Stage_View[stage] if self.stageView and self.curStageViewName == stageViewName then if stage ~= MDL.HeroMatch3v3.Stage.ShowHero then self.stageView:RefreshPlayerInfo(stage) end else self.subView:CloseAll() isOpenView = true if stage == MDL.HeroMatch3v3.Stage.match_4T2 then self.stageView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage4), nil, Const_UI_Lua.UIEnum.UIHeroMatch1v1Stage4) elseif stage == MDL.HeroMatch3v3.Stage.match_8T4 then -- 8进4 self.stageView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage3), nil, Const_UI_Lua.UIEnum.UIHeroMatch1v1Stage3) elseif stage >= MDL.HeroMatch3v3.Stage.match_16T8 then -- 16进8 以及大于16人的比赛都用同一个子界面 self.stageView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage2), { stageID = self.selectStage }) else self.stageView = self.subView:OpenView(GetViewClass(stageViewName)) end end self.curStageViewName = stageViewName return isOpenView end function UIHeroMatch3v3Base:OpenHeroMatch3v3SubView() UIUtils.SetActive(self.btn_Guess, true) UIUtils.SetActive(self.btn_Watch, true) UIUtils.SetActive(self.btn_Attend, true) UIUtils.SetActive(self.btn_Formation, true) UIUtils.SetActive(self.btn_GoToSeeWinner, false) UIUtils.SetActive(self.group_Info, true) UIUtils.SetActive(self.group_Toggles, true) UIUtils.SetActive(self.group_Progress, true) UIUtils.SetActive(self.img_BgBottom, false) self.curMatchTimeID = MDL.HeroMatch3v3.GetCurMatchTimeID() self.winnerStageInfo = MDL.HeroMatch3v3.GetMatchStageInfo(self.selectStage) local MatchTime = DataSheetManager.TeamMatchTime:GetDataByID(self.curMatchTimeID) self:StopRepeatFunc(self.UpdateAttendBtnStageRepeatFunc) if self.curMatchTimeID < MDL.HeroMatch3v3.Enum_BigStage.Display then if self.winnerStageInfo.state == MDL.HeroMatch3v3.Enum_State.Finish then self.btn_Attend:SetGray(true, false) else if UTL.Time.IsServerInOpeningTime(MatchTime.StartTime, MatchTime.EndTime) then self.btn_Attend:SetGray(false) else self.btn_Attend:SetGray(true, false) local offsetTime = UTL.Time.GetServerIntervalTimeByTimeId(MatchTime.StartTime) self:StartRepeatFunc(self.UpdateAttendBtnStageRepeatFunc, offsetTime > 0 and offsetTime or offsetTime + UTL.Time.TotalSecondsOneDay) end end else self.btn_Attend:SetGray(true, false) end UIUtils.SetActive(self.btn_Attend, not BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.CrossHeroMatchTown3V3)) if self.selectStage <= MDL.HeroMatch3v3.Stage.Filtration_2 then -- 筛选赛 UIUtils.SetActive(self.img_BgBottom, true) UIUtils.SetActive(self.group_Toggles, false) UIUtils.SetActive(self.group_Progress, false) UIUtils.SetActive(self.btn_Watch, false) if self.lastSelectIndex ~= self.selectIndex then self.subView:CloseAll() self.stageView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage1_Filtration)) self.curStageViewName = Const_UI_Lua.UIEnum.UIHeroMatch3v3Stage1_Filtration end else local isOpenView = self:TryOpenStageView(self.selectStage) if self.selectStage == MDL.HeroMatch3v3.Stage.ShowHero then -- 冠军展示期 UIUtils.SetActive(self.btn_Guess, false) UIUtils.SetActive(self.btn_Watch, false) UIUtils.SetActive(self.btn_Attend, false) UIUtils.SetActive(self.btn_Formation, false) UIUtils.SetActive(self.btn_GoToSeeWinner, true) UIUtils.SetActive(self.group_Info, false) UIUtils.SetActive(self.group_Toggles, false) elseif self.selectStage == MDL.HeroMatch3v3.Stage.match_2T1 then -- 冠军赛 UIUtils.SetActive(self.img_BgBottom, true) UIUtils.SetActive(self.group_Toggles, false) elseif self.selectStage == MDL.HeroMatch3v3.Stage.match_4T2 then -- 4进2 UIUtils.SetActive(self.group_Toggles, false) elseif self.selectStage == MDL.HeroMatch3v3.Stage.match_8T4 then -- 8进4 UIUtils.SetActive(self.group_Toggles, false) elseif self.selectStage >= MDL.HeroMatch3v3.Stage.match_16T8 then -- 16进8 以及大于16人的比赛都用同一个子界面 UTL.Toggle.InitToggleGroupByIDS(self.group_Toggles, "txt", { Const_IDS.IDS_HeroMatch3v3_Team1, Const_IDS.IDS_HeroMatch3v3_Team2, Const_IDS.IDS_HeroMatch3v3_Team3, Const_IDS.IDS_HeroMatch3v3_Team4 }) self.group_Toggles:SetToggleCompActive(1, "img_Line", false) if isOpenView then local myGroupNum = MDL.HeroMatch3v3.GetMyGroupAndIndex(self.selectStage) - 1 if self.curSelectToggleIndex > 0 then self.group_Toggles:SelectIndex(self.curSelectToggleIndex) else self.group_Toggles:SelectIndex(myGroupNum) end if self.curSelectToggleIndex == myGroupNum then if self.selectStage >= MDL.HeroMatch3v3.Stage.match_2T1 then self.stageView:SetPlayerGroupInfo(myGroupNum) self.curSelectToggleIndex = myGroupNum end end end end end self.cdTimer:EndTimer() if self.selectStage == MDL.HeroMatch3v3.Stage.ShowHero then UIUtils.SetActive(self.tips_Attend, false) else local stageInfo = MDL.HeroMatch3v3.GetMatchStageInfo(MDL.HeroMatch3v3.GetCurStageID()) local isShowTipsAttend = BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.CrossHeroMatchTown3V3) and stageInfo.state ~= MDL.HeroMatch3v3.Enum_State.Finish UIUtils.SetActive(self.tips_Attend, isShowTipsAttend) if isShowTipsAttend then local startTimestamp = stageInfo.stateEndTime local leftTime = startTimestamp - UTL.Time.GetServerTimestamp() > 0 and startTimestamp - UTL.Time.GetServerTimestamp() or 0 if stageInfo.state == MDL.HeroMatch3v3.Enum_State.Battle then self.cdTimer:ResetAndBeginCustomTimer(false, leftTime, 0, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_SkipBattleTime) .. "\n{0}:{1}:{2}") else self.cdTimer:ResetAndBeginCustomTimer(false, leftTime, 0, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_MatchingTime) .. "\n{0}:{1}:{2}") end end end if #self.matchStageList > 0 then for k, v in ipairs(self.matchStageList) do if v.ID == self.selectStage then self.selectIndex = k - 1 break end end self.loop_Progress:ReloadAll(self.matchStageList) end if self.selectStage ~= MDL.HeroMatch3v3.Stage.ShowHero then self:RefreshCurStageInfo() end end function UIHeroMatch3v3Base:RefreshCurStageInfo() UIUtils.SetActive(self.txt_Chances, true) self.myMatchInfo = MDL.HeroMatch3v3.GetMyMatchInfo() self.matchStageCfg = DataSheetManager.TeamMatchStage:GetDataByID(self.curStageID) self.matchTimeCfg = DataSheetManager.TeamMatchTime:GetDataByID(self.matchStageCfg.NowStage) if self.curStageID <= MDL.HeroMatch3v3.Stage.Filtration_2 then -- 筛选赛 local winScore = DataSheetManager.ConstData:GetDataByID("HeroMatch3v3WinScore").IntValue local loseScore = DataSheetManager.ConstData:GetDataByID("HeroMatch3v3LoseScore").IntValue self:SetRule(string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_PromotionCondition1, winScore, loseScore)) -- 筛选赛结束后,总胜场多者晋级 self:SetTimer() UIUtils.SetLabelText(self.lab_Chances, Const_IDS.IDS_HeroMatch3v3_SurplusNum) -- 剩余可参与场次 local todayNum = self.myMatchInfo.todayNum and self.myMatchInfo.todayNum or 0 UIUtils.SetLabel(self.txt_Chances, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_SurplusNum1, HeroMatch3v3Race2, HeroMatch3v3Race2 - todayNum)) elseif self.curStageID == MDL.HeroMatch3v3.Stage.match_2T1 then -- 冠军赛 self:SetRule(Const_IDS.IDS_HeroMatch3v3_PromotionCondition3) -- 比拼3轮,每轮3局2胜,赢得2轮者胜出 self:SetGuessing() self:SetTimer() elseif self.curStageID == MDL.HeroMatch3v3.Stage.match_4T2 then -- 4进2 self:SetRule(Const_IDS.IDS_HeroMatch3v3_PromotionCondition3) -- 比拼3轮,每轮3局2胜,赢得2轮者胜出 self:SetGuessing() self:SetTimer() elseif self.curStageID == MDL.HeroMatch3v3.Stage.match_8T4 then -- 8进4 self:SetRule(Const_IDS.IDS_HeroMatch3v3_PromotionCondition3) -- 三局两胜 self:SetGuessing() self:SetTimer() elseif self.curStageID >= MDL.HeroMatch3v3.Stage.match_16T8 then -- 16进8 以及大于16人的比赛都用同一个子界面 self:SetRule(Const_IDS.IDS_HeroMatch3v3_PromotionCondition2) -- 三局两胜 self:SetGuessing() self:SetTimer() end self:SetRecord() end function UIHeroMatch3v3Base:SetTimer() UIUtils.SetLabel(self.lab_Time, string.Concat(UIUtils.GetLocalizedTxt(Const_IDS[self.matchStageCfg.InterfaceDes]), UIUtils.GetLocalizedTxt(Const_IDS.IDS_HeroMatch3v3_ActivityTime))) local starTime = UTL.Time.GetDiffLocalStrById(self.matchTimeCfg.StartTime) local endTime = UTL.Time.GetDiffLocalStrById(self.matchTimeCfg.EndTime) if self.curStageID >= MDL.HeroMatch3v3.Stage.match_2T1 and self.curStageID <= MDL.HeroMatch3v3.Stage.match_64T32 then local curStageInfo = MDL.HeroMatch3v3.GetMatchStageInfo(self.curStageID) local month, day, hourMinute = UTL.Time.FormatTimeSimple(curStageInfo.stateEndTime) if GameAppInfo.IsVietnamPackage() then UIUtils.SetLabel(self.txt_Time, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_ActivityTime1, starTime, endTime, day, month)) else UIUtils.SetLabel(self.txt_Time, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_ActivityTime1, month, day, starTime, endTime)) end else local MatchServerInfo = MDL.HeroMatch3v3.GetHeroMatch3v3AllInfo() local dayNum = 0 for k, v in DataSheetManager.TeamMatchTime:GetEnumerator() do dayNum = dayNum + v.Day if v.ID + 1 == self.curMatchTimeID then if self.curStageID == MDL.HeroMatch3v3.Stage.Filtration_2 then dayNum = dayNum + 1 end local month, day, hourMinute = UTL.Time.FormatTimeSimple(MatchServerInfo.startTm + dayNum * UTL.Time.TotalSecondsOneDay) if GameAppInfo.IsVietnamPackage() then UIUtils.SetLabel(self.txt_Time, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_ActivityTime1, starTime, endTime, day, month)) else UIUtils.SetLabel(self.txt_Time, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_ActivityTime1, month, day, starTime, endTime)) end return end end end end function UIHeroMatch3v3Base:SetRecord() local myRankDesc, myRank = CTL.HeroMatch3v3.GetMyCurRankInfoDesc() if self.myMatchInfo and self.myMatchInfo.myStage and self.myMatchInfo.myStage > 0 then UIUtils.SetLabelText(self.lab_PersonalScore, Const_IDS.IDS_Chat_BestRank) -- 最好成绩 else UIUtils.SetLabelText(self.lab_PersonalScore, Const_IDS.IDS_HeroMatch3v3_NowResult) -- 当前成绩 end UIUtils.SetLabel(self.txt_PersonalScore, myRankDesc) end function UIHeroMatch3v3Base:SetRule(rule) UIUtils.SetLabelText(self.lab_Rule, Const_IDS.IDS_HeroMatch3v3_PromotionCondition) -- 晋级条件 UTL.String.SetLabelContent(self.txt_Rule, rule) end function UIHeroMatch3v3Base:SetGuessing() UIUtils.SetLabel(self.lab_Chances, string.FormatByIdsId(Const_IDS.IDS_HeroMatch3v3_LeftPickNum, self.matchTimeCfg.GuessTimes - self.myMatchInfo.battleBetNum, self.matchTimeCfg.GuessTimes)) -- 今日剩余竞猜次数:%s/%s UIUtils.SetActive(self.txt_Chances, false) end return UIHeroMatch3v3Base