syntax = "proto3"; package smallrocket; option go_package = "mongo.games.com/game/protocol/smallrocket"; //小火箭 enum SmallRocketPacketID { PACKET_SMALLROCKET_ZERO = 0; //弃用消息号 PACKET_SC_SMALLROCKET_ROOMINFO = 5581; //房间信息 PACKET_CS_SMALLROCKET_PLAYEROP = 5582; //玩家操作(客户->服务) PACKET_SC_SMALLROCKET_PLAYEROP = 5583; //玩家操作(服务->客户) PACKET_SC_SMALLROCKET_ROOMSTATE = 5584; //房间状态 PACKET_SC_SMALLROCKET_PLAYERTAKEGAIN = 5585; //玩家跳伞 PACKET_SC_SMALLROCKET_GAMEBILLED = 5586; //游戏结算 PACKET_SC_SMALLROCKET_ROOMPLAYERBETNUM = 5587; //当局玩家下注人数未逃离 PACKET_SC_SMALLROCKET_PlayerEnter = 5589; // 玩家进入 PACKET_SC_SMALLROCKET_PlayerLeave = 5590; // 玩家离开 PACKET_SC_SMALLROCKET_PLAYERINFO = 5591; // 玩家状态信息变化 } //操作结果 enum OpResultCode { OPRC_Success = 0; //成功 OPRC_Error = 1; //失败 OPRC_CoinNotEnough = 2; //钱不够 OPRC_PosAlReadyBet = 3; //本局位置已下注 } // 下注信息 message BetDataInfo { int64 BetVal = 1; //下注金额 float TakeMul = 2; //领取倍数 bool IsCurBet = 3; // 本局是否下注 bool IsNextBet = 4; // 下局是否下注 bool IsTakeGain = 5; // 是否收取过奖励 bool IsAutoBetAndTake = 6; // 是否自动下注收取 } message SmallRocketPlayerData { string Name = 1; //名字 int32 SnId = 2; //账号 int32 Head = 3; //头像 int32 Sex = 4; //性别 int64 Coin = 5; //金币 int32 HeadOutLine = 6; //头像框 int32 VIP = 7; int32 Flag = 8; //二进制标记 第一位:是否掉线(0:在线 1:掉线) 第二位:是否准备(0:未准备 1:已准备) int64 WinCoin = 9; // 本局赢分 repeated BetDataInfo BetDataArr = 10; //下注信息 repeated string Params = 15; //其他数据 如:ip 等 } //房间信息 message SCSmallRocketRoomInfo { int32 RoomId = 1; //房间id int32 GameId = 2; //游戏id int32 RoomMode = 3; //游戏模式 repeated int32 Params = 4; //规则参数 int32 State = 5; //房间当前状态 int32 TimeOut = 6; //该状态已经历时间 单位:秒 repeated SmallRocketPlayerData Players = 7; //房间内的玩家信息 float BombMul = 8; //爆炸倍数 int32 TotalPlayer = 9; //房间总人数 int32 TotalBetPlayer = 10; //下注总人数 repeated float RoundBoomMuHistory = 11; //5个历史倍数记录 int32 RoundId = 12; //当前局数ID repeated int32 ParamsEx = 13; //其他参数 int32 BombRandomNum = 14; //爆炸随机数 int32 GameFreeId = 15; int32 BaseScore = 16; //基础分 } //玩家操作 message CSSmallRocketOp { int32 OpCode = 1; //操作码 0:下注 1:取消下注 2:下车收取奖励 3:设置自动下注状态 4:设置自动领取 5:中断后回到游戏请求玩家信息 repeated int64 Params = 2; //操作参数 0:Params[0]下注位置 0, 1 Params[1]下注金额 Params[2]收取倍数 //操作参数 1:Params[0]取消下注 位置 0, 1 //操作参数 2:Params[0]收取 位置 0, 1 //操作参数 3:Params[0] 0:{ 0: 取消自动 1:设置为自动下注} 1:Params[1]{位置} 2: Params[2]下注金额 3:Params[3]收取倍数 //操作参数 4:Params[0] 0:{ 0: 取消自动 1:设置为自动下注} 1:Params[1]{位置} 2: Params[2]下注金额 3:Params[3]收取倍数 //操作参数 5:Params[0] 0:{ 0: 掉线 1:切屏 } } //玩家操作返回 message SCSmallRocketOp { int32 SnId = 1; //玩家ID int32 OpCode = 2; //操作码 repeated int64 Params = 3; //操作参数 同上 CSSmallRocketOp OpResultCode OpRetCode = 4; //操作结果 repeated BetDataInfo BetDataArr = 5; //下注信息 } //房间人数变化 message SCSmallRocketBetPlayerChange { int32 TotalBetPlayerCnt = 1; // 房间本局下注的总人数 } //历史倍数记录 message SCSmallRoundBoomMuHistory { repeated float RoundBoomMuHistory = 1; //5个历史倍数记录 } //玩家获取收益跳伞 message SCSmallRocketPlayerTakeGain { int32 SnId = 1; // 跳伞玩家 float LeaveTime = 2; // 跳伞时间 } //发送给客户端的数据 单局结算 message SCSmallRocketRoundGameBilled { int32 RoundId = 1; //牌局ID float BombMul = 2; // 爆炸倍数 int64 Award = 3; //获奖金额 int64 Balance = 4; //玩家余额 repeated float RoundBoomMuHistory = 5; //5个历史倍数记录 } //房间状态 message SCSmallRocketRoomState { int32 State = 1; //房间当前状态 repeated float Params = 2; } //玩家信息 message SCSmallRocketPlayerInfo { int32 SnId = 1; //玩家ID int64 gainCoin = 2; //本局赢取金币 int64 Coin = 3; // 玩家金币 repeated BetDataInfo BetDataArr = 4; //下注信息 int64 GainCoinBet1 = 5; // 下注面板1获取金币 int64 GainCoinBet2 = 6; // 下注面板2获取金币 } // 中断后接着游戏请求玩家信息 message SCSmallRocketResumePlayerInfo { int32 SnId = 1; //玩家ID int64 gainCoin = 2; //本局赢取金币 int64 Coin = 3; // 玩家金币 int32 TimeOut = 4; //该状态已经历时间 单位:秒 repeated BetDataInfo BetDataArr = 5; //下注信息 } //玩家进入 //PACKET_SCSmallRocketPlayerEnter message SCSmallRocketPlayerEnter { SmallRocketPlayerData Data = 1; } //玩家离开 //PACKET_SCSmallRocketPlayerLeave message SCSmallRocketPlayerLeave { int32 Pos = 1; //玩家位置 }