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

435 lines
12 KiB
JavaScript
Raw Permalink 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.
var RoomConfig = {
roomcode: 100000,
roomtype: [],
room_name_type: {},
turns: 0,
people: 2,
}
/*房间号,局数,游戏玩法,人数*/
function RoomInit(roomtype) {
RoomConfig.roomcode = Desk.roomcode || 100000;
if (Desk.roomtype && Desk.roomtype.length > 0) {
RoomConfig.roomtype = Desk.roomtype;
} else if (roomtype && roomtype.length > 0) {
RoomConfig.roomtype = roomtype;
} else {
RoomConfig.roomtype = [];
}
(function (roomtype) {
RoomConfig.turns = roomtype[1] * 8 || 0;
var peoples = [4, 4, 3, 2]
RoomConfig.people = (peoples[roomtype[6]]) || 4;
RoomConfig.room_name_type.jushu = roomtype[1];//局数
RoomConfig.room_name_type.buy_horse = roomtype[2];//买马
RoomConfig.room_name_type.limit = roomtype[3];//精分
RoomConfig.room_name_type.horse = roomtype[5];//几匹马
RoomConfig.room_name_type.top_limit = roomtype[6];//封顶 人数
RoomConfig.room_name_type.host2 = roomtype[7];//庄家翻倍
RoomConfig.room_name_type.base_score = roomtype[8];//底分
RoomConfig.room_name_type.piao = roomtype[9];//底分
RoomConfig.room_name_type.jia = roomtype[10];//底分
RoomConfig.room_name_type.start_hu = roomtype[11];//底分
RoomConfig.room_name_type.start_hu_arr = roomtype[12];//底分
RoomConfig.room_name_type.star = roomtype[13];//底分
RoomConfig.room_name_type.qiangganghu = roomtype[15];//底分
})(RoomConfig.roomtype);
}
//房间接口
var RoomFunc = {};
//房间变量池
var RoomPool={};
//可能会执行很多次
//点击,永远可用
RoomFunc.c_click = function (spid_up, upx, upy, downx, downy, spid_down) {
if(spid_up == 2998){
d.show_xiao_settle(1);
d.show_timeready(1);
}
if (spid_up != 2999 && get_self(1247,37)) {//听牌显示
set_group(237, 37, 0, 0, 0);
}
if (spid_up == 2233 ) {//托管
RoomFunc.tuoguan();
}
if (d.replay==0 && (spid_up == 2231 || spid_up == 2232 || (spid_up >= 1013 && spid_up <= 1018) || (spid_up >= 791 && spid_up <= 799) || (spid_up >= 1131 && spid_up <= 1139))) {//取消托管
d.OverTime=0;
d.jishi_chu=0;
set_group(221, 37, 0, 0, 0);
set_self(2233,43,1,0,0);
d.show_my13card();
d.show_14card();
}
if (spid_up == 2999) {//听牌显示
if (!get_self(1247,37)) {
d.show_hu_card(d.Ting_ui);
} else {
set_group(237, 37, 0, 0, 0);
}
}
if (spid_up == 2509) {//小局2
d.horse_time=0;
d.compare_jing_time3=0;
if (get_self(1598, 37) == 1) {
d.a.show_history3_1();
} else {
d.show_xiao1_settle(1);
}
}
if (spid_up == 2510) {//小局2
set_group(260,37,0,0,0);
}
if (spid_up == 2656) {//精牌详情
d.horse_time=0;
d.compare_jing_time3=0;
set_self(2656,37,0);
d.show_xiao2_settle(1);
set_group(214,41,0,0,0);
set_self(2657,41,1);
set_self(2787,41,1);
//if (get_self(1598,37) == 1) {
//d.a.show_history3_2();
//}else {
//d.show_xiao2_settle(1);
//}
}
if ((spid_up == 2787 || spid_up == 2657) && Desk.roomtype[19] != 1) {//关闭精牌详情
set_self(2656,37,1);
set_group(214,37,0,0,0);
}
if (spid_up == 233) {//结算
d.compare_jing_time3=0;
}
//console.log("roomfunc 点击,永远可用");
}
//点击,游戏开始之后可用
RoomFunc.g_click = function (spid_up, upx, upy, downx, downy, spid_down) {
//console.log("roomfunc 点击,游戏开始之后可用");
}
//开战,是否发牌
RoomFunc.make_war = function (_msg) {
console.log("roomfunc RoomConfig一进去就开战");
return true;
}
//重连重绘之前,游戏开始后收到包就执行
RoomFunc.running_before = function (_msg) {
console.log("roomfunc RoomConfig重连重绘之前游戏开始后收到包就执行");
}
//重连重绘
RoomFunc.re_connect = function () {
console.log("roomfunc RoomConfig重连重绘")
}
//重连重绘之后,游戏开始后收到包就执行
RoomFunc.running_after = function (_msg) {
console.log("roomfunc RoomConfig重连重绘之后游戏开始后收到包就执行")
}
//点击牌的判断
RoomFunc.clickpai_before = function (spid) {
//console.log("roomfunc RoomConfig点击牌的判断");console.log(spid);
if (Desk.roomtype[19] || d.replay!=0) {
return false;
}
if(get_self(1965, 37) == 1 || d.baoting[0] == 1 || d.baoting[1] == 1 || d.baoting[2] == 1 || d.baoting[3] == 1 || (d.baoting[C_Player.seat] == 2 && spid < 949&&(!d.baoting[4]||(d.baoting[4]&&!d.baoting[4].length))))
{
return false;
}
else
{
if(d.baoting[0] == 0 && d.baoting[1] == 0 && d.baoting[2] == 0 && d.baoting[3] == 0){
return true;
}
if (d.baoting[4]&&d.baoting[4].length&&d.identity[4]==C_Player.seat&&d.baoting[C_Player.seat]==2) {
var pos=d.baoting[4].indexOf(get_self(spid,43) );
if (pos!=-1) {
return true;
}
}else {
if (d.final_hu[0] == -1) {
return true;
}else {
return false;
}
}
return false;
}
}
//点击操作按钮,显示出操作图案之后
RoomFunc.operate_before = function (spid, num) {
if(num == 4){
num = 1;
}
if (num == 8 || num == 7) {
//return;
num = 4;
}
if (num == 20) {
// num = 8;
return ;
}
if(num == 6 || num == 5){
num = 3;
}
if(num == 11){
num = 5;
}
if (!AM.is_play(spid)) {
AM.remove(spid, false)
//var dh_bz = [0, 0, 634, 633, 630, 633, 633, 631, 631, 632, 632, 9];//1吃,3杠,5胡,7碰,9听,
//var a=1;
AM.add(spid).bfunc(function () {
set_self(spid, 1, 630, 0, 0);
set_self(spid, 37, 1, 0, 0);
set_self(spid, 33, 100, 0, 0);
set_self(spid, 43, (num*2)-1, 0, 0);
}).zoom(150, 2).zoom(50,3).wait(35,function(){
set_self(spid,37,0,0,0);
AM.cls_id(spid);
}).start();
}
//var dh_bz2 = [0, 0, 634, 633, 630, 633, 633, 631, 631, 632, 632, 9];//1吃,3杠,5胡,7碰,9听,
if (!AM.is_play(spid + 61)) {
AM.add(spid + 61).wait(6, function () {
set_self(spid + 61, 1, 630, 0, 0);
set_self(spid + 61, 18, get_self(spid, 18), 0, 0);
set_self(spid + 61, 19, get_self(spid, 19), 0, 0);
set_self(spid + 61, 37, 1, 0, 0);
set_self(spid + 61, 43, num*2, 0, 0);
set_self(spid + 61, 35, 255, 0, 0);
set_self(spid + 61, 33, 0, 0, 0);
}).alpha(200, 3).zoom(200, 7).wait(2, function () {
//set_self(spid+61,43,4,0,0);
set_self(spid + 61, 37, 0, 0, 0);
//set_self(spid, 37, 0, 0, 0);
//AM.cls_id(spid);
AM.cls_id(spid + 61);
}).start();
}
if (!AM.is_play(spid + 663)) {
AM.add(spid + 663).wait(10,function () {
set_self(spid + 663, 37, 1, 0, 0);
set_self(spid + 663, 1, 640, 0, 0);
set_self(spid + 663, 18, get_self(spid,18)+50, 0, 0);
set_self(spid + 663, 19, get_self(spid,19)+60, 0, 0);
set_self(spid + 663, 33, 50, 0, 0);
set_self(spid + 663, 35, 255, 0, 0);
}).zoom(200, 15).alpha(0, 15).wait(1, function () {
set_self(spid + 663,37,0,0,0);
AM.cls_id(spid + 663);
}).start();
}
if((d.last_operate[0] == 2|| d.last_operate[0] == 4) && d.final_hu[0]==-1){
//加杠动画 明杠动画
if (!AM.is_play(2394)) {
AM.add(2394).bfunc(function(){
set_self(2394,37,1,0,0);
set_self(2394,43,2,0,0);
}).wait(3,function(){
set_self(2394,43,3,0,0);
Utl.playSound("00302.mp3");
}).wait(3,function(){
set_self(2394,43,4,0,0);
}).wait(3,function(){
set_self(2394,43,5,0,0);
}).wait(3,function(){
set_self(2394,43,6,0,0);
}).wait(3,function(){
set_self(2394,43,2,0,0);
}).wait(3,function(){
set_self(2394,43,3,0,0);
}).wait(3,function(){
set_self(2394,43,4,0,0);
}).wait(3,function(){
set_self(2394,43,5,0,0);
}).wait(3,function(){
set_self(2394,43,6,0,0);
}).wait(3,function(){
}).func(function() {
set_self(2394,37,0,0,0);
set_self(2394,43,2,0,0);
AM.cls_id(2394);
}).start();
}
}
if (d.last_operate[0] == 5 && d.final_hu[0] == -1) {
//暗杠动画
if (!AM.is_play(2674)) {
AM.add(2674).bfunc(function () {
set_self(2674, 37, 1, 0, 0);
set_self(2674, 43, 1, 0, 0);
Utl.playSound("00" + 303 + ".mp3");
}).wait(3, function () {
set_self(2674, 43, 2, 0, 0);
Utl.playSound("00303.mp3");
}).wait(3, function () {
set_self(2674, 43, 3, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 4, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 5, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 6, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 1, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 2, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 3, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 4, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 5, 0, 0);
}).wait(3, function () {
set_self(2674, 43, 6, 0, 0);
}).wait(3, function () {
}).func(function () {
set_self(2674, 37, 0, 0, 0);
set_self(2674, 43, 1, 0, 0);
AM.cls_id(2674);
}).start();
}
}
}
//点击操作按钮
RoomFunc.operate_click = function (spid_up) {
if(get_self(1965, 37) == 1)
{return false;}
else
{return true;}
}
//战局开始,牌显示之前
RoomFunc.showcard_before = function () {
//一般执行14次
//console.log("roomfunc RoomConfig战局开始牌显示之前");
if (Utl.getIsInfinite() == 1||Desk.roomtype[14]==3||Desk.roomtype[14]==4){
for(var i=0;i<4;i++){
if(d.sieves[2] == 0 && d.sieves[3] == -1 && d.sieves[4] == 0 && d.robot[i] ==1 && i == d.identity[4] && d.click_sieves == 0){
for(var j=0;j<4;j++){
if(d.robot[j]==-1 && !Desk.PlayerList[j].onstate){
if (C_Player.seat == j) {
d.click_sieves = 1;//庄家掷骰子选人选牌蹲专用
d.click(1363);
}
}
}
}
}
}
if(d.sieves[2] == 0 && d.sieves[3] == -1 && d.sieves[4] == 0 && d.click_sieves == 0 && d.status!=3)
{
d.click_sieves = 1;//庄家掷骰子选人选牌蹲专用
if (d.replay == 0){
//set_self(1363, 37, 1, 0, 0);
d.click(1363);
}
}
return d.showcard_before;
}
//战局开始,牌显示之后
RoomFunc.showcard_after = function () {
//执行一次
console.log("roomfunc RoomConfig战局开始牌显示之后");
}
//自己有摸牌,且是自己的控制權
RoomFunc.mopai_before = function (first_card, seat) {
//最新的牌
console.log("roomfunc RoomConfig自己有摸牌且是自己的控制權", first_card, seat);
}
//自己沒摸牌,且是自己的控制權
RoomFunc.nomopai_before = function (seat) {
console.log("roomfunc RoomConfig自己沒摸牌", seat);
}
//要不要顯示战绩,服务器判断要不要买马动画
RoomFunc.zhanji_before = function () {
console.log("roomfunc RoomConfig要不要顯示战绩");
if(get_self(2377, 37) == 0 && Desk.roomtype[19]!=1)
{set_self(2377, 37, 1);}
if (!Desk.roomtype[19]) {
d.compare_jing_time3=1;
}else {
d.show_xiao_settle(1);
d.show_timeready();
}
return false;
}
//一小局的结束,显示了牌之后,还没有显示动画
RoomFunc.turn_over = function () {
for (var i = 936; i <= 954; i++) {
set_self(i, 1, 503, 0, 0);
}
}
//游戲中战绩显示,在其他数据全部显示之后
RoomFunc.game_show_settle = function (turn, identity, names, avatar, playerids, hand, turn_point, buyHorse, winHorse, Horse_vic_def, final_hu, hu_note, hu_note_gang, roomtype, many_hu, start_hu, piao, sea_hua, peng_chi_num, hu_note_gang_jing, putJing, jing, jing_reduce) {
}
//大厅战绩显示,在其他数据全部显示之后,与上面的
RoomFunc.game_out_show_settle = function (js, js1) {
}
//绘制接口
RoomFunc.draw = function(spid){
}
//超时自动出牌
RoomFunc.Overtime_chupai = function(){
var Overtime_chupai = Desk.roomtype[18];
if (Overtime_chupai==2) {//快版
return true;
}
return false;
}
//托管
RoomFunc.tuoguan = function(mode){
mode=mode || 0;
if (get_self(2233,43)==1 && mode==0) {
set_self(2233,43,2,0,0)
d.show_tuoguan();
}else if(mode==0 || mode==1){
set_self(2233,43,1,0,0)
d.OverTime=0;
set_group(221, 37, 0, 0, 0);
d.jishi_chu = 0;
}
}