Message.proto 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. syntax = "proto3";
  2. package BBMessage;
  3. option go_package = "./;message";
  4. // 通用操作结果码
  5. enum GameStatus {
  6. GAME_STATUS_OK = 0;
  7. GAME_STATUS_PLAYER_NIL = 1001; // 玩家不存在
  8. GAME_STATUS_UID_PASSWD_NIL = 1002; // 账号或密码不能为空
  9. GAME_STATUS_UID_ERROR = 1003; // 账号不存在
  10. GAME_STATUS_PASSWD_ERROR = 1004; // 密码错误
  11. GAME_STATUS_ROOM_NOT_EXIT = 1005; // 房间不存在
  12. GAME_STATUS_PB_ERR = 1006;//协议解析报错
  13. GAME_STATUS_INNER_ERR = 1007; // 服务器内部错误
  14. GAME_STATUS_LOGIN_CHECK_ERR = 1055; // 登录校验失败
  15. Player_Status_0=11;//表示玩家在大厅,
  16. Player_Status_1=1;//表示玩家开始匹配,
  17. Player_Status_2=2;//玩家进入游戏房间,
  18. Player_Status_3=3;//ready,玩家落座开始游戏
  19. Player_Status_4=4;//play,
  20. Player_Status_5=5;//胜利后观战,
  21. Player_Status_6=6;//胜利后离开,
  22. Player_Status_7=7;//组队逃跑,
  23. Player_Status_8=8;//逃跑,
  24. Player_Status_9=9;//托管,
  25. Player_Status_10=10;//观战玩家,
  26. //GAME_STATUS_LOGIN_CHECK_ERR = 1055; // 登录校验失败
  27. }
  28. // 心跳包C->S, Cmd.MSGID_Heartbeat_Push(心跳包需要保持,不然玩家会被踢下线)
  29. message HeartbeatPush {
  30. }
  31. // 登录请求 C->S, Cmd.MSGID_Login
  32. message LoginReq {
  33. string uid = 1;//账号ID
  34. string passWd = 2;//密码
  35. }
  36. // 登录响应 S->C, Cmd.MSGID_Login
  37. message LoginRsp {
  38. uint32 result = 1;//结果
  39. int64 playerId = 2;//玩家ID
  40. bool isNew = 3;//是否为新玩家
  41. }
  42. message CreateGameReq {
  43. uint32 mode = 1;//游戏模式,1是经典,2是匹配
  44. uint32 playerNum = 2;//选择玩家人数 2是两个人,4是四个人
  45. uint32 admissionFee = 3;//入场金额 500、1000、2000、5000、10000、20000
  46. bool isRoom = 4;//是否房间内建房
  47. string uid = 5;//玩家id
  48. string name = 6;//玩家名称
  49. string headImg = 7;//玩家头像
  50. optional uint32 money = 8;//玩家金币
  51. optional uint32 chatRoomId = 9;//语聊房id
  52. }
  53. message CreateGameRsp {
  54. optional uint32 roomId =1; //房间id
  55. string uid =2; //用户id
  56. string name = 3;//玩家名称
  57. string headImg = 4;//玩家头像
  58. optional uint32 money = 5;//玩家金币
  59. }
  60. message RoomInfoRsp {
  61. optional uint32 result = 1;//结果
  62. repeated uint32 money=2;
  63. repeated string playerID =3;
  64. repeated string nick=4; //昵称
  65. repeated string headUrl =5; //头像
  66. repeated uint32 seatId =9; //头像
  67. uint32 mode = 6;//游戏模式,1是经典,2是匹配
  68. uint32 playerNum = 7;//选择玩家人数 2是两个人,4是四个人
  69. uint32 admissionFee = 8;//入场金额 500、1000、2000、5000、10000、20000
  70. }
  71. message JoinRoomReq {
  72. string uid = 1;//uID
  73. string name = 2;//玩家名称
  74. string headImg = 3;//玩家头像
  75. optional uint32 money = 4;//玩家金币
  76. optional uint32 roomId = 5;//房间id
  77. bool restartBtn = 6;//是否是restart点击
  78. }
  79. message RoomKickUserReq {
  80. string uid = 1;//uID
  81. }
  82. message RoomKickUserRsp {
  83. string uid = 1;//uID
  84. string name = 2;//玩家名称
  85. }
  86. message RoomQuitUserReq {
  87. string uid = 1;//uID
  88. }
  89. message RoomInviteReq {
  90. string uid = 1;//邀请的玩家id
  91. optional uint32 chatRoomId = 2;//语聊房id
  92. optional uint32 roomId = 3;//游戏房间id
  93. }
  94. message RoomInviteRsp {
  95. optional uint32 result = 1;//结果
  96. }
  97. message RoomQuitUserRsp {
  98. string uid = 1;//uID
  99. string name = 2;//玩家名称
  100. }
  101. message JoinRoomInfoRsp {
  102. optional uint32 result = 1;//结果
  103. string money=2;
  104. string playerID =3;
  105. uint32 playerStatus=4; // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑
  106. uint32 tableID=5; // 桌子ID
  107. optional uint32 seatID=6; //座位号
  108. string nick=7; //昵称
  109. string headUrl =8; //头像
  110. string gender =9; //性别
  111. optional uint32 playerNum=10; // 玩家数量
  112. uint32 playerType=11; // 玩家类型1是正常玩家2是机器人
  113. }
  114. message RoomInfoReq {
  115. optional uint32 roomId = 1;//房间id
  116. string uid = 2;//玩家id
  117. }
  118. message CancelMatchReq {
  119. }
  120. message CancelMatchRsp {
  121. optional uint32 result = 1;//结果0表示成功,其他表示失败
  122. string uid = 2;//用户id
  123. }
  124. message MatchRsp {
  125. optional uint32 result = 1;//结果 0表示成功,其他表示失败
  126. }
  127. message MatchJoinUserRsp {
  128. optional uint32 result = 1;//结果
  129. string playerID =2;
  130. string nick=3; //昵称
  131. string headUrl =4; //头像
  132. string gender =5; //性别
  133. uint32 playerNum=6; // 玩家数量
  134. }
  135. message RoomStartGameReq {
  136. }
  137. message RoomStartGameRsp {
  138. }
  139. //获取玩家数据
  140. message GetUserInfoReq {
  141. string uid = 1;//账号ID
  142. uint32 roomId = 2;//房间ID
  143. }
  144. //获取玩家数据
  145. message KickUserReq {
  146. string uid = 1;//账号ID
  147. }
  148. message GetUserInfoRsp {
  149. optional uint32 result = 1;//结果
  150. repeated string money=2;
  151. repeated string playerID =3;
  152. repeated uint32 playerStatus=4; // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑
  153. repeated uint32 tableID=5; // 桌子ID
  154. repeated uint32 seatID=6; //座位号
  155. repeated string nick=7; //昵称
  156. repeated string headUrl =8; //头像
  157. repeated string gender =9; //性别
  158. uint32 playerNum=10; // 玩家数量
  159. repeated uint32 playerType=11; // 玩家类型1是正常玩家2是机器人
  160. optional uint32 selfSeatId=12; // 玩家座位号
  161. optional uint32 watchingPlayers=13; // 观战玩家数量
  162. optional uint32 countdown=14; // 游戏结束倒计时
  163. uint32 gameType=15; // 游戏类型,1经典,2匹配
  164. }
  165. message TKickEventRsp {
  166. optional uint32 PlayerNum=1; // 被踢玩家数
  167. repeated KickPlayerRsp kickPlayer=2;
  168. }
  169. message KickPlayerRsp {
  170. optional uint32 seatId=1; // 被踢玩家
  171. optional uint32 planeNum=2; // 被踢飞机数
  172. string planeID=3; // 飞机ID
  173. }
  174. message FinishEventRsp {
  175. optional uint32 seatId=1; // 到达玩家
  176. string planeId=2;// 飞机ID
  177. }
  178. message PlayerRsp {
  179. optional uint32 seatId=1; // 到达玩家
  180. repeated PlaneRsp planes=2;// 飞机
  181. }
  182. message PlaneRsp {
  183. string planeId=1;// 飞机ID
  184. optional uint32 currentIndex=2; // 飞机下标
  185. optional uint32 planeStatus=3; // 0是未起飞,1是移动中,2是到达终点
  186. }
  187. message RoomDjsRsp {
  188. optional uint32 time=1;// 倒计时时间
  189. }
  190. //加入房间通知其他玩家
  191. message RoomJoinUserRsp {
  192. optional uint32 result = 1;//结果
  193. string money=2;
  194. string playerID =3;
  195. uint32 playerStatus=4; // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑
  196. uint32 tableID=5; // 桌子ID
  197. uint32 seatID=6; //座位号
  198. string nick=7; //昵称
  199. string headUrl =8; //头像
  200. string gender =9; //性别
  201. uint32 playerNum=10; // 玩家数量
  202. uint32 playerType=11; // 玩家类型1是正常玩家2是机器人
  203. }
  204. //1,通知开始掷子并且开始倒计时
  205. message GameStartRsp {
  206. optional uint32 result = 1;//结果
  207. optional uint32 seatID = 2;//掷子玩家座位号
  208. optional uint32 castSecond = 3;//结果
  209. }
  210. // 2,客户端请求掷子,空消息
  211. message ThrowTheDiceReq {
  212. }
  213. //3,通知掷子结果
  214. message ThrowTheDiceRsp {
  215. optional uint32 result = 1;//结果 0表示成功,其他表示失败
  216. optional uint32 seatID = 2;//座位id
  217. uint32 point = 3;//掷子点数
  218. optional uint32 skipReason = 4;//玩家是否可以行棋,不为0表示不能行棋
  219. optional uint32 nextTurn=5;//玩家不能行走时下一玩家
  220. optional uint32 autoMove=6;//1代表正常 2自动骰子 3自动起飞,4自动行走
  221. repeated PlayerRsp players=7;
  222. }
  223. //4,客户端请求起飞
  224. message PlaneStartReq {
  225. string planeID = 1;//飞机id,从0开始
  226. }
  227. //5,通知起飞结果
  228. message PlaneStartRsp {
  229. optional uint32 result = 1;//结果
  230. optional uint32 seatID = 2;//起飞玩家座位id
  231. string planeID = 3;//起飞飞机ID
  232. optional uint32 nextTurn = 4;//下一个玩家座位id
  233. uint32 playerNum=5;//玩家数
  234. repeated PlayerRsp players=6;
  235. }
  236. // 6,客户端请求行走
  237. message MoveReq {
  238. string planeID = 1;//飞机id,从0开始
  239. }
  240. //7,通知移动结果
  241. message MoveRsp {
  242. optional uint32 result = 1;//0表示成功,其他表示失败
  243. optional uint32 seatID = 2;//起飞玩家座位id
  244. string planeID = 3;//行走飞机ID
  245. optional uint32 step = 4;//行走的步数
  246. optional uint32 curPosIndex=5;// 棋子当前相对于行走路线的索引
  247. optional uint32 nextTurn = 6;//下一个玩家
  248. optional uint32 hasWin = 7;//玩家是否已经获胜,1表示已经获胜,0表示还没有获胜
  249. uint32 playerNum=8;//玩家数
  250. FinishEventRsp finishEvent=9;
  251. TKickEventRsp tKickEvent=10;
  252. repeated PlayerRsp players=11;
  253. }
  254. //9,客户端请求托管
  255. message TrusteeshipReq {
  256. bool trust = 1;//true表示托管,2表示不托管
  257. }
  258. //8,通知玩家托管
  259. message TrusteeshipRsp {
  260. bool trust = 1;//true表示托管,false表示不托管
  261. optional uint32 seatID = 2;//座位id
  262. }
  263. //退出游戏请求
  264. message QuitReq {
  265. }
  266. //通知玩家退出游戏,直接剔除这个玩家
  267. message QuitRsp {
  268. uint32 playerStatus=1; // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑 10,观战玩家
  269. optional uint32 seatID=2; //座位号
  270. optional uint32 nextTurn=3; //下一个座位号
  271. string uid =4; //用户id
  272. }
  273. //通知玩家游戏结束
  274. message EndGameRsp {
  275. repeated uint32 seatID =1; //座位号
  276. repeated string playerStatus =2; //玩家状态
  277. repeated uint32 kick =3; //- 玩家当局撞棋数量
  278. repeated uint32 beKick =4; //- 玩家当局被撞棋数量
  279. repeated uint32 money =5; //- 胜方当局赢得金额
  280. }
  281. //拉房失败解散游戏
  282. message DissolveTheGameReq {
  283. }
  284. //拉房失败解散游戏
  285. message DissolveTheGameRsp {
  286. }
  287. //pb解析失败
  288. message PbErrorRsp {
  289. string messageData =1; //错误信息
  290. }
  291. ////////////////////////////房间消息//////////////////////////////
  292. // 拉取房间列表 C->S, Cmd.MSGID_Get_Room_List
  293. message GetRoomListReq {
  294. }
  295. // 拉取房间列表 S->C, Cmd.MSGID_Get_Room_List
  296. message GetRoomListRsp {
  297. uint32 result = 1; //结果
  298. }
  299. // 踢人原因
  300. enum KickReason {
  301. KICK_REASON_UNKNOWN = 0;
  302. KICK_REASON_LOGIN_ELSEWHERE = 1;
  303. KICK_REASON_HEARTBEAT_TIMEOUT = 2;
  304. KICK_REASON_NOT_LOGIN = 3;
  305. }
  306. // 踢人通知 S->C, Cmd.MSGID_Kick_Notify
  307. message KickNotify {
  308. uint32 reason = 1;
  309. }
  310. //退出客户端房主变更
  311. message RoomChangeOfHomeownerRsp {
  312. string uid = 1;//玩家ID
  313. }
  314. message GetUserMoneyReq {
  315. string uid = 1;//玩家ID
  316. }
  317. message GetUserMoneyRsp {
  318. optional uint32 money = 1;//玩家金币
  319. }
  320. message DiscReq {
  321. string uid = 1;//玩家ID
  322. uint32 roomId = 2;//房间ID
  323. }
  324. message RoomQuitReq {
  325. }
  326. message RoomRestartReq {
  327. }
  328. message SendMsgReq{
  329. string data = 1;//消息数据
  330. }
  331. message SendMsgRsp{
  332. string data = 1;//消息数据
  333. string uid = 2;//消息数据
  334. }