Pro/public/static/onlinechip/js/play_bc.js
2026-02-25 01:50:31 +08:00

579 lines
19 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 控制全屏
$(function(){
var Screen=false;
$("#screen").click(function(){
if(Screen==false){
$("body").addClass("fullscreen");
$(this).children(".icon").css("background-image","url(/static/online/img/outscreen.png)")
$(this).children("span").text(lang.exit_full_screen)
Fullscreen(document.documentElement);
Screen=true;
}else if(Screen==true){
$("body").removeClass("fullscreen");
$(this).children(".icon").css("background-image","url(/static/online/img/fullscreen.png)")
$(this).children("span").text(lang.full_screen)
Outscreen();
Screen=false;
}
})
// 判断Flash是否开启
// if (window.ActiveXObject) {
// var s = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
// if(!s){
// $("#mask").hide();
// $("#index-video").css("visibility","visible")
// }else{
// $("#mask").show();
// $("#index-video").css("visibility","hidden")
// }
// } else {
// var s = navigator.plugins['Shockwave Flash'];
// if(!s){
// $("#mask").hide();
// $("#index-video").css("visibility","visible")
// }else{
// $("#mask").show();
// $("#index-video").css("visibility","hidden")
// }
// }
$(".goback").click(function(){
layer.open({type: 1, area: ['380px', '165px'], closeBtn: false,btn: [lang.cancel, lang.confirm],title:lang.message,content: '\<\div class="box">'+lang.leave_table_tip+'\<\/div>',btn2:function(index, layero){
layer.close(index);
webSocket.close();
var game_id = $('#game_id').val();
if(game_id == 1){
window.location.href="/index/bd?g=1";
}else if(game_id == 2){
window.location.href="/index/bd?g=2";
}else if(game_id == 4){
window.location.href="/index/nn";
}else{
window.location.href="/";
}
}
});
})
})
function Fullscreen(docElm){
//W3C
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
//FireFox
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
//Chrome等
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
//IE11
else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
}
function Outscreen(){
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
// 流媒体
function flashPlay(width, height, videoUrl, Stream, divID){
var so = new SWFObject("/static/online/cuplay/player.swf","ply","100%","100%","2","#000000");
so.addParam("allowfullscreen","false");
so.addParam("allowscriptaccess","always");
so.addParam("wmode","opaque");
so.addParam("quality","high");
so.addParam("salign","lt");
so.addVariable("JcScpServer",videoUrl); //您的rtmp流媒体服务器地址
so.addVariable("JcScpVideoPath",Stream); //流名称
so.addVariable("JcScpFile","/static/onlinechip/cuplay/rtmp.xml"); //配置文件
so.write(divID);
so.addVariable("ShowJcScpAMoveText","yes");
}
// 流媒体
function flashPlaymini(width, height, videoUrl, Stream, divID){
var so = new SWFObject("/static/online/cuplay/player.swf","ply","100%","100%","2","#000000");
so.addParam("allowfullscreen","false");
so.addParam("allowscriptaccess","always");
so.addParam("wmode","opaque");
so.addParam("quality","high");
so.addParam("salign","lt");
so.addVariable("JcScpServer",videoUrl); //您的rtmp流媒体服务器地址
so.addVariable("JcScpVideoPath",Stream); //流名称
so.addVariable("JcScpFile","/static/online/cuplay/rtmp.xml"); //配置文件
so.write(divID);
so.addVariable("ShowJcScpAMoveText","yes");
}
var MaxflvPlayer='',miniflvPlayer='';
function playVideo(id,videoUrl){
if(id=="maxPlayer"){
delVideolive(MaxflvPlayer);
}else if(id=="miniPlayer"){
delVideolive(miniflvPlayer);
}
if(videoUrl){
if (flvjs.isSupported()) {
var videoElement = document.getElementById(id);
var flvPlayer = flvjs.createPlayer({
cors: true,
type: 'flv',
url: videoUrl,
hasAudio:false,
isLive:true,
hasVideo:true,
withCredentials:false,
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
if(id=="maxPlayer"){
MaxflvPlayer=flvPlayer
}else if(id=="miniPlayer"){
miniflvPlayer=flvPlayer
}
}
}
}
function delVideolive(flvPlayer){
// console.log(flvPlayer)
if(flvPlayer!=''){
if (typeof flvPlayer !== "undefined") {
if (flvPlayer != null) {
flvPlayer.unload();
flvPlayer.detachMediaElement();
flvPlayer.destroy();
flvPlayer = null;
}
}
}
}
function iframebox(){
var W=$(".dragscroll").width();
var unit=Math.floor((W/2-20)/24)
$(".iframe_box").attr("width",unit*24);
$(".play .game-tab ul li .box").width(unit*24)
$("iframe").attr("height",unit*6+66)
}
// ----------------------------------
// 路单台
function TabRoadcanvas(obj){
var Vh=$(window).height();
var Vw=$(window).width();
if(Vw<=1200){
Vw=1200;
var RoadWidht=Vw*0.8,
RoadHeight=Vh*0.75,
RoadCanvasW=RoadWidht-175-6,
liW=RoadCanvasW-40,
limarginLeft=0;
}else if(Vw<=1336){
var RoadWidht=Vw*0.8,
RoadHeight=Vh*0.75,
RoadCanvasW=RoadWidht-175-6,
liW=RoadCanvasW-40,
limarginLeft=0;
}else{
var RoadWidht=Vw*0.95,
RoadHeight=Vh*0.75,
RoadCanvasW=RoadWidht-175-6,
liW=(RoadCanvasW-60)/2,
limarginLeft=20;
}
var rows=6,
cols=22,
unit=liW/cols,
CanvasWidht=unit*cols,
CanvasHeight=unit*6;
var $canvasBOX=$(".play .game-tab .list-tab ul");
$(".game-tab").width(RoadWidht)
$(".game-tab").height(RoadHeight)
$(".game-tab").css({"marginLeft":-RoadWidht/2,"marginTop":-RoadHeight/2})
$(".play .game-tab .list-tab").width(RoadCanvasW-15);
$canvasBOX.width(RoadCanvasW);
$canvasBOX.height(RoadHeight);
$canvasBOX.html("")
$.each(obj,function(index,eve){
//判断桌子状态 0 正常 1 洗牌中 2 停台中
if(eve.ludan){
path = eve.ludan.waybill;
}else{
path = false;
}
if(eve.tableInfo.game_id==1){
var url="/baccarat/bet?t="+eve.tableInfo.id;
var html='<span class="limit_money">'+lang.tie+''+eve.tableInfo.scene_limit_money_tie+'</span>'+
'<span class="limit_money">'+lang.pair+''+eve.tableInfo.scene_limit_money_pair+'</span>'+
'<span class="limit_money">'+lang.banker+'/'+lang.player+''+eve.tableInfo.scene_limit_money+'</span>'
}else if(eve.tableInfo.game_id==2){
var url="/dt/bet?t="+eve.tableInfo.id;
var html='<span class="limit_money">'+lang.tiger+''+eve.tableInfo.scene_limit_money+'</span>'+
'<span class="limit_money">'+lang.tie+''+eve.tableInfo.scene_limit_money_tie+'</span>'+
'<span class="limit_money">'+lang.dragon+''+eve.tableInfo.scene_limit_money+'</span>'
}else if(eve.tableInfo.game_id==3){
var url="/dn/bet?t="+eve.tableInfo.id
var html='<span class="limit_money">'+lang.tie+''+eve.tableInfo.scene_limit_money_tie+'</span>'+
'<span class="limit_money">'+lang.pair+''+eve.tableInfo.scene_limit_money_pair+'</span>'+
'<span class="limit_money">'+lang.banker+'/'+lang.player+''+eve.tableInfo.scene_limit_money+'</span>'
}
$(".play .game-tab .list-tab ul").append(
'<li><a href="'+url+'"><div class="road">'+
'<canvas width="'+CanvasWidht+'" height="'+CanvasHeight+'"></canvas></div>'+
'<p class="info">'+lang.table+' <span class="white">'+eve.tableInfo.table_name+'</span>'+ html+
'</p></a></li>');
if(eve.tableInfo.in_checkout==1){
$(".play .game-tab .list-tab ul").eq(index).find(".road").append('<div class="mask" style="line-height:'+CanvasHeight+'px">'+lang.table_status_1+'</div>')
}else if(eve.tableInfo.in_checkout==2){
$(".play .game-tab .list-tab ul li").eq(index).find(".road").append('<div class="mask" style="line-height:'+CanvasHeight+'px">'+lang.table_status_2+'</div>')
}else{
$(".play .game-tab .list-tab ul li").eq(index).find(".road").remove(".mask")
}
var ctb =$(".play .game-tab .list-tab ul li").eq(index).find("canvas")[0].getContext('2d');
var gameId=eve.tableInfo.game_id;
ctb.clearRect(0, 0, unit*100, unit*6)
RoadDrawline(ctb,unit,CanvasWidht,CanvasHeight,rows,cols);
if(path){
var showRoad=path.showRoad;
var bigRoad=path.bigRoad;
var bigEyeRoad=path.bigEyeRoad;
var pathway=path.pathway;
var roach=path.roach;
if(showRoad!=''){
var roadType="showWay"
RoadcutRoad(roadType,ctb,unit,showRoad,cols,gameId);
}
if(bigRoad!=''){
if(bigRoad[0].result==3&&bigRoad[0].show_x==1&&bigRoad[0].show_y==1){
RoadBigPathTie(ctb,unit,cols,bigRoad[0].tie_num)
}else{
var roadType="bigWay";
RoadcutRoad(roadType,ctb,unit,bigRoad,cols);
}
}
if(bigEyeRoad!=''){
var roadType="bigeyeWay"
RoadcutRoad(roadType,ctb,unit,bigEyeRoad,cols);
};
if(pathway!=''){
var roadType="littlWay"
RoadcutRoad(roadType,ctb,unit,pathway,cols);
};
if(roach!=''){
var roadType="roachWay";
RoadcutRoad(roadType,ctb,unit,roach,cols);
};
}
$(".play .game-tab .list-tab ul li").width(liW);
$(".play .game-tab .list-tab ul li:odd").css("margin-left",limarginLeft);
})
}
// 前端路单数据截取
function RoadcutRoad(roadType,ctb,unit,roadData,cols,gameId){
var L=roadData.length;
var new_roadData=[];
var Tab=0
if(roadType=="showWay"||roadType=="bigWay"){
if(roadType=="showWay"){
Tab=cols/2-1;
}else{
Tab=cols-1;
}
}else{
Tab=cols-2;
}
var start_x=cols/2+0.25;
if(L>=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=="roachWay"){
RoadCockrochPath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="littlWay"){
RoadLittlePath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="bigeyeWay"){
RoadBigeyePath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result)
}else if(roadType=="showWay"){
RoadSoloPath(gameId,ctb,unit,v.show_x-cut,v.show_y,v.result,v.pair)
}else if(roadType=="bigWay"){
RoadBigPath(ctb,unit,start_x,v.show_x-cut,v.show_y,v.result,v.tie_num,v.pair)
}
})
}
// 画线条
function RoadDrawline(ctb,unit,CanvasWidht,CanvasHeight,rows,cols){
ctb.lineWidth = 1;//线条宽度
ctb.strokeStyle = "#ffa042";//线条颜色
ctb.beginPath();
ctb.moveTo(0, 0.5);
ctb.lineTo(CanvasWidht, 0.5);
for (var i = 1; i <= rows; i++) {
ctb.moveTo(0, unit*i);
ctb.lineTo(CanvasWidht, unit*i);
}
ctb.moveTo(0.5, 0);
ctb.lineTo(0.5, CanvasHeight);
for (var j = 1; j <= cols; j++) {
ctb.moveTo(unit*j,0);
ctb.lineTo(unit*j,CanvasHeight);
}
for (var l = 0; l <= rows; l++) {
ctb.moveTo(CanvasWidht/2,(l+ 0.5)*unit);
ctb.lineTo(CanvasWidht,(l+ 0.5)*unit);
}
for (var k = 0; k <= Math.floor(0.5*cols); k++) {
ctb.moveTo(( Math.floor(0.5*cols)+k+0.5)*unit,0);
ctb.lineTo(( Math.floor(0.5*cols)+k+0.5)*unit,CanvasHeight);
}
ctb.closePath()
ctb.stroke();
}
// 局数 数文字X坐标文字Y坐标文字大小风格
function RoadFont_tie(ctb,num,Font_x,Font_y,fontsize){
if(num!==undefined){
ctb.beginPath();
ctb.font=fontsize;
ctb.textAlign = 'center';
ctb.textBaseline = 'middle';
ctb.fillStyle ="#000";
ctb.fillText(num,Font_x,Font_y);
ctb.stroke();
}
}
function RoadSoloPath(gameId,ctb,unit,x,y,type,corners){
ctb.beginPath();
ctb.lineWidth = unit*0.02;
ctb.strokeStyle = "#000";
var radius=unit/2||0;
if(gameId==1){
if(type==1){
var color='#b20a00',
fonts= lang.banker;
ctb.strokeStyle = "#b20a00";
}else if(type==2){
var color='#0543bc',
fonts= lang.player;
ctb.strokeStyle = "#0543bc";
}else if(type==3){
var color='#1d8701',
fonts= lang.tie;
ctb.strokeStyle = "#1d8701";
}
}else if(gameId==2){
if(type==1){
var color='#b20a00',
fonts= lang.dragon;
ctb.strokeStyle = "#b20a00";
}else if(type==2){
var color='#0543bc',
fonts= lang.tiger;
ctb.strokeStyle = "#0543bc";
}else if(type==3){
var color='#1d8701',
fonts= lang.tie;
ctb.strokeStyle = "#1d8701";
}
}
ctb.arc(radius+unit*(x-1), radius+unit*(y-1), unit*0.4, 0, Math.PI * 2);
ctb.fillStyle=color;
ctb.fill();
ctb.font=unit*0.45+"px Arial";
ctb.fillStyle ="#fff" ; // 颜色
ctb.textAlign = 'center';
ctb.textBaseline = 'middle';
ctb.fillText(fonts,radius+unit*(x-1),radius+unit*(y-1));
ctb.stroke();
var corner_xy=unit/3.5
if(corners==1){
Roadcorner(ctb,unit,x,y,corner_xy,'#b20a00');
}else if(corners==2){
Roadcorner(ctb,unit,x,y,-corner_xy,'#0543bc');
}else if(corners==3){
Roadcorner(ctb,unit,x,y,corner_xy,'#b20a00');
Roadcorner(ctb,unit,x,y,-corner_xy,'#0543bc');
}
}
//SoloPath角标
function Roadcorner(ctb,unit,x,y,corner_xy,corner_color){
var radius=unit/2
ctb.beginPath();
ctb.lineWidth = unit*0.025;
ctb.strokeStyle = "#fff";
ctb.arc(radius+unit*(x-1)-corner_xy, radius+unit*(y-1)-corner_xy, unit*0.12, 0, Math.PI * 2);
ctb.fillStyle=corner_color;
ctb.fill();
ctb.stroke();
}
// 大路
function RoadBigPath(ctb,unit,start_x,x,y,type,slash,corners){
ctb.beginPath();
ctb.lineWidth = unit*0.06;
var radius=unit/2
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.arc( radius*(x-1)+start_x*unit , radius*(y-0.5) , radius*0.38, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
if(slash!=0){
ctb.beginPath();
linewidth=unit*0.15;
ctb.lineWidth = radius*0.14;//线条宽度
ctb.lineCap = "round";
ctb.strokeStyle = "#1d8701";//线条颜色
ctb.moveTo(radius*(x-1)+start_x*unit-linewidth,radius*(y-0.5)+linewidth);
ctb.lineTo(radius*(x-1)+start_x*unit+linewidth,radius*(y-0.5)-linewidth);
ctb.stroke();
if(slash!=0){
RoadFont_tie(ctb,slash,radius*(x-1)+start_x*unit, radius*(y-0.5),radius*0.6+"px Arial");
}
}
var corner_xy=radius/3.5
if(corners==1){
RoadBigPathcorner(ctb,unit,start_x,x,y,corner_xy,'#b20a00');
}else if(corners==2){
RoadBigPathcorner(ctb,unit,start_x,x,y,-corner_xy,'#0543bc');
}else if(corners==3){
RoadBigPathcorner(ctb,unit,start_x,x,y,corner_xy,'#b20a00');
RoadBigPathcorner(ctb,unit,start_x,x,y,-corner_xy,'#0543bc');
}
}
//大路角标
function RoadBigPathcorner(ctb,unit,start_x,x,y,corner_xy,corner_color){
var radius=unit/2
ctb.beginPath();
ctb.lineWidth = unit*0.025;
ctb.strokeStyle = "#fff";
ctb.arc(radius*(x-1)+start_x*unit-corner_xy, radius*(y-0.5)-corner_xy, radius*0.16, 0, Math.PI * 2);
ctb.fillStyle=corner_color;
ctb.fill();
ctb.stroke();
}
// 大路 第一局 和
function RoadBigPathTie(ctb,unit,cols,order){
var start_x=unit*cols*0.5;
var radius=unit/2
ctb.beginPath();
ctb.lineWidth = 3;//线条宽度
ctb.strokeStyle = "#3EA542";//线条颜色
ctb.lineCap = "round";
ctb.moveTo(radius*0.15+start_x,radius/2);
ctb.lineTo(radius*0.85+start_x,radius/2);
ctb.stroke();
RoadFont_tie(ctb,order,radius*0.5+start_x, radius/2,radius*0.8+"px Arial");
}
// 大眼路
function RoadBigeyePath(ctb,unit,start_x,x,y,type){
ctb.beginPath();
ctb.lineWidth = unit*0.06;
var radius=unit/4
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.arc(radius/2+radius*(x-2)+start_x*unit, unit*3.25+radius*(y-1.5), unit*0.09, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
}
//小路
function RoadLittlePath(ctb,unit,start_x,x,y,type){
ctb.beginPath();
ctb.lineWidth = 0;
var radius=unit/4
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.fillStyle=color;
ctb.arc( radius/2+radius*(x-2)+(1+0.49)*start_x*unit , unit*3.25+radius*(y-1.5) , radius*0.28, 0, Math.PI * 2);
ctb.closePath()
ctb.stroke();
ctb.fill();
}
function RoadCockrochPath(ctb,unit,start_x,x,y,type){
var radius=unit/4,
linewidth=radius*0.3;
ctb.beginPath();
ctb.lineCap = "round";
ctb.lineWidth = radius*0.3;//线条宽度
if(type==2){
var color="#0543bc";
}else if(type==1){
var color="#b20a00"
}
ctb.strokeStyle = color;
ctb.moveTo(start_x*unit+radius*(x-1.5)-linewidth,radius/2+radius*(y-1)+linewidth+4.5*unit);
ctb.lineTo(start_x*unit+radius*(x-1.5)+linewidth,radius/2+radius*(y-1)-linewidth+4.5*unit);
ctb.stroke();
}