-- 起名界面 local UINamePanel = UIViewClass() local MaleHeadIndex = {1, 2, 3} local FemaleHeadIndex = {4, 5, 6} local HeroIconPath = ConstAssetPathConfig.IconPath -------------------- function UINamePanel:OnCreated() self.curHeadGroupIndex = -1 self.gender = nil self.allHeadList = {} end function UINamePanel:OnOpened(context) self:RegistSystemEvent(EventID.UI_RefreshRandomName, self.RefreshRandomName) self:InitHead(LuaConst.Gender.Male, MaleHeadIndex) self:InitHead(LuaConst.Gender.Female, FemaleHeadIndex) self.group_Gender:SelectIndex(0) -- 默认是选择性别第一个 end function UINamePanel:OnButtonClicked(comp) if comp == self.event_Random then self:OnBtnRandomClick() elseif comp == self.btn_Sure then self:OnBtnOKClick() end end function UINamePanel:OnValueChanged(comp, index) if comp == self.group_Gender then if index == 0 then self.gender = LuaConst.Gender.Male self:SetGenderGray() self:CancelHeadSelect() elseif index == 1 then self.gender = LuaConst.Gender.Female self:SetGenderGray() self:CancelHeadSelect() end elseif comp == self.group_Head then self.curHeadGroupIndex = index end end -------------------- function UINamePanel:InitHead(gender, genderHeadIndex) local headList = CTL.Character.GetInitialHeadListByGender(gender) for i, v in ipairs(genderHeadIndex) do if i <= #headList then local headData = headList[i] self.group_Head:SetToggleCompImage(v, "img_MaleHead", string.format(HeroIconPath, headData.HeadResource)) self.allHeadList[v] = headData.ID end end end function UINamePanel:SetGenderGray() for _, v in ipairs(MaleHeadIndex) do self.group_Head:SetGray(v - 1, self.gender == LuaConst.Gender.Female) end for _, v in ipairs(FemaleHeadIndex) do self.group_Head:SetGray(v - 1, self.gender == LuaConst.Gender.Male) end end function UINamePanel:RefreshRandomName() self.obj_input.text = CTL.Name.GetRandomName() end function UINamePanel:OnBtnRandomClick() local randomName = CTL.Name.GetRandomName() if randomName ~= "" then self.obj_input.text = randomName end end function UINamePanel:OnBtnOKClick() if self.gender then local curHead = nil if self.curHeadGroupIndex >= 0 and self.group_Head:GetToggle(self.curHeadGroupIndex).isOn then curHead = self.allHeadList[self.curHeadGroupIndex + 1] end if curHead then local tempName = self.obj_input.text -- 发给服务器验证名字合法性 if CTL.Name.IsNameLegal(tempName) then MDL.Name.SendAccountName(tempName, self.gender, false) -- 穿戴头像 MDL.Character.PortraitChangeRequest(curHead, true) -- 穿戴默认头像框 MDL.Character.SetDefaultFrame(true) end else -- 提示需要选择头像 CTL.Tips.AddTipsMsg(Const_IDS.IDS_HeadPortraitAndBox_Select) end else -- 提示需要选择性别 CTL.Tips.AddTipsMsg(Const_IDS.IDS_Gender_Choose) end end function UINamePanel:CancelHeadSelect() self.group_Head:CancelSelect() self.curHeadGroupIndex = -1 end return UINamePanel