Files
youle_cocos/projects/doudizhu/js/Class_branch/10_data.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

301 lines
9.9 KiB
JavaScript

//接收数据
Public_data.begin = function(_msg){
//开始
aset = cls_doudizhu_aset.New();//创建牌桌
for (var i = 0; i < aset.cardlist.length; i++) {
if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 1) {
cls_doudizhu_card.SetArithN(aset.cardlist[i],14);
} else if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 2){
cls_doudizhu_card.SetArithN(aset.cardlist[i],16);
}
}
Public_data.Initialization(); //初始化
Public_data.data.roomtype = _msg.data.roomtype; //房间类型
Public_data.data.num = _msg.data.num; //局数
Public_data.data.tuoguan = _msg.data.tuoguan; //托管
Public_data.data.maxman = _msg.data.maxman; //最大人数
Public_data.data.grade = _msg.data.grade; //总分
Public_data.data.gold_score = _msg.data.gold_score; //房卡房金币场的总分
Public_data.data.gold = _msg.data.gold; //实时金币数
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
config_carlen();//设置牌长度
cards_interval();//设置牌间距
}
Public_data.dealcard = function(_msg){
//发牌
Public_data.data.hand_cards = _msg.data.hand_cards; //手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Public_data.data.control = _msg.data.control; //当前叫分控制权
Public_data.data.rest = _msg.data.rest; //剩余牌数量
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
mppx();
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.down_score = _msg.data.down_score; //底分
}
Public_data.lootbanket = function(_msg){
//抢庄
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.down_score = _msg.data.down_score; //当前底分
Public_data.data.control = _msg.data.control; //当前叫分控制权
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.banker = _msg.data.banker; //庄
Public_data.data.undercards = _msg.data.undercards; //底牌
game.seat = _msg.data.seat; //操作的人
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.di_bei = _msg.data.di_bei; //底牌倍数
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
Public_data.data.rest = _msg.data.rest; //剩余牌数量
mppx();
if(Public_data.data.banker == Utl.getMySeat()){
Public_data.data.hand_cards = _msg.data.hand_cards; //手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
}
}
Public_data.more = function(_msg){
//加倍
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.bei = _msg.data.bei; //当前倍数
game.seat = _msg.data.seat; //操作的人
}
Public_data.mingpai = function(_msg){
//明牌
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
Public_data.data.bei = _msg.data.bei; //当前倍数
game.seat = _msg.data.seat; //操作的人
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
mppx();
}
Public_data.playcards = function(_msg){
//出牌
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.jieguo = _msg.data.jieguo; //结果 1:能出 0:不能出
game.seat = _msg.data.seat; //出牌的座位号
Public_data.data.cardtype = _msg.data.cardtype; //牌型
Public_data.data.control = _msg.data.control; //当前控制权
Public_data.data.dealid = _msg.data.dealid; //所有人出的牌
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.rest = _msg.data.rest; //剩余牌数量
Public_data.data.maxplayer = _msg.data.maxplayer; //当前最大出牌人
Public_data.data.end = _msg.data.end; //2是大局
Public_data.data.point_cards = _msg.data.point_cards ; //提示牌型
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.caozuo = _msg.data.caozuo; //出牌次数
Public_data.data.winner = _msg.data.winner; //谁赢了
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
if(game.seat == Utl.getMySeat() && Public_data.data.jieguo == 1){
if (Public_data.data.caozuo > 0) {
button_show(0);
putcard_ani(_msg);//手牌动画
mpbs(0);//明牌标识
//set_self(1021,37,0,0,0);
}
}
mppx();
game.tishi = 0;
//Public_data.data.cardtype = [[4,1],[],12]; //牌型
}
Public_data.display = function(_msg){
//不出
Public_data.data.stage = _msg.data.stage; //当前阶段
game.seat = _msg.data.seat; //出牌的座位号
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.caozuo = _msg.data.caozuo; //出牌次数
Public_data.data.dealid = _msg.data.dealid; //所有人出的牌
Public_data.data.control = _msg.data.control; //当前控制权
Public_data.data.maxplayer = _msg.data.maxplayer; //当前最大出牌人
Public_data.data.cardtype = _msg.data.cardtype; //牌型
Public_data.data.point_cards = _msg.data.point_cards ; //提示牌型
game.tishi = 0;
}
Public_data.aset = function(_msg){
//小局
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.bj_score = _msg.data.bj_score; //本局得分
Public_data.data.rest_cards = _msg.data.rest_cards; //剩余牌id
Public_data.data.winner = _msg.data.winner; //谁赢了
Public_data.data.end = _msg.data.end; //2是大局
Public_data.data.grade = _msg.data.grade; //总分
Public_data.data.gold_score = _msg.data.gold_score; //房卡房金币场的总分
Public_data.data.gold = _msg.data.gold; //实时金币数
game.shijian = _msg.data.shijian; //大局结算时间
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
Public_data.data.chuntian = _msg.data.chuntian; //春天
}
Public_data.ready = function(_msg){
//准备
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.seat = _msg.data.seat; //出牌的座位号
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
}
Public_data.help_play = function(_msg){
//托管
Public_data.data.tuoguan = _msg.data.tuoguan; //托管
}
Public_data.aset_recovery = function(_msg){
//小局回放
Public_data.data.bj_score = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][0]; //本局得分
Public_data.data.winner = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][3]; //谁赢了
Public_data.data.di_bei = _msg.data.gameinfo2.di_bei[dijiju]; //底牌倍数
Public_data.data.banker = _msg.data.gameinfo2.banker[dijiju]; //庄
Public_data.data.bei = _msg.data.gameinfo2.bei[dijiju]; //当前倍数
Public_data.data.down_score = _msg.data.gameinfo2.down_score[dijiju]; //底分
}
Public_data.Recovery = function(){
//回放
//Public_data.recovery.pjhf = _msg.data.pjhf; //牌局回放数据 pjhf :[[出牌状态,座位号,[每个人的牌id:[],[]],[手牌ID]],[],[],[].....]
var seat = Public_data.recovery.pjhf[Public_data.recovery.num][1];
Public_data.data.bei = Public_data.recovery.pjhf[Public_data.recovery.num][7]; //当前倍数
Game_Modify.recovery_step(Public_data.recovery.num);
Public_data.data.dealid = Public_data.recovery.pjhf[Public_data.recovery.num][2];//出牌
Public_data.data.playerlist[0] = Public_data.recovery.pjhf[Public_data.recovery.num][4];//玩家状态
Public_data.data.end = Public_data.recovery.pjhf[Public_data.recovery.num][9];//玩家状态
if (Public_data.recovery.num+1<Public_data.recovery.pjhf.length) {
Public_data.data.control = Public_data.recovery.pjhf[Public_data.recovery.num+1][1];
if (Public_data.data.end == -1) {
clock(1);
} else {
clock(0);
}
} else {
clock(0);
}
//隐藏牌
for (var i = 0;i < id_config.hc_len[Utl.changeToStatus(seat)]; i++) {
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,0,0,0);
}
if(Public_data.recovery.pjhf[Public_data.recovery.num][4][seat] == 2){
//不要
set_self(id_config.pass[Utl.changeToStatus(seat)],37,1,0,0);
for(var i = 0; i<Public_data.data.maxman;i++){
Public_data.data.hand_cards = Public_data.recovery.pjhf[Public_data.recovery.num][3][i];//手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Hand_card.sort(i,Public_data.data.hand_cards);
}
Putcards.sort();
}else if(Public_data.recovery.pjhf[Public_data.recovery.num][4][seat] == 4){
//彻底打完
set_self(id_config.pass[seat],37,0,0,0);
}else {
//打牌
if (Public_data.recovery.pjhf.length>Public_data.recovery.num+1) {
var xiaciseat = Public_data.recovery.pjhf[Public_data.recovery.num+1][1];
Putcards.yinchang(Utl.changeToStatus(xiaciseat));
}
//隐藏不要
set_self(id_config.pass[seat],37,0,0,0);
for(var i = 0; i<Public_data.data.maxman;i++){
Public_data.data.hand_cards = Public_data.recovery.pjhf[Public_data.recovery.num][3][i];//手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Hand_card.sort(i,Public_data.data.hand_cards);
}
Putcards.sort();
}
}