syntax = "proto3"; package SparrowMaJiang; //出牌命令 200-1 message PB_CS_C_OutCard{ uint32 cbCardData = 1; //扑克数据 }; //操作命令 200-3 message PB_CS_C_OperateCard{ uint64 cbOperateCode = 1; //操作代码 uint32 cbOperateCard = 2; //操作扑克 repeated uint32 cbCaiShenCard = 3; //存财神牌 }; //用户托管 200-4 message PB_CS_C_Trustee{ uint32 bTrustee = 1; //是否托管 }; //包台 200-5 message PB_CS_C_BAO{ uint32 cbTaiNum = 1; //包台 255 表示放弃包台 }; //选财 200-7 message PB_CS_C_Magic{ uint32 cbMagicFirst = 1; //财神1 uint32 cbMagicSenced = 2; //财神2 0 表示该财神不需要 }; //定财神 200-8 message PB_CS_C_MagicDing{ uint32 isdingcai = 1; //1定 0 取消 }; //游戏开始 200-100 message PB_CS_S_GameStart{ uint32 wBankerUser = 1; //庄家用户, uint64 wCurrentUser = 2; //就是当前用户 uint64 cbUserAction = 3; //用户动作(0:没操作,0x08:碰牌,0x10:杠,0x80:自摸等) repeated uint32 ActionCard = 4; //动作所对应的牌 repeated uint32 cbCardData = 5; //扑克列表 repeated uint32 cbSiceLaiZi = 6; //色子1,2,皮子,癞子 uint32 cbLeftCardCount = 7; //剩余牌 uint32 cbTotalCardCount = 8; //总麻将数 uint32 cbOptTime = 9; //操作时间(秒) uint32 cbCurrPlay = 10; //当前局数 repeated uint32 cbSliceCheckBankUser = 11; }; //出牌命令 200-101 message PB_CS_S_OutCard{ uint32 wOutCardUser = 1; //出牌用户,座位号 uint32 bOptType = 2; //操作类型(0,表示普通出牌,1,表示癞子杠) uint32 cbOutCardData = 3; //出牌扑克 }; //发送扑克 200-102 message PB_CS_S_SendCard{ uint32 cbCardData = 1; //发牌扑克数据 uint64 cbActionMask = 2; //动作掩码(0:没操作,0x08:碰牌,0x10:杠,0x80:自摸) repeated uint32 cbActionCard = 3; //操作扑克(杠的时候才有数据,多杠时,补杠,暗杠才有数据) uint32 wCurrentUser = 4; //当前用户 uint32 bTail = 5; //末尾发牌(0:正常发牌,1:末尾) uint32 bLeftCardCount = 6; //剩余牌数 }; message pb_bTingCardData{ repeated uint32 bTingCardDatas = 1; }; //听牌数据单独协议 200-103 message PB_CS_S_TingCard{ uint32 bPaiQuan = 1; //1表示 当前不是自己的牌权,但是已经听了 uint32 bOutCardCout = 2; //可以打出的牌就听牌的个数 repeated uint32 bOutCardData = 3; //具体打哪几张牌 repeated uint32 bTingCardCount = 4; //相对应打出牌可听牌个数,索引表示第几张,值是对应对应的听牌个数 repeated pb_bTingCardData bTingCardData= 5;//具体听牌数据,一维索引表示打出牌的第几个,二维索引表示听牌的第几个,值表示牌数据 }; //操作提示 200-104 message PB_CS_S_OperateNotify{ uint32 wResumeUser = 1; //还原用户 uint64 cbActionMask = 2; //动作掩码() uint32 cbActionCard = 3; //动作扑克 }; //操作命令 200-105 message PB_CS_S_OperateResult{ uint32 wOperateUser = 1; //操作用户 uint32 wProvideUser = 2; //供应用户 uint64 cbOperateCode = 3; //操作代码 uint32 cbOperateCard = 4; //操作扑克 repeated uint32 cbCaiShenCard = 5; //存财神牌 uint64 cbActionMask = 6; //动作 repeated uint32 cbActionCard = 7; //动作牌值 }; message pb_cbCardData{ repeated uint32 cbCardDatas = 1; }; //游戏结束 200-106 message PB_CS_S_GameEnd{ uint32 bOptType = 1; //操作类型(1胡牌结束,2黄庄,3解散)1 uint32 bWanJiaId = 2; //玩家座位号 3 uint32 wDianpao = 3; //点炮玩家 5 uint32 HuPaiCard = 4; //胡的牌 6 repeated pb_cbCardData cbCardData = 5; //玩家手牌值 62 repeated uint64 cbWanJiaScore = 6; //玩家目前所拥有积分 78 repeated uint32 bZimo = 7; //每位玩家胡牌次数 82 uint32 bFinish = 8; //是否结束本轮。0表示否,1表示是 83 uint32 dwOwnerID = 9; //房主ID 87 uint32 bLeftCardCount = 10; //剩余牌数 88 repeated uint32 bLeftCardDada = 11; //剩余牌值 142 为了应对 3人 2人麻将 修改数组 3人96 2人109 uint32 playGameNum = 12; //打到第几局了 143 repeated uint64 lGameScoreDetail = 13; //195流水详情 204 }; //用户托管 200-107 message PB_CS_S_Trustee{ uint32 bTrustee = 1; //是否托管 uint32 wChairID = 2; //托管用户 }; //积分变动 200-110 message PB_CS_S_GangScore{ uint32 wChairId = 1; //用户 uint64 cbOperateCode = 2; //操作代码 repeated uint64 lGangScore = 3; //单局 积分变动情况 repeated uint64 cbWanJiaScore = 4; //玩家目前所拥有积分 }; //通知包台 200-120 message PB_CS_S_BAO_NOTICE{ uint32 m_wChairID = 1; //选包玩家 uint32 minBao = 2; //可选最小包台数 }; //玩家包台广播 200-121 message PB_CS_S_BAO_CHOICE{ uint32 m_wChairID = 1; //包玩家 uint32 baochoice = 2; //包台 255 表示不包 }; //包结果 200-122 message PB_CS_S_BAO_RESULT{ uint32 m_wChairID = 1; //包家 uint32 baoTai = 2; //台数 uint32 cbMagicCount = 3; //需要选择财神个数 0 1 2 uint64 actionMask = 4; //无财时 直接可以庄家出牌 需要发送庄家有的操作 仅庄家可见 repeated uint32 gangCard = 5; }; //财神结果 200-123 message PB_CS_S_Magic_RESULT{ uint32 cbMagicFirst = 1; //财神1 uint32 cbMagicSenced = 2; //财神2 0 表示该财神不需要 uint64 actionMask = 3; //庄家出牌 需要发送庄家有的操作 仅庄家可见 repeated uint32 gangCard = 4; }; //定财神返回结果 200-124 message PB_CS_S_DING_CAI_RESULT{ uint32 cbResult = 1; //定财神返回结果 1 有财 2无财神 0 取消 uint32 cbIsWCHu = 2; repeated uint32 caiCards = 3;////可以被定为财神的牌 最高位用于标示是否可以独选 }; // 通知抢杠胡 200-125 message PB_CS_S_NOTIFY_QIANGGH{ uint32 wResumeUser = 1; //还原用户 uint64 cbActionMask = 2; //动作掩码 uint32 cbActionCard = 3; //动作扑克 repeated uint32 caiCards = 4; }; message pb_GameConfig{ uint32 wSubGameID = 1; // 30 翻财神 31 包麻将 uint32 wDiScore = 2; //底分 uint32 wFanFei = 3; //房费(0房间创建者,1打牌者平摊) uint32 wIpLimit = 4; //IP限制(0限制,1不限制); uint32 wPlayCountRule = 5; //一次玩的局数(8局?16局?) uint32 RoomId = 6; //房间ID uint32 IsOwner = 7; //是否房主 uint32 wHadPlayCount = 8; //当前局数 string sPrivateTableID = 9; uint32 bDuoLai = 10; //包麻将 使用此变量,作为是否计算 大牌分数 uint32 wFengDing = 11; //封顶分数 uint32 tmp1 = 12; //备用字段 //0,4人 | 1,,3人 |2,2人 uint32 tmp2 = 13; //备 }; //组合子项 message pb_WeaveItem{ uint32 cbWeaveKind = 1; //组合类型 uint32 cbCenterCard = 2; //中心扑克 uint32 cbPublicCard = 3; //公开标志 uint32 wProvideUser = 4; //供应用户 repeated uint32 cbMargicOffset = 5; //如果有财神参与组合,财神的位置 1-4 ,该位置存储实际是那张财神的index }; message pb_WeaveItemArray{ repeated pb_WeaveItem WeaveItem = 2; }; message pb_cbDiscardCard{ repeated uint32 cbDiscardCard = 1; }; //旁观者断线重连 200-200 message PB_CS_S_PangGuan{ pb_GameConfig gameConfig = 1; repeated uint64 lUserTmpScore = 2; //临时积分。本轮玩家的积分 //游戏变量 uint32 GameStatus = 3; //0等待开始,1游戏中 uint32 cbTotalCardCount = 4; //游戏总牌数 uint32 cbLeftCardCount = 5; //单局游戏剩余牌数 uint32 wBankerUser = 6; //本局游戏庄家 repeated uint32 lSiZi = 7; //色子1,2,皮子,癞子 //当前状态 uint32 wCurrentUser = 8; //当前用户 repeated uint32 bPutCardData = 9; //最后一张牌打出的人和牌值 repeated uint32 cbDiscardCount = 10; //丢弃数目 repeated pb_cbDiscardCard cbDiscardCard = 11; //丢弃记录 repeated uint32 cbCardCount = 12; //每个玩家扑克数目 //组合扑克 repeated uint32 cbWeaveCount = 13; //组合数目 repeated pb_WeaveItemArray WeaveItemArray = 14; //组合扑克 uint32 dwOwnerID = 15; //房主ID uint32 totalOptTime = 16; //总操作时间10秒 uint32 leftOptTime = 17; //还剩多少时间0 };