//牛牛10人版界面 //全局多个玩家界面显示相关对象 var NN_UIP = NN_UIP || {}; //对应显示配置的参数 NN_UIP.config = { }; //隐藏游戏所有界面 NN_UIP.hide = function(){ this.game.hide(); this.deskInfo.hide(); this.show.hide(); this.anim.hide(); this.btn.hide(); this.card.hide(); this.net.hide(); this.settlement.hide(); this.gameOver.hide(); this.countDown.hide(); //提示隐藏 NN_Tips.words(); //托管图标及提示 NN_UI.trusteeshipState(); }; NN_UIP.ontime = function(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes){ //隐藏 this.btn.ontime(gameid, spid, times, timelong, alltimes); }; //清除定时器 NN_UIP.clearTimeout = function(obj_TOId){ //清除定时器 if(typeof(obj_TOId) == "object"){ for(var sx in obj_TOId){ if(obj_TOId[sx] > -1){ clearTimeout(obj_TOId[sx]); obj_TOId[sx] = -1; } } }else if(typeof(obj_TOId) == "number"){ if(obj_TOId[sx] > -1){ clearTimeout(obj_TOId[sx]); obj_TOId[sx] = -1; } } }; //清除循环定时器 NN_UIP.clearInterval = function(obj_TOId){ //清除定时器 if(typeof(obj_TOId) == "object"){ for(var sx in obj_TOId){ if(obj_TOId[sx] > -1){ clearInterval(obj_TOId[sx]); obj_TOId[sx] = -1; } } }else if(typeof(obj_TOId) == "number"){ if(obj_TOId[sx] > -1){ clearInterval(obj_TOId[sx]); obj_TOId[sx] = -1; } } }; //牛牛界面显示 NN_UIP.draw = { }; //游戏显示及刷新 NN_UIP.game = { //中断显示 hide: function(){ this.startWar(); this.okZhuang(); this.disbandGame(); }, //定时id _toId: { startWar: { t1: -1, t1_1: -1, t1_2: -1, t1_3: -1, t2: -1, t2_1: -1, t3: -1, t3_1: -1, }, okZhuang: { t1: -1, t2: -1, t3: -1, t3_1: -1 }, disbandGame: { t1: -1, t2: -1, } }, //开战动画标记 _isAnim_startWar: false, //游戏开战时显示 startWar: function(isFast, startType, zhuang, data){ if(startType != null){ var _time = 0; //隐藏游戏界面 this.hide(); //更新桌信息 NN_UIP.deskInfo.update(); //开战动画标记 this._isAnim_startWar = true; if(NN_Desk.nowCount == 1){ //"游戏开始"显示 _time = NN_UIF.anim.gameStart(1,1,1,isFast); } //定时显示 this._toId.startWar.t1 = setTimeout(function(){ this._toId.startWar.t1 = -1; if(NN_Desk.nowCount == 1){ //"游戏开始"隐藏 NN_UIF.anim.gameStart(); } //判断是否无限局 if(Utl.getIsInfinite() == 1){ _time = NN_UIF.anim.roundStart(1, 1, 1, isFast); } else { //第几局显示 _time = NN_UIF.anim.gamesNum(1,1,1,isFast); } //定时显示玩家抢庄按钮或确定庄 this._toId.startWar.t1_1 = setTimeout(function(){ this._toId.startWar.t1_1 = -1; //"游戏开始"隐藏 NN_UIF.anim.gameStart(); //第几局隐藏 NN_UIF.anim.gamesNum(); //console.log("到第几局消失时时间差:" + ((new Date()).getTime() - NN_UI.time_start)); if(startType == 0){//抢庄 //console.log("抢庄"); NN_Desk.state = NN_state.robZhuang; NN_UIP.countDown.show(NN_Desk.timeout_m.robzhuang); NN_UIP.btn.robZhuang(1,1,1); //开战动画标记取消 this._isAnim_startWar = false; //显示玩家抢庄状态 NN_UIP.update.robZhuang(); }else if(startType == 1){//显示发牌 NN_Desk.state = NN_state.robZhuang; NN_UIP.card.dealCards(1,1,1, NN_Desk.model_fast, data.dice, data.dealorder, [0,3]); }else if(startType == 2){//显示下注 //if(data.dealCard){ //} }else if(startType == 3){//轮庄 //console.log("轮庄"); //掷骰子随机庄 //_time = NN_UIP.show.rollDice(1,1,1,data.ramZhuang.robList); //多个闪现至庄桌位 _time = NN_UIP.show.ensureZhuang(1, 1, 1, isFast, NN_Desk.robList); //console.log("掷骰子"); //定时显示庄,洗牌动画,下注按钮 this._toId.startWar.t1_2 = setTimeout(function(){ this._toId.startWar.t1_2 = -1; //显示庄,下注按钮 NN_UIP.anim.okZhuang(1, 1, 1, isFast, function(){ NN_UIP.btn.betScore(1,1,1); //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.bet); }, 1); }.bind(this), _time); }else if(startType == 4){//房主坐庄 //console.log("房主坐庄"); //显示庄,洗牌动画,下注按钮 NN_UIP.anim.okZhuang(1, 1, 1, isFast, function(){ NN_UIP.btn.betScore(1,1,1); //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.bet); }); }else{ //console.log("其他"); } //开战动画标记 this._isAnim_startWar = false; }.bind(this), _time); }.bind(this), _time); }else {//中断显示 //清除相关定时器 NN_UIP.clearTimeout(this._toId.startWar); //隐藏动画 NN_UIF.anim.gameStart(); NN_UIF.anim.gamesNum(); //NN_UIF.anim.okZhuang(); //开战动画标记 this._isAnim_startWar = false; } }, _isAnim_okZhuang : false, //确定庄后显示流程 okZhuang: function(isView, isAnim, isSound, isFast, callbackFunc, data){ //判断是否一人抢庄 if(isView){ var _time = 0; var _robList = []; for (var i=0;i 0){ //抢庄按钮 NN_UIP.btn.robZhuang(true); } }else { //抢庄按钮 NN_UIP.btn.robZhuang(true); } //刷新所有玩家抢庄 this.robZhuang(); //显示倒计时 NN_UIP.countDown.reconnect(); break; case NN_state.bet: //下注阶段 //刷新所有玩家牌 if(NN_Desk.model == 4){ this.cards(); if(NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0){ //下注按钮 this.bet(); } }else if(NN_Desk.model == 5){ if(NN_Desk.zhuang >= 0){ this.cards(); //显示加注提示 for(var i=0;i 0){ NN_UIP.show.betScoreAgain(1,1,1,i,NN_Desk.pList[i].betScoreAgain); } } //显示下注按钮和不加注按钮 this.bet(1); }else { this.bet();//下注按钮 } }else { //下注按钮 this.bet(); } //显示倒计时 NN_UIP.countDown.reconnect(); break; case NN_state.dealCard: //发牌阶段 if(NN_RevDataRecord.dealCards != null && NN_RevDataRecord.over == -1){ //显示 NN_UIP.card.dealCards(1,1,1,NN_Desk.model_fast,NN_RevDataRecord.dealCards.dice,NN_RevDataRecord.dealCards.dealorder); if(NN_Desk.model != 5){ //下注抢庄 状态不改变 NN_Desk.state = NN_state.rubCard; } NN_RevDataRecord.over = 1; }else { //刷新所有玩家牌 this.cards(); } break; case NN_state.rubput: //搓摆牌阶段 case NN_state.rubCard: //搓 case NN_state.putCard: //摆 //刷新所有玩家牌 this.cards(); //显示倒计时 NN_UIP.countDown.reconnect(); break; case NN_state.settlement: //小局结算阶段 //刷新所有玩家牌 this.cards(); //刷新小局结算显示 this.settlement(isFast); break; case NN_state.over: //总结算阶段 //总结算 this.gameOver(); break; default: break; } //玩家计时读条 //if(NN_RevDataRecord.over != 1){//发牌阶段不显示 //NN_UI.Reconnect_CountDown(); //} //托管显示 NN_UI.trusteeshipState(true, false, NN_Desk.myseat); //牛牛状态 - 游戏中 NN_GameState = NN_State.inGame; //无序发牌按钮显示 NN_UIF.disorderDeal.showBtn(true); //console.log("结束刷新游戏界面"); } }, //庄位置刷新 zhuang: function(){ NN_UIP.show.zhuang(true, false, false, false); }, //玩家分数刷新 playerScore : function(seat, _score){ if(seat != null && seat >= 0){//单个玩家分数更新 if(_score != null){ this.setGrade(seat,_score); }else{ this.setGrade(seat,NN_Desk.pList[seat].scores); } }else { //所有玩家分数更新 for(var i=0;i 0){//显示下注分数 NN_UIP.show.betScore(true,false,false, i, NN_Desk.pList[i].betScore); } } } }, //刷新所有玩家牌 cards: function(seat){ //NN_UIF.card. //更新牌显示及搓摆牌显示 NN_UIP.card.update(seat); }, //刷新小局结算显示 settlement: function(isFast){ //更新牌显示及搓摆牌显示 if(NN_Desk.state == NN_state.settlement){ if(NN_RevDataRecord.settlement && NN_RevDataRecord.settlement != "" && NN_RevDataRecord.settlement.result){ NN_UIP.settlement.view(1,0,0,isFast,NN_RevDataRecord.settlement.result); NN_RevDataRecord.over = 1; }else { //重连 var result = [[],[],[],[],[],[],[],[],[],[]]; for(var i = 0; i < NN_Desk.pList.length; i++){ if(NN_Desk.pList[i] && NN_Desk.pList[i].cards.cards.length == 5){ result[i] = [NN_Desk.pList[i].winScore, NN_Desk.pList[i].scores, Utl.getBeanBySeat(i)]; } } NN_UIP.settlement.view(1, 0, 0, isFast, result); } } }, //刷新总结算显示 gameOver: function(){ if(NN_Desk.state == NN_state.over && NN_RevDataRecord.gameover && NN_RevDataRecord.gameover != "" && NN_RevDataRecord.over == -1){ //显示总结算 //NN_UI.gameOver(NN_RevDataRecord.gameover.scores,NN_RevDataRecord.gameover.rounds); NN_UIP.gameOver.view(1,0,0,NN_Desk.model_fast, NN_RevDataRecord.gameover.scores, NN_RevDataRecord.gameover.rounds); NN_RevDataRecord.over = 1; } }, }; //游戏桌信息 NN_UIP.deskInfo = { //隐藏 hide: function(){ this.background(); this.roundNum(); this.roomTypeDes(); this.modelIcon(); this.forceBet(); this.disorderDealBtn(); }, update: function(){ if(Utl.getIsInfinite() == 1){ this.background(); this.roundNum(); this.roomTypeDes(); this.forceBet(); }else { this.background(true); this.roundNum(true); this.roomTypeDes(true); this.modelIcon(true); this.forceBet(true); } this.disorderDealBtn(true); }, //背景框 background: function(isView){ if(isView){ set_self(NN_Sprite.deskInfo.bmp,37,1,0,0); }else { set_self(NN_Sprite.deskInfo.bmp,37,0,0,0); } }, //桌的信息显示 roundNum : function(isView, counts, nowCount){ if(isView || counts != null){ if(nowCount == null){ nowCount = NN_Desk.nowCount; } if(counts == null){ counts = NN_Desk.roomtype[0]; } var spid_c = NN_Sprite.deskInfo.count; if(Utl.getIsInfinite() == 1){ //系统房间-无限局 set_self(spid_c,37,0,0,0); } else { //局数 if(nowCount < 10 && counts >= 10){ set_self(spid_c,7,"第 " + nowCount + "/" + counts + "局",0,0); } else if(nowCount >= 10 && counts >= 10){ set_self(spid_c,7,"第" + nowCount + "/" + counts + "局",0,0); } else if(nowCount < 10 && counts < 10){ set_self(spid_c,7,"第 " + nowCount + "/" + counts + " 局",0,0); } if(isView){ set_self(spid_c,37,1,0,0); } } }else { set_self(NN_Sprite.deskInfo.count,37,0,0,0); } }, //房间类型描述 setRoomTypeDes: function(roomDes){ set_self(NN_Sprite.deskInfo.typeDes,7,roomDes,0,0); }, //房间类型描述 roomTypeDes: function(isView, roomDes){ if(isView){ set_self(NN_Sprite.deskInfo.typeDes,37,1,0,0); }else { set_self(NN_Sprite.deskInfo.typeDes,37,0,0,0); } }, //模式图标 (星星场、比赛场) modelIcon: function(isView){ if(isView && NN_Desk.model_bean[0] == 1){ set_self(NN_Sprite.star.icon,37,1,0,0); if(Utl.getIsInfinite() != 1){ set_self(NN_Sprite.star.des,7,"倍:" + NN_Desk.model_bean[2] + " 限:"+ NN_Desk.model_bean[1],0,0); set_self(NN_Sprite.star.des,37,1,0,0); } }else{ set_self(NN_Sprite.star.icon,37,0,0,0); set_self(NN_Sprite.star.des,37,0,0,0); } }, //强制下注分数显示 forceBet: function(isView){ //游戏界面显示强制下注分数 if(isView && Utl.getIsInfinite() != 1 && NN_config.forceBetType != 1 && NN_config.force_bet[0] == 1 && NN_config.force_bet[2] > 0 && NN_Desk.personMax != 10){ set_self(NN_Sprite.forceBetDes,7,"强制下注:" + NN_config.force_bet[2],0,0); set_self(NN_Sprite.forceBetDes,37,1,0,0); } else{ set_self(NN_Sprite.forceBetDes,37,0,0,0); } }, //显示无序发牌 disorderDealBtn: function(isView){ NN_UIF.disorderDeal.showBtn(isView); } }; //牛牛界面显示 NN_UIP.show = { //隐藏 hide: function(){ this.zhuang(); this.robZhuang(); this.rollDice(); this.ensureZhuang(); this.betScore(); this.betScoreAgain(); this.firstBetState(); this.onRobPutTips(); }, //ontime定时器 ontime : function(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes){ if(spid == 711 && this._ensureZhuangVal){ //庄背景框闪动 set_self(711,57,0,0,0); if(this._ensureZhuangVal.length == 1){ //显示庄 this._ensureZhuangVal = null; this.zhuang(1, 1, 1, NN_Desk.model_fast); //console.log("执行结束:"+ JSON.stringify(this._ensureZhuangVal)); //console.log("执行结束:" + ((new Date()).getTime() - NN_UI.time_start)); }else if(this._ensureZhuangVal.length > 0){ //console.log("执行间隔:" + ((new Date()).getTime() - NN_UI.time_start)); //_ensureZhuangVal.pop(); var wz = NN_SF[this._ensureZhuangVal[0][0]]; //显示庄背景框 if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ set_self(NN_Sprite.zhuangBg.id, 18, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 18) + NN_Sprite.zhuangBg.position[0],0,0); set_self(NN_Sprite.zhuangBg.id, 19, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 19) + NN_Sprite.zhuangBg.position[1],0,0); set_self(NN_Sprite.zhuangBg.id, 20, NN_Sprite.zhuangBg.size[0][0], 0, 0); set_self(NN_Sprite.zhuangBg.id, 21, NN_Sprite.zhuangBg.size[0][1], 0, 0); }else { set_self(NN_Sprite.zhuangBg.id, 18, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 18) + NN_Sprite.zhuangBg.position[0],0,0); set_self(NN_Sprite.zhuangBg.id, 19, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 19) + NN_Sprite.zhuangBg.position[1],0,0); set_self(NN_Sprite.zhuangBg.id, 20, NN_Sprite.zhuangBg.size[1][0], 0, 0); set_self(NN_Sprite.zhuangBg.id, 21, NN_Sprite.zhuangBg.size[1][1], 0, 0); } set_self(NN_Sprite.zhuangBg.id, 37, 1, 0, 0); // this._ensureZhuangVal.shift(); set_self(711,57,this._ensureZhuangVal[0][1],0,0); //console.log("剩余次数 = " + this._ensureZhuangVal.length); } } }, _toId: { zhuang : { t1 : -1 }, rollDice: { t1: -1, t1_1: -1, t1_2: -1, t1_3: -1 }, firstBetState: { t1 : -1 }, ensureZhuang: { t1 : -1, t2 : -1 }, betScoreAgain: { t0 : -1, t1 : -1, t2 : -1, t3 : -1, t4 : -1 }, }, //显示提示,_time为0时不定时关闭 tips: function(type, _time){ var str = ""; if(_time == null){ _time = 2000; } switch (type){ case "noBean": //未准备退出房间 str = "你的" + NN_config.beanDes + "数不足哦"; break; case "noBeanBet": //星星数不够下注 str = NN_config.beanDes + "数不够,不能下注哦"; break; case "noBeanBetFail": //星星数不够,下注失败 str = "下注失败" + NN_config.beanDes + "数不足哦"; break; case "noBeanRob": //星星数不够抢庄 str = NN_config.beanDes + "数不够,不能抢庄哦"; break; case "noBeanRobFail": //星星数不够,抢庄失败 str = "抢庄失败,"+ NN_config.beanDes +"数不够哦"; _time = 0; break; case "noBeanExit": //星星不足退出房间 str = NN_config.beanDes + "数不足,已退出房间"; _time = 0; break; case "noReadyExit": //未准备退出房间 str = "未准备超时,已退出房间"; _time = 0; break; case "zhuangNoBean": //庄星星不足 str = "庄家"+ NN_config.beanDes +"数不够哦"; _time = 3000; break; case "skipZhuang": //星星不足,跳过轮庄 str = "有玩家" + NN_config.beanDes + "数不足,跳过轮庄"; break; case "noBeanGameover": //星星不足,跳过轮庄 str = "玩家"+ NN_config.beanDes +"数不足,游戏提前结束"; _time = 0; break; case "trusteeship": //托管中 str = "托管中。。。"; break; case "Untrusteeship": //取消啊托管 str = "托管已取消"; break; case "othersNoBeanRob": //庄以外其他玩家金币不够抢庄 str = "其他玩家" + NN_config.beanDes + "都不够抢庄"; _time = 3000; break; default: break; } if (str != ""){ Utl.openTips(str, _time); } }, //搓摆牌提示 onRobPutTips: function(isView, isAnim, isSound, wz){ if(isView){ //搓摆牌中 if(wz == null){ return ; } if(wz == 0){ //点三张牌选牛提示 set_self(NN_Sprite.selectCardTips, 18, get_self(NN_Sprite.onRobPut.relvSpid[wz], 18) + NN_Sprite.onRobPut.position[wz][0], 0, 0); set_self(NN_Sprite.selectCardTips, 19, get_self(NN_Sprite.onRobPut.relvSpid[wz], 19) + NN_Sprite.onRobPut.position[wz][1], 0, 0); set_self(NN_Sprite.selectCardTips, 37, 1, 0, 0); set_self(NN_Sprite.selectCardTips, 41, 0, 0, 0); //提示背景 set_self(NN_Sprite.selectCardTipsBmp, 18, get_self(NN_Sprite.onRobPut.idList[wz], 18) - 72,0,0); set_self(NN_Sprite.selectCardTipsBmp, 19, get_self(NN_Sprite.onRobPut.idList[wz], 19) - 9,0,0); set_self(NN_Sprite.selectCardTipsBmp, 37, 1, 0, 0); set_self(NN_Sprite.selectCardTips, 41, 0, 0, 0); }else { set_self(NN_Sprite.onRobPut.idList[wz], 18, get_self(NN_Sprite.onRobPut.relvSpid[wz], 18) + NN_Sprite.onRobPut.position[wz][0], 0, 0); set_self(NN_Sprite.onRobPut.idList[wz], 19, get_self(NN_Sprite.onRobPut.relvSpid[wz], 19) + NN_Sprite.onRobPut.position[wz][1], 0, 0); set_self(NN_Sprite.onRobPut.idList[wz], 37, 1, 0, 0); } }else { if(wz >= 0){ //隐藏单个 if(wz == 0){ set_self(NN_Sprite.selectCardTips, 37, 0, 0, 0); set_self(NN_Sprite.selectCardTipsBmp, 37, 0, 0, 0); }else { set_self(NN_Sprite.onRobPut.idList[wz], 37, 0, 0, 0); } }else { set_self(NN_Sprite.selectCardTips, 37, 0, 0, 0); set_self(NN_Sprite.selectCardTipsBmp, 37, 0, 0, 0); NN_Sprite.onRobPut.show(-1, 0); } } }, //显示庄图标 zhuang: function(isView, isAnim, isSound, isFast, _time){ if(isView && NN_Desk.zhuang >= 0 && NN_Desk.state != NN_state.robZhuang){ var wz = NN_SF[NN_Desk.zhuang], zIcon = NN_Sprite.zhuang, animIcon = NN_Sprite.zhaungAnim; //庄图标位置 set_self(zIcon.id,18,get_self(zIcon.relvSpid[wz], 18) + zIcon.position[wz][0],0,0); set_self(zIcon.id,19,get_self(zIcon.relvSpid[wz], 19) + zIcon.position[wz][1],0,0); set_self(zIcon.id,33,100,0,0); set_self(zIcon.id,35,255,0,0); set_self(zIcon.id,41,0,0,0); set_self(zIcon.id,37,1,0,0); //庄头像框 if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ set_self(NN_Sprite.zhuangBg.id, 18, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 18) + NN_Sprite.zhuangBg.position[0],0,0); set_self(NN_Sprite.zhuangBg.id, 19, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 19) + NN_Sprite.zhuangBg.position[1],0,0); set_self(NN_Sprite.zhuangBg.id, 20, NN_Sprite.zhuangBg.size[0][0], 0, 0); set_self(NN_Sprite.zhuangBg.id, 21, NN_Sprite.zhuangBg.size[0][1], 0, 0); }else { set_self(NN_Sprite.zhuangBg.id, 18, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 18) + NN_Sprite.zhuangBg.position[0],0,0); set_self(NN_Sprite.zhuangBg.id, 19, get_self(NN_Sprite.zhuangBg.relvSpid[wz], 19) + NN_Sprite.zhuangBg.position[1],0,0); set_self(NN_Sprite.zhuangBg.id, 20, NN_Sprite.zhuangBg.size[1][0], 0, 0); set_self(NN_Sprite.zhuangBg.id, 21, NN_Sprite.zhuangBg.size[1][1], 0, 0); } set_self(NN_Sprite.zhuangBg.id, 41, 0, 0, 0); set_self(NN_Sprite.zhuangBg.id, 37, 1, 0, 0); if(isAnim){ //确定庄动画图坐标 set_self(animIcon.id,18,get_self(animIcon.relvSpid, 18) + animIcon.position[0],0,0); set_self(animIcon.id,19,get_self(animIcon.relvSpid, 19) + animIcon.position[1],0,0); set_self(animIcon.id,37,1,0,0); //庄图标缩小 play_ani(1,zIcon.id,35,0,255,0,100,0,0,0,1,0,0); play_ani(1,zIcon.id,33,350,100,0,250,0,100,0,1,0,0); //庄动画变帧 play_ani(1,animIcon.id,43,1,24,0,720,0,200,0,1,0,0); //定时刷新庄位置 this._toId.zhuang.t1 = window.setTimeout(function(){ this._toId.zhuang.t1 = -1; //刷新庄背景框显示 this.zhuang(true,false,false); }.bind(this),950); //播放音效 if(isSound){ NN_playSound("qdz",0); } return 800; } else { //隐藏庄动画 set_self(animIcon.id,37,0,0,0); return 1; } } else { NN_UIP.clearTimeout(this._toId.zhuang); play_ani(0,NN_Sprite.zhuang.id,0); play_ani(0,NN_Sprite.zhaungAnim.id,0); set_self(NN_Sprite.zhuang.id,37,0,0,0); set_self(NN_Sprite.zhaungAnim.id,37,0,0,0); set_self(NN_Sprite.zhuangBg.id, 37, 0, 0, 0); NN_playSound("qdz",-1); return 1; } }, //玩家抢庄 robZhuang: function(isView, isAnim, isSound, seat){ if(isView && seat != null){ if(NN_Desk.pList[seat] && NN_Desk.robList[seat] != 0){ var wz = NN_SF[seat]; //位置- 区分下注抢庄 if(NN_Desk.model == 5){ set_self(NN_Sprite.robState.idList[wz],18,get_self(NN_Sprite.robState.relvSpid[wz], 18) + NN_Sprite.robState.posModel5[wz][0],0,0); set_self(NN_Sprite.robState.idList[wz],19,get_self(NN_Sprite.robState.relvSpid[wz], 19) + NN_Sprite.robState.posModel5[wz][1],0,0); } else { NN_Sprite.robState.setPosition(wz); } // if(NN_Desk.robList[seat] == 1){//抢 set_self(NN_Sprite.robState.idList[wz],43,1,0,0); set_self(NN_Sprite.robState.idList[wz],37,1,0,0); if(isSound){ NN_playSound("rob",0,Utl.getSexBySeat(seat)); } }else if(NN_Desk.robList[seat] == -1){ set_self(NN_Sprite.robState.idList[wz],43,2,0,0); set_self(NN_Sprite.robState.idList[wz],37,1,0,0); if(isSound){ NN_playSound("norob",0,Utl.getSexBySeat(seat)); } } //显示 //set_self(NN_Sprite.robState.idList[wz],37,1,0,0); //隐藏抢庄按钮 if(NN_Desk.myseat == seat){ //自己抢庄隐藏按钮 NN_UIP.btn.robZhuang(); } } } else { NN_Sprite.robState.show(-1, 0); if(!isSound){ NN_playSound("rob",-1); NN_playSound("norob",-1); } } }, //掷骰子动画c rollDice: function(isView, isAnim, isSound, isFast, robList, callBackFunc){ if(isView && robList){ var _time = 0; var _robList = []; for (var i=0; i< robList.length; i++) { if(robList[i] == 1){ _robList.push(i); } } //var _robList = data.ramZhuang.diceList; var wz; for(var i=0;i<_robList.length;i++){ wz = NN_SF[_robList[i]]; //丢色子动画 set_self(789+wz,37,1,0,0); if(NN_Desk.model == 4 || NN_Desk.model == 5){ if(wz == 0){ set_self(789+wz,18,535,0,0); if(NN_Desk.model == 5){ //隐藏自己的下注 NN_UIP.show.betScore(0,0,0,NN_Desk.myseat); } }else if(wz == 1 || wz == 2){ //设置色子的位置 set_self(789+wz,18,700,0,0); }else if(wz == 3 || wz == 4){ set_self(789+wz,18,370,0,0); } }else { if(wz == 0){ set_self(789+wz,18,545,0,0); }else if(wz == 1 || wz == 2){ //设置色子的位置 set_self(789+wz,18,908,0,0); }else if(wz == 3 || wz == 4){ set_self(789+wz,18,180,0,0); } } if(isFast){//快版 play_ani(1,789+wz,43,1,6,0,400,100,0,0,1,0,0); _time = 400 + 50; }else { play_ani(1,789+wz,43,1,7,0,700,100,0,0,2,0,0); _time = 700 * 2 + 100; } } if(isSound){ NN_playSound("ysz",0); } //定时显示色子点数 this._toId.rollDice.t1 = window.setTimeout(function(){ this._toId.rollDice.t1 = -1; for(var i=0;i<_robList.length;i++){ set_self(789+NN_SF[_robList[i]],37,0,0,0); //显示点数 set_self(794+NN_SF[_robList[i]]*2,18,get_self(789+NN_SF[_robList[i]],18)+18,0,0); set_self(795+NN_SF[_robList[i]]*2,18,get_self(789+NN_SF[_robList[i]],18)+110,0,0); set_self(794+NN_SF[_robList[i]]*2,43,NN_Desk.diceList[_robList[i]][0],0,0); set_self(795+NN_SF[_robList[i]]*2,43,NN_Desk.diceList[_robList[i]][1],0,0); set_self(794+NN_SF[_robList[i]]*2,37,1,0,0); set_self(795+NN_SF[_robList[i]]*2,37,1,0,0); } var _time_1 = 600; if(isFast){//快版 _time_1 = 100; } //定时显示色子点数 this._toId.rollDice.t1_1 = window.setTimeout(function(){ this._toId.rollDice.t1_1 = -1; var _spid; for(var i=0;i<_robList.length;i++){ if(_robList[i] == NN_Desk.zhuang){ _spid = 900+NN_SF[_robList[i]]; }else{ _spid = 895+NN_SF[_robList[i]]; } set_self(_spid,7,NN_Desk.diceList[_robList[i]][0] + NN_Desk.diceList[_robList[i]][1],0,0); set_self(_spid,19,get_self(789+NN_SF[_robList[i]],19)-15,0,0); if(NN_Desk.diceList[_robList[i]][0] + NN_Desk.diceList[_robList[i]][1] < 10){ set_self(_spid,18,get_self(789+NN_SF[_robList[i]],18)+76,0,0); }else { set_self(_spid,18,get_self(789+NN_SF[_robList[i]],18)+61,0,0); } set_self(_spid,20,String(get_self(_spid,7)).length*30,0,0); set_self(_spid,33,150,0,0); set_self(_spid,35,255,0,0); if(_robList[i] == NN_Desk.zhuang){ set_self(_spid,35,255,0,0); set_self(_spid,33,0,0,0); set_self(_spid,37,1,0,0); if(isFast){ //快版 play_ani(2,_spid,35,0,255,0,200,0,0,0,1,0,0); play_ani(1,_spid,33,500,150,0,200,0,200,0,1,0,0); var spid_m = _spid; this._toId.rollDice.t1_2 = window.setTimeout(function(){ this._toId.rollDice.t1_2 = -1; set_self(spid_m,35,255,0,0); set_self(spid_m,33,150,0,0); set_self(spid_m,37,1,0,0); }.bind(this),400); }else { play_ani(2,_spid,35,0,255,0,350,0,0,0,1,0,0); play_ani(1,_spid,33,500,150,0,400,0,350,0,1,0,0); var spid_m = _spid; this._toId.rollDice.t1_2 = window.setTimeout(function(){ this._toId.rollDice.t1_2 = -1; set_self(spid_m,35,255,0,0); set_self(spid_m,33,150,0,0); set_self(spid_m,37,1,0,0); }.bind(this),850); } } set_self(_spid,37,1,0,0); }; }.bind(this),_time_1); var _time_2 = 3200; if(isFast){//快版 _time_2 = 1200; } //显示下注按钮 this._toId.rollDice.t1_3 = window.setTimeout(function(){ this._toId.rollDice.t1_3 = -1; //下注抢庄-显示自己下注 if(NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].betScore > 0){ NN_UIP.show.betScore(1,0,0,NN_Desk.myseat, NN_Desk.pList[NN_Desk.myseat].betScore); } //隐藏色子 set_group(205,37,0,0,0); //显示庄,洗牌动画,下注按钮 //调用回调函数 if(callBackFunc){ callBackFunc(); } //NN_UI.okZhuang_1(); }.bind(this),_time_2); }.bind(this), _time); if(isFast){//快版 return 2000; } return 4700; }else { NN_UIP.clearTimeout(this._toId.rollDice); //隐藏色子 set_group(205,37,0,0,0); NN_playSound("ysz",-1); } }, _ensureZhuangVal : null, //快板看牌抢庄确定庄动画 ensureZhuang : function(isView, isAnim, isSound, isFast, robList, callBackFunc){ if(isView){ var _time = 2000; var _robList = []; //抢庄列表 var _len = 0; //统计抢庄玩家列表 for (var i=0; i< robList.length; i++) { if(robList[i] == 1){ _robList.push(i); } } //统计0桌位到庄桌位的玩家 var arr_1 = []; for (var i=0; i< robList.length; i++) { if(robList[i] == 1){ arr_1.push(i); if(i == NN_Desk.zhuang){ break; } } } _len = _robList.length; if(_robList.length <= 5){ _len = 10; }else { _len = 20; } //获取闪动桌位列表 if(_robList.length > 0){ do{ if(!this._ensureZhuangVal){ this._ensureZhuangVal = _robList.slice(0); }else { this._ensureZhuangVal = this._ensureZhuangVal.concat(_robList.slice(0)); } }while (this._ensureZhuangVal.length + arr_1.length < _len); this._ensureZhuangVal = this._ensureZhuangVal.concat(arr_1.slice(0)); }else{ return 5; } //console.log("闪动次数: " + this._ensureZhuangVal.length); //this._ensureZhuangVal.splice(0,this._ensureZhuangVal.length-10); NN_UI.time_start = (new Date()).getTime(); var timeCount = 0; //闪动座位时加上对应闪动时间 //var a = Math.floor((2*1100)/Math.pow(this._ensureZhuangVal.length,2)); //计算递增时间增量 var startLen = 5, keepTime = 1000, time_V0 = 40, time_T = this._ensureZhuangVal.length - startLen, addVal; if(_len == 20){ if(this._ensureZhuangVal.length > 23){ this._ensureZhuangVal.splice(0, Math.round(this._ensureZhuangVal.length * 0.3)); }else { this._ensureZhuangVal.splice(0, Math.round(this._ensureZhuangVal.length * 0.2)); } startLen = Math.round(this._ensureZhuangVal.length * 0.7); time_T = this._ensureZhuangVal.length - startLen; if(this._ensureZhuangVal.length > 18){ keepTime -= (this._ensureZhuangVal.length - 18) * 50; } //console.log("startLen = " + startLen); //console.log("time_T = " + time_T); addVal = Math.round((_time - 1000 - time_V0 * (startLen - 1) - time_V0 * time_T) * 2 / (time_T * time_T)); }else { addVal = Math.round((_time - 600 - 45*(this._ensureZhuangVal.length - startLen)) / ((6 + this._ensureZhuangVal.length) * (this._ensureZhuangVal.length - startLen) / 2 - (this._ensureZhuangVal.length - startLen) * startLen)); } for(var i=0; i startLen){ this._ensureZhuangVal[i] = [this._ensureZhuangVal[i], time_V0 + addVal * (i - startLen)]; }else { this._ensureZhuangVal[i] = [this._ensureZhuangVal[i], time_V0]; } timeCount += this._ensureZhuangVal[i][1]; } //console.log("addVal = "+addVal+" _ensureZhuangVal = " + JSON.stringify(this._ensureZhuangVal)); //console.log("闪动次数: " + this._ensureZhuangVal.length); //console.log("timeCount = " + timeCount); //ontime定时执行 set_self(711,57,this._ensureZhuangVal[0][1],0,0); //console.log("停止闪动时间:"+_time); //定时 this._toId.ensureZhuang.t1 = window.setTimeout(function(){ NN_UIP.show._toId.ensureZhuang.t1 = -1; //console.log("停止闪动"); //停止闪动 set_self(711,57,0,0,0); NN_UIP.show._ensureZhuangVal = null; // //NN_UIF.show._toId.ensureZhuang.t2 = setTimeout(function(){ //NN_UIF.show._toId.ensureZhuang.t2 = -1; //NN_UIF.show.zhuang(1,0,0); //},200); //下注抢庄-显示自己下注 if(NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].betScore > 0){ NN_UIP.show.betScore(1,0,0,NN_Desk.myseat, NN_Desk.pList[NN_Desk.myseat].betScore); } //调用回调函数 if(callBackFunc){ callBackFunc(); } }, _time + 100); return 2000; }else{ NN_UIP.clearTimeout(this._toId.ensureZhuang); // set_self(711,57,0,0,0); this._ensureZhuangVal = null; } }, //下注分数显示 betScore: function(isView, isAnim, isSound, seat, score){ if(isView && seat != null && score != null){ var wz = NN_SF[seat], len = String(score).length, spid_bmp = NN_Sprite.betBmp.idList[wz], spid_val = NN_Sprite.betVal.idList[wz], spid_gold = NN_Sprite.betGoldIcon.idList[wz], scoreWide = NN_Sprite.betVal.size[0], defScoLen = 4; //默认分数长度 //背景框初始位置 NN_Sprite.betBmp.setPosition(wz); //背景框位置根据分数调整 17 if(len <= defScoLen){ set_self(spid_bmp, 20, NN_Sprite.betBmp.size[0], 0, 0); }else { if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ set_self(spid_bmp, 18, get_self(spid_bmp, 18) - (len - defScoLen) * (scoreWide / 2), 0, 0); set_self(spid_bmp, 20, NN_Sprite.betBmp.size[0] + (len - defScoLen) * scoreWide, 0, 0); }else if(wz == 1 || wz == 2 || wz == 3){ set_self(spid_bmp, 18, get_self(spid_bmp, 18) - (len - defScoLen) * scoreWide, 0, 0); set_self(spid_bmp, 20, NN_Sprite.betBmp.size[0] + (len - defScoLen) * scoreWide, 0, 0); } else { set_self(spid_bmp, 20, NN_Sprite.betBmp.size[0] + (len - defScoLen) * scoreWide, 0, 0); } } set_self(spid_bmp, 21, NN_Sprite.betBmp.size[1], 0, 0); set_self(spid_bmp, 41, 0, 0, 0); //金币图标 set_self(spid_gold, 18, get_self(spid_bmp, 18) + NN_Sprite.betGoldIcon.position[0], 0, 0); set_self(spid_gold, 19, get_self(spid_bmp, 19) + NN_Sprite.betGoldIcon.position[1], 0, 0); set_self(spid_gold, 20, NN_Sprite.betGoldIcon.size[0], 0, 0); set_self(spid_gold, 21, NN_Sprite.betGoldIcon.size[0], 0, 0); set_self(spid_gold, 41, 0, 0, 0); //分数 set_self(spid_val, 7, score, 0, 0); set_self(spid_val, 20, len * scoreWide, 0, 0); set_self(spid_val, 21, NN_Sprite.betVal.size[1], 0, 0); set_self(spid_val, 18, Math.floor(NN_Sprite.betGoldIcon.size[0] / 4.5) + get_self(spid_bmp, 18) + (get_self(spid_bmp, 20) - len * scoreWide) / 2 , 0, 0); set_self(spid_val, 19, get_self(spid_bmp, 19) + 6, 0, 0); set_self(spid_val, 41, 0, 0, 0); //显示 set_self(spid_val, 37, 1, 0, 0); set_self(spid_bmp, 37, 1, 0, 0); set_self(spid_gold, 37, 1, 0, 0); if(wz == 0){ NN_Tips.words(); } if(isSound){ NN_playSound("xz"); } }else { if(seat != null){ NN_Sprite.betBmp.show(NN_SF[seat], 0); //对应座位隐藏分数 NN_Sprite.betVal.show(NN_SF[seat], 0); NN_Sprite.betGoldIcon.show(NN_SF[seat], 0); }else{ NN_Sprite.betBmp.show(-1, 0); //全部隐藏 NN_Sprite.betVal.show(-1, 0); NN_Sprite.betGoldIcon.show(-1, 0); } } }, //玩家加注 betScoreAgain: function(isView, isAnim, isSound, seat, score){ if(isView && seat != null && score != null){ if(score < 0){return;} var wz = NN_SF[seat], spid_ab = NN_Sprite.addBet.idList[wz], apid_val = NN_Sprite.addBetVal.idList[wz]; //加注文字位置 if(wz == 1 || wz == 2 || wz == 3){ set_self(spid_ab,18,get_self(NN_Sprite.addBet.relvSpid[wz], 18) + NN_Sprite.addBet.position[wz][0],0,0); }else { set_self(spid_ab,18,get_self(NN_Sprite.addBet.relvSpid[wz], 18) + get_self(NN_Sprite.addBet.relvSpid[wz], 20) + NN_Sprite.addBet.position[wz][0],0,0); } set_self(spid_ab,19,get_self(NN_Sprite.addBet.relvSpid[wz], 19) + NN_Sprite.addBet.position[wz][1],0,0); set_self(spid_ab,20,NN_Sprite.addBet.size[0],0,0); set_self(spid_ab,21,NN_Sprite.addBet.size[1],0,0); if(score > 0){ //加注文字位置 if(wz == 1 || wz == 2 || wz == 3){ if(String(score).length > 2){ set_self(spid_ab,18,get_self(spid_ab, 18) - (String(score).length - 2) * NN_Sprite.addBetVal.size[0],0,0); }else { set_self(spid_ab,18,get_self(spid_ab, 18),0,0); } } //加注数值位置 set_self(apid_val,7,score,0,0); set_self(apid_val,20,String(score).length * NN_Sprite.addBetVal.size[0],0,0); set_self(apid_val,21,NN_Sprite.addBetVal.size[1],0,0); set_self(apid_val,19,get_self(NN_Sprite.addBetVal.relvSpid[wz], 19) + NN_Sprite.addBetVal.position[1],0,0); if(String(score).length == 1){ set_self(apid_val,18,get_self(NN_Sprite.addBetVal.relvSpid[wz], 18) + NN_Sprite.addBetVal.position[0] + 8,0,0); }else if(String(score).length >= 2){ set_self(apid_val,18,get_self(NN_Sprite.addBetVal.relvSpid[wz], 18) + NN_Sprite.addBetVal.position[0] ,0,0); } //显示 set_self(spid_ab,37,1,0,0); set_self(spid_ab,43,1,0,0); set_self(apid_val,37,1,0,0); set_self(spid_ab,41,0,0,0); set_self(apid_val,41,0,0,0); }else if(score == 0){ //不加注 set_self(spid_ab,43,2,0,0); set_self(spid_ab,37,1,0,0); set_self(apid_val,37,0,0,0); }else { set_self(spid_ab,37,0,0,0); set_self(apid_val,37,0,0,0); } if(wz == 0){ NN_Tips.words(); } if(isSound){ NN_playSound("xz"); } } else { if(seat != null){ //隐藏个人下注 set_self(NN_Sprite.addBet.idList[NN_SF[seat]],37,0,0,0); set_self(NN_Sprite.addBetVal.idList[NN_SF[seat]],37,0,0,0); } else { //全部隐藏 NN_Sprite.addBet.show(-1, 0); NN_Sprite.addBetVal.show(-1, 0); } } }, //首发牌提示 firstBetState : function(isView, isAnim, isSound, seat){ if(isView && seat != null){ var wz = NN_SF[seat]; switch (wz){ case 0: set_self(893,18,553,0,0); set_self(893,19,500,0,0); break; case 1: set_self(893,18,925,0,0); set_self(893,19,398,0,0); break; case 2: set_self(893,18,925,0,0); set_self(893,19,190,0,0); break; case 3: set_self(893,18,190,0,0); set_self(893,19,190,0,0); break; case 4: set_self(893,18,190,0,0); set_self(893,19,398,0,0); break; default: break; } set_self(893,37,1,0,0); this._toId.firstBetState.t1 = window.setTimeout(function(){ this._toId.firstBetState.t1 = -1; set_self(893,37,0,0,0); }.bind(this),1000); } else { set_self(893,37,0,0,0); } }, }; //牛牛纯动画显示 NN_UIP.anim = { //隐藏 hide: function(){ this.gameStart(); this.roundStart(); this.gamesNum(); this.shuffleCards(); this.okZhuang(); this.fingerSlide(); }, //ontime定时器 ontime: function(){ }, //定时器id _toId : { //"游戏开始"动画定时 gameStart: { t1: -1 }, //回合开始 roundStart : { t1: -1 }, //"第几局"动画定时 gamesNum : { t1: -1, t1_1:-1, t1_2:-1 }, //洗牌定时 shuffleCards: { t1: -1, t2: -1 }, //确定庄 okZhuang: { t1: -1, t1_1:-1, }, }, //"游戏开始"动画 gameStart: function(isView, isAnim, isSound, isFast, type){ if(isView){//显示 var _time = 0; if(NN_Desk.nowCount == 1){ set_self(891,35,0,0,0); set_self(891,33,0,0,0); set_self(891,37,1,0,0); if(isFast){ play_ani(1,891,35,0,255,0,250,0,0,0,1,0,0); play_box(1,891,33,0,800,-2420,500); //定时隐藏 this._toId.gameStart.t1 = window.setTimeout(function(){//开始游戏隐藏 this._toId.gameStart.t1 = -1; set_self(891,35,255,0,0); set_self(891,33,100,0,0); play_ani(1,891,35,255,0,0,200,0,0,0,1,0,0); }.bind(this),1000); _time = 1200; } else { play_ani(1,891,35,0,255,0,300,0,0,0,1,0,0); play_box(1,891,33,0,600,-1200,800); //定时隐藏 this._toId.gameStart.t1 = window.setTimeout(function(){//开始游戏隐藏 this._toId.gameStart.t1 = -1; set_self(891,35,255,0,0); set_self(891,33,100,0,0); play_ani(1,891,35,255,0,0,200,0,0,0,1,0,0); }.bind(this),2000); _time = 2200; } //播放音效 if(isSound){ NN_playSound("ksyx",0); } return _time; } }else {//隐藏 NN_UIP.clearTimeout(this._toId.gameStart); set_self(891,37,0,0,0); play_ani(0,891,0); NN_playSound("ksyx",-1); } }, //回合开始 roundStart: function(isView, isAnim, isSound, isFast){ if(isView){//显示 var _time = 0; set_self(709,35,0,0,0); set_self(709,33,0,0,0); set_self(709,37,1,0,0); if(isFast){ play_ani(1,709,35,0,255,0,250,0,0,0,1,0,0); //play_box(1,709,33,0,800,-2420,500); play_box(1,709,33,0,1100,-4500,350); //定时隐藏 this._toId.roundStart.t1 = window.setTimeout(function(){//开始游戏隐藏 this._toId.roundStart.t1 = -1; set_self(709,35,255,0,0); //set_self(709,33,100,0,0); play_ani(1,709,35,255,0,0,200,0,0,0,1,0,0); }.bind(this),700); _time = 900; } else { //play_ani(1,709,35,0,255,0,300,0,0,0,1,0,0); //play_box(1,709,33,0,600,-1200,800); play_ani(1,709,35,0,255,0,250,0,0,0,1,0,0); //play_box(1,709,33,0,800,-2420,500); play_box(1,709,33,0,1200,-4050,500); //定时隐藏 this._toId.roundStart.t1 = window.setTimeout(function(){//开始游戏隐藏 this._toId.roundStart.t1 = -1; set_self(709,35,255,0,0); //set_self(709,33,100,0,0); play_ani(1,709,35,255,0,0,200,0,0,0,1,0,0); }.bind(this),2000); _time = 2500; } //播放音效 if(isSound && NN_Desk.nowCount > 1){ NN_playSound("ksyx",0); } return _time; }else {//隐藏 NN_UIP.clearTimeout(this._toId.roundStart); set_self(709,37,0,0,0); play_ani(0,709,0); NN_playSound("ksyx",-1); } }, //第几局动画 gamesNum: function(isView, isAnim, isSound, isFast){ if(isView){//显示 //设置第几局 set_self(701,18,-550,0,0); set_self(702,7,NN_Desk.nowCount,0,0); if(NN_Desk.nowCount >= 10){ set_self(702,18,get_self(701,18)+268,0,0); }else { set_self(702,18,get_self(701,18)+298,0,0); } set_self(702,19,get_self(701,19)+36,0,0); set_self(702,20,String(NN_Desk.nowCount).length*60,0,0); //第几局移动出现 set_self(702,37,1,0,0); set_self(701,37,1,0,0); set_self(702,35,255,0,0); set_self(701,35,255,0,0); var _time = 0; if(isFast){ //快板 set_self(701,18,330,0,0); if(NN_Desk.nowCount >= 10){ set_self(702,18,get_self(701,18)+268,0,0); }else { set_self(702,18,get_self(701,18)+298,0,0); } play_ani(1,701,35,0,255,0,200,0,0,0,1,0,0); play_ani(1,702,35,0,255,0,200,0,0,0,1,0,0); //定时移动隐藏第几局 this._toId.gamesNum.tl_1 = window.setTimeout(function(){ this._toId.gamesNum.tl_1 = -1; play_ani(1,701,35,255,0,0,200,0,0,0,1,0,0); play_ani(1,702,35,255,0,0,200,0,0,0,1,0,0); //定时隐藏 this._toId.gamesNum.tl_2 = window.setTimeout(function(){ this._toId.gamesNum.tl_2 = -1; //隐藏第几局 set_self(701,37,0,0,0); set_self(702,37,0,0,0); }.bind(this), 300); }.bind(this),600); _time = 900; /* play_box(1,701,18,get_self(701,18),5100,-15000,400); play_box(1,702,18,get_self(702,18),5100,-15000,400); //定时移动隐藏第几局 this._toId.gamesNum.tl_1 = window.setTimeout(function(){ this._toId.gamesNum.tl_1 = -1; play_box(1,701,18,get_self(701,18),2000,10000,400); play_box(1,702,18,get_self(702,18),5000,10000,400); //定时隐藏 this._toId.gamesNum.tl_2 = window.setTimeout(function(){ this._toId.gamesNum.tl_2 = -1; //隐藏第几局 set_self(701,37,0,0,0); set_self(702,37,0,0,0); }.bind(this), 600); }.bind(this),1000); _time = 1600; */ }else { play_box(1,701,18,get_self(701,18),3950,-9000,500); play_box(1,702,18,get_self(702,18),3950,-9000,500); //定时移动隐藏第几局 this._toId.gamesNum.tl_1 = window.setTimeout(function(){ this._toId.gamesNum.tl_1 = -1; play_box(1,701,18,get_self(701,18),1000,10000,500); play_box(1,702,18,get_self(702,18),1000,10000,500); //定时隐藏 this._toId.gamesNum.tl_2 = window.setTimeout(function(){ this._toId.gamesNum.tl_2 = -1; //隐藏第几局 set_self(701,37,0,0,0); set_self(702,37,0,0,0); }.bind(this), 1000); }.bind(this),1500); _time = 2500; } //播放音效 if(isSound){ NN_playSound("djj",0); } return _time; }else {//隐藏 NN_UIP.clearTimeout(this._toId.gameStart); set_self(702,37,0,0,0); set_self(701,37,0,0,0); play_box(0,701,0); play_box(0,702,0); NN_playSound("djj",-1); } }, //洗牌动画 shuffleCards: function(isView, isAnim, isSound, _time){ if(isView){ //显示洗牌动画 set_self(830,37,1,0,0); set_self(830,43,12,0,0); play_ani(1,830,43,0,12,0,1200,0,100,0,1,0,0); //定时再次播放洗牌动画 this._toId.shuffleCards.t1 = window.setTimeout(function(){ this._toId.shuffleCards.t1 = -1; play_ani(1,830,43,0,12,0,1200,0,0,0,1,0,0); }.bind(this), 1200); //定时隐藏 this._toId.shuffleCards.t2 = window.setTimeout(function(){ this._toId.shuffleCards.t2 = -1; set_self(830,37,0,0,0); }.bind(this), 2450); //播放音效 if(isSound){ NN_playSound("xp",0,0,120); } return 2450; } else { NN_UIP.clearTimeout(this._toId.shuffleCards); set_self(830,37,0,0,0); play_ani(0,830,0); NN_playSound("xp",-1); } }, //确定庄到下注时动画过程 okZhuang : function(isView, isAnim, isSound, isFast, callbackFunc, isNoViewZhuang){ //确定庄 if(isView){ var _time = 5; //if(NN_Desk.model != 4 && NN_Desk.model != 5){ //_time = NN_UIF.show.zhuang(1,1,1,isFast); //} if(!isNoViewZhuang){ _time = NN_UIP.show.zhuang(1,1,1,isFast); } this._toId.okZhuang.t1 = setTimeout(function(){ this._toId.okZhuang.t1 = -1; //显示下注按钮 //NN_UIF.btn.betScore(1,1,1,isFast); if(callbackFunc){ callbackFunc(); //回调函数 }else { if(Utl.getAppService()){//切后台就不显示动画 NN_UIP.btn.betScore(1,1,1,isFast); }else { NN_UIP.btn.betScore(1,0,0,isFast); } //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.bet); } //关闭确定庄动画标记 NN_UIP.game._isAnim_okZhuang = false; //开战动画标记取消 NN_UIP.game._isAnim_startWar = false; //logmessage("确定庄动画执行完全",1); }.bind(this), _time); } else { //关闭确定庄动画标记 NN_UIP.game._isAnim_okZhuang = false; //开战动画标记取消 NN_UIP.game._isAnim_startWar = false; NN_UIP.clearTimeout(this._toId.okZhuang); NN_UIP.show.zhuang(); NN_UIF.anim.shuffleCards(); } }, //搓牌时手指滑动 fingerSlide : function(isView, isAnim, isSound){ if(isView && NN_Desk.state == NN_state.rubCard){ var x = get_self(NN_Sprite.turnCardAnim.idList[0][0],18) + 10; set_self(NN_Sprite.finger,18,x,0,0); set_self(NN_Sprite.finger,19,get_self(NN_Sprite.turnCardAnim.idList[0][0],19) + 74,0,0); set_self(NN_Sprite.finger,37,1,0,0); set_self(NN_Sprite.finger,43,2,0,0); set_self(NN_Sprite.finger,41,0,0,0); play_ani(1,NN_Sprite.finger,18,x + 200,x,0,1000,0,0,0,0,0,0); }else{ play_ani(0,NN_Sprite.finger,0); set_self(NN_Sprite.finger,37,0,0,0); } }, }; //相关独立按钮 NN_UIP.btn = { //隐藏 hide: function(){ this.robZhuang(); this.betScore(); this.sureCattle(); }, _toId: { betScore: { v1: -1, }, }, //ontime定时器 ontime: function(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes){ switch (spid){ case 701: //下注按钮显示 if(NN_Desk.model_bet == 10){ if(get_self(892,19) <= 480){ //1~10 var y = 484; set_self(892,19,y,0,0); for (var i=0;i<5;i++) { set_self(809+i,19,y+151,0,0); set_self(814+i,19,y+65,0,0); set_self(819+i,19,y+171,0,0); set_self(824+i,19,y+86,0,0); } NN_Tips.words("bet"); set_self(701,57,0,0,0); }else { if(get_self(892,19)-480 < 15){ set_group(207,19,480-get_self(892,19),1,0); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,2,0,0); set_self(955,37,1,0,0); } }else { set_group(207,19,-15,1,0); } } }else if(NN_Desk.model_bet == 5){ //1~5 if(get_self(892,19) <= 546){ var y = 546; set_self(892,19,y,0,0); for (var i=0;i<5;i++) { set_self(809+i,19,y+75,0,0); set_self(819+i,19,y+96,0,0); } NN_Tips.words("bet"); set_self(701,57,0,0,0); }else { if(get_self(892,19)-546 < 15){ var _val1 = 546-get_self(892,19); for (var i=0;i<5;i++) { //1~5 set_self(809+i,19,_val1,1,0); set_self(819+i,19,_val1,1,0); } set_self(892,19,_val1,1,0); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,2,0,0); set_self(955,37,1,0,0); } }else { for (var i=0;i<5;i++) { //1~5 set_self(809+i,19,-15,1,0); set_self(819+i,19,-15,1,0); } set_self(892,19,-15,1,0); } } }else if(NN_Desk.model_bet == 4){ // if(get_self(892,19) <= 480){ //1~10 var y = 484; set_self(892,19,y,0,0); //按钮位置 set_self(1122,19,y + 149,0,0); set_self(1123,19,y + 149,0,0); set_self(1124,19,y + 63,0,0); set_self(1125,19,y + 63,0,0); set_self(1126,19,y + 167,0,0); set_self(1127,19,y + 167,0,0); set_self(1128,19,y + 81,0,0); set_self(1129,19,y + 81,0,0); NN_Tips.words("bet"); set_self(701,57,0,0,0); }else { if(get_self(892,19)-480 < 15){ set_group(215,19,480-get_self(892,19),1,0); set_self(892,19,480-get_self(892,19),1,0); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,2,0,0); set_self(955,37,1,0,0); } }else { set_group(215,19,-15,1,0); set_self(892,19,-15,1,0); } } }else { //1~3 if(get_self(924,19) <= 536){ set_self(924,19,536,0,0); set_self(946,19,608,0,0); set_self(947,19,608,0,0); set_self(948,19,608,0,0); NN_Tips.words("bet"); set_self(701,57,0,0,0); }else { if(get_self(924,19)-536 < 15){ set_group(214,19,536-get_self(924,19),1,0); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,2,0,0); set_self(955,37,1,0,0); } }else { set_group(214,19,-15,1,0); } } } break; default: break; } }, //确定牌类型按钮,有牛无牛 sureCattle: function(isView, isAnim, isSound){ if(isView){ set_self(NN_Sprite.btn.sureCattle, 37, 1, 0, 0); set_self(NN_Sprite.btn.noCattle, 37, 1, 0, 0); } else { set_self(NN_Sprite.btn.sureCattle, 37, 0, 0, 0); set_self(NN_Sprite.btn.noCattle, 37, 0, 0, 0); } }, //抢庄按钮 robZhuang: function(isView, isAnim, isSound){ //set_self(NN_Sprite.btn.rob, 37, 1, 0, 0); //set_self(NN_Sprite.btn.noRob, 37, 1, 0, 0); if(isView && NN_Desk.state == NN_state.robZhuang && NN_Desk.pList[NN_Desk.myseat].isReady && NN_Desk.robList[NN_Desk.myseat] == 0){ //判断星星数是否足够抢庄 if(NN_Desk.model_bean[0] == 1){ if(!NN_Desk.isBeanEnough(NN_Desk.myseat,"bet")){ //Utl.openTips(NN_config.beanDes +"数不够,不能参与游戏哦",1000); //隐藏按钮 this.robZhuang(); return; }else if(!NN_Desk.isBeanEnough(NN_Desk.myseat,"rob")){ //Utl.openTips(NN_config.beanDes + "数不够,不能抢庄哦",1000); //抢庄按钮半透明 set_self(NN_Sprite.btn.rob,35,150,0,0); }else{ set_self(NN_Sprite.btn.rob,35,255,0,0); } }else{ set_self(NN_Sprite.btn.rob,35,255,0,0); } if(NN_Desk.model == 5 || NN_Desk.model == 4){ // 下注抢庄 - 位置改变 if((NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].betScore > 0) || (NN_Desk.model == 4 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ set_self(NN_Sprite.btn.noRob,18,NN_Sprite.btn.noRobPos[1][0],0,0); set_self(NN_Sprite.btn.noRob,19,NN_Sprite.btn.noRobPos[1][1],0,0); set_self(NN_Sprite.btn.rob,18,NN_Sprite.btn.robPos[1][0],0,0); set_self(NN_Sprite.btn.rob,19,NN_Sprite.btn.robPos[1][1],0,0); set_self(NN_Sprite.btn.noRob,37,1,0,0); set_self(NN_Sprite.btn.rob,37,1,0,0); } }else { set_self(NN_Sprite.btn.noRob,18,NN_Sprite.btn.noRobPos[0][0],0,0); set_self(NN_Sprite.btn.noRob,19,NN_Sprite.btn.noRobPos[0][1],0,0); set_self(NN_Sprite.btn.rob,18,NN_Sprite.btn.robPos[0][0],0,0); set_self(NN_Sprite.btn.rob,19,NN_Sprite.btn.robPos[0][1],0,0); set_self(NN_Sprite.btn.noRob,37,1,0,0); set_self(NN_Sprite.btn.rob,37,1,0,0); } }else { set_self(NN_Sprite.btn.rob, 37, 0, 0, 0); set_self(NN_Sprite.btn.noRob, 37, 0, 0, 0); } }, //下注按钮框 betScore: function(isView, isAnim, isSound, isFast, isNoBetBtn){ //显示下注按钮 if(isView && NN_Desk.state == NN_state.bet){ //判断玩家星星数是否可下注 if(NN_Desk.model_bean[0] == 1 && !NN_Desk.isBeanEnough(NN_Desk.myseat,"bet")){ if(NN_Desk.model != 5){ Utl.openTips(NN_config.beanDes +"数不够,不能下注哦",1000); } return 1; } if(!NN_Desk.pList[NN_Desk.myseat].isReady || (Utl.getIsInfinite() == 1 && Utl.getPlayerReadyState(NN_Desk.myseat) != 1) || (NN_Desk.model == 4 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length == 0) || (NN_Desk.model == 5 && NN_Desk.zhuang >= 0 && (NN_Desk.pList[NN_Desk.myseat].betScoreAgain > 0 || NN_Desk.pList[NN_Desk.myseat].cards.cards.length == 0))){ //看牌抢庄 - 没有牌时不显示 return 1; } if(NN_Desk.myseat != NN_Desk.zhuang && (NN_Desk.pList[NN_Desk.myseat].betScore <= 0 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0))){ set_self(892,41,0,0,0); set_self(924,41,0,0,0); if(isAnim){ if(NN_Desk.model_bet == 10){ //1~10 var y = 730; set_self(892,19,y,0,0); for (var i=0;i<5;i++) { set_self(819+i,1,555,0,0); set_self(819+i,7,i+1,0,0); set_self(824+i,1,555,0,0); set_self(824+i,7,i+6,0,0); set_self(809+i,19,y+151,0,0); set_self(814+i,19,y+65,0,0); set_self(819+i,19,y+171,0,0); set_self(824+i,19,y+86,0,0); set_self(809+i,41,1,0,0); set_self(814+i,41,1,0,0); //透明度 set_self(809+i,35,255,0,0); set_self(809+i,43,1,0,0); set_self(814+i,35,255,0,0); set_self(814+i,43,1,0,0); // set_self(819+i,41,0,0,0); set_self(824+i,41,0,0,0); } //set_group(207,35,255,0,0); set_group(207,37,1,0,0); }else if(NN_Desk.model_bet == 5){ //1~5 var y = 730; set_self(892,19,y,0,0); set_self(892,37,1,0,0); for (var i=0;i<5;i++) { //1~5 set_self(819+i,1,555,0,0); set_self(819+i,7,i+1,0,0); set_self(809+i,19,y+75,0,0); set_self(819+i,19,y+96,0,0); set_self(809+i,41,1,0,0); set_self(819+i,41,0,0,0); set_self(809+i,37,1,0,0); set_self(819+i,37,1,0,0); //透明度 set_self(809+i,35,255,0,0); set_self(809+i,43,1,0,0); set_self(814+i,37,0,0,0); set_self(824+i,37,0,0,0); } }else if(NN_Desk.model_bet == 4){ //百分比 var y = 730; set_self(892,19,y,0,0); //按钮位置 for (var i=0;i<2;i++) { set_self(1122 + i,19,y + 149,0,0); set_self(1124 + i,19,y + 63,0,0); set_self(1126 + i,19,y + 167,0,0); set_self(1128 + i,19,y + 81,0,0); set_self(1126 + i,41,0,0,0); set_self(1128 + i,41,0,0,0); } //显示 set_group(215,37,1,0,0); set_self(892,37,1,0,0); }else { //1~3 set_self(924,19,730,0,0); set_self(946,19,802,0,0); set_self(947,19,802,0,0); set_self(948,19,802,0,0); set_group(214,37,1,0,0); } //ontime定时执行显示下注栏 set_self(701,57,20,0,0); //if(NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0){ //看牌抢庄显示收展按钮 //set_self(955,43,2,0,0); //set_self(955,37,1,0,0); //} } else { //下注 if(NN_Desk.model_bet == 10){ //1~10 set_self(828,20,60,0,0); var y = 484; set_self(892,19,y,0,0); for (var i=0;i<5;i++) { set_self(809+i,19,y+151,0,0); set_self(814+i,19,y+65,0,0); set_self(819+i,19,y+171,0,0); set_self(824+i,19,y+86,0,0); // set_self(819+i,1,555,0,0); set_self(819+i,7,i+1,0,0); set_self(824+i,1,555,0,0); set_self(824+i,7,i+6,0,0); set_self(819+i,41,0,0,0); set_self(824+i,41,0,0,0); // set_self(819+i,43,1,0,0); set_self(824+i,43,1,0,0); } set_group(207,37,1,0,0); }else if(NN_Desk.model_bet == 5){ //1~5 //for(var i=1;i<=5;i++){ //set_self(818+i,7,i,0,0); //set_self(818+i,41,0,0,0); //} //set_self(828,20,60,0,0); var y = 546; set_self(892,19,y,0,0); set_self(892,37,1,0,0); for (var i=0;i<5;i++) { set_self(819+i,1,555,0,0); set_self(819+i,7,i+1,0,0); set_self(809+i,19,y+75,0,0); set_self(819+i,19,y+96,0,0); set_self(809+i,37,1,0,0); set_self(819+i,37,1,0,0); set_self(814+i,37,0,0,0); set_self(824+i,37,0,0,0); set_self(819+i,41,0,0,0); set_self(819+i,43,1,0,0); } }else if(NN_Desk.model_bet == 4){ //1~5 var y = 484; set_self(892,19,y,0,0); //按钮位置 for (var i=0;i<2;i++) { set_self(1122 + i,19,y + 149,0,0); set_self(1124 + i,19,y + 63,0,0); set_self(1126 + i,19,y + 167,0,0); set_self(1128 + i,19,y + 81,0,0); set_self(1126 + i,41,0,0,0); set_self(1128 + i,41,0,0,0); } //显示 set_group(215,37,1,0,0); set_self(892,37,1,0,0); }else { //1~3 set_self(924,19,536,0,0); set_self(946,19,608,0,0); set_self(947,19,608,0,0); set_self(948,19,608,0,0); set_group(214,37,1,0,0); } set_self(701,57,0,0,0); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,2,0,0); set_self(955,37,1,0,0); } } //下注范围值赋值及位置调整 if(NN_Desk.model_bet == 4){ for(var i=0; i<4; i++){ if(NN_Desk.pList[NN_Desk.myseat].betRange[i] != null){ set_self(1126 + i, 7, NN_Desk.pList[NN_Desk.myseat].betRange[i],0,0); set_self(1126 + i, 18, get_self(1122+i,18) + get_self(1122+i,20)/2 - String(NN_Desk.pList[NN_Desk.myseat].betRange[i]).length * 9,0,0); } } } //按钮显示 if( NN_Desk.betRange.length > 0 && NN_Desk.betRange[NN_Desk.betRange.length-1] <= NN_Desk.model_bet){ if(NN_Desk.model_bet == 5 || NN_Desk.model_bet == 10){ var temp = NN_Desk.betRange.slice(0); for (var i=0; i 0){ NN_Tips.words("betAgain"); //显示不加注按钮 if(isNoBetBtn){ set_self(956,37,1,0,0); } }else { NN_Tips.words("bet"); } } else if(NN_Desk.myseat == NN_Desk.zhuang){ NN_Tips.words("waitbet"); } return 0; }else { if(isAnim){ if(get_self(892,37) == 1 || get_self(924,37) == 1){ set_self(955,37,0,0,0); this._toId.betScore.v1 = setInterval(function(){ if(NN_Desk.model_bet == 10){ //1~10 if(get_self(892,19) >= 730){ set_group(207,37,0,0,0); clearInterval(NN_UIP.btn._toId.betScore.v1); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,1,0,0); set_self(955,37,1,0,0); } }else{ set_group(207,19,15,1,0); } }else if(NN_Desk.model_bet == 5){ //1~5 if(get_self(892,19) >= 730){ set_group(207,37,0,0,0); clearInterval(NN_UIP.btn._toId.betScore.v1); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,1,0,0); set_self(955,37,1,0,0); } }else{ for (var i=0;i<5;i++) { set_self(809+i,19,15,1,0); set_self(819+i,19,15,1,0); } set_self(892,19,15,1,0); } }else if(NN_Desk.model_bet == 4){ //百分比 if(get_self(892,19) >= 730){ set_self(892,37,0,0,0); set_group(215,37,0,0,0); clearInterval(NN_UIP.btn._toId.betScore.v1); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,1,0,0); set_self(955,37,1,0,0); } }else{ set_group(215,19,15,1,0); set_self(892,19,15,1,0); } }else if(NN_Desk.model_bet == 3){ //1~3 if(get_self(924,19) > 730){ set_group(214,37,0,0,0); clearInterval(NN_UIP.btn._toId.betScore.v1); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0)){ //看牌抢庄显示收展按钮 set_self(955,43,1,0,0); set_self(955,37,1,0,0); } }else { set_group(214,19,15,1,0); } } },15); } //看牌抢庄显示收展按钮 set_self(955,37,0,0,0); set_self(956,37,0,0,0); }else { set_self(956,37,0,0,0); set_self(701,57,0,0,0); set_group(207,37,0,0,0); set_group(214,37,0,0,0); set_group(215,37,0,0,0); //看牌抢庄显示收展按钮 set_self(955,37,0,0,0); } } }, }; //牛牛牌相关显示 NN_UIP.card = { //隐藏 hide: function(){ this.showBySeat();//牌 this.dealCards(); this.rubCard(); this.putCard(); this.cardTypeReward(); this.rubCardBack(); }, //ontime定时器 ontime: function(){ }, _toId: { //发牌 dealCards:{ t1: -1, t2: -1, t2_1: -1, t3: -1 }, dealCards_iv:{ i1: -1 }, //搓牌 - 格式p0_1 , p[座位] rubCard : { //t1: -1, //t2: -1, p0_1: -1, p0_2: -1, p1_1: -1, p1_2: -1, p2_1: -1, p2_2: -1, p3_1: -1, p3_2: -1, p4_1: -1, p4_2: -1 }, //摆牌 - 格式p0_1 , p[座位] putCard:{ p0_1: -1, p0_2: -1, p1_1: -1, p1_2: -1, p2_1: -1, p2_2: -1, p3_1: -1, p3_2: -1, p4_1: -1, p4_2: -1 }, //摆牌1 - 格式p0_1 , p[座位] putCard_1:{ p0_1: -1, p1_1: -1, p2_1: -1, p3_1: -1, p4_1: -1 } }, //更新牌显示及搓摆牌显示 update: function(seat, isAnim, isSound, isFast){ if(seat != null){ if (NN_Desk.pList[seat] && NN_Desk.pList[seat].cards.cards.length == 5){ //显示牌 this.showBySeat(true, isAnim, isSound, seat); if(NN_Desk.state == NN_state.settlement){ //结算时显示牌型 this.putCard(true, false, false, isFast, seat); //console.log("刷新结算时玩家"+seat+"的牌"); }else { //显示搓摆牌状态 this.updateByState(seat, isAnim, isSound); //console.log("刷新搓摆牌玩家"+seat+"的牌"); } } } else { for(var i=0;i= 0){ NN_Sprite.card.show(NN_SF[seat], 0); } else { NN_Sprite.card.show(-1, 0); } } }, //是否发牌中 _isDealCards : false, dealCards: function(isView, isAnim, isSound, isFast, dice_num, deal_order, arr_sheet){//arr_sheet-发牌张数 [0,4] if(isView){ //发牌过程标记 this._isDealCards = true; // NN_Judge.isDealCards = 1; //无动画直接显示搓摆牌界面 if(!isAnim){ NN_UIP.card.update(null, isAnim, isSound, isFast); return; } if(!arr_sheet){ arr_sheet = [0,4]; } //发牌动画 var _cardsLoc = []; //[[x坐标,y坐标,w宽,h高,间隔]] var _spid = 0; var wz = 0; var _time = 400;//定时显示牌牌值 //发牌位置 for(var i = 0; i < NN_Desk.personMax; i ++){ for(var j = 0; j < 5; j ++){ _cardsLoc[i] = [get_self(NN_Sprite.card.relvSpid[i], 18) + NN_Sprite.card.position[i][0], get_self(NN_Sprite.card.relvSpid[i], 19) + NN_Sprite.card.position[i][1], NN_Sprite.card.position[i][2]]; } } // if(arr_sheet[0] == 4){ _time += 1000; } for(var j=0;j= 0){ NN_UIP.countDown.show(NN_Desk.timeout_m.betAgain); }else{ NN_UIP.countDown.show(NN_Desk.timeout_m.robzhuang); } }else { NN_Desk.state = NN_state.rubCard; //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.rubput); } }else{ NN_Desk.state = NN_state.rubCard; //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.rubput); } //发牌结束标记 NN_Judge.isDealCards = -1; //显示无序发牌 if(NN_UIF.disorderDeal.isView){ NN_UIF.disorderDeal.show(true); } },400 + (deal_order.length - 1) * 100 + 100); //console.log("显示快版发牌动画"); }else { NN_Judge.isDealCards = -1; //是否发牌中 this._isDealCards = false; //牌动画停止 for(var j=0; j 1)){ set_self(cType,18, get_self(bgf,18) + NN_Sprite.cardType.common[1][0], 0,0); set_self(cType,19, get_self(bgf,19) + NN_Sprite.cardType.common[1][1], 0,0); } break; } //显示牌型图标 set_self(cType,37,1,0,0); //倍数显示 if(NN_Desk.pList[seat].cards.type != "wn"){ if((NN_Desk.model_mult == 1 && NN_Desk.pList[seat].cards.Multiple > 1) || ((NN_Desk.model_mult == 2 || NN_Desk.model_mult == 3) && NN_Desk.pList[seat].cards.Multiple >= 1)){ //倍数值 set_self(multVal,7,NN_Desk.pList[seat].cards.Multiple,0,0); set_self(multVal,20,String(NN_Desk.pList[seat].cards.Multiple).length * NN_Sprite.cardTypeMultVal.size[0],0,0); set_self(multVal,37,1,0,0); //倍 set_self(mult,18,get_self(multVal,18) + get_self(multVal,20),0,0); set_self(mult,19,get_self(multVal,19),0,0); set_self(mult,37,1,0,0); } } //牌型缩放 if(isAnim){ play_ani(1,cType,33,80,140,0,200,0,0,0,1,0,0); }else { set_self(cType,33,100,0,0); } this._toId.putCard_1["p" + seat + "_1"] = window.setTimeout(function(){ this._toId.putCard_1["p" + seat + "_1"] = -1; if(isAnim){ play_ani(1,cType,33,120,100,0,200,0,0,0,1,0,0); } //牌型奖励显示 if(seat == NN_Desk.myseat){ NN_UIP.card.cardTypeReward(true,isAnim, isSound, NN_Desk.pList[seat].cards.type); } }.bind(this),200); //音效播放 if((isSound && NN_Desk.state != NN_state.over) || NN_Desk.pList[seat].putcard != 1){ NN_playSound(NN_Desk.pList[seat].cards.type,0,Utl.getSexBySeat(seat)); NN_Desk.pList[seat].putcard = 1; } //NN_UI.cardTypeAnim(seat,NN_Desk.pList[seat].cards.type); //判断全部摆玩牌 var blist = NN_Desk.betList.slice(0); blist.push(NN_Desk.zhuang); for(var i=0;i= 0){ play_ani(0,NN_Sprite.cardType.idList[NN_SF[seat]],0); } NN_Sprite.cardTypeBmp.show(-1, 0); //背景框 764 NN_Sprite.cardType.show(-1, 0); //牌型 774 NN_Sprite.cardTypeMult.show(-1, 0); //倍数 779 NN_Sprite.cardTypeMultVal.show(-1, 0); //倍数值 982 NN_Sprite.noNiuMask.show(-1, 0); //无牛遮罩 906 //set_group(203,37,0,0,0); //set_group(204,37,0,0,0); } }, //牌型奖励界面 cardTypeReward : function(isView, isAnim, isSound, cardType){ if(isView && cardType != null && NN_Desk.constant.cardTypeReward){ var num = 0; switch (cardType){ case "shunzi": num = NN_Desk.constant.cardTypeReward[0]; set_self(1111,43,8,0,0); break; case "tonghua": num = NN_Desk.constant.cardTypeReward[1]; set_self(1111,43,7,0,0); break; case "hulu": num = NN_Desk.constant.cardTypeReward[2]; set_self(1111,43,6,0,0); break; case "wuxiao": num = NN_Desk.constant.cardTypeReward[3]; set_self(1111,43,3,0,0); break; case "wuhua": num = NN_Desk.constant.cardTypeReward[4]; set_self(1111,43,2,0,0); break; case "bomb": num = NN_Desk.constant.cardTypeReward[5]; set_self(1111,43,4,0,0); break; case "flush": num = NN_Desk.constant.cardTypeReward[6]; set_self(1111,43,5,0,0); break; case "bigbomb": num = NN_Desk.constant.cardTypeReward[7]; set_self(1111,43,9,0,0); break; default: return ; break; } if(num > 0){ set_self(1110,7,num,0,0); set_self(1110,20,String(num).length * 29,0,0); set_self(1110,18,get_self(1109,18) + 197 - String(num).length * 14,0,0); //背光旋转 play_ani(1,1107,34,0,360,0,3000,0,0,0,0,0,0); if(isAnim){ play_ani(1,1108,33,80,100,0,500,0,0,0,1,0,0); play_ani(1,1111,33,80,100,0,500,0,0,0,1,0,0); }else { set_self(1108,33,100,0,0); set_self(1111,33,100,0,0); } if(isSound){ NN_playSound("typeReward",0,1); } set_group(213,37,1,0,0); } }else { play_ani(0,1107,0); play_ani(0,1108,0); play_ani(0,1111,0); set_self(1110,43,0,0,0); set_group(213,37,0,0,0); } }, }; //玩家操作时显示 NN_UIP.net = { //隐藏 hide: function(){ //清除定时器 if(this._toId.okZhuang > 0){ //logmessage("清除定时器-确定庄包后定时",1); } NN_UIP.clearTimeout(this._toId.okZhuang); NN_UIP.clearTimeout(this._toId.dealCards); NN_UIP.clearTimeout(this._toId.settlement); // }, //ontime定时器 ontime: function(){ }, //定时器id _toId: { okZhuang: { t1: -1 }, dealCards: { t1: -1 }, settlement:{ t1: -1 }, }, //准备阶段 readyStage: function(){ //隐藏界面 NN_UIP.hide(); //托管显示 NN_UI.trusteeshipState(true, false, NN_Desk.myseat); //更新桌信息显示 NN_UIP.deskInfo.update(); //准备按钮显示 //Utl.setPlayerPrepare(NN_Desk.myseat, Utl.getPlayerReadyState(NN_Desk.myseat)); //Utl.setDeskStage(0); //显示倒计时 NN_UIP.countDown.show(NN_Desk.timeout_m.ready); }, //开战 startWar: function(startType, zhuang, data){ //隐藏界面 NN_UIP.hide(); //托管显示 NN_UI.trusteeshipState(true, false, NN_Desk.myseat); //更新桌信息显示 NN_UIP.deskInfo.update(); //游戏开战时显示 NN_UIP.game.startWar(NN_Desk.model_fast, startType, zhuang, data); }, //抢庄 robZhuang: function(seat, isrob){ //在开局动画过程中其他玩家抢庄不显示 if(!NN_UIP.game._isAnim_startWar){ NN_UIP.show.robZhuang(1,1,1, seat, isrob); } }, //确定庄 okZhuang: function(data){ //隐藏其他定时操作 this.hide(); //隐藏开战 NN_UIP.game.startWar(); //隐藏抢庄按钮 NN_UIP.btn.robZhuang(); //logmessage("收到确定庄包后定时",1); //延迟显示 this._toId.okZhuang.t1 = setTimeout(function(){ this._toId.okZhuang.t1 = -1; //隐藏玩家抢庄状态 NN_UIP.show.robZhuang(0,0,1); //显示确定庄后显示 var callbackFunc = function(){ if(NN_Desk && NN_Desk.state != NN_state.over){ //if(NN_Desk.model == 5){ //下注抢庄 //console.log("发牌4张:" + ((new Date()).getTime() - NN_UI.time_start)); //显示发最后一张牌 //NN_UIF.card.dealCards(1,1,1, NN_Desk.model_fast, [], data.dealorder, [4,4]); //NN_Desk.state = NN_state.rubCard; if(NN_Desk.model == 5){ NN_UIP.show.betScore(0,0,0, NN_Desk.zhuang); //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.betAgain); //显示下注按钮 NN_UIP.btn.betScore(1,1,1,NN_Desk.model_fast,1); }else{ //显示计时闹钟 NN_UIP.countDown.show(NN_Desk.timeout_m.bet); //显示下注按钮 NN_UIP.btn.betScore(1,1,1); } } }; NN_UIP.game.okZhuang(1,1,1,NN_Desk.model_fast, callbackFunc, data); NN_Desk.state = NN_state.bet; //logmessage("确定庄动画",1); }.bind(this),500); if(NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.model_fast == 1)){ //优化-刷新牌显示 NN_UIP.card.update(); } //下注抢庄 - 隐藏庄的下注 //if(NN_Desk.model == 5){ //NN_Desk.state = NN_state.rubCard;//搓牌状态 //NN_UIF.show.betScore(0,0,0, NN_Desk.zhuang); //} }, //玩家下注 betScore: function(seat, score, score2){ //显示下注分数 if(!NN_UIP.game._isAnim_okZhuang){ //确定庄动画中不显示 NN_UIP.show.betScore(1,1,1,seat,score); //加注提示 if(NN_Desk.model == 5 && NN_Desk.zhuang >= 0 && score2 != null){ NN_UIP.show.betScoreAgain(1,1,1,seat,score2); } } //隐藏下注栏 if(seat == NN_Desk.myseat){ NN_UIP.btn.betScore(); } }, //发牌 dealCards: function(dice, dealorder){ //优化-隐藏抢庄按钮 NN_UIP.btn.robZhuang(); //优化-隐藏玩家抢庄状态 NN_UIP.show.robZhuang(); //优化-刷新玩家的下注 NN_UIP.update.betScore(); //优化-更新庄显示 NN_UIP.update.zhuang(); //if(NN_Desk.model_fast != 1){//优化-正常版-停止确定庄动画 //NN_UIF.game.startWar(); //} //隐藏其他定时操作 this.hide(); //隐藏下注栏 NN_UIP.btn.betScore(); //隐藏提示文字 NN_Tips.words(); //隐藏玩家计时 NN_UI.setCountDown(); NN_UIP.countDown.hide(); NN_UIP.card._isDealCards = false; //显示发牌 this._toId.dealCards.t1 = window.setTimeout(function(){ this._toId.dealCards.t1 = -1; if(NN_Desk.model == 4){ //看牌抢庄-发最后一张牌 NN_UIP.card.dealCards(1,1,1, NN_Desk.model_fast, dice, dealorder, [4,4]); NN_Desk.state = NN_state.rubCard; }else if(NN_Desk.model == 5){ if(NN_Desk.zhuang >= 0){ //隐藏加注提示 NN_UIP.show.betScoreAgain(); //显示发最后一张牌 NN_UIP.card.dealCards(1,1,1, NN_Desk.model_fast, [], dealorder, [4,4]); NN_Desk.state = NN_state.rubCard; NN_UIP.show.betScore(0,0,0, NN_Desk.zhuang); }else { NN_Desk.state = NN_state.robZhuang; NN_UIP.card.dealCards(1,1,1, NN_Desk.model_fast, dice, dealorder, [0,3]); } }else { NN_UIP.card.dealCards(1,1,1, NN_Desk.model_fast, dice, dealorder); NN_Desk.state = NN_state.rubCard; } }.bind(this),1000); }, //搓牌 rubCard: function(seat, cardloc, card){ if(!NN_UIP.card._isDealCards && this._toId.dealCards.t1 <= 0){ //发牌动画时不显示 NN_UIP.card.rubCard(1,1,1,NN_Desk.model_fast, seat, cardloc,card); } }, //摆牌 putCard: function(seat){ if(!NN_UIP.card._isDealCards && this._toId.dealCards.t1 <= 0){ //发牌动画时不显示 //自己为特殊牌型时不显示 var _type = NN_Desk.pList[seat].cards.type; if(_type != "bigbomb" && _type != "bomb" && _type != "flush" && _type != "wuhua" && _type != "wuxiao" && _type != "hulu" && _type != "tonghua" && _type != "shunzi"){//是否为特殊牌型 //摆牌 - 对应座位 NN_UIP.card.putCard(1,1,1, NN_Desk.model_fast, seat); } } }, //全部搓摆牌 putAllCard: function(){ //隐藏其他定时操作 this.hide(); //关闭读条 NN_UI.setCountDown(); NN_UIP.countDown.hide(); //关闭手指滑动 NN_UIP.anim.fingerSlide();//关闭手指滑动 //关闭玩家的搓摆牌 NN_UIP.card.rubCard(); NN_UIP.card.putCard(); NN_UIP.card.putCard_1(); //显示所有玩家牌型 NN_UIP.card.putAllCard(1,1,1,NN_Desk.model_fast); }, //结算 settlement: function(result){ //隐藏其他定时操作 this.hide(); //关闭手指滑动 NN_UIP.anim.fingerSlide();//关闭手指滑动 //关闭读条 NN_UI.setCountDown(); NN_UIP.countDown.hide(); //隐藏 - 搓摆牌及确定图片 set_group(203,37,0,0,0); //更新庄显示 NN_UIP.update.zhuang(); var _time = 1600; if(NN_Desk.model_fast != 1){ _time = 2500; } //定时显示结算 this._toId.settlement.t1 = window.setTimeout(function(){ NN_UIP.net._toId.settlement.t1 = -1; //优化-刷新牌显示 NN_UIP.card.update(); NN_UIP.settlement.view(1,1,1,NN_Desk.model_fast, result); }.bind(this),_time); }, //游戏结束-总结算 gameOver: function(scores, rounds){ var bigWiner = -1; bigWiner = NN_UIP.gameOver.view(1,1,1,NN_Desk.model_fast, scores, rounds); //大赢家调用接口 if(bigWiner == 1){ Utl.typeForActivity(1,null); } NN_Desk.state = NN_state.over; }, //解散 disbandGame: function(data){ NN_UIP.game.disbandGame(1,1,1,NN_Desk.model_fast, data); }, //玩家准备 ready : function(seat){ if(NN_Desk.pList[seat]){ NN_Desk.pList[seat].isReady = 1; } if(seat == NN_Desk.myseat){ if(NN_Desk.model_fast){//快版 //界面显示 if(NN_Desk.state == NN_state.robZhuang){ //抢庄状态 //显示抢庄按钮 if(NN_Desk.model == 1 && !NN_UIP.game._isAnim_startWar){ NN_UIP.btn.robZhuang(true); } }else if(NN_Desk.state == NN_state.bet){ //下注状态 //显示下注按钮!NN_UIF.game._isAnim_okZhuang if(NN_Desk.model == 2 || NN_Desk.model == 3 || NN_Desk.model == 5){ if(!NN_UIP.game._isAnim_startWar){ NN_UIP.btn.betScore(1, 1, 1, NN_Desk.model_fast); } }else if(NN_Desk.model != 4 && !NN_UIP.game._isAnim_okZhuang){ NN_UIP.btn.betScore(1, 1, 1, NN_Desk.model_fast); } } }else {//慢版 //界面显示 if(NN_Desk.state == NN_state.robZhuang){ //抢庄状态 //显示抢庄按钮 if(NN_Desk.model == 1 && NN_Judge.isStartWar != 1){ NN_UIP.btn.robZhuang(true); } }else if(NN_Desk.state == NN_state.bet){ //下注状态 //显示下注按钮!NN_UIF.game._isAnim_okZhuang if(NN_Desk.model == 1){ if(NN_Judge.isOkZhuang != 1){ NN_UIP.btn.betScore(1, 1, 1, NN_Desk.model_fast); } }else if(NN_Desk.model == 2 || NN_Desk.model == 3){ if(NN_Judge.isStartWar != 1){ NN_UIP.btn.betScore(1, 1, 1, NN_Desk.model_fast); } }else if(NN_Desk.model == 5){ if(!NN_UIP.game._isAnim_startWar){ NN_UIP.btn.betScore(1, 1, 1, NN_Desk.model_fast); } } } } } //托管 NN_UI.trusteeshipState(true, false, NN_Desk.myseat); }, }; //每小局结算时显示 NN_UIP.settlement = { //隐藏 hide: function(){ this.view(false); }, //ontime定时器 ontime: function(){ }, //定时器id _toId: { settlement: { t1: -1, t2: -1, t3: -1 }, winEffect: { t1: -1 }, }, //显示每局结算 view: function(isView, isAnim, isSound, isFast, result){ if(isView){ var _result = [[],[]];//庄赢和输 for(var i=0;i 0 && i != NN_Desk.zhuang){ if(result[i][0] < 0){ _result[0].push(i); }else if(result[i][0] > 0){ _result[1].push(i); } } } var _time = 300; if(isAnim){ //显示玩家输赢分数 this._toId.settlement.t2 = window.setTimeout(function(){ this._toId.settlement.t2 = -1; //set_self(916,37,1,0,0); this.view_1(true, isAnim, isSound, isFast, result); }.bind(this),_time); } else { //无动画直接显示分数 set_self(916,37,1,0,0); this.view_1(true, isAnim, isSound, isFast, result); } return _time; }else { NN_UIP.clearTimeout(this._toId.settlement); this.view_1(); } }, //每局-结算1 view_1 : function(isView, isAnim, isSound, isFast, result){ if(isView){ if(result == null){ set_group(209,37,0,0,0); return; } NN_Desk.state = NN_state.settlement; //显示加减分数动画 var wz, sLen = 0, spid_bg = NN_Sprite.settScoreBg.idList, spid_as = NN_Sprite.settAddSub.idList, spid_win = NN_Sprite.settWinScore.idList, spid_lose = NN_Sprite.settLoseScore.idList; //分数长度 for(var i=0;i 0){ wz = NN_SF[i]; sLen = String(Math.abs(result[i][0])).length; //数字背景 set_self(spid_bg[wz],41,0,0,0); set_self(spid_bg[wz],18,get_self(NN_Sprite.settScoreBg.relvSpid[wz], 18) + NN_Sprite.settScoreBg.position[wz][0],0,0); set_self(spid_bg[wz],19,get_self(NN_Sprite.settScoreBg.relvSpid[wz], 19) + NN_Sprite.settScoreBg.position[wz][1],0,0); //set_self(spid_bg[wz],19,get_self(346+wz,19)-12,0,0); if(wz == 1 || wz == 2 || wz == 3){ //右侧 if(sLen > 2){ set_self(spid_bg[wz],18,get_self(346+wz,18) -25 - NN_Sprite.settWinScore.smallSize[0] * (sLen-2),0,0); set_self(spid_bg[wz],20,199 + NN_Sprite.settWinScore.smallSize[0] * (sLen - 2),0,0); }else { set_self(spid_bg[wz],18,get_self(346+wz,18) - 48,0,0); set_self(spid_bg[wz],20,199,0,0); } }else if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ //上侧 set_self(spid_bg[wz],19,6,1,0); if(sLen > 2){ set_self(spid_bg[wz],18,get_self(346+wz,18) -35 - NN_Sprite.settWinScore.smallSize[0] / 2 * (sLen-2),0,0); set_self(spid_bg[wz],20,199 + NN_Sprite.settWinScore.smallSize[0]*(sLen - 2),0,0); }else { set_self(spid_bg[wz],18,get_self(346+wz,18) - 48,0,0); set_self(spid_bg[wz],20,199,0,0); } } else { //左侧 if(sLen > 2){ set_self(spid_bg[wz],18,get_self(346+wz,18) - 63,0,0); set_self(spid_bg[wz],20,199 + NN_Sprite.settWinScore.smallSize[0] *(sLen - 2),0,0); }else { set_self(spid_bg[wz],18,get_self(346+wz,18) - 48,0,0); set_self(spid_bg[wz],20,199,0,0); } } //加减符号 if(sLen == 0){ set_self(spid_as[wz],18,get_self(spid_bg[wz],18)+56,0,0); }else{ set_self(spid_as[wz],18,get_self(spid_bg[wz],18) + (get_self(spid_bg[wz],20) - 30*sLen - 30)/2,0,0); } set_self(spid_as[wz],19,get_self(spid_bg[wz],19)+32,0,0); if(result[i][0] > 0){ //加 set_self(spid_as[wz],43,1,0,0); //数字 set_self(spid_win[wz],7,Math.abs(result[i][0]),0,0); //宽高调整 if(sLen > 2){ set_self(spid_win[wz],19,get_self(spid_as[wz],19) - 3,0,0); set_self(spid_win[wz],20,sLen * NN_Sprite.settWinScore.smallSize[0],0,0); set_self(spid_win[wz],21,NN_Sprite.settWinScore.smallSize[1],0,0); }else { set_self(spid_win[wz],19,get_self(spid_as[wz],19) - 5,0,0); set_self(spid_win[wz],20,sLen * NN_Sprite.settWinScore.size[0],0,0); set_self(spid_win[wz],21,NN_Sprite.settWinScore.size[1],0,0); } if(result[i][0] >= 10){ set_self(spid_win[wz],18,get_self(spid_as[wz],18)+30,0,0); }else { set_self(spid_win[wz],18,get_self(spid_as[wz],18)+43,0,0); } set_self(spid_win[wz],37,1,0,0); set_self(spid_as[wz],37,1,0,0); set_self(spid_lose[wz],37,0,0,0); // set_self(spid_bg[wz],43,1,0,0); set_self(spid_bg[wz],37,1,0,0); // if(isAnim){ play_box(1,spid_bg[wz],19,get_self(spid_bg[wz],19),-400,1410,500); play_box(1,spid_as[wz],19,get_self(spid_as[wz],19),-400,1410,500); play_box(1,spid_win[wz],19,get_self(spid_win[wz],19),-400,1410,500); //赢分头像框动画 set_self(NN_Sprite.winAnim.idList[wz],18,get_self(NN_Sprite.winAnim.relvSpid[wz], 18) + NN_Sprite.winAnim.position[wz][0],0,0); set_self(NN_Sprite.winAnim.idList[wz],19,get_self(NN_Sprite.winAnim.relvSpid[wz], 19) + NN_Sprite.winAnim.position[wz][1],0,0); set_self(NN_Sprite.winAnim.idList[wz],41,0,0,0); set_self(NN_Sprite.winAnim.idList[wz],37,1,0,0); //播动画 if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ play_ani(1, NN_Sprite.winAnim.idList[wz], 43, 1, 20, 0, 1000, 0, 0, 0, 1, 0, 0); play_ani(1, NN_Sprite.winAnim.idList[wz], 37, 1, 0, 0, 10, 0, 1040, 0, 1, 0, 0); }else { play_ani(1, NN_Sprite.winAnim.idList[wz], 43, 1, 24, 0, 1200, 0, 0, 0, 1, 0, 0); } }else { if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ //上侧 set_self(spid_bg[wz],19,get_self(346+wz,19) - 12 - 20,0,0); }else{ set_self(spid_bg[wz],19,get_self(346+wz,19) - 12 - 30,0,0); } set_self(spid_as[wz],19,get_self(spid_bg[wz],19) + 32,0,0); set_self(spid_win[wz],19,get_self(spid_as[wz],19) - 5,0,0); } // if(wz == 0 && isSound){ NN_playSound("sl"); } }else if(result[i][0] < 0){ //减 set_self(spid_as[wz],43,2,0,0); //数字 set_self(spid_lose[wz],7,Math.abs(result[i][0]),0,0); //宽高调整 if(sLen > 2){ set_self(spid_lose[wz],19,get_self(spid_as[wz],19) - 3,0,0); set_self(spid_lose[wz],20,sLen * NN_Sprite.settLoseScore.smallSize[0],0,0); set_self(spid_lose[wz],21,NN_Sprite.settLoseScore.smallSize[1],0,0); }else { set_self(spid_lose[wz],19,get_self(spid_as[wz],19) - 5,0,0); set_self(spid_lose[wz],20,sLen * NN_Sprite.settLoseScore.size[0],0,0); set_self(spid_lose[wz],21,NN_Sprite.settLoseScore.size[1],0,0); } if(result[i][0] <= -10 ){ set_self(spid_lose[wz],18,get_self(spid_as[wz],18)+30,0,0); }else { set_self(spid_lose[wz],18,get_self(spid_as[wz],18)+43,0,0); } set_self(spid_lose[wz],37,1,0,0); set_self(spid_as[wz],37,1,0,0); set_self(spid_win[wz],37,0,0,0); // set_self(spid_bg[wz],43,2,0,0); set_self(spid_bg[wz],37,1,0,0); // if(isAnim){ play_box(1,spid_bg[wz],19,get_self(spid_bg[wz],19),-400,1410,500); play_box(1,spid_as[wz],19,get_self(spid_as[wz],19),-400,1410,500); play_box(1,spid_lose[wz],19,get_self(spid_lose[wz],19),-400,1410,500); }else { if(wz == 0 || wz == 4 || wz == 5 || wz == 6){ //上侧 set_self(spid_bg[wz],19,get_self(346+wz,19) - 12 - 20,0,0); }else { set_self(spid_bg[wz],19,get_self(346+wz,19) - 12 - 30,0,0); } set_self(spid_as[wz],19,get_self(spid_bg[wz],19)+32,0,0); set_self(spid_lose[wz],19,get_self(spid_as[wz],19)-5,0,0); } if(wz == 0 && isSound){ NN_playSound("sb"); } } //set_self(184+NN_SF[i],7,""+result[i][1],0,0); //显示分数 //Utl.setGrade(i,result[i][1]); if(NN_Desk.pList[i]){ NN_UIP.update.playerScore(i,NN_Desk.pList[i].scores); } } //Test.addScoreData(NN_Desk.nowCount-1 , i, result[i][0]); } if(isAnim){ //定时隐藏赢效果图片 this._toId.settlement.t3 = window.setTimeout(function(){ NN_UIP.settlement._toId.settlement.t3 = -1; NN_Sprite.winAnim.show(-1, 0); }.bind(wz),1220); } }else { //停止动画 for(var i = 0; i < NN_Desk.personMax; i ++){ play_box(1,NN_Sprite.settScoreBg.idList[i],0); play_box(1,NN_Sprite.settAddSub.idList[i],0); play_box(1,NN_Sprite.settWinScore.idList[i],0); play_box(1,NN_Sprite.settLoseScore.idList[i],0); play_box(1,NN_Sprite.winAnim.idList[i],0); } //隐藏 分数 NN_Sprite.settScoreBg.show(-1, 0); NN_Sprite.settAddSub.show(-1, 0); NN_Sprite.settWinScore.show(-1, 0); NN_Sprite.settLoseScore.show(-1, 0); //赢动画 NN_Sprite.winAnim.show(-1, 0); } }, //胜利玩家动画效果 winEffect: function(isView, isAnim, isSound, isFast, seat){ if(isView){ if(isFast){ //快版 this._toId.settlement.t1 = setTimeout(function(){ this._toId.settlement.t3 = -1; set_self(919+NN_SF[seat],37,1,0,0); set_self(919+NN_SF[seat],43,1,0,0); play_ani(1,919+NN_SF[seat],43,1,13,0,800,0,0,0,1,0,0); play_ani(1,919+NN_SF[seat],37,1,0,0,400,0,810,0,1,0,0); }.bind(this),200); }else { this._toId.settlement.t1 = setTimeout(function(){ this._toId.settlement.t3 = -1; set_self(919+NN_SF[seat],37,1,0,0); set_self(919+NN_SF[seat],43,1,0,0); play_ani(1,919+NN_SF[seat],43,1,13,0,1000,0,0,0,1,0,0); play_ani(1,919+NN_SF[seat],37,1,0,0,500,0,1010,0,1,0,0); }.bind(this),300); } } else { NN_UIP.clearTimeout(this._toId.winEffect); for (var i=0;i<5;i++) { play_ani(0,919+i,0); set_self(919+i,37,0,0,0); } } }, //结算时显示金币流动 set_zhuangGold : function(isView, isAnim, isSound, isFast, seat1,seat2,count){ if(isView && seat1 != null){ if(count == null){ count = 3; } var _time = 0; var z_wz = 100*seat1+10*seat2; set_self(916,37,1,0,0); for(var i=0;i 0){ _max = [[scores[0][0],scores[0][1]]]; } for(var i=0;i 0 && scores[i+1].length > 0){ if(_max[0][1] == scores[i+1][1]){ _max.push([scores[i+1][0],scores[i+1][1]]); }else { _max = _max[0][1] > scores[i+1][1] ? _max : [[scores[i+1][0],scores[i+1][1]]]; } } } for(var i=0;i<_max.length;i++){ if(_max[i][1] > 0){//大赢家 set_self(1923+_max[i][0],18,get_self(1843+_max[i][0], 18) - 22,0,0); set_self(1923+_max[i][0],19,get_self(1843+_max[i][0], 19) - 12,0,0); set_self(1923+_max[i][0],37,1,0,0); //判断自己是否为大赢家 if(_max[i][0] == NN_Desk.myseat){ bigWiner = 1; } } } NN_Desk.state = NN_state.over; //音效 if(isSound){ NN_playSound("js"); } //显示房主图标 if(NN_Desk.owner.seat >= 0){ set_self(1943,18,get_self(1813 + NN_Desk.owner.seat,18) - 3,0,0); set_self(1943,19,get_self(1813 + NN_Desk.owner.seat,19) - 19,0,0); set_self(1943,37,1,0,0); } else { set_self(1943,37,0,0,0); //单独显示房主信息 set_self(1944,37,1,0,0); set_self(1945,7,NN_Desk.owner.name,0,0); set_self(1946,7,NN_Desk.owner.id,0,0); set_self(1945,37,1,0,0); set_self(1946,37,1,0,0); } //星星数量刷新 if(NN_Desk.model_bean[0] == 1){ for(var i=0;i 0){ var _scores = []; if(scores && scores.length > 0){ _scores = scores; }else { //得出分数数组 for(var i=0;i -1){ window.clearInterval(NN_nowTimeoutId); NN_nowTimeoutId = -1; } NN_nowTimeout = _time; if(NN_Desk.state != NN_state.bet && NN_Desk.state != NN_state.ready){ this._nowTimeoutCount = 0; NN_Desk.timeout_count.bet = 0; } //下注时倒计时循环 NN_nowTimeoutId = window.setInterval(function(){ //显示 NN_nowTimeout --; if(NN_nowTimeout < 0 || (NN_Desk.state == NN_state.ready && NN_nowTimeout == 0)){ window.clearInterval(NN_nowTimeoutId); NN_nowTimeoutId = -1; if(NN_Desk.state == NN_state.bet || NN_Desk.state == NN_state.ready){//下注时倒计时循环 this._nowTimeoutCount ++; NN_Desk.timeout_count.bet ++; //NN_UI.setCountDown(NN_Desk.timeout_m.bet); if(NN_Desk.state == NN_state.ready){ NN_UIP.countDown.show(NN_Desk.timeout_m.ready); }else { NN_UIP.countDown.show(NN_Desk.timeout_m.bet); } NN_Desk.stageTime_loc = (new Date()).getTime(); } return; } if(String(NN_nowTimeout).length == 1){ set_self(704,7,"0"+NN_nowTimeout,0,0); }else { set_self(704,7,NN_nowTimeout,0,0); } set_self(704,20,40,0,0); //下注倒计时5s震动 if(NN_Desk.state == NN_state.bet){ if((NN_Desk.model_fast == 1 && NN_nowTimeout == 2 || NN_Desk.model_fast != 1 && NN_nowTimeout == 5)&& NN_Desk.myseat != NN_Desk.zhuang && NN_Desk.pList[NN_Desk.myseat].betScore <= 0){ NN_Judge.isVibrator = 1; //Func.vibrator(500); Func.repeatvibrator(1); }else if(NN_nowTimeout == 0 && NN_Judge.isVibrator == 1){ Func.canclevibrator(); NN_Judge.isVibrator = -1; } } }.bind(this),1000); if(String(NN_nowTimeout).length == 1){ set_self(704,7,"0"+NN_nowTimeout,0,0); }else { set_self(704,7,NN_nowTimeout,0,0); } set_self(704,20,40,0,0); set_self(704,37,1,0,0); set_self(703,37,1,0,0); }else { if(NN_nowTimeoutId > -1){ window.clearInterval(NN_nowTimeoutId); NN_nowTimeoutId = -1; NN_nowTimeout = 0; } if(NN_Judge.isVibrator == 1){ Func.canclevibrator(); NN_Judge.isVibrator = -1; } set_self(704,7,"00",0,0); set_self(704,37,0,0,0); set_self(703,37,0,0,0); } }, //恢复读条显示 reconnect: function(isFast){ //对应座位显示倒计时 if(NN_Desk.stageTime <= 0){ return ;} this.show(); //停止当前定时 var _time = 0; if(NN_Desk.model_fast >= 1){ //快版时间 switch (NN_Desk.state){ case NN_state.ready: //_time = NN_Desk.timeout_m.ready*1000 - NN_Desk.stageTime; _time = NN_Desk.timeout_m.ready*1000 - Math.floor(NN_Desk.stageTime % (NN_Desk.timeout_m.ready*1000)); break; case NN_state.robZhuang://抢庄 if(NN_Desk.model == 1){ if(NN_Desk.nowCount == 1){ _time = 2150 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 950 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 4){ //发牌抢庄 //统计发牌玩家 var pCount = 0; for(var i=0;i 0){ pCount ++; } } if(NN_Desk.nowCount == 1){ _time = 2150 + pCount * 100 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 1050 + pCount * 100 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 5){ //下注抢庄 _time = 1450 + (NN_Desk.betList.length - 1) * 100 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } break; case NN_state.bet://下注状态 if( NN_Desk.timeout_count.bet <= 0){ var rob_num = []; for (var i=0;i 1){ _time = 3150 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 2){ //轮庄 if(NN_Desk.nowCount == 1){ //随机庄 _time = 2250 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ //确定庄 _time = 1050 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 3){ //房主坐庄 if(NN_Desk.nowCount == 1){ _time = 2250 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 1050 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 4){ //看牌抢庄 //var pCount = []; //for (var i=0;i 1){ //_time = 1050 + pCount * 100 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; //} if(rob_num == 0 || rob_num > 1){ _time = 3150 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; }else if(rob_num == 1){ _time = 1150 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } } else if(NN_Desk.model == 5){ //下注抢庄 if(NN_Desk.zhuang >= 0){//抢庄后显示下注按钮 if(rob_num == 0){ _time = 3150; }else if(rob_num == 1){ _time = 1150; }else if(rob_num > 1){ _time = 3150; } _time += NN_Desk.timeout_m.betAgain*1000 - NN_Desk.stageTime; }else { _time = NN_Desk.timeout_m.bet*1000; if(NN_Desk.nowCount == 1){ _time += 2150 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time += 950 - NN_Desk.stageTime; } } } }else { _time = NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } break; case NN_state.rubput: //搓摆牌 case NN_state.rubCard: //搓牌 case NN_state.putCard: //摆牌 if(NN_Desk.model == 5){ //下注抢庄 _time = 1000 + 100 + NN_Desk.betList.length * 100 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; } else { //_time = 5400+(NN_Desk.betList.length+1)*1800 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; _time = 1450 + NN_Desk.betList.length * 100 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; } break; default: break; } } else { switch (NN_Desk.state){ case NN_state.ready: _time = NN_Desk.timeout_m.ready*1000 - Math.floor(NN_Desk.stageTime % (NN_Desk.timeout_m.ready*1000)); break; case NN_state.robZhuang://抢庄 if(NN_Desk.model == 1){ if(NN_Desk.nowCount == 1){ _time = 5500 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 4000 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 4){ //发牌抢庄 //统计发牌玩家 var pCount = 0; for(var i=0;i 0){ pCount ++; } } if(NN_Desk.nowCount == 1){ _time = 7050 + (pCount-1) * 1450 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 4850 + (pCount-1) * 1450 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 5){ //下注抢庄 _time = 4800 + (NN_Desk.betList.length - 2) * 1450 + NN_Desk.timeout_m.robzhuang*1000 - NN_Desk.stageTime; } break; case NN_state.bet://下注状态 if( NN_Desk.timeout_count.bet <= 0){ var rob_num = []; for (var i=0;i 1){ _time = 11000 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 2){ //轮庄 if(NN_Desk.nowCount == 1){ //随机庄 _time = 15000 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ //确定庄 _time = 8800 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 3){ //房主坐庄 if(NN_Desk.nowCount == 1){ _time = 10300 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time = 8800 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } }else if(NN_Desk.model == 4){ //看牌抢庄 if(rob_num == 0 || rob_num > 1){ _time = 7350 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; //4350#6050#7350 }else if(rob_num == 1){ _time = 1450 + NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } } else if(NN_Desk.model == 5){ //下注抢庄 if(NN_Desk.zhuang >= 0){ if(rob_num == 0 || rob_num > 1){ _time = 7350; //4350#6050#7350 }else if(rob_num == 1){ _time = 1450; } _time += NN_Desk.timeout_m.betAgain*1000 - NN_Desk.stageTime; }else { _time = NN_Desk.timeout_m.bet*1000; if(NN_Desk.nowCount == 1){ _time += 5050 - NN_Desk.stageTime; }else if(NN_Desk.nowCount > 1){ _time += 2850 - NN_Desk.stageTime; } } } }else { _time = NN_Desk.timeout_m.bet*1000 - NN_Desk.stageTime; } break; case NN_state.rubput: //搓摆牌 case NN_state.rubCard: //搓牌 case NN_state.putCard: //摆牌 if(NN_Desk.model == 4){ //看牌抢庄 _time = 2300 + NN_Desk.betList.length * 360 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; //4767 - 1800 }else if(NN_Desk.model == 5){ //下注抢庄 3002#3 _time = 1000 + 910 + (NN_Desk.betList.length + 1) * 360 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; }else { _time = 4800 + (NN_Desk.betList.length+1)*1800 + NN_Desk.timeout_m.rubput*1000 - NN_Desk.stageTime; } break; default: break; } } //console.log("NN_Desk.stageTime = "+NN_Desk.stageTime); if(_time >= 1000){ //NN_UI.setCountDown(Math.floor(_time/1000)); NN_UIP.countDown.show(Math.floor(_time/1000)); }else if(_time >= 0 && _time < 1000){ //NN_UI.setCountDown(1); NN_UIP.countDown.show(1); } }, };