/****************************************************************** * * 设置界面 * ******************************************************************/ const BridgeWindow = require( "bridge.window" ); const FFSDK = require( "ff_sdk" ); const RoleController = require( "role_controller" ); const LoginMod = require( "login.mod" ); cc.Class( { extends: BridgeWindow, properties: { nodMusic: { default: null, type: cc.Node }, nodEffect: { default: null, type: cc.Node }, nodVoice: { default: null, type: cc.Node }, nodServer: { default: null, type: cc.Node }, nodOps : { default: null, type: cc.Node }, }, onLoad: function(){ let canshow = FFSDK.getInstance().mJsonSDKInfo ? FFSDK.getInstance().mJsonSDKInfo.channelName == "erolabs" : false; nx.gui.setActive( this.nodOps, "erolabs", canshow ); }, // 显示 onEnable: function() { // 视图绑定 nx.frame.vbind( this, [ [ "BgmVolume", this.onMusicVolumeChanged.bind( this ) ], [ "SfxVolume", this.onEffectVolumeChanged.bind( this ) ], [ "VocVolume", this.onVoiceVolumeChanged.bind( this ) ], ] ); // 服务器名 let info = nx.bridge.vget( "curServer" ); let name = info ? info.srv_name : ""; if( nx.dt.strNEmpty( name ) ) { this.nodServer.active = true; let sname = nx.text.format( "Zoom", info.zone_id ) + nx.text.getKey( name ); nx.gui.setString( this.nodServer, "txt", sname ); } else { this.nodServer.active = false; } }, // 关闭 onDisable: function() { // 视图监听解除 nx.frame.vunbind( this ); }, // ====================================================== // 音乐控制 // ====================================================== // 单条刷新 freshVolume: function( _item, _vol ) { let vol = parseFloat( _vol ) || 0; let open = ( vol >= 0.01 ); nx.gui.setActive( _item, "togger/on", open ); nx.gui.setActive( _item, "togger/off", !open ); nx.gui.setString( _item, "percent", Math.floor( vol * 100 ) + "%" ); this.freshSlider( _item, vol ); }, // 滑动条模拟 freshSlider: function( _item, _vol ) { let slider = nx.gui.getComponent( _item, "slider", cc.Slider ); let probar = nx.gui.getComponent( _item, "slider/progress", cc.ProgressBar ); if( slider && probar ) { slider.progress = _vol; probar.progress = _vol; } }, // 开关切换 onMusicTog: function() { let vol = nx.frame.vget( "BgmVolume" ); let opening = ( vol > 0.01 ) ? true : false; nx.audio.setBGMVolume( opening ? 0 : 0.5 ); }, // 音量滑动 onMusicSliderChanged: function( _slider ) { this.freshSlider( this.nodMusic, _slider.progress ); let vol = nx.frame.vget( "BgmVolume" ); let cur = Math.floor( _slider.progress * 100 ) / 100; if( vol != cur ) { nx.audio.setBGMVolume( cur ); } }, // 音量改变 onMusicVolumeChanged: function( _vol ) { this.freshVolume( this.nodMusic, _vol ); }, // ====================================================== // 音效控制 // ====================================================== // 开关切换 onEffectTog: function() { let vol = nx.frame.vget( "SfxVolume" ); let opening = ( vol > 0.01 ) ? true : false; nx.audio.setSFXVolume( opening ? 0 : 0.5 ); }, // 音量滑动 onEffectSliderChanged: function( _slider ) { this.freshSlider( this.nodEffect, _slider.progress ); let vol = nx.frame.vget( "SfxVolume" ); let cur = Math.floor( _slider.progress * 100 ) / 100; if( vol != cur ) { nx.audio.setSFXVolume( cur ); } }, // 音量改变 onEffectVolumeChanged: function( _vol ) { this.freshVolume( this.nodEffect, _vol ); }, // ====================================================== // 语音控制 // ====================================================== // 开关切换 onVoiceTog: function() { let vol = nx.frame.vget( "VocVolume" ); let opening = ( vol > 0.01 ) ? true : false; nx.audio.setVoiceVolume( opening ? 0 : 0.5 ); }, // 音量滑动 onVoiceSliderChanged: function( _slider ) { this.freshSlider( this.nodVoice, _slider.progress ); let vol = nx.frame.vget( "VocVolume" ); let cur = Math.floor( _slider.progress * 100 ) / 100; if( vol != cur ) { nx.audio.setVoiceVolume( cur ); } }, // 音量改变 onVoiceVolumeChanged: function( _vol ) { this.freshVolume( this.nodVoice, _vol ); }, // ====================================================== // 其他 // ====================================================== // 点击切换账号 onTouchTogAccount: function() { let self = this; if( FFSDK.getInstance().mJsonSDKInfo && FFSDK.getInstance().mJsonSDKInfo.channelName == "erolabs" ){ if( nx.dt.strEmpty( FFSDK.getInstance().accountinfo.data.user_info.account ) ){ nx.mbox( "BingAccountTip", [ 'no', 'yes' ], ( _key, _box )=>{ _box.close(); if( _key == 'yes' ){ LoginMod.getInstance().reqSDKLogout( ()=>{ FFSDK.getInstance().autoLogin() } ); }else{ } } ) }else{ nx.mbox( "AskTogAccount", [ 'no', 'yes' ], ( _key, _box )=>{ _box.close(); if( _key == 'yes' ){ LoginMod.getInstance().reqSDKLogout( ()=>{ FFSDK.getInstance().autoLogin() } ); }else{ console.log( "switchAccount" + JSON.stringify( this.accountinfo ) ); } } ) } }else{ nx.mbox( "AskTogAccount", [ "no", "yes" ], ( _key, _box ) => { _box.close(); if( _key == "yes" ) { game.enterLogin( true ); }; } ); } }, // 点击切换区服 onTouchTogServer: function() { nx.mbox( "AskTogServer", [ "no", "yes" ], ( _key, _box ) => { _box.close(); if( _key == "yes" ) { game.enterLogin(); }; } ); }, // 点击BUG反馈 onTouchBugBack: function() { let url = nx.bridge.vget( "gmUrl" ); if( FFSDK.getInstance().isEnableSDK() && nx.dt.strNEmpty( url ) ) { FFSDK.getInstance().openUrl( url ); return; } nx.bridge.createPanel( "WndBugReport" ); }, // 点击玩家社区 onTouchBBS: function() { let url = nx.bridge.vget( "socialUrl" ); if( FFSDK.getInstance().isEnableSDK() && nx.dt.strNEmpty( url ) ) { FFSDK.getInstance().openUrl( url ); } }, // 点击退出游戏 onTouchQuitGame: function() { nx.mbox( "AskQuitGame", [ "no", "yes" ], ( _key, _box ) => { _box.close(); if( _key == "yes" ) { nx.appQuit(); }; } ); }, // 点击綁定賬號 onTouchBindAccount: function() { nx.bridge.createPanel( "WndBind", { desc : nx.text.getKey( "SetBind" ), cb : ()=>{ FFSDK.getInstance().guestBind( ( _account )=>{ // console.log( "當前的account----sssss" + JSON.stringify( _account ) ); // console.log( "當前的account----wwwwwww" + _account.data.user_info.user_id ); RoleController.getInstance().reqGetBindReward( _account.data.user_info.account, ( _ret, _data )=>{ // console.log( "當前的account----" + _account.data.user_info.account ); if( !_ret ){ nx.tbox( _data ); return; } if( _data.code == 1 ){ // 重新登錄 --- nx.mTip.openTip( "setting.bind", false ); nx.mTip.openTip( "unbind", false ); nx.storage.set( "bindreward" + _account.data.user_info.account, "get" ); game.enterLogin( true ); } } ); } ); } } ) }, // 点击 聯係客服 onTouchCCT: function() { let url = nx.bridge.vget( "contackUrl" ); if( FFSDK.getInstance().isEnableSDK() && nx.dt.strNEmpty( url ) ) { FFSDK.getInstance().openUrl( url ); } }, // 点击 群組 onTouchTGroup: function() { let url = nx.bridge.vget( "tgroupUrl" ); if( FFSDK.getInstance().isEnableSDK() && nx.dt.strNEmpty( url ) ) { FFSDK.getInstance().openUrl( url ); } }, // 点击 免費ECoin onTouchFree: function() { let url = nx.bridge.vget( "ecoinUrl" ); if( FFSDK.getInstance().isEnableSDK() && nx.dt.strNEmpty( url ) ) { FFSDK.getInstance().openUrl( url ); } }, // 点击 免費ECoin onTouchGetBindReward: function() { nx.bridge.createPanel( "WndBind", { desc : nx.text.getKey( "Get" ), cb : ()=>{ let account = FFSDK.getInstance().accountinfo ? FFSDK.getInstance().accountinfo.data.user_info.account : ""; // let role = RoleController.getInstance().getRoleVo(); RoleController.getInstance().reqGetBindReward( "", ( _ret, _data )=>{ if( !_ret ){ nx.tbox( _data ); return; } if( _data.code == 1 ){ nx.mTip.openTip( "setting.bind", false ); nx.storage.set( "bindreward" + account, "get" ); } } ); } } ) }, } );