Files
youle_cocos/projects/majiang_jx/js/export/func_other.js
T
joywayerandClaude Opus 4.8 7ab748919a chore: 纳入项目全部源码进根仓库统一管理
删除 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>
2026-06-28 11:55:13 +08:00

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;
}