local CreateRoleViewV2 = class("CreateRoleViewV2",BaseView) CreateRoleViewV2.ViewType = UIViewType.MainLayer CreateRoleViewV2.requestTime = 0 autoImport ("MakeRole"); autoImport("HairStyleCell") autoImport("HeadwearCell") autoImport('FunctionMaskWord') autoImport('UIBlackScreen') autoImport('UIRoleSelect') autoImport('UIModelRolesList') CreateRoleViewV2.ins = nil --六維圖色塊 PolygonColor = { [1] = {polygonColorOut="FDFF51" , polygonColorIn="FFA200"}, [2] = {polygonColorOut="4EFF90" , polygonColorIn="00A463"}, [3] = {polygonColorOut="FFA800" , polygonColorIn="FF4200"}, [4] = {polygonColorOut="359CFF" , polygonColorIn="0740CE"}, [5] = {polygonColorOut="FF5B3C" , polygonColorIn="F5242B"}, [6] = {polygonColorOut="E76DFF" , polygonColorIn="871FF1"}, } function CreateRoleViewV2:Init() CreateRoleViewV2.ins = self self:MapViewListener(); self:FindObj(); self:AddButtonEvt(); self:HideOccupationDetail() self:HideTitle() self.labNetworkTipContent.text = ZhString.StartGamePanel_WaitingLabel self.goNetworkTip:SetActive(false) self:CalibrateViewPortOfUICamera() end function CreateRoleViewV2:OnExit() -- CameraUtil.ReSetAllCameraViewPort() self:CloseTimeTickForFindMainCamera() self:CloseTimeTickForCheckTimeout() ServicePlayerProxy.mapChangeForCreateRole = false EventManager.Me():RemoveEventListener(CreateRoleViewEvent.PlayerMapChange, self.OnPlayerMapChangeForCreateRole, self) end function CreateRoleViewV2:InitData() self.occupationID = CharacterSelectList[self.number].classID self.occupationIndex = self.number self.proDatas = {}; for k,v in pairs(CharacterSelectList) do local temp = {}; temp.createData = v; temp.staticData = Table_Class[v.classID]; table.insert(self.proDatas, temp); end table.sort(self.proDatas, function (a, b) return a.createData.classID GameConfig.System.namesize_max then self.nameInputLabel.color = ColorUtil.NGUILabelRed FunctionNetError.Me():ShowErrorById(9) return end if(not self.isExcute)then self.isExcute = true; if self.timerForCheckTimeout == nil then self.timerForCheckTimeout = TimeTickManager.Me():CreateTick(1000, 1000, self.OnTimeTickForCheckTimeout, self, 2) end self.timerForCheckTimeout:StartTick() CreateRoleViewV2.requestTime = 0 self.requestTimeoutEvent = function () self.goBTNCloseNetworkTip:SetActive(true) end self:RequestCreateRole() self.flagRequestCreateRole = true self:DisableInput() self.goNetworkTip:SetActive(true) self.goBTNCloseNetworkTip:SetActive(false) end end function CreateRoleViewV2:DisableInput() local colliders = GameObjectUtil.Instance:GetAllComponentsInChildren(self.gameObject, BoxCollider, false); for i=1,#colliders do local v = colliders[i]; if v.gameObject.name ~= 'BTN_Close' then v.enabled = false; end end end function CreateRoleViewV2:EnableInput() local colliders = GameObjectUtil.Instance:GetAllComponentsInChildren(self.gameObject, BoxCollider, false); for i=1,#colliders do local v = colliders[i]; v.enabled = true; end end function CreateRoleViewV2:RequestCreateRole() local defaultName = self.nameInput.value local codeUTF8 = LuaUtils.StrToUtf8(defaultName) local roleSlotIndex = UIModelRolesList.Ins():GetEmptyIndex() FunctionLogin.Me():createRole(codeUTF8, self.sex, self.nowPro.createData.classID, self:CurrentOccupationHairStyleSelection(), self.hairColorSelection, CurrentOccupationBodyColor, roleSlotIndex); end function CreateRoleViewV2:ChangeSexEvt(gender) self:SwitchGender(gender) self.sex = gender; -- set default hair color selection local defaultHairColor = 0 if (gender == E_Gender.Male) then defaultHairColor = self:CurrentOccupationDefaltHairColorMale() elseif (gender == E_Gender.Female) then defaultHairColor = self:CurrentOccupationDefaltHairColorFemale() end if (self.sex == E_Gender.Male) then self.hairColorsID = self:CurrentOccupationHairColorSelectionsMale() elseif (self.sex == E_Gender.Female) then self.hairColorsID = self:CurrentOccupationHairColorSelectionsFemale() end self.hairColorSelection = defaultHairColor self.hindex = self:HairColorIndex(self.hairColorSelection) self:UpdateHairColorInfo(); -- refresh hair style for gender self:UpdateHairStyleSelectionView() self:CancelHairStyleSelected() self:JudgeAndSelectDefaultHairStyle() -- cancel headwear selected self:CancelHeadwearSelected() if (gender == E_Gender.Male) then self.spBGOfCustomStyle.flip = 0 elseif (gender == E_Gender.Female) then self.spBGOfCustomStyle.flip = 1 end end function CreateRoleViewV2:ChangeHairEvt(isAdd) local hairColorIds = self.hairColorsID; local length = #hairColorIds local toIndex = self.hindex if(isAdd) then toIndex = toIndex + 1; if (toIndex > length) then toIndex = toIndex - length end else toIndex = toIndex - 1; if (toIndex < 1) then toIndex = toIndex + length end end toIndex = math.min(#hairColorIds,toIndex) toIndex = math.max(1,toIndex) if(toIndex~=self.hindex) then self.hindex = toIndex; self.hairColorSelection = self.hairColorsID[self.hindex] self:UpdateHairColorInfo(); -- load view of hair style self:UpdateHairStyleSelectionView() self:ChangeHairColor(self.hairColorSelection) end end function CreateRoleViewV2:RotateRoleEvt(go, delta) local deltaAngle = -delta.x * 360 / 400 self:RotateModel(deltaAngle) end -- 更新職業資訊 function CreateRoleViewV2:UpdateProfessionInfo() local templab = self:FindChild("profLabel"):GetComponent(UILabel); templab.text = self.nowPro.createData.name; local tempsprite = self:FindChild("profSprite"):GetComponent(UISprite) local professionType = self.nowPro.staticData.Type local color = professionType == 1 and ColorUtil.CareerFlag1 or (professionType == 2 and ColorUtil.CareerFlag2 or (professionType == 3 and ColorUtil.CareerFlag3 or (professionType == 4 and ColorUtil.CareerFlag4 or (professionType == 5 and ColorUtil.CareerFlag5 or (professionType == 6 and ColorUtil.CareerFlag6 or nil))))) tempsprite.color = color local templab = self:FindChild("profLabelEng"):GetComponent(UILabel) templab.text = self.nowPro.createData.ename local tempsym = self:FindChild("symbol"):GetComponent(UISprite); color = professionType == 1 and ColorUtil.CareerIconBg1 or (professionType == 2 and ColorUtil.CareerIconBg2 or (professionType == 3 and ColorUtil.CareerIconBg3 or (professionType == 4 and ColorUtil.CareerIconBg4 or (professionType == 5 and ColorUtil.CareerIconBg5 or (professionType == 6 and ColorUtil.CareerIconBg6 or nil))))); tempsym.color = color; local spriteProfessionIcon = self:FindChild("ProfessionIcon"):GetComponent(UISprite) local professionIconSpriteName = self.nowPro.staticData.icon IconManager:SetProfessionIcon(professionIconSpriteName, spriteProfessionIcon) --tempsym:MakePixelPerfect(); self.infoObjs.proDescLab.text = self.nowPro.staticData.Desc if(self.lps~=nil)then for k,v in pairs(self.lps) do GameObject.DestroyImmediate(v); end end local temp = PolygonColor[self.number].polygonColorOut if(temp)then local hasC, resultC=ColorUtil.TryParseHexString(temp) if(hasC)then resultC.a = 0.8 self.abilityPolygon.gradientOutside=resultC end end temp = PolygonColor[self.number].polygonColorIn if(temp)then local hasC, resultC=ColorUtil.TryParseHexString(temp) if(hasC)then resultC.a = 0.8 self.abilityPolygon.gradientInside=resultC end end local initAttris = self.nowPro.staticData.InitialAttr; if(initAttris~=nil and #initAttris>0)then local v = {}; for i = 1, #initAttris do self.initAttiLab[i].text = initAttris[i].name--GameConfig.ClassInitialAttr[initAttris[i].name]; v[i] = initAttris[i].value / 100; self.abilityPolygon:SetLength(i-1, v[i]*112); end self.lps = NGUIUtil.DrawAbilityPolygon(self.abilitypoint, self.abilityline, 113, v); end end -- 更新頭髮資訊 function CreateRoleViewV2:UpdateHairColorInfo() self.hairColorSelection = self.hairColorSelection or self.hairColorsID[1] local hairColorInfo = Table_HairColor[self.hairColorSelection] if (hairColorInfo == nil) then printRed("Hair color configure not found : " .. self.hairColorSelection) else if hairColorInfo.NameZh then self.hairColorLab.text = hairColorInfo.NameZh; end -- local strColor = hairColorInfo.ColorH -- local strR = string.sub(strColor, 1, 2) -- local r = tonumber(strR, 16) -- local strG = string.sub(strColor, 3, 4) -- local g = tonumber(strG, 16) -- local strB = string.sub(strColor, 5, 6) -- local b = tonumber(strB, 16) -- local strA = string.sub(strColor, 7, 8) -- local a = tonumber(strA, 16) -- self.hairColorLab.gradientTop = Color32(r, g, b, a) -- strColor = hairColorInfo.ColorD -- strR = string.sub(strColor, 1, 2) -- r = tonumber(strR, 16) -- strG = string.sub(strColor, 3, 4) -- g = tonumber(strG, 16) -- strB = string.sub(strColor, 5, 6) -- b = tonumber(strB, 16) -- strA = string.sub(strColor, 7, 8) -- a = tonumber(strA, 16) -- self.hairColorLab.gradientBottom = Color32(r, g, b, a) -- strColor = hairColorInfo.Stroke -- strR = string.sub(strColor, 1, 2) -- r = tonumber(strR, 16) -- strG = string.sub(strColor, 3, 4) -- g = tonumber(strG, 16) -- strB = string.sub(strColor, 5, 6) -- b = tonumber(strB, 16) -- strA = string.sub(strColor, 7, 8) -- a = tonumber(strA, 16) -- self.hairColorLab.effectColor = Color32(r, g, b, a) if(hairColorInfo.PaintColor)then local hasC, resultC=ColorUtil.TryParseHexString(hairColorInfo.PaintColor) if(hasC)then self.hairColorLab.color =resultC end end end end function CreateRoleViewV2:OnResponseCreateRoleFail(note) if self.flagRequestCreateRole then self.flagRequestCreateRole = false if self.timerForCheckTimeout ~= nil then self.timerForCheckTimeout:StopTick() end self.isExcute = false; self:EnableInput() self.goNetworkTip:SetActive(false) MsgManager.CloseConfirmMsgByID(1028) self:PlaySelectedAnim() if self:IsRedName(note.body) then self.nameInputLabel.color = ColorUtil.NGUILabelRed end end end function CreateRoleViewV2:IsRedName(id) for i=1,#GameConfig.CreateRoleFail.RedName do if GameConfig.CreateRoleFail.RedName[i] == id then return true end end return false end -- when reconnected, receive too function CreateRoleViewV2:OnResponseCreateRoleSuccess(note) local data = ServiceUserProxy.Instance:GetNewRoleInfo() if(data)then if self.timerForCheckTimeout ~= nil then self.timerForCheckTimeout:StopTick() end self.isExcute = false; self:EnableInput() self.goNetworkTip:SetActive(false) MsgManager.CloseConfirmMsgByID(1028) self.reciveData = data if self.reciveData.id ~= nil and self.reciveData.id ~= 0 then self:DisableInput() self.goNetworkTip:SetActive(true) self.goBTNCloseNetworkTip:SetActive(false) CreateRoleViewV2.requestTime = 0 self.timerForCheckTimeout:StartTick() self.requestTimeoutEvent = function () self.goBTNCloseNetworkTip:SetActive(true) end ServicePlayerProxy.mapChangeForCreateRole = true ServiceUserProxy.Instance:CallSelect(self.reciveData.id) UIModelRolesList.Ins():SetSelectedRole(self.reciveData.id) end end end function CreateRoleViewV2:OnPlayerMapChangeForCreateRole(message) if self.timerForCheckTimeout ~= nil then self.timerForCheckTimeout:StopTick() end ServicePlayerProxy.mapChangeForCreateRole = false self.goNetworkTip:SetActive(false) MsgManager.CloseConfirmMsgByID(1028) self:PlayHappyAnim() if self.maskFadeLeanTween ~= nil then self.maskFadeLeanTween:cancel(); end local tweenStart = 0 local tweenEnd = 1 local tweenTime = 2.5 self.maskFadeLeanTween = LeanTween.value(self.gameObject, function (f) self.mask.color = Color(0,0,0,f) end, tweenStart, tweenEnd, tweenTime) self.maskFadeLeanTween:setOnComplete(function () self:EnterInGame() ServicePlayerProxy.Instance:MapChange(message) end):setDestroyOnComplete(true); end function CreateRoleViewV2:EnterInGame(note) local goMainCamera = GameObject.Find("Main Camera") if not GameObjectUtil.Instance:ObjectIsNULL(goMainCamera) then goMainCamera:SetActive(false) end self:CloseSelf(); FrameRateSpeedUpChecker.Instance():Open() end function CreateRoleViewV2:GetProData(proID) for i = 1, #self.proDatas do local proData = self.proDatas[i] if (proData.createData.classID == proID) then return proData end end return nil end E_Gender = {["None"] = 0, ["Male"] = 1, ["Female"] = 2} function CreateRoleViewV2:CurrentOccupationDefaultGender() local occupationConf = self.nowPro if (occupationConf == nil) then return E_Gender.None end local gender = occupationConf.createData.gender; if (gender == CharacterGender.Male) then return E_Gender.Male elseif (gender == CharacterGender.Female) then return E_Gender.Female end return E_Gender.None end function CreateRoleViewV2:CurrentOccupationMaleBody() local occupationConf = self.nowPro if (occupationConf == nil) then return "" end local occupationDetailConf = self.nowPro.staticData return occupationDetailConf.MaleBody end function CreateRoleViewV2:CurrentOccupationFemaleBody() local occupationConf = self.nowPro if (occupationConf == nil) then return "" end local occupationDetailConf = self.nowPro.staticData return occupationDetailConf.FemaleBody end function CreateRoleViewV2:CurrentOccupationDefaltHairColorMale() return RoleUtil.GetNPCHairDefaultColor(CharacterSelectList[self.occupationIndex].maleID) end function CreateRoleViewV2:CurrentOccupationDefaltHairColorFemale() return RoleUtil.GetNPCHairDefaultColor(CharacterSelectList[self.occupationIndex].femaleID) end function CreateRoleViewV2:CurrentOccupationDefaultHairStyleMale() return FunctionSelectCharacter.Me().activeRole:GetPartID(Asset_Role.PartIndex.Hair) end function CreateRoleViewV2:CurrentOccupationDefaultHairStyleFemale() return FunctionSelectCharacter.Me().activeRole:GetPartID(Asset_Role.PartIndex.Hair) end function CreateRoleViewV2:CurrentOccupationHairColorSelectionsMale() local hairColorsID = {} TableUtil.deepcopy(hairColorsID, CharacterPreview.hairColorList) local defaultHairColor = self:CurrentOccupationDefaltHairColorMale() local isIncluded = false for i = 1, #hairColorsID do local hairColorID = hairColorsID[i] if (hairColorID == defaultHairColor) then isIncluded = true end end if (not isIncluded) then table.insert(hairColorsID, defaultHairColor) end return hairColorsID end function CreateRoleViewV2:CurrentOccupationHairColorSelectionsFemale() local hairColorsID = {} TableUtil.deepcopy(hairColorsID, CharacterPreview.hairColorList) local defaultHairColor = self:CurrentOccupationDefaltHairColorFemale() local isIncluded = false for i = 1, #hairColorsID do local hairColorID = hairColorsID[i] if (hairColorID == defaultHairColor) then isIncluded = true end end if (not isIncluded) then table.insert(hairColorsID, defaultHairColor) end return hairColorsID end function CreateRoleViewV2:HairColorIndex(colorID) if (self.hairColorsID== nil) then return -1 end for i = 1, #self.hairColorsID do if (colorID == self.hairColorsID[i]) then return i end end return -1 end function CreateRoleViewV2:CancelHairStyleSelected() if (self.hairStyleCellsCtrl == nil) then return end for i = 1, #self.hairStyleCellsCtrl do local cellCtrl = self.hairStyleCellsCtrl[i] if (cellCtrl.isSelected == true) then cellCtrl:CancelSelected(); end end end function CreateRoleViewV2:CancelHeadwearSelected() if (self.headwearCellsCtrl == nil) then return end for i = 1, #self.headwearCellsCtrl do local cellCtrl = self.headwearCellsCtrl[i] if (cellCtrl.isSelected == true) then cellCtrl:CancelSelected(); end end end function CreateRoleViewV2:HairStyleSelection() if (self.hairStyleCellsCtrl == nil) then return 0 end for i = 1, #self.hairStyleCellsCtrl do local cellCtrl = self.hairStyleCellsCtrl[i] if (cellCtrl.isSelected == true) then return cellCtrl.data.hairStyleID end end return 0 end function CreateRoleViewV2:CurrentOccupationHairStyleSelection() local currentHairStyle = 0 currentHairStyle = self:HairStyleSelection() if (currentHairStyle == 0) then if (self.sex == E_Gender.Male) then currentHairStyle = self:CurrentOccupationDefaultHairStyleMale() elseif (self.sex == E_Gender.Female) then currentHairStyle = self:CurrentOccupationDefaultHairStyleFemale() end end return currentHairStyle end function CreateRoleViewV2:CurrentOccupationBodyColor() local bodyID = 0 if (self.sex == E_Gender.Male) then bodyID = self:CurrentOccupationMaleBody() elseif (self.sex == E_Gender.Female) then bodyID = self:CurrentOccupationFemaleBody() end local bodyConf = Table_Body[bodyID] bodyID = bodyConf.DefaultColor return bodyID end function CreateRoleViewV2:UpdateRoleAgent(gender) self.roleAgent = nil if (gender == E_Gender.Male) then self.roleAgent = self.info.maleRole elseif (gender == E_Gender.Female) then self.roleAgent = self.info.femaleRole end end -- model change >> function CreateRoleViewV2:SwitchGender(gender) local assignGender = nil if (gender == E_Gender.Male) then assignGender = CharacterGender.Male elseif (gender == E_Gender.Female) then assignGender = CharacterGender.Female end FunctionSelectCharacter.Me():SwitchGender(assignGender, self.occupationIndex) end function CreateRoleViewV2:ChangeHairColor(hairColorID) FunctionSelectCharacter.Me():SetHairColor(hairColorID) end function CreateRoleViewV2:ChangeHairStyle(hairStyleID, hairColorID) FunctionSelectCharacter.Me():SetHair(hairStyleID, hairColorID) end function CreateRoleViewV2:RevertHairStyle() FunctionSelectCharacter.Me():RestoreHair() end function CreateRoleViewV2:ChangeHeadwear(headwearID) FunctionSelectCharacter.Me():SetAccessories(headwearID) end function CreateRoleViewV2:RevertHeadwear() FunctionSelectCharacter.Me():RestoreAccessories() end function CreateRoleViewV2:CancelOccupationSelected() FunctionSelectCharacter.Me():UnselectRole() self.isSelecting = false end function CreateRoleViewV2:RotateModel(angle) FunctionSelectCharacter.Me():Rotate(angle) end function CreateRoleViewV2:PlayHappyAnim() FunctionSelectCharacter.Me():Show() end function CreateRoleViewV2:PlaySelectedAnim() FunctionSelectCharacter.Me():Unshow() end -- << Model change function CreateRoleViewV2:OnHairStyleClick(message) local isSelected = message.body.isSelected local id = message.body.id if (isSelected) then self:CancelHairStyleSelected() self:ChangeHairStyle(id, self.hairColorSelection) else self:RevertHairStyle() end end function CreateRoleViewV2:OnHeadwearClick(message) local isSelected = message.body.isSelected local id = message.body.id if (isSelected) then self:CancelHeadwearSelected() self:ChangeHeadwear(id) else self:RevertHeadwear() end end function CreateRoleViewV2:UpdateHairStyleSelectionView() local hairStylesID = self:CurrentOccupationHairStylesID() if hairStylesID == nil then errorLog("Local variable hairStylesID is nil.") else local hairStylesData = {} for _, v in pairs(hairStylesID) do local hairStyleID = v local hairStyleData = {} hairStyleData.hairStyleID = hairStyleID hairStyleData.hairColorID = self.hairColorSelection hairStyleData.gender = self.sex hairStyleData.classID = self.occupationID table.insert(hairStylesData, hairStyleData) end if table.IsEmpty(hairStylesData) then errorLog("Local variable hairStylesData(table) is empty.") else self.listHairStyle:ResetDatas(hairStylesData) self.hairStyleCellsCtrl = self.listHairStyle:GetCells() end end end function CreateRoleViewV2:CurrentOccupationHairStylesID() local hairStylesID = nil if (self.sex == E_Gender.Male) then hairStylesID = CharacterGender.Male.hairList elseif (self.sex == E_Gender.Female) then hairStylesID = CharacterGender.Female.hairList end return hairStylesID end function CreateRoleViewV2:GetHairStyleConfFromIDs(tab_hair_styles_id) local hairStylesData = nil if tab_hair_styles_id ~= nil then hairStylesData = {} for i = 1, #tab_hair_styles_id do local hairStyleConf = Table_HairStyle[tab_hair_styles_id[i]] if (hairStyleConf ~= nil) then table.insert(hairStylesData, {id = hairStyleConf.id, icon = hairStyleConf.Icon}) end end end return hairStylesData end function CreateRoleViewV2:ShowTitle() self.transReturnBtn.gameObject:SetActive(true) self.transLeft.gameObject:SetActive(false) self.transRight.gameObject:SetActive(false) self.transBottom.gameObject:SetActive(false) self.goBCForDrag:SetActive(false) self.transTitle.gameObject:SetActive(true) end function CreateRoleViewV2:HideTitle() self.transTitle.gameObject:SetActive(false) end function CreateRoleViewV2:ShowOccupationDetail() self.transReturnBtn.gameObject:SetActive(true) self.transLeft.gameObject:SetActive(true) self.transRight.gameObject:SetActive(true) self.transBottom.gameObject:SetActive(true) self.goBCForDrag:SetActive(true) self.transTitle.gameObject:SetActive(false) end function CreateRoleViewV2:HideOccupationDetail() self.transReturnBtn.gameObject:SetActive(false) self.transLeft.gameObject:SetActive(false) self.transRight.gameObject:SetActive(false) self.transBottom.gameObject:SetActive(false) self.goBCForDrag:SetActive(false) end function CreateRoleViewV2:PlayUIAnimForward() local forward = true self.uiPlayAnim:Play(forward) end function CreateRoleViewV2:PlayUIAnimBack() local forward = false self.uiPlayAnim:Play(forward) end -- region begin -- notifycation from FunctionSelectCharacter function CreateRoleViewV2:OnReceiveEnterFromFSC(data) self:ShowTitle() end function CreateRoleViewV2:OnReceiveSelectedFromFSC(data) self.number = data.body.number self.info = data.body.info self:InitData(); self:InitShow(); self:ShowOccupationDetail() self:PlayUIAnimForward() self:InitRoleAgent() self:EnableModelRotation() self.isSelecting = true end function CreateRoleViewV2:OnReceiveUnselectedFromFSC(data) self:ShowTitle() end function CreateRoleViewV2:OnReceiveSelectedInvalidateFromFSC(data) MsgManager.ShowMsgByIDTable(1002) end -- region end -- notifycation from FunctionSelectCharacter function CreateRoleViewV2:EnableModelRotation() self.bcForDrag.enabled = true end function CreateRoleViewV2:DisableModelRotation() self.bcForDrag.enabled = false end function CreateRoleViewV2:OnBackToLogin() self:PlayUIAnimBack() end function CreateRoleViewV2:ShutdownSelectCharacter() FunctionSelectCharacter.Me():Shutdown() end function CreateRoleViewV2:JudgeAndSelectDefaultHairStyle() local iDefaultHairStyle = 0 if self.sex == E_Gender.Male then iDefaultHairStyle = self:CurrentOccupationDefaultHairStyleMale() elseif self.sex == E_Gender.Female then iDefaultHairStyle = self:CurrentOccupationDefaultHairStyleFemale() end local hairStylesID = self:CurrentOccupationHairStylesID() for i = 1, #hairStylesID do if hairStylesID[i] == iDefaultHairStyle then table.remove(hairStylesID, i) table.insert(hairStylesID, 1, iDefaultHairStyle) break end end local hairStylesData = {} for _, v in pairs(hairStylesID) do local hairStyleID = v local hairStyleData = {} hairStyleData.hairStyleID = hairStyleID hairStyleData.hairColorID = self.hairColorSelection hairStyleData.gender = self.sex hairStyleData.classID = self.occupationID table.insert(hairStylesData, hairStyleData) end self.listHairStyle:ResetDatas(hairStylesData) self.hairStyleCellsCtrl = self.listHairStyle:GetCells() iDefaultHairStyle = iDefaultHairStyle or 0 self:SelectHairStyle(iDefaultHairStyle) end function CreateRoleViewV2:SelectHairStyle(i_hair_style_id) if self.hairStyleCellsCtrl ~= nil then for _, hairStyleCellCtrl in pairs(self.hairStyleCellsCtrl) do if hairStyleCellCtrl.data.hairStyleID == i_hair_style_id then hairStyleCellCtrl:Selected() break end end end end function CreateRoleViewV2:CloseMainCamera() local gameObjectMainCamera = GameObject.FindGameObjectWithTag("MainCamera") if gameObjectMainCamera then local mainCamera = gameObjectMainCamera:GetComponent("Camera") mainCamera.enabled = false end end function CreateRoleViewV2:OnReceiveNetOff() self:CloseMainCamera() self:Hide() end function CreateRoleViewV2:CalibrateViewPortOfUICamera() -- local goUIRoot = GameObject.Find("UIRoot") -- if goUIRoot ~= nil then -- local transUICamera = goUIRoot.transform:Find("Camera") -- if transUICamera ~= nil then -- local camera = transUICamera:GetComponent(Camera) -- if camera ~= nil then -- local viewPort = camera.rect -- viewPort.x = 0 -- viewPort.y = 0 -- viewPort.width = 1 -- viewPort.height = 1 -- camera.rect = viewPort -- end -- end -- end if self.tickForFindMainCamera == nil then self.tickForFindMainCamera = TimeTickManager.Me():CreateTick(0, 1000, self.OnTimeTickForFindMainCamera, self, 1) end end function CreateRoleViewV2:OnTimeTickForFindMainCamera() local goMainCamera = GameObject.Find("Main Camera") if goMainCamera ~= nil then local transCameraUsedForDebugBlink = goMainCamera.transform:Find("CameraUsedForDebugBlink") if transCameraUsedForDebugBlink ~= nil then local camera = transCameraUsedForDebugBlink:GetComponent(Camera) if camera ~= nil then local viewPort = camera.rect viewPort.x = 0 viewPort.y = 0 viewPort.width = 1 viewPort.height = 1 camera.rect = viewPort end end self:CloseTimeTickForFindMainCamera() end end function CreateRoleViewV2:CloseTimeTickForFindMainCamera() TimeTickManager.Me():ClearTick(self, 1) self.tickForFindMainCamera = nil end function CreateRoleViewV2:GoToSelectRole() self:CloseSelf() self:ShutdownSelectCharacter() SceneProxy.Instance:SyncLoad('CharacterChoose') CSharpObjectForLogin.Ins():Initialize(function () local cameraController = CSharpObjectForLogin.Ins():GetCameraController() cameraController:GoToSelectRole() UIRoleSelect.Ins():Open() end) end function CreateRoleViewV2:OnTimeTickForCheckTimeout() CreateRoleViewV2.requestTime = CreateRoleViewV2.requestTime + 1 if CreateRoleViewV2.requestTime >= GameConfig.LoginRole.requestOuttime then self.timerForCheckTimeout:StopTick() if self.requestTimeoutEvent ~= nil then self.requestTimeoutEvent() end end end function CreateRoleViewV2:CloseTimeTickForCheckTimeout() TimeTickManager.Me():ClearTick(self, 2) self.timerForCheckTimeout = nil end function CreateRoleViewV2:OnClickForButtonContinueWait() self.timerForCheckTimeout:StartTick() CreateRoleViewV2.requestTime = 0 end function CreateRoleViewV2:OnClickForButtonBackLogin() Game.Me():BackToLogo() end return CreateRoleViewV2