// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: game.proto package gamehall 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_Game int32 const ( OpResultCode_Game_OPRC_Sucess_Game OpResultCode_Game = 0 //成功 OpResultCode_Game_OPRC_Error_Game OpResultCode_Game = 1 //失败 OpResultCode_Game_OPRC_RoomNotExist_Game OpResultCode_Game = 1016 //房间不存在 OpResultCode_Game_OPRC_GameNotExist_Game OpResultCode_Game = 1017 //游戏不存在 OpResultCode_Game_OPRC_GameHadClosed OpResultCode_Game = 1018 //暂未开放 OpResultCode_Game_OPRC_RoomIsFull_Game OpResultCode_Game = 1019 //房间已满 OpResultCode_Game_OPRC_RoomHadExist_Game OpResultCode_Game = 1020 //已经创建过房间了 OpResultCode_Game_OPRC_GameStarting_Game OpResultCode_Game = 1022 //抱歉,战斗已经开始,不能再加入了 OpResultCode_Game_OPRC_CannotWatchReasonInOther_Game OpResultCode_Game = 1024 //你在别的场里,不能进去观看 OpResultCode_Game_OPRC_MoneyNotEnough_Game OpResultCode_Game = 1040 //钻石不够了 OpResultCode_Game_OPRC_CannotWatchReasonRoomNotStart_Game OpResultCode_Game = 1042 //房间未开始,不能进去观看 OpResultCode_Game_OPRC_OnlyAllowClubMemberEnter_Game OpResultCode_Game = 1043 //只允许俱乐部成员进入 OpResultCode_Game_OPRC_YourResVerIsLow_Game OpResultCode_Game = 1044 //资源版本过低 OpResultCode_Game_OPRC_YourAppVerIsLow_Game OpResultCode_Game = 1045 //APK版本过低 OpResultCode_Game_OPRC_ScenePosFull_Game OpResultCode_Game = 1048 //位置满了不能再坐人 OpResultCode_Game_OPRC_SceneEnterForWatcher_Game OpResultCode_Game = 1050 //可以进入观战 OpResultCode_Game_OPRC_RoomHadClosed_Game OpResultCode_Game = 1053 //牌局已结束,正在结算 OpResultCode_Game_OPRC_SceneServerMaintain_Game OpResultCode_Game = 1054 //服务器维护中,请稍后创建 OpResultCode_Game_OPRC_SameIpForbid_Game OpResultCode_Game = 1055 //同ip不可进 OpResultCode_Game_OPRC_CoinNotEnough_Game OpResultCode_Game = 1056 //金币不足 OpResultCode_Game_OPRC_CoinTooMore_Game OpResultCode_Game = 1058 //金币太多了,请换高倍场 OpResultCode_Game_OPRC_InOtherGameIng_Game OpResultCode_Game = 1059 //正在进行其他游戏,请稍等 OpResultCode_Game_OPRC_OpYield_Game OpResultCode_Game = 1082 //操作被挂起 OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败 OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限 OpResultCode_Game_OPRC_RoomNotExit OpResultCode_Game = 1099 // 已经不在房间了 OpResultCode_Game_OPRC_MatchAudience OpResultCode_Game = 1100 // 不在比赛观战白名单 OpResultCode_Game_OPRC_PasswordError OpResultCode_Game = 1101 //密码错误 OpResultCode_Game_OPRC_CostNotEnough OpResultCode_Game = 1102 //房卡不足 OpResultCode_Game_OPRC_LowerRice_ScenceMax_Game OpResultCode_Game = 1075 //超过最大下米数量 OpResultCode_Game_OPRC_LowerRice_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数 OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077 OpResultCode_Game_OPRC_YourAreGamingCannotLeave_Game OpResultCode_Game = 1078 OpResultCode_Game_OPRC_ThirdPltProcessing_Game OpResultCode_Game = 1096 //三方平台正在处理中 OpResultCode_Game_OPRC_RoomGameTimes_Game OpResultCode_Game = 1103 //超过最大游戏次数 OpResultCode_Game_OPRC_MustBindPromoter_Game OpResultCode_Game = 1113 //必须绑定推广员 OpResultCode_Game_Oprc_Club_ClubIsClose_Game OpResultCode_Game = 5023 //俱乐部没有开放 //DG OpResultCode_Game_OPRC_Dg_RegistErr_Game OpResultCode_Game = 9000 OpResultCode_Game_OPRC_Dg_LoginErr_Game OpResultCode_Game = 9001 OpResultCode_Game_OPRC_Dg_PlatErr_Game OpResultCode_Game = 9002 OpResultCode_Game_OPRC_Dg_QuotaNotEnough_Game OpResultCode_Game = 9003 //平台DG配额不足 OpResultCode_Game_OPRC_Thr_GameClose_Game OpResultCode_Game = 9010 //游戏维护中 ) // Enum value maps for OpResultCode_Game. var ( OpResultCode_Game_name = map[int32]string{ 0: "OPRC_Sucess_Game", 1: "OPRC_Error_Game", 1016: "OPRC_RoomNotExist_Game", 1017: "OPRC_GameNotExist_Game", 1018: "OPRC_GameHadClosed", 1019: "OPRC_RoomIsFull_Game", 1020: "OPRC_RoomHadExist_Game", 1022: "OPRC_GameStarting_Game", 1024: "OPRC_CannotWatchReasonInOther_Game", 1040: "OPRC_MoneyNotEnough_Game", 1042: "OPRC_CannotWatchReasonRoomNotStart_Game", 1043: "OPRC_OnlyAllowClubMemberEnter_Game", 1044: "OPRC_YourResVerIsLow_Game", 1045: "OPRC_YourAppVerIsLow_Game", 1048: "OPRC_ScenePosFull_Game", 1050: "OPRC_SceneEnterForWatcher_Game", 1053: "OPRC_RoomHadClosed_Game", 1054: "OPRC_SceneServerMaintain_Game", 1055: "OPRC_SameIpForbid_Game", 1056: "OPRC_CoinNotEnough_Game", 1058: "OPRC_CoinTooMore_Game", 1059: "OPRC_InOtherGameIng_Game", 1082: "OPRC_OpYield_Game", 1097: "OPRC_AllocRoomIdFailed_Game", 1098: "OPRC_PrivateRoomCountLimit_Game", 1099: "OPRC_RoomNotExit", 1100: "OPRC_MatchAudience", 1101: "OPRC_PasswordError", 1102: "OPRC_CostNotEnough", 1075: "OPRC_LowerRice_ScenceMax_Game", 1076: "OPRC_LowerRice_PlayerMax_Game", 1077: "OPRC_LowerRice_PlayerDownMax_Game", 1078: "OPRC_YourAreGamingCannotLeave_Game", 1096: "OPRC_ThirdPltProcessing_Game", 1103: "OPRC_RoomGameTimes_Game", 1113: "OPRC_MustBindPromoter_Game", 5023: "Oprc_Club_ClubIsClose_Game", 9000: "OPRC_Dg_RegistErr_Game", 9001: "OPRC_Dg_LoginErr_Game", 9002: "OPRC_Dg_PlatErr_Game", 9003: "OPRC_Dg_QuotaNotEnough_Game", 9010: "OPRC_Thr_GameClose_Game", } OpResultCode_Game_value = map[string]int32{ "OPRC_Sucess_Game": 0, "OPRC_Error_Game": 1, "OPRC_RoomNotExist_Game": 1016, "OPRC_GameNotExist_Game": 1017, "OPRC_GameHadClosed": 1018, "OPRC_RoomIsFull_Game": 1019, "OPRC_RoomHadExist_Game": 1020, "OPRC_GameStarting_Game": 1022, "OPRC_CannotWatchReasonInOther_Game": 1024, "OPRC_MoneyNotEnough_Game": 1040, "OPRC_CannotWatchReasonRoomNotStart_Game": 1042, "OPRC_OnlyAllowClubMemberEnter_Game": 1043, "OPRC_YourResVerIsLow_Game": 1044, "OPRC_YourAppVerIsLow_Game": 1045, "OPRC_ScenePosFull_Game": 1048, "OPRC_SceneEnterForWatcher_Game": 1050, "OPRC_RoomHadClosed_Game": 1053, "OPRC_SceneServerMaintain_Game": 1054, "OPRC_SameIpForbid_Game": 1055, "OPRC_CoinNotEnough_Game": 1056, "OPRC_CoinTooMore_Game": 1058, "OPRC_InOtherGameIng_Game": 1059, "OPRC_OpYield_Game": 1082, "OPRC_AllocRoomIdFailed_Game": 1097, "OPRC_PrivateRoomCountLimit_Game": 1098, "OPRC_RoomNotExit": 1099, "OPRC_MatchAudience": 1100, "OPRC_PasswordError": 1101, "OPRC_CostNotEnough": 1102, "OPRC_LowerRice_ScenceMax_Game": 1075, "OPRC_LowerRice_PlayerMax_Game": 1076, "OPRC_LowerRice_PlayerDownMax_Game": 1077, "OPRC_YourAreGamingCannotLeave_Game": 1078, "OPRC_ThirdPltProcessing_Game": 1096, "OPRC_RoomGameTimes_Game": 1103, "OPRC_MustBindPromoter_Game": 1113, "Oprc_Club_ClubIsClose_Game": 5023, "OPRC_Dg_RegistErr_Game": 9000, "OPRC_Dg_LoginErr_Game": 9001, "OPRC_Dg_PlatErr_Game": 9002, "OPRC_Dg_QuotaNotEnough_Game": 9003, "OPRC_Thr_GameClose_Game": 9010, } ) func (x OpResultCode_Game) Enum() *OpResultCode_Game { p := new(OpResultCode_Game) *p = x return p } func (x OpResultCode_Game) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (OpResultCode_Game) Descriptor() protoreflect.EnumDescriptor { return file_game_proto_enumTypes[0].Descriptor() } func (OpResultCode_Game) Type() protoreflect.EnumType { return &file_game_proto_enumTypes[0] } func (x OpResultCode_Game) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use OpResultCode_Game.Descriptor instead. func (OpResultCode_Game) EnumDescriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{0} } type GameHallPacketID int32 const ( // client -> worldsrv 协议 // 消息id 2200-2319 // 弃用消息号 GameHallPacketID_PACKET_GameHall_ZERO GameHallPacketID = 0 // 创建房间 GameHallPacketID_PACKET_CS_CREATEROOM GameHallPacketID = 2202 GameHallPacketID_PACKET_SC_CREATEROOM GameHallPacketID = 2203 // 进入房间 GameHallPacketID_PACKET_CS_ENTERROOM GameHallPacketID = 2204 GameHallPacketID_PACKET_SC_ENTERROOM GameHallPacketID = 2205 // 返回房间 GameHallPacketID_PACKET_CS_RETURNROOM GameHallPacketID = 2206 GameHallPacketID_PACKET_SC_RETURNROOM GameHallPacketID = 2207 // 进入游戏 GameHallPacketID_PACKET_CS_ENTERGAME GameHallPacketID = 2209 GameHallPacketID_PACKET_SC_ENTERGAME GameHallPacketID = 2210 // 退出游戏 GameHallPacketID_PACKET_CS_QUITGAME GameHallPacketID = 2211 GameHallPacketID_PACKET_SC_QUITGAME GameHallPacketID = 2212 // 获取游戏分场配置 GameHallPacketID_PACKET_CS_GETGAMECONFIG GameHallPacketID = 2231 GameHallPacketID_PACKET_SC_GETGAMECONFIG GameHallPacketID = 2232 // 修改游戏开关 GameHallPacketID_PACKET_SC_CHANGEGAMESTATUS GameHallPacketID = 2233 // 充值弹框协议 GameHallPacketID_PACKET_SC_PLAYERRECHARGEANSWER GameHallPacketID = 2258 // 创建竞技馆私人房 GameHallPacketID_PACKET_CS_CREATEPRIVATEROOM GameHallPacketID = 2272 GameHallPacketID_PACKET_SC_CREATEPRIVATEROOM GameHallPacketID = 2273 // 查询竞技馆私人房列表 GameHallPacketID_PACKET_CS_GETPRIVATEROOMLIST GameHallPacketID = 2274 GameHallPacketID_PACKET_SC_GETPRIVATEROOMLIST GameHallPacketID = 2275 // 查询自由桌房间列表 GameHallPacketID_PACKET_CS_QUERYROOMINFO GameHallPacketID = 2280 GameHallPacketID_PACKET_SC_QUERYROOMINFO GameHallPacketID = 2281 // 同步房间下注状态 GameHallPacketID_PACKET_SC_GAMESTATE GameHallPacketID = 2285 // 观众进入房间 GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM GameHallPacketID = 2208 // 观众坐下 GameHallPacketID_PACKET_CS_AUDIENCESIT GameHallPacketID = 2293 GameHallPacketID_PACKET_SC_AUDIENCESIT GameHallPacketID = 2294 // 公告 GameHallPacketID_PACKET_CS_COMNOTICE GameHallPacketID = 2295 GameHallPacketID_PACKET_SC_COMNOTICE GameHallPacketID = 2296 // 界面入口开关 GameHallPacketID_PACKET_SC_CHANGEENTRYSWITCH GameHallPacketID = 2297 // 公告更新 GameHallPacketID_PACKET_SC_NoticeChange GameHallPacketID = 2298 // 保持更新 GameHallPacketID_PACKET_CSTouchType GameHallPacketID = 2299 // 竞技馆房间信息 GameHallPacketID_PACKET_CSRoomConfig GameHallPacketID = 2300 GameHallPacketID_PACKET_SCRoomConfig GameHallPacketID = 2301 // client -> gamesrv 协议 // 消息id 8000~8099 // 离开房间 GameHallPacketID_PACKET_CS_LEAVEROOM GameHallPacketID = 8001 GameHallPacketID_PACKET_SC_LEAVEROOM GameHallPacketID = 8002 // 解散房间 GameHallPacketID_PACKET_CS_DESTROYROOM GameHallPacketID = 8003 GameHallPacketID_PACKET_SC_DESTROYROOM GameHallPacketID = 8004 // 强制开始 GameHallPacketID_PACKET_CS_FORCESTART GameHallPacketID = 8005 GameHallPacketID_PACKET_SC_FORCESTART GameHallPacketID = 8006 // 观众离开房间 GameHallPacketID_PACKET_CS_AUDIENCE_LEAVEROOM GameHallPacketID = 8007 // 玩家切换标志,暂离状态 GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG GameHallPacketID = 8008 // 房间事件,互动表情 GameHallPacketID_PACKET_CSRoomEvent GameHallPacketID = 8009 GameHallPacketID_PACKET_SCRoomEvent GameHallPacketID = 8010 ) // Enum value maps for GameHallPacketID. var ( GameHallPacketID_name = map[int32]string{ 0: "PACKET_GameHall_ZERO", 2202: "PACKET_CS_CREATEROOM", 2203: "PACKET_SC_CREATEROOM", 2204: "PACKET_CS_ENTERROOM", 2205: "PACKET_SC_ENTERROOM", 2206: "PACKET_CS_RETURNROOM", 2207: "PACKET_SC_RETURNROOM", 2209: "PACKET_CS_ENTERGAME", 2210: "PACKET_SC_ENTERGAME", 2211: "PACKET_CS_QUITGAME", 2212: "PACKET_SC_QUITGAME", 2231: "PACKET_CS_GETGAMECONFIG", 2232: "PACKET_SC_GETGAMECONFIG", 2233: "PACKET_SC_CHANGEGAMESTATUS", 2258: "PACKET_SC_PLAYERRECHARGEANSWER", 2272: "PACKET_CS_CREATEPRIVATEROOM", 2273: "PACKET_SC_CREATEPRIVATEROOM", 2274: "PACKET_CS_GETPRIVATEROOMLIST", 2275: "PACKET_SC_GETPRIVATEROOMLIST", 2280: "PACKET_CS_QUERYROOMINFO", 2281: "PACKET_SC_QUERYROOMINFO", 2285: "PACKET_SC_GAMESTATE", 2208: "PACKET_CS_AUDIENCE_ENTERROOM", 2293: "PACKET_CS_AUDIENCESIT", 2294: "PACKET_SC_AUDIENCESIT", 2295: "PACKET_CS_COMNOTICE", 2296: "PACKET_SC_COMNOTICE", 2297: "PACKET_SC_CHANGEENTRYSWITCH", 2298: "PACKET_SC_NoticeChange", 2299: "PACKET_CSTouchType", 2300: "PACKET_CSRoomConfig", 2301: "PACKET_SCRoomConfig", 8001: "PACKET_CS_LEAVEROOM", 8002: "PACKET_SC_LEAVEROOM", 8003: "PACKET_CS_DESTROYROOM", 8004: "PACKET_SC_DESTROYROOM", 8005: "PACKET_CS_FORCESTART", 8006: "PACKET_SC_FORCESTART", 8007: "PACKET_CS_AUDIENCE_LEAVEROOM", 8008: "PACKET_CS_PLAYER_SWITCHFLAG", 8009: "PACKET_CSRoomEvent", 8010: "PACKET_SCRoomEvent", } GameHallPacketID_value = map[string]int32{ "PACKET_GameHall_ZERO": 0, "PACKET_CS_CREATEROOM": 2202, "PACKET_SC_CREATEROOM": 2203, "PACKET_CS_ENTERROOM": 2204, "PACKET_SC_ENTERROOM": 2205, "PACKET_CS_RETURNROOM": 2206, "PACKET_SC_RETURNROOM": 2207, "PACKET_CS_ENTERGAME": 2209, "PACKET_SC_ENTERGAME": 2210, "PACKET_CS_QUITGAME": 2211, "PACKET_SC_QUITGAME": 2212, "PACKET_CS_GETGAMECONFIG": 2231, "PACKET_SC_GETGAMECONFIG": 2232, "PACKET_SC_CHANGEGAMESTATUS": 2233, "PACKET_SC_PLAYERRECHARGEANSWER": 2258, "PACKET_CS_CREATEPRIVATEROOM": 2272, "PACKET_SC_CREATEPRIVATEROOM": 2273, "PACKET_CS_GETPRIVATEROOMLIST": 2274, "PACKET_SC_GETPRIVATEROOMLIST": 2275, "PACKET_CS_QUERYROOMINFO": 2280, "PACKET_SC_QUERYROOMINFO": 2281, "PACKET_SC_GAMESTATE": 2285, "PACKET_CS_AUDIENCE_ENTERROOM": 2208, "PACKET_CS_AUDIENCESIT": 2293, "PACKET_SC_AUDIENCESIT": 2294, "PACKET_CS_COMNOTICE": 2295, "PACKET_SC_COMNOTICE": 2296, "PACKET_SC_CHANGEENTRYSWITCH": 2297, "PACKET_SC_NoticeChange": 2298, "PACKET_CSTouchType": 2299, "PACKET_CSRoomConfig": 2300, "PACKET_SCRoomConfig": 2301, "PACKET_CS_LEAVEROOM": 8001, "PACKET_SC_LEAVEROOM": 8002, "PACKET_CS_DESTROYROOM": 8003, "PACKET_SC_DESTROYROOM": 8004, "PACKET_CS_FORCESTART": 8005, "PACKET_SC_FORCESTART": 8006, "PACKET_CS_AUDIENCE_LEAVEROOM": 8007, "PACKET_CS_PLAYER_SWITCHFLAG": 8008, "PACKET_CSRoomEvent": 8009, "PACKET_SCRoomEvent": 8010, } ) func (x GameHallPacketID) Enum() *GameHallPacketID { p := new(GameHallPacketID) *p = x return p } func (x GameHallPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GameHallPacketID) Descriptor() protoreflect.EnumDescriptor { return file_game_proto_enumTypes[1].Descriptor() } func (GameHallPacketID) Type() protoreflect.EnumType { return &file_game_proto_enumTypes[1] } func (x GameHallPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GameHallPacketID.Descriptor instead. func (GameHallPacketID) EnumDescriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{1} } type DataType int32 const ( DataType_Zero DataType = 0 DataType_PrivateRoomList DataType = 1 // 竞技馆房间列表 返回消息 PACKET_SC_GETPRIVATEROOMLIST ) // Enum value maps for DataType. var ( DataType_name = map[int32]string{ 0: "Zero", 1: "PrivateRoomList", } DataType_value = map[string]int32{ "Zero": 0, "PrivateRoomList": 1, } ) func (x DataType) Enum() *DataType { p := new(DataType) *p = x return p } func (x DataType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DataType) Descriptor() protoreflect.EnumDescriptor { return file_game_proto_enumTypes[2].Descriptor() } func (DataType) Type() protoreflect.EnumType { return &file_game_proto_enumTypes[2] } func (x DataType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DataType.Descriptor instead. func (DataType) EnumDescriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{2} } //PACKET_CS_CREATEROOM type CSCreateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏模式 BaseCoin int32 `protobuf:"varint,2,opt,name=BaseCoin,proto3" json:"BaseCoin,omitempty"` //底分(tienlen) SceneMode int32 `protobuf:"varint,3,opt,name=SceneMode,proto3" json:"SceneMode,omitempty"` //牌桌类型 0.公共 2.私人 MaxPlayerNum int32 `protobuf:"varint,4,opt,name=MaxPlayerNum,proto3" json:"MaxPlayerNum,omitempty"` //人数(tienlen) // 房间参数 // 例如,十三水 参数规则定义在 data/gameconfig/thirteenfree.json中的Params,按Params声明顺序传参数 // [0,0,30,50,0] 4人,自动,摆牌30秒,底分50,没有癞子 // [1,1,90,50000,1] 8人,手动,摆牌90秒,底分50000,有癞子 Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` Id int32 `protobuf:"varint,6,opt,name=Id,proto3" json:"Id,omitempty"` // gamefreeid } func (x *CSCreateRoom) Reset() { *x = CSCreateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCreateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCreateRoom) ProtoMessage() {} func (x *CSCreateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSCreateRoom.ProtoReflect.Descriptor instead. func (*CSCreateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{0} } func (x *CSCreateRoom) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *CSCreateRoom) GetBaseCoin() int32 { if x != nil { return x.BaseCoin } return 0 } func (x *CSCreateRoom) GetSceneMode() int32 { if x != nil { return x.SceneMode } return 0 } func (x *CSCreateRoom) GetMaxPlayerNum() int32 { if x != nil { return x.MaxPlayerNum } return 0 } func (x *CSCreateRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *CSCreateRoom) GetId() int32 { if x != nil { return x.Id } return 0 } //PACKET_SC_CREATEROOM type SCCreateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏模式 BaseCoin int32 `protobuf:"varint,2,opt,name=BaseCoin,proto3" json:"BaseCoin,omitempty"` //底分 SceneMode int32 `protobuf:"varint,3,opt,name=SceneMode,proto3" json:"SceneMode,omitempty"` //牌桌类型 0.公共 2.私人 MaxPlayerNum int32 `protobuf:"varint,4,opt,name=MaxPlayerNum,proto3" json:"MaxPlayerNum,omitempty"` //人数 Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场参数 OpRetCode OpResultCode_Game `protobuf:"varint,6,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 } func (x *SCCreateRoom) Reset() { *x = SCCreateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCreateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCreateRoom) ProtoMessage() {} func (x *SCCreateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCCreateRoom.ProtoReflect.Descriptor instead. func (*SCCreateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{1} } func (x *SCCreateRoom) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCCreateRoom) GetBaseCoin() int32 { if x != nil { return x.BaseCoin } return 0 } func (x *SCCreateRoom) GetSceneMode() int32 { if x != nil { return x.SceneMode } return 0 } func (x *SCCreateRoom) GetMaxPlayerNum() int32 { if x != nil { return x.MaxPlayerNum } return 0 } func (x *SCCreateRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCCreateRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //PACKET_CS_ENTERROOM //PACKET_CS_AUDIENCE_ENTERROOM //玩家请求进入游戏 type CSEnterRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏编号 Password string `protobuf:"bytes,3,opt,name=Password,proto3" json:"Password,omitempty"` //房间密码 } func (x *CSEnterRoom) Reset() { *x = CSEnterRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSEnterRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSEnterRoom) ProtoMessage() {} func (x *CSEnterRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSEnterRoom.ProtoReflect.Descriptor instead. func (*CSEnterRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{2} } func (x *CSEnterRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *CSEnterRoom) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *CSEnterRoom) GetPassword() string { if x != nil { return x.Password } return "" } //PACKET_SC_ENTERROOM type SCEnterRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID ModeType int32 `protobuf:"varint,2,opt,name=ModeType,proto3" json:"ModeType,omitempty"` //游戏模式(玩法,已经不用了) Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场参数 RoomId int32 `protobuf:"varint,4,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 HallId int32 `protobuf:"varint,5,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id OpRetCode OpResultCode_Game `protobuf:"varint,6,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 ClubId int32 `protobuf:"varint,7,opt,name=ClubId,proto3" json:"ClubId,omitempty"` GameFreeId int32 `protobuf:"varint,8,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏场次id } func (x *SCEnterRoom) Reset() { *x = SCEnterRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEnterRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEnterRoom) ProtoMessage() {} func (x *SCEnterRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCEnterRoom.ProtoReflect.Descriptor instead. func (*SCEnterRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{3} } func (x *SCEnterRoom) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCEnterRoom) GetModeType() int32 { if x != nil { return x.ModeType } return 0 } func (x *SCEnterRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCEnterRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCEnterRoom) GetHallId() int32 { if x != nil { return x.HallId } return 0 } func (x *SCEnterRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCEnterRoom) GetClubId() int32 { if x != nil { return x.ClubId } return 0 } func (x *SCEnterRoom) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } //PACKET_CS_RETURNROOM type CSReturnRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApkVer int32 `protobuf:"varint,1,opt,name=ApkVer,proto3" json:"ApkVer,omitempty"` ResVer int32 `protobuf:"varint,2,opt,name=ResVer,proto3" json:"ResVer,omitempty"` IsLoaded bool `protobuf:"varint,3,opt,name=IsLoaded,proto3" json:"IsLoaded,omitempty"` RoomId int32 `protobuf:"varint,4,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //int32 LogicId = 5; //这个字段是冗余的 } func (x *CSReturnRoom) Reset() { *x = CSReturnRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSReturnRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSReturnRoom) ProtoMessage() {} func (x *CSReturnRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSReturnRoom.ProtoReflect.Descriptor instead. func (*CSReturnRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{4} } func (x *CSReturnRoom) GetApkVer() int32 { if x != nil { return x.ApkVer } return 0 } func (x *CSReturnRoom) GetResVer() int32 { if x != nil { return x.ResVer } return 0 } func (x *CSReturnRoom) GetIsLoaded() bool { if x != nil { return x.IsLoaded } return false } func (x *CSReturnRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } //PACKET_SC_RETURNROOM type SCReturnRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间ID GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID ModeType int32 `protobuf:"varint,4,opt,name=ModeType,proto3" json:"ModeType,omitempty"` //场类型 Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场参数 HallId int32 `protobuf:"varint,6,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id MinApkVer int32 `protobuf:"varint,7,opt,name=MinApkVer,proto3" json:"MinApkVer,omitempty"` //最低apk版本号 LatestApkVer int32 `protobuf:"varint,8,opt,name=LatestApkVer,proto3" json:"LatestApkVer,omitempty"` //最新apk版本号 MinResVer int32 `protobuf:"varint,9,opt,name=MinResVer,proto3" json:"MinResVer,omitempty"` //最低资源版本号 LatestResVer int32 `protobuf:"varint,10,opt,name=LatestResVer,proto3" json:"LatestResVer,omitempty"` //最新资源版本号 IsLoaded bool `protobuf:"varint,11,opt,name=IsLoaded,proto3" json:"IsLoaded,omitempty"` //加载完成标记 ClubId int32 `protobuf:"varint,12,opt,name=ClubId,proto3" json:"ClubId,omitempty"` } func (x *SCReturnRoom) Reset() { *x = SCReturnRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCReturnRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCReturnRoom) ProtoMessage() {} func (x *SCReturnRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCReturnRoom.ProtoReflect.Descriptor instead. func (*SCReturnRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{5} } func (x *SCReturnRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCReturnRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCReturnRoom) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCReturnRoom) GetModeType() int32 { if x != nil { return x.ModeType } return 0 } func (x *SCReturnRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCReturnRoom) GetHallId() int32 { if x != nil { return x.HallId } return 0 } func (x *SCReturnRoom) GetMinApkVer() int32 { if x != nil { return x.MinApkVer } return 0 } func (x *SCReturnRoom) GetLatestApkVer() int32 { if x != nil { return x.LatestApkVer } return 0 } func (x *SCReturnRoom) GetMinResVer() int32 { if x != nil { return x.MinResVer } return 0 } func (x *SCReturnRoom) GetLatestResVer() int32 { if x != nil { return x.LatestResVer } return 0 } func (x *SCReturnRoom) GetIsLoaded() bool { if x != nil { return x.IsLoaded } return false } func (x *SCReturnRoom) GetClubId() int32 { if x != nil { return x.ClubId } return 0 } //PACKET_CS_ENTERGAME type CSEnterGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //游戏id OpParams []int32 `protobuf:"varint,2,rep,packed,name=OpParams,proto3" json:"OpParams,omitempty"` Platform string `protobuf:"bytes,3,opt,name=Platform,proto3" json:"Platform,omitempty"` ApkVer int32 `protobuf:"varint,4,opt,name=ApkVer,proto3" json:"ApkVer,omitempty"` ResVer int32 `protobuf:"varint,5,opt,name=ResVer,proto3" json:"ResVer,omitempty"` } func (x *CSEnterGame) Reset() { *x = CSEnterGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSEnterGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSEnterGame) ProtoMessage() {} func (x *CSEnterGame) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSEnterGame.ProtoReflect.Descriptor instead. func (*CSEnterGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{6} } func (x *CSEnterGame) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *CSEnterGame) GetOpParams() []int32 { if x != nil { return x.OpParams } return nil } func (x *CSEnterGame) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSEnterGame) GetApkVer() int32 { if x != nil { return x.ApkVer } return 0 } func (x *CSEnterGame) GetResVer() int32 { if x != nil { return x.ResVer } return 0 } //PACKET_SC_ENTERGAME type SCEnterGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpCode,omitempty"` //操作码 Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // OpParams []int32 `protobuf:"varint,3,rep,packed,name=OpParams,proto3" json:"OpParams,omitempty"` MinApkVer int32 `protobuf:"varint,4,opt,name=MinApkVer,proto3" json:"MinApkVer,omitempty"` //最低apk版本号 LatestApkVer int32 `protobuf:"varint,5,opt,name=LatestApkVer,proto3" json:"LatestApkVer,omitempty"` //最新apk版本号 MinResVer int32 `protobuf:"varint,6,opt,name=MinResVer,proto3" json:"MinResVer,omitempty"` //最低资源版本号 LatestResVer int32 `protobuf:"varint,7,opt,name=LatestResVer,proto3" json:"LatestResVer,omitempty"` //最新资源版本号 } func (x *SCEnterGame) Reset() { *x = SCEnterGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEnterGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEnterGame) ProtoMessage() {} func (x *SCEnterGame) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCEnterGame.ProtoReflect.Descriptor instead. func (*SCEnterGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{7} } func (x *SCEnterGame) GetOpCode() OpResultCode_Game { if x != nil { return x.OpCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCEnterGame) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCEnterGame) GetOpParams() []int32 { if x != nil { return x.OpParams } return nil } func (x *SCEnterGame) GetMinApkVer() int32 { if x != nil { return x.MinApkVer } return 0 } func (x *SCEnterGame) GetLatestApkVer() int32 { if x != nil { return x.LatestApkVer } return 0 } func (x *SCEnterGame) GetMinResVer() int32 { if x != nil { return x.MinResVer } return 0 } func (x *SCEnterGame) GetLatestResVer() int32 { if x != nil { return x.LatestResVer } return 0 } //PACKET_CS_QUITGAME type CSQuitGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //游戏id IsAudience bool `protobuf:"varint,2,opt,name=IsAudience,proto3" json:"IsAudience,omitempty"` //是否是观众 } func (x *CSQuitGame) Reset() { *x = CSQuitGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSQuitGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSQuitGame) ProtoMessage() {} func (x *CSQuitGame) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSQuitGame.ProtoReflect.Descriptor instead. func (*CSQuitGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{8} } func (x *CSQuitGame) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *CSQuitGame) GetIsAudience() bool { if x != nil { return x.IsAudience } return false } //PACKET_SC_QUITGAME type SCQuitGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpCode,omitempty"` //操作码 Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` Reason int32 `protobuf:"varint,3,opt,name=Reason,proto3" json:"Reason,omitempty"` //原因 } func (x *SCQuitGame) Reset() { *x = SCQuitGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCQuitGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCQuitGame) ProtoMessage() {} func (x *SCQuitGame) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCQuitGame.ProtoReflect.Descriptor instead. func (*SCQuitGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{9} } func (x *SCQuitGame) GetOpCode() OpResultCode_Game { if x != nil { return x.OpCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCQuitGame) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCQuitGame) GetReason() int32 { if x != nil { return x.Reason } return 0 } type GameConfig1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LogicId int32 `protobuf:"varint,1,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //对应DB_GameFree.xlsx中的id LimitCoin int64 `protobuf:"varint,2,opt,name=LimitCoin,proto3" json:"LimitCoin,omitempty"` //进房下限 MaxCoinLimit int64 `protobuf:"varint,3,opt,name=MaxCoinLimit,proto3" json:"MaxCoinLimit,omitempty"` //入场上限 BaseScore int32 `protobuf:"varint,4,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //底分 OtherIntParams []int64 `protobuf:"varint,5,rep,packed,name=OtherIntParams,proto3" json:"OtherIntParams,omitempty"` //其他参数 BetScore int32 `protobuf:"varint,6,opt,name=BetScore,proto3" json:"BetScore,omitempty"` //押注限制 MaxBetCoin []int32 `protobuf:"varint,7,rep,packed,name=MaxBetCoin,proto3" json:"MaxBetCoin,omitempty"` //多门押注限制 MatchMode int32 `protobuf:"varint,8,opt,name=MatchMode,proto3" json:"MatchMode,omitempty"` //0:默认1:队列 LotteryCoin int64 `protobuf:"varint,9,opt,name=LotteryCoin,proto3" json:"LotteryCoin,omitempty"` //彩金池 LotteryCfg string `protobuf:"bytes,10,opt,name=LotteryCfg,proto3" json:"LotteryCfg,omitempty"` //彩金池配置 Status bool `protobuf:"varint,11,opt,name=Status,proto3" json:"Status,omitempty"` //游戏开关 全局开关&&平台开关 SceneType int32 `protobuf:"varint,12,opt,name=SceneType,proto3" json:"SceneType,omitempty"` // 场次类型 ChessGradeLimit []int32 `protobuf:"varint,13,rep,packed,name=ChessGradeLimit,proto3" json:"ChessGradeLimit,omitempty"` // 入场象棋积分限制区间 RankType int32 `protobuf:"varint,14,opt,name=RankType,proto3" json:"RankType,omitempty"` // 段位类型 SceneAdd int32 `protobuf:"varint,15,opt,name=SceneAdd,proto3" json:"SceneAdd,omitempty"` // 场次加成 } func (x *GameConfig1) Reset() { *x = GameConfig1{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameConfig1) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameConfig1) ProtoMessage() {} func (x *GameConfig1) ProtoReflect() protoreflect.Message { mi := &file_game_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 GameConfig1.ProtoReflect.Descriptor instead. func (*GameConfig1) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{10} } func (x *GameConfig1) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *GameConfig1) GetLimitCoin() int64 { if x != nil { return x.LimitCoin } return 0 } func (x *GameConfig1) GetMaxCoinLimit() int64 { if x != nil { return x.MaxCoinLimit } return 0 } func (x *GameConfig1) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *GameConfig1) GetOtherIntParams() []int64 { if x != nil { return x.OtherIntParams } return nil } func (x *GameConfig1) GetBetScore() int32 { if x != nil { return x.BetScore } return 0 } func (x *GameConfig1) GetMaxBetCoin() []int32 { if x != nil { return x.MaxBetCoin } return nil } func (x *GameConfig1) GetMatchMode() int32 { if x != nil { return x.MatchMode } return 0 } func (x *GameConfig1) GetLotteryCoin() int64 { if x != nil { return x.LotteryCoin } return 0 } func (x *GameConfig1) GetLotteryCfg() string { if x != nil { return x.LotteryCfg } return "" } func (x *GameConfig1) GetStatus() bool { if x != nil { return x.Status } return false } func (x *GameConfig1) GetSceneType() int32 { if x != nil { return x.SceneType } return 0 } func (x *GameConfig1) GetChessGradeLimit() []int32 { if x != nil { return x.ChessGradeLimit } return nil } func (x *GameConfig1) GetRankType() int32 { if x != nil { return x.RankType } return 0 } func (x *GameConfig1) GetSceneAdd() int32 { if x != nil { return x.SceneAdd } return 0 } //PACKET_CS_GETGAMECONFIG type CSGetGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台 Channel string `protobuf:"bytes,2,opt,name=Channel,proto3" json:"Channel,omitempty"` //渠道号 GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id } func (x *CSGetGameConfig) Reset() { *x = CSGetGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetGameConfig) ProtoMessage() {} func (x *CSGetGameConfig) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSGetGameConfig.ProtoReflect.Descriptor instead. func (*CSGetGameConfig) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{11} } func (x *CSGetGameConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CSGetGameConfig) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *CSGetGameConfig) GetGameId() int32 { if x != nil { return x.GameId } return 0 } type ChessRankInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` // 积分 Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 段位名称 } func (x *ChessRankInfo) Reset() { *x = ChessRankInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChessRankInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessRankInfo) ProtoMessage() {} func (x *ChessRankInfo) ProtoReflect() protoreflect.Message { mi := &file_game_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 ChessRankInfo.ProtoReflect.Descriptor instead. func (*ChessRankInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{12} } func (x *ChessRankInfo) GetScore() int32 { if x != nil { return x.Score } return 0 } func (x *ChessRankInfo) GetName() string { if x != nil { return x.Name } return "" } //PACKET_SC_GETGAMECONFIG type SCGetGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameCfg []*GameConfig1 `protobuf:"bytes,1,rep,name=GameCfg,proto3" json:"GameCfg,omitempty"` //指定游戏的配置信息 GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏Id ChessRanks []*ChessRankInfo `protobuf:"bytes,3,rep,name=ChessRanks,proto3" json:"ChessRanks,omitempty"` //段位表 } func (x *SCGetGameConfig) Reset() { *x = SCGetGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetGameConfig) ProtoMessage() {} func (x *SCGetGameConfig) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCGetGameConfig.ProtoReflect.Descriptor instead. func (*SCGetGameConfig) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{13} } func (x *SCGetGameConfig) GetGameCfg() []*GameConfig1 { if x != nil { return x.GameCfg } return nil } func (x *SCGetGameConfig) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCGetGameConfig) GetChessRanks() []*ChessRankInfo { if x != nil { return x.ChessRanks } return nil } //PACKET_SC_CHANGEGAMESTATUS == 2233 type SCChangeGameStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameCfg []*GameConfig1 `protobuf:"bytes,1,rep,name=GameCfg,proto3" json:"GameCfg,omitempty"` //全局游戏状态发生变动,且自身平台游戏转台处于开启 } func (x *SCChangeGameStatus) Reset() { *x = SCChangeGameStatus{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCChangeGameStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCChangeGameStatus) ProtoMessage() {} func (x *SCChangeGameStatus) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCChangeGameStatus.ProtoReflect.Descriptor instead. func (*SCChangeGameStatus) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{14} } func (x *SCChangeGameStatus) GetGameCfg() []*GameConfig1 { if x != nil { return x.GameCfg } return nil } //PACKET_SC_CHANGEENTRYSWITCH type SCChangeEntrySwitch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index int32 `protobuf:"varint,1,opt,name=Index,proto3" json:"Index,omitempty"` // 游戏id Switch []bool `protobuf:"varint,2,rep,packed,name=Switch,proto3" json:"Switch,omitempty"` // 0:游戏入口开关 1:hot开关 2:new开关 } func (x *SCChangeEntrySwitch) Reset() { *x = SCChangeEntrySwitch{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCChangeEntrySwitch) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCChangeEntrySwitch) ProtoMessage() {} func (x *SCChangeEntrySwitch) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCChangeEntrySwitch.ProtoReflect.Descriptor instead. func (*SCChangeEntrySwitch) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{15} } func (x *SCChangeEntrySwitch) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *SCChangeEntrySwitch) GetSwitch() []bool { if x != nil { return x.Switch } return nil } //创建竞技馆私人房间 //PACKET_CS_CREATEPRIVATEROOM type CSCreatePrivateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id RoomTypeId int32 `protobuf:"varint,2,opt,name=RoomTypeId,proto3" json:"RoomTypeId,omitempty"` //房间类型id RoomConfigId int32 `protobuf:"varint,3,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` //房间配置id Round int32 `protobuf:"varint,4,opt,name=Round,proto3" json:"Round,omitempty"` //局数 PlayerNum int32 `protobuf:"varint,5,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` //人数 NeedPassword int32 `protobuf:"varint,6,opt,name=NeedPassword,proto3" json:"NeedPassword,omitempty"` //是否需要密码 1需要 CostType int32 `protobuf:"varint,7,opt,name=CostType,proto3" json:"CostType,omitempty"` // 房卡支付方式 1AA 2房主 Voice int32 `protobuf:"varint,8,opt,name=Voice,proto3" json:"Voice,omitempty"` //是否开启语音 1开启 } func (x *CSCreatePrivateRoom) Reset() { *x = CSCreatePrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSCreatePrivateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSCreatePrivateRoom) ProtoMessage() {} func (x *CSCreatePrivateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSCreatePrivateRoom.ProtoReflect.Descriptor instead. func (*CSCreatePrivateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{16} } func (x *CSCreatePrivateRoom) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *CSCreatePrivateRoom) GetRoomTypeId() int32 { if x != nil { return x.RoomTypeId } return 0 } func (x *CSCreatePrivateRoom) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *CSCreatePrivateRoom) GetRound() int32 { if x != nil { return x.Round } return 0 } func (x *CSCreatePrivateRoom) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } func (x *CSCreatePrivateRoom) GetNeedPassword() int32 { if x != nil { return x.NeedPassword } return 0 } func (x *CSCreatePrivateRoom) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *CSCreatePrivateRoom) GetVoice() int32 { if x != nil { return x.Voice } return 0 } //PACKET_SC_CREATEPRIVATEROOM type SCCreatePrivateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id RoomTypeId int32 `protobuf:"varint,3,opt,name=RoomTypeId,proto3" json:"RoomTypeId,omitempty"` //房间类型id RoomConfigId int32 `protobuf:"varint,4,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` //房间配置id Round int32 `protobuf:"varint,5,opt,name=Round,proto3" json:"Round,omitempty"` //局数 PlayerNum int32 `protobuf:"varint,6,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` //人数 NeedPassword int32 `protobuf:"varint,7,opt,name=NeedPassword,proto3" json:"NeedPassword,omitempty"` //是否需要密码 1需要 CostType int32 `protobuf:"varint,8,opt,name=CostType,proto3" json:"CostType,omitempty"` //房卡支付方式 1AA 2房主 Voice int32 `protobuf:"varint,9,opt,name=Voice,proto3" json:"Voice,omitempty"` //是否开启语音 1开启 RoomId int32 `protobuf:"varint,10,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id Password string `protobuf:"bytes,11,opt,name=Password,proto3" json:"Password,omitempty"` //房间密码 } func (x *SCCreatePrivateRoom) Reset() { *x = SCCreatePrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCCreatePrivateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCCreatePrivateRoom) ProtoMessage() {} func (x *SCCreatePrivateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCCreatePrivateRoom.ProtoReflect.Descriptor instead. func (*SCCreatePrivateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{17} } func (x *SCCreatePrivateRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCCreatePrivateRoom) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCCreatePrivateRoom) GetRoomTypeId() int32 { if x != nil { return x.RoomTypeId } return 0 } func (x *SCCreatePrivateRoom) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *SCCreatePrivateRoom) GetRound() int32 { if x != nil { return x.Round } return 0 } func (x *SCCreatePrivateRoom) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } func (x *SCCreatePrivateRoom) GetNeedPassword() int32 { if x != nil { return x.NeedPassword } return 0 } func (x *SCCreatePrivateRoom) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *SCCreatePrivateRoom) GetVoice() int32 { if x != nil { return x.Voice } return 0 } func (x *SCCreatePrivateRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCCreatePrivateRoom) GetPassword() string { if x != nil { return x.Password } return "" } //PACKET_CS_GETPRIVATEROOMLIST type CSGetPrivateRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomConfigId int32 `protobuf:"varint,1,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` //房间配置id GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` // 场次id RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` // 房间id RoomTypeId int32 `protobuf:"varint,4,opt,name=RoomTypeId,proto3" json:"RoomTypeId,omitempty"` // 玩法类型id } func (x *CSGetPrivateRoomList) Reset() { *x = CSGetPrivateRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetPrivateRoomList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetPrivateRoomList) ProtoMessage() {} func (x *CSGetPrivateRoomList) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSGetPrivateRoomList.ProtoReflect.Descriptor instead. func (*CSGetPrivateRoomList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{18} } func (x *CSGetPrivateRoomList) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *CSGetPrivateRoomList) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *CSGetPrivateRoomList) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *CSGetPrivateRoomList) GetRoomTypeId() int32 { if x != nil { return x.RoomTypeId } return 0 } type PrivatePlayerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 玩家昵称 UseRoleId int32 `protobuf:"varint,3,opt,name=UseRoleId,proto3" json:"UseRoleId,omitempty"` //使用的人物模型id } func (x *PrivatePlayerInfo) Reset() { *x = PrivatePlayerInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivatePlayerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivatePlayerInfo) ProtoMessage() {} func (x *PrivatePlayerInfo) ProtoReflect() protoreflect.Message { mi := &file_game_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 PrivatePlayerInfo.ProtoReflect.Descriptor instead. func (*PrivatePlayerInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{19} } func (x *PrivatePlayerInfo) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PrivatePlayerInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *PrivatePlayerInfo) GetUseRoleId() int32 { if x != nil { return x.UseRoleId } return 0 } //个人创建的房间信息 type PrivateRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //场次id GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id RoomTypeId int32 `protobuf:"varint,3,opt,name=RoomTypeId,proto3" json:"RoomTypeId,omitempty"` //玩法类型id RoomConfigId int32 `protobuf:"varint,4,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` //房间配置id RoomId int32 `protobuf:"varint,5,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间号 NeedPassword int32 `protobuf:"varint,6,opt,name=NeedPassword,proto3" json:"NeedPassword,omitempty"` //是否需要密码 1是 CurrRound int32 `protobuf:"varint,7,opt,name=CurrRound,proto3" json:"CurrRound,omitempty"` //当前第几轮 MaxRound int32 `protobuf:"varint,8,opt,name=MaxRound,proto3" json:"MaxRound,omitempty"` //最大轮数 CurrNum int32 `protobuf:"varint,9,opt,name=CurrNum,proto3" json:"CurrNum,omitempty"` //当前人数 MaxPlayer int32 `protobuf:"varint,10,opt,name=MaxPlayer,proto3" json:"MaxPlayer,omitempty"` //最大人数 CreateTs int64 `protobuf:"varint,11,opt,name=CreateTs,proto3" json:"CreateTs,omitempty"` //创建时间戳 State int32 `protobuf:"varint,12,opt,name=State,proto3" json:"State,omitempty"` //房间状态 0等待中 1进行中 2已结束 Players []*PrivatePlayerInfo `protobuf:"bytes,13,rep,name=Players,proto3" json:"Players,omitempty"` //玩家列表 IsSystem bool `protobuf:"varint,14,opt,name=IsSystem,proto3" json:"IsSystem,omitempty"` //是否系统创建 } func (x *PrivateRoomInfo) Reset() { *x = PrivateRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateRoomInfo) ProtoMessage() {} func (x *PrivateRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_game_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 PrivateRoomInfo.ProtoReflect.Descriptor instead. func (*PrivateRoomInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{20} } func (x *PrivateRoomInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *PrivateRoomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *PrivateRoomInfo) GetRoomTypeId() int32 { if x != nil { return x.RoomTypeId } return 0 } func (x *PrivateRoomInfo) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *PrivateRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *PrivateRoomInfo) GetNeedPassword() int32 { if x != nil { return x.NeedPassword } return 0 } func (x *PrivateRoomInfo) GetCurrRound() int32 { if x != nil { return x.CurrRound } return 0 } func (x *PrivateRoomInfo) GetMaxRound() int32 { if x != nil { return x.MaxRound } return 0 } func (x *PrivateRoomInfo) GetCurrNum() int32 { if x != nil { return x.CurrNum } return 0 } func (x *PrivateRoomInfo) GetMaxPlayer() int32 { if x != nil { return x.MaxPlayer } return 0 } func (x *PrivateRoomInfo) GetCreateTs() int64 { if x != nil { return x.CreateTs } return 0 } func (x *PrivateRoomInfo) GetState() int32 { if x != nil { return x.State } return 0 } func (x *PrivateRoomInfo) GetPlayers() []*PrivatePlayerInfo { if x != nil { return x.Players } return nil } func (x *PrivateRoomInfo) GetIsSystem() bool { if x != nil { return x.IsSystem } return false } //PACKET_SC_GETPRIVATEROOMLIST type SCGetPrivateRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 0所有配置 1更新 2新增 3删除 Datas []*PrivateRoomInfo `protobuf:"bytes,2,rep,name=Datas,proto3" json:"Datas,omitempty"` //房间列表 } func (x *SCGetPrivateRoomList) Reset() { *x = SCGetPrivateRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetPrivateRoomList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetPrivateRoomList) ProtoMessage() {} func (x *SCGetPrivateRoomList) ProtoReflect() protoreflect.Message { mi := &file_game_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 SCGetPrivateRoomList.ProtoReflect.Descriptor instead. func (*SCGetPrivateRoomList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{21} } func (x *SCGetPrivateRoomList) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *SCGetPrivateRoomList) GetDatas() []*PrivateRoomInfo { if x != nil { return x.Datas } return nil } //PACKET_CS_QUERYROOMINFO type CSQueryRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameIds []int32 `protobuf:"varint,1,rep,packed,name=GameIds,proto3" json:"GameIds,omitempty"` GameSite int32 `protobuf:"varint,2,opt,name=GameSite,proto3" json:"GameSite,omitempty"` //1.初级 2.中级 3.高级 Id []int32 `protobuf:"varint,3,rep,packed,name=Id,proto3" json:"Id,omitempty"` //gamefreeid SceneMode int32 `protobuf:"varint,4,opt,name=SceneMode,proto3" json:"SceneMode,omitempty"` // 0公共房 2私人房 } func (x *CSQueryRoomInfo) Reset() { *x = CSQueryRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSQueryRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSQueryRoomInfo) ProtoMessage() {} func (x *CSQueryRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_game_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 CSQueryRoomInfo.ProtoReflect.Descriptor instead. func (*CSQueryRoomInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{22} } func (x *CSQueryRoomInfo) GetGameIds() []int32 { if x != nil { return x.GameIds } return nil } func (x *CSQueryRoomInfo) GetGameSite() int32 { if x != nil { return x.GameSite } return 0 } func (x *CSQueryRoomInfo) GetId() []int32 { if x != nil { return x.Id } return nil } func (x *CSQueryRoomInfo) GetSceneMode() int32 { if x != nil { return x.SceneMode } return 0 } //自由桌房间信息 type QRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 BaseCoin int64 `protobuf:"varint,4,opt,name=BaseCoin,proto3" json:"BaseCoin,omitempty"` LimitCoin int64 `protobuf:"varint,5,opt,name=LimitCoin,proto3" json:"LimitCoin,omitempty"` CurrNum int32 `protobuf:"varint,6,opt,name=CurrNum,proto3" json:"CurrNum,omitempty"` //当前人数 MaxPlayer int32 `protobuf:"varint,7,opt,name=MaxPlayer,proto3" json:"MaxPlayer,omitempty"` //最大人数 Creator int32 `protobuf:"varint,8,opt,name=Creator,proto3" json:"Creator,omitempty"` CreateTs int32 `protobuf:"varint,9,opt,name=CreateTs,proto3" json:"CreateTs,omitempty"` //创建时间戳 Params []int32 `protobuf:"varint,10,rep,packed,name=Params,proto3" json:"Params,omitempty"` // 建房参数 } func (x *QRoomInfo) Reset() { *x = QRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*QRoomInfo) ProtoMessage() {} func (x *QRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_game_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 QRoomInfo.ProtoReflect.Descriptor instead. func (*QRoomInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{23} } func (x *QRoomInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *QRoomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *QRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *QRoomInfo) GetBaseCoin() int64 { if x != nil { return x.BaseCoin } return 0 } func (x *QRoomInfo) GetLimitCoin() int64 { if x != nil { return x.LimitCoin } return 0 } func (x *QRoomInfo) GetCurrNum() int32 { if x != nil { return x.CurrNum } return 0 } func (x *QRoomInfo) GetMaxPlayer() int32 { if x != nil { return x.MaxPlayer } return 0 } func (x *QRoomInfo) GetCreator() int32 { if x != nil { return x.Creator } return 0 } func (x *QRoomInfo) GetCreateTs() int32 { if x != nil { return x.CreateTs } return 0 } func (x *QRoomInfo) GetParams() []int32 { if x != nil { return x.Params } return nil } //PACKET_SC_QUERYROOMINFO type SCQueryRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameIds []int32 `protobuf:"varint,1,rep,packed,name=GameIds,proto3" json:"GameIds,omitempty"` GameSite int32 `protobuf:"varint,2,opt,name=GameSite,proto3" json:"GameSite,omitempty"` //1.初级 2.中级 3.高级 RoomInfo []*QRoomInfo `protobuf:"bytes,3,rep,name=RoomInfo,proto3" json:"RoomInfo,omitempty"` //房间列表 OpRetCode OpResultCode_Game `protobuf:"varint,4,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 } func (x *SCQueryRoomInfo) Reset() { *x = SCQueryRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCQueryRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCQueryRoomInfo) ProtoMessage() {} func (x *SCQueryRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[24] 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 SCQueryRoomInfo.ProtoReflect.Descriptor instead. func (*SCQueryRoomInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{24} } func (x *SCQueryRoomInfo) GetGameIds() []int32 { if x != nil { return x.GameIds } return nil } func (x *SCQueryRoomInfo) GetGameSite() int32 { if x != nil { return x.GameSite } return 0 } func (x *SCQueryRoomInfo) GetRoomInfo() []*QRoomInfo { if x != nil { return x.RoomInfo } return nil } func (x *SCQueryRoomInfo) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } type GameState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` Ts int64 `protobuf:"varint,2,opt,name=Ts,proto3" json:"Ts,omitempty"` Sec int32 `protobuf:"varint,3,opt,name=Sec,proto3" json:"Sec,omitempty"` } func (x *GameState) Reset() { *x = GameState{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameState) ProtoMessage() {} func (x *GameState) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[25] 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 GameState.ProtoReflect.Descriptor instead. func (*GameState) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{25} } func (x *GameState) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GameState) GetTs() int64 { if x != nil { return x.Ts } return 0 } func (x *GameState) GetSec() int32 { if x != nil { return x.Sec } return 0 } //PACKET_SC_GAMESTATE type SCGameState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*GameState `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *SCGameState) Reset() { *x = SCGameState{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGameState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGameState) ProtoMessage() {} func (x *SCGameState) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[26] 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 SCGameState.ProtoReflect.Descriptor instead. func (*SCGameState) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{26} } func (x *SCGameState) GetList() []*GameState { if x != nil { return x.List } return nil } //PACKET_CS_AUDIENCESIT type CSAudienceSit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房号 } func (x *CSAudienceSit) Reset() { *x = CSAudienceSit{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSAudienceSit) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSAudienceSit) ProtoMessage() {} func (x *CSAudienceSit) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[27] 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 CSAudienceSit.ProtoReflect.Descriptor instead. func (*CSAudienceSit) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{27} } func (x *CSAudienceSit) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } //PACKET_SC_AUDIENCESIT type SCAudienceSit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房号 OpCode OpResultCode_Game `protobuf:"varint,2,opt,name=OpCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpCode,omitempty"` //操作码 } func (x *SCAudienceSit) Reset() { *x = SCAudienceSit{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCAudienceSit) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCAudienceSit) ProtoMessage() {} func (x *SCAudienceSit) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[28] 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 SCAudienceSit.ProtoReflect.Descriptor instead. func (*SCAudienceSit) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{28} } func (x *SCAudienceSit) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCAudienceSit) GetOpCode() OpResultCode_Game { if x != nil { return x.OpCode } return OpResultCode_Game_OPRC_Sucess_Game } //PACKET_CS_COMNOTICE type CSRecordAndNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PageNo int32 `protobuf:"varint,1,opt,name=PageNo,proto3" json:"PageNo,omitempty"` // 页码 PageSize int32 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 Opt int32 `protobuf:"varint,3,opt,name=Opt,proto3" json:"Opt,omitempty"` // 操作 0查询公告 1 获取战绩列表 2 获取当日战绩 StartTime int64 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` } func (x *CSRecordAndNotice) Reset() { *x = CSRecordAndNotice{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRecordAndNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRecordAndNotice) ProtoMessage() {} func (x *CSRecordAndNotice) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[29] 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 CSRecordAndNotice.ProtoReflect.Descriptor instead. func (*CSRecordAndNotice) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{29} } func (x *CSRecordAndNotice) GetPageNo() int32 { if x != nil { return x.PageNo } return 0 } func (x *CSRecordAndNotice) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *CSRecordAndNotice) GetOpt() int32 { if x != nil { return x.Opt } return 0 } func (x *CSRecordAndNotice) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } type CommonNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sort int32 `protobuf:"varint,1,opt,name=Sort,proto3" json:"Sort,omitempty"` Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` TypeName string `protobuf:"bytes,4,opt,name=TypeName,proto3" json:"TypeName,omitempty"` Type int32 `protobuf:"varint,5,opt,name=Type,proto3" json:"Type,omitempty"` StartTime int32 `protobuf:"varint,6,opt,name=StartTime,proto3" json:"StartTime,omitempty"` EndTime int32 `protobuf:"varint,7,opt,name=EndTime,proto3" json:"EndTime,omitempty"` Platform string `protobuf:"bytes,8,opt,name=Platform,proto3" json:"Platform,omitempty"` CategoryType int32 `protobuf:"varint,9,opt,name=CategoryType,proto3" json:"CategoryType,omitempty"` ImgUrl string `protobuf:"bytes,10,opt,name=ImgUrl,proto3" json:"ImgUrl,omitempty"` NoticeId int32 `protobuf:"varint,11,opt,name=NoticeId,proto3" json:"NoticeId,omitempty"` IsLoop int32 `protobuf:"varint,12,opt,name=IsLoop,proto3" json:"IsLoop,omitempty"` LoopTime int32 `protobuf:"varint,13,opt,name=LoopTime,proto3" json:"LoopTime,omitempty"` OnChannelName []string `protobuf:"bytes,14,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` Url string `protobuf:"bytes,15,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *CommonNotice) Reset() { *x = CommonNotice{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonNotice) ProtoMessage() {} func (x *CommonNotice) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[30] 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 CommonNotice.ProtoReflect.Descriptor instead. func (*CommonNotice) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{30} } func (x *CommonNotice) GetSort() int32 { if x != nil { return x.Sort } return 0 } func (x *CommonNotice) GetTitle() string { if x != nil { return x.Title } return "" } func (x *CommonNotice) GetContent() string { if x != nil { return x.Content } return "" } func (x *CommonNotice) GetTypeName() string { if x != nil { return x.TypeName } return "" } func (x *CommonNotice) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *CommonNotice) GetStartTime() int32 { if x != nil { return x.StartTime } return 0 } func (x *CommonNotice) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *CommonNotice) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CommonNotice) GetCategoryType() int32 { if x != nil { return x.CategoryType } return 0 } func (x *CommonNotice) GetImgUrl() string { if x != nil { return x.ImgUrl } return "" } func (x *CommonNotice) GetNoticeId() int32 { if x != nil { return x.NoticeId } return 0 } func (x *CommonNotice) GetIsLoop() int32 { if x != nil { return x.IsLoop } return 0 } func (x *CommonNotice) GetLoopTime() int32 { if x != nil { return x.LoopTime } return 0 } func (x *CommonNotice) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *CommonNotice) GetUrl() string { if x != nil { return x.Url } return "" } type PlayerRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeid int32 `protobuf:"varint,1,opt,name=GameFreeid,proto3" json:"GameFreeid,omitempty"` // 游戏类型 GameDetailedLogId string `protobuf:"bytes,2,opt,name=GameDetailedLogId,proto3" json:"GameDetailedLogId,omitempty"` // 游戏记录id TotalIn int64 `protobuf:"varint,3,opt,name=TotalIn,proto3" json:"TotalIn,omitempty"` //本局投入 TotalOut int64 `protobuf:"varint,4,opt,name=TotalOut,proto3" json:"TotalOut,omitempty"` //本局产出 Ts int32 `protobuf:"varint,5,opt,name=Ts,proto3" json:"Ts,omitempty"` //记录时间 MatchType int32 `protobuf:"varint,6,opt,name=MatchType,proto3" json:"MatchType,omitempty"` //0.普通场 1.锦标赛 2.冠军赛 3.vip专属 } func (x *PlayerRecord) Reset() { *x = PlayerRecord{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerRecord) ProtoMessage() {} func (x *PlayerRecord) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[31] 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 PlayerRecord.ProtoReflect.Descriptor instead. func (*PlayerRecord) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{31} } func (x *PlayerRecord) GetGameFreeid() int32 { if x != nil { return x.GameFreeid } return 0 } func (x *PlayerRecord) GetGameDetailedLogId() string { if x != nil { return x.GameDetailedLogId } return "" } func (x *PlayerRecord) GetTotalIn() int64 { if x != nil { return x.TotalIn } return 0 } func (x *PlayerRecord) GetTotalOut() int64 { if x != nil { return x.TotalOut } return 0 } func (x *PlayerRecord) GetTs() int32 { if x != nil { return x.Ts } return 0 } func (x *PlayerRecord) GetMatchType() int32 { if x != nil { return x.MatchType } return 0 } //PACKET_SC_COMNOTICE type SCRecordAndNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpCode,omitempty"` // 操作码 List []*CommonNotice `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` // 公告信息 Glist []*PlayerRecord `protobuf:"bytes,3,rep,name=Glist,proto3" json:"Glist,omitempty"` // 战绩 GlistTs []int64 `protobuf:"varint,4,rep,packed,name=GlistTs,proto3" json:"GlistTs,omitempty"` // 战绩日期列表 } func (x *SCRecordAndNotice) Reset() { *x = SCRecordAndNotice{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRecordAndNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRecordAndNotice) ProtoMessage() {} func (x *SCRecordAndNotice) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[32] 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 SCRecordAndNotice.ProtoReflect.Descriptor instead. func (*SCRecordAndNotice) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{32} } func (x *SCRecordAndNotice) GetOpCode() OpResultCode_Game { if x != nil { return x.OpCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCRecordAndNotice) GetList() []*CommonNotice { if x != nil { return x.List } return nil } func (x *SCRecordAndNotice) GetGlist() []*PlayerRecord { if x != nil { return x.Glist } return nil } func (x *SCRecordAndNotice) GetGlistTs() []int64 { if x != nil { return x.GlistTs } return nil } // PACKET_SC_NoticeChange type SCNoticeChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SCNoticeChange) Reset() { *x = SCNoticeChange{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCNoticeChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCNoticeChange) ProtoMessage() {} func (x *SCNoticeChange) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[33] 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 SCNoticeChange.ProtoReflect.Descriptor instead. func (*SCNoticeChange) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{33} } //PACKET_CS_DESTROYROOM type CSDestroyRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSDestroyRoom) Reset() { *x = CSDestroyRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSDestroyRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSDestroyRoom) ProtoMessage() {} func (x *CSDestroyRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[34] 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 CSDestroyRoom.ProtoReflect.Descriptor instead. func (*CSDestroyRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{34} } //PACKET_SC_DESTROYROOM type SCDestroyRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 OpRetCode OpResultCode_Game `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 IsForce int32 `protobuf:"varint,3,opt,name=IsForce,proto3" json:"IsForce,omitempty"` //是否强制销毁 } func (x *SCDestroyRoom) Reset() { *x = SCDestroyRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDestroyRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDestroyRoom) ProtoMessage() {} func (x *SCDestroyRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[35] 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 SCDestroyRoom.ProtoReflect.Descriptor instead. func (*SCDestroyRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{35} } func (x *SCDestroyRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCDestroyRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCDestroyRoom) GetIsForce() int32 { if x != nil { return x.IsForce } return 0 } //PACKET_CS_LEAVEROOM //PACKET_CS_AUDIENCE_LEAVEROOM //玩家离开房间,返回大厅 type CSLeaveRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mode int32 `protobuf:"varint,1,opt,name=Mode,proto3" json:"Mode,omitempty"` //离开方式 0:退出 1:暂离(占着座位,返回大厅) } func (x *CSLeaveRoom) Reset() { *x = CSLeaveRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLeaveRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLeaveRoom) ProtoMessage() {} func (x *CSLeaveRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[36] 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 CSLeaveRoom.ProtoReflect.Descriptor instead. func (*CSLeaveRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{36} } func (x *CSLeaveRoom) GetMode() int32 { if x != nil { return x.Mode } return 0 } //PACKET_SC_LEAVEROOM type SCLeaveRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 Reason int32 `protobuf:"varint,2,opt,name=Reason,proto3" json:"Reason,omitempty"` //原因 0:主动退出 1:被踢出 RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间ID Mode int32 `protobuf:"varint,4,opt,name=Mode,proto3" json:"Mode,omitempty"` } func (x *SCLeaveRoom) Reset() { *x = SCLeaveRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLeaveRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLeaveRoom) ProtoMessage() {} func (x *SCLeaveRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[37] 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 SCLeaveRoom.ProtoReflect.Descriptor instead. func (*SCLeaveRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{37} } func (x *SCLeaveRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCLeaveRoom) GetReason() int32 { if x != nil { return x.Reason } return 0 } func (x *SCLeaveRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCLeaveRoom) GetMode() int32 { if x != nil { return x.Mode } return 0 } //PACKET_CS_FORCESTART type CSForceStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSForceStart) Reset() { *x = CSForceStart{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSForceStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSForceStart) ProtoMessage() {} func (x *CSForceStart) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[38] 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 CSForceStart.ProtoReflect.Descriptor instead. func (*CSForceStart) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{38} } //PACKET_SC_FORCESTART type SCForceStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpRetCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 } func (x *SCForceStart) Reset() { *x = SCForceStart{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCForceStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCForceStart) ProtoMessage() {} func (x *SCForceStart) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[39] 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 SCForceStart.ProtoReflect.Descriptor instead. func (*SCForceStart) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{39} } func (x *SCForceStart) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //玩家设置标记 //PACKET_CS_PLAYER_SWITCHFLAG type CSPlayerSwithFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Flag int32 `protobuf:"varint,1,opt,name=Flag,proto3" json:"Flag,omitempty"` Mark int32 `protobuf:"varint,2,opt,name=Mark,proto3" json:"Mark,omitempty"` //1:设置 0:取消 } func (x *CSPlayerSwithFlag) Reset() { *x = CSPlayerSwithFlag{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPlayerSwithFlag) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPlayerSwithFlag) ProtoMessage() {} func (x *CSPlayerSwithFlag) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[40] 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 CSPlayerSwithFlag.ProtoReflect.Descriptor instead. func (*CSPlayerSwithFlag) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{40} } func (x *CSPlayerSwithFlag) GetFlag() int32 { if x != nil { return x.Flag } return 0 } func (x *CSPlayerSwithFlag) GetMark() int32 { if x != nil { return x.Mark } return 0 } // PACKET_CSRoomEvent type CSRoomEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 事件类型 1普通消息 2互动表情 Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 Param []int32 `protobuf:"varint,4,rep,packed,name=Param,proto3" json:"Param,omitempty"` // 参数 互动表情Id } func (x *CSRoomEvent) Reset() { *x = CSRoomEvent{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRoomEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRoomEvent) ProtoMessage() {} func (x *CSRoomEvent) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[41] 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 CSRoomEvent.ProtoReflect.Descriptor instead. func (*CSRoomEvent) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{41} } func (x *CSRoomEvent) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *CSRoomEvent) GetContent() string { if x != nil { return x.Content } return "" } func (x *CSRoomEvent) GetParam() []int32 { if x != nil { return x.Param } return nil } type SCRoomEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OpCode OpResultCode_Game `protobuf:"varint,1,opt,name=OpCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpCode,omitempty"` // 操作码 Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 类型 Pos int32 `protobuf:"varint,3,opt,name=Pos,proto3" json:"Pos,omitempty"` // 发送者位置 Content string `protobuf:"bytes,4,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 Param []int32 `protobuf:"varint,5,rep,packed,name=Param,proto3" json:"Param,omitempty"` // 参数 Ts int64 `protobuf:"varint,6,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间戳 } func (x *SCRoomEvent) Reset() { *x = SCRoomEvent{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRoomEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRoomEvent) ProtoMessage() {} func (x *SCRoomEvent) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[42] 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 SCRoomEvent.ProtoReflect.Descriptor instead. func (*SCRoomEvent) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{42} } func (x *SCRoomEvent) GetOpCode() OpResultCode_Game { if x != nil { return x.OpCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCRoomEvent) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *SCRoomEvent) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *SCRoomEvent) GetContent() string { if x != nil { return x.Content } return "" } func (x *SCRoomEvent) GetParam() []int32 { if x != nil { return x.Param } return nil } func (x *SCRoomEvent) GetTs() int64 { if x != nil { return x.Ts } return 0 } type ItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // id Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 数量 } func (x *ItemInfo) Reset() { *x = ItemInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemInfo) ProtoMessage() {} func (x *ItemInfo) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[43] 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 ItemInfo.ProtoReflect.Descriptor instead. func (*ItemInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{43} } func (x *ItemInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ItemInfo) GetNum() int32 { if x != nil { return x.Num } return 0 } // PACKET_CSTouchType // 每10秒发送一次,保持更新 type CSTouchType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp DataType `protobuf:"varint,1,opt,name=Tp,proto3,enum=gamehall.DataType" json:"Tp,omitempty"` // 保持更新类型 // Tp: Params // 1: 房间配置id Params []int32 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` } func (x *CSTouchType) Reset() { *x = CSTouchType{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSTouchType) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSTouchType) ProtoMessage() {} func (x *CSTouchType) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[44] 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 CSTouchType.ProtoReflect.Descriptor instead. func (*CSTouchType) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{44} } func (x *CSTouchType) GetTp() DataType { if x != nil { return x.Tp } return DataType_Zero } func (x *CSTouchType) GetParams() []int32 { if x != nil { return x.Params } return nil } type RoomConfigInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 配置id Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 配置名称 RoomType int32 `protobuf:"varint,4,opt,name=RoomType,proto3" json:"RoomType,omitempty"` // 房间类型id, RoomTypeInfo.Id On int32 `protobuf:"varint,5,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 SortId int32 `protobuf:"varint,6,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序ID Cost []*ItemInfo `protobuf:"bytes,7,rep,name=Cost,proto3" json:"Cost,omitempty"` // 进入房间消耗 Reward []*ItemInfo `protobuf:"bytes,8,rep,name=Reward,proto3" json:"Reward,omitempty"` // 进入房间奖励 OnChannelName []string `protobuf:"bytes,9,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启的渠道名称 GameFreeId []int32 `protobuf:"varint,10,rep,packed,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` // 场次id Round []int32 `protobuf:"varint,11,rep,packed,name=Round,proto3" json:"Round,omitempty"` // 局数 PlayerNum []int32 `protobuf:"varint,12,rep,packed,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` // 人数 NeedPassword int32 `protobuf:"varint,13,opt,name=NeedPassword,proto3" json:"NeedPassword,omitempty"` // 是否需要密码 1是 2否 3自定义 CostType int32 `protobuf:"varint,14,opt,name=CostType,proto3" json:"CostType,omitempty"` // 消耗类型 1AA 2房主 3自定义 Voice int32 `protobuf:"varint,15,opt,name=Voice,proto3" json:"Voice,omitempty"` // 是否开启语音 1是 2否 3自定义 ImageURI string `protobuf:"bytes,16,opt,name=ImageURI,proto3" json:"ImageURI,omitempty"` // 奖励图片 } func (x *RoomConfigInfo) Reset() { *x = RoomConfigInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomConfigInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomConfigInfo) ProtoMessage() {} func (x *RoomConfigInfo) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[45] 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 RoomConfigInfo.ProtoReflect.Descriptor instead. func (*RoomConfigInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{45} } func (x *RoomConfigInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RoomConfigInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomConfigInfo) GetRoomType() int32 { if x != nil { return x.RoomType } return 0 } func (x *RoomConfigInfo) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *RoomConfigInfo) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *RoomConfigInfo) GetCost() []*ItemInfo { if x != nil { return x.Cost } return nil } func (x *RoomConfigInfo) GetReward() []*ItemInfo { if x != nil { return x.Reward } return nil } func (x *RoomConfigInfo) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *RoomConfigInfo) GetGameFreeId() []int32 { if x != nil { return x.GameFreeId } return nil } func (x *RoomConfigInfo) GetRound() []int32 { if x != nil { return x.Round } return nil } func (x *RoomConfigInfo) GetPlayerNum() []int32 { if x != nil { return x.PlayerNum } return nil } func (x *RoomConfigInfo) GetNeedPassword() int32 { if x != nil { return x.NeedPassword } return 0 } func (x *RoomConfigInfo) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *RoomConfigInfo) GetVoice() int32 { if x != nil { return x.Voice } return 0 } func (x *RoomConfigInfo) GetImageURI() string { if x != nil { return x.ImageURI } return "" } type RoomTypeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // id Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 类型名称 On int32 `protobuf:"varint,3,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 SortId int32 `protobuf:"varint,4,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序ID List []*RoomConfigInfo `protobuf:"bytes,5,rep,name=List,proto3" json:"List,omitempty"` // 房间配置列表 } func (x *RoomTypeInfo) Reset() { *x = RoomTypeInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomTypeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomTypeInfo) ProtoMessage() {} func (x *RoomTypeInfo) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[46] 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 RoomTypeInfo.ProtoReflect.Descriptor instead. func (*RoomTypeInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{46} } func (x *RoomTypeInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RoomTypeInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomTypeInfo) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *RoomTypeInfo) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *RoomTypeInfo) GetList() []*RoomConfigInfo { if x != nil { return x.List } return nil } // PACKET_CSRoomConfig type CSRoomConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSRoomConfig) Reset() { *x = CSRoomConfig{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSRoomConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSRoomConfig) ProtoMessage() {} func (x *CSRoomConfig) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[47] 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 CSRoomConfig.ProtoReflect.Descriptor instead. func (*CSRoomConfig) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{47} } // PACKET_SCRoomConfig 竞技馆房间配置 type SCRoomConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*RoomTypeInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *SCRoomConfig) Reset() { *x = SCRoomConfig{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRoomConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRoomConfig) ProtoMessage() {} func (x *SCRoomConfig) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[48] 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 SCRoomConfig.ProtoReflect.Descriptor instead. func (*SCRoomConfig) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{48} } func (x *SCRoomConfig) GetList() []*RoomTypeInfo { if x != nil { return x.List } return nil } var File_game_proto protoreflect.FileDescriptor var file_game_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x43, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 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, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 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, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x59, 0x0a, 0x0b, 0x43, 0x53, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xfc, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x0c, 0x43, 0x53, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xfd, 0x02, 0x0a, 0x0c, 0x53, 0x43, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 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, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 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, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x43, 0x53, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x0a, 0x43, 0x53, 0x51, 0x75, 0x69, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x69, 0x0a, 0x0a, 0x53, 0x43, 0x51, 0x75, 0x69, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xe3, 0x03, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x66, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 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, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x22, 0x5f, 0x0a, 0x0f, 0x43, 0x53, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x45, 0x0a, 0x12, 0x53, 0x43, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0x43, 0x0a, 0x13, 0x53, 0x43, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x83, 0x02, 0x0a, 0x13, 0x43, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xf2, 0x02, 0x0a, 0x13, 0x53, 0x43, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x43, 0x53, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xc0, 0x03, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x75, 0x72, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x57, 0x0a, 0x14, 0x53, 0x43, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x2f, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x75, 0x0a, 0x0f, 0x43, 0x53, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x02, 0x0a, 0x09, 0x51, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x75, 0x72, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x51, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x63, 0x22, 0x36, 0x0a, 0x0b, 0x53, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x0d, 0x43, 0x53, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x0d, 0x53, 0x43, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x74, 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, 0x33, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x77, 0x0a, 0x11, 0x43, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x67, 0x65, 0x4e, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x70, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0xc0, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x47, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x47, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x47, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x43, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x43, 0x53, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x7c, 0x0a, 0x0d, 0x53, 0x43, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x0b, 0x43, 0x53, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x49, 0x0a, 0x0c, 0x53, 0x43, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4d, 0x61, 0x72, 0x6b, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0xa4, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x49, 0x0a, 0x0b, 0x43, 0x53, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x54, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb8, 0x03, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3a, 0x0a, 0x0c, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0xb1, 0x0a, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xf8, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xf9, 0x07, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x64, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x10, 0xfa, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xfb, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x61, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xfc, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xfe, 0x07, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x80, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x90, 0x08, 0x12, 0x2c, 0x0a, 0x27, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x92, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6c, 0x75, 0x62, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x93, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x73, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x94, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x6f, 0x77, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x95, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6f, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x98, 0x08, 0x12, 0x23, 0x0a, 0x1e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9a, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x61, 0x64, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9d, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9e, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9f, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa0, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa2, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x6e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa3, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4f, 0x70, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xba, 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xc9, 0x08, 0x12, 0x24, 0x0a, 0x1f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xca, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x10, 0xcc, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xcd, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xce, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4, 0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xc8, 0x09, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9f, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa4, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xb9, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe3, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xed, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xfa, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfb, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0xfc, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0xfd, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7, 0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x2a, 0x29, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x65, 0x72, 0x6f, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_game_proto_rawDescOnce sync.Once file_game_proto_rawDescData = file_game_proto_rawDesc ) func file_game_proto_rawDescGZIP() []byte { file_game_proto_rawDescOnce.Do(func() { file_game_proto_rawDescData = protoimpl.X.CompressGZIP(file_game_proto_rawDescData) }) return file_game_proto_rawDescData } var file_game_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_game_proto_goTypes = []interface{}{ (OpResultCode_Game)(0), // 0: gamehall.OpResultCode_Game (GameHallPacketID)(0), // 1: gamehall.GameHallPacketID (DataType)(0), // 2: gamehall.DataType (*CSCreateRoom)(nil), // 3: gamehall.CSCreateRoom (*SCCreateRoom)(nil), // 4: gamehall.SCCreateRoom (*CSEnterRoom)(nil), // 5: gamehall.CSEnterRoom (*SCEnterRoom)(nil), // 6: gamehall.SCEnterRoom (*CSReturnRoom)(nil), // 7: gamehall.CSReturnRoom (*SCReturnRoom)(nil), // 8: gamehall.SCReturnRoom (*CSEnterGame)(nil), // 9: gamehall.CSEnterGame (*SCEnterGame)(nil), // 10: gamehall.SCEnterGame (*CSQuitGame)(nil), // 11: gamehall.CSQuitGame (*SCQuitGame)(nil), // 12: gamehall.SCQuitGame (*GameConfig1)(nil), // 13: gamehall.GameConfig1 (*CSGetGameConfig)(nil), // 14: gamehall.CSGetGameConfig (*ChessRankInfo)(nil), // 15: gamehall.ChessRankInfo (*SCGetGameConfig)(nil), // 16: gamehall.SCGetGameConfig (*SCChangeGameStatus)(nil), // 17: gamehall.SCChangeGameStatus (*SCChangeEntrySwitch)(nil), // 18: gamehall.SCChangeEntrySwitch (*CSCreatePrivateRoom)(nil), // 19: gamehall.CSCreatePrivateRoom (*SCCreatePrivateRoom)(nil), // 20: gamehall.SCCreatePrivateRoom (*CSGetPrivateRoomList)(nil), // 21: gamehall.CSGetPrivateRoomList (*PrivatePlayerInfo)(nil), // 22: gamehall.PrivatePlayerInfo (*PrivateRoomInfo)(nil), // 23: gamehall.PrivateRoomInfo (*SCGetPrivateRoomList)(nil), // 24: gamehall.SCGetPrivateRoomList (*CSQueryRoomInfo)(nil), // 25: gamehall.CSQueryRoomInfo (*QRoomInfo)(nil), // 26: gamehall.QRoomInfo (*SCQueryRoomInfo)(nil), // 27: gamehall.SCQueryRoomInfo (*GameState)(nil), // 28: gamehall.GameState (*SCGameState)(nil), // 29: gamehall.SCGameState (*CSAudienceSit)(nil), // 30: gamehall.CSAudienceSit (*SCAudienceSit)(nil), // 31: gamehall.SCAudienceSit (*CSRecordAndNotice)(nil), // 32: gamehall.CSRecordAndNotice (*CommonNotice)(nil), // 33: gamehall.CommonNotice (*PlayerRecord)(nil), // 34: gamehall.PlayerRecord (*SCRecordAndNotice)(nil), // 35: gamehall.SCRecordAndNotice (*SCNoticeChange)(nil), // 36: gamehall.SCNoticeChange (*CSDestroyRoom)(nil), // 37: gamehall.CSDestroyRoom (*SCDestroyRoom)(nil), // 38: gamehall.SCDestroyRoom (*CSLeaveRoom)(nil), // 39: gamehall.CSLeaveRoom (*SCLeaveRoom)(nil), // 40: gamehall.SCLeaveRoom (*CSForceStart)(nil), // 41: gamehall.CSForceStart (*SCForceStart)(nil), // 42: gamehall.SCForceStart (*CSPlayerSwithFlag)(nil), // 43: gamehall.CSPlayerSwithFlag (*CSRoomEvent)(nil), // 44: gamehall.CSRoomEvent (*SCRoomEvent)(nil), // 45: gamehall.SCRoomEvent (*ItemInfo)(nil), // 46: gamehall.ItemInfo (*CSTouchType)(nil), // 47: gamehall.CSTouchType (*RoomConfigInfo)(nil), // 48: gamehall.RoomConfigInfo (*RoomTypeInfo)(nil), // 49: gamehall.RoomTypeInfo (*CSRoomConfig)(nil), // 50: gamehall.CSRoomConfig (*SCRoomConfig)(nil), // 51: gamehall.SCRoomConfig } var file_game_proto_depIdxs = []int32{ 0, // 0: gamehall.SCCreateRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 1: gamehall.SCEnterRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 2: gamehall.SCReturnRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 3: gamehall.SCEnterGame.OpCode:type_name -> gamehall.OpResultCode_Game 0, // 4: gamehall.SCQuitGame.OpCode:type_name -> gamehall.OpResultCode_Game 13, // 5: gamehall.SCGetGameConfig.GameCfg:type_name -> gamehall.GameConfig1 15, // 6: gamehall.SCGetGameConfig.ChessRanks:type_name -> gamehall.ChessRankInfo 13, // 7: gamehall.SCChangeGameStatus.GameCfg:type_name -> gamehall.GameConfig1 0, // 8: gamehall.SCCreatePrivateRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 22, // 9: gamehall.PrivateRoomInfo.Players:type_name -> gamehall.PrivatePlayerInfo 23, // 10: gamehall.SCGetPrivateRoomList.Datas:type_name -> gamehall.PrivateRoomInfo 26, // 11: gamehall.SCQueryRoomInfo.RoomInfo:type_name -> gamehall.QRoomInfo 0, // 12: gamehall.SCQueryRoomInfo.OpRetCode:type_name -> gamehall.OpResultCode_Game 28, // 13: gamehall.SCGameState.List:type_name -> gamehall.GameState 0, // 14: gamehall.SCAudienceSit.OpCode:type_name -> gamehall.OpResultCode_Game 0, // 15: gamehall.SCRecordAndNotice.OpCode:type_name -> gamehall.OpResultCode_Game 33, // 16: gamehall.SCRecordAndNotice.List:type_name -> gamehall.CommonNotice 34, // 17: gamehall.SCRecordAndNotice.Glist:type_name -> gamehall.PlayerRecord 0, // 18: gamehall.SCDestroyRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 19: gamehall.SCLeaveRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 20: gamehall.SCForceStart.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 21: gamehall.SCRoomEvent.OpCode:type_name -> gamehall.OpResultCode_Game 2, // 22: gamehall.CSTouchType.Tp:type_name -> gamehall.DataType 46, // 23: gamehall.RoomConfigInfo.Cost:type_name -> gamehall.ItemInfo 46, // 24: gamehall.RoomConfigInfo.Reward:type_name -> gamehall.ItemInfo 48, // 25: gamehall.RoomTypeInfo.List:type_name -> gamehall.RoomConfigInfo 49, // 26: gamehall.SCRoomConfig.List:type_name -> gamehall.RoomTypeInfo 27, // [27:27] is the sub-list for method output_type 27, // [27:27] is the sub-list for method input_type 27, // [27:27] is the sub-list for extension type_name 27, // [27:27] is the sub-list for extension extendee 0, // [0:27] is the sub-list for field type_name } func init() { file_game_proto_init() } func file_game_proto_init() { if File_game_proto != nil { return } if !protoimpl.UnsafeEnabled { file_game_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCreateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCreateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSEnterRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCEnterRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSReturnRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCReturnRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSEnterGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCEnterGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSQuitGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCQuitGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameConfig1); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChessRankInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCChangeGameStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCChangeEntrySwitch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSCreatePrivateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCCreatePrivateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetPrivateRoomList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivatePlayerInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetPrivateRoomList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSQueryRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCQueryRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGameState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSAudienceSit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCAudienceSit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRecordAndNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRecordAndNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNoticeChange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSDestroyRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDestroyRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSLeaveRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLeaveRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSForceStart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCForceStart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPlayerSwithFlag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRoomEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRoomEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSTouchType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomConfigInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomTypeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSRoomConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRoomConfig); 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_game_proto_rawDesc, NumEnums: 3, NumMessages: 49, NumExtensions: 0, NumServices: 0, }, GoTypes: file_game_proto_goTypes, DependencyIndexes: file_game_proto_depIdxs, EnumInfos: file_game_proto_enumTypes, MessageInfos: file_game_proto_msgTypes, }.Build() File_game_proto = out.File file_game_proto_rawDesc = nil file_game_proto_goTypes = nil file_game_proto_depIdxs = nil }