// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: thirteen.proto package thirteen 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 TWMmoPacketID int32 const ( TWMmoPacketID_PACKET_THIRTEEN_ZERO TWMmoPacketID = 0 // 弃用消息号 TWMmoPacketID_PACKET_SCThirteenRoomInfo TWMmoPacketID = 5570 // 房间信息 TWMmoPacketID_PACKET_CSThirteenPlayerOp TWMmoPacketID = 5571 // 玩家操作 TWMmoPacketID_PACKET_SCThirteenRoomState TWMmoPacketID = 5572 // 房间状态 TWMmoPacketID_PACKET_SCThirteenPlayerEnter TWMmoPacketID = 5573 // 玩家进入 TWMmoPacketID_PACKET_SCThirteenPlayerLeave TWMmoPacketID = 5574 // 玩家离开 TWMmoPacketID_PACKET_SCThirteenPlayerCards TWMmoPacketID = 5575 // 给玩家发牌 TWMmoPacketID_PACKET_SCThirteenPlayerOp TWMmoPacketID = 5576 // 确认牌型 TWMmoPacketID_PACKET_SCThirteenShowCards TWMmoPacketID = 5577 // 打枪或亮牌 TWMmoPacketID_PACKET_SCThirteenBilled TWMmoPacketID = 5578 // 结算 TWMmoPacketID_PACKET_SCThirteenTest TWMmoPacketID = 5579 // 测试 ) // Enum value maps for TWMmoPacketID. var ( TWMmoPacketID_name = map[int32]string{ 0: "PACKET_THIRTEEN_ZERO", 5570: "PACKET_SCThirteenRoomInfo", 5571: "PACKET_CSThirteenPlayerOp", 5572: "PACKET_SCThirteenRoomState", 5573: "PACKET_SCThirteenPlayerEnter", 5574: "PACKET_SCThirteenPlayerLeave", 5575: "PACKET_SCThirteenPlayerCards", 5576: "PACKET_SCThirteenPlayerOp", 5577: "PACKET_SCThirteenShowCards", 5578: "PACKET_SCThirteenBilled", 5579: "PACKET_SCThirteenTest", } TWMmoPacketID_value = map[string]int32{ "PACKET_THIRTEEN_ZERO": 0, "PACKET_SCThirteenRoomInfo": 5570, "PACKET_CSThirteenPlayerOp": 5571, "PACKET_SCThirteenRoomState": 5572, "PACKET_SCThirteenPlayerEnter": 5573, "PACKET_SCThirteenPlayerLeave": 5574, "PACKET_SCThirteenPlayerCards": 5575, "PACKET_SCThirteenPlayerOp": 5576, "PACKET_SCThirteenShowCards": 5577, "PACKET_SCThirteenBilled": 5578, "PACKET_SCThirteenTest": 5579, } ) func (x TWMmoPacketID) Enum() *TWMmoPacketID { p := new(TWMmoPacketID) *p = x return p } func (x TWMmoPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TWMmoPacketID) Descriptor() protoreflect.EnumDescriptor { return file_thirteen_proto_enumTypes[0].Descriptor() } func (TWMmoPacketID) Type() protoreflect.EnumType { return &file_thirteen_proto_enumTypes[0] } func (x TWMmoPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TWMmoPacketID.Descriptor instead. func (TWMmoPacketID) EnumDescriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{0} } type OpResultCode int32 const ( OpResultCode_OPRC_Sucess OpResultCode = 0 //成功 OpResultCode_OPRC_Error OpResultCode = 1 //失败 ) // Enum value maps for OpResultCode. var ( OpResultCode_name = map[int32]string{ 0: "OPRC_Sucess", 1: "OPRC_Error", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, "OPRC_Error": 1, } ) 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_thirteen_proto_enumTypes[1].Descriptor() } func (OpResultCode) Type() protoreflect.EnumType { return &file_thirteen_proto_enumTypes[1] } func (x OpResultCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use OpResultCode.Descriptor instead. func (OpResultCode) EnumDescriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{1} } type HitScore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //被打枪玩家位置 Score int64 `protobuf:"varint,2,opt,name=Score,proto3" json:"Score,omitempty"` //输的分数,正值 } func (x *HitScore) Reset() { *x = HitScore{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HitScore) String() string { return protoimpl.X.MessageStringOf(x) } func (*HitScore) ProtoMessage() {} func (x *HitScore) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 HitScore.ProtoReflect.Descriptor instead. func (*HitScore) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{0} } func (x *HitScore) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *HitScore) GetScore() int64 { if x != nil { return x.Score } return 0 } type Poker struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // IndexType 规则,特殊牌型序号*1000000 + 头墩普通牌型序号*10000 + 中墩普通牌型序号*100 + 尾墩普通牌型序号;没有特殊牌型时值小于1000000 IndexType int32 `protobuf:"varint,1,opt,name=IndexType,proto3" json:"IndexType,omitempty"` // 牌型 Head []int32 `protobuf:"varint,2,rep,packed,name=Head,proto3" json:"Head,omitempty"` // 头墩 Mid []int32 `protobuf:"varint,3,rep,packed,name=Mid,proto3" json:"Mid,omitempty"` // 中墩 End []int32 `protobuf:"varint,4,rep,packed,name=End,proto3" json:"End,omitempty"` // 尾墩 IsDP bool `protobuf:"varint,5,opt,name=IsDP,proto3" json:"IsDP,omitempty"` // 是否倒排 Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` //账号 Score []int64 `protobuf:"varint,7,rep,packed,name=Score,proto3" json:"Score,omitempty"` //得分,1头墩 2中墩 3尾墩 4特殊牌型分数 5打枪 6全垒打 Hit []*HitScore `protobuf:"bytes,8,rep,name=Hit,proto3" json:"Hit,omitempty"` //打枪 TableScore []int64 `protobuf:"varint,9,rep,packed,name=TableScore,proto3" json:"TableScore,omitempty"` // 客户端展示用;0头墩,1中墩,2尾墩,3头墩额外加分,4中墩额外加分,5尾墩额外加分 Cards []int32 `protobuf:"varint,10,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` // 13张牌 } func (x *Poker) Reset() { *x = Poker{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Poker) String() string { return protoimpl.X.MessageStringOf(x) } func (*Poker) ProtoMessage() {} func (x *Poker) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 Poker.ProtoReflect.Descriptor instead. func (*Poker) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{1} } func (x *Poker) GetIndexType() int32 { if x != nil { return x.IndexType } return 0 } func (x *Poker) GetHead() []int32 { if x != nil { return x.Head } return nil } func (x *Poker) GetMid() []int32 { if x != nil { return x.Mid } return nil } func (x *Poker) GetEnd() []int32 { if x != nil { return x.End } return nil } func (x *Poker) GetIsDP() bool { if x != nil { return x.IsDP } return false } func (x *Poker) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *Poker) GetScore() []int64 { if x != nil { return x.Score } return nil } func (x *Poker) GetHit() []*HitScore { if x != nil { return x.Hit } return nil } func (x *Poker) GetTableScore() []int64 { if x != nil { return x.TableScore } return nil } func (x *Poker) GetCards() []int32 { if x != nil { return x.Cards } return nil } //PACKET_SCThirteenPlayerCards type SCThirteenPlayerCards struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` // 13张牌 Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 AllCardsO []*Poker `protobuf:"bytes,3,rep,name=AllCardsO,proto3" json:"AllCardsO,omitempty"` // 推荐牌型 } func (x *SCThirteenPlayerCards) Reset() { *x = SCThirteenPlayerCards{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenPlayerCards) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenPlayerCards) ProtoMessage() {} func (x *SCThirteenPlayerCards) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenPlayerCards.ProtoReflect.Descriptor instead. func (*SCThirteenPlayerCards) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{2} } func (x *SCThirteenPlayerCards) GetCards() []int32 { if x != nil { return x.Cards } return nil } func (x *SCThirteenPlayerCards) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *SCThirteenPlayerCards) GetAllCardsO() []*Poker { if x != nil { return x.AllCardsO } return nil } //玩家操作 //PACKET_CSThirteenPlayerOp type CSThirteenPlayerOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` // 1:确定牌 2站起状态 3test 4重新选牌 // 确定牌时,两种参数规则,都可以 // 第一种:玩家从推荐牌型中选择一个,把Poker.IndexType发过来(减少数据传输) // 第二种:按头墩中墩尾墩顺序把牌发过来 // 站起状态:0站起,1取消站起 OpParam []int64 `protobuf:"varint,2,rep,packed,name=OpParam,proto3" json:"OpParam,omitempty"` } func (x *CSThirteenPlayerOp) Reset() { *x = CSThirteenPlayerOp{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThirteenPlayerOp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThirteenPlayerOp) ProtoMessage() {} func (x *CSThirteenPlayerOp) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 CSThirteenPlayerOp.ProtoReflect.Descriptor instead. func (*CSThirteenPlayerOp) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{3} } func (x *CSThirteenPlayerOp) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *CSThirteenPlayerOp) GetOpParam() []int64 { if x != nil { return x.OpParam } return nil } //PACKET_SCThirteenPlayerOp type SCThirteenPlayerOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=thirteen.OpResultCode" json:"OpRetCode,omitempty"` OpCode int32 `protobuf:"varint,2,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //1出牌 2过牌 3开始游戏 OpParam []int64 `protobuf:"varint,3,rep,packed,name=OpParam,proto3" json:"OpParam,omitempty"` //参数 Pos int32 `protobuf:"varint,4,opt,name=Pos,proto3" json:"Pos,omitempty"` // 玩家位置 Cards *Poker `protobuf:"bytes,5,opt,name=Cards,proto3" json:"Cards,omitempty"` } func (x *SCThirteenPlayerOp) Reset() { *x = SCThirteenPlayerOp{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenPlayerOp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenPlayerOp) ProtoMessage() {} func (x *SCThirteenPlayerOp) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenPlayerOp.ProtoReflect.Descriptor instead. func (*SCThirteenPlayerOp) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{4} } func (x *SCThirteenPlayerOp) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } func (x *SCThirteenPlayerOp) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *SCThirteenPlayerOp) GetOpParam() []int64 { if x != nil { return x.OpParam } return nil } func (x *SCThirteenPlayerOp) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *SCThirteenPlayerOp) GetCards() *Poker { if x != nil { return x.Cards } return nil } //玩家信息 type ThirteenPlayerData 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"` //金币 Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 Flag int32 `protobuf:"varint,7,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 第一位:是否掉线(0:在线 1:掉线) 第二位:是否准备(0:未准备 1:已准备) Cards []int32 `protobuf:"varint,8,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌 Score []int64 `protobuf:"varint,9,rep,packed,name=Score,proto3" json:"Score,omitempty"` //得分,1头墩 2中墩 3尾墩 4特殊牌型分数 5打枪 6全垒打 CardsO *Poker `protobuf:"bytes,10,opt,name=CardsO,proto3" json:"CardsO,omitempty"` //确定的手牌 AllCardsO []*Poker `protobuf:"bytes,11,rep,name=AllCardsO,proto3" json:"AllCardsO,omitempty"` //所有牌型 Params []string `protobuf:"bytes,12,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:ip 等 Longitude int32 `protobuf:"varint,13,opt,name=Longitude,proto3" json:"Longitude,omitempty"` //经度 Latitude int32 `protobuf:"varint,14,opt,name=Latitude,proto3" json:"Latitude,omitempty"` //纬度 City string `protobuf:"bytes,15,opt,name=City,proto3" json:"City,omitempty"` //城市 例:中国-河南省-郑州市 NiceId int32 `protobuf:"varint,16,opt,name=NiceId,proto3" json:"NiceId,omitempty"` //靓号 AgentCode string `protobuf:"bytes,17,opt,name=AgentCode,proto3" json:"AgentCode,omitempty"` //代理商编号 HeadOutLine int32 `protobuf:"varint,18,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 VIP int32 `protobuf:"varint,19,opt,name=VIP,proto3" json:"VIP,omitempty"` IsDP bool `protobuf:"varint,20,opt,name=IsDP,proto3" json:"IsDP,omitempty"` // 是否倒排 WinCoin int64 `protobuf:"varint,21,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` // 本局赢分 IsStand bool `protobuf:"varint,22,opt,name=isStand,proto3" json:"isStand,omitempty"` //玩家站起 TableScore []int64 `protobuf:"varint,23,rep,packed,name=TableScore,proto3" json:"TableScore,omitempty"` // 客户端展示用;0头墩,1中墩,2尾墩,3头墩额外加分,4中墩额外加分,5尾墩额外加分 Hit []*HitScore `protobuf:"bytes,24,rep,name=Hit,proto3" json:"Hit,omitempty"` //打枪 IsConfirm bool `protobuf:"varint,25,opt,name=IsConfirm,proto3" json:"IsConfirm,omitempty"` // 是否确认牌型 IsLeave bool `protobuf:"varint,26,opt,name=IsLeave,proto3" json:"IsLeave,omitempty"` // 已经离场 RoleId int32 `protobuf:"varint,27,opt,name=RoleId,proto3" json:"RoleId,omitempty"` //使用中的角色id } func (x *ThirteenPlayerData) Reset() { *x = ThirteenPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThirteenPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThirteenPlayerData) ProtoMessage() {} func (x *ThirteenPlayerData) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 ThirteenPlayerData.ProtoReflect.Descriptor instead. func (*ThirteenPlayerData) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{5} } func (x *ThirteenPlayerData) GetName() string { if x != nil { return x.Name } return "" } func (x *ThirteenPlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *ThirteenPlayerData) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *ThirteenPlayerData) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *ThirteenPlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *ThirteenPlayerData) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *ThirteenPlayerData) GetFlag() int32 { if x != nil { return x.Flag } return 0 } func (x *ThirteenPlayerData) GetCards() []int32 { if x != nil { return x.Cards } return nil } func (x *ThirteenPlayerData) GetScore() []int64 { if x != nil { return x.Score } return nil } func (x *ThirteenPlayerData) GetCardsO() *Poker { if x != nil { return x.CardsO } return nil } func (x *ThirteenPlayerData) GetAllCardsO() []*Poker { if x != nil { return x.AllCardsO } return nil } func (x *ThirteenPlayerData) GetParams() []string { if x != nil { return x.Params } return nil } func (x *ThirteenPlayerData) GetLongitude() int32 { if x != nil { return x.Longitude } return 0 } func (x *ThirteenPlayerData) GetLatitude() int32 { if x != nil { return x.Latitude } return 0 } func (x *ThirteenPlayerData) GetCity() string { if x != nil { return x.City } return "" } func (x *ThirteenPlayerData) GetNiceId() int32 { if x != nil { return x.NiceId } return 0 } func (x *ThirteenPlayerData) GetAgentCode() string { if x != nil { return x.AgentCode } return "" } func (x *ThirteenPlayerData) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } func (x *ThirteenPlayerData) GetVIP() int32 { if x != nil { return x.VIP } return 0 } func (x *ThirteenPlayerData) GetIsDP() bool { if x != nil { return x.IsDP } return false } func (x *ThirteenPlayerData) GetWinCoin() int64 { if x != nil { return x.WinCoin } return 0 } func (x *ThirteenPlayerData) GetIsStand() bool { if x != nil { return x.IsStand } return false } func (x *ThirteenPlayerData) GetTableScore() []int64 { if x != nil { return x.TableScore } return nil } func (x *ThirteenPlayerData) GetHit() []*HitScore { if x != nil { return x.Hit } return nil } func (x *ThirteenPlayerData) GetIsConfirm() bool { if x != nil { return x.IsConfirm } return false } func (x *ThirteenPlayerData) GetIsLeave() bool { if x != nil { return x.IsLeave } return false } func (x *ThirteenPlayerData) GetRoleId() int32 { if x != nil { return x.RoleId } return 0 } //玩家进入 //PACKET_SCThirteenPlayerEnter type SCThirteenPlayerEnter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data *ThirteenPlayerData `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *SCThirteenPlayerEnter) Reset() { *x = SCThirteenPlayerEnter{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenPlayerEnter) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenPlayerEnter) ProtoMessage() {} func (x *SCThirteenPlayerEnter) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenPlayerEnter.ProtoReflect.Descriptor instead. func (*SCThirteenPlayerEnter) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{6} } func (x *SCThirteenPlayerEnter) GetData() *ThirteenPlayerData { if x != nil { return x.Data } return nil } //玩家离开 //PACKET_SCThirteenPlayerLeave type SCThirteenPlayerLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //玩家位置 } func (x *SCThirteenPlayerLeave) Reset() { *x = SCThirteenPlayerLeave{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenPlayerLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenPlayerLeave) ProtoMessage() {} func (x *SCThirteenPlayerLeave) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenPlayerLeave.ProtoReflect.Descriptor instead. func (*SCThirteenPlayerLeave) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{7} } func (x *SCThirteenPlayerLeave) GetPos() int32 { if x != nil { return x.Pos } return 0 } //房间信息 //PACKET_SCThirteenRoomInfo type SCThirteenRoomInfo 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"` //规则参数 NumOfGames int32 `protobuf:"varint,6,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前第几局 BankerPos int32 `protobuf:"varint,7,opt,name=BankerPos,proto3" json:"BankerPos,omitempty"` //庄家位置 State int32 `protobuf:"varint,8,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 TimeOut int32 `protobuf:"varint,9,opt,name=TimeOut,proto3" json:"TimeOut,omitempty"` //等待剩余时间 单位:秒 Players []*ThirteenPlayerData `protobuf:"bytes,10,rep,name=Players,proto3" json:"Players,omitempty"` //房间内的玩家信息 DisbandGen int32 `protobuf:"varint,11,opt,name=DisbandGen,proto3" json:"DisbandGen,omitempty"` //解散申请 ShowCardPos int32 `protobuf:"varint,12,opt,name=ShowCardPos,proto3" json:"ShowCardPos,omitempty"` //出牌的位置 AgentId int32 `protobuf:"varint,13,opt,name=AgentId,proto3" json:"AgentId,omitempty"` //代开房者 ParamsEx int32 `protobuf:"varint,14,opt,name=ParamsEx,proto3" json:"ParamsEx,omitempty"` //比赛参数 SceneType int32 `protobuf:"varint,15,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //房间模式 0:房卡模式 1:钻石模式 BaseScore int32 `protobuf:"varint,16,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //基础分 TotalOfGames int32 `protobuf:"varint,17,opt,name=TotalOfGames,proto3" json:"TotalOfGames,omitempty"` //总局数 LeaveDeduct int32 `protobuf:"varint,18,opt,name=LeaveDeduct,proto3" json:"LeaveDeduct,omitempty"` // 离场扣分倍数;玩家在发牌,选牌状态离场扣除指定倍数的底分 LeaveCombat int32 `protobuf:"varint,19,opt,name=LeaveCombat,proto3" json:"LeaveCombat,omitempty"` // 补偿倍数;玩家在发牌,选牌状态离场其它玩家补偿底分倍数 } func (x *SCThirteenRoomInfo) Reset() { *x = SCThirteenRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenRoomInfo) ProtoMessage() {} func (x *SCThirteenRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenRoomInfo.ProtoReflect.Descriptor instead. func (*SCThirteenRoomInfo) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{8} } func (x *SCThirteenRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCThirteenRoomInfo) GetCreator() int32 { if x != nil { return x.Creator } return 0 } func (x *SCThirteenRoomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCThirteenRoomInfo) GetRoomMode() int32 { if x != nil { return x.RoomMode } return 0 } func (x *SCThirteenRoomInfo) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCThirteenRoomInfo) GetNumOfGames() int32 { if x != nil { return x.NumOfGames } return 0 } func (x *SCThirteenRoomInfo) GetBankerPos() int32 { if x != nil { return x.BankerPos } return 0 } func (x *SCThirteenRoomInfo) GetState() int32 { if x != nil { return x.State } return 0 } func (x *SCThirteenRoomInfo) GetTimeOut() int32 { if x != nil { return x.TimeOut } return 0 } func (x *SCThirteenRoomInfo) GetPlayers() []*ThirteenPlayerData { if x != nil { return x.Players } return nil } func (x *SCThirteenRoomInfo) GetDisbandGen() int32 { if x != nil { return x.DisbandGen } return 0 } func (x *SCThirteenRoomInfo) GetShowCardPos() int32 { if x != nil { return x.ShowCardPos } return 0 } func (x *SCThirteenRoomInfo) GetAgentId() int32 { if x != nil { return x.AgentId } return 0 } func (x *SCThirteenRoomInfo) GetParamsEx() int32 { if x != nil { return x.ParamsEx } return 0 } func (x *SCThirteenRoomInfo) GetSceneType() int32 { if x != nil { return x.SceneType } return 0 } func (x *SCThirteenRoomInfo) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *SCThirteenRoomInfo) GetTotalOfGames() int32 { if x != nil { return x.TotalOfGames } return 0 } func (x *SCThirteenRoomInfo) GetLeaveDeduct() int32 { if x != nil { return x.LeaveDeduct } return 0 } func (x *SCThirteenRoomInfo) GetLeaveCombat() int32 { if x != nil { return x.LeaveCombat } return 0 } //房间状态更新 //PACKET_SCThirteenRoomState type SCThirteenRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态, 0.准备状态;1. 开始倒计时; 2. 发牌; 3.理牌;4.看牌;5.打枪; 6.结算 // Params 游戏子状态的参数列表: Params []int32 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //状态参数 } func (x *SCThirteenRoomState) Reset() { *x = SCThirteenRoomState{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenRoomState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenRoomState) ProtoMessage() {} func (x *SCThirteenRoomState) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenRoomState.ProtoReflect.Descriptor instead. func (*SCThirteenRoomState) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{9} } func (x *SCThirteenRoomState) GetState() int32 { if x != nil { return x.State } return 0 } func (x *SCThirteenRoomState) GetParams() []int32 { if x != nil { return x.Params } return nil } //PACKET_SCThirteenShowCards type SCThirteenShowCards struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //0:亮牌 1:打枪 AllCards []*Poker `protobuf:"bytes,2,rep,name=AllCards,proto3" json:"AllCards,omitempty"` } func (x *SCThirteenShowCards) Reset() { *x = SCThirteenShowCards{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenShowCards) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenShowCards) ProtoMessage() {} func (x *SCThirteenShowCards) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenShowCards.ProtoReflect.Descriptor instead. func (*SCThirteenShowCards) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{10} } func (x *SCThirteenShowCards) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *SCThirteenShowCards) GetAllCards() []*Poker { if x != nil { return x.AllCards } return nil } type Billed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` // 结算后余额 WinCoin int64 `protobuf:"varint,3,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` // 输赢分 CombatCoin int64 `protobuf:"varint,4,opt,name=CombatCoin,proto3" json:"CombatCoin,omitempty"` // 补偿分 } func (x *Billed) Reset() { *x = Billed{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Billed) String() string { return protoimpl.X.MessageStringOf(x) } func (*Billed) ProtoMessage() {} func (x *Billed) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 Billed.ProtoReflect.Descriptor instead. func (*Billed) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{11} } func (x *Billed) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *Billed) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *Billed) GetWinCoin() int64 { if x != nil { return x.WinCoin } return 0 } func (x *Billed) GetCombatCoin() int64 { if x != nil { return x.CombatCoin } return 0 } //PACKET_SCThirteenBilled type SCThirteenBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AllBilled []*Billed `protobuf:"bytes,1,rep,name=AllBilled,proto3" json:"AllBilled,omitempty"` // 输赢分 } func (x *SCThirteenBilled) Reset() { *x = SCThirteenBilled{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenBilled) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenBilled) ProtoMessage() {} func (x *SCThirteenBilled) ProtoReflect() protoreflect.Message { mi := &file_thirteen_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 SCThirteenBilled.ProtoReflect.Descriptor instead. func (*SCThirteenBilled) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{12} } func (x *SCThirteenBilled) GetAllBilled() []*Billed { if x != nil { return x.AllBilled } return nil } type SCThirteenTest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data string `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *SCThirteenTest) Reset() { *x = SCThirteenTest{} if protoimpl.UnsafeEnabled { mi := &file_thirteen_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThirteenTest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThirteenTest) ProtoMessage() {} func (x *SCThirteenTest) ProtoReflect() protoreflect.Message { mi := &file_thirteen_proto_msgTypes[13] 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 SCThirteenTest.ProtoReflect.Descriptor instead. func (*SCThirteenTest) Descriptor() ([]byte, []int) { return file_thirteen_proto_rawDescGZIP(), []int{13} } func (x *SCThirteenTest) GetData() string { if x != nil { return x.Data } return "" } var File_thirteen_proto protoreflect.FileDescriptor var file_thirteen_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x22, 0x32, 0x0a, 0x08, 0x48, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x4d, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x44, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x44, 0x50, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x48, 0x69, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x48, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x03, 0x48, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x6e, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x09, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x22, 0x46, 0x0a, 0x12, 0x43, 0x53, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0xb5, 0x01, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 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, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xce, 0x05, 0x0a, 0x12, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 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, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x12, 0x2d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x09, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4f, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x12, 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, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x44, 0x50, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x44, 0x50, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x17, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x48, 0x69, 0x74, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x48, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x03, 0x48, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x49, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0xd4, 0x04, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 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, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x22, 0x43, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 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, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5a, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x73, 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, 0x2b, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x08, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x68, 0x0a, 0x06, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x42, 0x0a, 0x10, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x09, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x24, 0x0a, 0x0e, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x2a, 0xee, 0x02, 0x0a, 0x0d, 0x54, 0x57, 0x4d, 0x6d, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x54, 0x45, 0x45, 0x4e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xc2, 0x2b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xc3, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xc4, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xc5, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xc6, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x10, 0xc7, 0x2b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xc8, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x73, 0x10, 0xc9, 0x2b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xca, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x10, 0xcb, 0x2b, 0x2a, 0x2f, 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, 0x42, 0x28, 0x5a, 0x26, 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, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_thirteen_proto_rawDescOnce sync.Once file_thirteen_proto_rawDescData = file_thirteen_proto_rawDesc ) func file_thirteen_proto_rawDescGZIP() []byte { file_thirteen_proto_rawDescOnce.Do(func() { file_thirteen_proto_rawDescData = protoimpl.X.CompressGZIP(file_thirteen_proto_rawDescData) }) return file_thirteen_proto_rawDescData } var file_thirteen_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_thirteen_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_thirteen_proto_goTypes = []interface{}{ (TWMmoPacketID)(0), // 0: thirteen.TWMmoPacketID (OpResultCode)(0), // 1: thirteen.OpResultCode (*HitScore)(nil), // 2: thirteen.HitScore (*Poker)(nil), // 3: thirteen.Poker (*SCThirteenPlayerCards)(nil), // 4: thirteen.SCThirteenPlayerCards (*CSThirteenPlayerOp)(nil), // 5: thirteen.CSThirteenPlayerOp (*SCThirteenPlayerOp)(nil), // 6: thirteen.SCThirteenPlayerOp (*ThirteenPlayerData)(nil), // 7: thirteen.ThirteenPlayerData (*SCThirteenPlayerEnter)(nil), // 8: thirteen.SCThirteenPlayerEnter (*SCThirteenPlayerLeave)(nil), // 9: thirteen.SCThirteenPlayerLeave (*SCThirteenRoomInfo)(nil), // 10: thirteen.SCThirteenRoomInfo (*SCThirteenRoomState)(nil), // 11: thirteen.SCThirteenRoomState (*SCThirteenShowCards)(nil), // 12: thirteen.SCThirteenShowCards (*Billed)(nil), // 13: thirteen.Billed (*SCThirteenBilled)(nil), // 14: thirteen.SCThirteenBilled (*SCThirteenTest)(nil), // 15: thirteen.SCThirteenTest } var file_thirteen_proto_depIdxs = []int32{ 2, // 0: thirteen.Poker.Hit:type_name -> thirteen.HitScore 3, // 1: thirteen.SCThirteenPlayerCards.AllCardsO:type_name -> thirteen.Poker 1, // 2: thirteen.SCThirteenPlayerOp.OpRetCode:type_name -> thirteen.OpResultCode 3, // 3: thirteen.SCThirteenPlayerOp.Cards:type_name -> thirteen.Poker 3, // 4: thirteen.ThirteenPlayerData.CardsO:type_name -> thirteen.Poker 3, // 5: thirteen.ThirteenPlayerData.AllCardsO:type_name -> thirteen.Poker 2, // 6: thirteen.ThirteenPlayerData.Hit:type_name -> thirteen.HitScore 7, // 7: thirteen.SCThirteenPlayerEnter.Data:type_name -> thirteen.ThirteenPlayerData 7, // 8: thirteen.SCThirteenRoomInfo.Players:type_name -> thirteen.ThirteenPlayerData 3, // 9: thirteen.SCThirteenShowCards.AllCards:type_name -> thirteen.Poker 13, // 10: thirteen.SCThirteenBilled.AllBilled:type_name -> thirteen.Billed 11, // [11:11] is the sub-list for method output_type 11, // [11:11] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name 11, // [11:11] is the sub-list for extension extendee 0, // [0:11] is the sub-list for field type_name } func init() { file_thirteen_proto_init() } func file_thirteen_proto_init() { if File_thirteen_proto != nil { return } if !protoimpl.UnsafeEnabled { file_thirteen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HitScore); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Poker); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenPlayerCards); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSThirteenPlayerOp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenPlayerOp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThirteenPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenPlayerEnter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenPlayerLeave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenRoomState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenShowCards); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Billed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenBilled); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_thirteen_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThirteenTest); 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_thirteen_proto_rawDesc, NumEnums: 2, NumMessages: 14, NumExtensions: 0, NumServices: 0, }, GoTypes: file_thirteen_proto_goTypes, DependencyIndexes: file_thirteen_proto_depIdxs, EnumInfos: file_thirteen_proto_enumTypes, MessageInfos: file_thirteen_proto_msgTypes, }.Build() File_thirteen_proto = out.File file_thirteen_proto_rawDesc = nil file_thirteen_proto_goTypes = nil file_thirteen_proto_depIdxs = nil }