印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
3.3 KiB

1 year ago
syntax = "proto3";
package pb;
option go_package = "../../pb";
// 游戏通用协议
enum GameProtocol{
Invalid = 0;
EnterGameReq = 1; // 进入游戏请求
EnterGameResp = 2; // 进入游戏请求
TableInfoReq = 3; // 请求获取游戏数据 GameCommonReq
TableInfoResp = 4; // 每个游戏不一样
GameStartResp = 6; // 游戏阶段转换协议/开始下注
GameSettleResp = 8; // 游戏阶段转换协议/停止下注
LeaveReq = 9; // 退出房间请求 GameCommonReq
LeaveResp = 10; // 退出房间返回 GameCommonResp
BetReq = 11; // 请求下注
BetResp = 12; // 请求下注返回
BetBroadcast = 14; // 其他人下注广播
HistoryReq = 15; // 请求历史记录 GameCommonReq
HistoryResp = 16; // 历史记录返回
BetListReq = 17; // 请求玩家下注列表 GameCommonReq
BetListResp = 18; // 玩家下注列表返回 GameMsgBetListResp
}
// 定义游戏阶段
enum GameStatus {
GameStatusInvalid = 0; // 无效
GameStatusNormal = 1; // 空闲
GameStatusPlaying = 2; // 游戏中
GameStatusSettle = 3; // 结算中
GameStatusSpecial = 4; // 子游戏特殊阶段
}
// 定义玩家状态
enum PlayerStatus {
PlayerStatusInvalid = 0; // 无效
PlayerStatusNormal = 1; // 空闲
PlayerStatusPlaying = 2; // 游戏中
PlayerStatusSettle = 3; // 已结算
PlayerStatusLeave = 4; // 已退出
}
message GameUser{
int64 UID = 1;
string Nick = 2;
string Avatar = 3;
int64 CurrencyType = 4;
int64 Balance = 5;
int64 Bet = 6;
PlayerStatus Status = 7;
}
// 通用客户端请求
message GameCommonReq{
}
// 通用客户端返回
message GameCommonResp{
int64 Result = 1; // 0:正常
}
// 通用客户端请求
message GameMsgEnterGameReq{
int64 SubID = 1; // 房间子id
int64 CurrencyType = 2;
}
// 通用客户端请求
message GameCommonTableInfo{
GameUser User = 1;
repeated int64 History = 2;
repeated BetPlayers List = 3;
GameStatus Status = 4;
int64 TimeLeft = 5;
repeated int64 BetLimit = 6;
}
message GameMsgBetListResp{
repeated BetPlayers List = 1;
}
message BetPlayers{
int64 UID = 1; // 玩家uid
string Avatar = 2; // 头像
string Nick = 3; // 昵称
int64 CurrencyType = 4;
int64 BetAmount = 5; // 下注金额
}
message ArrayInt64{
repeated int64 Element = 1;
}
// 通用离开返回
message GameLeaveResp{
int64 Result = 1; // 0:正常
int64 Reason = 2; // 0: 主动离开 1:强制离开
}
// 下注请求
message GameMsgBetReq{
int64 Area = 1;
int64 Amount = 2; // 下注金额
}
// 下注返回
message GameMsgBetResp{
int64 Code = 1; // 错误码
int64 CurrencyType = 2;
int64 Amount = 3; // 下注金额
int64 Balance = 4; // 下注后余额
int64 Area = 5;
}
// 其他人下注广播
message GameMsgBetBroadcastResp{
int64 UID = 1; // 下注人uid
int64 CurrencyType = 2;
int64 Amount = 3; // 下注金额
int64 Area = 4;
}
// 游戏开始
message GameMsgGameStartResp{
int64 TimeLeft = 1; // 剩余时间
}
// 历史记录返回
message GameMsgHistoryResp{
repeated int64 Results = 1; // 历史记录
}