game_sync/protocol/dezhoupoker/dezhoupoker.proto

298 lines
11 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 dezhoupoker;
option go_package = "mongo.games.com/game/protocol/dezhoupoker";
//操作结果
enum OpResultCode {
OPRC_Sucess = 0; //成功
OPRC_Error = 1; //失败
}
//德州扑克
enum DZPKPacketID {
PACKET_BlackJack_ZERO = 0;// 弃用消息号
PACKET_SC_DEZHOUPOKER_ROOMINFO = 5340;//房间信息
PACKET_SC_DEZHOUPOKER_ROOMSTATE = 5341;//房间状态
PACKET_CS_DEZHOUPOKER_OP = 5342;//玩家操作
PACKET_SC_DEZHOUPOKER_OP = 5343;//玩家操作
PACKET_SC_DEZHOUPOKER_GAMEBILLED = 5346;//游戏结算
PACKET_SC_DEZHOUPOKER_NEXTOPERNOTIFY = 5347;//广播通知下一个操作玩家和操作参数
PACKET_SC_DEZHOUPOKER_CARD = 5348;//发牌
PACKET_SC_DEZHOUPOKER_BANKANDBLINDPOS = 5349;//庄家和大小盲的位置
PACKET_SC_DEZHOUPOKER_POTS = 5350;//池
PACKET_SC_DEZHOUPOKER_SITDOWN = 5351;//坐下
PACKET_SC_DEZHOUPOKER_STANDUP = 5352;//站起
PACKET_SC_DEZHOUPOKER_GAMECOIN = 5353;//带入金币变化时推送
PACKET_SC_DEZHOUPOKER_PLAYERENTER = 5354;//玩家进入
PACKET_SC_DEZHOUPOKER_PLAYERLEAVE = 5355;//玩家离开
PACKET_SC_DEZHOUPOKER_SHOWPOKER = 5356;//亮牌
PACKET_SC_DEZHOUPOKER_GAMEBILLED_MIDDLE = 5357; //中途结算
PACKET_SC_DEZHOUPOKER_AUTOBUYIN = 5358;//自动带入
PACKET_SC_DEZHOUPOKER_GAMEBILLEDBYPOTS = 5359;//根据池来结算
PACKET_CSC_DEZHOUPOKER_WPUPDATE = 5360;//玩家的手牌胜率
}
//玩家操作
//const (
// DezhouPokerPlayerOpNull int32 = iota //0,初始值
// DezhouPokerPlayerOpCallAntes //1,下底注
// DezhouPokerPlayerOpCall //2,跟进
// DezhouPokerPlayerOpFold //3,弃牌
// DezhouPokerPlayerOpCheck //4,让牌
// DezhouPokerPlayerOpRaise //5,加注
// DezhouPokerPlayerOpAllIn //6,全压
// DezhouPokerPlayerOpSmallBlind //7,小盲
// DezhouPokerPlayerOpBigBlind //8,大盲
// DezhouPokerPlayerOpAutoBuyIn //9,自动买入 买入数量
// DezhouPokerPlayerOpAutoBuyInCfg //10,请求自动买入配置
//)
//玩家信息
message DezhouPokerPlayerData {
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; //如上:玩家操作
repeated int32 Cards = 13; //手牌
int64 CurRoundTotalBet = 14;//本轮押注已押的金币
int64 GameCoin = 15; //游戏内带入的金币
int32 VIP = 16; //玩家VIP等级
int32 HeadOutLine = 17; //头像框
int32 NiceId = 18; //靓号[机器人用]
}
//场景状态
//const (
// DezhouPokerSceneStateWaitPlayer int = iota //0 人数不够开启游戏,等待玩家上线
// DezhouPokerSceneStateWaitStart //1 人数够开启游戏, 延迟X秒开始游戏
// DezhouPokerSceneStateSelectBankerAndBlinds //2 选庄家和大小盲
// DezhouPokerSceneStateAnte //3 下前注0预留
// DezhouPokerSceneStateBlinds //4 下大小盲
// DezhouPokerSceneStateHandCard //5 发手牌
// DezhouPokerSceneStateHandCardBet //6 手牌下注1
// DezhouPokerSceneStateFlop //7 发3张翻牌
// DezhouPokerSceneStateFlopBet //8 翻牌下注2
// DezhouPokerSceneStateTurn //9 转牌
// DezhouPokerSceneStateTurnBet //10 转牌下注3
// DezhouPokerSceneStateRiver //11 河牌
// DezhouPokerSceneStateRiverBet //12 河牌下注4
// DezhouPokerSceneStateBilled //13 结算方式选择
// DezhouPokerSceneStateBilledNormal //14 正常结算
// DezhouPokerSceneStateBilledMiddle //15 半路结算 还剩一个未弃牌的玩家
// DezhouPokerSceneStateBilledAllIn //16 全部allin, 或者只有一个未Allin
// DezhouPokerSceneStateGameEnd //17 结算状态
// DezhouPokerSceneStateMax
//)
//房间信息
//PACKET_SC_DEZHOUPOKER_ROOMINFO
message SCDezhouPokerRoomInfo {
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 DezhouPokerPlayerData Players = 9; //房间内的玩家信息
repeated int32 PosList = 10; //所有参与本局游戏的玩家位置,包括庄家,大小盲
int64 TotalBet = 11; //本局桌面上已压的筹码总和
int32 CurOpIdx = 12; //当前等待操作的玩家
repeated int32 Cards = 13; //公牌
repeated int64 Pots = 14; //主池+边池
repeated int32 MatchParams = 15; //比赛参数
int64 SmallBlind = 16; //小盲
int64 MinRaise = 17; //最小加注值
int64 RoundMaxBet = 18; //当前轮最大下注值
int32 NextOperPos = 19; //下一个操作者位置
int64 NextOperCurRoundTotalBet = 20;//本轮押注已押的金币.这个变量其实在Players中已经存在
int32 CurOpTimeOut = 21; //当前等待操作的玩家持续时间
int32 NumOfGames = 22; //当前局数
int32 TotalOfGames = 23; //总局数
}
//结算先结算牌型最大的数据段边池IDs累计输赢值牌型
//房间状态更新
//PACKET_SC_DEZHOUPOKER_ROOMSTATE
message SCDezhouPokerRoomState {
int32 State = 1; //房间当前状态
repeated int64 Params = 2; //参数 case State=0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 : 无参数
//case State=2 : 参数1:当前局数
}
message SCDezhouPokerBankerAndBlindPos {
int32 BankerPos = 1; //庄家位置
int32 SmallBlindPos = 2; //小盲位置
int32 BigBlindPos = 3; //大盲位置
repeated int32 PosList = 4; //所有参与本局游戏的玩家位置,包括庄家,大小盲
int64 SmallBlind = 5; //小盲
}
//PACKET_SC_DEZHOUPOKER_POTS = 5350
message SCDezhouPokerPots {
repeated int64 Pots = 1; //池
}
//玩家操作
//PACKET_SC_DEZHOUPOKER_OP
message CSDezhouPokerPlayerOp {
int32 OpCode = 1; //见上
repeated int64 OpParam = 2; //待定
}
message SCDezhouPokerPlayerOp {
int32 OpCode = 1; //详见:玩家操作码
repeated int64 OpParam = 2; //case OpCode=1,2,3,4,5,6,7,8 : 参数1:当前操作下注的金额 参数2:当前轮总下注额 参数3:身上剩余金币 参数4:房间内总的下注额
//case OpCode=9,10 : 无参数
int32 Pos = 3; //玩家位置
OpResultCode OpRetCode = 4;//返回错误码,详见:enums.proto
}
//带入金币 PACKET_SC_DEZHOUPOKER_AUTOBUYIN
message SCDezhouPokerBuyIn {
int64 AutoBuyIn = 1; //自动带入
int64 ToGameCoin = 2; //最大带入
}
//金币变化 PACKET_SC_DEZHOUPOKER_GAMECOIN
message SCDezhouPokerPlayerGameCoin {
int32 Pos = 1; //玩家位置
int64 GameCoin = 2; //剩余筹码
int32 State = 3; //0.默认不处理 1.自动带入
int64 ChangeCoin = 4; //变化金币
}
//玩家站起。游戏中站起默认为弃牌
//玩家站起
message SCDezhouPokerPlayerStandUp {
int32 Pos = 1; //玩家位置
OpResultCode OpRetCode = 2; //返回错误码,详见:enums.proto
}
//玩家坐下。要排定钱是否足够。自动带入最小带入
//玩家坐下
message SCDezhouPokerPlayerSit {
DezhouPokerPlayerData Data = 1; //玩家数据
OpResultCode OpRetCode = 2; //返回错误码,详见:enums.proto
}
message DezhouPokerCards {
repeated int32 Cards = 1;
}
//下一个玩家的操作提示
//PACKET_SC_DEZHOUPOKER_NEXTOPERNOTIFY
message SCDezhouPokerOperNotify {
int64 MinRaise = 1; //最小加注值
int64 RoundMaxBet = 2; //当前轮最大下注值
int32 NextOperPos = 3; //下一个操作者位置
int64 NextOperCurRoundTotalBet = 4;//下一个操作者本轮押注已押的金币
// robot
int32 PlayerSeat = 5;
int32 ButtonSeat = 6;
int32 TotalPlayers = 7;
int32 Round = 8;
int64 Pot = 9;
int64 BetChips = 10;
repeated DezhouPokerCards PlayersHole = 11;
repeated int32 Board = 12;
string Actions = 13;
int64 RemainChips = 14;
repeated int64 RaiseOption = 15;
repeated int32 Survival = 16;
repeated int64 CurrRoundPerBet = 17;//当前轮,每个人总的下注额
int32 RolePos = 18;//玩家位置信息
int32 RestPlayerCnt = 19;//当前剩余玩家数量
}
//发牌
//PACKET_SC_DEZHOUPOKER_CARD
message SCDezhouPokerCard {
int32 Sort = 1; //0公牌;1 玩家手牌
repeated int32 Cards = 2; //手牌
}
message DezhouPokerCardsWP {
int32 SnId = 1;
repeated int32 Cards = 2;
int32 WinningProbability = 3;
}
//手牌胜率
//PACKET_CSC_DEZHOUPOKER_WPUPDATE
message CSCDezhouPokerWPUpdate {
repeated DezhouPokerCardsWP Datas = 1;
}
//玩家进入
//PACKET_SC_DEZHOUPOKER_PlayerEnter
message SCDezhouPokerPlayerEnter {
DezhouPokerPlayerData Data = 1; //玩家数据
}
//玩家离开
//PACKET_SC_DEZHOUPOKER_PLAYERLEAVE
message SCDezhouPokerPlayerLeave {
int32 Pos = 1; //玩家位置
}
//亮牌
message PlayerPoker {
int32 Pos = 1; //座位位置
repeated int32 Cards = 2; //手牌
}
//PACKET_SC_DEZHOUPOKER_SHOWPOKER
message SCDezhouPokerShowPoker {
repeated PlayerPoker PlayerPoker = 1;
}
//结算结果
message DezhouPokerPlayerGameBilled {
int32 Pos = 1; //玩家位置
int32 KindOfCard = 2; //牌型
repeated int32 Cards = 3; // 5张牌
int64 WinCoin = 4;//输赢金额
int64 GameCoin = 5;//结算后身上余额
repeated int32 PotIndexList = 6; //赢的池下标
int32 IsWin = 7; //输赢 赢1 输 2 平0
}
//PACKET_SC_DEZHOUPOKER_GAMEBILLED
message SCDezhouPokerGameBilled {
repeated DezhouPokerPlayerGameBilled Datas = 1; //参与分钱的玩家
}
//PACKET_SC_DEZHOUPOKER_GAMEBILLED_MIDDLE
message SCDezhouPokerGameBilledMiddle {
int32 Pos = 1;//玩家位置
int64 WinCoin = 2;//输赢的金额
int64 GameCoin = 3;//结算后身上余额
repeated int32 PotIndexList = 4; //赢的池下标
int32 IsWin = 5; //输赢 赢1 输 2 平0
}
//每个池的结算结果
message DezhouPokerPlayerGameBilledPotItem {
repeated DezhouPokerPlayerGameBilled PlayerDatas = 1; //该池的玩家信息
}
//发给客户端的根据池展现方式
message SCDezhouPokerGameBilledByPots {
repeated DezhouPokerPlayerGameBilledPotItem Datas = 1; //每个边池的数据
}