// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: caishen.proto package caishen 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_caishen_proto_enumTypes[0].Descriptor() } func (OpResultCode) Type() protoreflect.EnumType { return &file_caishen_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_caishen_proto_rawDescGZIP(), []int{0} } //财神 type CaiShenPacketID int32 const ( CaiShenPacketID_PACKET_CaiShen_ZERO CaiShenPacketID = 0 //弃用消息号 CaiShenPacketID_PACKET_SC_CAISHEN_ROOMINFO CaiShenPacketID = 5220 //房间信息 CaiShenPacketID_PACKET_CS_CAISHEN_PLAYEROP CaiShenPacketID = 5221 //玩家操作(客户->服务) CaiShenPacketID_PACKET_SC_CAISHEN_PLAYEROP CaiShenPacketID = 5222 //玩家操作(服务->客户) CaiShenPacketID_PACKET_SC_CAISHEN_ROOMSTATE CaiShenPacketID = 5223 //房间状态 CaiShenPacketID_PACKET_SC_CAISHEN_GAMEBILLED CaiShenPacketID = 5224 //游戏结算 CaiShenPacketID_PACKET_SC_CAISHEN_PLAYERHISTORY CaiShenPacketID = 5225 //游戏记录 CaiShenPacketID_PACKET_SC_CAISHEN_BURSTHISTORY CaiShenPacketID = 5226 //爆奖记录 CaiShenPacketID_PACKET_SC_CAISHEN_GAMEJACKPOT CaiShenPacketID = 5227 //奖池 ) // Enum value maps for CaiShenPacketID. var ( CaiShenPacketID_name = map[int32]string{ 0: "PACKET_CaiShen_ZERO", 5220: "PACKET_SC_CAISHEN_ROOMINFO", 5221: "PACKET_CS_CAISHEN_PLAYEROP", 5222: "PACKET_SC_CAISHEN_PLAYEROP", 5223: "PACKET_SC_CAISHEN_ROOMSTATE", 5224: "PACKET_SC_CAISHEN_GAMEBILLED", 5225: "PACKET_SC_CAISHEN_PLAYERHISTORY", 5226: "PACKET_SC_CAISHEN_BURSTHISTORY", 5227: "PACKET_SC_CAISHEN_GAMEJACKPOT", } CaiShenPacketID_value = map[string]int32{ "PACKET_CaiShen_ZERO": 0, "PACKET_SC_CAISHEN_ROOMINFO": 5220, "PACKET_CS_CAISHEN_PLAYEROP": 5221, "PACKET_SC_CAISHEN_PLAYEROP": 5222, "PACKET_SC_CAISHEN_ROOMSTATE": 5223, "PACKET_SC_CAISHEN_GAMEBILLED": 5224, "PACKET_SC_CAISHEN_PLAYERHISTORY": 5225, "PACKET_SC_CAISHEN_BURSTHISTORY": 5226, "PACKET_SC_CAISHEN_GAMEJACKPOT": 5227, } ) func (x CaiShenPacketID) Enum() *CaiShenPacketID { p := new(CaiShenPacketID) *p = x return p } func (x CaiShenPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CaiShenPacketID) Descriptor() protoreflect.EnumDescriptor { return file_caishen_proto_enumTypes[1].Descriptor() } func (CaiShenPacketID) Type() protoreflect.EnumType { return &file_caishen_proto_enumTypes[1] } func (x CaiShenPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CaiShenPacketID.Descriptor instead. func (CaiShenPacketID) EnumDescriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{1} } type CaiShenPlayerData 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 *CaiShenPlayerData) Reset() { *x = CaiShenPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CaiShenPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*CaiShenPlayerData) ProtoMessage() {} func (x *CaiShenPlayerData) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CaiShenPlayerData.ProtoReflect.Descriptor instead. func (*CaiShenPlayerData) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{0} } func (x *CaiShenPlayerData) GetName() string { if x != nil { return x.Name } return "" } func (x *CaiShenPlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *CaiShenPlayerData) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *CaiShenPlayerData) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *CaiShenPlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *CaiShenPlayerData) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } func (x *CaiShenPlayerData) GetVIP() int32 { if x != nil { return x.VIP } return 0 } func (x *CaiShenPlayerData) GetParams() []string { if x != nil { return x.Params } return nil } //小游戏信息 type CaiShenBonusGameInfo 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 *CaiShenBonusGameInfo) Reset() { *x = CaiShenBonusGameInfo{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CaiShenBonusGameInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CaiShenBonusGameInfo) ProtoMessage() {} func (x *CaiShenBonusGameInfo) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CaiShenBonusGameInfo.ProtoReflect.Descriptor instead. func (*CaiShenBonusGameInfo) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{1} } func (x *CaiShenBonusGameInfo) GetBonusData() []int64 { if x != nil { return x.BonusData } return nil } func (x *CaiShenBonusGameInfo) GetTotalPrizeValue() int64 { if x != nil { return x.TotalPrizeValue } return 0 } func (x *CaiShenBonusGameInfo) GetMutiplier() int32 { if x != nil { return x.Mutiplier } return 0 } func (x *CaiShenBonusGameInfo) GetDataMultiplier() int64 { if x != nil { return x.DataMultiplier } return 0 } //房间信息 type SCCaiShenRoomInfo 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 []*CaiShenPlayerData `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 *CaiShenBonusGameInfo `protobuf:"bytes,15,opt,name=BonusGame,proto3" json:"BonusGame,omitempty"` //小游戏未结束 附加小游戏信息 BonusX []int32 `protobuf:"varint,16,rep,packed,name=BonusX,proto3" json:"BonusX,omitempty"` //小游戏未结束 附加小游戏倍数选项,Bonus图标的数量为3/4/5时,分别为 1,2,3 或 2,3,4 或 3,4,5 GameFreeId int32 `protobuf:"varint,17,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` BilledData *GameBilledData `protobuf:"bytes,18,opt,name=BilledData,proto3" json:"BilledData,omitempty"` //结算信息 } func (x *SCCaiShenRoomInfo) Reset() { *x = SCCaiShenRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenRoomInfo) ProtoMessage() {} func (x *SCCaiShenRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenRoomInfo.ProtoReflect.Descriptor instead. func (*SCCaiShenRoomInfo) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{2} } func (x *SCCaiShenRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCCaiShenRoomInfo) GetCreator() int32 { if x != nil { return x.Creator } return 0 } func (x *SCCaiShenRoomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCCaiShenRoomInfo) GetRoomMode() int32 { if x != nil { return x.RoomMode } return 0 } func (x *SCCaiShenRoomInfo) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCCaiShenRoomInfo) GetState() int32 { if x != nil { return x.State } return 0 } func (x *SCCaiShenRoomInfo) GetBetLines() []int64 { if x != nil { return x.BetLines } return nil } func (x *SCCaiShenRoomInfo) GetChip() int32 { if x != nil { return x.Chip } return 0 } func (x *SCCaiShenRoomInfo) GetPlayers() []*CaiShenPlayerData { if x != nil { return x.Players } return nil } func (x *SCCaiShenRoomInfo) GetFreeTimes() int32 { if x != nil { return x.FreeTimes } return 0 } func (x *SCCaiShenRoomInfo) GetJackpot() int64 { if x != nil { return x.Jackpot } return 0 } func (x *SCCaiShenRoomInfo) GetTotalPriceBonus() int64 { if x != nil { return x.TotalPriceBonus } return 0 } func (x *SCCaiShenRoomInfo) GetSpinID() int64 { if x != nil { return x.SpinID } return 0 } func (x *SCCaiShenRoomInfo) GetParamsEx() []int32 { if x != nil { return x.ParamsEx } return nil } func (x *SCCaiShenRoomInfo) GetBonusGame() *CaiShenBonusGameInfo { if x != nil { return x.BonusGame } return nil } func (x *SCCaiShenRoomInfo) GetBonusX() []int32 { if x != nil { return x.BonusX } return nil } func (x *SCCaiShenRoomInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCCaiShenRoomInfo) GetBilledData() *GameBilledData { if x != nil { return x.BilledData } return nil } //玩家操作 type CSCaiShenOp 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:小游戏 4:小游戏操作记录 Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 } func (x *CSCaiShenOp) Reset() { *x = CSCaiShenOp{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCaiShenOp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCaiShenOp) ProtoMessage() {} func (x *CSCaiShenOp) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CSCaiShenOp.ProtoReflect.Descriptor instead. func (*CSCaiShenOp) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{3} } func (x *CSCaiShenOp) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *CSCaiShenOp) GetParams() []int64 { if x != nil { return x.Params } return nil } //玩家操作返回 type SCCaiShenOp 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=caishen.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } func (x *SCCaiShenOp) Reset() { *x = SCCaiShenOp{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenOp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenOp) ProtoMessage() {} func (x *SCCaiShenOp) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenOp.ProtoReflect.Descriptor instead. func (*SCCaiShenOp) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{4} } func (x *SCCaiShenOp) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SCCaiShenOp) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *SCCaiShenOp) GetParams() []int64 { if x != nil { return x.Params } return nil } func (x *SCCaiShenOp) GetOpRetCode() OpResultCode { if x != nil { return x.OpRetCode } return OpResultCode_OPRC_Sucess } //每条线的结算数据 type CaiShenLinesInfo 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 *CaiShenLinesInfo) Reset() { *x = CaiShenLinesInfo{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CaiShenLinesInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CaiShenLinesInfo) ProtoMessage() {} func (x *CaiShenLinesInfo) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CaiShenLinesInfo.ProtoReflect.Descriptor instead. func (*CaiShenLinesInfo) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{5} } func (x *CaiShenLinesInfo) GetLineId() int32 { if x != nil { return x.LineId } return 0 } func (x *CaiShenLinesInfo) GetPrizeId() int32 { if x != nil { return x.PrizeId } return 0 } func (x *CaiShenLinesInfo) GetPosition() []int32 { if x != nil { return x.Position } return nil } func (x *CaiShenLinesInfo) 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 []*CaiShenLinesInfo `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 *CaiShenBonusGameInfo `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_caishen_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_caishen_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_caishen_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() []*CaiShenLinesInfo { 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() *CaiShenBonusGameInfo { if x != nil { return x.BonusGame } return nil } func (x *GameBilledData) GetResponseStatus() int64 { if x != nil { return x.ResponseStatus } return 0 } //发送给客户端的数据 结算 type SCCaiShenGameBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BilledData *GameBilledData `protobuf:"bytes,1,opt,name=BilledData,proto3" json:"BilledData,omitempty"` //结算信息 } func (x *SCCaiShenGameBilled) Reset() { *x = SCCaiShenGameBilled{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenGameBilled) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenGameBilled) ProtoMessage() {} func (x *SCCaiShenGameBilled) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenGameBilled.ProtoReflect.Descriptor instead. func (*SCCaiShenGameBilled) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{7} } func (x *SCCaiShenGameBilled) GetBilledData() *GameBilledData { if x != nil { return x.BilledData } return nil } // 玩家记录信息 type CaiShenPlayerHistoryInfo 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 *CaiShenPlayerHistoryInfo) Reset() { *x = CaiShenPlayerHistoryInfo{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CaiShenPlayerHistoryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CaiShenPlayerHistoryInfo) ProtoMessage() {} func (x *CaiShenPlayerHistoryInfo) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CaiShenPlayerHistoryInfo.ProtoReflect.Descriptor instead. func (*CaiShenPlayerHistoryInfo) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{8} } func (x *CaiShenPlayerHistoryInfo) GetSpinID() string { if x != nil { return x.SpinID } return "" } func (x *CaiShenPlayerHistoryInfo) GetCreatedTime() int64 { if x != nil { return x.CreatedTime } return 0 } func (x *CaiShenPlayerHistoryInfo) GetTotalBetValue() int64 { if x != nil { return x.TotalBetValue } return 0 } func (x *CaiShenPlayerHistoryInfo) GetTotalPriceValue() int64 { if x != nil { return x.TotalPriceValue } return 0 } func (x *CaiShenPlayerHistoryInfo) GetIsFree() bool { if x != nil { return x.IsFree } return false } func (x *CaiShenPlayerHistoryInfo) GetTotalBonusValue() int64 { if x != nil { return x.TotalBonusValue } return 0 } // 玩家记录 type SCCaiShenPlayerHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerHistory []*CaiShenPlayerHistoryInfo `protobuf:"bytes,1,rep,name=PlayerHistory,proto3" json:"PlayerHistory,omitempty"` } func (x *SCCaiShenPlayerHistory) Reset() { *x = SCCaiShenPlayerHistory{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenPlayerHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenPlayerHistory) ProtoMessage() {} func (x *SCCaiShenPlayerHistory) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenPlayerHistory.ProtoReflect.Descriptor instead. func (*SCCaiShenPlayerHistory) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{9} } func (x *SCCaiShenPlayerHistory) GetPlayerHistory() []*CaiShenPlayerHistoryInfo { if x != nil { return x.PlayerHistory } return nil } // 大奖记录信息 type CaiShenBurstHistoryInfo 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 *CaiShenBurstHistoryInfo) Reset() { *x = CaiShenBurstHistoryInfo{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CaiShenBurstHistoryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CaiShenBurstHistoryInfo) ProtoMessage() {} func (x *CaiShenBurstHistoryInfo) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 CaiShenBurstHistoryInfo.ProtoReflect.Descriptor instead. func (*CaiShenBurstHistoryInfo) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{10} } func (x *CaiShenBurstHistoryInfo) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *CaiShenBurstHistoryInfo) GetPriceValue() int64 { if x != nil { return x.PriceValue } return 0 } func (x *CaiShenBurstHistoryInfo) GetTotalBet() int64 { if x != nil { return x.TotalBet } return 0 } func (x *CaiShenBurstHistoryInfo) GetTs() int64 { if x != nil { return x.Ts } return 0 } // 大奖记录 type SCCaiShenBurstHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BurstLog []*CaiShenBurstHistoryInfo `protobuf:"bytes,1,rep,name=BurstLog,proto3" json:"BurstLog,omitempty"` } func (x *SCCaiShenBurstHistory) Reset() { *x = SCCaiShenBurstHistory{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenBurstHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenBurstHistory) ProtoMessage() {} func (x *SCCaiShenBurstHistory) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenBurstHistory.ProtoReflect.Descriptor instead. func (*SCCaiShenBurstHistory) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{11} } func (x *SCCaiShenBurstHistory) GetBurstLog() []*CaiShenBurstHistoryInfo { if x != nil { return x.BurstLog } return nil } //房间状态 type SCCaiShenRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态 } func (x *SCCaiShenRoomState) Reset() { *x = SCCaiShenRoomState{} if protoimpl.UnsafeEnabled { mi := &file_caishen_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCaiShenRoomState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCaiShenRoomState) ProtoMessage() {} func (x *SCCaiShenRoomState) ProtoReflect() protoreflect.Message { mi := &file_caishen_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 SCCaiShenRoomState.ProtoReflect.Descriptor instead. func (*SCCaiShenRoomState) Descriptor() ([]byte, []int) { return file_caishen_proto_rawDescGZIP(), []int{12} } func (x *SCCaiShenRoomState) GetState() int32 { if x != nil { return x.State } return 0 } var File_caishen_proto protoreflect.FileDescriptor var file_caishen_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x69, 0x53, 0x68, 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, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0xd1, 0x04, 0x0a, 0x11, 0x53, 0x43, 0x43, 0x61, 0x69, 0x53, 0x68, 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, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x58, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x58, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x11, 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, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 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, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x2e, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 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, 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, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x61, 0x69, 0x53, 0x68, 0x65, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe4, 0x28, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xe5, 0x28, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4f, 0x50, 0x10, 0xe6, 0x28, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xe7, 0x28, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xe8, 0x28, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe9, 0x28, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x42, 0x55, 0x52, 0x53, 0x54, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xea, 0x28, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x49, 0x53, 0x48, 0x45, 0x4e, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x10, 0xeb, 0x28, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x3b, 0x63, 0x61, 0x69, 0x73, 0x68, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_caishen_proto_rawDescOnce sync.Once file_caishen_proto_rawDescData = file_caishen_proto_rawDesc ) func file_caishen_proto_rawDescGZIP() []byte { file_caishen_proto_rawDescOnce.Do(func() { file_caishen_proto_rawDescData = protoimpl.X.CompressGZIP(file_caishen_proto_rawDescData) }) return file_caishen_proto_rawDescData } var file_caishen_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_caishen_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_caishen_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: caishen.OpResultCode (CaiShenPacketID)(0), // 1: caishen.CaiShenPacketID (*CaiShenPlayerData)(nil), // 2: caishen.CaiShenPlayerData (*CaiShenBonusGameInfo)(nil), // 3: caishen.CaiShenBonusGameInfo (*SCCaiShenRoomInfo)(nil), // 4: caishen.SCCaiShenRoomInfo (*CSCaiShenOp)(nil), // 5: caishen.CSCaiShenOp (*SCCaiShenOp)(nil), // 6: caishen.SCCaiShenOp (*CaiShenLinesInfo)(nil), // 7: caishen.CaiShenLinesInfo (*GameBilledData)(nil), // 8: caishen.GameBilledData (*SCCaiShenGameBilled)(nil), // 9: caishen.SCCaiShenGameBilled (*CaiShenPlayerHistoryInfo)(nil), // 10: caishen.CaiShenPlayerHistoryInfo (*SCCaiShenPlayerHistory)(nil), // 11: caishen.SCCaiShenPlayerHistory (*CaiShenBurstHistoryInfo)(nil), // 12: caishen.CaiShenBurstHistoryInfo (*SCCaiShenBurstHistory)(nil), // 13: caishen.SCCaiShenBurstHistory (*SCCaiShenRoomState)(nil), // 14: caishen.SCCaiShenRoomState } var file_caishen_proto_depIdxs = []int32{ 2, // 0: caishen.SCCaiShenRoomInfo.Players:type_name -> caishen.CaiShenPlayerData 3, // 1: caishen.SCCaiShenRoomInfo.BonusGame:type_name -> caishen.CaiShenBonusGameInfo 8, // 2: caishen.SCCaiShenRoomInfo.BilledData:type_name -> caishen.GameBilledData 0, // 3: caishen.SCCaiShenOp.OpRetCode:type_name -> caishen.OpResultCode 7, // 4: caishen.GameBilledData.PrizeLines:type_name -> caishen.CaiShenLinesInfo 3, // 5: caishen.GameBilledData.BonusGame:type_name -> caishen.CaiShenBonusGameInfo 8, // 6: caishen.SCCaiShenGameBilled.BilledData:type_name -> caishen.GameBilledData 10, // 7: caishen.SCCaiShenPlayerHistory.PlayerHistory:type_name -> caishen.CaiShenPlayerHistoryInfo 12, // 8: caishen.SCCaiShenBurstHistory.BurstLog:type_name -> caishen.CaiShenBurstHistoryInfo 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_caishen_proto_init() } func file_caishen_proto_init() { if File_caishen_proto != nil { return } if !protoimpl.UnsafeEnabled { file_caishen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaiShenPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaiShenBonusGameInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCaiShenOp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenOp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaiShenLinesInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_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_caishen_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenGameBilled); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaiShenPlayerHistoryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenPlayerHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaiShenBurstHistoryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenBurstHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_caishen_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCaiShenRoomState); 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_caishen_proto_rawDesc, NumEnums: 2, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_caishen_proto_goTypes, DependencyIndexes: file_caishen_proto_depIdxs, EnumInfos: file_caishen_proto_enumTypes, MessageInfos: file_caishen_proto_msgTypes, }.Build() File_caishen_proto = out.File file_caishen_proto_rawDesc = nil file_caishen_proto_goTypes = nil file_caishen_proto_depIdxs = nil }