|
- 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
- };
|