local UIWarzoneList = UIViewClass() local YELLOW_COLOR = "E8D588" -- 当 context.crossServerZoneGroupType 有值时,会导致tab变化,但OnCellSelect中,tab选择又根据index来进行逻辑执行。经确认是特殊需求,无须改动。 function UIWarzoneList:OnOpened(context) self:RegistSystemEvent(EventID.WarZone_ServerList_Refresh, self.RefreshServerList) self:RegistSystemEvent(EventID.UI_CrossServerUpdate, self.RefreshCrossServerList) if context and context.crossServerZoneGroupType then if GameAppInfo.IsJapanesePackage() then self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS.IDS_JP_Warzone_ServerGroup, 0) else self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS.IDS_Warzone_ServerGroup, 0) end else self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS.IDS_CrossServerChat_ZhanQu, 0) if GameAppInfo.IsJapanesePackage() then self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS.IDS_JP_Warzone_ServerGroup, 0) else self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS.IDS_Warzone_ServerGroup, 0) end end self.UICommonPopUpTab.loop_Tab:SelectIndex(0) end function UIWarzoneList:ShowServerGroup() UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_Warzone_ServerGroup) MDL.WarZone.EcoSphereServerListReq() self.curShowServerGroup = true end function UIWarzoneList:ShowWarZone() if self.context and self.context.crossServerZoneGroupType then MDL.CrossServer.GetZoneGroupInfoReq(self.context.crossServerZoneGroupType) UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_Warzone_ServerGroup) else MDL.WarZone.WarZoneServerListRequest() UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_WarZone_ListInfo) end self.curShowServerGroup = false end function UIWarzoneList:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIWarzoneList:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() end end function UIWarzoneList:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.Loop_WarzoneList then local serverName = string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_Rank_ServerIDS), data.serverId) .. "-" .. data.serverName UIUtils.SetLabel(cellTable.txt_ServerName, not data.isMine and UTL.Color.FormatWhiteColor(serverName) or UTL.Color.FormatTextByColor(YELLOW_COLOR, serverName)) UIUtils.SetActive(cellTable.img_MyServer, data.isMine) elseif scrollRect == self.UICommonPopUpTab.loop_Tab then UIUtils.SetLabelText(cellTable.txt_Name_Nomal, data) UIUtils.SetLabelText(cellTable.txt_Name_Selected, data) cellTable.state_ArrowState:SetState(0) end end function UIWarzoneList:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then self.selectIndex = index if index == 0 then self:ShowWarZone() else self:ShowServerGroup() end end end function UIWarzoneList:RefreshServerList(serverList) if IsServerDataNotNil(serverList) and #serverList > 0 then self.txt_ServerDesc.text = nil self.Loop_WarzoneList:ReloadAll(serverList) else self.Loop_WarzoneList:ClearCells() if self.curShowServerGroup then UIUtils.SetLabelText(self.txt_ServerDesc, Const_IDS.IDS_Warzone_ServerGroupRule) end end end function UIWarzoneList:RefreshCrossServerList(serverList) if IsServerDataNotNil(serverList.serverInfo) then self.Loop_WarzoneList:ReloadAll(serverList.serverInfo) end end return UIWarzoneList