201 lines
5.8 KiB
Protocol Buffer
201 lines
5.8 KiB
Protocol Buffer
syntax = "proto3";
|
||
package tala;
|
||
option go_package = "mongo.games.com/game/protocol/tala";
|
||
|
||
//操作结果
|
||
enum OpResultCode {
|
||
OPRC_Sucess = 0; //成功
|
||
OPRC_Error = 1; //失败
|
||
}
|
||
|
||
//tala
|
||
enum TaLaPacketID {
|
||
PACKET_TaLaZERO = 0;// 弃用消息号
|
||
PACKET_SCTaLaRoomInfo = 5530;//房间信息
|
||
PACKET_SCTaLaRoomState = 5531;//房间状态
|
||
PACKET_CSTaLaPlayerOp = 5532;//玩家操作
|
||
PACKET_SCTaLaPlayerOp = 5533;//玩家操作
|
||
PACKET_SCTaLaPlayerEnter = 5534;//玩家进入
|
||
PACKET_SCTaLaPlayerLeave = 5535;//玩家离开
|
||
PACKET_SCTaLaHandCard = 5536;//发手牌
|
||
PACKET_SCTaLaShowPhom = 5537;//亮phom
|
||
PACKET_SCTaLaOpPhom = 5538;//组phom
|
||
PACKET_SCTaLaGameBilled = 5539;//结算
|
||
PACKET_SCTaLaCurOpPos = 5540;//当前操作的玩家位置
|
||
PACKET_SCTaLaSmallGameBilled = 5541;//小结算
|
||
PACKET_SCTaLaUpdateMasterSnid = 5542;//房主更换
|
||
PACKET_SCTaLaUpdateCardsNum = 5543;//更新桩牌数
|
||
PACKET_SCTaLaMoveCard = 5544;//移牌
|
||
PACKET_SCTaLaRecommendPhom = 5545;//推荐的phoms
|
||
PACKET_SCTaLaFirstOpPos = 5546;//首出玩家
|
||
}
|
||
|
||
|
||
//玩家信息
|
||
message TaLaPlayerData {
|
||
string Name = 1; //名字
|
||
int32 SnId = 2; //账号
|
||
int32 Head = 3; //头像
|
||
int32 Sex = 4; //性别
|
||
repeated string Params = 5; //其他数据 如:昵称 头像 性别 ip 等
|
||
int64 Coin = 6; //金币
|
||
int32 Pos = 7; //座位位置
|
||
int32 Flag = 8; //二进制标记 详见:数据字典
|
||
int32 Longitude = 9;//经度
|
||
int32 Latitude = 10;//纬度
|
||
string City = 11; //城市 例:伦敦
|
||
int32 LastOp = 12; //如上:玩家操作
|
||
int32 VIP = 13; //玩家VIP等级
|
||
int32 HeadOutLine = 14; //头像框
|
||
int32 NiceId = 15; //靓号[机器人用]
|
||
int64 GameCoin = 16; //游戏内带入的金币
|
||
int32 RoleId = 17; //使用中的角色id
|
||
map<int32,int32>Items = 18;
|
||
repeated int32 Cards = 19; //手牌
|
||
repeated int32 ChiCards = 20; //已吃的牌
|
||
repeated int32 DelCards = 21; //出过的手牌
|
||
repeated Phoms Phoms = 22;//亮出的phom
|
||
repeated Phoms Chi2Phoms = 23;//因吃牌而组成phom的牌
|
||
}
|
||
|
||
message LastDelCard {
|
||
repeated int32 Cards = 1;
|
||
}
|
||
|
||
//房间信息
|
||
message SCTaLaRoomInfo {
|
||
int32 RoomId = 1; //房间id
|
||
int32 Creator = 2; //创建者SnId
|
||
int32 GameId = 3; //游戏id
|
||
int32 RoomMode = 4;//游戏模式
|
||
repeated int32 Params = 5; //规则参数
|
||
int32 BankerPos = 6;//庄家位置
|
||
int32 State = 7; //房间当前状态,如上
|
||
int32 TimeOut = 8; //等待剩余时间 单位:秒
|
||
repeated TaLaPlayerData Players = 9; //房间内的玩家信息
|
||
int32 AudienceNum = 10; //当前观战人数
|
||
int32 CurOpIdx = 11; //当前等待操作的玩家
|
||
repeated LastDelCard LastDelCards = 12; //上两手出的牌
|
||
int32 NumOfGames = 13; //当前局数
|
||
int32 TotalOfGames = 14; //总局数
|
||
int32 MasterSnid = 15;//房主
|
||
int32 BaseScore = 16 ;//游戏底分
|
||
int32 MaxPlayerNum = 17 ;//最大游戏人数
|
||
int32 CardsNum = 18 ;//桩牌数
|
||
bool IsLast = 19 ;//是不是最后一轮
|
||
}
|
||
|
||
//房间状态更新
|
||
message SCTaLaRoomState {
|
||
int32 State = 1; //房间当前状态
|
||
repeated int64 Params = 2; //参数
|
||
}
|
||
|
||
//玩家操作
|
||
message CSTaLaPlayerOp {
|
||
int32 OpCode = 1; //1.吃住 2.抽牌 3.出牌 4.组phom 5.亮phom
|
||
repeated int64 OpParam = 2;
|
||
}
|
||
message SCTaLaPlayerOp {
|
||
int32 OpCode = 1; //1.吃住 2.抽牌 3.出牌 4.组phom 5.亮phom
|
||
repeated int64 OpParam = 2; //参数
|
||
int32 SnId = 3; //玩家位置
|
||
OpResultCode OpRetCode = 4; //返回错误码,详见:enums.proto
|
||
}
|
||
|
||
//玩家进入
|
||
message SCTaLaPlayerEnter {
|
||
TaLaPlayerData Data = 1; //玩家数据
|
||
}
|
||
|
||
//玩家离开
|
||
message SCTaLaPlayerLeave {
|
||
int32 Pos = 1; //玩家位置
|
||
}
|
||
|
||
//结算结果
|
||
message TaLaPlayerGameBilled {
|
||
int32 SnId = 1; //玩家
|
||
repeated int32 Cards = 2; // 手牌
|
||
int64 WinCoin = 3;//输赢金额
|
||
int64 GameCoin = 4;//结算后身上余额
|
||
int32 IsWin = 5; //输赢 赢1 输2 平0
|
||
int32 Rank = 6;//排名 -1:有胡的玩家 0123->1234排名 4最后一名是瘪
|
||
repeated Phoms Phoms = 7; //组成的所有phom
|
||
}
|
||
|
||
message SCTaLaGameBilled {
|
||
repeated TaLaPlayerGameBilled Datas = 1;
|
||
}
|
||
|
||
//小结算结果
|
||
message SCTaLaSmallGameBilled {
|
||
int32 WinPos = 1; //赢家
|
||
int64 WinPosCoin = 2;//结算后赢家身上余额
|
||
int32 LosePos = 3; //输家
|
||
int64 LosePosCoin = 4;//结算后输家身上余额
|
||
int64 WinCoin = 5;//赢金额
|
||
int64 LoseCoin = 6;//输金额
|
||
}
|
||
|
||
//发手牌
|
||
message SCTaLaHandCard {
|
||
repeated int32 Cards = 1; //手牌
|
||
}
|
||
|
||
message Phoms {
|
||
repeated int32 Phom = 1;
|
||
}
|
||
|
||
//ShowPhom
|
||
message SCTaLaShowPhom {
|
||
int32 Snid = 1;
|
||
repeated int32 Cards = 2; //垃圾牌
|
||
repeated Phoms Phoms = 3; //组成的所有phom
|
||
OpResultCode OpRetCode = 4; //返回错误码
|
||
}
|
||
|
||
message MapSnidCards {
|
||
map<int32,int32> SnidCard = 1;//key:snid value:card
|
||
}
|
||
|
||
//组Phom
|
||
message SCTaLaOpPhom {
|
||
int32 Snid = 1;
|
||
repeated MapSnidCards MapSnidCard = 2;
|
||
OpResultCode OpRetCode = 3; //返回错误码
|
||
}
|
||
|
||
message SCTaLaCurOpPos{
|
||
int32 Pos = 1; //座位位置
|
||
int32 Card = 2; //上家出的牌
|
||
}
|
||
|
||
message SCTaLaUpdateMasterSnid{
|
||
int32 MasterSnid = 1;//房主
|
||
}
|
||
|
||
message SCTaLaUpdateCardsNum{
|
||
int32 CardsNum = 1;//桩牌数
|
||
bool IsLast = 2;//最后一轮
|
||
}
|
||
|
||
message SCTaLaMoveCard{
|
||
int32 Snid = 1;//移牌的玩家snid
|
||
int32 DstSnid = 2;//目标玩家
|
||
int32 Card = 3;//移动的牌
|
||
}
|
||
|
||
//RecommendPhom
|
||
message SCTaLaRecommendPhom {
|
||
int32 Snid = 1;
|
||
repeated int32 cards = 2;
|
||
}
|
||
|
||
//PACKET_SCTaLaFirstOpPos
|
||
message SCTaLaFirstOpPos {
|
||
int32 Pos = 1;//座位位置
|
||
}
|
||
|
||
|