game_sync/protocol/tamquoc/tamquoc.pb.go

1617 lines
59 KiB
Go
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.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1-devel
// protoc v3.19.4
// source: protocol/tamquoc/tamquoc.proto
package tamquoc
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
//操作结果
type OpResultCode int32
const (
OpResultCode_OPRC_Sucess OpResultCode = 0 //成功
OpResultCode_OPRC_Error OpResultCode = 1 //失败
OpResultCode_OPRC_CoinNotEnough OpResultCode = 1056 //钱不够
)
// Enum value maps for OpResultCode.
var (
OpResultCode_name = map[int32]string{
0: "OPRC_Sucess",
1: "OPRC_Error",
1056: "OPRC_CoinNotEnough",
}
OpResultCode_value = map[string]int32{
"OPRC_Sucess": 0,
"OPRC_Error": 1,
"OPRC_CoinNotEnough": 1056,
}
)
func (x OpResultCode) Enum() *OpResultCode {
p := new(OpResultCode)
*p = x
return p
}
func (x OpResultCode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (OpResultCode) Descriptor() protoreflect.EnumDescriptor {
return file_protocol_tamquoc_tamquoc_proto_enumTypes[0].Descriptor()
}
func (OpResultCode) Type() protoreflect.EnumType {
return &file_protocol_tamquoc_tamquoc_proto_enumTypes[0]
}
func (x OpResultCode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use OpResultCode.Descriptor instead.
func (OpResultCode) EnumDescriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{0}
}
//百战成神
type TamQuocPacketID int32
const (
TamQuocPacketID_PACKET_TAMQUOC_ZERO TamQuocPacketID = 0 // 弃用消息号
TamQuocPacketID_PACKET_SC_TAMQUOC_ROOMINFO TamQuocPacketID = 5520 //房间信息
TamQuocPacketID_PACKET_CS_TAMQUOC_PLAYEROP TamQuocPacketID = 5521 //玩家操作(客户->服务)
TamQuocPacketID_PACKET_SC_TAMQUOC_PLAYEROP TamQuocPacketID = 5522 //玩家操作(服务->客户)
TamQuocPacketID_PACKET_SC_TAMQUOC_ROOMSTATE TamQuocPacketID = 5523 //房间状态
TamQuocPacketID_PACKET_SC_TAMQUOC_GAMEBILLED TamQuocPacketID = 5524 //游戏结算
TamQuocPacketID_PACKET_SC_TAMQUOC_PLAYERHISTORY TamQuocPacketID = 5525 //游戏记录
TamQuocPacketID_PACKET_SC_TAMQUOC_BURSTHISTORY TamQuocPacketID = 5526 //爆奖记录
TamQuocPacketID_PACKET_SC_TAMQUOC_GAMEJACKPOT TamQuocPacketID = 5527 //奖池
)
// Enum value maps for TamQuocPacketID.
var (
TamQuocPacketID_name = map[int32]string{
0: "PACKET_TAMQUOC_ZERO",
5520: "PACKET_SC_TAMQUOC_ROOMINFO",
5521: "PACKET_CS_TAMQUOC_PLAYEROP",
5522: "PACKET_SC_TAMQUOC_PLAYEROP",
5523: "PACKET_SC_TAMQUOC_ROOMSTATE",
5524: "PACKET_SC_TAMQUOC_GAMEBILLED",
5525: "PACKET_SC_TAMQUOC_PLAYERHISTORY",
5526: "PACKET_SC_TAMQUOC_BURSTHISTORY",
5527: "PACKET_SC_TAMQUOC_GAMEJACKPOT",
}
TamQuocPacketID_value = map[string]int32{
"PACKET_TAMQUOC_ZERO": 0,
"PACKET_SC_TAMQUOC_ROOMINFO": 5520,
"PACKET_CS_TAMQUOC_PLAYEROP": 5521,
"PACKET_SC_TAMQUOC_PLAYEROP": 5522,
"PACKET_SC_TAMQUOC_ROOMSTATE": 5523,
"PACKET_SC_TAMQUOC_GAMEBILLED": 5524,
"PACKET_SC_TAMQUOC_PLAYERHISTORY": 5525,
"PACKET_SC_TAMQUOC_BURSTHISTORY": 5526,
"PACKET_SC_TAMQUOC_GAMEJACKPOT": 5527,
}
)
func (x TamQuocPacketID) Enum() *TamQuocPacketID {
p := new(TamQuocPacketID)
*p = x
return p
}
func (x TamQuocPacketID) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TamQuocPacketID) Descriptor() protoreflect.EnumDescriptor {
return file_protocol_tamquoc_tamquoc_proto_enumTypes[1].Descriptor()
}
func (TamQuocPacketID) Type() protoreflect.EnumType {
return &file_protocol_tamquoc_tamquoc_proto_enumTypes[1]
}
func (x TamQuocPacketID) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TamQuocPacketID.Descriptor instead.
func (TamQuocPacketID) EnumDescriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{1}
}
type TamQuocPlayerData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` //名字
SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //账号
Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` //头像
Sex int32 `protobuf:"varint,4,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别
Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币
HeadOutLine int32 `protobuf:"varint,6,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框
VIP int32 `protobuf:"varint,7,opt,name=VIP,proto3" json:"VIP,omitempty"`
Params []string `protobuf:"bytes,8,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等
}
func (x *TamQuocPlayerData) Reset() {
*x = TamQuocPlayerData{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TamQuocPlayerData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TamQuocPlayerData) ProtoMessage() {}
func (x *TamQuocPlayerData) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TamQuocPlayerData.ProtoReflect.Descriptor instead.
func (*TamQuocPlayerData) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{0}
}
func (x *TamQuocPlayerData) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TamQuocPlayerData) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *TamQuocPlayerData) GetHead() int32 {
if x != nil {
return x.Head
}
return 0
}
func (x *TamQuocPlayerData) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *TamQuocPlayerData) GetCoin() int64 {
if x != nil {
return x.Coin
}
return 0
}
func (x *TamQuocPlayerData) GetHeadOutLine() int32 {
if x != nil {
return x.HeadOutLine
}
return 0
}
func (x *TamQuocPlayerData) GetVIP() int32 {
if x != nil {
return x.VIP
}
return 0
}
func (x *TamQuocPlayerData) GetParams() []string {
if x != nil {
return x.Params
}
return nil
}
//小游戏信息
type TamQuocBonusGameInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BonusData []int64 `protobuf:"varint,1,rep,packed,name=BonusData,proto3" json:"BonusData,omitempty"`
TotalPrizeValue int64 `protobuf:"varint,2,opt,name=TotalPrizeValue,proto3" json:"TotalPrizeValue,omitempty"`
Mutiplier int32 `protobuf:"varint,3,opt,name=Mutiplier,proto3" json:"Mutiplier,omitempty"`
DataMultiplier int64 `protobuf:"varint,4,opt,name=DataMultiplier,proto3" json:"DataMultiplier,omitempty"`
}
func (x *TamQuocBonusGameInfo) Reset() {
*x = TamQuocBonusGameInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TamQuocBonusGameInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TamQuocBonusGameInfo) ProtoMessage() {}
func (x *TamQuocBonusGameInfo) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TamQuocBonusGameInfo.ProtoReflect.Descriptor instead.
func (*TamQuocBonusGameInfo) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{1}
}
func (x *TamQuocBonusGameInfo) GetBonusData() []int64 {
if x != nil {
return x.BonusData
}
return nil
}
func (x *TamQuocBonusGameInfo) GetTotalPrizeValue() int64 {
if x != nil {
return x.TotalPrizeValue
}
return 0
}
func (x *TamQuocBonusGameInfo) GetMutiplier() int32 {
if x != nil {
return x.Mutiplier
}
return 0
}
func (x *TamQuocBonusGameInfo) GetDataMultiplier() int64 {
if x != nil {
return x.DataMultiplier
}
return 0
}
//房间信息
type SCTamQuocRoomInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id
Creator int32 `protobuf:"varint,2,opt,name=Creator,proto3" json:"Creator,omitempty"` //创建者SnId
GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id
RoomMode int32 `protobuf:"varint,4,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式
Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //规则参数
State int32 `protobuf:"varint,6,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态
BetLines []int64 `protobuf:"varint,7,rep,packed,name=BetLines,proto3" json:"BetLines,omitempty"` //玩家下注选线数组
Chip int32 `protobuf:"varint,8,opt,name=Chip,proto3" json:"Chip,omitempty"` //当前选择的押注
Players []*TamQuocPlayerData `protobuf:"bytes,9,rep,name=Players,proto3" json:"Players,omitempty"` //房间内的玩家信息
FreeTimes int32 `protobuf:"varint,10,opt,name=FreeTimes,proto3" json:"FreeTimes,omitempty"` //免费转动次数
Jackpot int64 `protobuf:"varint,11,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` //奖池金额
TotalPriceBonus int64 `protobuf:"varint,12,opt,name=TotalPriceBonus,proto3" json:"TotalPriceBonus,omitempty"` //总bonus分 大于0时代表小游戏还未结束
SpinID int64 `protobuf:"varint,13,opt,name=SpinID,proto3" json:"SpinID,omitempty"` //操作ID
ParamsEx []int32 `protobuf:"varint,14,rep,packed,name=ParamsEx,proto3" json:"ParamsEx,omitempty"` //其他参数
BonusGame *TamQuocBonusGameInfo `protobuf:"bytes,15,opt,name=BonusGame,proto3" json:"BonusGame,omitempty"` //Bonus的数量大于等于3时的小游戏
GameFreeId int32 `protobuf:"varint,16,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"`
BilledData *GameBilledData `protobuf:"bytes,17,opt,name=BilledData,proto3" json:"BilledData,omitempty"` //上一局结算信息,用于断线重连
}
func (x *SCTamQuocRoomInfo) Reset() {
*x = SCTamQuocRoomInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocRoomInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocRoomInfo) ProtoMessage() {}
func (x *SCTamQuocRoomInfo) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocRoomInfo.ProtoReflect.Descriptor instead.
func (*SCTamQuocRoomInfo) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{2}
}
func (x *SCTamQuocRoomInfo) GetRoomId() int32 {
if x != nil {
return x.RoomId
}
return 0
}
func (x *SCTamQuocRoomInfo) GetCreator() int32 {
if x != nil {
return x.Creator
}
return 0
}
func (x *SCTamQuocRoomInfo) GetGameId() int32 {
if x != nil {
return x.GameId
}
return 0
}
func (x *SCTamQuocRoomInfo) GetRoomMode() int32 {
if x != nil {
return x.RoomMode
}
return 0
}
func (x *SCTamQuocRoomInfo) GetParams() []int32 {
if x != nil {
return x.Params
}
return nil
}
func (x *SCTamQuocRoomInfo) GetState() int32 {
if x != nil {
return x.State
}
return 0
}
func (x *SCTamQuocRoomInfo) GetBetLines() []int64 {
if x != nil {
return x.BetLines
}
return nil
}
func (x *SCTamQuocRoomInfo) GetChip() int32 {
if x != nil {
return x.Chip
}
return 0
}
func (x *SCTamQuocRoomInfo) GetPlayers() []*TamQuocPlayerData {
if x != nil {
return x.Players
}
return nil
}
func (x *SCTamQuocRoomInfo) GetFreeTimes() int32 {
if x != nil {
return x.FreeTimes
}
return 0
}
func (x *SCTamQuocRoomInfo) GetJackpot() int64 {
if x != nil {
return x.Jackpot
}
return 0
}
func (x *SCTamQuocRoomInfo) GetTotalPriceBonus() int64 {
if x != nil {
return x.TotalPriceBonus
}
return 0
}
func (x *SCTamQuocRoomInfo) GetSpinID() int64 {
if x != nil {
return x.SpinID
}
return 0
}
func (x *SCTamQuocRoomInfo) GetParamsEx() []int32 {
if x != nil {
return x.ParamsEx
}
return nil
}
func (x *SCTamQuocRoomInfo) GetBonusGame() *TamQuocBonusGameInfo {
if x != nil {
return x.BonusGame
}
return nil
}
func (x *SCTamQuocRoomInfo) GetGameFreeId() int32 {
if x != nil {
return x.GameFreeId
}
return 0
}
func (x *SCTamQuocRoomInfo) GetBilledData() *GameBilledData {
if x != nil {
return x.BilledData
}
return nil
}
//玩家操作
type CSTamQuocOp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 0:开始{0押注倍数,1-n选线} 1:玩家记录信息 2:爆奖记录 3:小游戏
Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数
}
func (x *CSTamQuocOp) Reset() {
*x = CSTamQuocOp{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSTamQuocOp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSTamQuocOp) ProtoMessage() {}
func (x *CSTamQuocOp) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSTamQuocOp.ProtoReflect.Descriptor instead.
func (*CSTamQuocOp) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{3}
}
func (x *CSTamQuocOp) GetOpCode() int32 {
if x != nil {
return x.OpCode
}
return 0
}
func (x *CSTamQuocOp) GetParams() []int64 {
if x != nil {
return x.Params
}
return nil
}
//玩家操作返回
type SCTamQuocOp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家ID
OpCode int32 `protobuf:"varint,2,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码
Params []int64 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数
OpRetCode OpResultCode `protobuf:"varint,4,opt,name=OpRetCode,proto3,enum=tamquoc.OpResultCode" json:"OpRetCode,omitempty"` //操作结果
}
func (x *SCTamQuocOp) Reset() {
*x = SCTamQuocOp{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocOp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocOp) ProtoMessage() {}
func (x *SCTamQuocOp) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocOp.ProtoReflect.Descriptor instead.
func (*SCTamQuocOp) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{4}
}
func (x *SCTamQuocOp) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *SCTamQuocOp) GetOpCode() int32 {
if x != nil {
return x.OpCode
}
return 0
}
func (x *SCTamQuocOp) GetParams() []int64 {
if x != nil {
return x.Params
}
return nil
}
func (x *SCTamQuocOp) GetOpRetCode() OpResultCode {
if x != nil {
return x.OpRetCode
}
return OpResultCode_OPRC_Sucess
}
//每条线的结算数据
type TamQuocLinesInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LineId int32 `protobuf:"varint,1,opt,name=LineId,proto3" json:"LineId,omitempty"` //中奖线路25条线路中的一条[1,25]
PrizeId int32 `protobuf:"varint,2,opt,name=PrizeId,proto3" json:"PrizeId,omitempty"` //中奖Id(暂时忽略)
Position []int32 `protobuf:"varint,3,rep,packed,name=Position,proto3" json:"Position,omitempty"` //中奖位置编号
PrizeValue int64 `protobuf:"varint,4,opt,name=PrizeValue,proto3" json:"PrizeValue,omitempty"` //线条奖金
}
func (x *TamQuocLinesInfo) Reset() {
*x = TamQuocLinesInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TamQuocLinesInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TamQuocLinesInfo) ProtoMessage() {}
func (x *TamQuocLinesInfo) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TamQuocLinesInfo.ProtoReflect.Descriptor instead.
func (*TamQuocLinesInfo) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{5}
}
func (x *TamQuocLinesInfo) GetLineId() int32 {
if x != nil {
return x.LineId
}
return 0
}
func (x *TamQuocLinesInfo) GetPrizeId() int32 {
if x != nil {
return x.PrizeId
}
return 0
}
func (x *TamQuocLinesInfo) GetPosition() []int32 {
if x != nil {
return x.Position
}
return nil
}
func (x *TamQuocLinesInfo) GetPrizeValue() int64 {
if x != nil {
return x.PrizeValue
}
return 0
}
type GameBilledData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SpinID int64 `protobuf:"varint,1,opt,name=SpinID,proto3" json:"SpinID,omitempty"` //操作ID
SlotsData []int32 `protobuf:"varint,2,rep,packed,name=SlotsData,proto3" json:"SlotsData,omitempty"` //需要翻出的牌数组15个,如:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2, 3, 4, 5, 6]
AddFreeSpin int32 `protobuf:"varint,3,opt,name=AddFreeSpin,proto3" json:"AddFreeSpin,omitempty"` //新增免费转动次数
IsJackpot bool `protobuf:"varint,4,opt,name=IsJackpot,proto3" json:"IsJackpot,omitempty"` //是否爆奖
PrizeLines []*TamQuocLinesInfo `protobuf:"bytes,5,rep,name=PrizeLines,proto3" json:"PrizeLines,omitempty"` //中奖的结果数组,存每条线的情况
TotalPrizeValue int64 `protobuf:"varint,6,opt,name=TotalPrizeValue,proto3" json:"TotalPrizeValue,omitempty"` //中奖的总分数
TotalPaylinePrizeValue int64 `protobuf:"varint,7,opt,name=TotalPaylinePrizeValue,proto3" json:"TotalPaylinePrizeValue,omitempty"` //除了爆奖金额之外的线条奖金
TotalJackpotValue int64 `protobuf:"varint,8,opt,name=TotalJackpotValue,proto3" json:"TotalJackpotValue,omitempty"` //爆奖金额
Balance int64 `protobuf:"varint,9,opt,name=Balance,proto3" json:"Balance,omitempty"` //玩家余额
FreeSpins int32 `protobuf:"varint,10,opt,name=FreeSpins,proto3" json:"FreeSpins,omitempty"` //剩余免费转动次数
Jackpot int64 `protobuf:"varint,11,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` //奖池金额
BonusX []int32 `protobuf:"varint,12,rep,packed,name=BonusX,proto3" json:"BonusX,omitempty"` //小游戏倍数Bonus图标的数量为3/4/5时分别为 1,2,3 或 2,3,4 或 3,4,5
BonusGame *TamQuocBonusGameInfo `protobuf:"bytes,13,opt,name=BonusGame,proto3" json:"BonusGame,omitempty"` //Bonus的数量大于等于3时的小游戏
ResponseStatus int64 `protobuf:"varint,14,opt,name=ResponseStatus,proto3" json:"ResponseStatus,omitempty"` //状态码
}
func (x *GameBilledData) Reset() {
*x = GameBilledData{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GameBilledData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GameBilledData) ProtoMessage() {}
func (x *GameBilledData) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GameBilledData.ProtoReflect.Descriptor instead.
func (*GameBilledData) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{6}
}
func (x *GameBilledData) GetSpinID() int64 {
if x != nil {
return x.SpinID
}
return 0
}
func (x *GameBilledData) GetSlotsData() []int32 {
if x != nil {
return x.SlotsData
}
return nil
}
func (x *GameBilledData) GetAddFreeSpin() int32 {
if x != nil {
return x.AddFreeSpin
}
return 0
}
func (x *GameBilledData) GetIsJackpot() bool {
if x != nil {
return x.IsJackpot
}
return false
}
func (x *GameBilledData) GetPrizeLines() []*TamQuocLinesInfo {
if x != nil {
return x.PrizeLines
}
return nil
}
func (x *GameBilledData) GetTotalPrizeValue() int64 {
if x != nil {
return x.TotalPrizeValue
}
return 0
}
func (x *GameBilledData) GetTotalPaylinePrizeValue() int64 {
if x != nil {
return x.TotalPaylinePrizeValue
}
return 0
}
func (x *GameBilledData) GetTotalJackpotValue() int64 {
if x != nil {
return x.TotalJackpotValue
}
return 0
}
func (x *GameBilledData) GetBalance() int64 {
if x != nil {
return x.Balance
}
return 0
}
func (x *GameBilledData) GetFreeSpins() int32 {
if x != nil {
return x.FreeSpins
}
return 0
}
func (x *GameBilledData) GetJackpot() int64 {
if x != nil {
return x.Jackpot
}
return 0
}
func (x *GameBilledData) GetBonusX() []int32 {
if x != nil {
return x.BonusX
}
return nil
}
func (x *GameBilledData) GetBonusGame() *TamQuocBonusGameInfo {
if x != nil {
return x.BonusGame
}
return nil
}
func (x *GameBilledData) GetResponseStatus() int64 {
if x != nil {
return x.ResponseStatus
}
return 0
}
//发送给客户端的数据 结算
type SCTamQuocGameBilled struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BilledData *GameBilledData `protobuf:"bytes,1,opt,name=BilledData,proto3" json:"BilledData,omitempty"` //结算信息
}
func (x *SCTamQuocGameBilled) Reset() {
*x = SCTamQuocGameBilled{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocGameBilled) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocGameBilled) ProtoMessage() {}
func (x *SCTamQuocGameBilled) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocGameBilled.ProtoReflect.Descriptor instead.
func (*SCTamQuocGameBilled) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{7}
}
func (x *SCTamQuocGameBilled) GetBilledData() *GameBilledData {
if x != nil {
return x.BilledData
}
return nil
}
// 玩家记录信息
type TamQuocPlayerHistoryInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SpinID string `protobuf:"bytes,1,opt,name=SpinID,proto3" json:"SpinID,omitempty"` // 操作id
CreatedTime int64 `protobuf:"varint,2,opt,name=CreatedTime,proto3" json:"CreatedTime,omitempty"` // 时间
TotalBetValue int64 `protobuf:"varint,3,opt,name=TotalBetValue,proto3" json:"TotalBetValue,omitempty"` // 总下注
TotalPriceValue int64 `protobuf:"varint,4,opt,name=TotalPriceValue,proto3" json:"TotalPriceValue,omitempty"` // 总赢分
IsFree bool `protobuf:"varint,5,opt,name=IsFree,proto3" json:"IsFree,omitempty"` // 是否免费
TotalBonusValue int64 `protobuf:"varint,6,opt,name=TotalBonusValue,proto3" json:"TotalBonusValue,omitempty"` // 是否免费
}
func (x *TamQuocPlayerHistoryInfo) Reset() {
*x = TamQuocPlayerHistoryInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TamQuocPlayerHistoryInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TamQuocPlayerHistoryInfo) ProtoMessage() {}
func (x *TamQuocPlayerHistoryInfo) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TamQuocPlayerHistoryInfo.ProtoReflect.Descriptor instead.
func (*TamQuocPlayerHistoryInfo) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{8}
}
func (x *TamQuocPlayerHistoryInfo) GetSpinID() string {
if x != nil {
return x.SpinID
}
return ""
}
func (x *TamQuocPlayerHistoryInfo) GetCreatedTime() int64 {
if x != nil {
return x.CreatedTime
}
return 0
}
func (x *TamQuocPlayerHistoryInfo) GetTotalBetValue() int64 {
if x != nil {
return x.TotalBetValue
}
return 0
}
func (x *TamQuocPlayerHistoryInfo) GetTotalPriceValue() int64 {
if x != nil {
return x.TotalPriceValue
}
return 0
}
func (x *TamQuocPlayerHistoryInfo) GetIsFree() bool {
if x != nil {
return x.IsFree
}
return false
}
func (x *TamQuocPlayerHistoryInfo) GetTotalBonusValue() int64 {
if x != nil {
return x.TotalBonusValue
}
return 0
}
// 玩家记录
type SCTamQuocPlayerHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PlayerHistory []*TamQuocPlayerHistoryInfo `protobuf:"bytes,1,rep,name=PlayerHistory,proto3" json:"PlayerHistory,omitempty"`
}
func (x *SCTamQuocPlayerHistory) Reset() {
*x = SCTamQuocPlayerHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocPlayerHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocPlayerHistory) ProtoMessage() {}
func (x *SCTamQuocPlayerHistory) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocPlayerHistory.ProtoReflect.Descriptor instead.
func (*SCTamQuocPlayerHistory) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{9}
}
func (x *SCTamQuocPlayerHistory) GetPlayerHistory() []*TamQuocPlayerHistoryInfo {
if x != nil {
return x.PlayerHistory
}
return nil
}
// 大奖记录信息
type TamQuocBurstHistoryInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` // 昵称
PriceValue int64 `protobuf:"varint,2,opt,name=PriceValue,proto3" json:"PriceValue,omitempty"` // 大奖赢分
TotalBet int64 `protobuf:"varint,3,opt,name=TotalBet,proto3" json:"TotalBet,omitempty"` // 时间
Ts int64 `protobuf:"varint,4,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间
}
func (x *TamQuocBurstHistoryInfo) Reset() {
*x = TamQuocBurstHistoryInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TamQuocBurstHistoryInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TamQuocBurstHistoryInfo) ProtoMessage() {}
func (x *TamQuocBurstHistoryInfo) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TamQuocBurstHistoryInfo.ProtoReflect.Descriptor instead.
func (*TamQuocBurstHistoryInfo) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{10}
}
func (x *TamQuocBurstHistoryInfo) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
func (x *TamQuocBurstHistoryInfo) GetPriceValue() int64 {
if x != nil {
return x.PriceValue
}
return 0
}
func (x *TamQuocBurstHistoryInfo) GetTotalBet() int64 {
if x != nil {
return x.TotalBet
}
return 0
}
func (x *TamQuocBurstHistoryInfo) GetTs() int64 {
if x != nil {
return x.Ts
}
return 0
}
// 大奖记录
type SCTamQuocBurstHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BurstLog []*TamQuocBurstHistoryInfo `protobuf:"bytes,1,rep,name=BurstLog,proto3" json:"BurstLog,omitempty"`
}
func (x *SCTamQuocBurstHistory) Reset() {
*x = SCTamQuocBurstHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocBurstHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocBurstHistory) ProtoMessage() {}
func (x *SCTamQuocBurstHistory) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocBurstHistory.ProtoReflect.Descriptor instead.
func (*SCTamQuocBurstHistory) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{11}
}
func (x *SCTamQuocBurstHistory) GetBurstLog() []*TamQuocBurstHistoryInfo {
if x != nil {
return x.BurstLog
}
return nil
}
//房间状态
type SCTamQuocRoomState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态
}
func (x *SCTamQuocRoomState) Reset() {
*x = SCTamQuocRoomState{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTamQuocRoomState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTamQuocRoomState) ProtoMessage() {}
func (x *SCTamQuocRoomState) ProtoReflect() protoreflect.Message {
mi := &file_protocol_tamquoc_tamquoc_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCTamQuocRoomState.ProtoReflect.Descriptor instead.
func (*SCTamQuocRoomState) Descriptor() ([]byte, []int) {
return file_protocol_tamquoc_tamquoc_proto_rawDescGZIP(), []int{12}
}
func (x *SCTamQuocRoomState) GetState() int32 {
if x != nil {
return x.State
}
return 0
}
var File_protocol_tamquoc_tamquoc_proto protoreflect.FileDescriptor
var file_protocol_tamquoc_tamquoc_proto_rawDesc = []byte{
0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x61, 0x6d, 0x71, 0x75,
0x6f, 0x63, 0x2f, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x07, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x54, 0x61,
0x6d, 0x51, 0x75, 0x6f, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12,
0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53,
0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a,
0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69,
0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c,
0x69, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18,
0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa4, 0x01,
0x0a, 0x14, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x47, 0x61,
0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x44,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x42, 0x6f, 0x6e, 0x75, 0x73,
0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69,
0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x54,
0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c,
0x0a, 0x09, 0x4d, 0x75, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x4d, 0x75, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e,
0x44, 0x61, 0x74, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x04,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70,
0x6c, 0x69, 0x65, 0x72, 0x22, 0xb9, 0x04, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x61, 0x6d, 0x51, 0x75,
0x6f, 0x63, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f,
0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d,
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06,
0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61,
0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05,
0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03,
0x52, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68,
0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x34,
0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f,
0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65,
0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x03, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x28, 0x0a, 0x0f,
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63,
0x65, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, 0x44,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1a,
0x0a, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05,
0x52, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x3b, 0x0a, 0x09, 0x42, 0x6f,
0x6e, 0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42,
0x6f, 0x6e, 0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x42, 0x6f,
0x6e, 0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46,
0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d,
0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x42, 0x69, 0x6c, 0x6c, 0x65,
0x64, 0x44, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61,
0x6d, 0x71, 0x75, 0x6f, 0x63, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64,
0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61,
0x22, 0x3d, 0x0a, 0x0b, 0x43, 0x53, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x4f, 0x70, 0x12,
0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22,
0x86, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x4f, 0x70, 0x12,
0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53,
0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50,
0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63,
0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f,
0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x6d,
0x51, 0x75, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a,
0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c,
0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x49, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28,
0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50,
0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa0, 0x04, 0x0a, 0x0e,
0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16,
0x0a, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x53, 0x70, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x44,
0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6c, 0x6f, 0x74, 0x73,
0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x46, 0x72, 0x65, 0x65, 0x53,
0x70, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x64, 0x64, 0x46, 0x72,
0x65, 0x65, 0x53, 0x70, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x4a, 0x61, 0x63, 0x6b,
0x70, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x49, 0x73, 0x4a, 0x61, 0x63,
0x6b, 0x70, 0x6f, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6e,
0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x6d, 0x71, 0x75,
0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12,
0x28, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50,
0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x54, 0x6f, 0x74,
0x61, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x54, 0x6f, 0x74, 0x61, 0x6c,
0x50, 0x61, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f,
0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x54, 0x6f,
0x74, 0x61, 0x6c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03,
0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65,
0x65, 0x53, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x72,
0x65, 0x65, 0x53, 0x70, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70,
0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f,
0x74, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x58, 0x18, 0x0c, 0x20, 0x03, 0x28,
0x05, 0x52, 0x06, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x58, 0x12, 0x3b, 0x0a, 0x09, 0x42, 0x6f, 0x6e,
0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74,
0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42, 0x6f,
0x6e, 0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x42, 0x6f, 0x6e,
0x75, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4e,
0x0a, 0x13, 0x53, 0x43, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x47, 0x61, 0x6d, 0x65, 0x42,
0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x44,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x6d, 0x71,
0x75, 0x6f, 0x63, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x44, 0x61,
0x74, 0x61, 0x52, 0x0a, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe6,
0x01, 0x0a, 0x18, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x53,
0x70, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x70, 0x69,
0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65,
0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x54, 0x6f,
0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x54,
0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x46, 0x72, 0x65, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x46, 0x72, 0x65, 0x65, 0x12, 0x28, 0x0a,
0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x6e,
0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x16, 0x53, 0x43, 0x54, 0x61, 0x6d,
0x51, 0x75, 0x6f, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x12, 0x47, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x61, 0x6d, 0x71, 0x75,
0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x17, 0x54,
0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x12, 0x0e,
0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x55,
0x0a, 0x15, 0x53, 0x43, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42, 0x75, 0x72, 0x73, 0x74,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x08, 0x42, 0x75, 0x72, 0x73, 0x74,
0x4c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x6d, 0x71,
0x75, 0x6f, 0x63, 0x2e, 0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x42, 0x75, 0x72, 0x73, 0x74,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x42, 0x75, 0x72,
0x73, 0x74, 0x4c, 0x6f, 0x67, 0x22, 0x2a, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x61, 0x6d, 0x51, 0x75,
0x6f, 0x63, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53,
0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74,
0x65, 0x2a, 0x48, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73,
0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x10, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e,
0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xa0, 0x08, 0x2a, 0xc1, 0x02, 0x0a, 0x0f,
0x54, 0x61, 0x6d, 0x51, 0x75, 0x6f, 0x63, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12,
0x17, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f,
0x43, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43, 0x5f, 0x52, 0x4f,
0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x90, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43, 0x5f, 0x50,
0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0x91, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43, 0x5f,
0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0x92, 0x2b, 0x12, 0x20, 0x0a, 0x1b, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43,
0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x93, 0x2b, 0x12, 0x21, 0x0a,
0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55,
0x4f, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x94, 0x2b,
0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41,
0x4d, 0x51, 0x55, 0x4f, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x48, 0x49, 0x53, 0x54,
0x4f, 0x52, 0x59, 0x10, 0x95, 0x2b, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43, 0x5f, 0x42, 0x55, 0x52, 0x53,
0x54, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x96, 0x2b, 0x12, 0x22, 0x0a, 0x1d, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x4d, 0x51, 0x55, 0x4f, 0x43,
0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x10, 0x97, 0x2b, 0x42,
0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
0x2f, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_protocol_tamquoc_tamquoc_proto_rawDescOnce sync.Once
file_protocol_tamquoc_tamquoc_proto_rawDescData = file_protocol_tamquoc_tamquoc_proto_rawDesc
)
func file_protocol_tamquoc_tamquoc_proto_rawDescGZIP() []byte {
file_protocol_tamquoc_tamquoc_proto_rawDescOnce.Do(func() {
file_protocol_tamquoc_tamquoc_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocol_tamquoc_tamquoc_proto_rawDescData)
})
return file_protocol_tamquoc_tamquoc_proto_rawDescData
}
var file_protocol_tamquoc_tamquoc_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_protocol_tamquoc_tamquoc_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_protocol_tamquoc_tamquoc_proto_goTypes = []interface{}{
(OpResultCode)(0), // 0: tamquoc.OpResultCode
(TamQuocPacketID)(0), // 1: tamquoc.TamQuocPacketID
(*TamQuocPlayerData)(nil), // 2: tamquoc.TamQuocPlayerData
(*TamQuocBonusGameInfo)(nil), // 3: tamquoc.TamQuocBonusGameInfo
(*SCTamQuocRoomInfo)(nil), // 4: tamquoc.SCTamQuocRoomInfo
(*CSTamQuocOp)(nil), // 5: tamquoc.CSTamQuocOp
(*SCTamQuocOp)(nil), // 6: tamquoc.SCTamQuocOp
(*TamQuocLinesInfo)(nil), // 7: tamquoc.TamQuocLinesInfo
(*GameBilledData)(nil), // 8: tamquoc.GameBilledData
(*SCTamQuocGameBilled)(nil), // 9: tamquoc.SCTamQuocGameBilled
(*TamQuocPlayerHistoryInfo)(nil), // 10: tamquoc.TamQuocPlayerHistoryInfo
(*SCTamQuocPlayerHistory)(nil), // 11: tamquoc.SCTamQuocPlayerHistory
(*TamQuocBurstHistoryInfo)(nil), // 12: tamquoc.TamQuocBurstHistoryInfo
(*SCTamQuocBurstHistory)(nil), // 13: tamquoc.SCTamQuocBurstHistory
(*SCTamQuocRoomState)(nil), // 14: tamquoc.SCTamQuocRoomState
}
var file_protocol_tamquoc_tamquoc_proto_depIdxs = []int32{
2, // 0: tamquoc.SCTamQuocRoomInfo.Players:type_name -> tamquoc.TamQuocPlayerData
3, // 1: tamquoc.SCTamQuocRoomInfo.BonusGame:type_name -> tamquoc.TamQuocBonusGameInfo
8, // 2: tamquoc.SCTamQuocRoomInfo.BilledData:type_name -> tamquoc.GameBilledData
0, // 3: tamquoc.SCTamQuocOp.OpRetCode:type_name -> tamquoc.OpResultCode
7, // 4: tamquoc.GameBilledData.PrizeLines:type_name -> tamquoc.TamQuocLinesInfo
3, // 5: tamquoc.GameBilledData.BonusGame:type_name -> tamquoc.TamQuocBonusGameInfo
8, // 6: tamquoc.SCTamQuocGameBilled.BilledData:type_name -> tamquoc.GameBilledData
10, // 7: tamquoc.SCTamQuocPlayerHistory.PlayerHistory:type_name -> tamquoc.TamQuocPlayerHistoryInfo
12, // 8: tamquoc.SCTamQuocBurstHistory.BurstLog:type_name -> tamquoc.TamQuocBurstHistoryInfo
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_protocol_tamquoc_tamquoc_proto_init() }
func file_protocol_tamquoc_tamquoc_proto_init() {
if File_protocol_tamquoc_tamquoc_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_protocol_tamquoc_tamquoc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TamQuocPlayerData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TamQuocBonusGameInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocRoomInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSTamQuocOp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocOp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TamQuocLinesInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GameBilledData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocGameBilled); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TamQuocPlayerHistoryInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocPlayerHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TamQuocBurstHistoryInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocBurstHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_tamquoc_tamquoc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTamQuocRoomState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protocol_tamquoc_tamquoc_proto_rawDesc,
NumEnums: 2,
NumMessages: 13,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_protocol_tamquoc_tamquoc_proto_goTypes,
DependencyIndexes: file_protocol_tamquoc_tamquoc_proto_depIdxs,
EnumInfos: file_protocol_tamquoc_tamquoc_proto_enumTypes,
MessageInfos: file_protocol_tamquoc_tamquoc_proto_msgTypes,
}.Build()
File_protocol_tamquoc_tamquoc_proto = out.File
file_protocol_tamquoc_tamquoc_proto_rawDesc = nil
file_protocol_tamquoc_tamquoc_proto_goTypes = nil
file_protocol_tamquoc_tamquoc_proto_depIdxs = nil
}