2025-06-04 05:02:57 +08:00

398 lines
13 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
end
return num
end
function SetViewSystemState:GetBitByInt(num, index)
return ((num >> 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