目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View File

@@ -0,0 +1,584 @@
//出牌点击
d.click_chu = function (spid_up) {
if (Desk.stage == 0 || !RoomFunc.clickpai_before(spid_up)) {
return;
}
else if (get_self(spid_up, 19, 0, 0, 0) > 585) {
play_ani123(0, spid_up, 19);
d.show_my13card();
d.show_14card();
set_self(spid_up, 19, 585, 0, 0);
d.chu_cilck = 0;
d.chu_move = 0;
}
else if (get_self(spid_up, 19, 0, 0, 0) == 585 || get_self(spid_up, 19) < 585 && get_self(spid_up, 19) >= (585 - get_self(spid_up, 21) + 40) && d.chu_move == 1) {
play_ani123(0, spid_up, 19);
d.show_my13card();
d.show_14card();
d.chu_cilck = spid_up;
d.chu_move = 0;
d.last_id=spid_up;
if(d.Ting_Tip.length && d.Ting_Tip.length>=0 || d.Ting_ui.length && d.Ting_ui.length>=0 && d.user_ctrl[2]==C_Player.seat && get_self(2489,37)==1){
set_self(2489,37,0,0,0);
set_self(2392,37,0,0,0);
d.ting_statu=-1;
}
if(d.Ting_Tip.length<=0 || d.Ting_ui.length<=0 && d.user_ctrl[2]==C_Player.seat){
d.ting_statu=0;
}
d.zhenshu = get_self(spid_up,43,0,0,0);
for (var i = 0; i < 19; i++) {
if (get_self(936 + i, 21, 0, 0, 0) > 120) {
set_self(936 + i, 19, 585, 0, 0);
}
}
if (d.clicks_an > 50 || !RoomFunc.Overtime_chupai()) {
var l = d.Ting_Tip.length;
if (l > 0) {
var pos = d.Ting_Tip.indexOf(get_self(spid_up, 43));
if (pos>-1) {
d.tips_tp = d.ting_pai.tip_ting[pos];
if (d.tips_tp.length > 0) {
d.show_hu_card(d.tips_tp);
}
}
else {
set_group(237, 37, 0, 0, 0);
}
}
} else {
set_group(237, 37, 0, 0, 0);
}
set_self(spid_up, 19, 565, 0, 0);
for (var i = 0; i < 14; i++) {
play_ani123(0, 1143 + i, 19);
}
set_group(212, 37, 0, 0, 0);
Utl.playSound("00" + 170 + ".mp3");
d.click_id = spid_up;
}
else if (d.chu_cilck == spid_up && get_self(spid_up, 19, 0, 0, 0) <= 565 || d.chu_cilck == 0 && get_self(spid_up, 19, 0, 0, 0) <= (585 - get_self(spid_up, 21) + 40))
{d.click_chu_down(spid_up, spid_up);}
}
//滑动出牌
d.move_chu = function (spid, offmovey, offmovex) {
if (offmovey == 0 && offmovex == 0 || Desk.stage == 0 || d.replay || !RoomFunc.clickpai_before(spid)) {
return;
}
if(d.final_hu[0]>-1 && d.continue_hu==0)
{return;}
if(RoomFunc.Overtime_chupai()&&d.last_id!=spid)
{return;}
if (d.status == 2 && spid >= 936 && spid <= 954 && get_self(spid, 44, 0, 0, 0) == 201 && get_self(spid, 21, 0, 0, 0) > 120 && d.user_ctrl[2] == C_Player.seat && d.click_ban == 1 && d.gang_option == 0 && d.final_hu[0] == -1) {
var y = get_self(spid, 19, 0, 0, 0);// && Math.abs(offmovey)>10
if (offmovey < 0 && y + offmovey >= 370 || offmovey > 0 && y + offmovey <= 585 + 70) {
set_self(spid, 19, offmovey, 1, 0);
//set_self(spid, 18, offmovex, 1, 0);
}
d.chu_cilck = 0;
d.chu_move = 1;
if (offmovey < 0 && Math.abs(offmovey) >= 20) {
play_ani123(0, spid, 19);
for (var i = 0; i < 19; i++) {
if (get_self(936 + i, 21, 0, 0, 0) > 120 && 936 + i != spid) {
set_self(936 + i, 19, 585, 0, 0);
}
}
}
}
}
//出牌成功
d.click_chu_down = function (spid_up, spid1) {
if (Desk.stage == 0 || !RoomFunc.clickpai_before(spid_up)) {
return;
}
if(d.final_hu[0]>-1 && d.continue_hu==0)
{return;}
if(d.last_id>0 && spid1==d.last_id)
{spid_up=spid1;d.last_id=0;}
if (d.status == 2 && d.user_ctrl[2] == C_Player.seat && d.click_ban == 1 && spid_up >= 936 && spid_up <= 954 && get_self(spid_up, 21, 0, 0, 0) > 120 && d.gang_option == 0 && d.final_hu[0] == -1) {
d.chu_cilck = 0;
d.chu_move = 0;
d.zhenshu=0;
if(d.Ting_Tip.length && d.Ting_Tip.length>=0 || d.Ting_ui.length && d.Ting_ui.length>=0 && d.user_ctrl[2]==C_Player.seat && get_self(2489,37)==1){
set_self(2489,37,0,0,0);
set_self(2392,37,0,0,0);
//set_self(2489,18,-200,0,0);
d.ting_statu=-1;
}
if(d.Ting_Tip.length<=0 || d.Ting_ui.length<=0 && d.user_ctrl[2]==C_Player.seat){
d.ting_statu=0;
}
if (get_self(spid_up, 19, 0, 0, 0) <= 565) {
set_group(206, 37, 0, 0, 0);
console.log(spid_up + "chu" + get_self(spid_up, 43, 0, 0, 0));
for (var i = 0; i < 14; i++) {
play_ani123(0, 1143 + i, 19);
}
play_ani123(0, spid_up, 18);
play_ani123(0, spid_up, 19);
set_group(212, 37, 0, 0, 0);
var put_pos = 0;
var n = 0;
for (var i = 0; i < 19; i++) {
if (get_self(936 + i, 21, 0, 0, 0) > 120 && get_self(936 + i, 37, 0, 0, 0) == 1) {
if (936 + i == spid_up) {
put_pos = n;
set_self(spid_up, 37, 0, 0, 0);
set_self(spid_up, 19, 585, 0, 0);
break;
}
n += 1;
}
}
var sex = C_Player.sex || 1;
var hand = d.a.arrange_pai(d.hand[C_Player.seat][0]);
var throw_card = 0;
var f = 0;
if (put_pos == hand.length && d.user_ctrl[3] > 0) {
throw_card = d.user_ctrl[3];
}
else {
throw_card = hand[put_pos];
if (d.user_ctrl[3] > 0) {
hand = hand.concat(d.user_ctrl[3]);
}
hand.splice(put_pos, 1);
d.hand[C_Player.seat][0] = d.c(hand);
d.ord(d.hand[C_Player.seat][0]);
}
f = throw_card;
/*
if (f > 0) {
d.sea[C_Player.seat][d.sea[C_Player.seat].length] = throw_card;
//d.show_sea();
var sid = 60 + (sex - 1) * 60 + f;
var tou = "00";
if (String(sid).length == 2) {
tou = "000";
}
else if (String(sid).length == 3) {
tou = "00";
}
if (sid) {
Utl.playSound(tou + sid + ".mp3");
}
}*/
if (d.replay == 0) {
var send = {
"app": "youle",
"route": d.route,
"rpc": "put",
"data": {
"agentid": GameData.AgentId,
"gameid": GameData.GameId,
"playerid": C_Player.playerid,
"roomcode": Desk.roomcode,
"seat": C_Player.seat,
"put_pos": put_pos
}
};
Net.ws_tcp.send(JSON.stringify(send));
}
//Utl.playSound("00306.mp3");
d.click_ban = 0;
d.user_ctrl[2] = -1;
//set_self(1289, 37, 0, 0, 0);
//set_self(1289, 7, -1);
for (var i = 0; i < 4; i++) {
d.act_put[2 + i] = 0;
}
d.act_put[2] = spid_up;
d.act[0] = 1;
d.act[1] = C_Player.seat;
d.act[2] = 1;
d.baoting[4] = [];
d.click_id = 0;
d.show_my13card(); //d.show_put_card_act(1);
//d.show_putcard();
set_self(2673, 37, 0, 0, 0);//等一等
set_group(237, 37, 0, 0, 0);
for (var i = 0; i < 4; i++) {
set_self(376 + i, 35, 255, 0, 0);
}
d.Ting_ui = d.hu_Judge(d.hand[C_Player.seat], d.jing);
d.Ting_Tip = [];
d.clicks_an = 0;
}
else if (get_self(spid_up, 19, 0, 0, 0) < 585) {
d.show_my13card();
d.show_14card();
set_self(spid_up, 19, 565, 0, 0);
d.chu_cilck = spid_up;
d.clicks_an = 0;
}
else if (get_self(spid_up, 19, 0, 0, 0) >= 585) {
d.show_my13card();
d.show_14card();
set_self(spid_up, 19, 585, 0, 0);
d.clicks_an = 0;
}
}
}
d.show_putcard = function () {
if (Desk.stage != 0 && d.recon != 1 && d.backstage != 1 && d.act[0] == 1)
{
if (Desk.roomtype[19]) {
return ;
}
var seat = d.act[1];
var z_b = [[550,365],[934,211],[550,60],[200,214]];
var throw_card_spid = 2916;
var persons = [4, 4, 3, 2];
var person = persons[Desk.roomtype[6]] || 4;
if (person == 2) {
z_b = [[550,365],[550,60],[550,60],[550,60]];
}
if(C_Player.seat!=seat){
AM.cls_id(throw_card_spid);
AM.add(throw_card_spid).wait(15, function () {
set_self(throw_card_spid, 37, 0, 0, 0);
set_self(throw_card_spid - 1, 37, 0, 0, 0);
d.show_sea();
//Utl.playSound("00306.mp3");
AM.cls_id(throw_card_spid);
Utl.playSound("00305.mp3");
}).start();
}else{
d.show_sea();
AM.cls_id(throw_card_spid);
AM.add(throw_card_spid).wait(3,function(){
Utl.playSound("00305.mp3");
AM.cls_id(throw_card_spid);
}).start();
}
if(C_Player.seat!=seat){
set_self(throw_card_spid,37,1,0,0);
}
set_self(throw_card_spid, 18, z_b[d.pos[seat]][0]+29, 0, 0);
set_self(throw_card_spid, 19, z_b[d.pos[seat]][1]+28, 0, 0);
set_self(throw_card_spid, 43, d.act[3][0], 0, 0);
}
}
//显示出牌动画
d.show_put_card_act = function (off) {
if (Desk.stage != 0 && d.recon != 1 && d.backstage != 1 && d.act[0] == 1 && d.act[2] > 0)
////牌桌阶段 0->未开局 1->已开局
{
d.rep[0] += 1;
var seat = d.act[1];
var freexy = d.get_sea_freexy(seat, off);
var throw_card_spid = freexy[2];
if (seat == C_Player.seat) {
set_self(throw_card_spid, 18, get_self(d.act_put[2], 18, 0, 0, 0), 0, 0);
set_self(throw_card_spid, 19, get_self(d.act_put[2], 19, 0, 0, 0), 0, 0);
set_self(throw_card_spid, 43, get_self(d.act_put[2], 43, 0, 0, 0), 0, 0);
}
else {
var throw_card_spid0 = d.get_rand_3handcard(seat)[0];
set_self(throw_card_spid, 18, get_self(throw_card_spid0, 18, 0, 0, 0), 0, 0);
set_self(throw_card_spid, 19, get_self(throw_card_spid0, 19, 0, 0, 0), 0, 0);
set_self(throw_card_spid, 43, d.throw_card, 0, 0);
}
d.act_put[2] = throw_card_spid;
set_self(throw_card_spid, 37, 1, 0, 0);
var light_pai_rec = [503, 500, 503, 501];
var rec_w = [41, 44, 41, 44];
var rec_h = [55, 44, 55, 44];
set_self(throw_card_spid, 1, light_pai_rec[d.pos[seat]], 0, 0);
set_self(throw_card_spid, 20, rec_w[d.pos[seat]], 0, 0);
set_self(throw_card_spid, 21, rec_h[d.pos[seat]], 0, 0);
if (freexy[5]) {
var throw_card_spid1 = freexy[5];
if (seat == C_Player.seat) {
set_self(throw_card_spid1, 18, get_self(d.act_put[5], 18, 0, 0, 0), 0, 0);
set_self(throw_card_spid1, 19, get_self(d.act_put[5], 19, 0, 0, 0), 0, 0);
set_self(throw_card_spid1, 43, get_self(d.act_put[5], 43, 0, 0, 0), 0, 0);
}
else {
var throw_card_spid0 = d.get_rand_3handcard(seat)[0];
set_self(throw_card_spid1, 18, get_self(throw_card_spid0, 18, 0, 0, 0), 0, 0);
set_self(throw_card_spid1, 19, get_self(throw_card_spid0, 19, 0, 0, 0), 0, 0);
set_self(throw_card_spid1, 43, d.throw_card, 0, 0);
}
d.act_put[5] = throw_card_spid1;
set_self(throw_card_spid1, 37, 1, 0, 0);
var light_pai_rec = [503, 500, 503, 501];
var rec_w = [41, 44, 41, 44];
var rec_h = [55, 44, 55, 44];
set_self(throw_card_spid1, 1, light_pai_rec[d.pos[seat]], 0, 0);
set_self(throw_card_spid1, 20, rec_w[d.pos[seat]], 0, 0);
set_self(throw_card_spid1, 21, rec_h[d.pos[seat]], 0, 0);
}
d.act[2] = -1;
d.click_ban = 0;
d.show_card_wall();
d.put_time = 11 + 6;
set_self(throw_card_spid, 37, 0, 0, 0);
if (d.act_put[5] > 0) {
set_self(d.act_put[5], 37, 0, 0, 0);
}
d.card_14 = 0;
d.act[2] = 0;
d.act_put[2] = -1;
d.act_put[5] = -1;
d.show_my13card();
d.show_you13card();
d.show_shang13card();
d.show_zuo13card();
d.show_14card();
//d.show_sea();
d.click_ban = 1;
d.put_time = 0;
}
}
//停止出牌动画
d.put_card_doend = function (id, sx, allend) {
if (id > 0 && Desk.stage != 0 && d.recon != 1 && d.backstage != 1 && d.act[2] != 0) {
var ban = 0;
var throw_card_spid = d.act_put[2];
if (d.act_put[2] > -1 && id == throw_card_spid && sx == 18 && allend == 1 || d.act_put[2] > -1 && id == throw_card_spid && sx == 19 && allend == 1) {
set_self(throw_card_spid, 37, 0, 0, 0);
if (d.act_put[5] > 0) {
set_self(d.act_put[5], 37, 0, 0, 0);
}
var x_throw = get_self(throw_card_spid, 18, 0, 0, 0), y_throw = get_self(throw_card_spid, 19, 0, 0, 0);
if (d.user_ctrl[2] == C_Player.seat) {
d.click_ban = 1;
}
{
//d.show_sea();
if (d.card_14 > 0 && d.act[1] == C_Player.seat) {
var l = d.hand[C_Player.seat][0].length;
var seat = C_Player.seat;
var l0 = d.hand[seat][0].length * 89 + 89 + 20;
for (var j = 1; j < d.hand[seat].length; j++) {
var l1 = d.hand[seat][j].length;
l0 = l0 + l1 * 48 + 5;
}
var l_s = 1280 - l0 - 10;
if (l_s < 0) {
l_s = 0;
}
var pos = l_s + 89 * l;
for (var i = 0; i < l; i++) {
if (d.hand[C_Player.seat][0][i] > get_self(d.card_14, 43, 0, 0, 0)) {
pos = 89 * i + l_s - 38;
}
}
if (pos != l_s + 89 * l) {
set_self(d.card_14, 19, 541, 0, 0);
}
var x0 = get_self(d.card_14, 18, 0, 0, 0);
var t = parseInt((x0 - pos) / 4);
if (t <= 50) {
t = 50;
}
play_ani123(1, d.card_14, 18, x0, pos, t, 1);
d.act_put[2] = -1;
}
else {
ban = 1;
}
}
}
if (ban == 1 || id == d.card_14 && sx == 18 && allend == 1) {
play_ani123(0, throw_card_spid, 18);
play_ani123(0, throw_card_spid, 19);
play_ani123(0, d.card_14, 18);
if (d.act_put[5] > 0) {
play_ani123(0, d.act_put[5], 18);
play_ani123(0, d.act_put[5], 19);
}
d.card_14 = 0;
d.act[2] = 0;
d.act_put[2] = -1;
d.act_put[5] = -1;
d.show_my13card();
d.show_you13card();
d.show_shang13card();
d.show_zuo13card();
d.show_14card();
//d.show_sea();
d.click_ban = 1;
d.put_time = 0;
}
}
if (id > 0 && Desk.stage != 0 && d.recon != 1) {
if (id == d.card_14 && sx == 19 && allend == 1) {
set_self(d.card_14, 19, 585, 0, 0);
}
if (id == 1848 && sx == 19 && allend == 1) {
d.jing_time = 0;
//play_ani123(0, 1848, 18);
//play_ani123(0, 1848, 19);
//set_self(1848, 37, 0, 0, 0);
}
}
if (id > 0) {//var id1s=[1954,1955,1956,1957];
//var id2s=[1958,1959,1960,1961];
if (id == 1954 && sx == 19 && allend == 1) {
play_ani123(0, 1954, 19);
play_ani123(0, 1958, 19);
set_self(1954, 37, 0);
set_self(1958, 37, 0);
}
if (id == 1954 && sx == 19 && allend == 1) {
play_ani123(0, 1955, 19);
play_ani123(0, 1959, 19);
set_self(1955, 37, 0);
set_self(1959, 37, 0);
}
if (id == 1954 && sx == 19 && allend == 1) {
play_ani123(0, 1956, 19);
play_ani123(0, 1960, 19);
set_self(1956, 37, 0);
set_self(1960, 37, 0);
}
if (id == 1954 && sx == 19 && allend == 1) {
play_ani123(0, 1957, 19);
play_ani123(0, 1961, 19);
set_self(1957, 37, 0);
set_self(1961, 37, 0);
}
}
}
//出牌胡牌提示相关
d.get_other_pai = function (get_card, throw_card) {
var my_card = [];
for (var i = 0; i < d.hand[C_Player.seat].length; i++) {
my_card = my_card.concat(d.hand[C_Player.seat][i]);
}
for (var i = 0; i < 4; i++) {
my_card = my_card.concat(d.sea[i]);
}
if (throw_card) {
var pos = my_card.indexOf(throw_card);
if (pos != -1) {
my_card.splice(pos, 1);
}
}
if (get_card) {
var pos = my_card.indexOf(get_card);
if (pos != -1) {
my_card.splice(pos, 1);
}
}
for (var i = 0; i < 4; i++) {
if (i != C_Player.seat) {
for (var j = 1; j < d.hand[i].length; j++) {
if (d.hand[i][j] && d.hand[i][j][0]) {
my_card = my_card.concat(d.hand[i][j]);
}
}
}
}
d.ord(my_card);
var arr_Contrast = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29];
arr_Contrast = arr_Contrast.concat(arr_Contrast).concat(arr_Contrast).concat(arr_Contrast);
for (var i = 0; i < arr_Contrast.length; i++) {
var pos = my_card.indexOf(arr_Contrast[i]);
if (pos != -1) {
arr_Contrast[i] = 99;
my_card[pos] = 0;
}
}
d.ord(arr_Contrast);
var pos = arr_Contrast.indexOf(99);
if (pos != -1) {
arr_Contrast.splice(pos);
}
return arr_Contrast;
}
//移入出牌
d.set_click_chu = function (spid, movex, movey) {
if (get_self(2232, 37) || !RoomFunc.Overtime_chupai()) {
return;
}
var spid_in = d.get_click_id(movex, movey);
if (d.replay == 0 && spid_in && spid_in != d.last_id) {
d.last_id = spid_in;
d.clicks_an = -1;
var spid_up = spid_in;//d.user_ctrl[2] == C_Player.seat &&
if (d.status == 2 && spid_up >= 936 && spid_up <= 954 && get_self(spid_up, 21, 0, 0, 0) > 120 && d.gang_option == 0 && d.get_hua() == 0) {
d.chu_cilck = spid_up;
d.click_chu(spid_up);
}
}
else if (d.replay == 0 && spid_in && spid_in == d.last_id && d.clicks_an >= 0) {
d.clicks_an = -1;
}
//在move事件中得出鼠标所在小区域。并返回对应牌的精灵id
}
//出牌区域
d.get_click_id=function (movex,movey)
{
//在move事件中得出鼠标所在小区域。并返回对应牌的精灵id
var r=d.get_click_ids_xywh();
var spid_in=0;
var l=d.click_ids.length;
if(l>0 && movex>r[0] && movex<r[2] && movey>r[1] && movey<r[3])
{var n=parseInt((movex-r[0])/89);
spid_in=d.click_ids[0]+n;
}
else if(l>0 && d.card_14>0 && get_self(d.card_14,37) && movex>get_self(d.card_14,18,0,0) && movex<get_self(d.card_14,18,0,0)+89 && movey>r[1] && movey<r[3])
{spid_in=d.card_14;
}
if(get_self(spid_in,41,0,0,0)==0 || get_self(42,37) || get_self(189,37))
{spid_in=0;}
return spid_in;
}
//出牌区域
d.get_click_ids_xywh=function ()
{
//在d.show_my13card函数中设置出牌的区域和小区域
if(d.final_hu[0]>-1)
{d.click_ids=[];
}
var l=d.click_ids.length;
var r=[0,0,0,0];
if(l>0)
{var id0=d.click_ids[0];
var id1=d.click_ids[l-1];
var x=get_self(id0,18,0,0,0);
var y=get_self(id0,19,0,0,0);y=585;
var w=get_self(id0,20,0,0,0);
var h=get_self(id0,21,0,0,0);
var x1=get_self(id1,18,0,0,0);
r[0]=x;
r[1]=y;
r[2]=x1+w;
r[3]=y+h;
}
return r;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,212 @@
/*****************¹«¹²Îļþ****************/
d.newHu = {};
d.newHu.needLai = (
function () {
function check_Need(array) {
var min_array = [];
min_array[0] = testCombo_One(copyArray(array));
min_array[1] = testCombo_Two(copyArray(array));
min_array[2] = testCombo_One(copyArray(array).reverse());
min_array[3] = testCombo_Two(copyArray(array).reverse());
min_array[4] = testCombo_Three(copyArray(array));
min_array[5] = testCombo_Four(copyArray(array));
min_array[6] = testCombo_Three(copyArray(array).reverse());
min_array[7] = testCombo_Four(copyArray(array).reverse());
var min = get_Min(min_array);
return min;
}
function testCombo_One(arr) {
var need = 0;
removeShun(arr);
removeKe(arr);
need = removeSpecial(arr, need);
need = removeMissOne(arr, need);
need = removeDui(arr, need);
need = removeSingle(arr, need);
return need;
}
function testCombo_Two(arr) {
var need = 0;
removeKe(arr);
removeShun(arr);
need = removeSpecial(arr, need);
need = removeMissOne(arr, need);
need = removeDui(arr, need);
need = removeSingle(arr, need);
return need;
}
function testCombo_Three(arr) {
var need = 0;
removeShun(arr);
removeKe(arr);
need = removeSpecial(arr, need);
need = removeDui(arr, need);
need = removeMissOne(arr, need);
need = removeSingle(arr, need);
return need;
}
function testCombo_Four(arr) {
var need = 0;
removeKe(arr);
removeShun(arr);
need = removeSpecial(arr, need);
need = removeDui(arr, need);
need = removeMissOne(arr, need);
need = removeSingle(arr, need);
return need;
}
function get_Min(min_array) {
min_array.sort(function (a, b) {
return a - b;
});
return min_array[0];
}
function str2arr(str) {
var length = str.length;
var arr = [];
for (let i = 0; i < length; i++) {
arr[i] = parseInt(str[i]);
}
return arr;
}
function removeShun(arr) {
var length = arr.length;
for (let j = 0; j < length - 2;) {
if (arr[j] > 0) {
if ((j + 5) < length && arr[j] == 1 && arr[j + 1] == 0 && arr[j + 2] == 1 && arr[j + 3] == 1 && arr[j + 4] == 1 && arr[j + 5] == 1) {
arr[j + 3] -= 1;
arr[j + 4] -= 1;
arr[j + 5] -= 1;
}
if (arr[j + 1] != 0 && arr[j + 2] != 0 && arr[j] != 0) {
arr[j] -= 1;
arr[j + 1] -= 1;
arr[j + 2] -= 1;
continue;
}
}
j++;
}
}
function removeKe(arr) {
var length = arr.length;
for (let j = 0; j < length; j++) {
if (arr[j] >= 3) {
arr[j] -= 3;
}
}
}
function removeSpecial(str, need) {
var length = str.length;
for (let i = 0; i < length - 3; i++) {
let count = str[i] + str[i + 1] + str[i + 2] + str[i + 3];
if (count == 4) {
str[i] = 0;
str[i + 1] = 0;
str[i + 2] = 0;
str[i + 3] = 0;
need += 2;
}
}
return need;
}
function removeMissOne(arr, need) {
var length = arr.length;
for (let j = 0; j < length - 2;) {
if (hasValue(arr, j, 3, 2)) {
for (let k = 0; k < 3; k++) {
if (arr[j + k] > 0) {
arr[j + k] -= 1;
}
}
need += 1;
continue;
}
j++;
}
return need;
}
function removeDui(arr, need) {
var length = arr.length;
for (let j = 0; j < length; j++) {
if (arr[j] == 2) {
arr[j] -= 2;
need += 1;
}
}
return need;
}
function removeSingle(arr, need) {
var length = arr.length;
for (let j = 0; j < length; j++) {
if (arr[j] > 0) {
arr[j] -= 1;
need += 2;
}
}
return need;
}
function hasValue(array, index, totalnum, neednum) {
var length = array.length;
if (length < totalnum) {
return;
}
let temp = 0;
for (let i = 0; i < totalnum; i++) {
if (array[index + i] > 0) {
temp++;
}
}
return temp == neednum;
}
function copyArray(array) {
var str_Array = JSON.stringify(array);
var back_Array = JSON.parse(str_Array);
return back_Array;
}
return function (array) {
var length = array.length;
var card = [0, 0, 0, 0, 0, 0, 0, 0, 0];
var needLai = 0;
var which_card = -1;
for (let i = 0; i < length; i++) {
which_card = array[i] % 10;
card[which_card - 1] += 1;
}
needLai += check_Need(card);
return needLai;
}
}()
);

View File

@@ -0,0 +1,75 @@
//显示胡的牌
d.show_hu_card=function(hu_card)
{
if(hu_card && hu_card.length>0)
{set_group(237,37,0,0,0);
set_self(1247,37,1,0,0);
set_self(1282,37,1,0,0);
if(hu_card.length<=9)
{set_self(1247,21,90,0,0);
set_self(1247,19,382,0,0);
}
else if(hu_card.length>9 && hu_card.length<=18)
{set_self(1247,21,173,0,0);
set_self(1247,19,299,0,0);
}
else if(hu_card.length>18 && hu_card.length<=27)
{set_self(1247,21,256,0,0);
set_self(1247,19,216,0,0);
}
else if(hu_card.length>27)
{set_self(1247,21,339,0,0);
set_self(1247,19,133,0,0);
}
for(var i=0;i<hu_card.length;i++)
{
set_self(1248+i,37,1,0,0);
set_self(1248+i,43,hu_card[i],0,0);
set_self(2450+i,37,1,0,0);
set_self(2450+i,7,d.hu_card_mun(hu_card[i]),0,0);
}
}
}
//是否听牌状态
d.ting_allpai=function(get_card,throw_card)
{var ting_card=[];
var arr=d.c(d.hand[C_Player.seat][0]);
if(get_card)
{arr=arr.concat(get_card);}
if(throw_card)
{var pos=arr.indexOf(throw_card);
if(pos!=-1)
{arr.splice(pos,1);}
}
var arrs=d.c(d.hand[C_Player.seat]);
arrs[0]=d.c(arr);
var other_card=d.get_other_pai(get_card,throw_card);
for(var i=0;i<other_card.length;i++)
{var card=other_card[i];
if(card!=-1)
{var ting_bool=d.a.ting_1pai(arr,card,arrs);
if(ting_bool)
{ting_card[ting_card.length]=card;
}
}
}
if(ting_card.length>0)
{var arr1=d.c(ting_card);
for(var i=0;i<arr1.length-1;i++)
{
if(arr1[i]==arr1[i+1])
{ting_card[i+1]=99;}
}
console.log(ting_card)
d.ord(ting_card);
var pos=ting_card.indexOf(99);
ting_card.splice(pos);
}
return ting_card;
}

View File

@@ -0,0 +1,195 @@
//显示已经出的牌
d.show_sea = function () {
if(d.status==3){
return;
}if (Desk.roomtype[19]) {
return ;
}
if(Utl.getIsInfinite() == 1 && d.person_info[C_Player.seat] && d.person_info[C_Player.seat].new_one==1) {
return;
}
var arr_s0 = [1023, 1050, 1077, 1104];
//2人模式
var persons = [4, 4, 3, 2];
var person = persons[d.roomtype[6]] || 4;
if (person == 2) {
arr_s0 = [1023, 1077, 1077, 1077];
}
d.put_card++;
d.p_card=d.put_card;
var arr_s = [];
for (var i = 0; i < 4; i++) {
arr_s[i] = arr_s0[d.pos[i]];
set_group(207 + i, 37, 0, 0, 0);
}
for (var j = 0; j < 4; j++) {
var l = d.sea[j].length
var n = ifast_div((l + 1) / 9);
var ii = 0;
if (l > 21) {
ii = (n - 1) * 9;
}
for (var i = ii; i < l; i++) {
if (d.sea[j][i] && d.put_card==d.p_card) {
set_self(arr_s[j] + i - ii, 37, 1, 0, 0);
d.wos=1;
set_self(arr_s[j] + i - ii, 43, d.sea[j][i], 0, 0);
//d.show_ponit_out();
//d.put_card==d.p_card;
}
if(d.sea[j][i] == undefined){
set_self(arr_s[j] + i - ii, 37, 0, 0, 0);
}
}
}
if (d.last_operate[0] == 0) {
d.show_ponit_out();
d.wos=0;
}
d.show_sea_hua();
}
//显示已经出的花牌
d.show_sea_hua = function () {
return;
var arr_s0 = [1820, 1828, 1836, 1844];
var arr_s = [];
set_group(243, 37, 0, 0, 0);
for (var i = 0; i < 4; i++) {
arr_s[i] = arr_s0[d.pos[i]];
}
for (var j = 0; j < 4; j++) {
for (var i = 0; i < d.sea_hua[j].length; i++) {
if (d.sea_hua[j][i]) {
set_self(arr_s[j] + i, 37, 1, 0, 0);
set_self(arr_s[j] + i, 43, d.sea_hua[j][i], 0, 0);
}
else {
set_self(arr_s[j] + i, 37, 0, 0, 0);
}
}
}
}
//牌池中最后1个花牌精灵的id
d.get_sea_hua_lastid = function (seat) {
var arr = [0, 0];//455,425/849,455/806,249/380,213 起始精灵1023 1050 1077 1104
var start_spids = [1820, 1828, 1836, 1844];
var start_spid = start_spids[d.pos[seat]];
var l = d.sea_hua[seat].length;
lastid = start_spid + l - 1;//首个空出的精灵
return lastid;
}
//牌池中最后1个精灵的id
d.get_sea_lastid = function (seat) {
var arr = [0, 0];//455,425/849,455/806,249/380,213 起始精灵1023 1050 1077 1104
var start_spids = [1023, 1050, 1077, 1104];
//2人模式
var persons = [4, 4, 3, 2];
var person = persons[d.roomtype[6]] || 4;
if (person == 2) {
start_spids = [1023, 1077, 1077, 1077];
}
var start_spid = start_spids[d.pos[seat]];
var l = d.sea[seat].length;
var l_y = 0;
var l_x = 0;
l_y = parseInt(l / 9);
l_x = l - l_y * 9;
lastid = start_spid + l_y * 9 + l_x - 1;//首个空出的精灵
for (var i = 0; i < 27; i++) {
if (get_self(start_spid + 26 - i, 37)) {
lastid = start_spid + 26 - i;
break;
}
}
return lastid;
}
//得到牌池首个空出的位置坐标
d.get_sea_freexy = function (seat, off) {
var arr = [0, 0];//455,425/849,455/806,249/380,213 起始精灵1023 1050 1077 1104
var start_posxys = [[get_self(1023, 18, 0, 0, 0), get_self(1023, 19, 0, 0, 0)], [get_self(1050, 18, 0, 0, 0), get_self(1050, 19, 0, 0, 0)], [get_self(1077, 18, 0, 0, 0), get_self(1077, 19, 0, 0, 0)], [get_self(1104, 18, 0, 0, 0), get_self(1104, 19, 0, 0, 0)]];
var start_spids = [1023, 1050, 1077, 1104];
var start_posxy = start_posxys[d.pos[seat]];
var start_spid = start_spids[d.pos[seat]];
var l = d.sea[seat].length + off;
var l_y = 0;
var l_x = 0;
var y = start_posxy[1];
var x = start_posxy[0];
l_y = parseInt(l / 9);
l_x = l - l_y * 9 - 2;
if (get_self(start_spid, 44, 0, 0, 0) == 207) {
y = start_posxy[1] - l_y * 51;
x = start_posxy[0] + l_x * 47;
}
else if (get_self(start_spid, 44, 0, 0, 0) == 208) {
y = start_posxy[1] - l_x * 41;
x = start_posxy[0] - l_y * 55;
}
else if (get_self(start_spid, 44, 0, 0, 0) == 209) {
y = start_posxy[1] + l_y * 51;
x = start_posxy[0] - l_x * 47;
}
else if (get_self(start_spid, 44, 0, 0, 0) == 210) {
y = start_posxy[1] + l_x * 41;
x = start_posxy[0] + l_y * 55;
}
//arr[2]=start_spid+l_y*9+l_x;//首个空出的精灵
arr[2] = 1353;
arr[0] = x;
arr[1] = y;
var lastid = d.get_sea_lastid(seat);
var x1 = get_self(lastid, 18, 0, 0, 0);
var y1 = get_self(lastid, 19, 0, 0, 0);
if (arr[0] != x1) {
arr[0] = x1;
}
if (arr[1] != y1) {
arr[1] = y1;
}
d.act_put[0] = arr[0];//出牌 0spid1目标x,2目标y
d.act_put[1] = arr[1];
return arr;
}
//得到其他3家随机手牌
d.get_rand_3handcard = function (seat, n) {
n = n || 1;
//var id_start=[936,954,972,990];
var id_start = [936, 954, 972, 990];
var l = d.hand[seat][0].length;
var ran_pos = ifast_random(l);
var throw_card_id = [];
throw_card_id[0] = id_start[d.pos[seat]] + ran_pos;
for (var i = 1; i < n; i++) {
var ran_pos1 = ran_pos + i;
if (ran_pos1 > l - 1) {
ran_pos1 = ran_pos - (ran_pos1 - (l - 1));
}
throw_card_id[i] = id_start[d.pos[seat]] + ran_pos1;
}
return throw_card_id;
}
d.get_song_downjing = function (downjing) {
var song_downjing = [];
if (downjing[0] < 30) {
song_downjing[0] = [downjing[0] % 10, downjing[1] % 10];
song_downjing[1] = [parseInt("1" + downjing[0] % 10), parseInt("1" + downjing[1] % 10)];
song_downjing[2] = [parseInt("2" + downjing[0] % 10), parseInt("2" + downjing[1] % 10)];
} else if (downjing[0] > 30 && downjing[0] < 40) {
song_downjing[0] = [31, 32];
song_downjing[1] = [32, 33];
song_downjing[2] = [33, 34];
song_downjing[3] = [34, 31];
} else if (downjing[0] > 40) {
song_downjing[0] = [41, 42];
song_downjing[1] = [42, 43];
song_downjing[2] = [43, 41];
}
return song_downjing;
}

File diff suppressed because it is too large Load Diff