public/protocol/tienlen/tienlen.pb.go

3041 lines
110 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1-devel
// protoc v3.19.4
// source: tienlen.proto
package tienlen
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_Hint OpResultCode = 2 //提示
)
// Enum value maps for OpResultCode.
var (
OpResultCode_name = map[int32]string{
0: "OPRC_Sucess",
1: "OPRC_Error",
2: "OPRC_Hint",
}
OpResultCode_value = map[string]int32{
"OPRC_Sucess": 0,
"OPRC_Error": 1,
"OPRC_Hint": 2,
}
)
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_tienlen_proto_enumTypes[0].Descriptor()
}
func (OpResultCode) Type() protoreflect.EnumType {
return &file_tienlen_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_tienlen_proto_rawDescGZIP(), []int{0}
}
//tienlen
type TienLenPacketID int32
const (
TienLenPacketID_PACKET_TienLenZERO TienLenPacketID = 0 // 弃用消息号
TienLenPacketID_PACKET_SCTienLenRoomInfo TienLenPacketID = 5370 //房间信息
TienLenPacketID_PACKET_SCTienLenRoomState TienLenPacketID = 5371 //房间状态
TienLenPacketID_PACKET_CSTienLenPlayerOp TienLenPacketID = 5372 //玩家操作
TienLenPacketID_PACKET_SCTienLenPlayerOp TienLenPacketID = 5373 //玩家操作
TienLenPacketID_PACKET_SCTienLenPlayerEnter TienLenPacketID = 5374 //玩家进入
TienLenPacketID_PACKET_SCTienLenPlayerLeave TienLenPacketID = 5375 //玩家离开
TienLenPacketID_PACKET_SCTienLenCard TienLenPacketID = 5376 //发牌
TienLenPacketID_PACKET_SCTienLenGameBilled TienLenPacketID = 5377 //结算
TienLenPacketID_PACKET_SCTienLenCurOpPos TienLenPacketID = 5378 //当前操作的玩家位置
TienLenPacketID_PACKET_SCTienLenSmallGameBilled TienLenPacketID = 5379 //小结算
TienLenPacketID_PACKET_SCTienLenUpdateMasterSnid TienLenPacketID = 5380 //房主更换
TienLenPacketID_PACKET_SCTienLenUpdateAudienceNum TienLenPacketID = 5381 //推送观众人数
TienLenPacketID_PACKET_SCTienLenAI TienLenPacketID = 5382 //AI消息
TienLenPacketID_PACKET_SCTienLenFirstOpPos TienLenPacketID = 5383 //首出玩家
TienLenPacketID_PACKET_SCTienLenCardTest TienLenPacketID = 5384 //测试数据
TienLenPacketID_PACKET_SCTienLenThinkLongCnt TienLenPacketID = 5385 // 长考次数
TienLenPacketID_PACKET_SCTienLenFirstGiveItemItem TienLenPacketID = 5386 // 第一次赠送记牌器道具
TienLenPacketID_PACKET_SCTienLenPetSkillRes TienLenPacketID = 5387 //宠物技能
)
// Enum value maps for TienLenPacketID.
var (
TienLenPacketID_name = map[int32]string{
0: "PACKET_TienLenZERO",
5370: "PACKET_SCTienLenRoomInfo",
5371: "PACKET_SCTienLenRoomState",
5372: "PACKET_CSTienLenPlayerOp",
5373: "PACKET_SCTienLenPlayerOp",
5374: "PACKET_SCTienLenPlayerEnter",
5375: "PACKET_SCTienLenPlayerLeave",
5376: "PACKET_SCTienLenCard",
5377: "PACKET_SCTienLenGameBilled",
5378: "PACKET_SCTienLenCurOpPos",
5379: "PACKET_SCTienLenSmallGameBilled",
5380: "PACKET_SCTienLenUpdateMasterSnid",
5381: "PACKET_SCTienLenUpdateAudienceNum",
5382: "PACKET_SCTienLenAI",
5383: "PACKET_SCTienLenFirstOpPos",
5384: "PACKET_SCTienLenCardTest",
5385: "PACKET_SCTienLenThinkLongCnt",
5386: "PACKET_SCTienLenFirstGiveItemItem",
5387: "PACKET_SCTienLenPetSkillRes",
}
TienLenPacketID_value = map[string]int32{
"PACKET_TienLenZERO": 0,
"PACKET_SCTienLenRoomInfo": 5370,
"PACKET_SCTienLenRoomState": 5371,
"PACKET_CSTienLenPlayerOp": 5372,
"PACKET_SCTienLenPlayerOp": 5373,
"PACKET_SCTienLenPlayerEnter": 5374,
"PACKET_SCTienLenPlayerLeave": 5375,
"PACKET_SCTienLenCard": 5376,
"PACKET_SCTienLenGameBilled": 5377,
"PACKET_SCTienLenCurOpPos": 5378,
"PACKET_SCTienLenSmallGameBilled": 5379,
"PACKET_SCTienLenUpdateMasterSnid": 5380,
"PACKET_SCTienLenUpdateAudienceNum": 5381,
"PACKET_SCTienLenAI": 5382,
"PACKET_SCTienLenFirstOpPos": 5383,
"PACKET_SCTienLenCardTest": 5384,
"PACKET_SCTienLenThinkLongCnt": 5385,
"PACKET_SCTienLenFirstGiveItemItem": 5386,
"PACKET_SCTienLenPetSkillRes": 5387,
}
)
func (x TienLenPacketID) Enum() *TienLenPacketID {
p := new(TienLenPacketID)
*p = x
return p
}
func (x TienLenPacketID) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TienLenPacketID) Descriptor() protoreflect.EnumDescriptor {
return file_tienlen_proto_enumTypes[1].Descriptor()
}
func (TienLenPacketID) Type() protoreflect.EnumType {
return &file_tienlen_proto_enumTypes[1]
}
func (x TienLenPacketID) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TienLenPacketID.Descriptor instead.
func (TienLenPacketID) EnumDescriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{1}
}
//玩家信息
type TienLenPlayerData 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"` //性别
Params []string `protobuf:"bytes,5,rep,name=Params,proto3" json:"Params,omitempty"` //其他数据 如:昵称 头像 性别 ip 等
Coin int64 `protobuf:"varint,6,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币
Pos int32 `protobuf:"varint,7,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置
Flag int32 `protobuf:"varint,8,opt,name=Flag,proto3" json:"Flag,omitempty"` //二进制标记 详见:数据字典
Longitude int32 `protobuf:"varint,9,opt,name=Longitude,proto3" json:"Longitude,omitempty"` //经度
Latitude int32 `protobuf:"varint,10,opt,name=Latitude,proto3" json:"Latitude,omitempty"` //纬度
City string `protobuf:"bytes,11,opt,name=City,proto3" json:"City,omitempty"` //城市 例:伦敦
LastOp int32 `protobuf:"varint,12,opt,name=LastOp,proto3" json:"LastOp,omitempty"` //如上:玩家操作
VIP int32 `protobuf:"varint,13,opt,name=VIP,proto3" json:"VIP,omitempty"` //玩家VIP等级
HeadOutLine int32 `protobuf:"varint,14,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框
NiceId int32 `protobuf:"varint,15,opt,name=NiceId,proto3" json:"NiceId,omitempty"` //靓号[机器人用]
Cards []int32 `protobuf:"varint,16,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌
CurRoundTotalBet int64 `protobuf:"varint,17,opt,name=CurRoundTotalBet,proto3" json:"CurRoundTotalBet,omitempty"` //本轮押注已押的金币
GameCoin int64 `protobuf:"varint,18,opt,name=GameCoin,proto3" json:"GameCoin,omitempty"` //游戏内带入的金币
RoleId int32 `protobuf:"varint,19,opt,name=RoleId,proto3" json:"RoleId,omitempty"` //使用中的角色id
Items map[int32]int32 `protobuf:"bytes,20,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
MatchRankId int32 `protobuf:"varint,21,opt,name=MatchRankId,proto3" json:"MatchRankId,omitempty"`
Lv int32 `protobuf:"varint,22,opt,name=Lv,proto3" json:"Lv,omitempty"`
CopySnid int32 `protobuf:"varint,23,opt,name=CopySnid,proto3" json:"CopySnid,omitempty"` //比赛场机器人假snid
CopyRoleId int32 `protobuf:"varint,24,opt,name=CopyRoleId,proto3" json:"CopyRoleId,omitempty"` //比赛场机器人假角色
RankScore int64 `protobuf:"varint,25,opt,name=RankScore,proto3" json:"RankScore,omitempty"` // 排位积分
ThinkLongCnt int32 `protobuf:"varint,26,opt,name=ThinkLongCnt,proto3" json:"ThinkLongCnt,omitempty"` // 长考次数
Level int64 `protobuf:"varint,27,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级
Exp int64 `protobuf:"varint,28,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家经验
PigBankCoin int64 `protobuf:"varint,29,opt,name=PigBankCoin,proto3" json:"PigBankCoin,omitempty"` //存钱罐金币
SkillInfo []*PetSkillInfo `protobuf:"bytes,30,rep,name=SkillInfo,proto3" json:"SkillInfo,omitempty"` //宠物技能信息
SkinId int32 `protobuf:"varint,31,opt,name=SkinId,proto3" json:"SkinId,omitempty"` //皮肤id
}
func (x *TienLenPlayerData) Reset() {
*x = TienLenPlayerData{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TienLenPlayerData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TienLenPlayerData) ProtoMessage() {}
func (x *TienLenPlayerData) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 TienLenPlayerData.ProtoReflect.Descriptor instead.
func (*TienLenPlayerData) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{0}
}
func (x *TienLenPlayerData) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TienLenPlayerData) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *TienLenPlayerData) GetHead() int32 {
if x != nil {
return x.Head
}
return 0
}
func (x *TienLenPlayerData) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *TienLenPlayerData) GetParams() []string {
if x != nil {
return x.Params
}
return nil
}
func (x *TienLenPlayerData) GetCoin() int64 {
if x != nil {
return x.Coin
}
return 0
}
func (x *TienLenPlayerData) GetPos() int32 {
if x != nil {
return x.Pos
}
return 0
}
func (x *TienLenPlayerData) GetFlag() int32 {
if x != nil {
return x.Flag
}
return 0
}
func (x *TienLenPlayerData) GetLongitude() int32 {
if x != nil {
return x.Longitude
}
return 0
}
func (x *TienLenPlayerData) GetLatitude() int32 {
if x != nil {
return x.Latitude
}
return 0
}
func (x *TienLenPlayerData) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *TienLenPlayerData) GetLastOp() int32 {
if x != nil {
return x.LastOp
}
return 0
}
func (x *TienLenPlayerData) GetVIP() int32 {
if x != nil {
return x.VIP
}
return 0
}
func (x *TienLenPlayerData) GetHeadOutLine() int32 {
if x != nil {
return x.HeadOutLine
}
return 0
}
func (x *TienLenPlayerData) GetNiceId() int32 {
if x != nil {
return x.NiceId
}
return 0
}
func (x *TienLenPlayerData) GetCards() []int32 {
if x != nil {
return x.Cards
}
return nil
}
func (x *TienLenPlayerData) GetCurRoundTotalBet() int64 {
if x != nil {
return x.CurRoundTotalBet
}
return 0
}
func (x *TienLenPlayerData) GetGameCoin() int64 {
if x != nil {
return x.GameCoin
}
return 0
}
func (x *TienLenPlayerData) GetRoleId() int32 {
if x != nil {
return x.RoleId
}
return 0
}
func (x *TienLenPlayerData) GetItems() map[int32]int32 {
if x != nil {
return x.Items
}
return nil
}
func (x *TienLenPlayerData) GetMatchRankId() int32 {
if x != nil {
return x.MatchRankId
}
return 0
}
func (x *TienLenPlayerData) GetLv() int32 {
if x != nil {
return x.Lv
}
return 0
}
func (x *TienLenPlayerData) GetCopySnid() int32 {
if x != nil {
return x.CopySnid
}
return 0
}
func (x *TienLenPlayerData) GetCopyRoleId() int32 {
if x != nil {
return x.CopyRoleId
}
return 0
}
func (x *TienLenPlayerData) GetRankScore() int64 {
if x != nil {
return x.RankScore
}
return 0
}
func (x *TienLenPlayerData) GetThinkLongCnt() int32 {
if x != nil {
return x.ThinkLongCnt
}
return 0
}
func (x *TienLenPlayerData) GetLevel() int64 {
if x != nil {
return x.Level
}
return 0
}
func (x *TienLenPlayerData) GetExp() int64 {
if x != nil {
return x.Exp
}
return 0
}
func (x *TienLenPlayerData) GetPigBankCoin() int64 {
if x != nil {
return x.PigBankCoin
}
return 0
}
func (x *TienLenPlayerData) GetSkillInfo() []*PetSkillInfo {
if x != nil {
return x.SkillInfo
}
return nil
}
func (x *TienLenPlayerData) GetSkinId() int32 {
if x != nil {
return x.SkinId
}
return 0
}
//宠物技能
type PetSkillInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PetId int32 `protobuf:"varint,1,opt,name=PetId,proto3" json:"PetId,omitempty"`
SkillData []*SkillInfo `protobuf:"bytes,2,rep,name=SkillData,proto3" json:"SkillData,omitempty"`
}
func (x *PetSkillInfo) Reset() {
*x = PetSkillInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PetSkillInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PetSkillInfo) ProtoMessage() {}
func (x *PetSkillInfo) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 PetSkillInfo.ProtoReflect.Descriptor instead.
func (*PetSkillInfo) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{1}
}
func (x *PetSkillInfo) GetPetId() int32 {
if x != nil {
return x.PetId
}
return 0
}
func (x *PetSkillInfo) GetSkillData() []*SkillInfo {
if x != nil {
return x.SkillData
}
return nil
}
type SkillInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SkillId int32 `protobuf:"varint,1,opt,name=SkillId,proto3" json:"SkillId,omitempty"`
SkillLevel int32 `protobuf:"varint,2,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"`
}
func (x *SkillInfo) Reset() {
*x = SkillInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SkillInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SkillInfo) ProtoMessage() {}
func (x *SkillInfo) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SkillInfo.ProtoReflect.Descriptor instead.
func (*SkillInfo) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{2}
}
func (x *SkillInfo) GetSkillId() int32 {
if x != nil {
return x.SkillId
}
return 0
}
func (x *SkillInfo) GetSkillLevel() int32 {
if x != nil {
return x.SkillLevel
}
return 0
}
type LastDelCard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"`
}
func (x *LastDelCard) Reset() {
*x = LastDelCard{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LastDelCard) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LastDelCard) ProtoMessage() {}
func (x *LastDelCard) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 LastDelCard.ProtoReflect.Descriptor instead.
func (*LastDelCard) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{3}
}
func (x *LastDelCard) GetCards() []int32 {
if x != nil {
return x.Cards
}
return nil
}
//房间信息
type SCTienLenRoomInfo 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"` //规则参数
BankerPos int32 `protobuf:"varint,6,opt,name=BankerPos,proto3" json:"BankerPos,omitempty"` //庄家位置
State int32 `protobuf:"varint,7,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态,如上
TimeOut int32 `protobuf:"varint,8,opt,name=TimeOut,proto3" json:"TimeOut,omitempty"` //等待剩余时间 单位:秒
Players []*TienLenPlayerData `protobuf:"bytes,9,rep,name=Players,proto3" json:"Players,omitempty"` //房间内的玩家信息
AudienceNum int32 `protobuf:"varint,11,opt,name=AudienceNum,proto3" json:"AudienceNum,omitempty"` //当前观战人数
CurOpIdx int32 `protobuf:"varint,12,opt,name=CurOpIdx,proto3" json:"CurOpIdx,omitempty"` //当前等待操作的玩家
LastDelCards []*LastDelCard `protobuf:"bytes,13,rep,name=LastDelCards,proto3" json:"LastDelCards,omitempty"` //上两手出的牌
NumOfGames int32 `protobuf:"varint,14,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前局数
TotalOfGames int32 `protobuf:"varint,15,opt,name=TotalOfGames,proto3" json:"TotalOfGames,omitempty"` //总局数
MasterSnid int32 `protobuf:"varint,16,opt,name=MasterSnid,proto3" json:"MasterSnid,omitempty"` //房主
BaseScore int32 `protobuf:"varint,17,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //游戏底分
MaxPlayerNum int32 `protobuf:"varint,18,opt,name=MaxPlayerNum,proto3" json:"MaxPlayerNum,omitempty"` //最大游戏人数
WinSnids []int32 `protobuf:"varint,19,rep,packed,name=WinSnids,proto3" json:"WinSnids,omitempty"` //已出完牌的玩家
// 比赛场相关
IsMatch int32 `protobuf:"varint,20,opt,name=IsMatch,proto3" json:"IsMatch,omitempty"` //0普通场 1锦标赛 2冠军赛
Round int32 `protobuf:"varint,22,opt,name=Round,proto3" json:"Round,omitempty"` //比赛当前轮数
CurPlayerNum int32 `protobuf:"varint,24,opt,name=CurPlayerNum,proto3" json:"CurPlayerNum,omitempty"` //当前游戏人数
NextNeed int32 `protobuf:"varint,25,opt,name=NextNeed,proto3" json:"NextNeed,omitempty"` //前多少名可以晋级下一轮
MatchFinals int32 `protobuf:"varint,26,opt,name=MatchFinals,proto3" json:"MatchFinals,omitempty"` //0晋级赛 1半决赛 2是总决赛
// 比赛场相关
RankType int32 `protobuf:"varint,27,opt,name=RankType,proto3" json:"RankType,omitempty"` // 排位类型
SceneAdd int32 `protobuf:"varint,28,opt,name=SceneAdd,proto3" json:"SceneAdd,omitempty"` // 场次加成(百分比)
RecordId string `protobuf:"bytes,29,opt,name=RecordId,proto3" json:"RecordId,omitempty"` // 牌局ID
OutCardRecord []int32 `protobuf:"varint,30,rep,packed,name=OutCardRecord,proto3" json:"OutCardRecord,omitempty"` //已打出去的牌
IsOutRecord bool `protobuf:"varint,31,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` //是否能用记牌器
ItemRecExpireTime int64 `protobuf:"varint,32,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` //记牌器到期时间
}
func (x *SCTienLenRoomInfo) Reset() {
*x = SCTienLenRoomInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenRoomInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenRoomInfo) ProtoMessage() {}
func (x *SCTienLenRoomInfo) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenRoomInfo.ProtoReflect.Descriptor instead.
func (*SCTienLenRoomInfo) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{4}
}
func (x *SCTienLenRoomInfo) GetRoomId() int32 {
if x != nil {
return x.RoomId
}
return 0
}
func (x *SCTienLenRoomInfo) GetCreator() int32 {
if x != nil {
return x.Creator
}
return 0
}
func (x *SCTienLenRoomInfo) GetGameId() int32 {
if x != nil {
return x.GameId
}
return 0
}
func (x *SCTienLenRoomInfo) GetRoomMode() int32 {
if x != nil {
return x.RoomMode
}
return 0
}
func (x *SCTienLenRoomInfo) GetParams() []int32 {
if x != nil {
return x.Params
}
return nil
}
func (x *SCTienLenRoomInfo) GetBankerPos() int32 {
if x != nil {
return x.BankerPos
}
return 0
}
func (x *SCTienLenRoomInfo) GetState() int32 {
if x != nil {
return x.State
}
return 0
}
func (x *SCTienLenRoomInfo) GetTimeOut() int32 {
if x != nil {
return x.TimeOut
}
return 0
}
func (x *SCTienLenRoomInfo) GetPlayers() []*TienLenPlayerData {
if x != nil {
return x.Players
}
return nil
}
func (x *SCTienLenRoomInfo) GetAudienceNum() int32 {
if x != nil {
return x.AudienceNum
}
return 0
}
func (x *SCTienLenRoomInfo) GetCurOpIdx() int32 {
if x != nil {
return x.CurOpIdx
}
return 0
}
func (x *SCTienLenRoomInfo) GetLastDelCards() []*LastDelCard {
if x != nil {
return x.LastDelCards
}
return nil
}
func (x *SCTienLenRoomInfo) GetNumOfGames() int32 {
if x != nil {
return x.NumOfGames
}
return 0
}
func (x *SCTienLenRoomInfo) GetTotalOfGames() int32 {
if x != nil {
return x.TotalOfGames
}
return 0
}
func (x *SCTienLenRoomInfo) GetMasterSnid() int32 {
if x != nil {
return x.MasterSnid
}
return 0
}
func (x *SCTienLenRoomInfo) GetBaseScore() int32 {
if x != nil {
return x.BaseScore
}
return 0
}
func (x *SCTienLenRoomInfo) GetMaxPlayerNum() int32 {
if x != nil {
return x.MaxPlayerNum
}
return 0
}
func (x *SCTienLenRoomInfo) GetWinSnids() []int32 {
if x != nil {
return x.WinSnids
}
return nil
}
func (x *SCTienLenRoomInfo) GetIsMatch() int32 {
if x != nil {
return x.IsMatch
}
return 0
}
func (x *SCTienLenRoomInfo) GetRound() int32 {
if x != nil {
return x.Round
}
return 0
}
func (x *SCTienLenRoomInfo) GetCurPlayerNum() int32 {
if x != nil {
return x.CurPlayerNum
}
return 0
}
func (x *SCTienLenRoomInfo) GetNextNeed() int32 {
if x != nil {
return x.NextNeed
}
return 0
}
func (x *SCTienLenRoomInfo) GetMatchFinals() int32 {
if x != nil {
return x.MatchFinals
}
return 0
}
func (x *SCTienLenRoomInfo) GetRankType() int32 {
if x != nil {
return x.RankType
}
return 0
}
func (x *SCTienLenRoomInfo) GetSceneAdd() int32 {
if x != nil {
return x.SceneAdd
}
return 0
}
func (x *SCTienLenRoomInfo) GetRecordId() string {
if x != nil {
return x.RecordId
}
return ""
}
func (x *SCTienLenRoomInfo) GetOutCardRecord() []int32 {
if x != nil {
return x.OutCardRecord
}
return nil
}
func (x *SCTienLenRoomInfo) GetIsOutRecord() bool {
if x != nil {
return x.IsOutRecord
}
return false
}
func (x *SCTienLenRoomInfo) GetItemRecExpireTime() int64 {
if x != nil {
return x.ItemRecExpireTime
}
return 0
}
//房间状态更新
type SCTienLenRoomState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
State int32 `protobuf:"varint,1,opt,name=State,proto3" json:"State,omitempty"` //房间当前状态
Params []int64 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //参数
}
func (x *SCTienLenRoomState) Reset() {
*x = SCTienLenRoomState{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenRoomState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenRoomState) ProtoMessage() {}
func (x *SCTienLenRoomState) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenRoomState.ProtoReflect.Descriptor instead.
func (*SCTienLenRoomState) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{5}
}
func (x *SCTienLenRoomState) GetState() int32 {
if x != nil {
return x.State
}
return 0
}
func (x *SCTienLenRoomState) GetParams() []int64 {
if x != nil {
return x.Params
}
return nil
}
//玩家操作
type CSTienLenPlayerOp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //1出牌 2过牌 3开始游戏 4调试发牌
OpParam []int64 `protobuf:"varint,2,rep,packed,name=OpParam,proto3" json:"OpParam,omitempty"`
}
func (x *CSTienLenPlayerOp) Reset() {
*x = CSTienLenPlayerOp{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSTienLenPlayerOp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSTienLenPlayerOp) ProtoMessage() {}
func (x *CSTienLenPlayerOp) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 CSTienLenPlayerOp.ProtoReflect.Descriptor instead.
func (*CSTienLenPlayerOp) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{6}
}
func (x *CSTienLenPlayerOp) GetOpCode() int32 {
if x != nil {
return x.OpCode
}
return 0
}
func (x *CSTienLenPlayerOp) GetOpParam() []int64 {
if x != nil {
return x.OpParam
}
return nil
}
type SCTienLenPlayerOp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpCode int32 `protobuf:"varint,1,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //1出牌 2过牌 3开始游戏
OpParam []int64 `protobuf:"varint,2,rep,packed,name=OpParam,proto3" json:"OpParam,omitempty"` //参数
SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家位置
OpRetCode OpResultCode `protobuf:"varint,4,opt,name=OpRetCode,proto3,enum=tienlen.OpResultCode" json:"OpRetCode,omitempty"` //返回错误码,详见:enums.proto
}
func (x *SCTienLenPlayerOp) Reset() {
*x = SCTienLenPlayerOp{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPlayerOp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPlayerOp) ProtoMessage() {}
func (x *SCTienLenPlayerOp) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenPlayerOp.ProtoReflect.Descriptor instead.
func (*SCTienLenPlayerOp) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{7}
}
func (x *SCTienLenPlayerOp) GetOpCode() int32 {
if x != nil {
return x.OpCode
}
return 0
}
func (x *SCTienLenPlayerOp) GetOpParam() []int64 {
if x != nil {
return x.OpParam
}
return nil
}
func (x *SCTienLenPlayerOp) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *SCTienLenPlayerOp) GetOpRetCode() OpResultCode {
if x != nil {
return x.OpRetCode
}
return OpResultCode_OPRC_Sucess
}
//玩家进入
type SCTienLenPlayerEnter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *TienLenPlayerData `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` //玩家数据
}
func (x *SCTienLenPlayerEnter) Reset() {
*x = SCTienLenPlayerEnter{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPlayerEnter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPlayerEnter) ProtoMessage() {}
func (x *SCTienLenPlayerEnter) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenPlayerEnter.ProtoReflect.Descriptor instead.
func (*SCTienLenPlayerEnter) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{8}
}
func (x *SCTienLenPlayerEnter) GetData() *TienLenPlayerData {
if x != nil {
return x.Data
}
return nil
}
//玩家离开
type SCTienLenPlayerLeave struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //玩家位置
}
func (x *SCTienLenPlayerLeave) Reset() {
*x = SCTienLenPlayerLeave{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPlayerLeave) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPlayerLeave) ProtoMessage() {}
func (x *SCTienLenPlayerLeave) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenPlayerLeave.ProtoReflect.Descriptor instead.
func (*SCTienLenPlayerLeave) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{9}
}
func (x *SCTienLenPlayerLeave) GetPos() int32 {
if x != nil {
return x.Pos
}
return 0
}
type AddItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ItemType int32 `protobuf:"varint,1,opt,name=ItemType,proto3" json:"ItemType,omitempty"` // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // ID
Addition int32 `protobuf:"varint,3,opt,name=Addition,proto3" json:"Addition,omitempty"` // 加成(百分比)
Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 加成分数
}
func (x *AddItem) Reset() {
*x = AddItem{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddItem) ProtoMessage() {}
func (x *AddItem) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 AddItem.ProtoReflect.Descriptor instead.
func (*AddItem) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{10}
}
func (x *AddItem) GetItemType() int32 {
if x != nil {
return x.ItemType
}
return 0
}
func (x *AddItem) GetItemId() int32 {
if x != nil {
return x.ItemId
}
return 0
}
func (x *AddItem) GetAddition() int32 {
if x != nil {
return x.Addition
}
return 0
}
func (x *AddItem) GetScore() int64 {
if x != nil {
return x.Score
}
return 0
}
//结算结果
type TienLenPlayerGameBilled struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家
Cards []int32 `protobuf:"varint,2,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` // 手牌
WinCoin int64 `protobuf:"varint,3,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` //输赢金额
GameCoin int64 `protobuf:"varint,4,opt,name=GameCoin,proto3" json:"GameCoin,omitempty"` //结算后身上余额
IsWin int32 `protobuf:"varint,5,opt,name=IsWin,proto3" json:"IsWin,omitempty"` //输赢 赢1 输2 平0
WinRankScore int64 `protobuf:"varint,6,opt,name=WinRankScore,proto3" json:"WinRankScore,omitempty"` // 排位积分变化(包含额外加分)
RankScore int64 `protobuf:"varint,7,opt,name=RankScore,proto3" json:"RankScore,omitempty"` // 结算后排位积分
AddScore int64 `protobuf:"varint,8,opt,name=AddScore,proto3" json:"AddScore,omitempty"` // 额外加分
AddItems []*AddItem `protobuf:"bytes,9,rep,name=AddItems,proto3" json:"AddItems,omitempty"` // 加成
TianHu int32 `protobuf:"varint,10,opt,name=TianHu,proto3" json:"TianHu,omitempty"` // 天胡类型 14个2 2:6连对 3:3-A
}
func (x *TienLenPlayerGameBilled) Reset() {
*x = TienLenPlayerGameBilled{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TienLenPlayerGameBilled) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TienLenPlayerGameBilled) ProtoMessage() {}
func (x *TienLenPlayerGameBilled) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 TienLenPlayerGameBilled.ProtoReflect.Descriptor instead.
func (*TienLenPlayerGameBilled) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{11}
}
func (x *TienLenPlayerGameBilled) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *TienLenPlayerGameBilled) GetCards() []int32 {
if x != nil {
return x.Cards
}
return nil
}
func (x *TienLenPlayerGameBilled) GetWinCoin() int64 {
if x != nil {
return x.WinCoin
}
return 0
}
func (x *TienLenPlayerGameBilled) GetGameCoin() int64 {
if x != nil {
return x.GameCoin
}
return 0
}
func (x *TienLenPlayerGameBilled) GetIsWin() int32 {
if x != nil {
return x.IsWin
}
return 0
}
func (x *TienLenPlayerGameBilled) GetWinRankScore() int64 {
if x != nil {
return x.WinRankScore
}
return 0
}
func (x *TienLenPlayerGameBilled) GetRankScore() int64 {
if x != nil {
return x.RankScore
}
return 0
}
func (x *TienLenPlayerGameBilled) GetAddScore() int64 {
if x != nil {
return x.AddScore
}
return 0
}
func (x *TienLenPlayerGameBilled) GetAddItems() []*AddItem {
if x != nil {
return x.AddItems
}
return nil
}
func (x *TienLenPlayerGameBilled) GetTianHu() int32 {
if x != nil {
return x.TianHu
}
return 0
}
type SCTienLenGameBilled struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Datas []*TienLenPlayerGameBilled `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"`
}
func (x *SCTienLenGameBilled) Reset() {
*x = SCTienLenGameBilled{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenGameBilled) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenGameBilled) ProtoMessage() {}
func (x *SCTienLenGameBilled) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenGameBilled.ProtoReflect.Descriptor instead.
func (*SCTienLenGameBilled) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{12}
}
func (x *SCTienLenGameBilled) GetDatas() []*TienLenPlayerGameBilled {
if x != nil {
return x.Datas
}
return nil
}
//小结算结果(炸的分)
type SCTienLenSmallGameBilled struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
WinPos int32 `protobuf:"varint,1,opt,name=WinPos,proto3" json:"WinPos,omitempty"` //赢家
WinPosCoin int64 `protobuf:"varint,2,opt,name=WinPosCoin,proto3" json:"WinPosCoin,omitempty"` //结算后赢家身上余额
LosePos int32 `protobuf:"varint,3,opt,name=LosePos,proto3" json:"LosePos,omitempty"` //输家
LosePosCoin int64 `protobuf:"varint,4,opt,name=LosePosCoin,proto3" json:"LosePosCoin,omitempty"` //结算后输家身上余额
WinCoin int64 `protobuf:"varint,5,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` //赢金额
LoseCoin int64 `protobuf:"varint,6,opt,name=LoseCoin,proto3" json:"LoseCoin,omitempty"` //输金额
}
func (x *SCTienLenSmallGameBilled) Reset() {
*x = SCTienLenSmallGameBilled{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenSmallGameBilled) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenSmallGameBilled) ProtoMessage() {}
func (x *SCTienLenSmallGameBilled) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_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 SCTienLenSmallGameBilled.ProtoReflect.Descriptor instead.
func (*SCTienLenSmallGameBilled) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{13}
}
func (x *SCTienLenSmallGameBilled) GetWinPos() int32 {
if x != nil {
return x.WinPos
}
return 0
}
func (x *SCTienLenSmallGameBilled) GetWinPosCoin() int64 {
if x != nil {
return x.WinPosCoin
}
return 0
}
func (x *SCTienLenSmallGameBilled) GetLosePos() int32 {
if x != nil {
return x.LosePos
}
return 0
}
func (x *SCTienLenSmallGameBilled) GetLosePosCoin() int64 {
if x != nil {
return x.LosePosCoin
}
return 0
}
func (x *SCTienLenSmallGameBilled) GetWinCoin() int64 {
if x != nil {
return x.WinCoin
}
return 0
}
func (x *SCTienLenSmallGameBilled) GetLoseCoin() int64 {
if x != nil {
return x.LoseCoin
}
return 0
}
//发牌
type SCTienLenCard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌
IsOutRecord bool `protobuf:"varint,2,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` // 是否有出牌记录
SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id
}
func (x *SCTienLenCard) Reset() {
*x = SCTienLenCard{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenCard) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenCard) ProtoMessage() {}
func (x *SCTienLenCard) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[14]
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 SCTienLenCard.ProtoReflect.Descriptor instead.
func (*SCTienLenCard) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{14}
}
func (x *SCTienLenCard) GetCards() []int32 {
if x != nil {
return x.Cards
}
return nil
}
func (x *SCTienLenCard) GetIsOutRecord() bool {
if x != nil {
return x.IsOutRecord
}
return false
}
func (x *SCTienLenCard) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
//测试数据
type SCTienLenCardTest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Grades map[int32]int32 `protobuf:"bytes,1,rep,name=Grades,proto3" json:"Grades,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 牌评分
Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //1最小 2随机 3最大
Totalin int64 `protobuf:"varint,3,opt,name=Totalin,proto3" json:"Totalin,omitempty"` //投入
Totalout int64 `protobuf:"varint,4,opt,name=Totalout,proto3" json:"Totalout,omitempty"` //产出
LoseRate float64 `protobuf:"fixed64,5,opt,name=LoseRate,proto3" json:"LoseRate,omitempty"` //赔率
Data string `protobuf:"bytes,6,opt,name=Data,proto3" json:"Data,omitempty"`
}
func (x *SCTienLenCardTest) Reset() {
*x = SCTienLenCardTest{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenCardTest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenCardTest) ProtoMessage() {}
func (x *SCTienLenCardTest) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[15]
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 SCTienLenCardTest.ProtoReflect.Descriptor instead.
func (*SCTienLenCardTest) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{15}
}
func (x *SCTienLenCardTest) GetGrades() map[int32]int32 {
if x != nil {
return x.Grades
}
return nil
}
func (x *SCTienLenCardTest) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *SCTienLenCardTest) GetTotalin() int64 {
if x != nil {
return x.Totalin
}
return 0
}
func (x *SCTienLenCardTest) GetTotalout() int64 {
if x != nil {
return x.Totalout
}
return 0
}
func (x *SCTienLenCardTest) GetLoseRate() float64 {
if x != nil {
return x.LoseRate
}
return 0
}
func (x *SCTienLenCardTest) GetData() string {
if x != nil {
return x.Data
}
return ""
}
type SCTienLenCurOpPos struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置
IsNew bool `protobuf:"varint,2,opt,name=IsNew,proto3" json:"IsNew,omitempty"` //新一轮开始出牌
Cards []int32 `protobuf:"varint,3,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //上家出的牌
ExDelay int32 `protobuf:"varint,4,opt,name=ExDelay,proto3" json:"ExDelay,omitempty"` //出牌额外延迟时间s
Flag int32 `protobuf:"varint,5,opt,name=flag,proto3" json:"flag,omitempty"` //玩家状态标记
}
func (x *SCTienLenCurOpPos) Reset() {
*x = SCTienLenCurOpPos{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenCurOpPos) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenCurOpPos) ProtoMessage() {}
func (x *SCTienLenCurOpPos) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[16]
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 SCTienLenCurOpPos.ProtoReflect.Descriptor instead.
func (*SCTienLenCurOpPos) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{16}
}
func (x *SCTienLenCurOpPos) GetPos() int32 {
if x != nil {
return x.Pos
}
return 0
}
func (x *SCTienLenCurOpPos) GetIsNew() bool {
if x != nil {
return x.IsNew
}
return false
}
func (x *SCTienLenCurOpPos) GetCards() []int32 {
if x != nil {
return x.Cards
}
return nil
}
func (x *SCTienLenCurOpPos) GetExDelay() int32 {
if x != nil {
return x.ExDelay
}
return 0
}
func (x *SCTienLenCurOpPos) GetFlag() int32 {
if x != nil {
return x.Flag
}
return 0
}
type SCTienLenUpdateMasterSnid struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MasterSnid int32 `protobuf:"varint,1,opt,name=MasterSnid,proto3" json:"MasterSnid,omitempty"` //房主
}
func (x *SCTienLenUpdateMasterSnid) Reset() {
*x = SCTienLenUpdateMasterSnid{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenUpdateMasterSnid) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenUpdateMasterSnid) ProtoMessage() {}
func (x *SCTienLenUpdateMasterSnid) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[17]
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 SCTienLenUpdateMasterSnid.ProtoReflect.Descriptor instead.
func (*SCTienLenUpdateMasterSnid) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{17}
}
func (x *SCTienLenUpdateMasterSnid) GetMasterSnid() int32 {
if x != nil {
return x.MasterSnid
}
return 0
}
//PACKET_SCTienLenUpdateAudienceNum
type SCTienLenUpdateAudienceNum struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
AudienceNum int32 `protobuf:"varint,1,opt,name=AudienceNum,proto3" json:"AudienceNum,omitempty"` //当前观战人数
}
func (x *SCTienLenUpdateAudienceNum) Reset() {
*x = SCTienLenUpdateAudienceNum{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenUpdateAudienceNum) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenUpdateAudienceNum) ProtoMessage() {}
func (x *SCTienLenUpdateAudienceNum) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[18]
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 SCTienLenUpdateAudienceNum.ProtoReflect.Descriptor instead.
func (*SCTienLenUpdateAudienceNum) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{18}
}
func (x *SCTienLenUpdateAudienceNum) GetAudienceNum() int32 {
if x != nil {
return x.AudienceNum
}
return 0
}
type SCTienLenAIData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BombNum int32 `protobuf:"varint,1,opt,name=Bomb_num,json=BombNum,proto3" json:"Bomb_num,omitempty"` //炸弹数量
CardPlayActionSeq string `protobuf:"bytes,2,opt,name=Card_play_action_seq,json=CardPlayActionSeq,proto3" json:"Card_play_action_seq,omitempty"` //出牌历史记录
LastMove_0 string `protobuf:"bytes,3,opt,name=Last_move_0,json=LastMove0,proto3" json:"Last_move_0,omitempty"` //最后出牌
LastMove_1 string `protobuf:"bytes,4,opt,name=Last_move_1,json=LastMove1,proto3" json:"Last_move_1,omitempty"` //最后出牌
LastMove_2 string `protobuf:"bytes,5,opt,name=Last_move_2,json=LastMove2,proto3" json:"Last_move_2,omitempty"` //最后出牌
LastMove_3 string `protobuf:"bytes,6,opt,name=Last_move_3,json=LastMove3,proto3" json:"Last_move_3,omitempty"` //最后出牌
NumCardsLeft_0 int32 `protobuf:"varint,7,opt,name=Num_cards_left_0,json=NumCardsLeft0,proto3" json:"Num_cards_left_0,omitempty"` //剩余牌数
NumCardsLeft_1 int32 `protobuf:"varint,8,opt,name=Num_cards_left_1,json=NumCardsLeft1,proto3" json:"Num_cards_left_1,omitempty"` //剩余牌数
NumCardsLeft_2 int32 `protobuf:"varint,9,opt,name=Num_cards_left_2,json=NumCardsLeft2,proto3" json:"Num_cards_left_2,omitempty"` //剩余牌数
NumCardsLeft_3 int32 `protobuf:"varint,10,opt,name=Num_cards_left_3,json=NumCardsLeft3,proto3" json:"Num_cards_left_3,omitempty"` //剩余牌数
OtherHandCards string `protobuf:"bytes,11,opt,name=Other_hand_cards,json=OtherHandCards,proto3" json:"Other_hand_cards,omitempty"` //其它人手牌
PlayedCards_0 string `protobuf:"bytes,12,opt,name=Played_cards_0,json=PlayedCards0,proto3" json:"Played_cards_0,omitempty"` //出过的牌
PlayedCards_1 string `protobuf:"bytes,13,opt,name=Played_cards_1,json=PlayedCards1,proto3" json:"Played_cards_1,omitempty"` //出过的牌
PlayedCards_2 string `protobuf:"bytes,14,opt,name=Played_cards_2,json=PlayedCards2,proto3" json:"Played_cards_2,omitempty"` //出过的牌
PlayedCards_3 string `protobuf:"bytes,15,opt,name=Played_cards_3,json=PlayedCards3,proto3" json:"Played_cards_3,omitempty"` //出过的牌
PlayerHandCards string `protobuf:"bytes,16,opt,name=Player_hand_cards,json=PlayerHandCards,proto3" json:"Player_hand_cards,omitempty"` //手牌
PlayerPosition int32 `protobuf:"varint,17,opt,name=Player_position,json=PlayerPosition,proto3" json:"Player_position,omitempty"` //当前操作数置
IsTienLenYule bool `protobuf:"varint,18,opt,name=IsTienLenYule,proto3" json:"IsTienLenYule,omitempty"` //是否娱乐场
IsFirstHand bool `protobuf:"varint,19,opt,name=IsFirstHand,proto3" json:"IsFirstHand,omitempty"` //是否出首牌
CardsLeft_0 []int32 `protobuf:"varint,20,rep,packed,name=Cards_left_0,json=CardsLeft0,proto3" json:"Cards_left_0,omitempty"` //剩余牌
CardsLeft_1 []int32 `protobuf:"varint,21,rep,packed,name=Cards_left_1,json=CardsLeft1,proto3" json:"Cards_left_1,omitempty"` //剩余牌
CardsLeft_2 []int32 `protobuf:"varint,22,rep,packed,name=Cards_left_2,json=CardsLeft2,proto3" json:"Cards_left_2,omitempty"` //剩余牌
CardsLeft_3 []int32 `protobuf:"varint,23,rep,packed,name=Cards_left_3,json=CardsLeft3,proto3" json:"Cards_left_3,omitempty"` //剩余牌
LastPos int32 `protobuf:"varint,24,opt,name=Last_pos,json=LastPos,proto3" json:"Last_pos,omitempty"` //上一家出牌人的位置
IsEnd bool `protobuf:"varint,25,opt,name=IsEnd,proto3" json:"IsEnd,omitempty"` //是否是打到底
WinSnids []int32 `protobuf:"varint,26,rep,packed,name=WinSnids,proto3" json:"WinSnids,omitempty"` //赢家id
IsWin bool `protobuf:"varint,27,opt,name=IsWin,proto3" json:"IsWin,omitempty"` //输赢控制
}
func (x *SCTienLenAIData) Reset() {
*x = SCTienLenAIData{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenAIData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenAIData) ProtoMessage() {}
func (x *SCTienLenAIData) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[19]
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 SCTienLenAIData.ProtoReflect.Descriptor instead.
func (*SCTienLenAIData) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{19}
}
func (x *SCTienLenAIData) GetBombNum() int32 {
if x != nil {
return x.BombNum
}
return 0
}
func (x *SCTienLenAIData) GetCardPlayActionSeq() string {
if x != nil {
return x.CardPlayActionSeq
}
return ""
}
func (x *SCTienLenAIData) GetLastMove_0() string {
if x != nil {
return x.LastMove_0
}
return ""
}
func (x *SCTienLenAIData) GetLastMove_1() string {
if x != nil {
return x.LastMove_1
}
return ""
}
func (x *SCTienLenAIData) GetLastMove_2() string {
if x != nil {
return x.LastMove_2
}
return ""
}
func (x *SCTienLenAIData) GetLastMove_3() string {
if x != nil {
return x.LastMove_3
}
return ""
}
func (x *SCTienLenAIData) GetNumCardsLeft_0() int32 {
if x != nil {
return x.NumCardsLeft_0
}
return 0
}
func (x *SCTienLenAIData) GetNumCardsLeft_1() int32 {
if x != nil {
return x.NumCardsLeft_1
}
return 0
}
func (x *SCTienLenAIData) GetNumCardsLeft_2() int32 {
if x != nil {
return x.NumCardsLeft_2
}
return 0
}
func (x *SCTienLenAIData) GetNumCardsLeft_3() int32 {
if x != nil {
return x.NumCardsLeft_3
}
return 0
}
func (x *SCTienLenAIData) GetOtherHandCards() string {
if x != nil {
return x.OtherHandCards
}
return ""
}
func (x *SCTienLenAIData) GetPlayedCards_0() string {
if x != nil {
return x.PlayedCards_0
}
return ""
}
func (x *SCTienLenAIData) GetPlayedCards_1() string {
if x != nil {
return x.PlayedCards_1
}
return ""
}
func (x *SCTienLenAIData) GetPlayedCards_2() string {
if x != nil {
return x.PlayedCards_2
}
return ""
}
func (x *SCTienLenAIData) GetPlayedCards_3() string {
if x != nil {
return x.PlayedCards_3
}
return ""
}
func (x *SCTienLenAIData) GetPlayerHandCards() string {
if x != nil {
return x.PlayerHandCards
}
return ""
}
func (x *SCTienLenAIData) GetPlayerPosition() int32 {
if x != nil {
return x.PlayerPosition
}
return 0
}
func (x *SCTienLenAIData) GetIsTienLenYule() bool {
if x != nil {
return x.IsTienLenYule
}
return false
}
func (x *SCTienLenAIData) GetIsFirstHand() bool {
if x != nil {
return x.IsFirstHand
}
return false
}
func (x *SCTienLenAIData) GetCardsLeft_0() []int32 {
if x != nil {
return x.CardsLeft_0
}
return nil
}
func (x *SCTienLenAIData) GetCardsLeft_1() []int32 {
if x != nil {
return x.CardsLeft_1
}
return nil
}
func (x *SCTienLenAIData) GetCardsLeft_2() []int32 {
if x != nil {
return x.CardsLeft_2
}
return nil
}
func (x *SCTienLenAIData) GetCardsLeft_3() []int32 {
if x != nil {
return x.CardsLeft_3
}
return nil
}
func (x *SCTienLenAIData) GetLastPos() int32 {
if x != nil {
return x.LastPos
}
return 0
}
func (x *SCTienLenAIData) GetIsEnd() bool {
if x != nil {
return x.IsEnd
}
return false
}
func (x *SCTienLenAIData) GetWinSnids() []int32 {
if x != nil {
return x.WinSnids
}
return nil
}
func (x *SCTienLenAIData) GetIsWin() bool {
if x != nil {
return x.IsWin
}
return false
}
//PACKET_SCTienLenFirstOpPos
type SCTienLenFirstOpPos struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置
}
func (x *SCTienLenFirstOpPos) Reset() {
*x = SCTienLenFirstOpPos{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenFirstOpPos) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenFirstOpPos) ProtoMessage() {}
func (x *SCTienLenFirstOpPos) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[20]
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 SCTienLenFirstOpPos.ProtoReflect.Descriptor instead.
func (*SCTienLenFirstOpPos) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{20}
}
func (x *SCTienLenFirstOpPos) GetPos() int32 {
if x != nil {
return x.Pos
}
return 0
}
//PACKET_SCTienLenThinkLongCnt
type SCTienLenPlayerThinkLongCnt struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ThinkLongCnt int32 `protobuf:"varint,1,opt,name=ThinkLongCnt,proto3" json:"ThinkLongCnt,omitempty"` //玩家长考次数
}
func (x *SCTienLenPlayerThinkLongCnt) Reset() {
*x = SCTienLenPlayerThinkLongCnt{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPlayerThinkLongCnt) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPlayerThinkLongCnt) ProtoMessage() {}
func (x *SCTienLenPlayerThinkLongCnt) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[21]
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 SCTienLenPlayerThinkLongCnt.ProtoReflect.Descriptor instead.
func (*SCTienLenPlayerThinkLongCnt) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{21}
}
func (x *SCTienLenPlayerThinkLongCnt) GetThinkLongCnt() int32 {
if x != nil {
return x.ThinkLongCnt
}
return 0
}
//PACKET_SCTienLenFirstGiveItemItem
type SCTienLenPlayerFirstGiveItemItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 赠送的道具ID
ItemRecExpireTime int64 `protobuf:"varint,2,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` // 道具到期时间
}
func (x *SCTienLenPlayerFirstGiveItemItem) Reset() {
*x = SCTienLenPlayerFirstGiveItemItem{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPlayerFirstGiveItemItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPlayerFirstGiveItemItem) ProtoMessage() {}
func (x *SCTienLenPlayerFirstGiveItemItem) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[22]
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 SCTienLenPlayerFirstGiveItemItem.ProtoReflect.Descriptor instead.
func (*SCTienLenPlayerFirstGiveItemItem) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{22}
}
func (x *SCTienLenPlayerFirstGiveItemItem) GetItemId() int32 {
if x != nil {
return x.ItemId
}
return 0
}
func (x *SCTienLenPlayerFirstGiveItemItem) GetItemRecExpireTime() int64 {
if x != nil {
return x.ItemRecExpireTime
}
return 0
}
//通知宠物技能生效 炸弹不扣分
//PACKET_SCTienLenPetSkillRes
type SCTienLenPetSkillRes struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"`
Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"`
PetSkillRes bool `protobuf:"varint,3,opt,name=PetSkillRes,proto3" json:"PetSkillRes,omitempty"` //true生效
}
func (x *SCTienLenPetSkillRes) Reset() {
*x = SCTienLenPetSkillRes{}
if protoimpl.UnsafeEnabled {
mi := &file_tienlen_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCTienLenPetSkillRes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCTienLenPetSkillRes) ProtoMessage() {}
func (x *SCTienLenPetSkillRes) ProtoReflect() protoreflect.Message {
mi := &file_tienlen_proto_msgTypes[23]
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 SCTienLenPetSkillRes.ProtoReflect.Descriptor instead.
func (*SCTienLenPetSkillRes) Descriptor() ([]byte, []int) {
return file_tienlen_proto_rawDescGZIP(), []int{23}
}
func (x *SCTienLenPetSkillRes) GetSnid() int32 {
if x != nil {
return x.Snid
}
return 0
}
func (x *SCTienLenPetSkillRes) GetPos() int32 {
if x != nil {
return x.Pos
}
return 0
}
func (x *SCTienLenPetSkillRes) GetPetSkillRes() bool {
if x != nil {
return x.PetSkillRes
}
return false
}
var File_tienlen_proto protoreflect.FileDescriptor
var file_tienlen_proto_rawDesc = []byte{
0x0a, 0x0d, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x07, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x22, 0x99, 0x07, 0x0a, 0x11, 0x54, 0x69, 0x65,
0x6e, 0x4c, 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, 0x16, 0x0a, 0x06,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01,
0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18,
0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c,
0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c,
0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x09, 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, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06,
0x4c, 0x61, 0x73, 0x74, 0x4f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x61,
0x73, 0x74, 0x4f, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75,
0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61,
0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x69, 0x63, 0x65,
0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52,
0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x75, 0x72, 0x52, 0x6f, 0x75,
0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03,
0x52, 0x10, 0x43, 0x75, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42,
0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x12,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16,
0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18,
0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e,
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74,
0x65, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b,
0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52,
0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x4c, 0x76, 0x18, 0x16, 0x20, 0x01, 0x28,
0x05, 0x52, 0x02, 0x4c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x6e, 0x69,
0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x6e, 0x69,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18,
0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x6f, 0x6c, 0x65, 0x49,
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x19,
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12,
0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18,
0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67,
0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1b, 0x20, 0x01,
0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70,
0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x50,
0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0b, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x33, 0x0a,
0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x50, 0x65, 0x74, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x1f, 0x20, 0x01,
0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74,
0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, 0x0c, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, 0x09,
0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69,
0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c,
0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61,
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xab, 0x07, 0x0a, 0x11, 0x53, 0x43, 0x54,
0x69, 0x65, 0x6e, 0x4c, 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, 0x1c, 0x0a, 0x09,
0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x06, 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, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65,
0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69,
0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73,
0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e,
0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x12, 0x38,
0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4c,
0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74,
0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f,
0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75,
0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61,
0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09,
0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61,
0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a,
0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05,
0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73,
0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x4d,
0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x16, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75,
0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a,
0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61,
0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08,
0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e,
0x65, 0x41, 0x64, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e,
0x65, 0x41, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64,
0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64,
0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x75, 0x74, 0x43, 0x61, 0x72, 0x64,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4f,
0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d,
0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20,
0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69,
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e,
0x4c, 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, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53,
0x54, 0x69, 0x65, 0x6e, 0x4c, 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, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 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, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a,
0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 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, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61,
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c,
0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43,
0x54, 0x69, 0x65, 0x6e, 0x4c, 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, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12,
0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49,
0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65,
0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65,
0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 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, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69,
0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61,
0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57,
0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52,
0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64,
0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64,
0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d,
0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65,
0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74,
0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c,
0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e,
0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c,
0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d,
0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12,
0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12,
0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73,
0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57,
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69,
0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69,
0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61,
0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75,
0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49,
0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e,
0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x88,
0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64,
0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74,
0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x47, 0x72,
0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61,
0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c,
0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1a,
0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01,
0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61,
0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x39,
0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x53, 0x43, 0x54,
0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10,
0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07,
0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45,
0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, 0x19, 0x53, 0x43,
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73,
0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65,
0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73,
0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, 0x54, 0x69, 0x65,
0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e,
0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63,
0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69,
0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x69,
0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x42,
0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x42,
0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x64, 0x5f, 0x70,
0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f,
0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61,
0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f,
0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61,
0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f,
0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61,
0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f,
0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61,
0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63,
0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30,
0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65,
0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43,
0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d,
0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66,
0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f,
0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75,
0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x4f,
0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64,
0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f,
0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x0d, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73,
0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64,
0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x2a, 0x0a,
0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72,
0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59,
0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65,
0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69,
0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49,
0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61,
0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05,
0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x20, 0x0a, 0x0c,
0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x15, 0x20, 0x03,
0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x20,
0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x16,
0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32,
0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33,
0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66,
0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x18,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a,
0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73,
0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18,
0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12,
0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c,
0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03,
0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x41,
0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a,
0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e,
0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65,
0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a,
0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65,
0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74,
0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 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, 0x0d, 0x0a, 0x09,
0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f,
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12,
0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65,
0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49,
0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74,
0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f,
0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e,
0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64,
0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65,
0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73,
0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65,
0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a,
0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65,
0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e,
0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86,
0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69,
0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10,
0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54,
0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88,
0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69,
0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e,
0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76,
0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e,
0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27,
0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f,
0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_tienlen_proto_rawDescOnce sync.Once
file_tienlen_proto_rawDescData = file_tienlen_proto_rawDesc
)
func file_tienlen_proto_rawDescGZIP() []byte {
file_tienlen_proto_rawDescOnce.Do(func() {
file_tienlen_proto_rawDescData = protoimpl.X.CompressGZIP(file_tienlen_proto_rawDescData)
})
return file_tienlen_proto_rawDescData
}
var file_tienlen_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_tienlen_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_tienlen_proto_goTypes = []interface{}{
(OpResultCode)(0), // 0: tienlen.OpResultCode
(TienLenPacketID)(0), // 1: tienlen.TienLenPacketID
(*TienLenPlayerData)(nil), // 2: tienlen.TienLenPlayerData
(*PetSkillInfo)(nil), // 3: tienlen.PetSkillInfo
(*SkillInfo)(nil), // 4: tienlen.SkillInfo
(*LastDelCard)(nil), // 5: tienlen.LastDelCard
(*SCTienLenRoomInfo)(nil), // 6: tienlen.SCTienLenRoomInfo
(*SCTienLenRoomState)(nil), // 7: tienlen.SCTienLenRoomState
(*CSTienLenPlayerOp)(nil), // 8: tienlen.CSTienLenPlayerOp
(*SCTienLenPlayerOp)(nil), // 9: tienlen.SCTienLenPlayerOp
(*SCTienLenPlayerEnter)(nil), // 10: tienlen.SCTienLenPlayerEnter
(*SCTienLenPlayerLeave)(nil), // 11: tienlen.SCTienLenPlayerLeave
(*AddItem)(nil), // 12: tienlen.AddItem
(*TienLenPlayerGameBilled)(nil), // 13: tienlen.TienLenPlayerGameBilled
(*SCTienLenGameBilled)(nil), // 14: tienlen.SCTienLenGameBilled
(*SCTienLenSmallGameBilled)(nil), // 15: tienlen.SCTienLenSmallGameBilled
(*SCTienLenCard)(nil), // 16: tienlen.SCTienLenCard
(*SCTienLenCardTest)(nil), // 17: tienlen.SCTienLenCardTest
(*SCTienLenCurOpPos)(nil), // 18: tienlen.SCTienLenCurOpPos
(*SCTienLenUpdateMasterSnid)(nil), // 19: tienlen.SCTienLenUpdateMasterSnid
(*SCTienLenUpdateAudienceNum)(nil), // 20: tienlen.SCTienLenUpdateAudienceNum
(*SCTienLenAIData)(nil), // 21: tienlen.SCTienLenAIData
(*SCTienLenFirstOpPos)(nil), // 22: tienlen.SCTienLenFirstOpPos
(*SCTienLenPlayerThinkLongCnt)(nil), // 23: tienlen.SCTienLenPlayerThinkLongCnt
(*SCTienLenPlayerFirstGiveItemItem)(nil), // 24: tienlen.SCTienLenPlayerFirstGiveItemItem
(*SCTienLenPetSkillRes)(nil), // 25: tienlen.SCTienLenPetSkillRes
nil, // 26: tienlen.TienLenPlayerData.ItemsEntry
nil, // 27: tienlen.SCTienLenCardTest.GradesEntry
}
var file_tienlen_proto_depIdxs = []int32{
26, // 0: tienlen.TienLenPlayerData.Items:type_name -> tienlen.TienLenPlayerData.ItemsEntry
3, // 1: tienlen.TienLenPlayerData.SkillInfo:type_name -> tienlen.PetSkillInfo
4, // 2: tienlen.PetSkillInfo.SkillData:type_name -> tienlen.SkillInfo
2, // 3: tienlen.SCTienLenRoomInfo.Players:type_name -> tienlen.TienLenPlayerData
5, // 4: tienlen.SCTienLenRoomInfo.LastDelCards:type_name -> tienlen.LastDelCard
0, // 5: tienlen.SCTienLenPlayerOp.OpRetCode:type_name -> tienlen.OpResultCode
2, // 6: tienlen.SCTienLenPlayerEnter.Data:type_name -> tienlen.TienLenPlayerData
12, // 7: tienlen.TienLenPlayerGameBilled.AddItems:type_name -> tienlen.AddItem
13, // 8: tienlen.SCTienLenGameBilled.Datas:type_name -> tienlen.TienLenPlayerGameBilled
27, // 9: tienlen.SCTienLenCardTest.Grades:type_name -> tienlen.SCTienLenCardTest.GradesEntry
10, // [10:10] is the sub-list for method output_type
10, // [10:10] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name
}
func init() { file_tienlen_proto_init() }
func file_tienlen_proto_init() {
if File_tienlen_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_tienlen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TienLenPlayerData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PetSkillInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SkillInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LastDelCard); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenRoomInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenRoomState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSTienLenPlayerOp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPlayerOp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPlayerEnter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPlayerLeave); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TienLenPlayerGameBilled); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenGameBilled); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenSmallGameBilled); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenCard); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenCardTest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenCurOpPos); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenUpdateMasterSnid); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenUpdateAudienceNum); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenAIData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenFirstOpPos); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPlayerThinkLongCnt); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPlayerFirstGiveItemItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_tienlen_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCTienLenPetSkillRes); 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_tienlen_proto_rawDesc,
NumEnums: 2,
NumMessages: 26,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_tienlen_proto_goTypes,
DependencyIndexes: file_tienlen_proto_depIdxs,
EnumInfos: file_tienlen_proto_enumTypes,
MessageInfos: file_tienlen_proto_msgTypes,
}.Build()
File_tienlen_proto = out.File
file_tienlen_proto_rawDesc = nil
file_tienlen_proto_goTypes = nil
file_tienlen_proto_depIdxs = nil
}