// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: 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_tamquoc_proto_enumTypes[0].Descriptor() } func (OpResultCode) Type() protoreflect.EnumType { return &file_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_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_tamquoc_proto_enumTypes[1].Descriptor() } func (TamQuocPacketID) Type() protoreflect.EnumType { return &file_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_tamquoc_proto_rawDescGZIP(), []int{12} } func (x *SCTamQuocRoomState) GetState() int32 { if x != nil { return x.State } return 0 } var File_tamquoc_proto protoreflect.FileDescriptor var file_tamquoc_proto_rawDesc = []byte{ 0x0a, 0x0d, 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, 0x0b, 0x5a, 0x09, 0x2e, 0x3b, 0x74, 0x61, 0x6d, 0x71, 0x75, 0x6f, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_tamquoc_proto_rawDescOnce sync.Once file_tamquoc_proto_rawDescData = file_tamquoc_proto_rawDesc ) func file_tamquoc_proto_rawDescGZIP() []byte { file_tamquoc_proto_rawDescOnce.Do(func() { file_tamquoc_proto_rawDescData = protoimpl.X.CompressGZIP(file_tamquoc_proto_rawDescData) }) return file_tamquoc_proto_rawDescData } var file_tamquoc_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_tamquoc_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_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_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_tamquoc_proto_init() } func file_tamquoc_proto_init() { if File_tamquoc_proto != nil { return } if !protoimpl.UnsafeEnabled { file_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_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_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_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_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_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_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_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_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_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_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_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_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_tamquoc_proto_rawDesc, NumEnums: 2, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_tamquoc_proto_goTypes, DependencyIndexes: file_tamquoc_proto_depIdxs, EnumInfos: file_tamquoc_proto_enumTypes, MessageInfos: file_tamquoc_proto_msgTypes, }.Build() File_tamquoc_proto = out.File file_tamquoc_proto_rawDesc = nil file_tamquoc_proto_goTypes = nil file_tamquoc_proto_depIdxs = nil }