import SKLocalUtil from "../ts/gear_2.3.4/util/SKLocalUtil"; import SKUIUtil from "../ts/gear_2.3.4/util/SKUIUtil"; import GameModel from "../ts/core/GameModel"; import AudioManager from "../ts/gear_2.3.4/manager/AudioManager"; import SKSocket from "../ts/gear_2.3.4/net/SKSocket"; import AudioUtil from "../ts/core/AudioUtil"; import FGAlert from "../ts/gear_2.3.4/fgui/FGAlert"; import FGUtil from "../ts/gear_2.3.4/fgui/FGUtil"; cc.Class({ extends: cc.Component, properties: { musicSlider: cc.Slider, effectSlider: cc.Slider, voiceSlider: cc.Slider, musicProgress: cc.ProgressBar, effectProgress: cc.ProgressBar, voiceProgress: cc.ProgressBar, allToggle: cc.Toggle, musicToggle: cc.Toggle, effectToggle: cc.Toggle, voiceToggle: cc.Toggle, otherHideToggle: cc.Toggle, HdToggle: cc.Toggle, viewPanel: cc.Node, soundPanel: cc.Node, gamePanel: cc.Node, fightPanel: cc.Node, headIcon: cc.Sprite, nameLab: cc.Label, numberLab: cc.Label, addLoginOutTimeBtn: cc.Node, subLoginOutTimeBtn: cc.Node, saveLoginOutTimeBtn: cc.Node, editLoginOutTimeBtn: cc.Node, loginOutTime: 0, loginOutTimeLabel: cc.Label, }, onLoad() { let allchecked = cc.sys.localStorage.getItem('setting_all_checked'); allchecked = allchecked == null ? false : allchecked; let musichecked = cc.sys.localStorage.getItem('setting_music_checked'); musichecked = musichecked == null ? true : musichecked; let effectchecked = cc.sys.localStorage.getItem('setting_effect_checked'); effectchecked = effectchecked == null ? true : effectchecked; let voicechecked = cc.sys.localStorage.getItem('setting_voice_checked'); voicechecked = voicechecked == null ? true : voicechecked; this.allToggle.isChecked = allchecked; this.musicToggle.isChecked = musichecked; this.effectToggle.isChecked = effectchecked; this.voiceToggle.isChecked = voicechecked; this.headIcon.spriteFrame = GameModel.getRoleHead(GameModel.player.resid); this.nameLab.string = GameModel.player.name; this.numberLab.string = '編號:' + GameModel.player.roleid; this.currentPanel = this.soundPanel; }, start() { let mn = AudioManager.getMusicVolume(); let en = AudioManager.getEffectVolume(); let vn = AudioManager.getVoiceVolume(); this.musicSlider.progress = mn; this.effectSlider.progress = en; this.voiceSlider.progress = vn; this.musicProgress.progress = mn; this.effectProgress.progress = en; this.voiceProgress.progress = vn; let hd = cc.sys.localStorage.getItem('setting_hd'); this.HdToggle.isChecked = hd == 1; this.otherHideToggle.isChecked = GameModel.hideNotTeam; this.loginOutTime = parseInt(GameModel.player.offlinetime); this.loginOutTimeLabel.string = this.loginOutTime; }, onDestroy() { cc.sys.localStorage.setItem('setting_all_checked', this.allToggle.isChecked); cc.sys.localStorage.setItem('setting_music_checked', this.musicToggle.isChecked); cc.sys.localStorage.setItem('setting_effect_checked', this.effectToggle.isChecked); cc.sys.localStorage.setItem('setting_voice_checked', this.voiceToggle.isChecked); }, onMenuClicked(e, d) { switch (Number(d)) { case 1: this.currentPanel.active = false; this.soundPanel.active = true; this.currentPanel = this.soundPanel; break; case 2: this.currentPanel.active = false; this.viewPanel.active = true; this.currentPanel = this.viewPanel; break; case 3: this.currentPanel.active = false; this.gamePanel.active = true; this.currentPanel = this.gamePanel; break; } }, onCloseClicked(e, d) { AudioUtil.playCloseAudio(); this.node.destroy(); }, onSettingMusicBarCallback(slider, customEventData) { AudioManager.setMusicVolume(slider.progress); this.musicProgress.progress = slider.progress; }, onSettingEffectBarCallback(slider, customEventData) { AudioManager.setEffectVolume(slider.progress); this.effectProgress.progress = slider.progress; }, onSettingVoiceBarCallback(slider, customEventData) { AudioManager.setVoiceVolume(slider.progress); this.voiceProgress.progress = slider.progress; }, //聲音面板 allToggleClicked(e, d) { if (!this.allToggle.isChecked) { this.allToggle.isChecked = true; return; } this.musicToggle.isChecked = false; this.effectToggle.isChecked = false; this.voiceToggle.isChecked = false; }, singleToggleClicked(e, d) { if (this.musicToggle.isChecked == false && this.effectToggle.isChecked == false && this.voiceToggle.isChecked == false) { this.allToggle.isChecked = true; } else { this.allToggle.isChecked = false; } }, //界面面板 onOtherHideClicked(e, d) { SKLocalUtil.setBool(this.otherHideToggle.isChecked, "setting_hide_not_team"); GameModel.hideNotTeam = this.otherHideToggle.isChecked; let logic = cc.find('Canvas').getComponent('GameLogic'); if (logic) { logic.setAllPlayerActive(); } }, onHDpicture(e, d) { let hdflag = this.HdToggle.isChecked ? 1 : 0; cc.sys.localStorage.setItem('setting_hd', hdflag); if (this.HdToggle.isChecked) { cc.Texture2D.defaultPixelFormat = cc.Texture2D.PIXEL_FORMAT_RGBA8888; } else { cc.Texture2D.defaultPixelFormat = cc.Texture2D.PIXEL_FORMAT_RGBA4444; } }, onLogoutBtnClicked(e, d) { FGUtil.dispose(this.main); console.log("GameModel.player.offlinetime = ", GameModel.player.offlinetime) this.main = FGUtil.create("main_ui", "login_out"); let alert = FGUtil.getComponent(this.main, "alert"); let setBtn = FGUtil.getButton(alert, "cancel_btn"); let sureBtn = FGUtil.getButton(alert, "sure_btn") let msg = "您的帳號將[color=#ff0000]立即下線[/color],確認登出當前賬號?"; if (GameModel.player.offlinetime != 0) { msg = `您的帳號當前設置離線時間為[color=#ff0000]${GameModel.player.offlinetime}小時[/color]\n點擊按鈕[color=#ff0000]立即退出[/color]將離線保護[color=#ff0000]${GameModel.player.offlinetime}小時[/color],確認登出當前賬號? ` } FGUtil.getTextField(alert, "title").text = msg; FGUtil.root().addChild(this.main); FGUtil.fitScreen(this.main); sureBtn.clearClick() sureBtn.onClick(() => { SKSocket.disconnectBlock = null; SKSocket.close(); SKUIUtil.loadScene("LoginScene", null, (sceneName) => { GameModel.currentScene = sceneName; }); }) setBtn.clearClick() setBtn.onClick(() => { this.onMenuClicked(null, 3) cc.find("SettingNode/btn_group/toggle_game", this.node).getComponent(cc.Toggle).isChecked = true FGUtil.dispose(this.main); this.main = null }) }, /* * 選擇toggle頁 */ onChooseToggle(event, param) { console.log('onChooseToggle', param); let setting_node = cc.find('SettingNode', this.node); let safe_node = cc.find('SafeNode', this.node); setting_node.active = param == 'setting'; safe_node.active = param == 'safe'; if (param == 'safe') { safe_node.getComponent('SafeNode').init(); } }, addLoginOutTime() { if (this.loginOutTime >= 12) return; this.loginOutTime++; this.loginOutTimeLabel.string = this.loginOutTime; }, subLoginOutTime() { if (this.loginOutTime <= 0) return; this.loginOutTime--; this.loginOutTimeLabel.string = this.loginOutTime; }, editLoginOutTime() { this.addLoginOutTimeBtn.active = true this.subLoginOutTimeBtn.active = true this.saveLoginOutTimeBtn.active = true this.editLoginOutTimeBtn.active = false }, saveLoginOutTime() { this.addLoginOutTimeBtn.active = false this.subLoginOutTimeBtn.active = false this.saveLoginOutTimeBtn.active = false this.editLoginOutTimeBtn.active = true GameModel.player.offlinetime = this.loginOutTime; GameModel.send("c2s_set_offlinetime", { roleid: GameModel.player.roleid, offtime: this.loginOutTime }) } });