guandan.proto 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. //golang 使用
  2. syntax = "proto2";
  3. import "gdgame/basic/pb/basic.proto";
  4. //guandan message optional from 2000-3000
  5. package guandan;
  6. //加入房间
  7. message CGJoinRoom {
  8. required int64 roomId = 1;
  9. }
  10. extend pb.Message {
  11. optional CGJoinRoom cgJoinRoom = 2001;
  12. }
  13. //玩家基本信息
  14. message GCPlayerInfo{
  15. //玩家id
  16. required int64 playerId = 1;
  17. //玩家头像
  18. required string image =2;
  19. //ip
  20. required string ip=3;
  21. //分数
  22. required int64 score =4;
  23. //位置
  24. required int32 position=5;
  25. //状态:0:在线,1离线
  26. required int32 state=6;
  27. //手牌
  28. optional int32 cardNum=7;
  29. //手牌数
  30. repeated int32 cardList =8;
  31. //实际状态,0:初始化,1准备开始,2正在玩,3游(牌已打完),4结算,5结束
  32. required int32 actualState=9;
  33. //名称
  34. required string name=10;
  35. //男女,0未知,1男,2女
  36. required int32 sex=11;
  37. //金币
  38. optional int64 gold=12;
  39. //托管
  40. optional bool auto=13;
  41. //当前加倍不加倍状态,0未操作,1加倍,2不加倍
  42. optional int32 isDouble=14;
  43. //当前出的牌
  44. repeated int32 cards=15;
  45. //当前轮数是否出过牌
  46. optional bool isPlayCircle=16;
  47. //当钱第几游
  48. optional int32 settleIndex=17;
  49. }
  50. message GCJinGongInfo{
  51. required int64 playerId=1;
  52. repeated int32 cards=2;
  53. }
  54. message GCHuanGongInfo{
  55. required int64 huanGongPlayerId=1;
  56. required int64 jinGongPlayerId=2;
  57. repeated int32 huanGongCards=3;
  58. repeated int32 jinGongCards=4;
  59. }
  60. message GCNeedHuanGongInfo{
  61. repeated int64 playerId=1;
  62. }
  63. message GCKangGongInfo{
  64. required int64 playerId=1;
  65. required int32 cardNum=2;//大王数量
  66. }
  67. //房间基本信息
  68. message GCRoomInfo{
  69. //房间id
  70. required int64 roomId=1;
  71. //房间状态:0初始化,1等侯开始,2 等待操作加倍 ,3开始发牌中,4等待玩家理牌,5等待玩家下牌,6等待玩家操作,7结算,8结束
  72. required int32 state=2;
  73. //当前玩家
  74. optional int64 currentPlayerId=3;
  75. //可能的操作,操作类型:1:进贡,2还贡,3抗贡
  76. repeated Operation currentOperationList=4;
  77. //当前牌
  78. repeated int32 currentCards=6;
  79. //当前牌类型
  80. optional int32 currentCardMethod=7;
  81. //当前局数
  82. optional int32 currentRound=8;
  83. //房间名称
  84. optional string name=9;
  85. //创建者id
  86. required int64 ownerId=10;
  87. //总局数
  88. required int32 totalRound=11;
  89. //断线重连的剩余时间(毫秒)
  90. required int64 dissolveStartTime=12;
  91. //同意玩家
  92. repeated int64 aggreeDissolvePlayers=13;
  93. //位置
  94. required int32 bankerPos=14;
  95. //金牌,就是级牌
  96. repeated int32 jinPais=17;
  97. //分数
  98. required int32 score =20;
  99. //类型,掼蛋是900
  100. required int32 mahjongType=21;
  101. //配置,创建房间时候的字符串
  102. required bytes roomConfig=22;
  103. //打牌对像(0:自己,1:别人)
  104. optional int32 cardPlayObject =23;
  105. //玩家数
  106. required int32 maxPlayers=24;
  107. //当前圈数
  108. required int32 currentQuan=25;
  109. //创建时间
  110. required int64 createTime=27;
  111. //开房类型,0用户开放,1代理开放
  112. optional int32 openRoomType=28;
  113. //最后加入时间
  114. optional int64 forbidJoinTime =29;
  115. //最后游戏时间
  116. optional int64 lastGameTime =30;
  117. //支付方式,0房主支付,1赢的支付,2AA支付
  118. optional int32 payMethod=32;
  119. //模式,0好友房,1金币,2比赛场
  120. optional int32 roomMode=33;
  121. //最后时间
  122. optional int64 lastTime=34;
  123. //当前时间
  124. optional int64 now=35;
  125. //低分
  126. optional int64 di=36;
  127. //活动类型,0无活动,1玩就送
  128. optional int32 activityType = 37;
  129. //是否房间是否一开始显示加倍
  130. optional bool isDouble=38;
  131. //当前打几,数组卡,0为pos%2为0的,1位pos%2的
  132. repeated int32 playCards=39;
  133. //当前打的是哪组的级,pos%2
  134. required int32 posGroup=40;
  135. //当前炸弹翻倍数
  136. optional int32 bombNum=41;
  137. //当前理牌结束时间
  138. optional int64 roundArrangeEndTime=42;
  139. //金币场房间名称
  140. optional string goldRoomName=43;
  141. //加倍结束倒计时
  142. optional int64 doubleEndTime=44;
  143. //已经进贡的信息
  144. repeated GCJinGongInfo jinGongInfoList=45;
  145. //已经还共的信息
  146. repeated GCHuanGongInfo huanGongInfoList=46;
  147. //等待还贡的玩家,如果没有则不需要还贡
  148. optional GCNeedHuanGongInfo needHuanGong=47;
  149. //抗贡信息
  150. repeated GCKangGongInfo kangGongInfoList=48;
  151. }
  152. //加入房间
  153. message GCJoinRoom {
  154. //房间基本信息
  155. required GCRoomInfo roomInfo =1;
  156. //房间牌面信息
  157. //玩家列表
  158. repeated GCPlayerInfo playerInfoList = 2;
  159. }
  160. extend pb.Message{
  161. optional GCJoinRoom gcJoinRoom = 2002;
  162. }
  163. //广播玩家加入
  164. message GCJoinRoomBroadcast{
  165. required GCPlayerInfo gcPlayerInfo =1;
  166. }
  167. extend pb.Message{
  168. optional GCJoinRoomBroadcast gcJoinRoomBroadcast = 2003;
  169. }
  170. //选定庄家
  171. message GCSelectBankerBroadcast{
  172. //庄家位置
  173. required int32 bankerPos = 1;
  174. //摇骰子(掼蛋可以忽略)
  175. repeated int32 shaiZis=2;
  176. }
  177. extend pb.Message{
  178. optional GCSelectBankerBroadcast gcSelectBankerBroadcast = 2004;
  179. }
  180. //发牌
  181. message GCDealCards{
  182. repeated int32 cards =1;
  183. }
  184. extend pb.Message{
  185. optional GCDealCards gcDealCards = 2005;
  186. }
  187. message GCClearCircleBroadcast{
  188. required int64 playerId=1;
  189. }
  190. extend pb.Message{
  191. optional GCClearCircleBroadcast gclearCircleBroadcast = 2006;
  192. }
  193. //打牌
  194. message CGPlayerPlayCard{
  195. repeated int32 card =1;
  196. }
  197. extend pb.Message{
  198. optional CGPlayerPlayCard cgPlayerPlayCard = 2007;
  199. }
  200. //打牌
  201. message GCPlayerPlayCard{
  202. //玩家id
  203. required int64 playerId=1;
  204. //打的牌
  205. repeated int32 card =2;
  206. //当前轮打的最大的牌
  207. repeated int32 circleMaxCards=3;
  208. //打牌是否自动出牌的类型
  209. required bool isAuto=4;
  210. }
  211. extend pb.Message{
  212. optional GCPlayerPlayCard gcPlayerPlayCard = 2008;
  213. }
  214. //打牌
  215. message GCPlayerPlayCardBroadcast{
  216. //玩家id
  217. required int64 playerId=1;
  218. //打的牌
  219. repeated int32 card =2;
  220. //当前轮打的最大的牌
  221. repeated int32 circleMaxCards=3;
  222. //打牌是否自动出牌的类型
  223. required bool isAuto=4;
  224. }
  225. extend pb.Message{
  226. optional GCPlayerPlayCardBroadcast gcPlayerPlayCardBroadcast = 2047;
  227. }
  228. //玩家可以操作的行为
  229. message Operation{
  230. //玩家可以操作类型,操作类型:1:进贡,2还贡,3抗贡,4加倍,5不加倍
  231. required int32 operationType=1;
  232. //需要的牌
  233. repeated int32 cardList=2;
  234. }
  235. //玩家可以操作的行为发送
  236. message GCPlayerOperations{
  237. repeated Operation operationList =1;
  238. }
  239. extend pb.Message{
  240. optional GCPlayerOperations gcPlayerOperations = 2009;
  241. }
  242. //等候玩家出牌
  243. message GCWaitPlayerPlayCard{
  244. //玩家id
  245. required int64 playerId=1;
  246. required bool isFirst=2; //是否第一轮
  247. // required bool isMustPlay=3; //是否一定要打牌,暂不需要
  248. // required bool isCanPlay=4;//是否可以打牌,暂不需要
  249. }
  250. extend pb.Message{
  251. optional GCWaitPlayerPlayCard gcWaitPlayerPlayCard = 2010;
  252. }
  253. //等候玩家广播
  254. message GCWaitPlayerPlayCardBroadcast{
  255. //玩家id
  256. required int64 playerId=1;
  257. required bool isFirst=2;
  258. }
  259. extend pb.Message{
  260. optional GCWaitPlayerPlayCardBroadcast gcWaitPlayerPlayCardBroadcast = 2011;
  261. }
  262. message CGPlayerJinGong{
  263. //玩家id
  264. required int64 playerId=1;
  265. //进贡的牌
  266. repeated int32 card =2;
  267. }
  268. extend pb.Message{
  269. optional CGPlayerJinGong cgPlayerJinGong = 2012;
  270. }
  271. message GCPlayerJinGongBroadcast{
  272. //玩家id
  273. required int64 playerId=1;
  274. //进贡的牌
  275. repeated int32 card =2;
  276. }
  277. extend pb.Message{
  278. optional GCPlayerJinGongBroadcast gcPlayerJinGongBroadcast = 2013;
  279. }
  280. message CGPlayerHuanGong{
  281. //玩家id
  282. required int64 playerId=1;
  283. //还贡的牌
  284. repeated int32 card =2;
  285. }
  286. extend pb.Message{
  287. optional CGPlayerHuanGong cgPlayerHuanGong = 2014;
  288. }
  289. message GCPlayerHuanGongBroadcast{
  290. //玩家id
  291. required int64 huanGongPlayerId=1;
  292. //还贡的牌
  293. repeated int32 huanGongCard =2;
  294. //进玩家id
  295. required int64 jinGongPlayerId=3;
  296. //进贡的牌
  297. repeated int32 jinGongCard =4;
  298. }
  299. extend pb.Message{
  300. optional GCPlayerHuanGongBroadcast gcPlayerHuanGongBroadcast = 2015;
  301. }
  302. message GCPlayerKangGongInfo{
  303. //玩家id
  304. required int64 playerId=1;
  305. //抗贡的牌
  306. repeated int32 card =2;
  307. }
  308. message GCPlayerKangGongBroadcast{
  309. repeated GCPlayerKangGongInfo gcPlayerKangGongInfo=1;
  310. }
  311. extend pb.Message{
  312. optional GCPlayerKangGongBroadcast gcPlayerKangGongBroadcast = 2016;
  313. }
  314. message GCWaitPlayerJinGongBroadcast{
  315. repeated int64 playerId=1;
  316. }
  317. extend pb.Message{
  318. optional GCWaitPlayerJinGongBroadcast gcWaitPlayerJinGongBroadcast = 2017;
  319. }
  320. message GCWaitPlayerHuanGongBroadcast{
  321. repeated int64 playerId=1;
  322. }
  323. extend pb.Message{
  324. optional GCWaitPlayerHuanGongBroadcast gcWaitPlayerHuanGongBroadcast = 2018;
  325. }
  326. //单局结算分数
  327. message RoundSettlePlayerInfo{
  328. //玩家id
  329. required int64 playerId =1;
  330. //分数输赢
  331. required int64 score=2;
  332. //金币输赢
  333. required int64 gold=3;
  334. required int32 index=4;//打完牌的顺序
  335. required int32 doubleRate=5;//加倍倍数
  336. }
  337. //打完后的信息
  338. message GCPlayerYou{
  339. required int64 playerId =1;
  340. repeated RoundSettlePlayerInfo settlePlayerList=2;
  341. }
  342. extend pb.Message{
  343. optional GCPlayerYou gcPlayerYou = 2019;
  344. }
  345. //玩家打完手牌后的通知信息
  346. message GCPlayerEmptyBroadcast{
  347. required int64 playerId =1;
  348. required int32 index=4;//打完牌的顺序
  349. }
  350. extend pb.Message{
  351. optional GCPlayerEmptyBroadcast gcPlayerEmptyBroadcast = 2020;
  352. }
  353. //玩家操作
  354. message CGPlayerOperate{
  355. required Operation operation=1;
  356. //需要的牌
  357. repeated int32 cardList=2;
  358. }
  359. extend pb.Message{
  360. optional CGPlayerOperate cgPlayerOpreate = 2021;
  361. }
  362. //清理桌面
  363. message GCClear{
  364. }
  365. extend pb.Message{
  366. optional GCClear gcClear = 2022;
  367. }
  368. //玩家重新连接
  369. message GCReconnectPlayer{
  370. required int64 playerId =1;
  371. }
  372. extend pb.Message{
  373. optional GCReconnectPlayer gcReconnectPlayer= 2023;
  374. }
  375. //玩家断开连接
  376. message GCDisconnectPlayer{
  377. required int64 playerId=1;
  378. }
  379. extend pb.Message{
  380. optional GCDisconnectPlayer gcDisconnectPlayer= 2024;
  381. }
  382. //离开房间
  383. message CGPlayerLeave{
  384. }
  385. extend pb.Message{
  386. optional CGPlayerLeave cgPlayerLeave=2025;
  387. }
  388. //离开房间
  389. message GCPlayerLeave{
  390. required int64 playerId=1;
  391. }
  392. extend pb.Message{
  393. optional GCPlayerLeave gcPlayerLeave=2026;
  394. }
  395. //准备开始
  396. message CGPlayerStart{
  397. }
  398. extend pb.Message{
  399. optional CGPlayerStart cgPlayerStart=2027;
  400. }
  401. //最后一轮
  402. message GCLastBroadcast{
  403. }
  404. extend pb.Message{
  405. optional GCLastBroadcast gcLastBroadcast = 2028;
  406. }
  407. //准备开始
  408. message GCPlayerStart{
  409. required int64 playerId=1;
  410. }
  411. extend pb.Message{
  412. optional GCPlayerStart gcPlayerStart=2029;
  413. }
  414. //申请解散房间
  415. message CGPlayerDissolve{
  416. required int64 playerId=1;
  417. }
  418. extend pb.Message{
  419. optional CGPlayerDissolve cgPlayerDissolve=2030;
  420. }
  421. //申请解散房间
  422. message GCPlayerDissolve{
  423. required int64 playerId=1;
  424. }
  425. extend pb.Message{
  426. optional GCPlayerDissolve gcPlayerDissolve=2031;
  427. }
  428. //同意或拒绝
  429. message CGPlayerDissolveAgree{
  430. required bool agree=1;
  431. }
  432. extend pb.Message{
  433. optional CGPlayerDissolveAgree cgPlayerDissolveAgree=2032;
  434. }
  435. //同意或拒绝
  436. message GCPlayerDissolveAgree{
  437. required bool agree=1;
  438. required int64 playerId=2;
  439. }
  440. extend pb.Message{
  441. optional GCPlayerDissolveAgree gcPlayerDissolveAgree=2033;
  442. }
  443. //流局
  444. message GCLiuJu{
  445. repeated RoundSettlePlayerInfo settlePlayerList=1;
  446. }
  447. extend pb.Message{
  448. optional GCLiuJu gcLiuJu=2034;
  449. }
  450. //结算
  451. message SettleInfo{
  452. required int32 settleType=1;
  453. required int32 num=2;
  454. }
  455. //总结算玩家数据
  456. message TotalSettlePlayerInfo{
  457. repeated SettleInfo settleInfoList=1;
  458. required int32 totalscore =2;
  459. required int64 playerId=3;
  460. required int32 winRoundNum=4;
  461. }
  462. //总结算
  463. message GCTotalSettle{
  464. repeated TotalSettlePlayerInfo totalSettlePlayerInfoList=1;
  465. }
  466. extend pb.Message {
  467. optional GCTotalSettle gcTotalSettle=2035;
  468. }
  469. //玩家开金
  470. message GCKaiJin{
  471. //打牌
  472. repeated int32 cards=1;
  473. //当前打的是哪组的级,pos%2
  474. required int32 posGroup=2;
  475. }
  476. extend pb.Message{
  477. optional GCKaiJin gcKaiJin = 2036;
  478. }
  479. //玩家断开连接
  480. message CGDisconnectPlayer{
  481. required int64 playerId=1;
  482. required int64 roomId=2;
  483. }
  484. extend pb.Message{
  485. optional CGDisconnectPlayer cgDisconnectPlayer= 2037;
  486. }
  487. //托管
  488. message GCPlayerTuoGuan{
  489. //玩家id
  490. required int64 playerId=1;
  491. }
  492. extend pb.Message{
  493. optional GCPlayerTuoGuan gcPlayerTuoGuan = 2038;
  494. }
  495. //取消托管
  496. message CGPlayerCancelTuoGuan{
  497. }
  498. extend pb.Message{
  499. optional CGPlayerCancelTuoGuan cgPlayerCancelTuoGuan = 2039;
  500. }
  501. //取消托管
  502. message GCPlayerCancelTuoGuan{
  503. //玩家id
  504. required int64 playerId=1;
  505. }
  506. extend pb.Message{
  507. optional GCPlayerCancelTuoGuan gcPlayerCancelTuoGuan = 2040;
  508. }
  509. //开始
  510. message GCRoomRoundStart{
  511. //当前局数
  512. optional int32 currentRound=1;
  513. }
  514. extend pb.Message{
  515. optional GCRoomRoundStart gcRoomRoundStart = 2041;
  516. }
  517. message GCPlayerRemainCardBroadcast{
  518. required int64 playerId=1;
  519. required int32 remainCards=2;
  520. }
  521. extend pb.Message{
  522. optional GCPlayerRemainCardBroadcast gcPlayerRemainCardBroadcast = 2042;
  523. }
  524. message GCPlayerDoubleBroadcast{
  525. required int64 playerId=1;
  526. required bool isDouble=2;
  527. }
  528. extend pb.Message{
  529. optional GCPlayerDoubleBroadcast gcPlayerDoubleBroadcast = 2043;
  530. }
  531. message GCTuanTuanZhuanShowCardBroadcast{
  532. repeated int64 playerIds=1; //所有玩家ID,按照顺序从0开始
  533. required int32 card=2; //相同的一组玩家抽到的牌
  534. repeated int64 sameGroupPlayerIds=3;//相同的这组抽牌玩家
  535. }
  536. extend pb.Message{
  537. optional GCTuanTuanZhuanShowCardBroadcast gcTuanTuanZhuanShowCardBroadcast = 2044;
  538. }
  539. message GCOppositePlayerCard{
  540. repeated int32 card=1;
  541. }
  542. extend pb.Message{
  543. optional GCOppositePlayerCard gcOppositePlayerCard = 2045;
  544. }
  545. message CGPlayerDouble{
  546. required bool isDouble=1;
  547. }
  548. extend pb.Message{
  549. optional CGPlayerDouble cgPlayerDouble = 2046;
  550. }
  551. message GCWaitPlayerDouble{
  552. required int64 endTime=1;
  553. }
  554. extend pb.Message{
  555. optional GCWaitPlayerDouble gcWaitPlayerDouble = 2048;
  556. }
  557. //炸弹翻倍局的炸弹翻倍广播
  558. message GCBombDoubleBroadcast{
  559. required int32 bombNum=1;
  560. }
  561. extend pb.Message{
  562. optional GCBombDoubleBroadcast gcBombDoubleBroadcast = 2050;
  563. }
  564. //接风通知
  565. message GCJieFengBroadcast{
  566. required int64 playerID=1;
  567. }
  568. extend pb.Message{
  569. optional GCJieFengBroadcast gcJieFengBroadcast = 2051;
  570. }
  571. message GCStartArrangeCardBroadcast{
  572. required int64 endTime=1;
  573. }
  574. extend pb.Message{
  575. optional GCStartArrangeCardBroadcast gcStartArrangeCardBroadcast = 2052;
  576. }
  577. message GCEndArrangeCardBroadcast{
  578. required int64 endTime=1;
  579. }
  580. extend pb.Message{
  581. optional GCEndArrangeCardBroadcast gcEndArrangeCardBroadcast = 2053;
  582. }
  583. message GCRestCardInfo{
  584. required int64 playerID=1;
  585. repeated int32 cardList=2;
  586. repeated int32 lastPlayList=3;
  587. }
  588. message GCRestCardBroadcast{
  589. repeated GCRestCardInfo gcRestCardList = 1;
  590. }
  591. extend pb.Message{
  592. optional GCRestCardBroadcast gcRestCardBroadcast = 2054;
  593. }
  594. //聊天
  595. message CGChat{
  596. required int32 typ =1;
  597. required bytes content=2;
  598. }
  599. extend pb.Message{
  600. optional CGChat cgChat = 3001;
  601. }
  602. message GCChat{
  603. required int32 typ=1;
  604. required bytes content=2;
  605. required int64 sender=3;
  606. }
  607. extend pb.Message {
  608. optional GCChat gcChat = 3002;
  609. }
  610. message GCErrorNotice{
  611. required string errorMsg=1;
  612. }
  613. extend pb.Message {
  614. optional GCErrorNotice gcErrorNotice = 4001;
  615. }
  616. message GCKickOutReason{
  617. required int32 reasonCode=1; //编码:1金币不足
  618. optional string reasonMsg=2;//说明
  619. }
  620. extend pb.Message {
  621. optional GCKickOutReason gcKickOutReason = 4002;
  622. }