298 lines
10 KiB
Protocol Buffer
298 lines
10 KiB
Protocol Buffer
syntax = "proto3";
|
||
package tienlen;
|
||
option go_package = "mongo.games.com/game/protocol/tienlen";
|
||
|
||
//操作结果
|
||
enum OpResultCode {
|
||
OPRC_Sucess = 0; //成功
|
||
OPRC_Error = 1; //失败
|
||
OPRC_Hint = 2; //提示
|
||
}
|
||
|
||
//tienlen
|
||
enum TienLenPacketID {
|
||
PACKET_TienLenZERO = 0;// 弃用消息号
|
||
PACKET_SCTienLenRoomInfo = 5370;//房间信息
|
||
PACKET_SCTienLenRoomState = 5371;//房间状态
|
||
PACKET_CSTienLenPlayerOp = 5372;//玩家操作
|
||
PACKET_SCTienLenPlayerOp = 5373;//玩家操作
|
||
PACKET_SCTienLenPlayerEnter = 5374;//玩家进入
|
||
PACKET_SCTienLenPlayerLeave = 5375;//玩家离开
|
||
PACKET_SCTienLenCard = 5376;//发牌
|
||
PACKET_SCTienLenGameBilled = 5377;//结算
|
||
PACKET_SCTienLenCurOpPos = 5378;//当前操作的玩家位置
|
||
PACKET_SCTienLenSmallGameBilled = 5379;//小结算
|
||
PACKET_SCTienLenUpdateMasterSnid = 5380;//房主更换
|
||
PACKET_SCTienLenUpdateAudienceNum = 5381;//推送观众人数
|
||
PACKET_SCTienLenAI = 5382;//AI消息
|
||
PACKET_SCTienLenFirstOpPos = 5383;//首出玩家
|
||
PACKET_SCTienLenCardTest = 5384;//测试数据
|
||
PACKET_SCTienLenThinkLongCnt = 5385; // 长考次数
|
||
PACKET_SCTienLenFirstGiveItemItem = 5386; // 第一次赠送记牌器道具
|
||
PACKET_SCTienLenPetSkillRes = 5387; //宠物技能
|
||
PACKET_SCTienLenCycleBilled = 5388; // 大结算
|
||
}
|
||
|
||
|
||
//玩家信息
|
||
message TienLenPlayerData {
|
||
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; //靓号[机器人用]
|
||
repeated int32 Cards = 16; //手牌
|
||
int64 CurRoundTotalBet = 17;//本轮押注已押的金币
|
||
int64 GameCoin = 18; //游戏内带入的金币
|
||
int32 RoleId = 19; //使用中的角色id
|
||
map<int32,int32>Items = 20;
|
||
int32 MatchRankId = 21;
|
||
int32 Lv = 22;
|
||
int32 CopySnid = 23;//比赛场机器人假snid
|
||
int32 CopyRoleId = 24;//比赛场机器人假角色
|
||
int64 RankScore = 25; // 排位积分
|
||
int32 ThinkLongCnt = 26; // 长考次数
|
||
int64 Level = 27; //玩家等级
|
||
int64 Exp = 28; //玩家经验
|
||
int64 PigBankCoin = 29; //存钱罐金币
|
||
repeated PetSkillInfo SkillInfo = 30;//宠物技能信息
|
||
int32 SkinId = 31; //皮肤id
|
||
}
|
||
|
||
//宠物技能
|
||
message PetSkillInfo{
|
||
int32 PetId =1;
|
||
repeated SkillInfo SkillData = 2;
|
||
}
|
||
message SkillInfo{
|
||
int32 SkillId = 1;
|
||
int32 SkillLevel = 2;
|
||
}
|
||
|
||
message LastDelCard {
|
||
repeated int32 Cards = 1;
|
||
}
|
||
|
||
//房间信息
|
||
message SCTienLenRoomInfo {
|
||
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 TienLenPlayerData Players = 9; //房间内的玩家信息
|
||
int32 AudienceNum = 11; //当前观战人数
|
||
int32 CurOpIdx = 12; //当前等待操作的玩家
|
||
repeated LastDelCard LastDelCards = 13; //上两手出的牌
|
||
int32 NumOfGames = 14; //当前局数
|
||
int32 TotalOfGames = 15; //总局数
|
||
int32 MasterSnid = 16;//房主
|
||
int32 BaseScore = 17 ;//游戏底分
|
||
int32 MaxPlayerNum = 18 ;//最大游戏人数
|
||
repeated int32 WinSnids = 19 ;//已出完牌的玩家
|
||
// 比赛场相关
|
||
int32 IsMatch = 20;//0普通场 1锦标赛 2冠军赛
|
||
int32 Round = 22;//比赛当前轮数
|
||
int32 CurPlayerNum = 24;//当前游戏人数
|
||
int32 NextNeed = 25;//前多少名可以晋级下一轮
|
||
int32 MatchFinals = 26;//0晋级赛 1半决赛 2是总决赛
|
||
// 比赛场相关
|
||
int32 RankType = 27; // 排位类型
|
||
int32 SceneAdd = 28; // 场次加成(百分比)
|
||
string RecordId = 29; // 牌局ID
|
||
|
||
repeated int32 OutCardRecord = 30 ;//已打出去的牌
|
||
bool IsOutRecord = 31;//是否能用记牌器
|
||
int64 ItemRecExpireTime = 32; //记牌器到期时间
|
||
int32 TMInfoId = 33; //比赛配置ID
|
||
// 房卡场配置
|
||
int32 RoomTypeId = 34; //房间类型id
|
||
int32 RoomConfigId = 35; //房间配置id
|
||
int32 NeedPassword = 36; //是否需要密码 1需要
|
||
int32 CostType = 37; //房卡支付方式 1AA 2房主
|
||
int32 Voice = 38; //是否开启语音 1开启
|
||
string Password = 39; //房间密码
|
||
// 房卡场配置
|
||
bool IsSmallCard = 40; //必出最小牌
|
||
}
|
||
|
||
//房间状态更新
|
||
message SCTienLenRoomState {
|
||
int32 State = 1; //房间当前状态
|
||
repeated int64 Params = 2; //参数
|
||
}
|
||
|
||
//玩家操作
|
||
message CSTienLenPlayerOp {
|
||
int32 OpCode = 1; //1出牌 2过牌 3开始游戏 4调试发牌
|
||
repeated int64 OpParam = 2;
|
||
}
|
||
message SCTienLenPlayerOp {
|
||
int32 OpCode = 1; //1出牌 2过牌 3开始游戏
|
||
repeated int64 OpParam = 2; //参数
|
||
int32 SnId = 3; //玩家位置
|
||
OpResultCode OpRetCode = 4; //返回错误码,详见:enums.proto
|
||
}
|
||
|
||
//玩家进入
|
||
message SCTienLenPlayerEnter {
|
||
TienLenPlayerData Data = 1; //玩家数据
|
||
}
|
||
|
||
//玩家离开
|
||
message SCTienLenPlayerLeave {
|
||
int32 Pos = 1; //玩家位置
|
||
}
|
||
|
||
message AddItem {
|
||
int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
|
||
int32 ItemId = 2; // ID
|
||
int32 Addition = 3; // 加成(百分比)
|
||
int64 Score = 4; // 加成分数
|
||
}
|
||
|
||
//结算结果
|
||
message TienLenPlayerGameBilled {
|
||
int32 SnId = 1; //玩家
|
||
repeated int32 Cards = 2; // 手牌
|
||
int64 WinCoin = 3;//输赢金额
|
||
int64 GameCoin = 4;//结算后身上余额
|
||
int32 IsWin = 5; //输赢 赢1 输2 平0
|
||
int64 WinRankScore = 6; // 排位积分变化(包含额外加分)
|
||
int64 RankScore = 7; // 结算后排位积分
|
||
int64 AddScore = 8; // 额外加分
|
||
repeated AddItem AddItems = 9; // 加成
|
||
int32 TianHu = 10; // 天胡类型 1:4个2 2:6连对 3:3-A
|
||
}
|
||
|
||
message SCTienLenGameBilled {
|
||
repeated TienLenPlayerGameBilled Datas = 1;
|
||
}
|
||
|
||
//小结算结果(炸的分)
|
||
message SCTienLenSmallGameBilled {
|
||
int32 WinPos = 1; //赢家
|
||
int64 WinPosCoin = 2;//结算后赢家身上余额
|
||
int32 LosePos = 3; //输家
|
||
int64 LosePosCoin = 4;//结算后输家身上余额
|
||
int64 WinCoin = 5;//赢金额
|
||
int64 LoseCoin = 6;//输金额
|
||
}
|
||
|
||
//发牌
|
||
message SCTienLenCard {
|
||
repeated int32 Cards = 1; //手牌
|
||
bool IsOutRecord = 2; // 是否有出牌记录
|
||
int32 SnId = 3; //玩家id
|
||
}
|
||
|
||
//测试数据
|
||
message SCTienLenCardTest {
|
||
map<int32,int32>Grades = 1; // 牌评分
|
||
int32 Type = 2;//1最小 2随机 3最大
|
||
int64 Totalin = 3; //投入
|
||
int64 Totalout = 4;//产出
|
||
double LoseRate = 5;//赔率
|
||
string Data = 6;
|
||
}
|
||
|
||
message SCTienLenCurOpPos{
|
||
int32 Pos = 1; //座位位置
|
||
bool IsNew = 2; //新一轮开始出牌
|
||
repeated int32 Cards = 3; //上家出的牌
|
||
int32 ExDelay = 4; //出牌额外延迟时间(s)
|
||
int32 flag = 5; //玩家状态标记
|
||
}
|
||
|
||
message SCTienLenUpdateMasterSnid{
|
||
int32 MasterSnid = 1;//房主
|
||
}
|
||
|
||
//PACKET_SCTienLenUpdateAudienceNum
|
||
message SCTienLenUpdateAudienceNum{
|
||
int32 AudienceNum = 1; //当前观战人数
|
||
}
|
||
message SCTienLenAIData {
|
||
int32 Bomb_num = 1; //炸弹数量
|
||
string Card_play_action_seq = 2; //出牌历史记录
|
||
string Last_move_0 = 3; //最后出牌
|
||
string Last_move_1 = 4; //最后出牌
|
||
string Last_move_2 = 5; //最后出牌
|
||
string Last_move_3 = 6; //最后出牌
|
||
int32 Num_cards_left_0 = 7;//剩余牌数
|
||
int32 Num_cards_left_1 = 8;//剩余牌数
|
||
int32 Num_cards_left_2 = 9;//剩余牌数
|
||
int32 Num_cards_left_3 = 10;//剩余牌数
|
||
string Other_hand_cards = 11;//其它人手牌
|
||
string Played_cards_0 = 12; //出过的牌
|
||
string Played_cards_1 = 13; //出过的牌
|
||
string Played_cards_2 = 14; //出过的牌
|
||
string Played_cards_3 = 15; //出过的牌
|
||
string Player_hand_cards = 16;//手牌
|
||
int32 Player_position = 17; //当前操作数置
|
||
bool IsTienLenYule = 18; //是否娱乐场
|
||
bool IsFirstHand = 19; //是否出首牌
|
||
repeated int32 Cards_left_0 = 20;//剩余牌
|
||
repeated int32 Cards_left_1 = 21;//剩余牌
|
||
repeated int32 Cards_left_2 = 22;//剩余牌
|
||
repeated int32 Cards_left_3 = 23;//剩余牌
|
||
int32 Last_pos = 24; //上一家出牌人的位置
|
||
bool IsEnd = 25; //是否是打到底
|
||
repeated int32 WinSnids = 26; //赢家id
|
||
bool IsWin = 27;//输赢控制
|
||
}
|
||
|
||
//PACKET_SCTienLenFirstOpPos
|
||
message SCTienLenFirstOpPos {
|
||
int32 Pos = 1;//座位位置
|
||
bool IsSmallCard = 2; //必出最小牌
|
||
}
|
||
|
||
//PACKET_SCTienLenThinkLongCnt
|
||
message SCTienLenPlayerThinkLongCnt {
|
||
int32 ThinkLongCnt = 1; //玩家长考次数
|
||
}
|
||
|
||
//PACKET_SCTienLenFirstGiveItemItem
|
||
message SCTienLenPlayerFirstGiveItemItem {
|
||
int32 ItemId = 1; // 赠送的道具ID
|
||
int64 ItemRecExpireTime = 2;// 道具到期时间
|
||
}
|
||
//通知宠物技能生效 炸弹不扣分
|
||
//PACKET_SCTienLenPetSkillRes
|
||
message SCTienLenPetSkillRes{
|
||
int32 Snid = 1;
|
||
int32 Pos = 2;
|
||
bool PetSkillRes = 3; //true生效
|
||
}
|
||
|
||
message ItemInfo {
|
||
int32 Id = 1; // 道具ID
|
||
int64 Num = 2; // 道具数量
|
||
}
|
||
|
||
message TienLenCycleBilledInfo {
|
||
int32 SnId = 1; // 玩家ID
|
||
repeated int64 RoundScore = 2; // 每轮得分
|
||
int64 Score = 3; // 基础分
|
||
repeated ItemInfo Award = 4; // 奖励道具
|
||
int64 TotalScore = 5; // 总分
|
||
}
|
||
|
||
// PACKET_SCTienLenCycleBilled
|
||
message SCTienLenCycleBilled {
|
||
repeated TienLenCycleBilledInfo List = 1;
|
||
} |