//golang 使用 syntax = "proto2"; import "gdgame/basic/pb/basic.proto"; //guandan message optional from 2000-3000 package guandan; //加入房间 message CGJoinRoom { required int64 roomId = 1; } extend pb.Message { optional CGJoinRoom cgJoinRoom = 2001; } //玩家基本信息 message GCPlayerInfo{ //玩家id required int64 playerId = 1; //玩家头像 required string image =2; //ip required string ip=3; //分数 required int64 score =4; //位置 required int32 position=5; //状态:0:在线,1离线 required int32 state=6; //手牌 optional int32 cardNum=7; //手牌数 repeated int32 cardList =8; //实际状态,0:初始化,1准备开始,2正在玩,3游(牌已打完),4结算,5结束 required int32 actualState=9; //名称 required string name=10; //男女,0未知,1男,2女 required int32 sex=11; //金币 optional int64 gold=12; //托管 optional bool auto=13; //当前加倍不加倍状态,0未操作,1加倍,2不加倍 optional int32 isDouble=14; //当前出的牌 repeated int32 cards=15; //当前轮数是否出过牌 optional bool isPlayCircle=16; //当钱第几游 optional int32 settleIndex=17; } message GCJinGongInfo{ required int64 playerId=1; repeated int32 cards=2; } message GCHuanGongInfo{ required int64 huanGongPlayerId=1; required int64 jinGongPlayerId=2; repeated int32 huanGongCards=3; repeated int32 jinGongCards=4; } message GCNeedHuanGongInfo{ repeated int64 playerId=1; } message GCKangGongInfo{ required int64 playerId=1; required int32 cardNum=2;//大王数量 } //房间基本信息 message GCRoomInfo{ //房间id required int64 roomId=1; //房间状态:0初始化,1等侯开始,2 等待操作加倍 ,3开始发牌中,4等待玩家理牌,5等待玩家下牌,6等待玩家操作,7结算,8结束 required int32 state=2; //当前玩家 optional int64 currentPlayerId=3; //可能的操作,操作类型:1:进贡,2还贡,3抗贡 repeated Operation currentOperationList=4; //当前牌 repeated int32 currentCards=6; //当前牌类型 optional int32 currentCardMethod=7; //当前局数 optional int32 currentRound=8; //房间名称 optional string name=9; //创建者id required int64 ownerId=10; //总局数 required int32 totalRound=11; //断线重连的剩余时间(毫秒) required int64 dissolveStartTime=12; //同意玩家 repeated int64 aggreeDissolvePlayers=13; //位置 required int32 bankerPos=14; //金牌,就是级牌 repeated int32 jinPais=17; //分数 required int32 score =20; //类型,掼蛋是900 required int32 mahjongType=21; //配置,创建房间时候的字符串 required bytes roomConfig=22; //打牌对像(0:自己,1:别人) optional int32 cardPlayObject =23; //玩家数 required int32 maxPlayers=24; //当前圈数 required int32 currentQuan=25; //创建时间 required int64 createTime=27; //开房类型,0用户开放,1代理开放 optional int32 openRoomType=28; //最后加入时间 optional int64 forbidJoinTime =29; //最后游戏时间 optional int64 lastGameTime =30; //支付方式,0房主支付,1赢的支付,2AA支付 optional int32 payMethod=32; //模式,0好友房,1金币,2比赛场 optional int32 roomMode=33; //最后时间 optional int64 lastTime=34; //当前时间 optional int64 now=35; //低分 optional int64 di=36; //活动类型,0无活动,1玩就送 optional int32 activityType = 37; //是否房间是否一开始显示加倍 optional bool isDouble=38; //当前打几,数组卡,0为pos%2为0的,1位pos%2的 repeated int32 playCards=39; //当前打的是哪组的级,pos%2 required int32 posGroup=40; //当前炸弹翻倍数 optional int32 bombNum=41; //当前理牌结束时间 optional int64 roundArrangeEndTime=42; //金币场房间名称 optional string goldRoomName=43; //加倍结束倒计时 optional int64 doubleEndTime=44; //已经进贡的信息 repeated GCJinGongInfo jinGongInfoList=45; //已经还共的信息 repeated GCHuanGongInfo huanGongInfoList=46; //等待还贡的玩家,如果没有则不需要还贡 optional GCNeedHuanGongInfo needHuanGong=47; //抗贡信息 repeated GCKangGongInfo kangGongInfoList=48; } //加入房间 message GCJoinRoom { //房间基本信息 required GCRoomInfo roomInfo =1; //房间牌面信息 //玩家列表 repeated GCPlayerInfo playerInfoList = 2; } extend pb.Message{ optional GCJoinRoom gcJoinRoom = 2002; } //广播玩家加入 message GCJoinRoomBroadcast{ required GCPlayerInfo gcPlayerInfo =1; } extend pb.Message{ optional GCJoinRoomBroadcast gcJoinRoomBroadcast = 2003; } //选定庄家 message GCSelectBankerBroadcast{ //庄家位置 required int32 bankerPos = 1; //摇骰子(掼蛋可以忽略) repeated int32 shaiZis=2; } extend pb.Message{ optional GCSelectBankerBroadcast gcSelectBankerBroadcast = 2004; } //发牌 message GCDealCards{ repeated int32 cards =1; } extend pb.Message{ optional GCDealCards gcDealCards = 2005; } message GCClearCircleBroadcast{ required int64 playerId=1; } extend pb.Message{ optional GCClearCircleBroadcast gclearCircleBroadcast = 2006; } //打牌 message CGPlayerPlayCard{ repeated int32 card =1; } extend pb.Message{ optional CGPlayerPlayCard cgPlayerPlayCard = 2007; } //打牌 message GCPlayerPlayCard{ //玩家id required int64 playerId=1; //打的牌 repeated int32 card =2; //当前轮打的最大的牌 repeated int32 circleMaxCards=3; //打牌是否自动出牌的类型 required bool isAuto=4; } extend pb.Message{ optional GCPlayerPlayCard gcPlayerPlayCard = 2008; } //打牌 message GCPlayerPlayCardBroadcast{ //玩家id required int64 playerId=1; //打的牌 repeated int32 card =2; //当前轮打的最大的牌 repeated int32 circleMaxCards=3; //打牌是否自动出牌的类型 required bool isAuto=4; } extend pb.Message{ optional GCPlayerPlayCardBroadcast gcPlayerPlayCardBroadcast = 2047; } //玩家可以操作的行为 message Operation{ //玩家可以操作类型,操作类型:1:进贡,2还贡,3抗贡,4加倍,5不加倍 required int32 operationType=1; //需要的牌 repeated int32 cardList=2; } //玩家可以操作的行为发送 message GCPlayerOperations{ repeated Operation operationList =1; } extend pb.Message{ optional GCPlayerOperations gcPlayerOperations = 2009; } //等候玩家出牌 message GCWaitPlayerPlayCard{ //玩家id required int64 playerId=1; required bool isFirst=2; //是否第一轮 // required bool isMustPlay=3; //是否一定要打牌,暂不需要 // required bool isCanPlay=4;//是否可以打牌,暂不需要 } extend pb.Message{ optional GCWaitPlayerPlayCard gcWaitPlayerPlayCard = 2010; } //等候玩家广播 message GCWaitPlayerPlayCardBroadcast{ //玩家id required int64 playerId=1; required bool isFirst=2; } extend pb.Message{ optional GCWaitPlayerPlayCardBroadcast gcWaitPlayerPlayCardBroadcast = 2011; } message CGPlayerJinGong{ //玩家id required int64 playerId=1; //进贡的牌 repeated int32 card =2; } extend pb.Message{ optional CGPlayerJinGong cgPlayerJinGong = 2012; } message GCPlayerJinGongBroadcast{ //玩家id required int64 playerId=1; //进贡的牌 repeated int32 card =2; } extend pb.Message{ optional GCPlayerJinGongBroadcast gcPlayerJinGongBroadcast = 2013; } message CGPlayerHuanGong{ //玩家id required int64 playerId=1; //还贡的牌 repeated int32 card =2; } extend pb.Message{ optional CGPlayerHuanGong cgPlayerHuanGong = 2014; } message GCPlayerHuanGongBroadcast{ //玩家id required int64 huanGongPlayerId=1; //还贡的牌 repeated int32 huanGongCard =2; //进玩家id required int64 jinGongPlayerId=3; //进贡的牌 repeated int32 jinGongCard =4; } extend pb.Message{ optional GCPlayerHuanGongBroadcast gcPlayerHuanGongBroadcast = 2015; } message GCPlayerKangGongInfo{ //玩家id required int64 playerId=1; //抗贡的牌 repeated int32 card =2; } message GCPlayerKangGongBroadcast{ repeated GCPlayerKangGongInfo gcPlayerKangGongInfo=1; } extend pb.Message{ optional GCPlayerKangGongBroadcast gcPlayerKangGongBroadcast = 2016; } message GCWaitPlayerJinGongBroadcast{ repeated int64 playerId=1; } extend pb.Message{ optional GCWaitPlayerJinGongBroadcast gcWaitPlayerJinGongBroadcast = 2017; } message GCWaitPlayerHuanGongBroadcast{ repeated int64 playerId=1; } extend pb.Message{ optional GCWaitPlayerHuanGongBroadcast gcWaitPlayerHuanGongBroadcast = 2018; } //单局结算分数 message RoundSettlePlayerInfo{ //玩家id required int64 playerId =1; //分数输赢 required int64 score=2; //金币输赢 required int64 gold=3; required int32 index=4;//打完牌的顺序 required int32 doubleRate=5;//加倍倍数 } //打完后的信息 message GCPlayerYou{ required int64 playerId =1; repeated RoundSettlePlayerInfo settlePlayerList=2; } extend pb.Message{ optional GCPlayerYou gcPlayerYou = 2019; } //玩家打完手牌后的通知信息 message GCPlayerEmptyBroadcast{ required int64 playerId =1; required int32 index=4;//打完牌的顺序 } extend pb.Message{ optional GCPlayerEmptyBroadcast gcPlayerEmptyBroadcast = 2020; } //玩家操作 message CGPlayerOperate{ required Operation operation=1; //需要的牌 repeated int32 cardList=2; } extend pb.Message{ optional CGPlayerOperate cgPlayerOpreate = 2021; } //清理桌面 message GCClear{ } extend pb.Message{ optional GCClear gcClear = 2022; } //玩家重新连接 message GCReconnectPlayer{ required int64 playerId =1; } extend pb.Message{ optional GCReconnectPlayer gcReconnectPlayer= 2023; } //玩家断开连接 message GCDisconnectPlayer{ required int64 playerId=1; } extend pb.Message{ optional GCDisconnectPlayer gcDisconnectPlayer= 2024; } //离开房间 message CGPlayerLeave{ } extend pb.Message{ optional CGPlayerLeave cgPlayerLeave=2025; } //离开房间 message GCPlayerLeave{ required int64 playerId=1; } extend pb.Message{ optional GCPlayerLeave gcPlayerLeave=2026; } //准备开始 message CGPlayerStart{ } extend pb.Message{ optional CGPlayerStart cgPlayerStart=2027; } //最后一轮 message GCLastBroadcast{ } extend pb.Message{ optional GCLastBroadcast gcLastBroadcast = 2028; } //准备开始 message GCPlayerStart{ required int64 playerId=1; } extend pb.Message{ optional GCPlayerStart gcPlayerStart=2029; } //申请解散房间 message CGPlayerDissolve{ required int64 playerId=1; } extend pb.Message{ optional CGPlayerDissolve cgPlayerDissolve=2030; } //申请解散房间 message GCPlayerDissolve{ required int64 playerId=1; } extend pb.Message{ optional GCPlayerDissolve gcPlayerDissolve=2031; } //同意或拒绝 message CGPlayerDissolveAgree{ required bool agree=1; } extend pb.Message{ optional CGPlayerDissolveAgree cgPlayerDissolveAgree=2032; } //同意或拒绝 message GCPlayerDissolveAgree{ required bool agree=1; required int64 playerId=2; } extend pb.Message{ optional GCPlayerDissolveAgree gcPlayerDissolveAgree=2033; } //流局 message GCLiuJu{ repeated RoundSettlePlayerInfo settlePlayerList=1; } extend pb.Message{ optional GCLiuJu gcLiuJu=2034; } //结算 message SettleInfo{ required int32 settleType=1; required int32 num=2; } //总结算玩家数据 message TotalSettlePlayerInfo{ repeated SettleInfo settleInfoList=1; required int32 totalscore =2; required int64 playerId=3; required int32 winRoundNum=4; } //总结算 message GCTotalSettle{ repeated TotalSettlePlayerInfo totalSettlePlayerInfoList=1; } extend pb.Message { optional GCTotalSettle gcTotalSettle=2035; } //玩家开金 message GCKaiJin{ //打牌 repeated int32 cards=1; //当前打的是哪组的级,pos%2 required int32 posGroup=2; } extend pb.Message{ optional GCKaiJin gcKaiJin = 2036; } //玩家断开连接 message CGDisconnectPlayer{ required int64 playerId=1; required int64 roomId=2; } extend pb.Message{ optional CGDisconnectPlayer cgDisconnectPlayer= 2037; } //托管 message GCPlayerTuoGuan{ //玩家id required int64 playerId=1; } extend pb.Message{ optional GCPlayerTuoGuan gcPlayerTuoGuan = 2038; } //取消托管 message CGPlayerCancelTuoGuan{ } extend pb.Message{ optional CGPlayerCancelTuoGuan cgPlayerCancelTuoGuan = 2039; } //取消托管 message GCPlayerCancelTuoGuan{ //玩家id required int64 playerId=1; } extend pb.Message{ optional GCPlayerCancelTuoGuan gcPlayerCancelTuoGuan = 2040; } //开始 message GCRoomRoundStart{ //当前局数 optional int32 currentRound=1; } extend pb.Message{ optional GCRoomRoundStart gcRoomRoundStart = 2041; } message GCPlayerRemainCardBroadcast{ required int64 playerId=1; required int32 remainCards=2; } extend pb.Message{ optional GCPlayerRemainCardBroadcast gcPlayerRemainCardBroadcast = 2042; } message GCPlayerDoubleBroadcast{ required int64 playerId=1; required bool isDouble=2; } extend pb.Message{ optional GCPlayerDoubleBroadcast gcPlayerDoubleBroadcast = 2043; } message GCTuanTuanZhuanShowCardBroadcast{ repeated int64 playerIds=1; //所有玩家ID,按照顺序从0开始 required int32 card=2; //相同的一组玩家抽到的牌 repeated int64 sameGroupPlayerIds=3;//相同的这组抽牌玩家 } extend pb.Message{ optional GCTuanTuanZhuanShowCardBroadcast gcTuanTuanZhuanShowCardBroadcast = 2044; } message GCOppositePlayerCard{ repeated int32 card=1; } extend pb.Message{ optional GCOppositePlayerCard gcOppositePlayerCard = 2045; } message CGPlayerDouble{ required bool isDouble=1; } extend pb.Message{ optional CGPlayerDouble cgPlayerDouble = 2046; } message GCWaitPlayerDouble{ required int64 endTime=1; } extend pb.Message{ optional GCWaitPlayerDouble gcWaitPlayerDouble = 2048; } //炸弹翻倍局的炸弹翻倍广播 message GCBombDoubleBroadcast{ required int32 bombNum=1; } extend pb.Message{ optional GCBombDoubleBroadcast gcBombDoubleBroadcast = 2050; } //接风通知 message GCJieFengBroadcast{ required int64 playerID=1; } extend pb.Message{ optional GCJieFengBroadcast gcJieFengBroadcast = 2051; } message GCStartArrangeCardBroadcast{ required int64 endTime=1; } extend pb.Message{ optional GCStartArrangeCardBroadcast gcStartArrangeCardBroadcast = 2052; } message GCEndArrangeCardBroadcast{ required int64 endTime=1; } extend pb.Message{ optional GCEndArrangeCardBroadcast gcEndArrangeCardBroadcast = 2053; } message GCRestCardInfo{ required int64 playerID=1; repeated int32 cardList=2; repeated int32 lastPlayList=3; } message GCRestCardBroadcast{ repeated GCRestCardInfo gcRestCardList = 1; } extend pb.Message{ optional GCRestCardBroadcast gcRestCardBroadcast = 2054; } //聊天 message CGChat{ required int32 typ =1; required bytes content=2; } extend pb.Message{ optional CGChat cgChat = 3001; } message GCChat{ required int32 typ=1; required bytes content=2; required int64 sender=3; } extend pb.Message { optional GCChat gcChat = 3002; } message GCErrorNotice{ required string errorMsg=1; } extend pb.Message { optional GCErrorNotice gcErrorNotice = 4001; } message GCKickOutReason{ required int32 reasonCode=1; //编码:1金币不足 optional string reasonMsg=2;//说明 } extend pb.Message { optional GCKickOutReason gcKickOutReason = 4002; }