198 lines
6.4 KiB
Protocol Buffer
198 lines
6.4 KiB
Protocol Buffer
syntax = "proto3";
|
||
package thirteen;
|
||
option go_package = "mongo.games.com/game/protocol/thirteen";
|
||
|
||
//十三水
|
||
enum TWMmoPacketID {
|
||
PACKET_THIRTEEN_ZERO = 0;// 弃用消息号
|
||
PACKET_SCThirteenRoomInfo = 5570; // 房间信息
|
||
PACKET_CSThirteenPlayerOp = 5571; // 玩家操作
|
||
PACKET_SCThirteenRoomState = 5572; // 房间状态
|
||
PACKET_SCThirteenPlayerEnter = 5573; // 玩家进入
|
||
PACKET_SCThirteenPlayerLeave = 5574; // 玩家离开
|
||
PACKET_SCThirteenPlayerCards = 5575; // 给玩家发牌
|
||
PACKET_SCThirteenPlayerOp = 5576; // 确认牌型
|
||
PACKET_SCThirteenShowCards = 5577; // 打枪或亮牌
|
||
PACKET_SCThirteenBilled = 5578; // 结算
|
||
PACKET_SCThirteenTest = 5579; // 测试
|
||
}
|
||
|
||
message HitScore {
|
||
int32 Pos = 1; //被打枪玩家位置
|
||
int64 Score = 2; //输的分数,正值
|
||
}
|
||
|
||
message Poker {
|
||
// 特殊牌型序号,带星的是支持的,其余暂时不要
|
||
// 1 清龙*
|
||
// 2 一条龙*
|
||
// 3 十二皇族
|
||
// 4 三同花顺*
|
||
// 5 三分天下
|
||
// 6 全大
|
||
// 7 全小
|
||
// 8 凑一色*
|
||
// 9 四套三条
|
||
// 10 五对三条
|
||
// 11 六对半*
|
||
// 12 三顺子*
|
||
// 13 三同花*
|
||
|
||
// 普通牌型序号
|
||
// 1 五同
|
||
// 2 同花顺
|
||
// 3 铁支
|
||
// 4 葫芦
|
||
// 5 同花
|
||
// 6 顺子
|
||
// 7 三条
|
||
// 8 两对
|
||
// 9 对子
|
||
// 10 乌龙
|
||
|
||
// IndexType 规则,特殊牌型序号*1000000 + 头墩普通牌型序号*10000 + 中墩普通牌型序号*100 + 尾墩普通牌型序号;没有特殊牌型时值小于1000000
|
||
int32 IndexType = 1; // 牌型
|
||
repeated int32 Head = 2; // 头墩
|
||
repeated int32 Mid = 3; // 中墩
|
||
repeated int32 End = 4; // 尾墩
|
||
bool IsDP = 5; // 是否倒排
|
||
int32 Pos = 6; //账号
|
||
repeated int64 Score = 7; //得分,1头墩 2中墩 3尾墩 4特殊牌型分数 5打枪 6全垒打
|
||
repeated HitScore Hit = 8; //打枪
|
||
repeated int64 TableScore = 9; // 客户端展示用;0头墩,1中墩,2尾墩,3头墩额外加分,4中墩额外加分,5尾墩额外加分
|
||
repeated int32 Cards = 10; // 13张牌
|
||
}
|
||
|
||
//PACKET_SCThirteenPlayerCards
|
||
message SCThirteenPlayerCards {
|
||
repeated int32 Cards = 1; // 13张牌
|
||
int32 Pos = 2; // 位置
|
||
repeated Poker AllCardsO = 3; // 推荐牌型
|
||
}
|
||
|
||
//玩家操作
|
||
//PACKET_CSThirteenPlayerOp
|
||
message CSThirteenPlayerOp {
|
||
int32 OpCode = 1; // 1:确定牌 2站起状态 3test 4重新选牌
|
||
|
||
// 确定牌时,两种参数规则,都可以
|
||
// 第一种:玩家从推荐牌型中选择一个,把Poker.IndexType发过来(减少数据传输)
|
||
// 第二种:按头墩中墩尾墩顺序把牌发过来
|
||
// 站起状态:0站起,1取消站起
|
||
repeated int64 OpParam = 2;
|
||
}
|
||
|
||
enum OpResultCode {
|
||
OPRC_Sucess = 0; //成功
|
||
OPRC_Error = 1; //失败
|
||
}
|
||
|
||
//PACKET_SCThirteenPlayerOp
|
||
message SCThirteenPlayerOp {
|
||
OpResultCode OpRetCode = 1;
|
||
int32 OpCode = 2; //1出牌 2过牌 3开始游戏
|
||
repeated int64 OpParam = 3; //参数
|
||
int32 Pos = 4; // 玩家位置
|
||
Poker Cards = 5;
|
||
}
|
||
|
||
//玩家信息
|
||
message ThirteenPlayerData {
|
||
string Name = 1; //名字
|
||
int32 SnId = 2; //账号
|
||
int32 Head = 3; //头像
|
||
int32 Sex = 4; //性别
|
||
int64 Coin = 5; //金币
|
||
int32 Pos = 6; //座位位置
|
||
int32 Flag = 7; //二进制标记 第一位:是否掉线(0:在线 1:掉线) 第二位:是否准备(0:未准备 1:已准备)
|
||
repeated int32 Cards = 8; //手牌
|
||
repeated int64 Score = 9; //得分,1头墩 2中墩 3尾墩 4特殊牌型分数 5打枪 6全垒打
|
||
Poker CardsO = 10; //确定的手牌
|
||
repeated Poker AllCardsO = 11; //所有牌型
|
||
repeated string Params = 12; //其他数据 如:ip 等
|
||
int32 Longitude = 13; //经度
|
||
int32 Latitude = 14; //纬度
|
||
string City = 15; //城市 例:中国-河南省-郑州市
|
||
int32 NiceId = 16; //靓号
|
||
string AgentCode = 17; //代理商编号
|
||
int32 HeadOutLine = 18; //头像框
|
||
int32 VIP = 19;
|
||
bool IsDP = 20; // 是否倒排
|
||
int64 WinCoin = 21; // 本局赢分
|
||
bool isStand = 22; //玩家站起
|
||
repeated int64 TableScore = 23; // 客户端展示用;0头墩,1中墩,2尾墩,3头墩额外加分,4中墩额外加分,5尾墩额外加分
|
||
repeated HitScore Hit = 24; //打枪
|
||
bool IsConfirm = 25; // 是否确认牌型
|
||
bool IsLeave = 26; // 已经离场
|
||
int32 RoleId = 27; //使用中的角色id
|
||
int64 Level = 28; //玩家等级
|
||
int64 Exp = 29; //玩家经验
|
||
int32 SkinId = 30; //皮肤id
|
||
}
|
||
|
||
//玩家进入
|
||
//PACKET_SCThirteenPlayerEnter
|
||
message SCThirteenPlayerEnter {
|
||
ThirteenPlayerData Data = 1;
|
||
}
|
||
|
||
//玩家离开
|
||
//PACKET_SCThirteenPlayerLeave
|
||
message SCThirteenPlayerLeave {
|
||
int32 Pos = 1; //玩家位置
|
||
}
|
||
|
||
//房间信息
|
||
//PACKET_SCThirteenRoomInfo
|
||
message SCThirteenRoomInfo {
|
||
int32 RoomId = 1; //房间id
|
||
int32 Creator = 2; //创建者SnId
|
||
int32 GameId = 3; //游戏id
|
||
int32 RoomMode = 4; //游戏模式
|
||
repeated int32 Params = 5; //规则参数
|
||
int32 NumOfGames = 6; //当前第几局
|
||
int32 BankerPos = 7; //庄家位置
|
||
int32 State = 8; //房间当前状态
|
||
int32 TimeOut = 9; //等待剩余时间 单位:秒
|
||
repeated ThirteenPlayerData Players = 10; //房间内的玩家信息
|
||
int32 DisbandGen = 11; //解散申请
|
||
int32 ShowCardPos = 12; //出牌的位置
|
||
int32 AgentId = 13; //代开房者
|
||
int32 ParamsEx = 14; //比赛参数
|
||
int32 SceneType = 15; //房间模式 0:房卡模式 1:钻石模式
|
||
int32 BaseScore = 16; //基础分
|
||
int32 TotalOfGames = 17; //总局数
|
||
int32 LeaveDeduct = 18; // 离场扣分倍数;玩家在发牌,选牌状态离场扣除指定倍数的底分
|
||
int32 LeaveCombat = 19; // 补偿倍数;玩家在发牌,选牌状态离场其它玩家补偿底分倍数
|
||
}
|
||
|
||
//房间状态更新
|
||
//PACKET_SCThirteenRoomState
|
||
message SCThirteenRoomState {
|
||
int32 State = 1; //房间当前状态, 0.准备状态;1. 开始倒计时; 2. 发牌; 3.理牌;4.看牌;5.打枪; 6.结算
|
||
// Params 游戏子状态的参数列表:
|
||
repeated int32 Params = 2; //状态参数
|
||
}
|
||
|
||
//PACKET_SCThirteenShowCards
|
||
message SCThirteenShowCards {
|
||
int32 OpCode = 1; //0:亮牌 1:打枪
|
||
repeated Poker AllCards = 2;
|
||
}
|
||
|
||
message Billed {
|
||
int32 Pos = 1; // 位置
|
||
int64 Coin = 2; // 结算后余额
|
||
int64 WinCoin = 3; // 输赢分
|
||
int64 CombatCoin = 4; // 补偿分
|
||
}
|
||
|
||
//PACKET_SCThirteenBilled
|
||
message SCThirteenBilled {
|
||
repeated Billed AllBilled = 1; // 输赢分
|
||
}
|
||
|
||
message SCThirteenTest {
|
||
string Data = 1;
|
||
}
|