SetViewSystemState = class("SetViewSystemState",SubView) local tempBGM = 1 local tempSound = 1 function SetViewSystemState:Init () self:FindObj() self:AddButtonEvt() self:AddViewEvts() self:Show() end function SetViewSystemState:FindObj () self.table = self:FindGO("Table"):GetComponent(UITable) self.bgmSlider = GameObject.Find("BgmSet/BgmSlider"):GetComponent("UISlider") self.soundSlider = GameObject.Find("SoundSet/SoundSlider"):GetComponent("UISlider") self.speechTeamToggle = GameObject.Find("SpeechTeamSet/SpeechTeamToggle"):GetComponent("UIToggle") self.speechGuildToggle = GameObject.Find("SpeechGuildSet/SpeechGuildToggle"):GetComponent("UIToggle") self.speechChatZoneToggle = GameObject.Find("SpeechChatZoneSet/SpeechChatZoneToggle"):GetComponent("UIToggle") self.speechPrivateChatToggle = GameObject.Find("SpeechPrivateChatSet/SpeechPrivateChatToggle"):GetComponent("UIToggle") self.ChineseVoiceToggle = GameObject.Find("ChineseVoice/ChineseVoiceToggle"):GetComponent("UIToggle") self.JapaneseVoiceToggle = GameObject.Find("JapaneseVoice/JapaneseVoiceToggle"):GetComponent("UIToggle") self.showDetailToggleAll = GameObject.Find("ShowDetailAll/ShowDetailToggleAll"):GetComponent("UIToggle") self.showDetailToggleFriend = GameObject.Find("ShowDetailFriend/ShowDetailToggleFriend"):GetComponent("UIToggle") self.showDetailToggleClose = GameObject.Find("ShowDetailClose/ShowDetailToggleClose"):GetComponent("UIToggle") self.SavingMode = GameObject.Find("SavingMode") self.SavingModeToggle = GameObject.Find("SavingMode/SavingModeToggle"):GetComponent("UIToggle") self.showExterior = {} self.showExterior[0] = self:FindGO("ShowExteriorHeadToggle"):GetComponent("UIToggle") self.showExterior[1] = self:FindGO("ShowExteriorBackToggle"):GetComponent("UIToggle") self.showExterior[2] = self:FindGO("ShowExteriorFaceToggle"):GetComponent("UIToggle") self.showExterior[3] = self:FindGO("ShowExteriorTailToggle"):GetComponent("UIToggle") self.showExterior[4] = self:FindGO("ShowExteriorMouthToggle"):GetComponent("UIToggle") self.weddingSet = self:FindGO("WeddingSet") self.showWeddingToggleAll = self:FindGO("ShowWeddingToggleAll"):GetComponent(UIToggle) self.showWeddingToggleFriend = self:FindGO("ShowWeddingToggleFriend"):GetComponent(UIToggle) self.showWeddingToggleClose = self:FindGO("ShowWeddingToggleClose"):GetComponent(UIToggle) self.pushSet = self:FindGO("PushSet") self.pushToggle = {} self.pushToggle[0] = self:FindGO("PushPoringToggle"):GetComponent(UIToggle) self.pushToggle[1] = self:FindGO("PushGuildToggle"):GetComponent(UIToggle) self.pushToggle[2] = self:FindGO("PushAuctionToggle"):GetComponent(UIToggle) self.pushToggle[3] = self:FindGO("PushMonsterToggle"):GetComponent(UIToggle) self.pushToggle[4] = self:FindGO("PushBigCatToggle"):GetComponent(UIToggle) self.GVoiceSet = self:FindGO("GVoiceSet") if self.GVoiceSet then self.GVoiceSet.gameObject:SetActive(false) end self.TeamGVoice = self:FindGO("TeamGVoice",self.GVoiceSet) self.GuildGVoice = self:FindGO("GuildGVoice",self.GVoiceSet) self.OpenYang = self:FindGO("OpenYang",self.GVoiceSet) self.OpenMai = self:FindGO("OpenMai",self.GVoiceSet) self.OpenMai_UILabel = self:FindGO("OpenMai",self.GVoiceSet):GetComponent(UILabel) self.OpenMai_UILabel.text = "開啟麥克風" self.TeamGVoiceToggle_UIToggle = self:FindGO("Toggle",self.TeamGVoice):GetComponent(UIToggle) self.GuildGVoiceToggle_UIToggle = self:FindGO("Toggle",self.GuildGVoice):GetComponent(UIToggle) self.OpenYangToggle_UIToggle = self:FindGO("Toggle",self.OpenYang):GetComponent(UIToggle) self.OpenMaiToggle_UIToggle = self:FindGO("Toggle",self.OpenMai):GetComponent(UIToggle) self.TeamGVoiceToggle_UIToggle.optionCanBeNone = true self.gvoiceToggle = {} self.gvoiceToggle[0] = self.TeamGVoiceToggle_UIToggle self.gvoiceToggle[1] = self.GuildGVoiceToggle_UIToggle self.gvoiceToggle[2] = self.OpenYangToggle_UIToggle self.gvoiceToggle[3] = self.OpenMaiToggle_UIToggle if GuildProxy.Instance:IHaveGuild() then self.GuildGVoice.gameObject:SetActive(true) --TODO:這個group需要管理起來 self.GuildGVoiceToggle_UIToggle.group = 101 self.TeamGVoiceToggle_UIToggle.group = 101 else end self.TeamGVoiceToggle_UIToggle.optionCanBeNone = true self.GuildGVoiceToggle_UIToggle.optionCanBeNone = true self.gvoiceToggle[2].group = 102 self.gvoiceToggle[3].group = 103 end --TODO:玩家給與語音授權后,全部為勾選狀態, local function ChangeYuYinShouQuanToAllTrue() end local changeSetting = {} local function ChangeBGMVolume (vol) local setting = FunctionPerformanceSetting.Me() changeSetting.bgmVolume = vol setting:Apply(changeSetting) end local function ChangeSoundVolume (vol) local setting = FunctionPerformanceSetting.Me() changeSetting.soundVolume = vol setting:Apply(changeSetting) end function SetViewSystemState:AddButtonEvt () EventDelegate.Set(self.bgmSlider.onChange , function () ChangeBGMVolume(self.bgmSlider.value) end) EventDelegate.Set(self.soundSlider.onChange , function () ChangeSoundVolume(self.soundSlider.value) end) for i=0,4 do --IPHONE手機未開啟通知,進入遊戲后推送提醒 self:AddClickEvent(self.pushToggle[i].gameObject,function(obj) if(self.pushToggle[i].value) then if ExternalInterfaces.isUserNotificationEnable() then else ExternalInterfaces.ShowHintOpenPushView (ZhString.Push_title,ZhString.Push_message,ZhString.Push_cancelButtonTitle,ZhString.Push_otherButtonTitles) end else end end) end self:AddClickEvent(self.TeamGVoiceToggle_UIToggle.gameObject,function(obj) if(self.TeamGVoiceToggle_UIToggle.value) then GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index ) if self.GuildGVoiceToggle_UIToggle.value then self.GuildGVoiceToggle_UIToggle.value = false GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index) end else GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index) end end) self:AddClickEvent(self.GuildGVoiceToggle_UIToggle.gameObject,function(obj) if(self.GuildGVoiceToggle_UIToggle.value) then if not GVoiceProxy.Instance:IsMySelfGongHuiJinYan() then GVoiceProxy.Instance:SetPlayerChooseToJoinGuildVoice(true) GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index) else MsgManager.FloatMsg(nil, "目前已經被會長禁言,無法開啟麥克風") end if self.TeamGVoiceToggle_UIToggle.value then --互斥 self.TeamGVoiceToggle_UIToggle =false GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index) end else GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index) end end) self:AddClickEvent(self.OpenYangToggle_UIToggle.gameObject,function(obj) if(self.OpenYangToggle_UIToggle.value) then else self.OpenMaiToggle_UIToggle.value = false end end) self:AddClickEvent(self.OpenMaiToggle_UIToggle.gameObject,function(obj) if GVoiceProxy.Instance:IsMySelfGongHuiJinYan() then MsgManager.FloatMsg(nil, "目前已經被會長禁言,無法開啟麥克風") self.OpenMaiToggle_UIToggle.value = false do return end end if(self.OpenMaiToggle_UIToggle.value) then else end end) end function SetViewSystemState:AddViewEvts() self:AddListenEvt(PushEvent.OnJPushTagOperateResult, self.HandleJPushTagOperateResult) end function SetViewSystemState:Show () local setting = FunctionPerformanceSetting.Me() self.bgmSlider.value = setting:GetSetting().bgmVolume tempBGM = setting:GetSetting().bgmVolume self.soundSlider.value = setting:GetSetting().soundVolume tempSound = setting:GetSetting().soundVolume self.speechTeamToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Team) self.speechGuildToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Guild) self.speechChatZoneToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Zone) self.speechPrivateChatToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Private) local showDetail = setting:GetSetting().showDetail if showDetail == SettingEnum.ShowDetailFriend then self.showDetailToggleFriend.value = true self.showDetailToggleClose.value = false self.showDetailToggleAll.value = false elseif showDetail == SettingEnum.ShowDetailClose then self.showDetailToggleFriend.value = false self.showDetailToggleClose.value = true self.showDetailToggleAll.value = false else self.showDetailToggleFriend.value = false self.showDetailToggleClose.value = false self.showDetailToggleAll.value = true end local voiceLanguage = setting:GetSetting().voiceLanguage if voiceLanguage == LanguageVoice.Chinese then self.ChineseVoiceToggle.value = true self.JapaneseVoiceToggle.value = false else self.ChineseVoiceToggle.value = false self.JapaneseVoiceToggle.value = true end self.SavingModeToggle.value = setting:GetSetting().powerMode self.SavingMode:SetActive(not BackwardCompatibilityUtil.CompatibilityMode_V9) local showExterior = MyselfProxy.Instance:GetFashionHide() for i=0,#self.showExterior do self.showExterior[i].value = self:GetBitByInt(showExterior, i) end if WeddingProxy.Instance:IsSelfSingle() then self.weddingSet:SetActive(false) else self.weddingSet:SetActive(true) local showWedding = Game.Myself and Game.Myself.data.userdata:Get(UDEnum.QUERYWEDDINGTYPE) or 0 if showWedding == SettingEnum.ShowWeddingFriend then self.showWeddingToggleFriend.value = true elseif showWedding == SettingEnum.ShowWeddingClose then self.showWeddingToggleClose.value = true else self.showWeddingToggleAll.value = true end end if BackwardCompatibilityUtil.CompatibilityMode_V19 then self.pushSet:SetActive(false) else self.pushSet:SetActive(true) local push = setting:GetSetting().push for i=0,#self.pushToggle do self.pushToggle[i].value = self:GetBitByInt(push, i) end end if ExternalInterfaces.isUserNotificationEnable() then Debug.Log("推送功能開啟 無需設定") else if (ApplicationInfo.GetRunPlatform() == RuntimePlatform.Android) then else for i=0,4 do Debug.Log("推送功能關閉 全設定成false") self.pushToggle[i].value = false end end end self.table:Reposition() end function SetViewSystemState:Save () local speech = {} if self.speechTeamToggle.value then table.insert(speech , ChatChannelEnum.Team) end if self.speechGuildToggle.value then table.insert(speech , ChatChannelEnum.Guild) end if self.speechChatZoneToggle.value then table.insert(speech , ChatChannelEnum.Zone) end if self.speechPrivateChatToggle.value then table.insert(speech , ChatChannelEnum.Private) end local showDetail = 0 if self.showDetailToggleAll.value then showDetail = SettingEnum.ShowDetailAll elseif self.showDetailToggleFriend.value then showDetail = SettingEnum.ShowDetailFriend elseif self.showDetailToggleClose.value then showDetail = SettingEnum.ShowDetailClose end local showWedding = 0 if self.showWeddingToggleAll.value then showWedding = SettingEnum.ShowWeddingAll elseif self.showWeddingToggleFriend.value then showWedding = SettingEnum.ShowWeddingFriend elseif self.showWeddingToggleClose.value then showWedding = SettingEnum.ShowWeddingClose end local voiceLanguage = 0 if self.ChineseVoiceToggle.value then voiceLanguage = LanguageVoice.Chinese else voiceLanguage = LanguageVoice.Jananese end tempBGM = self.bgmSlider.value tempSound = self.soundSlider.value local setting = FunctionPerformanceSetting.Me() setting:SetBegin() setting:SetBgmVolume(self.bgmSlider.value) setting:SetSoundVolume(self.soundSlider.value) setting:SetAutoPlayChatChannel(speech) setting:SetShowDetail(showDetail) setting:SetShowWedding(showWedding) setting:SetVoiceLanguage(voiceLanguage) if not BackwardCompatibilityUtil.CompatibilityMode_V9 then setting:SetPowerMode(self.SavingModeToggle.value) end setting:SetShowExterior(self:SetShowExterior()) setting:SetPush(self:SetPush()) setting:SetGVoice(self:SetGVoice()) setting:SetEnd() end function SetViewSystemState:Exit () ChangeBGMVolume(tempBGM) ChangeSoundVolume(tempSound) end function SetViewSystemState:SetShowExterior() local showExterior = 0 for i=0,#self.showExterior do showExterior = self:GetIntByBit(showExterior, i, not self.showExterior[i].value) end return showExterior end function SetViewSystemState:SetPush() local push = 0 for i=0,#self.pushToggle do push = self:GetIntByBit(push, i, not self.pushToggle[i].value) end return push end function SetViewSystemState:SetGVoice() local gvoice = 0 for i=0,#self.gvoiceToggle do gvoice = self:GetIntByBit(gvoice, i, not self.gvoiceToggle[i].value) end return gvoice end function SetViewSystemState:GetIntByBit(num, index, b) if b then num = num + (1<> index) & 1) == 0 end function SetViewSystemState:SwitchOn () end function SetViewSystemState:SwitchOff () end function SetViewSystemState:HandleJPushTagOperateResult(note) local data = note.body if data then end end