257 lines
8.8 KiB
JavaScript
257 lines
8.8 KiB
JavaScript
|
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
|
||
|
|
||
|
})
|
||
|
}
|
||
|
});
|