Files
2026-02-04 23:47:45 +08:00

823 lines
17 KiB
JavaScript

var compare = function (a, b) {//比较大小
var x=0;
var y=0;
if (a>=54) {
a=a-54;
}
if (b>=54) {
b=b-54;
}
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
x = pai[a];
y = pai[b];
if (x < y) {//1
if(x==1){
if (y==2) {
return 1;
}
else if (y>13) {
return 1;
}
else{
return -1;
}
}
else if (x==2) {
if (y>13) {
return 1;
}
else{
return -1;
}
}
else {
return 1;
}
}
else if (x > y) {//-1
if(y==1){
if (x==2) {
return -1;
}
else if (x>13) {
return -1;
}
else{
return 1;
}
}
else if (y==2) {
if (x>13) {
return -1;
}
else{
return 1;
}
}
else {
return -1;
}
}
else {//如相等 黑色花色在前
if (a>b) {
if (a+26>=52&&a+13<52) {//如果 a是红心
if (a-26==b) {//如果b 是方块
return -1;
}
else{
return 1;
}
}else{
return -1;
}
}
else if(a<b){
if (b+26>=52&&b+13<52) {
if (b-26==a) {
return 1;
}
else{
return -1;
}
}else{
return 1;
}
}else{
return 0;
}
}
} //左 上 右 打出来的牌 打出去多少牌
var putcard = function (a, b, c , pai , shengpai , sheng) {//摆牌
//if(pai[Utl.getMySeat()].length == 0){
//set_self(1109,37,0,0,0);
//}
for(var i =0;i<4;i++){
//如果我上轮之前就打完了
if(zhaopengyou_bianliang.pub.shengli[i] == Utl.getMySeat()){
if (pai[Utl.getMySeat()].length ==0) {
for (var i = 0;i<27;i++) {
set_self(i+1001,37,0,0,0);
}
}
}
}
//左
for (var i = 0;i<27;i++) {
set_self(i+1082,37,0,0,0);
}
set_self(1188,7,shengpai[a]);
if(shengpai[a]<=5&&shengpai[a]>0){
set_self(1188,37,1,0,0);
set_self(1215,37,1,0,0);
}else{
set_self(1188,37,0,0,0);
set_self(1215,37,0,0,0);
}
//中
for (var i = 0;i<27;i++) {
set_self(i+1055,37,0,0,0);
}
set_self(1187,7,shengpai[b]);
if(shengpai[b]<=5&&shengpai[b]>0){
set_self(1187,37,1,0,0);
set_self(1214,37,1,0,0);
}else{
set_self(1187,37,0,0,0);
set_self(1214,37,0,0,0);
}
//右
for (var i = 0;i<27;i++) {
set_self(i+1028,37,0,0,0);
}
set_self(1186,7,shengpai[c]);
if(shengpai[c]<=5&&shengpai[c]>0){
set_self(1186,37,1,0,0);
set_self(1192,37,1,0,0);
}else{
set_self(1186,37,0,0,0);
set_self(1192,37,0,0,0);
}
if (pai[a].length == 0) {//左边
//轮到出牌
for (var i =0 ; i<27; i++) {
set_self(i+1082,37,0,0,0);
}
set_self(1122,37,0,0,0);
}else if(pai[a][0] == -2){//不要
set_self(1122,37,1,0,0);
}
if(shengpai[a] == 0){//已经打完
set_self(1215,37,0,0,0);
set_self(1188,37,0,0,0);
if (sheng[0]==a) {
set_self(1137,37,1,0,0);
set_self(1137,18,25,0,0);
set_self(1137,19,190,0,0);
}if (sheng[1]==a) {
set_self(1138,37,1,0,0);
set_self(1138,18,25,0,0);
set_self(1138,19,190,0,0);
}
if (shengpai[a]==0) {//不是刚打完
for (var i = 0; i<27; i++) {
set_self(i+1082,37,0,0,0);
}
}
}
if(pai[a][0] >= 0){
for (var i = 0; i<pai[a].length; i++) {
set_self(1082,19,256,0,0);
set_self(i+1082,19,256,0,0);
set_self(1082,18,135,0,0);
set_self(i+1082,18,get_self(1082,18,0,0,0)+22*i,0,0);
set_self(i+1082,43,pai[a][i]%54+1,0,0);
set_self(i+1082,37,1,0,0);
if (i>=9&&i<18) {
set_self(1082+i,19,302,0,0);
set_self(1091,18,135,0,0);
set_self(i+1082,18,get_self(1091,18,0,0,0)+22*(i-9),0,0);
set_self(i+1082,43,pai[a][i]%54+1,0,0);
}
else if (i>=18) {
set_self(1082+i,19,346,0,0);
set_self(1100,18,135,0,0);
set_self(i+1082,18,get_self(1100,18,0,0,0)+22*(i-18),0,0);
set_self(i+1082,43,pai[a][i]%54+1,0,0);
}
}
}
if (pai[b].length == 0) {//上面
for (var i = 0; i<27; i++) {
set_self(i+1055,37,0,0,0);
}
set_self(1121,37,0,0,0);
} else if(pai[b][0] == -2){
set_self(1121,37,1,0,0);
}
if(shengpai[b] == 0){
set_self(1184,37,0,0,0);
set_self(1187,37,0,0,0);
set_self(1214,37,0,0,0);
if (sheng[0]==b) {
set_self(1137,37,1,0,0);
set_self(1137,18,755,0,0);
set_self(1137,19,20,0,0);
}if (sheng[1]==b) {
set_self(1138,37,1,0,0);
set_self(1138,18,755,0,0);
set_self(1138,19,20,0,0);
}
if (pai[b].length==1) {
for (var i = 0; i<27; i++) {
set_self(i+1055,37,0,0,0);
}
}
}
if(pai[b][0] >= 0){
for (var i = 0; i<pai[b].length; i++) {
if (pai[b].length<=9) {
set_self(1055,18,685-22*(pai[b].length-1),0,0);
}else{
set_self(1055,18,685-22*8,0,0);
}
set_self(1055,19,75+55,0,0);
set_self(i+1055,19,75+55,0,0);
set_self(i+1055,18,get_self(1055,18,0,0,0)+22*i,0,0);
set_self(i+1055,43,pai[b][i]%54+1,0,0);
set_self(i+1055,37,1,0,0);
if (i>=9&&i<18) {
if (pai[b].length<=18) {
set_self(1064,18,685-22*(pai[b].length-9-1),0,0);
}else{
set_self(1064,18,685-22*8,0,0);
}
set_self(1055+i,19,119+55,0,0);
set_self(i+1055,18,get_self(1064,18,0,0,0)+22*(i-9),0,0);
set_self(i+1055,43,pai[b][i]%54+1,0,0);
}
else if (i>=18) {
set_self(1073,18,685-22*(pai[b].length-18-1),0,0);
set_self(1055+i,19,163+55,0,0);
set_self(i+1055,18,get_self(1073,18,0,0,0)+22*(i-18),0,0);
set_self(i+1055,43,pai[b][i]%54+1,0,0);
}
}
}
if (pai[c].length == 0){//右边
for (var i = 0; i<27; i++) {
set_self(i+1028,37,0,0,0);
}
set_self(1120,37,0,0,0);
}else if(pai[c][0] == -2){
set_self(1120,37,1,0,0);
}
if(shengpai[c] == 0){
set_self(1183,37,0,0,0);
set_self(1186,37,0,0,0);
set_self(1192,37,0,0,0);
if (sheng[0]==c) {
set_self(1137,37,1,0,0);
set_self(1137,18,1170,0,0);
set_self(1137,19,190,0,0);
}if (sheng[1]==c) {
set_self(1138,37,1,0,0);
set_self(1138,18,1170,0,0);
set_self(1138,19,190,0,0);
}
if (pai[c].length==1) {
for (var i = 0; i<27; i++) {
set_self(i+1028,37,0,0,0);
}
}
}
if(pai[c][0] >= 0){
for (var i = 0; i<pai[c].length; i++) {
set_self(i+1028,37,1,0,0);
set_self(i+1028,19,256,0,0);
if (pai[c].length<=9) {
set_self(1028,18,1099-22*(pai[c].length-1),0,0);
}else{
set_self(1028,18,1099-22*8,0,0);
}
set_self(i+1028,18,get_self(1028,18,0,0,0)+22*i,0,0);
set_self(i+1028,43,pai[c][i]%54+1,0,0);
if (i>=9&&i<18) {
if (pai[c].length<=18) {
set_self(1037,18,1099-22*(pai[c].length-9-1),0,0);
}else{
set_self(1037,18,1099-22*8,0,0);
}
set_self(i+1028,19,302,0,0);
set_self(i+1028,18,get_self(1037,18,0,0,0)+22*(i-9),0,0);
set_self(i+1028,43,pai[c][i]%54+1,0,0);
}
if (i>=18) {
set_self(1046,18,1099-22*(pai[c].length-18-1),0,0);
set_self(i+1028,19,346,0,0);
set_self(i+1028,18,get_self(1046,18,0,0,0)+22*(i-18),0,0);
set_self(i+1028,43,pai[c][i]%54+1,0,0);
}
}
}
}
var zijipai = function (d,pai,sheng,zijip,shengpai) {
//打出去的摆拍
if (pai.length == 0){//自己
for (var i = 0; i<27; i++) {
if (get_self(i+1001,19,0,0,0)==370) {
set_self(i+1001,37,0,0,0);
}
}
set_self(1109,37,0,0,0);
}else if(pai[0] == -2){
for (var i = 0; i<27; i++) {
if (get_self(i+1001,19,0,0,0)==370) {
set_self(i+1001,37,0,0,0);
}
}
set_self(1109,37,1,0,0);
var bj =0;
for (var i =0;i<4;i++) {
if(zhaopengyou_bianliang.pub.dq_dapai[i]<0){
bj = bj+1;
}
}
if (bj==4) {
set_self(1109,37,0,0,0);
}
}
if(shengpai[d] == 0){
if (sheng[0]==d) {
set_self(1137,37,1,0,0);
set_self(1137,18,25,0,0);
set_self(1137,19,481,0,0);
}if (sheng[1]==d) {
set_self(1138,37,1,0,0);
set_self(1138,18,25,0,0);
set_self(1138,19,481,0,0);
}
if (pai.length==0) {
for (var i = 0; i<27; i++) {
set_self(i+1001,37,0,0,0);
}
}
}
for (var i = 0; i<27; i++) {
set_self(i+1001,37,0,0,0);
}
if(pai.length>0 && pai[0]!=-2){
for (var i = 0; i<pai.length; i++) {
set_self(i+1028-(pai.length+zijip.length),37,1,0,0);
set_self(i+1028-(pai.length+zijip.length),20,50,0,0);
set_self(i+1028-(pai.length+zijip.length),21,70,0,0);
set_self(i+1028-(pai.length+zijip.length),19,370,0,0);
set_self(1028-(pai.length+zijip.length),18,630-22*pai.length/2,0,0);
set_self(i+1028-(pai.length+zijip.length),18,get_self(1028-(pai.length+zijip.length),18,0,0,0)+22*i,0,0);
set_self(i+1028-(pai.length+zijip.length),43,pai[i]%54+1,0,0);
}
}
//手上的摆拍
for(var i = 0;i<27;i++){
if (get_self(1001+i,19,0,0,0)>=myCardPositionY2[0]) {
set_self(1001+i,37,0,0,0);
}
}
if (banben ==0) {
//if (zijip.length<=20) {
//for (var i = 0; i < zijip.length; i++) {
//set_self(1028-zijip.length+i,37,1,0,0);
//set_self(1028-zijip.length+i,19,584,0,0);
//set_self(1028-zijip.length,18,638-49*zijip.length/2,0,0);
//set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+49*i,0,0);
//}
//}
//if (zijip.length>20) {
//for (var i = 0; i < zijip.length-20; i++) {
//set_self(1028-zijip.length+i,37,1,0,0);
//set_self(1028-zijip.length+i,19,503,0,0);
//set_self(1028-zijip.length,18,1079-49*(zijip.length-20-1),0,0);
//set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+49*i,0,0);
//}
//for (var i = zijip.length-20; i < zijip.length; i++) {
//set_self(1028-zijip.length+i,37,1,0,0);
//set_self(1028-zijip.length+i,19,584,0,0);
//set_self(1008,18,148,0,0);
//set_self(1028-zijip.length+i,18,get_self(1008,18,0,0,0)+49*(i-(zijip.length-20)),0,0);
//}
//}
updateMyHandCards2(zijip);
} else if (banben ==1) {
for (var i = 0; i < zijip.length; i++) {
set_self(1028-zijip.length+i,37,1,0,0);
set_self(1028-zijip.length+i,19,565,0,0);
set_self(1028-zijip.length,18,623-36*zijip.length/2,0,0);
set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+36*i,0,0);
}
}
for(var i=0;i<27-zijip.length;i++){
set_self(1001+i,19,370,0,0);
}
againsort(sort_ow);
}
var oper = function (a,pai) {//操作权
set_group(202,37,1,0,0);//set_level(102,1);
set_self(1145,37,0,0,0);
set_self(1182,37,0,0,0);
set_self(1191,37,0,0,0);
for (var i = 0; i<27; i++) {
if (get_self(i+1001,19,0,0,0)==370) {
set_self(i+1001,37,0,0,0);
}
}
set_self(1109,37,0,0,0);
set_self(1152,18,819,0,0);
set_self(1152,41,0,0,0);
set_self(1152,35,100,0,0);
switch (a){
case 0:
if (pai[1]<-1||pai[1].length==0) {
if (pai[2]<-1||pai[2].length==0) {
if (pai[3]<-1||pai[3].length==0) {
set_self(1153,37,0,0,0);
set_self(1392,37,0,0,0);
set_self(1120,37,0,0,0);
set_self(1121,37,0,0,0);
set_self(1122,37,0,0,0);
set_self(1152,18,570,0,0);
zhaopengyou_bianliang.pub.zuidapai =[];
break;
}
}
}
set_self(1153,37,1,0,0);
set_self(1392,37,1,0,0);
break;
case 1:
if (pai[0]<-1||pai[0].length==0) {
if (pai[2]<-1||pai[2].length==0) {
if (pai[3]<-1||pai[3].length==0) {
set_self(1153,37,0,0,0);
set_self(1392,37,0,0,0);
set_self(1120,37,0,0,0);
set_self(1121,37,0,0,0);
set_self(1122,37,0,0,0);
set_self(1152,18,570,0,0);
zhaopengyou_bianliang.pub.zuidapai =[];
break;
}
}
}
set_self(1153,37,1,0,0);
set_self(1392,37,1,0,0);
break;
case 2:
if (pai[1]<-1||pai[1].length==0) {
if (pai[0]<-1||pai[0].length==0) {
if (pai[3]<-1||pai[3].length==0) {
set_self(1153,37,0,0,0);
set_self(1392,37,0,0,0);
set_self(1120,37,0,0,0);
set_self(1121,37,0,0,0);
set_self(1122,37,0,0,0);
set_self(1152,18,570,0,0);
zhaopengyou_bianliang.pub.zuidapai =[];
break;
}
}
}set_self(1153,37,1,0,0);
set_self(1392,37,1,0,0);
break;
case 3:
if (pai[1]<-1||pai[1].length==0) {
if (pai[2]<-1||pai[2].length==0) {
if (pai[0]<-1||pai[0].length==0) {
set_self(1153,37,0,0,0);
set_self(1392,37,0,0,0);
set_self(1120,37,0,0,0);
set_self(1121,37,0,0,0);
set_self(1122,37,0,0,0);
set_self(1152,18,570,0,0);
zhaopengyou_bianliang.pub.zuidapai =[];
break;
}
}
}set_self(1153,37,1,0,0);
set_self(1392,37,1,0,0);
break;
default:
break;
}
for (var i =0;i<27;i++) {
// if (get_self(i+1001,19,0,0,0)==550||get_self(i+1001,19,0,0,0)==469||get_self(i+1001,19,0,0,0)==531) {
if (get_self(i+1001,19,0,0,0)==myCardPositionY1[0]||get_self(i+1001,19,0,0,0)==myCardPositionY2[0]||get_self(i+1001,19,0,0,0)==531) {
set_self(1152,41,1,0,0);
set_self(1152,35,255,0,0);
break;
}else{
set_self(1152,41,0,0,0);
set_self(1152,35,100,0,0);
}
}
if (banben==1) {
set_self(1393,37,0,0,0);
}else{
if (zhaopengyou_bianliang.pub.tishipai.length==0&&get_self(1153,37,0,0,0)==1) {
set_self(1393,37,1,0,0);
}else{
set_self(1393,37,0,0,0);
}
}
}
//本局总打出的牌,本局自己全部牌,自己 ,打完的人,要显示的牌, 自己的要显示牌
var chonglian = function(cl_dapai,zijip,seat,shengl,xianshipai){//重连
//排位子
zijip.sort(compare);
for (var i=0;i<27;i++) {
if (zijip[i]>=54) {
zijip[i]=zijip[i]-54;
}
}
//自己 要显示的牌 打完的人 自己的要显示牌
zijipai(seat,xianshipai[seat],zhaopengyou_bianliang.pub.shengli,zijip);
}
//var chonglianzhuang = function(zhuang,seat){//庄的位置
//set_self(1146,20,40,0,0);
//set_self(1146,21,40,0,0);
//set_self(1146,37,1,0,0);
//switch (zhuang){
//case 0:
//switch (seat){
//case 0 :
//set_self(1146,18,34,0,0);
//set_self(1146,19,533-40,0,0);
//break;
//case 1 :
//set_self(1146,18,140,0,0);
//set_self(1146,19,200,0,0);
//break;
//case 2 :
//set_self(1146,18,730-40,0,0);
//set_self(1146,19,40,0,0);
//break;
//case 3 :
//set_self(1146,18,1145-40,0,0);
//set_self(1146,19,200,0,0);
//break;
//default:
//break;
//}
//break;
//case 1:
//switch (seat){
//case 1 :
//set_self(1146,18,34,0,0);
//set_self(1146,19,533-40,0,0);
//break;
//case 2 :
//set_self(1146,18,140,0,0);
//set_self(1146,19,200,0,0);
//break;
//case 3 :
//set_self(1146,18,730-40,0,0);
//set_self(1146,19,40,0,0);
//break;
//case 0 :
//set_self(1146,18,1145-40,0,0);
//set_self(1146,19,200,0,0);
//break;
//default:
//break;
//}
//break;
//case 2:
//switch (seat){
//case 2 :
//set_self(1146,18,34,0,0);
//set_self(1146,19,533-40,0,0);
//break;
//case 1 :
//set_self(1146,18,140,0,0);
//set_self(1146,19,200,0,0);
//break;
//case 0 :
//set_self(1146,18,730-40,0,0);
//set_self(1146,19,40,0,0);
//break;
//case 3 :
//set_self(1146,18,1145-40,0,0);
//set_self(1146,19,200,0,0);
//break;
//default:
//break;
//}
//break;
//case 3:
//switch (seat){
//case 3 :
//set_self(1146,18,34,0,0);
//set_self(1146,19,533-40,0,0);
//break;
//case 2 :
//set_self(1146,18,140,0,0);
//set_self(1146,19,200,0,0);
//break;
//case 1 :
//set_self(1146,18,730-40,0,0);
//set_self(1146,19,40,0,0);
//break;
//case 0 :
//set_self(1146,18,1145-40,0,0);
//set_self(1146,19,200,0,0);
//break;
//default:
//break;
//}
//break;
//default:
//break;
//}
//}
//自己 要显示的牌 打完的人 本局自己全部牌 本局总打出的牌 自己的要显示牌
var chonglianziji = function(d,dq_pai,shengl,zijip,cl_dapai,xianshipai){//庄的位置
//打出去的摆拍
if (dq_pai[0]==-1){//自己
for (var i = 0; i<27; i++) {
if (get_self(i+1001,19,0,0,0)<350) {
set_self(i+1001,37,0,0,0);
}
}
set_self(1109,37,0,0,0);
oper(Utl.getMySeat(),xianshipai);
for (var i = 0; i<27-zijip.length; i++) {
set_self(1001+i,37,0,0,0);
}
}else if(dq_pai[0] == -2){
set_self(1109,37,1,0,0);
}else if(dq_pai[0] == -3){
if (shengl[0]==d) {
set_self(1137,37,1,0,0);
set_self(1137,18,550,0,0);
set_self(1137,19,500,0,0);
}if (shengl[1]==d) {
set_self(1138,37,1,0,0);
set_self(1138,18,550,0,0);
set_self(1138,19,500,0,0);
}
if (dq_pai.length==1) {
for (var i = 0; i<27; i++) {
set_self(i+1001,37,0,0,0);
}
}else{
updateMyPutCards(dq_pai);
}
}else{
updateMyPutCards(dq_pai);
}
//手上的摆拍
if (d==Utl.getMySeat()) {
var shengpaishu = [];
var changdu = 27-cl_dapai[Utl.getMySeat()].length;
//隐藏之前打过的牌
for (var i = dq_pai.length; i < 27-changdu; i++) {
set_self(1001+i,19,myPutCardY,0,0);
set_self(1001+i,37,0,0,0);
}
//剩下牌少于20张
if (changdu<=20) {
for (var i = 0; i < changdu; i++) {
set_self(1028-changdu,18,638-49*changdu/2,0,0);
set_self(1028-changdu+i,18,get_self(1028-changdu,18,0,0,0)+49*i,0,0);
set_self(1028-changdu+i,19,584,0,0);
}
}
//剩下牌大于20张
if (changdu>20) {
for (var i = 0; i < changdu-20; i++) {
set_self(1028-changdu,18,1079-49*(changdu-20-1),0,0);
set_self(1028-changdu+i,18,get_self(1028-changdu,18,0,0,0)+49*i,0,0);
set_self(1028-changdu+i,19,503,0,0);
}
for (var i = changdu-20; i < changdu; i++) {
set_self(1028-(changdu-(changdu-20)),18,148,0,0);
set_self(1028-changdu+i,18,get_self(1028-(changdu-(changdu-20)),18,0,0,0)+49*(i-(changdu-20)),0,0);
set_self(1028-changdu+i,19,584,0,0);
}
}
}
}
function set_draw (num,id,weizhi,len) {
set_self(id,18,weizhi - (ifast_inttostr(num).length - 1)*len/2,0,0);
set_self(id,20,len*ifast_inttostr(num).length,0,0);
set_self(id,7,num);
};