删除 YouleNexus 内嵌 .git,统一由根仓库唯一管理。提交: - projects/ 旧 H5 模板 Game_Surface_3 与各子游戏源码 - cocoscreator_projects/YouleNexus 工程 + cocos-creator-mcp 扩展源码 - CLAUDE.md、.mcp.json 等配置 library/temp/node_modules/dist 等缓存由 .gitignore 排除。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
466 lines
10 KiB
JavaScript
466 lines
10 KiB
JavaScript
d.ob = new d.object();
|
|
//花牌判断
|
|
d.get_hua=function(spid)
|
|
{
|
|
if(Desk.stage!=0)
|
|
{
|
|
|
|
for(var i=0;i<19;i++)
|
|
{
|
|
if(get_self(936+i,37,0,0,0)==1 && get_self(936+i,43,0,0,0)>=50 && get_self(936+i,43,0,0,0)<60)
|
|
{return 1;
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
//自动出花牌
|
|
d.auto_poker_hua=function()
|
|
{
|
|
if(Desk.stage!=0)
|
|
{
|
|
|
|
for(var i=0;i<19;i++)
|
|
{
|
|
if(get_self(936+i,37,0,0,0)==1 && get_self(936+i,43,0,0,0)>=50 && get_self(936+i,43,0,0,0)<60 && d.hand[C_Player.seat][0][i]>=50)
|
|
{set_self(936+i,19,565,0,0);
|
|
d.click_chu(936+i);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//起手胡扎鸟的分数
|
|
d.show_start_hu_bird=function(host,buyHorse,winHorse,roomtype,start_hu,seat)
|
|
{var base=roomtype[8] || 0;
|
|
var base_score=[1,5,10,20,30,50,100];
|
|
base=base_score[base];
|
|
var person=roomtype[13] || 4;
|
|
var start_point=0;
|
|
var hu_s=[0,0,0,0];//4家起手胡
|
|
for(var i=0;i<4;i++)
|
|
{
|
|
for(var h=0;h<7;h++)
|
|
{var num=start_hu[i][h];
|
|
if(num>0)
|
|
{hu_s[i]=hu_s[i]+num;
|
|
}
|
|
}
|
|
}
|
|
var bird_s=[0,0,0,0];//4家中鸟
|
|
for(var k=0;k<6;k++)
|
|
{var i=host;
|
|
if(buyHorse[i][k]>0)
|
|
{var n=winHorse[i][k];
|
|
bird_s[n]+=1;
|
|
}
|
|
}
|
|
//seat胡
|
|
for(var i=0;i<person;i++)
|
|
{
|
|
if(i!=seat)
|
|
{
|
|
if(roomtype[2]==1)
|
|
{var hu_point=hu_s[seat];
|
|
if(seat==host || i==host)
|
|
{hu_point=hu_s[seat]*2;}
|
|
start_point=start_point+hu_point;
|
|
start_point=start_point+hu_point*bird_s[seat];
|
|
start_point=start_point+hu_point*bird_s[i];
|
|
}
|
|
if(roomtype[2]==2)
|
|
{var hu_point=hu_s[seat];
|
|
if(seat==host || i==host)
|
|
{hu_point=hu_s[seat]+1*base;}
|
|
start_point=start_point+hu_point;
|
|
start_point=start_point+bird_s[seat];
|
|
start_point=start_point+bird_s[i];
|
|
}
|
|
}
|
|
}
|
|
//seat输
|
|
for(var i=0;i<person;i++)
|
|
{
|
|
if(i!=seat)
|
|
{
|
|
if(roomtype[2]==1)
|
|
{var hu_point=hu_s[i];
|
|
if(seat==host || i==host)
|
|
{hu_point=hu_s[i]*2;}
|
|
start_point=start_point-hu_point;
|
|
start_point=start_point-hu_point*bird_s[seat];
|
|
start_point=start_point-hu_point*bird_s[i];
|
|
}
|
|
if(roomtype[2]==2)
|
|
{var hu_point=hu_s[i];
|
|
if(seat==host || i==host)
|
|
{hu_point=hu_s[i]+1*base;}
|
|
start_point=start_point-hu_point;
|
|
start_point=start_point-bird_s[seat];
|
|
start_point=start_point-bird_s[i];
|
|
}
|
|
}
|
|
}
|
|
return start_point*base;
|
|
}
|
|
|
|
|
|
d.c = function(marr){
|
|
if(!d.isArray(marr))
|
|
{return marr;}
|
|
var arr=[];
|
|
arr=[].concat(marr);
|
|
for(var i=0;i<marr.length;i++)
|
|
{
|
|
if(d.isArray(marr[i]))
|
|
{arr[i]=[].concat(marr[i]);
|
|
for(var i1=0;i1<marr[i].length;i1++)
|
|
{
|
|
if(d.isArray(marr[i][i1]))
|
|
{arr[i][i1]=[].concat(marr[i][i1]);
|
|
for(var i2=0;i2<marr[i][i1].length;i2++)
|
|
{
|
|
if(d.isArray(marr[i][i1][i2]))
|
|
{arr[i][i1][i2]=[].concat(marr[i][i1][i2]);
|
|
for(var i3=0;i3<marr[i][i1][i2].length;i3++)
|
|
{
|
|
if(d.isArray(marr[i][i1][i2][i3]))
|
|
{arr[i][i1][i2][i3]=[].concat(marr[i][i1][i2][i3]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return arr;
|
|
};
|
|
|
|
//同意解散
|
|
d.a.agree_disband=function()
|
|
{
|
|
return;
|
|
var n=0;
|
|
var persons=[4,4,3,2];
|
|
var person=persons[d.roomtype[6]] || 4;
|
|
for(var i=0;i<person;i++)
|
|
{
|
|
if(d.agree[i]==i)
|
|
{n+=1;}
|
|
}
|
|
var agr=d.c(d.agree);
|
|
if(n>=person-1 && d.agree[C_Player.seat]==C_Player.seat)
|
|
{var data={};
|
|
data.agentid=GameData.AgentId;
|
|
data.gameid=GameData.GameId;
|
|
data.playerid=C_Player.playerid;
|
|
data.roomcode=Desk.roomcode;
|
|
Net.Send_self_agree_free_room(data);
|
|
}
|
|
set_self(369,7,"全部同意达成解散");
|
|
//投票通过
|
|
var ban=0;
|
|
for(var i=0;i<4;i++){
|
|
if(d.agree[i]==i)
|
|
{
|
|
for(var j=0;j<3;j++)
|
|
{
|
|
if(get_self(264+j,7)=="【"+Desk.PlayerList[i].nickname+"】")
|
|
{set_self(166+j,7,"同意",0,0);
|
|
break;
|
|
}
|
|
}
|
|
if(C_Player.seat==i)
|
|
{set_self(201,37,0,0,0);
|
|
set_self(202,37,0,0,0);
|
|
}
|
|
ban=1;
|
|
}
|
|
}
|
|
}
|
|
//退出
|
|
d.a.exit=function()
|
|
{
|
|
if(C_Player.status == 1){
|
|
GameData.checkType = 2;
|
|
GameUI.OpenCheckFree("房间仍存在,是否退出?");
|
|
}else{
|
|
var data={};
|
|
data.agentid=GameData.AgentId;
|
|
data.gameid=GameData.GameId;
|
|
data.playerid=C_Player.playerid;
|
|
data.roomcode=Desk.roomcode;
|
|
Net.Send_self_exit_room(data);
|
|
setTimeout(GameUI.OpenTips,0,"你被房主拒绝",1500);
|
|
}
|
|
}
|
|
//牌中是否有癞子
|
|
d.a.have_jing=function(arrs,jing,jing_reduce,hu_note,card)
|
|
{var jing_num=0;
|
|
var jing1=jing[1];
|
|
for(var i=0;i<arrs.length;i++)
|
|
{
|
|
if(arrs[i]==jing1)
|
|
{jing_num+=1;
|
|
}
|
|
}
|
|
if(hu_note[0]==0 && card==jing1)
|
|
{jing_num+=1;}
|
|
jing_num-=jing_reduce;
|
|
return jing_num;
|
|
}
|
|
|
|
//暂无意义
|
|
d.get_free_hu=function(seat)
|
|
{
|
|
var ids=[[1240,1241,1242,1243,1244,1245,1246,1268,1269,1270,1271,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941],
|
|
[1247,1248,1249,1250,1251,1252,1253,1272,1273,1274,1275,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955],
|
|
[1254,1255,1256,1257,1258,1259,1260,1276,1277,1278,1279,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969],
|
|
[1261,1262,1263,1264,1265,1266,1267,1280,1281,1282,1283,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983]
|
|
];
|
|
var id=0;
|
|
for(var i=0;i<11;i++)
|
|
{
|
|
if(get_self(ids[seat][i],37,0,0,0)==0)
|
|
{id=ids[seat][i];
|
|
break;
|
|
}
|
|
}
|
|
return id;
|
|
}
|
|
//暂无意义
|
|
d.get_free_point=function(seat)
|
|
{
|
|
var idsym=[];
|
|
var idnum=[];
|
|
for(var j=0;j<4;j++)
|
|
{idsym[j]=[];
|
|
idnum[j]=[];
|
|
for(var i=0;i<10;i++)
|
|
{idsym[j][i]=1774+j*20+i*2;
|
|
idnum[j][i]=1775+j*20+i*2;
|
|
}
|
|
for(var i=0;i<10;i++)
|
|
{idsym[j][i+10]=1984+j*20+i*2;
|
|
idnum[j][i+10]=1985+j*20+i*2;
|
|
}
|
|
}
|
|
var id=[];
|
|
for(var i=0;i<10;i++)
|
|
{
|
|
if(get_self(idsym[seat][i],37,0,0,0)==0 && get_self(idnum[seat][i],37,0,0,0)==0)
|
|
{id[0]=idsym[seat][i];
|
|
id[1]=idnum[seat][i];
|
|
break;
|
|
}
|
|
}
|
|
return id;
|
|
}
|
|
//胡的人数
|
|
d.get_hu_num=function(seat,final_hu,many_hu)
|
|
{var hu_num=[0,0,0];
|
|
if(final_hu[0]==seat)
|
|
{
|
|
if(final_hu[1][0]>0)
|
|
{hu_num[0]+=1;}
|
|
if(final_hu[1][1]>0)
|
|
{hu_num[0]+=1;}
|
|
}
|
|
else if(many_hu[0][0]==seat)
|
|
{
|
|
if(many_hu[0][1][0]>0)
|
|
{hu_num[0]+=1;}
|
|
if(many_hu[0][1][1]>0)
|
|
{hu_num[0]+=1;}
|
|
}
|
|
else if(many_hu[1][0]==seat)
|
|
{
|
|
if(many_hu[1][1][0]>0)
|
|
{hu_num[0]+=1;}
|
|
if(many_hu[1][1][1]>0)
|
|
{hu_num[0]+=1;}
|
|
}
|
|
if(final_hu[0]>-1)
|
|
{
|
|
if(final_hu[1][0]>0)
|
|
{hu_num[1]+=1;}
|
|
if(final_hu[1][1]>0)
|
|
{hu_num[1]+=1;}
|
|
}
|
|
if(many_hu[0][0]>-1)
|
|
{
|
|
if(many_hu[0][1][0]>0)
|
|
{hu_num[1]+=1;}
|
|
if(many_hu[0][1][1]>0)
|
|
{hu_num[1]+=1;}
|
|
}
|
|
if(many_hu[1][0]>-1)
|
|
{
|
|
if(many_hu[1][1][0]>0)
|
|
{hu_num[1]+=1;}
|
|
if(many_hu[1][1][1]>0)
|
|
{hu_num[1]+=1;}
|
|
}
|
|
return hu_num;
|
|
}
|
|
//是否参与胡与输
|
|
d.get_partake=function(seat,hu_note)
|
|
{var partake=0;
|
|
if(hu_note[0]==0)
|
|
{partake=1;}
|
|
else if(hu_note[0]>0 && hu_note[0]-1==seat)
|
|
{partake=1;}
|
|
return partake;
|
|
}
|
|
//是否是包3家
|
|
d.get_bao_pai=function(seat,hu_note,roomtype,peng_chi_num)
|
|
{var base=roomtype[8] || 0;
|
|
var base_score=[1,5,10,20,30,50,100];
|
|
base=base_score[base];
|
|
//d.peng_chi_num
|
|
var bao_pai=[];
|
|
for(var i=0;i<4;i++)
|
|
{
|
|
if(i!=seat && peng_chi_num[seat][i]>=3)
|
|
{bao_pai[bao_pai.length]=i;}
|
|
}
|
|
bao_pai[0]=1;
|
|
if(hu_note[10]>-1 && bao_pai.indexof(hu_note[0]-1)==-1)
|
|
{bao_pai[bao_pai.length]=hu_note[0]-1;}//无番抢杠包
|
|
if(hu_note[0]>0 && hu_note[9]>-1 && bao_pai.indexof(hu_note[0]-1)==-1)
|
|
{bao_pai[bao_pai.length]=hu_note[0]-1;}//剩15张点炮全包
|
|
return bao_pai;
|
|
}
|
|
//多个胡家分数的显示
|
|
d.get_many_hu_point=function(final_hu,many_hu,hu_note,host,seat,roomtype)
|
|
{var base=roomtype[8] || 0;
|
|
var base_score=[1,5,10,20,30,50,100];
|
|
base=base_score[base];
|
|
var host2=d.get_host2(hu_note,host,roomtype,final_hu,many_hu,seat);//庄家翻倍
|
|
//不是流局
|
|
if(final_hu[0]>=0 && final_hu[0]<4)
|
|
{
|
|
var final_hu_point=final_hu[2].point*3;
|
|
if(hu_note[0]>0)
|
|
{
|
|
if(host2==1 && hu_note[7][final_hu[0]]>-1)//不考虑地胡
|
|
{
|
|
if(final_hu[0]!=host)
|
|
{var point2=point2 || 0;
|
|
final_hu_point=final_hu[2].point*3+final_hu[2].point;
|
|
}
|
|
else if(final_hu[0]==host)
|
|
{final_hu_point=final_hu[2].point*3*2;}
|
|
}
|
|
else
|
|
{final_hu_point=final_hu[2].point;}
|
|
if(hu_note[2]>0)//地胡
|
|
{final_hu_point=final_hu_point+20*base;}
|
|
if(host==final_hu[0] && host2==1 && hu_note[7][final_hu[0]]==-1)//考虑地胡
|
|
{final_hu_point=final_hu_point*2;}
|
|
}
|
|
}
|
|
var many_hu_point=[0,0];
|
|
if(many_hu[0][0]>=0 && many_hu[0][0]<4)
|
|
{
|
|
if(hu_note[0]>0)
|
|
{
|
|
if(host2==1 && hu_note[7][many_hu[0][0]]>-1)//不考虑地胡
|
|
{
|
|
if(many_hu[0][0]!=host)
|
|
{var point2=point2 || 0;
|
|
many_hu_point[0]=many_hu[0][2].point*3+many_hu[0][2].point;
|
|
}
|
|
else if(many_hu[0][0]==host)
|
|
{many_hu_point[0]=many_hu[0][2].point*3*2;}
|
|
}
|
|
else
|
|
{many_hu_point[0]=many_hu[0][2].point;}
|
|
if(hu_note[2]>0)//地胡
|
|
{many_hu_point[0]=many_hu_point[0]+20*base;}
|
|
if(host==many_hu[0][0] && host2==1 && hu_note[7][many_hu[0][0]]==-1)//庄家翻倍(考虑地胡)
|
|
{many_hu_point[0]=many_hu_point[0]*2;}
|
|
}
|
|
}
|
|
if(many_hu[1][0]>=0 && many_hu[1][0]<4)
|
|
{
|
|
if(hu_note[0]>0)
|
|
{
|
|
if(host2==1 && hu_note[7][many_hu[1][0]]>-1)//不考虑地胡
|
|
{
|
|
if(many_hu[1][0]!=host)
|
|
{var point2=point2 || 0;
|
|
many_hu_point[0]=many_hu[1][2].point*3+many_hu[1][2].point;
|
|
}
|
|
else if(many_hu[1][0]==host)
|
|
{many_hu_point[0]=many_hu[1][2].point*3*2;}
|
|
}
|
|
else
|
|
{many_hu_point[1]=many_hu[1][2].point;}
|
|
if(hu_note[2]>0)//地胡
|
|
{many_hu_point[1]=many_hu_point[1]+20*base;}
|
|
if(host==many_hu[1][0] && host2==1 && hu_note[7][many_hu[1][0]]==-1)//庄家翻倍(考虑地胡)
|
|
{many_hu_point[0]=many_hu_point[0]*2;}
|
|
}
|
|
}
|
|
var many_points=[0,0,0,0];
|
|
many_points[final_hu[0]]=final_hu_point;
|
|
many_points[many_hu[0][0]]=many_hu_point[0];
|
|
many_points[many_hu[1][0]]=many_hu_point[1];
|
|
if(hu_note[0]==0 && host!=final_hu[0] && host!=many_hu[0][0] && host!=many_hu[1][0] && host2==1)//庄家翻倍
|
|
{
|
|
for(var i=0;i<4;i++)
|
|
{many_points[i]=many_points[i]*2;}
|
|
}
|
|
return many_points;
|
|
}
|
|
//是否是庄家,是否翻倍
|
|
d.get_host2=function(hu_note,host,roomtype,final_hu,many_hu,seat)
|
|
{var r=0;
|
|
if(roomtype[7] && roomtype[7]==2)//庄家翻倍
|
|
{
|
|
if(hu_note[0]==0)
|
|
{r=1;}
|
|
else if(hu_note[0]>0)
|
|
{
|
|
if(host==hu_note[0]-1)
|
|
{
|
|
if(seat==hu_note[0]-1 || seat==final_hu[0] || seat==many_hu[0][0] || seat==many_hu[1][0])
|
|
{r=1;}
|
|
}
|
|
else if(host==final_hu[0])
|
|
{
|
|
if(seat==hu_note[0]-1 || seat==final_hu[0])
|
|
{r=1;}
|
|
}
|
|
else if(host==many_hu[0][0])
|
|
{
|
|
if(seat==hu_note[0]-1 || seat==many_hu[0][0])
|
|
{r=1;}
|
|
}
|
|
else if(host==many_hu[1][0])
|
|
{
|
|
if(seat==hu_note[0]-1 || seat==many_hu[1][0])
|
|
{r=1;}
|
|
}
|
|
}
|
|
}
|
|
return r;
|
|
}
|
|
d.a.get_last_Storage=function(){
|
|
var last_Storage=0;
|
|
if(window.localStorage) {
|
|
last_Storage= 1024 * 1024 * 5 - unescape(encodeURIComponent(JSON.stringify(localStorage))).length;
|
|
}
|
|
return last_Storage;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|