game_sync/protocol/thirteen/thirteen.proto

198 lines
6.4 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}