Files
youle_cocos/projects/majiang_jx/js/flow/put/show_sea.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

196 lines
5.4 KiB
JavaScript
Raw 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.
//显示已经出的牌
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];//出牌 0spid,1目标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;
}