syntax = "proto3"; package clawdoll; option go_package = "mongo.games.com/game/protocol/clawdoll"; //娃娃机 enum CLAWDOLLPacketID { PACKET_ZERO = 0; //弃用消息号 PACKET_SC_ROOMINFO = 5601; //房间信息 PACKET_CS_PLAYEROP = 5602; //玩家操作(客户->服务) PACKET_SC_PLAYEROP = 5603; //玩家操作(服务->客户) PACKET_SC_ROOMSTATE = 5604; //房间状态 PACKET_SC_GAMEBILLED = 5605; //游戏结算 PACKET_SC_PlayerEnter = 5606; // 玩家进入 PACKET_SC_PlayerLeave = 5607; // 玩家离开 PACKET_SC_PLAYERINFO = 5608; // 玩家状态信息变化 PACKET_CS_GETTOKEN = 5609; // 获取token PACKET_SC_SENDTOKEN = 5610; // 获取token PACKET_CS_WAITPLAYERS = 5611; // 获取等待玩家信息 (客户->服务) PACKET_SC_WAITPLAYERS = 5612; // 获取等待玩家信息 (服务->客户) PACKET_SC_PLAYINGINFO = 5613; // 正在控制娃娃机的玩家信息 (服务->客户) PACKET_CS_GETPLAYERLOG = 5614; // 获取玩家操作日志 PACKET_SC_SENDPLAYERLOG = 5615; // 发送玩家操作日志 } //操作结果 enum OpResultCode { OPRC_Success = 0; //成功 OPRC_Error = 1; //失败 OPRC_CoinNotEnough = 2; //钱不够 OPRC_PosAlReadyPlaying = 3; //本局位置已存在玩家 } message CLAWDOLLPlayerData { 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; // 本局赢分 int32 clawDollState = 10; // 玩家状态 } //房间信息 message SCCLAWDOLLRoomInfo { int32 RoomId = 1; //房间id int32 GameId = 2; //游戏id int32 RoomMode = 3; //游戏模式 repeated int32 Params = 4; //规则参数 int32 State = 5; //房间当前状态 int32 TimeOut = 6; //该状态已经历时间 单位:秒 repeated CLAWDOLLPlayerData Players = 7; //房间内的玩家信息 int32 TotalPlayer = 8; //房间总人数 int32 RoundId = 9; //当前局数ID repeated int32 ParamsEx = 10; //其他参数 int32 GameFreeId = 15; int32 BaseScore = 16; //基础分 } //玩家操作 message CSCLAWDOLLOp { int32 OpCode = 1; //操作码 1:上分 投币 2:下抓 3:玩家操控动作 repeated int64 Params = 2; //操作参数 1:无 //操作参数 2:无 //操作参数 3:Params[0] 1-前 2-后 3-左 4-右 } //玩家操作返回 message SCCLAWDOLLOp { int32 SnId = 1; //玩家ID int32 OpCode = 2; //操作码 repeated int64 Params = 3; //操作参数 同上 CSCLAWDOLLOp OpResultCode OpRetCode = 4; //操作结果 } //发送给客户端的数据 单局结算 message SCCLAWDOLLRoundGameBilled { int32 RoundId = 1; //局ID int32 ClowResult = 2; //抓取结果 0: 没有抓住, 1:抓住娃娃 int64 Award = 3; //获奖金额 int64 Balance = 4; //玩家余额 } //房间状态 message SCCLAWDOLLRoomState { int32 State = 1; //房间当前状态 repeated float Params = 2; } //玩家信息 message SCCLAWDOLLPlayerInfo { int32 SnId = 1; // 玩家ID int32 clawDollState = 2; // 玩家状态 int64 gainCoin = 3; // 本局赢取 int64 Coin = 4; // 玩家 } //玩家进入 //PACKET_SCCLAWDOLLPlayerEnter message SCCLAWDOLLPlayerEnter { CLAWDOLLPlayerDigestInfo Data = 1; } //玩家离开 //PACKET_SCCLAWDOLLPlayerLeave message SCCLAWDOLLPlayerLeave { int32 SnId = 1; //玩家id } //玩家请求进入视频地址token message CSCLAWDOLLGetToken { } message SCCLAWDOLLSendToken { int32 LogicId = 1; int64 Appid = 2; string Token = 3; string StreamId = 4; } message CLAWDOLLWaitPlayers { repeated CLAWDOLLPlayerDigestInfo WaitPlayersInfo = 1; } // 玩家摘要信息 message CLAWDOLLPlayerDigestInfo { int32 SnId = 1; //账号 int32 Head = 2; //头像 string HeadUrl = 3; //头像 string Name = 4; //名字 int32 Stat = 5; //玩家状态 0:排队状态 5:大厅观众状态 } //PACKET_CS_GETPLAYERLOG = 5614; // 获取玩家操作日志 message CSCLAWDOLLGetPlayerLog { int32 Type = 1; // 请求类型 } message ClawdollSuccessItemLog { int32 SnId = 1; // 玩家id string Name = 2; //玩家名字 int32 ModId = 3; // 头像ID int64 Time = 4; //时间 } //PACKET_SC_SENDPLAYERLOG = 5615; // 发送玩家操作日志 message SCCLAWDOLLSendPlayerLog { int32 Type = 1; // 请求类型 repeated ClawdollSuccessItemLog ItemLogs = 2; }