var userid = parseInt($('#userid').val()); var login_token = $('#login_token').val(); var table_id = parseInt($('#table_id').val()); var game_id = parseInt($('#game_id').val()); var account = $('#account').val(); var number_tab_id; var ludan; var isCBoot = false; var isopentime = false; var num = 0; var card_info=[]; var websocket = io(websocketProtocol+"://"+websocketUrl+"/?table_id="+table_id+"&account="+account+"&connect=space&userid="+userid+"&login_token="+login_token,{transports: ['websocket']}); websocket.on('reconnecting', (timeout) => { //触发重连 layer.msg('服务断开,正在重新连接...', { icon: 16, shade: 0.6, time:0, }); }); websocket.on('reconnect', (timeout) => { //重连成功 layer.closeAll(); layer.msg('服务重新连接成功'); }); //事件 发送******************************************************************************************************************* var startBet = function(){ websocket.emit('startBet',{table_id : table_id, number_tab_id : number_tab_id}); }; var endBet = function (){ websocket.emit('endBet',{table_id : table_id, number_tab_id : number_tab_id}); }; var resetNumberTab = function(){ isCBoot = true; var betStatus = $("#number_tab_status").val(); if(betStatus == 1 || betStatus == 2){ layer.confirm(lang.is_reset_number,{btn: [lang.confirm,lang.cancel],title:lang.message}, function(index){ websocket.emit('resetNumberTab',{table_id : table_id}); isCBoot = false; layer.close(index); $('.roulette-result-num').html(''); hideRouletteBox(); },function(index){ isCBoot = false; }); }else{ layer.msg(lang.reset_number_fail); } }; var changeBoot = function(){ isCBoot = true; var betStatus = $("#number_tab_status").val(); if(betStatus == 0 || betStatus == 3){ layer.confirm(lang.is_to_boot,{btn: [lang.confirm,lang.cancel],title:lang.message}, function(index){ websocket.emit('changeBoot',{table_id : table_id}); isCBoot = false; layer.close(index); },function(index){ isCBoot = false; }); }else{ layer.msg(lang.change_boot_false); } }; var resetBoot = function(){ layer.confirm(lang.is_to_balance,{btn: [lang.confirm,lang.cancel],title:lang.message}, function(index){ websocket.emit('resetBoot',{table_id : table_id}); layer.close(index); }); }; var opening = function(){ let result = $('#roulette_result').val(); websocket.emit('openingRoulette',{table_id : table_id, number_tab_id : number_tab_id, result : result}); }; // 骰宝显示 var showDRouletteBox = function (){ $('#roulette_result').val(''); $('.roulette-result-num').html('') $('#roulette_result_box').fadeIn(); } var hideRouletteBox = function (){ $('#roulette_result_box').addClass('flicker').fadeOut(2400,'linear',function(){ $('#roulette_result_box').removeClass('flicker'); $('.roulette-result-num').html('') }); } //事件 发送******************************************************************************************************************* //事件返回********************************************************************************************************************* websocket.on('onlineLogin',function(data){ if (data.table_id === table_id) { if(data.status === true){ setNumberInfo(data.round); setBetStatus(data.round.number_tab_status); waybillFunc(); if (data.round.number_tab_status.bet_status != undefined && data.round.number_tab_status.bet_status == 2){ } }else{ layer.msg(lang[data.msg],{time:0}); } } }); websocket.on('RepeatedEntry',function(data){ websocket.close(); layer.msg(lang[data.msg]); setTimeout(function (){ window.location.href='/login/logout'; },2000); }); websocket.on('startBet',function(data){ if(data.status === true && data.table_id === table_id){ mp3List = ['start.mp3']; audioMp3(mp3List).Play(); setBetStatus(data.round.number_tab_status); }else{ if (data.table_id != undefined && data.table_id == table_id) { layer.msg(lang[data.msg]); } } }); websocket.on('resetNumberTab',function(data){ if(data.status === true && data.table_id == table_id){ setNumberInfo(data.round); setBetStatus(data.round.number_tab_status); $(".countdown").css({"opacity":0,"display":"none"}); $(".countdown .grab-count").removeClass("count-active"); $(".begincard .box").animate({"opacity":"0"},function(){ $(".begincard").fadeOut(); $(".table-info .nobegin-tip").fadeIn(); $('.box1').css("background-color","rgba(0, 0, 0, 0.5)"); $('.box2').css("background-color","rgba(0, 0, 0, 0.5)"); $('.box3').css("background-color","rgba(0, 0, 0, 0.5)"); $('.box4').css("background-color","rgba(0, 0, 0, 0.5)"); $(".begincard .box .list .card").removeClass("begin") $(".begincard .card .topleft").html("") $(".begincard .card .bottomright").html("") $(".list .card .face").css("background-image","") $(".begincard .list .draw .rotate").css("display",'none'); }); card_info=[]; }else{ if (data.table_id != undefined && data.table_id == table_id) { layer.msg(lang[data.msg]); } } }); websocket.on('changeBoot',function(data){ if(data.status === true && data.table_id == table_id){ setNumberInfo(data.round); setBetStatus(data.round.number_tab_status); clearBetAmount(); waybillFunc(); }else{ if (data.table_id != undefined && data.table_id == table_id) { layer.msg(lang[data.msg]); } } }); websocket.on('resetBoot',function(data){ if(data.status === true && data.table_id == table_id){ setNumberInfo(data.round); setBetStatus(data.round.number_tab_status); waybillFunc(); }else{ if (data.table_id != undefined && data.table_id == table_id) { layer.msg(lang[data.msg]); } } }); websocket.on('startBetCountDown',function(data){ if(data.status == true && data.table_id == table_id){ countDown(data.count_down); } }); websocket.on('endBet',function(data){ if(data.status === true && data.table_id == table_id){ $(".countdown").css({"opacity":0,"display":"none"}); $(".countdown .grab-count").removeClass("count-active"); mp3List = ['stop_2.mp3']; audioMp3(mp3List).Play(); $(".countdown").css({"opacity":0,"display":"none"}); $(".countdown .grab-count").removeClass("count-active"); setBetStatus(data.round.number_tab_status); }else{ if (data.table_id != undefined && data.table_id == table_id) { layer.msg(lang[data.msg]); } } }); websocket.on('openingRoulette',function(data){ if(data.status === true && data.table_id == table_id){ setNumberInfo(data.round); setBetStatus(data.round.number_tab_status); waybillFunc(); hideRouletteBox(); }else{ if (data.table_id != undefined && data.table_id == table_id) { $('.roulette-result-num').html('') layer.msg(lang[data.msg]); } } }); //事件返回********************************************************************************************************************* //启动执行 $(function(){ getLang(); //视频处理 $("#video-iframe").attr("src",player+'?url='+flvUrl); $(document).keydown(function (e){ if(e.keyCode == 13){ var cookieValue = $.cookie("enter_time"); if(!cookieValue){ $.cookie("enter_time", 1, { expires: 1/86400*3 }); }else{ layer.msg('Please hold on'); return false } if(isCBoot == true){ $('.layui-layer-btn0').click(); isCBoot = false; }else{ //var keycode = $('#keycode').val(); var numberTabStatus = $('#number_tab_status').val(); //if(keycode == '6'){ if (numberTabStatus == 0) { if(!isopentime){ var is_rob = $('#is_rob').val(); if(is_rob == 1){ startRob(); }else{ startBet(); } $('#keycode').val(''); }else{ layer.msg("请稍等!"); } }else if (numberTabStatus == 2) { var result = $('#roulette_result').val(); if(result.length == 0){ return false; } opening(); } } } //开局 if(e.keyCode == 111){ $('#keycode').val('6'); } //修改当前状态 if(e.keyCode == 109){ $('#update_ludan').toggle(); } //换靴 if(e.keyCode == 107){ changeBoot(); $('#keycode').val(''); } //退出登录 if(e.keyCode == 106){ if(table_type == 1){ cutout(); $('#keycode').val(''); }else{ if(bet_type == 2){ cutout(); $('#keycode').val(''); }else{ loginout(); $('#keycode').val(''); } } } //取消 if(e.keyCode == 110){ $('.layui-layer-btn1').click(); } // 停止倒计时 if(e.keyCode == 96){ if(game_id == 5 || game_id == 4){ var number_rob_status=$("#number_rob_status").val(); var number_tab_status=$("#number_tab_status").val(); if((number_rob_status==1&&number_tab_status==0)||(number_rob_status==2&&number_tab_status==0)){ endRob(); }else{ endBet(); } }else{ endBet(); } } // 骰宝结果选择 if (game_id == 8){ if (e.keyCode == 96 || e.keyCode == 97 || e.keyCode == 98 || e.keyCode == 99 || e.keyCode == 100 || e.keyCode == 101 || e.keyCode == 102 || e.keyCode == 103 || e.keyCode == 104 || e.keyCode == 105){ var num = ''; switch (e.keyCode){ case 96: num = 0; break; case 97: num = 1; break; case 98: num = 2; break; case 99: num = 3; break; case 100: num = 4; break; case 101: num = 5; break; case 102: num = 6; break; case 103: num = 7; break; case 104: num = 8; break; case 105: num = 9; break; } if (num >= 0){ var word = $('.roulette-result-num').html() if(word.length >= 2){ return false } $('.roulette-result-num').append(num) var word = $('.roulette-result-num').html() $('#roulette_result').val(word) } } else if (e.keyCode == 109){ $('.roulette-result-num').html('') $('#roulette_result').val(''); } } }) $(window).resize(function(){ requestData(ludan); }) audio.addEventListener("ended", nextAudio); getTime(); // 日期 setInterval(function(){ getTime(); }, 1000); // 侧栏控台 $(".control-box").hover(function(){ $(".control-box").stop().animate({right:"0"}) },function(){ $(".control-box").stop().animate({right:"-410px"}) }) // 多语言切换 $('#language').change(function(){ var language = $('#language').val(); if(language == "cn" || language == "tw" || language == "en"){ $.get("/index/lang?lang="+language,function(data){ location.reload(); }) } }); $("#confirm_update_ludan").click(function (){ retreated(); }); $("#cancel_update_ludan").click(function (){ $('#update_ludan').hide(); }); // 色碟方法 $('.toning-result-num').click(function () { $('#toning_result').val(parseInt($(this).html())); $(this).addClass("active").siblings().removeClass("active"); }) }) function loginout(){ isCBoot = true; layer.confirm(lang.is_to_logout,{btn: [lang.confirm,lang.cancel],title:lang.message}, function(index){ window.location.href='/login/logout'; isCBoot = false; layer.close(index); },function(index){ isCBoot = false; }); } //获取当前语言包 function getLang(){ $.ajax({ url:"/index/get_lang", type:"POST", dataType:"JSON", async:false, success:function(data){ if(data.status === 1){ lang = data.lang; } } }) } //倒计时 function countDown(time) { $(".countdown .num").html(time) $(".countdown").css({"opacity":1,"display":"block"}); $(".countdown .grab-count").addClass("count-active"); if(time == 10){ mp3List = ['time_tip_10.mp3']; audioMp3(mp3List).Play(); } if(time < 9 && time > 0){ mp3List = ['time.mp3']; audioMp3(mp3List).Play(); } if(time<=0){ mp3List = ['stop_2.mp3']; audioMp3(mp3List).Play(); $(".countdown").css({"opacity":0,"display":"none"}); $(".countdown .grab-count").removeClass("count-active"); return; } } //播放声音 function audioMp3(mp3List){ var mp3=new Object(); mp3.mp3List=mp3List; mp3.url="/static/handle/mp3/"; mp3.auto_play=false; mp3.loop=false; mp3.Play=function(){ audio.src=this.url+this.mp3List[0]; audio.play(); } mp3.Muted=function(){ audio.muted ? audio.muted = false : audio.muted = true; } mp3.volumeAdd=function(){ if(audio.volume.toFixed(1)>=1){ audio.volume=1 }else{ audio.volume = audio.volume + 0.1; } } mp3.volumeMinus=function(){ if(audio.volume.toFixed(1)<=0){ audio.volume=0 }else{ audio.volume = audio.volume - 0.1; } } return mp3; } function Flop(data){ var whichpoker='',pokerindex='',pokercard=''; if(data.status==true){ var which = data.round.position; if(game_id == 1){ switch(which){ case 11: whichpoker='player-card'; pokerindex=1; card_info["player_2"]=data.round.number; break; case 12: whichpoker='player-card'; pokerindex=0; card_info["player_1"]=data.round.number; break; case 13: whichpoker='player-card'; pokerindex=2; card_info["player_3"]=data.round.number; break; case 21: whichpoker='banker-card'; pokerindex=1; card_info["banker_2"]=data.round.number; break; case 22: whichpoker='banker-card'; pokerindex=0; card_info["banker_1"]=data.round.number; break; case 23: whichpoker='banker-card'; pokerindex=2; break; } }else{ switch(which){ case 11: whichpoker='player-card'; pokerindex=0; card_info["player_1"]=data.round.number; break; case 21: whichpoker='banker-card'; pokerindex=0; card_info["banker_1"]=data.round.number; break; } } pokercard = data.round.card; var $poker = $('.begincard '+'.'+ whichpoker+' .card'); var pokersrc="/static/handle/faces/"+pokercard+".svg"; if(pokercard<200){ var color="#000" }else if(pokercard<300){ var color="#f13b3d" }else if(pokercard<400){ var color="#000" }else if(pokercard<500){ var color="#f13b3d" } if(data.round.number == 1){ data.round.number = "A"; } if(data.round.number == 11){ data.round.number = "J"; } if(data.round.number == 12){ data.round.number = "Q"; } if(data.round.number == 13){ data.round.number = "K"; } $poker.eq(pokerindex).find(".topleft").html(data.round.number); $poker.eq(pokerindex).find(".bottomright").html(data.round.number); $poker.eq(pokerindex).find(".topleft").css("color",color); $poker.eq(pokerindex).find(".bottomright").css("color",color); if(pokerindex==2){ $('.begincard '+'.'+ whichpoker +' .draw .rotate').css("display","inline-block"); $poker.eq(pokerindex).addClass("begin"); $poker.eq(pokerindex).find(".face").css("background-image","url("+pokersrc+")"); $(".begincard .banker-card .draw .text").css("text-align","left"); $(".begincard .player-card .draw .text").css("text-align","right"); }else{ $poker.eq(pokerindex).addClass("begin"); $poker.eq(pokerindex).find(".face").css("background-image","url("+pokersrc+")"); } } } // 桌子状态 var setBetStatus = function (BetStatus){ $('#number_tab_status').val(BetStatus.bet_status); if(BetStatus.bet_status==2){ $('.nobegin-tip').html(""); $('#show-status-span').html(""); showDRouletteBox(); }else if(BetStatus.bet_status==1){ $('.nobegin-tip').html(lang[BetStatus.bet_msg]); $('#show-status-span').html(""); }else{ $('.nobegin-tip').html(lang[BetStatus.bet_msg]); $('#show-status-span').html(""); } }; // 获取桌子数据 var setNumberInfo = function (round){ number_tab_id = round.number_tab_id $('#boot_num').html(round.boot_num); $('#number').html(round.number_tab_number); $('#boot_id').val(round.boot_id); }; //修改或者删除录单后从新获取number var getNumber = function (){ var query = new Object(); query.number_tab_id = number_tab_id; $.ajax({ url:"/index/get_number", type:"POST", dataType:"JSON", data:query, async:false, success:function(data){ if(data.status == 1){ $('#number').html(data.data); } } }) }; function nextAudio(){ num+=1 if(num=1){ var last_x=roadData[L-1].show_x if(last_x>Tab){ var cut=last_x-Tab $.each(roadData,function(i,v){ if(v.show_x>cut){ new_roadData.push(v) } }) }else{ new_roadData=roadData; cut=0; } }else{ new_roadData=roadData; cut=0; } $.each(new_roadData,function(i,v){ if(roadType=="showWay"){ SoloPath(ctb,unit,v.show_x-cut,v.show_y,v.result) } }) } function SoloPath(ctb,unit,x,y,type){ ctb.beginPath(); ctb.lineWidth = 0.5; ctb.strokeStyle = "#000"; var radius=unit/2||0; var black = ['2','4','6','8','10','11','13','15','17','20','22','24','26','28','29','31','33','35']; var red = ['1','3','5','7','9','12','14','16','18','19','21','23','25','27','30','32','34','36']; var fonts=type; if($.inArray(type,black) != -1){ var color='#636363'; ctb.strokeStyle = "#636363"; } if($.inArray(type,red) != -1){ var color='#f54f42'; ctb.strokeStyle = "#f54f42"; } if(type == 0){ var color='#5db646'; ctb.strokeStyle = "#5db646"; } ctb.arc(radius+unit*(x-1), radius+unit*(y-1), unit*0.45, 0, Math.PI * 2); ctb.fillStyle=color; ctb.fill(); ctb.font=unit*0.67+"px Arial"; ctb.fillStyle ="#fff" ; // 颜色 ctb.textAlign = 'center'; ctb.textBaseline = 'middle'; ctb.fillText(fonts,radius+unit*(x-1),radius+unit*(y-1)); ctb.stroke(); }