// 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_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", 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_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} } //消息id 2200-2319 type GameHallPacketID int32 const ( GameHallPacketID_PACKET_GameHall_ZERO GameHallPacketID = 0 // 弃用消息号 GameHallPacketID_PACKET_CS_JOINGAME GameHallPacketID = 2200 GameHallPacketID_PACKET_SC_JOINGAME GameHallPacketID = 2201 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_AUDIENCE_ENTERROOM GameHallPacketID = 2208 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_SC_CARDGAINWAY GameHallPacketID = 2213 GameHallPacketID_PACKET_CS_TASKLIST GameHallPacketID = 2214 GameHallPacketID_PACKET_SC_TASKLIST GameHallPacketID = 2215 GameHallPacketID_PACKET_SC_TASKCHG GameHallPacketID = 2216 GameHallPacketID_PACKET_SC_TACKCOMPLETE GameHallPacketID = 2217 GameHallPacketID_PACKET_SC_TASKDEL GameHallPacketID = 2218 GameHallPacketID_PACKET_CS_TACKDRAWPRIZE GameHallPacketID = 2219 GameHallPacketID_PACKET_SC_TACKDRAWPRIZE GameHallPacketID = 2220 GameHallPacketID_PACKET_CS_GETAGENTGAMEREC GameHallPacketID = 2223 GameHallPacketID_PACKET_SC_GETAGENTGAMEREC GameHallPacketID = 2224 GameHallPacketID_PACKET_CS_DELAGENTGAMEREC GameHallPacketID = 2225 GameHallPacketID_PACKET_CS_SHOPBUY GameHallPacketID = 2226 GameHallPacketID_PACKET_SC_SHOPBUY GameHallPacketID = 2227 GameHallPacketID_PACKET_SC_LIMITLIST GameHallPacketID = 2228 GameHallPacketID_PACKET_CS_GETLATELYGAMEIDS GameHallPacketID = 2229 GameHallPacketID_PACKET_SC_GETLATELYGAMEIDS GameHallPacketID = 2230 GameHallPacketID_PACKET_CS_GETGAMECONFIG GameHallPacketID = 2231 GameHallPacketID_PACKET_SC_GETGAMECONFIG GameHallPacketID = 2232 GameHallPacketID_PACKET_SC_CHANGEGAMESTATUS GameHallPacketID = 2233 GameHallPacketID_PACKET_CS_ENTERHALL GameHallPacketID = 2240 GameHallPacketID_PACKET_SC_ENTERHALL GameHallPacketID = 2241 GameHallPacketID_PACKET_CS_LEAVEHALL GameHallPacketID = 2242 GameHallPacketID_PACKET_SC_LEAVEHALL GameHallPacketID = 2243 GameHallPacketID_PACKET_CS_HALLROOMLIST GameHallPacketID = 2244 GameHallPacketID_PACKET_SC_HALLROOMLIST GameHallPacketID = 2245 GameHallPacketID_PACKET_SC_ROOMPLAYERENTER GameHallPacketID = 2246 GameHallPacketID_PACKET_SC_ROOMPLAYERLEAVE GameHallPacketID = 2247 GameHallPacketID_PACKET_SC_ROOMSTATECHANG GameHallPacketID = 2248 GameHallPacketID_PACKET_SC_HALLPLAYERNUM GameHallPacketID = 2249 GameHallPacketID_PACKET_SC_BULLETIONINFO GameHallPacketID = 2250 GameHallPacketID_PACKET_CS_BULLETIONINFO GameHallPacketID = 2251 GameHallPacketID_PACKET_CS_CUSTOMERINFOLIST GameHallPacketID = 2252 GameHallPacketID_PACKET_SC_CUSTOMERINFOLIST GameHallPacketID = 2253 GameHallPacketID_PACKET_CS_ENTERDGGAME GameHallPacketID = 2254 GameHallPacketID_PACKET_SC_ENTERDGGAME GameHallPacketID = 2255 GameHallPacketID_PACKET_CS_LEAVEDGGAME GameHallPacketID = 2256 GameHallPacketID_PACKET_SC_LEAVEDGGAME GameHallPacketID = 2257 GameHallPacketID_PACKET_SC_PLAYERRECHARGEANSWER GameHallPacketID = 2258 //充值弹框协议 GameHallPacketID_PACKET_CS_THRIDACCOUNTSTATICSTIC GameHallPacketID = 2259 GameHallPacketID_PACKET_SC_THRIDACCOUNTSTATICSTIC GameHallPacketID = 2260 GameHallPacketID_PACKET_CS_THRIDACCOUNTTRANSFER GameHallPacketID = 2261 GameHallPacketID_PACKET_SC_THRIDACCOUNTTRANSFER GameHallPacketID = 2262 GameHallPacketID_PACKET_CS_ENTERTHRIDGAME GameHallPacketID = 2263 GameHallPacketID_PACKET_SC_ENTERTHRIDGAME GameHallPacketID = 2264 GameHallPacketID_PACKET_CS_LEAVETHRIDGAME GameHallPacketID = 2265 GameHallPacketID_PACKET_SC_LEAVETHRIDGAME GameHallPacketID = 2266 GameHallPacketID_PACKET_CS_THRIDGAMELIST GameHallPacketID = 2267 GameHallPacketID_PACKET_SC_THRIDGAMELIST GameHallPacketID = 2268 GameHallPacketID_PACKET_CS_THRIDGAMEBALANCEUPDATE GameHallPacketID = 2269 GameHallPacketID_PACKET_SC_THRIDGAMEBALANCEUPDATE GameHallPacketID = 2270 GameHallPacketID_PACKET_SC_THRIDGAMEBALANCEUPDATESTATE GameHallPacketID = 2271 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_GETPRIVATEROOMHISTORY GameHallPacketID = 2276 GameHallPacketID_PACKET_SC_GETPRIVATEROOMHISTORY GameHallPacketID = 2277 GameHallPacketID_PACKET_CS_DESTROYPRIVATEROOM GameHallPacketID = 2278 GameHallPacketID_PACKET_SC_DESTROYPRIVATEROOM GameHallPacketID = 2279 GameHallPacketID_PACKET_CS_QUERYROOMINFO GameHallPacketID = 2280 GameHallPacketID_PACKET_SC_QUERYROOMINFO GameHallPacketID = 2281 GameHallPacketID_PACKET_SC_GAMESUBLIST GameHallPacketID = 2283 GameHallPacketID_PACKET_CS_GAMEOBSERVE GameHallPacketID = 2284 GameHallPacketID_PACKET_SC_GAMESTATE GameHallPacketID = 2285 GameHallPacketID_PACKET_SC_SYNCGAMEFREE GameHallPacketID = 2286 GameHallPacketID_PACKET_SC_LOTTERYSYNC GameHallPacketID = 2287 GameHallPacketID_PACKET_CS_LOTTERYLOG GameHallPacketID = 2288 GameHallPacketID_PACKET_SC_LOTTERYLOG GameHallPacketID = 2289 GameHallPacketID_PACKET_SC_LOTTERYBILL GameHallPacketID = 2290 GameHallPacketID_PACKET_CS_UPLOADLOC GameHallPacketID = 2291 GameHallPacketID_PACKET_SC_UPLOADLOC GameHallPacketID = 2292 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_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", 2200: "PACKET_CS_JOINGAME", 2201: "PACKET_SC_JOINGAME", 2202: "PACKET_CS_CREATEROOM", 2203: "PACKET_SC_CREATEROOM", 2204: "PACKET_CS_ENTERROOM", 2205: "PACKET_SC_ENTERROOM", 2206: "PACKET_CS_RETURNROOM", 2207: "PACKET_SC_RETURNROOM", 2208: "PACKET_CS_AUDIENCE_ENTERROOM", 2209: "PACKET_CS_ENTERGAME", 2210: "PACKET_SC_ENTERGAME", 2211: "PACKET_CS_QUITGAME", 2212: "PACKET_SC_QUITGAME", 2213: "PACKET_SC_CARDGAINWAY", 2214: "PACKET_CS_TASKLIST", 2215: "PACKET_SC_TASKLIST", 2216: "PACKET_SC_TASKCHG", 2217: "PACKET_SC_TACKCOMPLETE", 2218: "PACKET_SC_TASKDEL", 2219: "PACKET_CS_TACKDRAWPRIZE", 2220: "PACKET_SC_TACKDRAWPRIZE", 2223: "PACKET_CS_GETAGENTGAMEREC", 2224: "PACKET_SC_GETAGENTGAMEREC", 2225: "PACKET_CS_DELAGENTGAMEREC", 2226: "PACKET_CS_SHOPBUY", 2227: "PACKET_SC_SHOPBUY", 2228: "PACKET_SC_LIMITLIST", 2229: "PACKET_CS_GETLATELYGAMEIDS", 2230: "PACKET_SC_GETLATELYGAMEIDS", 2231: "PACKET_CS_GETGAMECONFIG", 2232: "PACKET_SC_GETGAMECONFIG", 2233: "PACKET_SC_CHANGEGAMESTATUS", 2240: "PACKET_CS_ENTERHALL", 2241: "PACKET_SC_ENTERHALL", 2242: "PACKET_CS_LEAVEHALL", 2243: "PACKET_SC_LEAVEHALL", 2244: "PACKET_CS_HALLROOMLIST", 2245: "PACKET_SC_HALLROOMLIST", 2246: "PACKET_SC_ROOMPLAYERENTER", 2247: "PACKET_SC_ROOMPLAYERLEAVE", 2248: "PACKET_SC_ROOMSTATECHANG", 2249: "PACKET_SC_HALLPLAYERNUM", 2250: "PACKET_SC_BULLETIONINFO", 2251: "PACKET_CS_BULLETIONINFO", 2252: "PACKET_CS_CUSTOMERINFOLIST", 2253: "PACKET_SC_CUSTOMERINFOLIST", 2254: "PACKET_CS_ENTERDGGAME", 2255: "PACKET_SC_ENTERDGGAME", 2256: "PACKET_CS_LEAVEDGGAME", 2257: "PACKET_SC_LEAVEDGGAME", 2258: "PACKET_SC_PLAYERRECHARGEANSWER", 2259: "PACKET_CS_THRIDACCOUNTSTATICSTIC", 2260: "PACKET_SC_THRIDACCOUNTSTATICSTIC", 2261: "PACKET_CS_THRIDACCOUNTTRANSFER", 2262: "PACKET_SC_THRIDACCOUNTTRANSFER", 2263: "PACKET_CS_ENTERTHRIDGAME", 2264: "PACKET_SC_ENTERTHRIDGAME", 2265: "PACKET_CS_LEAVETHRIDGAME", 2266: "PACKET_SC_LEAVETHRIDGAME", 2267: "PACKET_CS_THRIDGAMELIST", 2268: "PACKET_SC_THRIDGAMELIST", 2269: "PACKET_CS_THRIDGAMEBALANCEUPDATE", 2270: "PACKET_SC_THRIDGAMEBALANCEUPDATE", 2271: "PACKET_SC_THRIDGAMEBALANCEUPDATESTATE", 2272: "PACKET_CS_CREATEPRIVATEROOM", 2273: "PACKET_SC_CREATEPRIVATEROOM", 2274: "PACKET_CS_GETPRIVATEROOMLIST", 2275: "PACKET_SC_GETPRIVATEROOMLIST", 2276: "PACKET_CS_GETPRIVATEROOMHISTORY", 2277: "PACKET_SC_GETPRIVATEROOMHISTORY", 2278: "PACKET_CS_DESTROYPRIVATEROOM", 2279: "PACKET_SC_DESTROYPRIVATEROOM", 2280: "PACKET_CS_QUERYROOMINFO", 2281: "PACKET_SC_QUERYROOMINFO", 2283: "PACKET_SC_GAMESUBLIST", 2284: "PACKET_CS_GAMEOBSERVE", 2285: "PACKET_SC_GAMESTATE", 2286: "PACKET_SC_SYNCGAMEFREE", 2287: "PACKET_SC_LOTTERYSYNC", 2288: "PACKET_CS_LOTTERYLOG", 2289: "PACKET_SC_LOTTERYLOG", 2290: "PACKET_SC_LOTTERYBILL", 2291: "PACKET_CS_UPLOADLOC", 2292: "PACKET_SC_UPLOADLOC", 2293: "PACKET_CS_AUDIENCESIT", 2294: "PACKET_SC_AUDIENCESIT", 2295: "PACKET_CS_COMNOTICE", 2296: "PACKET_SC_COMNOTICE", 2297: "PACKET_SC_CHANGEENTRYSWITCH", 2298: "PACKET_SC_NoticeChange", 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_JOINGAME": 2200, "PACKET_SC_JOINGAME": 2201, "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_AUDIENCE_ENTERROOM": 2208, "PACKET_CS_ENTERGAME": 2209, "PACKET_SC_ENTERGAME": 2210, "PACKET_CS_QUITGAME": 2211, "PACKET_SC_QUITGAME": 2212, "PACKET_SC_CARDGAINWAY": 2213, "PACKET_CS_TASKLIST": 2214, "PACKET_SC_TASKLIST": 2215, "PACKET_SC_TASKCHG": 2216, "PACKET_SC_TACKCOMPLETE": 2217, "PACKET_SC_TASKDEL": 2218, "PACKET_CS_TACKDRAWPRIZE": 2219, "PACKET_SC_TACKDRAWPRIZE": 2220, "PACKET_CS_GETAGENTGAMEREC": 2223, "PACKET_SC_GETAGENTGAMEREC": 2224, "PACKET_CS_DELAGENTGAMEREC": 2225, "PACKET_CS_SHOPBUY": 2226, "PACKET_SC_SHOPBUY": 2227, "PACKET_SC_LIMITLIST": 2228, "PACKET_CS_GETLATELYGAMEIDS": 2229, "PACKET_SC_GETLATELYGAMEIDS": 2230, "PACKET_CS_GETGAMECONFIG": 2231, "PACKET_SC_GETGAMECONFIG": 2232, "PACKET_SC_CHANGEGAMESTATUS": 2233, "PACKET_CS_ENTERHALL": 2240, "PACKET_SC_ENTERHALL": 2241, "PACKET_CS_LEAVEHALL": 2242, "PACKET_SC_LEAVEHALL": 2243, "PACKET_CS_HALLROOMLIST": 2244, "PACKET_SC_HALLROOMLIST": 2245, "PACKET_SC_ROOMPLAYERENTER": 2246, "PACKET_SC_ROOMPLAYERLEAVE": 2247, "PACKET_SC_ROOMSTATECHANG": 2248, "PACKET_SC_HALLPLAYERNUM": 2249, "PACKET_SC_BULLETIONINFO": 2250, "PACKET_CS_BULLETIONINFO": 2251, "PACKET_CS_CUSTOMERINFOLIST": 2252, "PACKET_SC_CUSTOMERINFOLIST": 2253, "PACKET_CS_ENTERDGGAME": 2254, "PACKET_SC_ENTERDGGAME": 2255, "PACKET_CS_LEAVEDGGAME": 2256, "PACKET_SC_LEAVEDGGAME": 2257, "PACKET_SC_PLAYERRECHARGEANSWER": 2258, "PACKET_CS_THRIDACCOUNTSTATICSTIC": 2259, "PACKET_SC_THRIDACCOUNTSTATICSTIC": 2260, "PACKET_CS_THRIDACCOUNTTRANSFER": 2261, "PACKET_SC_THRIDACCOUNTTRANSFER": 2262, "PACKET_CS_ENTERTHRIDGAME": 2263, "PACKET_SC_ENTERTHRIDGAME": 2264, "PACKET_CS_LEAVETHRIDGAME": 2265, "PACKET_SC_LEAVETHRIDGAME": 2266, "PACKET_CS_THRIDGAMELIST": 2267, "PACKET_SC_THRIDGAMELIST": 2268, "PACKET_CS_THRIDGAMEBALANCEUPDATE": 2269, "PACKET_SC_THRIDGAMEBALANCEUPDATE": 2270, "PACKET_SC_THRIDGAMEBALANCEUPDATESTATE": 2271, "PACKET_CS_CREATEPRIVATEROOM": 2272, "PACKET_SC_CREATEPRIVATEROOM": 2273, "PACKET_CS_GETPRIVATEROOMLIST": 2274, "PACKET_SC_GETPRIVATEROOMLIST": 2275, "PACKET_CS_GETPRIVATEROOMHISTORY": 2276, "PACKET_SC_GETPRIVATEROOMHISTORY": 2277, "PACKET_CS_DESTROYPRIVATEROOM": 2278, "PACKET_SC_DESTROYPRIVATEROOM": 2279, "PACKET_CS_QUERYROOMINFO": 2280, "PACKET_SC_QUERYROOMINFO": 2281, "PACKET_SC_GAMESUBLIST": 2283, "PACKET_CS_GAMEOBSERVE": 2284, "PACKET_SC_GAMESTATE": 2285, "PACKET_SC_SYNCGAMEFREE": 2286, "PACKET_SC_LOTTERYSYNC": 2287, "PACKET_CS_LOTTERYLOG": 2288, "PACKET_SC_LOTTERYLOG": 2289, "PACKET_SC_LOTTERYBILL": 2290, "PACKET_CS_UPLOADLOC": 2291, "PACKET_SC_UPLOADLOC": 2292, "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_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} } //进入游戏大厅 //PACKET_CS_ENTERHALL type CSEnterHall struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallId int32 `protobuf:"varint,1,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id(详见:DB_GameFree.xlxs中的id) } func (x *CSEnterHall) Reset() { *x = CSEnterHall{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSEnterHall) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSEnterHall) ProtoMessage() {} func (x *CSEnterHall) 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 CSEnterHall.ProtoReflect.Descriptor instead. func (*CSEnterHall) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{0} } func (x *CSEnterHall) GetHallId() int32 { if x != nil { return x.HallId } return 0 } //PACKET_SC_ENTERHALL type SCEnterHall struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallId int32 `protobuf:"varint,1,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id(详见:DB_GameFree.xlxs中的id) OpRetCode OpResultCode_Game `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 } func (x *SCEnterHall) Reset() { *x = SCEnterHall{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEnterHall) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEnterHall) ProtoMessage() {} func (x *SCEnterHall) 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 SCEnterHall.ProtoReflect.Descriptor instead. func (*SCEnterHall) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{1} } func (x *SCEnterHall) GetHallId() int32 { if x != nil { return x.HallId } return 0 } func (x *SCEnterHall) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //离开游戏大厅 //PACKET_CS_LEAVEHALL type CSLeaveHall struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSLeaveHall) Reset() { *x = CSLeaveHall{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLeaveHall) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLeaveHall) ProtoMessage() {} func (x *CSLeaveHall) 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 CSLeaveHall.ProtoReflect.Descriptor instead. func (*CSLeaveHall) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{2} } //PACKET_SC_LEAVEHALL type SCLeaveHall struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallId int32 `protobuf:"varint,1,opt,name=HallId,proto3" json:"HallId,omitempty"` } func (x *SCLeaveHall) Reset() { *x = SCLeaveHall{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLeaveHall) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLeaveHall) ProtoMessage() {} func (x *SCLeaveHall) 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 SCLeaveHall.ProtoReflect.Descriptor instead. func (*SCLeaveHall) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{3} } func (x *SCLeaveHall) GetHallId() int32 { if x != nil { return x.HallId } return 0 } //房间内玩家信息 type RoomPlayerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //数字账号 Head int32 `protobuf:"varint,2,opt,name=Head,proto3" json:"Head,omitempty"` //头像 Sex int32 `protobuf:"varint,3,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` //名字 Pos int32 `protobuf:"varint,5,opt,name=Pos,proto3" json:"Pos,omitempty"` //位置 Flag int32 `protobuf:"varint,6,opt,name=Flag,proto3" json:"Flag,omitempty"` //状态 HeadOutLine int32 `protobuf:"varint,7,opt,name=HeadOutLine,proto3" json:"HeadOutLine,omitempty"` //头像框 VIP int32 `protobuf:"varint,8,opt,name=VIP,proto3" json:"VIP,omitempty"` } func (x *RoomPlayerInfo) Reset() { *x = RoomPlayerInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomPlayerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomPlayerInfo) ProtoMessage() {} func (x *RoomPlayerInfo) 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 RoomPlayerInfo.ProtoReflect.Descriptor instead. func (*RoomPlayerInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{4} } func (x *RoomPlayerInfo) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *RoomPlayerInfo) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *RoomPlayerInfo) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *RoomPlayerInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomPlayerInfo) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *RoomPlayerInfo) GetFlag() int32 { if x != nil { return x.Flag } return 0 } func (x *RoomPlayerInfo) GetHeadOutLine() int32 { if x != nil { return x.HeadOutLine } return 0 } func (x *RoomPlayerInfo) GetVIP() int32 { if x != nil { return x.VIP } return 0 } //房间信息 type RoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房号 Starting bool `protobuf:"varint,7,opt,name=Starting,proto3" json:"Starting,omitempty"` //牌局是否开始 Players []*RoomPlayerInfo `protobuf:"bytes,5,rep,name=Players,proto3" json:"Players,omitempty"` } func (x *RoomInfo) Reset() { *x = RoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInfo) ProtoMessage() {} func (x *RoomInfo) 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 RoomInfo.ProtoReflect.Descriptor instead. func (*RoomInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{5} } func (x *RoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *RoomInfo) GetStarting() bool { if x != nil { return x.Starting } return false } func (x *RoomInfo) GetPlayers() []*RoomPlayerInfo { if x != nil { return x.Players } return nil } //PACKET_CS_HALLROOMLIST type CSHallRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallId int32 `protobuf:"varint,1,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id(详见:DB_GameFree.xlxs中的id) } func (x *CSHallRoomList) Reset() { *x = CSHallRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSHallRoomList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSHallRoomList) ProtoMessage() {} func (x *CSHallRoomList) 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 CSHallRoomList.ProtoReflect.Descriptor instead. func (*CSHallRoomList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{6} } func (x *CSHallRoomList) GetHallId() int32 { if x != nil { return x.HallId } return 0 } //大厅人数 type HallInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneType int32 `protobuf:"varint,1,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //场 PlayerNum int32 `protobuf:"varint,2,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` //人数 } func (x *HallInfo) Reset() { *x = HallInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HallInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*HallInfo) ProtoMessage() {} func (x *HallInfo) 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 HallInfo.ProtoReflect.Descriptor instead. func (*HallInfo) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{7} } func (x *HallInfo) GetSceneType() int32 { if x != nil { return x.SceneType } return 0 } func (x *HallInfo) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } //PACKET_SC_HALLPLAYERNUM type HallPlayerNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallData []*HallInfo `protobuf:"bytes,1,rep,name=HallData,proto3" json:"HallData,omitempty"` //大厅人数 } func (x *HallPlayerNum) Reset() { *x = HallPlayerNum{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HallPlayerNum) String() string { return protoimpl.X.MessageStringOf(x) } func (*HallPlayerNum) ProtoMessage() {} func (x *HallPlayerNum) 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 HallPlayerNum.ProtoReflect.Descriptor instead. func (*HallPlayerNum) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{8} } func (x *HallPlayerNum) GetHallData() []*HallInfo { if x != nil { return x.HallData } return nil } //PACKET_SC_HALLROOMLIST type SCHallRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HallId int32 `protobuf:"varint,1,opt,name=HallId,proto3" json:"HallId,omitempty"` //厅id GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id GameMode int32 `protobuf:"varint,3,opt,name=GameMode,proto3" json:"GameMode,omitempty"` //游戏模式 IsAdd bool `protobuf:"varint,4,opt,name=IsAdd,proto3" json:"IsAdd,omitempty"` //是否新增 Params []int32 `protobuf:"varint,5,rep,packed,name=Params,proto3" json:"Params,omitempty"` //游戏规则参数 Rooms []*RoomInfo `protobuf:"bytes,6,rep,name=Rooms,proto3" json:"Rooms,omitempty"` //房间列表 HallData []*HallInfo `protobuf:"bytes,7,rep,name=HallData,proto3" json:"HallData,omitempty"` //大厅人数 } func (x *SCHallRoomList) Reset() { *x = SCHallRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCHallRoomList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCHallRoomList) ProtoMessage() {} func (x *SCHallRoomList) 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 SCHallRoomList.ProtoReflect.Descriptor instead. func (*SCHallRoomList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{9} } func (x *SCHallRoomList) GetHallId() int32 { if x != nil { return x.HallId } return 0 } func (x *SCHallRoomList) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *SCHallRoomList) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *SCHallRoomList) GetIsAdd() bool { if x != nil { return x.IsAdd } return false } func (x *SCHallRoomList) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCHallRoomList) GetRooms() []*RoomInfo { if x != nil { return x.Rooms } return nil } func (x *SCHallRoomList) GetHallData() []*HallInfo { if x != nil { return x.HallData } return nil } //PACKET_SC_ROOMPLAYERENTER type SCRoomPlayerEnter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Player *RoomPlayerInfo `protobuf:"bytes,2,opt,name=Player,proto3" json:"Player,omitempty"` } func (x *SCRoomPlayerEnter) Reset() { *x = SCRoomPlayerEnter{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRoomPlayerEnter) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRoomPlayerEnter) ProtoMessage() {} func (x *SCRoomPlayerEnter) 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 SCRoomPlayerEnter.ProtoReflect.Descriptor instead. func (*SCRoomPlayerEnter) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{10} } func (x *SCRoomPlayerEnter) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCRoomPlayerEnter) GetPlayer() *RoomPlayerInfo { if x != nil { return x.Player } return nil } //PACKET_SC_ROOMPLAYERLEAVE type SCRoomPlayerLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *SCRoomPlayerLeave) Reset() { *x = SCRoomPlayerLeave{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRoomPlayerLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRoomPlayerLeave) ProtoMessage() {} func (x *SCRoomPlayerLeave) 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 SCRoomPlayerLeave.ProtoReflect.Descriptor instead. func (*SCRoomPlayerLeave) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{11} } func (x *SCRoomPlayerLeave) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCRoomPlayerLeave) GetPos() int32 { if x != nil { return x.Pos } return 0 } //PACKET_SC_ROOMSTATECHANG type SCRoomStateChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Starting bool `protobuf:"varint,2,opt,name=Starting,proto3" json:"Starting,omitempty"` State int32 `protobuf:"varint,3,opt,name=State,proto3" json:"State,omitempty"` } func (x *SCRoomStateChange) Reset() { *x = SCRoomStateChange{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCRoomStateChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCRoomStateChange) ProtoMessage() {} func (x *SCRoomStateChange) 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 SCRoomStateChange.ProtoReflect.Descriptor instead. func (*SCRoomStateChange) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{12} } func (x *SCRoomStateChange) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCRoomStateChange) GetStarting() bool { if x != nil { return x.Starting } return false } func (x *SCRoomStateChange) GetState() int32 { if x != nil { return x.State } return 0 } //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[13] 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[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 CSCreateRoom.ProtoReflect.Descriptor instead. func (*CSCreateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{13} } 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[14] 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[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 SCCreateRoom.ProtoReflect.Descriptor instead. func (*SCCreateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{14} } 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_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[15] 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[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 CSDestroyRoom.ProtoReflect.Descriptor instead. func (*CSDestroyRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{15} } //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[16] 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[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 SCDestroyRoom.ProtoReflect.Descriptor instead. func (*SCDestroyRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{16} } 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_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"` //游戏编号 } func (x *CSEnterRoom) Reset() { *x = CSEnterRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[17] 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[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 CSEnterRoom.ProtoReflect.Descriptor instead. func (*CSEnterRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{17} } 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 } //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"` } func (x *SCEnterRoom) Reset() { *x = SCEnterRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[18] 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[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 SCEnterRoom.ProtoReflect.Descriptor instead. func (*SCEnterRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{18} } 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 } //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[19] 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[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 CSLeaveRoom.ProtoReflect.Descriptor instead. func (*CSLeaveRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{19} } 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[20] 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[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 SCLeaveRoom.ProtoReflect.Descriptor instead. func (*SCLeaveRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{20} } 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_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[21] 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[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 CSReturnRoom.ProtoReflect.Descriptor instead. func (*CSReturnRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{21} } 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[22] 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[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 SCReturnRoom.ProtoReflect.Descriptor instead. func (*SCReturnRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{22} } 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_GETGAMEREC type CSGetGameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ver int32 `protobuf:"varint,1,opt,name=Ver,proto3" json:"Ver,omitempty"` GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"` } func (x *CSGetGameRec) Reset() { *x = CSGetGameRec{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetGameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetGameRec) ProtoMessage() {} func (x *CSGetGameRec) 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 CSGetGameRec.ProtoReflect.Descriptor instead. func (*CSGetGameRec) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{23} } func (x *CSGetGameRec) GetVer() int32 { if x != nil { return x.Ver } return 0 } func (x *CSGetGameRec) GetGameId() int32 { if x != nil { return x.GameId } return 0 } type PlayerGameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` Coin int64 `protobuf:"varint,4,opt,name=Coin,proto3" json:"Coin,omitempty"` Pos int32 `protobuf:"varint,5,opt,name=Pos,proto3" json:"Pos,omitempty"` OtherParams []int32 `protobuf:"varint,6,rep,packed,name=OtherParams,proto3" json:"OtherParams,omitempty"` } func (x *PlayerGameRec) Reset() { *x = PlayerGameRec{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerGameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerGameRec) ProtoMessage() {} func (x *PlayerGameRec) 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 PlayerGameRec.ProtoReflect.Descriptor instead. func (*PlayerGameRec) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{24} } func (x *PlayerGameRec) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *PlayerGameRec) GetName() string { if x != nil { return x.Name } return "" } func (x *PlayerGameRec) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *PlayerGameRec) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *PlayerGameRec) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *PlayerGameRec) GetOtherParams() []int32 { if x != nil { return x.OtherParams } return nil } type GameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecId int32 `protobuf:"varint,1,opt,name=RecId,proto3" json:"RecId,omitempty"` Datas []*PlayerGameRec `protobuf:"bytes,2,rep,name=Datas,proto3" json:"Datas,omitempty"` Ts int64 `protobuf:"varint,3,opt,name=Ts,proto3" json:"Ts,omitempty"` RoomId int32 `protobuf:"varint,4,opt,name=RoomId,proto3" json:"RoomId,omitempty"` GameMode int32 `protobuf:"varint,5,opt,name=GameMode,proto3" json:"GameMode,omitempty"` SceneType int32 `protobuf:"varint,6,opt,name=SceneType,proto3" json:"SceneType,omitempty"` GameId int32 `protobuf:"varint,7,opt,name=GameId,proto3" json:"GameId,omitempty"` TotalOfGames int32 `protobuf:"varint,8,opt,name=TotalOfGames,proto3" json:"TotalOfGames,omitempty"` NumOfGames int32 `protobuf:"varint,9,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` RoomFeeMode int32 `protobuf:"varint,10,opt,name=RoomFeeMode,proto3" json:"RoomFeeMode,omitempty"` RoomCardCnt int32 `protobuf:"varint,11,opt,name=RoomCardCnt,proto3" json:"RoomCardCnt,omitempty"` Params []int32 `protobuf:"varint,12,rep,packed,name=Params,proto3" json:"Params,omitempty"` GameTime int32 `protobuf:"varint,13,opt,name=GameTime,proto3" json:"GameTime,omitempty"` } func (x *GameRec) Reset() { *x = GameRec{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameRec) ProtoMessage() {} func (x *GameRec) 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 GameRec.ProtoReflect.Descriptor instead. func (*GameRec) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{25} } func (x *GameRec) GetRecId() int32 { if x != nil { return x.RecId } return 0 } func (x *GameRec) GetDatas() []*PlayerGameRec { if x != nil { return x.Datas } return nil } func (x *GameRec) GetTs() int64 { if x != nil { return x.Ts } return 0 } func (x *GameRec) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GameRec) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *GameRec) GetSceneType() int32 { if x != nil { return x.SceneType } return 0 } func (x *GameRec) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameRec) GetTotalOfGames() int32 { if x != nil { return x.TotalOfGames } return 0 } func (x *GameRec) GetNumOfGames() int32 { if x != nil { return x.NumOfGames } return 0 } func (x *GameRec) GetRoomFeeMode() int32 { if x != nil { return x.RoomFeeMode } return 0 } func (x *GameRec) GetRoomCardCnt() int32 { if x != nil { return x.RoomCardCnt } return 0 } func (x *GameRec) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *GameRec) GetGameTime() int32 { if x != nil { return x.GameTime } return 0 } //PACKET_SC_GETGAMEREC type SCGetGameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Recs []*GameRec `protobuf:"bytes,1,rep,name=Recs,proto3" json:"Recs,omitempty"` Ver int32 `protobuf:"varint,2,opt,name=Ver,proto3" json:"Ver,omitempty"` GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` } func (x *SCGetGameRec) Reset() { *x = SCGetGameRec{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetGameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetGameRec) ProtoMessage() {} func (x *SCGetGameRec) 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 SCGetGameRec.ProtoReflect.Descriptor instead. func (*SCGetGameRec) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{26} } func (x *SCGetGameRec) GetRecs() []*GameRec { if x != nil { return x.Recs } return nil } func (x *SCGetGameRec) GetVer() int32 { if x != nil { return x.Ver } return 0 } func (x *SCGetGameRec) GetGameId() int32 { if x != nil { return x.GameId } return 0 } //PACKET_CS_SHARESUC type CSShareSuc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShareType int32 `protobuf:"varint,1,opt,name=ShareType,proto3" json:"ShareType,omitempty"` //分享类型 1:微信好友 2:朋友圈 } func (x *CSShareSuc) Reset() { *x = CSShareSuc{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSShareSuc) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSShareSuc) ProtoMessage() {} func (x *CSShareSuc) 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 CSShareSuc.ProtoReflect.Descriptor instead. func (*CSShareSuc) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{27} } func (x *CSShareSuc) GetShareType() int32 { if x != nil { return x.ShareType } return 0 } //PACKET_SC_SHARESUC type SCShareSuc 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 *SCShareSuc) Reset() { *x = SCShareSuc{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCShareSuc) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCShareSuc) ProtoMessage() {} func (x *SCShareSuc) 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 SCShareSuc.ProtoReflect.Descriptor instead. func (*SCShareSuc) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{28} } func (x *SCShareSuc) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //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[29] 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[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 CSForceStart.ProtoReflect.Descriptor instead. func (*CSForceStart) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{29} } //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[30] 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[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 SCForceStart.ProtoReflect.Descriptor instead. func (*SCForceStart) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{30} } func (x *SCForceStart) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //PACKET_CS_INVITEROBOT type CSInviteRobot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` IsAgent bool `protobuf:"varint,2,opt,name=IsAgent,proto3" json:"IsAgent,omitempty"` //0:自己玩 1:机器人代替我 } func (x *CSInviteRobot) Reset() { *x = CSInviteRobot{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSInviteRobot) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSInviteRobot) ProtoMessage() {} func (x *CSInviteRobot) 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 CSInviteRobot.ProtoReflect.Descriptor instead. func (*CSInviteRobot) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{31} } func (x *CSInviteRobot) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *CSInviteRobot) GetIsAgent() bool { if x != nil { return x.IsAgent } return false } //玩家设置标记 //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[32] 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[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 CSPlayerSwithFlag.ProtoReflect.Descriptor instead. func (*CSPlayerSwithFlag) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{32} } 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_CS_SHOPBUY type CSShopBuy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //商品ID Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量 } func (x *CSShopBuy) Reset() { *x = CSShopBuy{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSShopBuy) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSShopBuy) ProtoMessage() {} func (x *CSShopBuy) 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 CSShopBuy.ProtoReflect.Descriptor instead. func (*CSShopBuy) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{33} } func (x *CSShopBuy) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *CSShopBuy) GetCount() int32 { if x != nil { return x.Count } return 0 } //PACKET_SC_SHOPBUY type SCShopBuy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` OpRetCode OpResultCode_Game `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 CostType int32 `protobuf:"varint,3,opt,name=CostType,proto3" json:"CostType,omitempty"` //消耗类型 CostNum int32 `protobuf:"varint,4,opt,name=CostNum,proto3" json:"CostNum,omitempty"` //消耗数量 GainType int32 `protobuf:"varint,5,opt,name=GainType,proto3" json:"GainType,omitempty"` //获得类型 GainNum int32 `protobuf:"varint,6,opt,name=GainNum,proto3" json:"GainNum,omitempty"` //获得数量 } func (x *SCShopBuy) Reset() { *x = SCShopBuy{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCShopBuy) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCShopBuy) ProtoMessage() {} func (x *SCShopBuy) 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 SCShopBuy.ProtoReflect.Descriptor instead. func (*SCShopBuy) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{34} } func (x *SCShopBuy) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SCShopBuy) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCShopBuy) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *SCShopBuy) GetCostNum() int32 { if x != nil { return x.CostNum } return 0 } func (x *SCShopBuy) GetGainType() int32 { if x != nil { return x.GainType } return 0 } func (x *SCShopBuy) GetGainNum() int32 { if x != nil { return x.GainNum } return 0 } //CS_JOINGAME //请求的通知 type CSJoinGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgType int32 `protobuf:"varint,1,opt,name=MsgType,proto3" json:"MsgType,omitempty"` //0.请求信息1.确认信息 SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //type=1发送,为服务器下发的数据,原数据发送 Pos int32 `protobuf:"varint,3,opt,name=Pos,proto3" json:"Pos,omitempty"` //type=0时发送,为申请坐下的位置,索引0开始 Agree bool `protobuf:"varint,4,opt,name=Agree,proto3" json:"Agree,omitempty"` //type=1时发送,true为同意,false为拒绝 } func (x *CSJoinGame) Reset() { *x = CSJoinGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSJoinGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSJoinGame) ProtoMessage() {} func (x *CSJoinGame) 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 CSJoinGame.ProtoReflect.Descriptor instead. func (*CSJoinGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{35} } func (x *CSJoinGame) GetMsgType() int32 { if x != nil { return x.MsgType } return 0 } func (x *CSJoinGame) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *CSJoinGame) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *CSJoinGame) GetAgree() bool { if x != nil { return x.Agree } return false } //SC_TJOINGAME //请求的通知 type SCJoinGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgType int32 `protobuf:"varint,1,opt,name=MsgType,proto3" json:"MsgType,omitempty"` //0.请求信息1.确认信息 Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` //type=0为申请者的昵称,和snid同步发送,广播范围是房间内用户 SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //type=0申请者ID OpRetCode OpResultCode_Game `protobuf:"varint,4,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //type=1时,为申请的结果,为0成功,其他的为错误代码 1 座位已满 2 观战人数已满 } func (x *SCJoinGame) Reset() { *x = SCJoinGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCJoinGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCJoinGame) ProtoMessage() {} func (x *SCJoinGame) 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 SCJoinGame.ProtoReflect.Descriptor instead. func (*SCJoinGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{36} } func (x *SCJoinGame) GetMsgType() int32 { if x != nil { return x.MsgType } return 0 } func (x *SCJoinGame) GetName() string { if x != nil { return x.Name } return "" } func (x *SCJoinGame) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SCJoinGame) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //PACKET_CS_ENTERDGGAME type CSEnterDgGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LoginType int32 `protobuf:"varint,1,opt,name=LoginType,proto3" json:"LoginType,omitempty"` //0.试玩登录1.正常登录 DgGameId int32 `protobuf:"varint,2,opt,name=DgGameId,proto3" json:"DgGameId,omitempty"` //游戏ID Domains string `protobuf:"bytes,3,opt,name=Domains,proto3" json:"Domains,omitempty"` //sdk } func (x *CSEnterDgGame) Reset() { *x = CSEnterDgGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSEnterDgGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSEnterDgGame) ProtoMessage() {} func (x *CSEnterDgGame) 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 CSEnterDgGame.ProtoReflect.Descriptor instead. func (*CSEnterDgGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{37} } func (x *CSEnterDgGame) GetLoginType() int32 { if x != nil { return x.LoginType } return 0 } func (x *CSEnterDgGame) GetDgGameId() int32 { if x != nil { return x.DgGameId } return 0 } func (x *CSEnterDgGame) GetDomains() string { if x != nil { return x.Domains } return "" } type SCEnterDgGame 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"` //结果 LoginUrl string `protobuf:"bytes,2,opt,name=LoginUrl,proto3" json:"LoginUrl,omitempty"` Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` DgGameId int32 `protobuf:"varint,4,opt,name=DgGameId,proto3" json:"DgGameId,omitempty"` //游戏ID CodeId int32 `protobuf:"varint,5,opt,name=CodeId,proto3" json:"CodeId,omitempty"` Domains string `protobuf:"bytes,6,opt,name=Domains,proto3" json:"Domains,omitempty"` List []string `protobuf:"bytes,7,rep,name=List,proto3" json:"List,omitempty"` } func (x *SCEnterDgGame) Reset() { *x = SCEnterDgGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEnterDgGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEnterDgGame) ProtoMessage() {} func (x *SCEnterDgGame) 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 SCEnterDgGame.ProtoReflect.Descriptor instead. func (*SCEnterDgGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{38} } func (x *SCEnterDgGame) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCEnterDgGame) GetLoginUrl() string { if x != nil { return x.LoginUrl } return "" } func (x *SCEnterDgGame) GetToken() string { if x != nil { return x.Token } return "" } func (x *SCEnterDgGame) GetDgGameId() int32 { if x != nil { return x.DgGameId } return 0 } func (x *SCEnterDgGame) GetCodeId() int32 { if x != nil { return x.CodeId } return 0 } func (x *SCEnterDgGame) GetDomains() string { if x != nil { return x.Domains } return "" } func (x *SCEnterDgGame) GetList() []string { if x != nil { return x.List } return nil } //PACKET_CS_LEAVEDGGAME type CSLeaveDgGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSLeaveDgGame) Reset() { *x = CSLeaveDgGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLeaveDgGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLeaveDgGame) ProtoMessage() {} func (x *CSLeaveDgGame) 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 CSLeaveDgGame.ProtoReflect.Descriptor instead. func (*CSLeaveDgGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{39} } type SCLeaveDgGame 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 *SCLeaveDgGame) Reset() { *x = SCLeaveDgGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLeaveDgGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLeaveDgGame) ProtoMessage() {} func (x *SCLeaveDgGame) 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 SCLeaveDgGame.ProtoReflect.Descriptor instead. func (*SCLeaveDgGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{40} } func (x *SCLeaveDgGame) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //第三方个人账户信息统计 type CSThridAccountStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReqId int32 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` //-1返回全部平台信息,0为系统平台 } func (x *CSThridAccountStatistic) Reset() { *x = CSThridAccountStatistic{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThridAccountStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThridAccountStatistic) ProtoMessage() {} func (x *CSThridAccountStatistic) 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 CSThridAccountStatistic.ProtoReflect.Descriptor instead. func (*CSThridAccountStatistic) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{41} } func (x *CSThridAccountStatistic) GetReqId() int32 { if x != nil { return x.ReqId } return 0 } type ThridAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThridPlatformId int32 `protobuf:"varint,1,opt,name=ThridPlatformId,proto3" json:"ThridPlatformId,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` //200正常,403异常 Balance int64 `protobuf:"varint,4,opt,name=Balance,proto3" json:"Balance,omitempty"` } func (x *ThridAccount) Reset() { *x = ThridAccount{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThridAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThridAccount) ProtoMessage() {} func (x *ThridAccount) 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 ThridAccount.ProtoReflect.Descriptor instead. func (*ThridAccount) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{42} } func (x *ThridAccount) GetThridPlatformId() int32 { if x != nil { return x.ThridPlatformId } return 0 } func (x *ThridAccount) GetName() string { if x != nil { return x.Name } return "" } func (x *ThridAccount) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ThridAccount) GetBalance() int64 { if x != nil { return x.Balance } return 0 } type SCThridAccountStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReqId int32 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` Accounts []*ThridAccount `protobuf:"bytes,2,rep,name=Accounts,proto3" json:"Accounts,omitempty"` } func (x *SCThridAccountStatistic) Reset() { *x = SCThridAccountStatistic{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThridAccountStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThridAccountStatistic) ProtoMessage() {} func (x *SCThridAccountStatistic) 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 SCThridAccountStatistic.ProtoReflect.Descriptor instead. func (*SCThridAccountStatistic) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{43} } func (x *SCThridAccountStatistic) GetReqId() int32 { if x != nil { return x.ReqId } return 0 } func (x *SCThridAccountStatistic) GetAccounts() []*ThridAccount { if x != nil { return x.Accounts } return nil } //第三方个人账户余额转入转出 type CSThridAccountTransfer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromId int32 `protobuf:"varint,1,opt,name=FromId,proto3" json:"FromId,omitempty"` ToId int32 `protobuf:"varint,2,opt,name=ToId,proto3" json:"ToId,omitempty"` Amount int64 `protobuf:"varint,3,opt,name=Amount,proto3" json:"Amount,omitempty"` } func (x *CSThridAccountTransfer) Reset() { *x = CSThridAccountTransfer{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThridAccountTransfer) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThridAccountTransfer) ProtoMessage() {} func (x *CSThridAccountTransfer) 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 CSThridAccountTransfer.ProtoReflect.Descriptor instead. func (*CSThridAccountTransfer) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{44} } func (x *CSThridAccountTransfer) GetFromId() int32 { if x != nil { return x.FromId } return 0 } func (x *CSThridAccountTransfer) GetToId() int32 { if x != nil { return x.ToId } return 0 } func (x *CSThridAccountTransfer) GetAmount() int64 { if x != nil { return x.Amount } return 0 } type SCThridAccountTransfer 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"` //结果 Accounts []*ThridAccount `protobuf:"bytes,2,rep,name=Accounts,proto3" json:"Accounts,omitempty"` //OpRetCode为0时,两条数据 分别是from to } func (x *SCThridAccountTransfer) Reset() { *x = SCThridAccountTransfer{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThridAccountTransfer) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThridAccountTransfer) ProtoMessage() {} func (x *SCThridAccountTransfer) 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 SCThridAccountTransfer.ProtoReflect.Descriptor instead. func (*SCThridAccountTransfer) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{45} } func (x *SCThridAccountTransfer) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCThridAccountTransfer) GetAccounts() []*ThridAccount { if x != nil { return x.Accounts } return nil } type CSEnterThridGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThridGameId int32 `protobuf:"varint,2,opt,name=ThridGameId,proto3" json:"ThridGameId,omitempty"` //第三方游戏ID } func (x *CSEnterThridGame) Reset() { *x = CSEnterThridGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSEnterThridGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSEnterThridGame) ProtoMessage() {} func (x *CSEnterThridGame) 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 CSEnterThridGame.ProtoReflect.Descriptor instead. func (*CSEnterThridGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{46} } func (x *CSEnterThridGame) GetThridGameId() int32 { if x != nil { return x.ThridGameId } return 0 } type SCEnterThridGame 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"` //结果 EnterUrl string `protobuf:"bytes,2,opt,name=EnterUrl,proto3" json:"EnterUrl,omitempty"` ScreenOrientationType int32 `protobuf:"varint,3,opt,name=ScreenOrientationType,proto3" json:"ScreenOrientationType,omitempty"` ThridGameId int32 `protobuf:"varint,4,opt,name=ThridGameId,proto3" json:"ThridGameId,omitempty"` //第三方游戏ID } func (x *SCEnterThridGame) Reset() { *x = SCEnterThridGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCEnterThridGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCEnterThridGame) ProtoMessage() {} func (x *SCEnterThridGame) 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 SCEnterThridGame.ProtoReflect.Descriptor instead. func (*SCEnterThridGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{47} } func (x *SCEnterThridGame) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCEnterThridGame) GetEnterUrl() string { if x != nil { return x.EnterUrl } return "" } func (x *SCEnterThridGame) GetScreenOrientationType() int32 { if x != nil { return x.ScreenOrientationType } return 0 } func (x *SCEnterThridGame) GetThridGameId() int32 { if x != nil { return x.ThridGameId } return 0 } type CSLeaveThridGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSLeaveThridGame) Reset() { *x = CSLeaveThridGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLeaveThridGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLeaveThridGame) ProtoMessage() {} func (x *CSLeaveThridGame) 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 CSLeaveThridGame.ProtoReflect.Descriptor instead. func (*CSLeaveThridGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{48} } type SCLeaveThridGame 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 *SCLeaveThridGame) Reset() { *x = SCLeaveThridGame{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLeaveThridGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLeaveThridGame) ProtoMessage() {} func (x *SCLeaveThridGame) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[49] 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 SCLeaveThridGame.ProtoReflect.Descriptor instead. func (*SCLeaveThridGame) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{49} } func (x *SCLeaveThridGame) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } type CSThridGameList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSThridGameList) Reset() { *x = CSThridGameList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThridGameList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThridGameList) ProtoMessage() {} func (x *CSThridGameList) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[50] 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 CSThridGameList.ProtoReflect.Descriptor instead. func (*CSThridGameList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{50} } type ThridGameDatas struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThridGameId string `protobuf:"bytes,1,opt,name=ThridGameId,proto3" json:"ThridGameId,omitempty"` //第三方游戏ID ThridGameName string `protobuf:"bytes,2,opt,name=ThridGameName,proto3" json:"ThridGameName,omitempty"` //游戏名 } func (x *ThridGameDatas) Reset() { *x = ThridGameDatas{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThridGameDatas) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThridGameDatas) ProtoMessage() {} func (x *ThridGameDatas) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[51] 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 ThridGameDatas.ProtoReflect.Descriptor instead. func (*ThridGameDatas) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{51} } func (x *ThridGameDatas) GetThridGameId() string { if x != nil { return x.ThridGameId } return "" } func (x *ThridGameDatas) GetThridGameName() string { if x != nil { return x.ThridGameName } return "" } type ThridGamePlatforms struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThridPlatformId int32 `protobuf:"varint,1,opt,name=ThridPlatformId,proto3" json:"ThridPlatformId,omitempty"` ThridPlatformName string `protobuf:"bytes,2,opt,name=ThridPlatformName,proto3" json:"ThridPlatformName,omitempty"` //平台名 GameDatas []*ThridGameDatas `protobuf:"bytes,3,rep,name=GameDatas,proto3" json:"GameDatas,omitempty"` } func (x *ThridGamePlatforms) Reset() { *x = ThridGamePlatforms{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThridGamePlatforms) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThridGamePlatforms) ProtoMessage() {} func (x *ThridGamePlatforms) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[52] 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 ThridGamePlatforms.ProtoReflect.Descriptor instead. func (*ThridGamePlatforms) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{52} } func (x *ThridGamePlatforms) GetThridPlatformId() int32 { if x != nil { return x.ThridPlatformId } return 0 } func (x *ThridGamePlatforms) GetThridPlatformName() string { if x != nil { return x.ThridPlatformName } return "" } func (x *ThridGamePlatforms) GetGameDatas() []*ThridGameDatas { if x != nil { return x.GameDatas } return nil } type SCThridGameList 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"` //结果 GamePlatforms []*ThridGamePlatforms `protobuf:"bytes,2,rep,name=GamePlatforms,proto3" json:"GamePlatforms,omitempty"` } func (x *SCThridGameList) Reset() { *x = SCThridGameList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThridGameList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThridGameList) ProtoMessage() {} func (x *SCThridGameList) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[53] 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 SCThridGameList.ProtoReflect.Descriptor instead. func (*SCThridGameList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{53} } func (x *SCThridGameList) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCThridGameList) GetGamePlatforms() []*ThridGamePlatforms { if x != nil { return x.GamePlatforms } return nil } type CSThridGameBalanceUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSThridGameBalanceUpdate) Reset() { *x = CSThridGameBalanceUpdate{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSThridGameBalanceUpdate) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSThridGameBalanceUpdate) ProtoMessage() {} func (x *CSThridGameBalanceUpdate) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[54] 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 CSThridGameBalanceUpdate.ProtoReflect.Descriptor instead. func (*CSThridGameBalanceUpdate) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{54} } type SCThridGameBalanceUpdate 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"` //结果 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` //玩家的余额 } func (x *SCThridGameBalanceUpdate) Reset() { *x = SCThridGameBalanceUpdate{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThridGameBalanceUpdate) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThridGameBalanceUpdate) ProtoMessage() {} func (x *SCThridGameBalanceUpdate) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[55] 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 SCThridGameBalanceUpdate.ProtoReflect.Descriptor instead. func (*SCThridGameBalanceUpdate) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{55} } func (x *SCThridGameBalanceUpdate) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCThridGameBalanceUpdate) GetCoin() int64 { if x != nil { return x.Coin } return 0 } type SCThridGameBalanceUpdateState 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 *SCThridGameBalanceUpdateState) Reset() { *x = SCThridGameBalanceUpdateState{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCThridGameBalanceUpdateState) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCThridGameBalanceUpdateState) ProtoMessage() {} func (x *SCThridGameBalanceUpdateState) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[56] 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 SCThridGameBalanceUpdateState.ProtoReflect.Descriptor instead. func (*SCThridGameBalanceUpdateState) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{56} } func (x *SCThridGameBalanceUpdateState) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //创建私人房间 //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 Params []int32 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场参数 1:局数索引(从1开始) 2:中途加入 3:同IP } func (x *CSCreatePrivateRoom) Reset() { *x = CSCreatePrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[57] 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[57] 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{57} } func (x *CSCreatePrivateRoom) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *CSCreatePrivateRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } //创建私人房间 //PACKET_SC_CREATEPRIVATEROOM type SCCreatePrivateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //游戏ID GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id Params []int32 `protobuf:"varint,2,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场参数 1:局数索引(从1开始) 2:中途加入 3:同IP RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 OpRetCode OpResultCode_Game `protobuf:"varint,4,opt,name=OpRetCode,proto3,enum=gamehall.OpResultCode_Game" json:"OpRetCode,omitempty"` //结果 } func (x *SCCreatePrivateRoom) Reset() { *x = SCCreatePrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[58] 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[58] 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{58} } func (x *SCCreatePrivateRoom) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCCreatePrivateRoom) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *SCCreatePrivateRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCCreatePrivateRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } //个人创建的房间信息 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 RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 CurrRound int32 `protobuf:"varint,3,opt,name=CurrRound,proto3" json:"CurrRound,omitempty"` //当前第几轮 MaxRound int32 `protobuf:"varint,4,opt,name=MaxRound,proto3" json:"MaxRound,omitempty"` //最多多少轮 CurrNum int32 `protobuf:"varint,5,opt,name=CurrNum,proto3" json:"CurrNum,omitempty"` //当前人数 MaxPlayer int32 `protobuf:"varint,6,opt,name=MaxPlayer,proto3" json:"MaxPlayer,omitempty"` //最大人数 CreateTs int32 `protobuf:"varint,7,opt,name=CreateTs,proto3" json:"CreateTs,omitempty"` //创建时间戳 } func (x *PrivateRoomInfo) Reset() { *x = PrivateRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[59] 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[59] 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{59} } func (x *PrivateRoomInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *PrivateRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } 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() int32 { if x != nil { return x.CreateTs } return 0 } //获取代开的房间列表 //PACKET_CS_GETPRIVATEROOMLIST type CSGetPrivateRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CSGetPrivateRoomList) Reset() { *x = CSGetPrivateRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[60] 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[60] 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{60} } //PACKET_SC_GETPRIVATEROOMLIST type SCGetPrivateRoomList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Datas []*PrivateRoomInfo `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"` //房间列表 } func (x *SCGetPrivateRoomList) Reset() { *x = SCGetPrivateRoomList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[61] 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[61] 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{61} } func (x *SCGetPrivateRoomList) GetDatas() []*PrivateRoomInfo { if x != nil { return x.Datas } return nil } //获取代开的房间历史记录 //PACKET_CS_GETPRIVATEROOMHISTORY type CSGetPrivateRoomHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields QueryTime int32 `protobuf:"varint,1,opt,name=QueryTime,proto3" json:"QueryTime,omitempty"` //查询日期 YYYYMMDD } func (x *CSGetPrivateRoomHistory) Reset() { *x = CSGetPrivateRoomHistory{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGetPrivateRoomHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGetPrivateRoomHistory) ProtoMessage() {} func (x *CSGetPrivateRoomHistory) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[62] 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 CSGetPrivateRoomHistory.ProtoReflect.Descriptor instead. func (*CSGetPrivateRoomHistory) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{62} } func (x *CSGetPrivateRoomHistory) GetQueryTime() int32 { if x != nil { return x.QueryTime } return 0 } //已开房间历史记录 type PrivateRoomHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间编号 CreateTime int32 `protobuf:"varint,3,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` //创建时间,时间戳 DestroyTime int32 `protobuf:"varint,4,opt,name=DestroyTime,proto3" json:"DestroyTime,omitempty"` //结束时间,时间戳 CreateFee int32 `protobuf:"varint,5,opt,name=CreateFee,proto3" json:"CreateFee,omitempty"` //房费 } func (x *PrivateRoomHistory) Reset() { *x = PrivateRoomHistory{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateRoomHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateRoomHistory) ProtoMessage() {} func (x *PrivateRoomHistory) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[63] 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 PrivateRoomHistory.ProtoReflect.Descriptor instead. func (*PrivateRoomHistory) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{63} } func (x *PrivateRoomHistory) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *PrivateRoomHistory) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *PrivateRoomHistory) GetCreateTime() int32 { if x != nil { return x.CreateTime } return 0 } func (x *PrivateRoomHistory) GetDestroyTime() int32 { if x != nil { return x.DestroyTime } return 0 } func (x *PrivateRoomHistory) GetCreateFee() int32 { if x != nil { return x.CreateFee } return 0 } //PACKET_SC_GETPRIVATEROOMHISTORY type SCGetPrivateRoomHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields QueryTime int32 `protobuf:"varint,1,opt,name=QueryTime,proto3" json:"QueryTime,omitempty"` //查询日期 Datas []*PrivateRoomHistory `protobuf:"bytes,2,rep,name=Datas,proto3" json:"Datas,omitempty"` //历史开房记录 } func (x *SCGetPrivateRoomHistory) Reset() { *x = SCGetPrivateRoomHistory{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGetPrivateRoomHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGetPrivateRoomHistory) ProtoMessage() {} func (x *SCGetPrivateRoomHistory) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[64] 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 SCGetPrivateRoomHistory.ProtoReflect.Descriptor instead. func (*SCGetPrivateRoomHistory) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{64} } func (x *SCGetPrivateRoomHistory) GetQueryTime() int32 { if x != nil { return x.QueryTime } return 0 } func (x *SCGetPrivateRoomHistory) GetDatas() []*PrivateRoomHistory { if x != nil { return x.Datas } return nil } //PACKET_CS_DESTROYPRIVATEROOM type CSDestroyPrivateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` } func (x *CSDestroyPrivateRoom) Reset() { *x = CSDestroyPrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSDestroyPrivateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSDestroyPrivateRoom) ProtoMessage() {} func (x *CSDestroyPrivateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[65] 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 CSDestroyPrivateRoom.ProtoReflect.Descriptor instead. func (*CSDestroyPrivateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{65} } func (x *CSDestroyPrivateRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } //PACKET_SC_DESTROYPRIVATEROOM type SCDestroyPrivateRoom 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"` //结果 State int32 `protobuf:"varint,3,opt,name=State,proto3" json:"State,omitempty"` //状态 0:删除中 1:已删除 } func (x *SCDestroyPrivateRoom) Reset() { *x = SCDestroyPrivateRoom{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCDestroyPrivateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCDestroyPrivateRoom) ProtoMessage() {} func (x *SCDestroyPrivateRoom) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[66] 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 SCDestroyPrivateRoom.ProtoReflect.Descriptor instead. func (*SCDestroyPrivateRoom) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{66} } func (x *SCDestroyPrivateRoom) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *SCDestroyPrivateRoom) GetOpRetCode() OpResultCode_Game { if x != nil { return x.OpRetCode } return OpResultCode_Game_OPRC_Sucess_Game } func (x *SCDestroyPrivateRoom) GetState() int32 { if x != nil { return x.State } return 0 } //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 } func (x *CSQueryRoomInfo) Reset() { *x = CSQueryRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[67] 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[67] 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{67} } 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 } //个人创建的房间信息 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[68] 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[68] 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{68} } 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[69] 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[69] 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{69} } 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 } //注册观察者,用于推送游戏的状态信息 //PACKET_CS_GAMEOBSERVE type CSGameObserve struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏ID StartOrEnd bool `protobuf:"varint,2,opt,name=StartOrEnd,proto3" json:"StartOrEnd,omitempty"` //打开或者关闭 } func (x *CSGameObserve) Reset() { *x = CSGameObserve{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSGameObserve) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSGameObserve) ProtoMessage() {} func (x *CSGameObserve) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[70] 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 CSGameObserve.ProtoReflect.Descriptor instead. func (*CSGameObserve) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{70} } func (x *CSGameObserve) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *CSGameObserve) GetStartOrEnd() bool { if x != nil { return x.StartOrEnd } return false } //PACKET_SC_GAMESUBLIST type GameSubRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` LogCnt int32 `protobuf:"varint,2,opt,name=LogCnt,proto3" json:"LogCnt,omitempty"` NewLog int32 `protobuf:"varint,3,opt,name=NewLog,proto3" json:"NewLog,omitempty"` //新结果 TotleLog []int32 `protobuf:"varint,4,rep,packed,name=TotleLog,proto3" json:"TotleLog,omitempty"` //最近几局的中奖结果 } func (x *GameSubRecord) Reset() { *x = GameSubRecord{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameSubRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameSubRecord) ProtoMessage() {} func (x *GameSubRecord) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[71] 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 GameSubRecord.ProtoReflect.Descriptor instead. func (*GameSubRecord) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{71} } func (x *GameSubRecord) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GameSubRecord) GetLogCnt() int32 { if x != nil { return x.LogCnt } return 0 } func (x *GameSubRecord) GetNewLog() int32 { if x != nil { return x.NewLog } return 0 } func (x *GameSubRecord) GetTotleLog() []int32 { if x != nil { return x.TotleLog } return nil } type SCGameSubList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*GameSubRecord `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *SCGameSubList) Reset() { *x = SCGameSubList{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCGameSubList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCGameSubList) ProtoMessage() {} func (x *SCGameSubList) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[72] 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 SCGameSubList.ProtoReflect.Descriptor instead. func (*SCGameSubList) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{72} } func (x *SCGameSubList) GetList() []*GameSubRecord { if x != nil { return x.List } return nil } //游戏中的状态 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[73] 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[73] 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{73} } 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 } 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[74] 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[74] 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{74} } func (x *SCGameState) GetList() []*GameState { if x != nil { return x.List } return nil } //奖金池数据 type LotteryData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` Value int64 `protobuf:"varint,2,opt,name=Value,proto3" json:"Value,omitempty"` } func (x *LotteryData) Reset() { *x = LotteryData{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LotteryData) String() string { return protoimpl.X.MessageStringOf(x) } func (*LotteryData) ProtoMessage() {} func (x *LotteryData) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[75] 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 LotteryData.ProtoReflect.Descriptor instead. func (*LotteryData) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{75} } func (x *LotteryData) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *LotteryData) GetValue() int64 { if x != nil { return x.Value } return 0 } //奖金池同步 PACKET_SC_LOTTERYSYNC type SCLotterySync struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Datas []*LotteryData `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"` } func (x *SCLotterySync) Reset() { *x = SCLotterySync{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLotterySync) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLotterySync) ProtoMessage() {} func (x *SCLotterySync) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[76] 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 SCLotterySync.ProtoReflect.Descriptor instead. func (*SCLotterySync) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{76} } func (x *SCLotterySync) GetDatas() []*LotteryData { if x != nil { return x.Datas } return nil } //PACKET_CS_LOTTERYLOG = 2288; type CSLotteryLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` } func (x *CSLotteryLog) Reset() { *x = CSLotteryLog{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSLotteryLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSLotteryLog) ProtoMessage() {} func (x *CSLotteryLog) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[77] 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 CSLotteryLog.ProtoReflect.Descriptor instead. func (*CSLotteryLog) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{77} } func (x *CSLotteryLog) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } //奖池中奖记录 type LotteryLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Time int32 `protobuf:"varint,1,opt,name=Time,proto3" json:"Time,omitempty"` NickName string `protobuf:"bytes,2,opt,name=NickName,proto3" json:"NickName,omitempty"` Card []int32 `protobuf:"varint,3,rep,packed,name=Card,proto3" json:"Card,omitempty"` Kind int32 `protobuf:"varint,4,opt,name=Kind,proto3" json:"Kind,omitempty"` Coin int32 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` } func (x *LotteryLog) Reset() { *x = LotteryLog{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LotteryLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*LotteryLog) ProtoMessage() {} func (x *LotteryLog) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[78] 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 LotteryLog.ProtoReflect.Descriptor instead. func (*LotteryLog) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{78} } func (x *LotteryLog) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *LotteryLog) GetNickName() string { if x != nil { return x.NickName } return "" } func (x *LotteryLog) GetCard() []int32 { if x != nil { return x.Card } return nil } func (x *LotteryLog) GetKind() int32 { if x != nil { return x.Kind } return 0 } func (x *LotteryLog) GetCoin() int32 { if x != nil { return x.Coin } return 0 } //PACKET_SC_LOTTERYLOG = 2289; type SCLotteryLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` Logs []*LotteryLog `protobuf:"bytes,2,rep,name=Logs,proto3" json:"Logs,omitempty"` } func (x *SCLotteryLog) Reset() { *x = SCLotteryLog{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLotteryLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLotteryLog) ProtoMessage() {} func (x *SCLotteryLog) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[79] 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 SCLotteryLog.ProtoReflect.Descriptor instead. func (*SCLotteryLog) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{79} } func (x *SCLotteryLog) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCLotteryLog) GetLogs() []*LotteryLog { if x != nil { return x.Logs } return nil } //PACKET_SC_LOTTERYBILL = 2290 type SCLotteryBill struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` Kind int32 `protobuf:"varint,4,opt,name=Kind,proto3" json:"Kind,omitempty"` Card []int32 `protobuf:"varint,5,rep,packed,name=Card,proto3" json:"Card,omitempty"` Value int64 `protobuf:"varint,6,opt,name=Value,proto3" json:"Value,omitempty"` } func (x *SCLotteryBill) Reset() { *x = SCLotteryBill{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCLotteryBill) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCLotteryBill) ProtoMessage() {} func (x *SCLotteryBill) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[80] 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 SCLotteryBill.ProtoReflect.Descriptor instead. func (*SCLotteryBill) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{80} } func (x *SCLotteryBill) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *SCLotteryBill) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SCLotteryBill) GetName() string { if x != nil { return x.Name } return "" } func (x *SCLotteryBill) GetKind() int32 { if x != nil { return x.Kind } return 0 } func (x *SCLotteryBill) GetCard() []int32 { if x != nil { return x.Card } return nil } func (x *SCLotteryBill) GetValue() int64 { if x != nil { return x.Value } 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[81] 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[81] 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{81} } 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 = 2231 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[82] 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[82] 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{82} } 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[83] 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[83] 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{83} } 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 = 2232 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[84] 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[84] 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{84} } 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[85] 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[85] 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{85} } 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 GameCfg []int32 `protobuf:"varint,1,rep,packed,name=GameCfg,proto3" json:"GameCfg,omitempty"` //界面入口开关 } func (x *SCChangeEntrySwitch) Reset() { *x = SCChangeEntrySwitch{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[86] 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[86] 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{86} } func (x *SCChangeEntrySwitch) GetGameCfg() []int32 { if x != nil { return x.GameCfg } return nil } //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[87] 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[87] 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{87} } 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[88] 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[88] 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{88} } 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[89] 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[89] 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{89} } 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[90] 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[90] 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{90} } 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 } //PACKET_CS_UPLOADLOC type CSUploadLoc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Longitude int32 `protobuf:"varint,1,opt,name=Longitude,proto3" json:"Longitude,omitempty"` //经度 Latitude int32 `protobuf:"varint,2,opt,name=Latitude,proto3" json:"Latitude,omitempty"` //纬度 City string `protobuf:"bytes,3,opt,name=City,proto3" json:"City,omitempty"` //城市 例:中国-河南省-郑州市 } func (x *CSUploadLoc) Reset() { *x = CSUploadLoc{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSUploadLoc) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSUploadLoc) ProtoMessage() {} func (x *CSUploadLoc) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[91] 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 CSUploadLoc.ProtoReflect.Descriptor instead. func (*CSUploadLoc) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{91} } func (x *CSUploadLoc) GetLongitude() int32 { if x != nil { return x.Longitude } return 0 } func (x *CSUploadLoc) GetLatitude() int32 { if x != nil { return x.Latitude } return 0 } func (x *CSUploadLoc) GetCity() string { if x != nil { return x.City } return "" } //PACKET_SC_UPLOADLOC type SCUploadLoc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` Longitude int32 `protobuf:"varint,2,opt,name=Longitude,proto3" json:"Longitude,omitempty"` //经度 Latitude int32 `protobuf:"varint,3,opt,name=Latitude,proto3" json:"Latitude,omitempty"` //纬度 City string `protobuf:"bytes,4,opt,name=City,proto3" json:"City,omitempty"` //城市 例:中国-河南省-郑州市 } func (x *SCUploadLoc) Reset() { *x = SCUploadLoc{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCUploadLoc) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCUploadLoc) ProtoMessage() {} func (x *SCUploadLoc) ProtoReflect() protoreflect.Message { mi := &file_game_proto_msgTypes[92] 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 SCUploadLoc.ProtoReflect.Descriptor instead. func (*SCUploadLoc) Descriptor() ([]byte, []int) { return file_game_proto_rawDescGZIP(), []int{92} } func (x *SCUploadLoc) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *SCUploadLoc) GetLongitude() int32 { if x != nil { return x.Longitude } return 0 } func (x *SCUploadLoc) GetLatitude() int32 { if x != nil { return x.Latitude } return 0 } func (x *SCUploadLoc) GetCity() string { if x != nil { return x.City } return "" } //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[93] 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[93] 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{93} } 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[94] 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[94] 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{94} } 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[95] 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[95] 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{95} } 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"` } func (x *CommonNotice) Reset() { *x = CommonNotice{} if protoimpl.UnsafeEnabled { mi := &file_game_proto_msgTypes[96] 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[96] 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{96} } 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 } 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[97] 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[97] 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{97} } 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[98] 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[98] 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{98} } 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[99] 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[99] 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{99} } // 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[100] 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[100] 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{100} } 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[101] 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[101] 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{101} } 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 } 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, 0x25, 0x0a, 0x0b, 0x43, 0x53, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x0b, 0x53, 0x43, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 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, 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, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x53, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x22, 0x25, 0x0a, 0x0b, 0x53, 0x43, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x75, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x22, 0x72, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x43, 0x53, 0x48, 0x61, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x08, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x3f, 0x0a, 0x0d, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x08, 0x48, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x48, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe4, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x48, 0x61, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x48, 0x61, 0x6c, 0x6c, 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, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x41, 0x64, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x41, 0x64, 0x64, 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, 0x28, 0x0a, 0x05, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x48, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x48, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x48, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x11, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 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, 0x30, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x11, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 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, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x5d, 0x0a, 0x11, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 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, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 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, 0x3d, 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, 0x22, 0xdc, 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, 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, 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, 0x38, 0x0a, 0x0c, 0x43, 0x53, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 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, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x84, 0x03, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 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, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x0c, 0x53, 0x43, 0x47, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x25, 0x0a, 0x04, 0x52, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x52, 0x04, 0x52, 0x65, 0x63, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0a, 0x43, 0x53, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x63, 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, 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, 0x41, 0x0a, 0x0d, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 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, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 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, 0x31, 0x0a, 0x09, 0x43, 0x53, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x09, 0x53, 0x43, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 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, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x22, 0x62, 0x0a, 0x0a, 0x43, 0x53, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x41, 0x67, 0x72, 0x65, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x0a, 0x53, 0x43, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 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, 0x63, 0x0a, 0x0d, 0x43, 0x53, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x0d, 0x53, 0x43, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 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, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x43, 0x53, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x0d, 0x53, 0x43, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x67, 0x47, 0x61, 0x6d, 0x65, 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, 0x2f, 0x0a, 0x17, 0x43, 0x53, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x0c, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x43, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x43, 0x53, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x6f, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x43, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 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, 0x32, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x34, 0x0a, 0x10, 0x43, 0x53, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x53, 0x43, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 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, 0x1a, 0x0a, 0x08, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x53, 0x43, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 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, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x72, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 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, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x53, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x69, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5a, 0x0a, 0x1d, 0x53, 0x43, 0x54, 0x68, 0x72, 0x69, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0x4d, 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, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x13, 0x53, 0x43, 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, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 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, 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, 0xd7, 0x01, 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, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 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, 0x04, 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, 0x05, 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, 0x06, 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, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x53, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x47, 0x0a, 0x14, 0x53, 0x43, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 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, 0x37, 0x0a, 0x17, 0x43, 0x53, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x22, 0x6b, 0x0a, 0x17, 0x53, 0x43, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x2e, 0x0a, 0x14, 0x43, 0x53, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 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, 0x22, 0x7f, 0x0a, 0x14, 0x53, 0x43, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 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, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x57, 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, 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, 0x47, 0x0a, 0x0d, 0x43, 0x53, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 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, 0x1e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x72, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x72, 0x45, 0x6e, 0x64, 0x22, 0x7b, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x65, 0x77, 0x4c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4e, 0x65, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x22, 0x3c, 0x0a, 0x0d, 0x53, 0x43, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 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, 0x43, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 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, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3c, 0x0a, 0x0d, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x2e, 0x0a, 0x0c, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x67, 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, 0x22, 0x78, 0x0a, 0x0a, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x67, 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, 0x28, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x0d, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x42, 0x69, 0x6c, 0x6c, 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, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x2f, 0x0a, 0x13, 0x53, 0x43, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 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, 0x5b, 0x0a, 0x0b, 0x43, 0x53, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x22, 0x6d, 0x0a, 0x0b, 0x53, 0x43, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 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, 0xe2, 0x02, 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, 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, 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, 0x2a, 0xe6, 0x09, 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, 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, 0xd0, 0x17, 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, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x99, 0x11, 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, 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, 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, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41, 0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x43, 0x48, 0x47, 0x10, 0xa8, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb6, 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, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10, 0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 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, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xdd, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xde, 0x11, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 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, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe7, 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, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 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, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10, 0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c, 0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4, 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, 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, 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, 2) var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 102) var file_game_proto_goTypes = []interface{}{ (OpResultCode_Game)(0), // 0: gamehall.OpResultCode_Game (GameHallPacketID)(0), // 1: gamehall.GameHallPacketID (*CSEnterHall)(nil), // 2: gamehall.CSEnterHall (*SCEnterHall)(nil), // 3: gamehall.SCEnterHall (*CSLeaveHall)(nil), // 4: gamehall.CSLeaveHall (*SCLeaveHall)(nil), // 5: gamehall.SCLeaveHall (*RoomPlayerInfo)(nil), // 6: gamehall.RoomPlayerInfo (*RoomInfo)(nil), // 7: gamehall.RoomInfo (*CSHallRoomList)(nil), // 8: gamehall.CSHallRoomList (*HallInfo)(nil), // 9: gamehall.HallInfo (*HallPlayerNum)(nil), // 10: gamehall.HallPlayerNum (*SCHallRoomList)(nil), // 11: gamehall.SCHallRoomList (*SCRoomPlayerEnter)(nil), // 12: gamehall.SCRoomPlayerEnter (*SCRoomPlayerLeave)(nil), // 13: gamehall.SCRoomPlayerLeave (*SCRoomStateChange)(nil), // 14: gamehall.SCRoomStateChange (*CSCreateRoom)(nil), // 15: gamehall.CSCreateRoom (*SCCreateRoom)(nil), // 16: gamehall.SCCreateRoom (*CSDestroyRoom)(nil), // 17: gamehall.CSDestroyRoom (*SCDestroyRoom)(nil), // 18: gamehall.SCDestroyRoom (*CSEnterRoom)(nil), // 19: gamehall.CSEnterRoom (*SCEnterRoom)(nil), // 20: gamehall.SCEnterRoom (*CSLeaveRoom)(nil), // 21: gamehall.CSLeaveRoom (*SCLeaveRoom)(nil), // 22: gamehall.SCLeaveRoom (*CSReturnRoom)(nil), // 23: gamehall.CSReturnRoom (*SCReturnRoom)(nil), // 24: gamehall.SCReturnRoom (*CSGetGameRec)(nil), // 25: gamehall.CSGetGameRec (*PlayerGameRec)(nil), // 26: gamehall.PlayerGameRec (*GameRec)(nil), // 27: gamehall.GameRec (*SCGetGameRec)(nil), // 28: gamehall.SCGetGameRec (*CSShareSuc)(nil), // 29: gamehall.CSShareSuc (*SCShareSuc)(nil), // 30: gamehall.SCShareSuc (*CSForceStart)(nil), // 31: gamehall.CSForceStart (*SCForceStart)(nil), // 32: gamehall.SCForceStart (*CSInviteRobot)(nil), // 33: gamehall.CSInviteRobot (*CSPlayerSwithFlag)(nil), // 34: gamehall.CSPlayerSwithFlag (*CSShopBuy)(nil), // 35: gamehall.CSShopBuy (*SCShopBuy)(nil), // 36: gamehall.SCShopBuy (*CSJoinGame)(nil), // 37: gamehall.CSJoinGame (*SCJoinGame)(nil), // 38: gamehall.SCJoinGame (*CSEnterDgGame)(nil), // 39: gamehall.CSEnterDgGame (*SCEnterDgGame)(nil), // 40: gamehall.SCEnterDgGame (*CSLeaveDgGame)(nil), // 41: gamehall.CSLeaveDgGame (*SCLeaveDgGame)(nil), // 42: gamehall.SCLeaveDgGame (*CSThridAccountStatistic)(nil), // 43: gamehall.CSThridAccountStatistic (*ThridAccount)(nil), // 44: gamehall.ThridAccount (*SCThridAccountStatistic)(nil), // 45: gamehall.SCThridAccountStatistic (*CSThridAccountTransfer)(nil), // 46: gamehall.CSThridAccountTransfer (*SCThridAccountTransfer)(nil), // 47: gamehall.SCThridAccountTransfer (*CSEnterThridGame)(nil), // 48: gamehall.CSEnterThridGame (*SCEnterThridGame)(nil), // 49: gamehall.SCEnterThridGame (*CSLeaveThridGame)(nil), // 50: gamehall.CSLeaveThridGame (*SCLeaveThridGame)(nil), // 51: gamehall.SCLeaveThridGame (*CSThridGameList)(nil), // 52: gamehall.CSThridGameList (*ThridGameDatas)(nil), // 53: gamehall.ThridGameDatas (*ThridGamePlatforms)(nil), // 54: gamehall.ThridGamePlatforms (*SCThridGameList)(nil), // 55: gamehall.SCThridGameList (*CSThridGameBalanceUpdate)(nil), // 56: gamehall.CSThridGameBalanceUpdate (*SCThridGameBalanceUpdate)(nil), // 57: gamehall.SCThridGameBalanceUpdate (*SCThridGameBalanceUpdateState)(nil), // 58: gamehall.SCThridGameBalanceUpdateState (*CSCreatePrivateRoom)(nil), // 59: gamehall.CSCreatePrivateRoom (*SCCreatePrivateRoom)(nil), // 60: gamehall.SCCreatePrivateRoom (*PrivateRoomInfo)(nil), // 61: gamehall.PrivateRoomInfo (*CSGetPrivateRoomList)(nil), // 62: gamehall.CSGetPrivateRoomList (*SCGetPrivateRoomList)(nil), // 63: gamehall.SCGetPrivateRoomList (*CSGetPrivateRoomHistory)(nil), // 64: gamehall.CSGetPrivateRoomHistory (*PrivateRoomHistory)(nil), // 65: gamehall.PrivateRoomHistory (*SCGetPrivateRoomHistory)(nil), // 66: gamehall.SCGetPrivateRoomHistory (*CSDestroyPrivateRoom)(nil), // 67: gamehall.CSDestroyPrivateRoom (*SCDestroyPrivateRoom)(nil), // 68: gamehall.SCDestroyPrivateRoom (*CSQueryRoomInfo)(nil), // 69: gamehall.CSQueryRoomInfo (*QRoomInfo)(nil), // 70: gamehall.QRoomInfo (*SCQueryRoomInfo)(nil), // 71: gamehall.SCQueryRoomInfo (*CSGameObserve)(nil), // 72: gamehall.CSGameObserve (*GameSubRecord)(nil), // 73: gamehall.GameSubRecord (*SCGameSubList)(nil), // 74: gamehall.SCGameSubList (*GameState)(nil), // 75: gamehall.GameState (*SCGameState)(nil), // 76: gamehall.SCGameState (*LotteryData)(nil), // 77: gamehall.LotteryData (*SCLotterySync)(nil), // 78: gamehall.SCLotterySync (*CSLotteryLog)(nil), // 79: gamehall.CSLotteryLog (*LotteryLog)(nil), // 80: gamehall.LotteryLog (*SCLotteryLog)(nil), // 81: gamehall.SCLotteryLog (*SCLotteryBill)(nil), // 82: gamehall.SCLotteryBill (*GameConfig1)(nil), // 83: gamehall.GameConfig1 (*CSGetGameConfig)(nil), // 84: gamehall.CSGetGameConfig (*ChessRankInfo)(nil), // 85: gamehall.ChessRankInfo (*SCGetGameConfig)(nil), // 86: gamehall.SCGetGameConfig (*SCChangeGameStatus)(nil), // 87: gamehall.SCChangeGameStatus (*SCChangeEntrySwitch)(nil), // 88: gamehall.SCChangeEntrySwitch (*CSEnterGame)(nil), // 89: gamehall.CSEnterGame (*SCEnterGame)(nil), // 90: gamehall.SCEnterGame (*CSQuitGame)(nil), // 91: gamehall.CSQuitGame (*SCQuitGame)(nil), // 92: gamehall.SCQuitGame (*CSUploadLoc)(nil), // 93: gamehall.CSUploadLoc (*SCUploadLoc)(nil), // 94: gamehall.SCUploadLoc (*CSAudienceSit)(nil), // 95: gamehall.CSAudienceSit (*SCAudienceSit)(nil), // 96: gamehall.SCAudienceSit (*CSRecordAndNotice)(nil), // 97: gamehall.CSRecordAndNotice (*CommonNotice)(nil), // 98: gamehall.CommonNotice (*PlayerRecord)(nil), // 99: gamehall.PlayerRecord (*SCRecordAndNotice)(nil), // 100: gamehall.SCRecordAndNotice (*SCNoticeChange)(nil), // 101: gamehall.SCNoticeChange (*CSRoomEvent)(nil), // 102: gamehall.CSRoomEvent (*SCRoomEvent)(nil), // 103: gamehall.SCRoomEvent } var file_game_proto_depIdxs = []int32{ 0, // 0: gamehall.SCEnterHall.OpRetCode:type_name -> gamehall.OpResultCode_Game 6, // 1: gamehall.RoomInfo.Players:type_name -> gamehall.RoomPlayerInfo 9, // 2: gamehall.HallPlayerNum.HallData:type_name -> gamehall.HallInfo 7, // 3: gamehall.SCHallRoomList.Rooms:type_name -> gamehall.RoomInfo 9, // 4: gamehall.SCHallRoomList.HallData:type_name -> gamehall.HallInfo 6, // 5: gamehall.SCRoomPlayerEnter.Player:type_name -> gamehall.RoomPlayerInfo 0, // 6: gamehall.SCCreateRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 7: gamehall.SCDestroyRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 8: gamehall.SCEnterRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 9: gamehall.SCLeaveRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 10: gamehall.SCReturnRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 26, // 11: gamehall.GameRec.Datas:type_name -> gamehall.PlayerGameRec 27, // 12: gamehall.SCGetGameRec.Recs:type_name -> gamehall.GameRec 0, // 13: gamehall.SCShareSuc.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 14: gamehall.SCForceStart.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 15: gamehall.SCShopBuy.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 16: gamehall.SCJoinGame.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 17: gamehall.SCEnterDgGame.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 18: gamehall.SCLeaveDgGame.OpRetCode:type_name -> gamehall.OpResultCode_Game 44, // 19: gamehall.SCThridAccountStatistic.Accounts:type_name -> gamehall.ThridAccount 0, // 20: gamehall.SCThridAccountTransfer.OpRetCode:type_name -> gamehall.OpResultCode_Game 44, // 21: gamehall.SCThridAccountTransfer.Accounts:type_name -> gamehall.ThridAccount 0, // 22: gamehall.SCEnterThridGame.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 23: gamehall.SCLeaveThridGame.OpRetCode:type_name -> gamehall.OpResultCode_Game 53, // 24: gamehall.ThridGamePlatforms.GameDatas:type_name -> gamehall.ThridGameDatas 0, // 25: gamehall.SCThridGameList.OpRetCode:type_name -> gamehall.OpResultCode_Game 54, // 26: gamehall.SCThridGameList.GamePlatforms:type_name -> gamehall.ThridGamePlatforms 0, // 27: gamehall.SCThridGameBalanceUpdate.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 28: gamehall.SCThridGameBalanceUpdateState.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 29: gamehall.SCCreatePrivateRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 61, // 30: gamehall.SCGetPrivateRoomList.Datas:type_name -> gamehall.PrivateRoomInfo 65, // 31: gamehall.SCGetPrivateRoomHistory.Datas:type_name -> gamehall.PrivateRoomHistory 0, // 32: gamehall.SCDestroyPrivateRoom.OpRetCode:type_name -> gamehall.OpResultCode_Game 70, // 33: gamehall.SCQueryRoomInfo.RoomInfo:type_name -> gamehall.QRoomInfo 0, // 34: gamehall.SCQueryRoomInfo.OpRetCode:type_name -> gamehall.OpResultCode_Game 73, // 35: gamehall.SCGameSubList.List:type_name -> gamehall.GameSubRecord 75, // 36: gamehall.SCGameState.List:type_name -> gamehall.GameState 77, // 37: gamehall.SCLotterySync.Datas:type_name -> gamehall.LotteryData 80, // 38: gamehall.SCLotteryLog.Logs:type_name -> gamehall.LotteryLog 83, // 39: gamehall.SCGetGameConfig.GameCfg:type_name -> gamehall.GameConfig1 85, // 40: gamehall.SCGetGameConfig.ChessRanks:type_name -> gamehall.ChessRankInfo 83, // 41: gamehall.SCChangeGameStatus.GameCfg:type_name -> gamehall.GameConfig1 0, // 42: gamehall.SCEnterGame.OpCode:type_name -> gamehall.OpResultCode_Game 0, // 43: gamehall.SCQuitGame.OpCode:type_name -> gamehall.OpResultCode_Game 0, // 44: gamehall.SCAudienceSit.OpCode:type_name -> gamehall.OpResultCode_Game 0, // 45: gamehall.SCRecordAndNotice.OpCode:type_name -> gamehall.OpResultCode_Game 98, // 46: gamehall.SCRecordAndNotice.List:type_name -> gamehall.CommonNotice 99, // 47: gamehall.SCRecordAndNotice.Glist:type_name -> gamehall.PlayerRecord 0, // 48: gamehall.SCRoomEvent.OpCode:type_name -> gamehall.OpResultCode_Game 49, // [49:49] is the sub-list for method output_type 49, // [49:49] is the sub-list for method input_type 49, // [49:49] is the sub-list for extension type_name 49, // [49:49] is the sub-list for extension extendee 0, // [0:49] 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.(*CSEnterHall); 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.(*SCEnterHall); 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.(*CSLeaveHall); 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.(*SCLeaveHall); 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.(*RoomPlayerInfo); 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.(*RoomInfo); 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.(*CSHallRoomList); 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.(*HallInfo); 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.(*HallPlayerNum); 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.(*SCHallRoomList); 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.(*SCRoomPlayerEnter); 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.(*SCRoomPlayerLeave); 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.(*SCRoomStateChange); 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.(*CSCreateRoom); 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.(*SCCreateRoom); 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.(*CSDestroyRoom); 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.(*SCDestroyRoom); 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.(*CSEnterRoom); 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.(*SCEnterRoom); 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.(*CSLeaveRoom); 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.(*SCLeaveRoom); 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.(*CSReturnRoom); 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.(*SCReturnRoom); 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.(*CSGetGameRec); 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.(*PlayerGameRec); 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.(*GameRec); 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.(*SCGetGameRec); 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.(*CSShareSuc); 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.(*SCShareSuc); 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.(*CSForceStart); 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.(*SCForceStart); 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.(*CSInviteRobot); 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.(*CSPlayerSwithFlag); 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.(*CSShopBuy); 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.(*SCShopBuy); 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.(*CSJoinGame); 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.(*SCJoinGame); 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.(*CSEnterDgGame); 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.(*SCEnterDgGame); 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.(*CSLeaveDgGame); 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.(*SCLeaveDgGame); 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.(*CSThridAccountStatistic); 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.(*ThridAccount); 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.(*SCThridAccountStatistic); 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.(*CSThridAccountTransfer); 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.(*SCThridAccountTransfer); 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.(*CSEnterThridGame); 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.(*SCEnterThridGame); 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.(*CSLeaveThridGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLeaveThridGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSThridGameList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThridGameDatas); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThridGamePlatforms); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThridGameList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSThridGameBalanceUpdate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThridGameBalanceUpdate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCThridGameBalanceUpdateState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[57].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[58].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[59].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[60].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[61].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[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGetPrivateRoomHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateRoomHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGetPrivateRoomHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSDestroyPrivateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCDestroyPrivateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[67].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[68].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[69].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[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSGameObserve); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameSubRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCGameSubList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[73].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[74].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[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LotteryData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLotterySync); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSLotteryLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LotteryLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLotteryLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCLotteryBill); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[81].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[82].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[83].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[84].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[85].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[86].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[87].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[88].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[89].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[90].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[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSUploadLoc); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCUploadLoc); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_game_proto_msgTypes[93].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[94].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[95].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[96].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[97].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[98].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[99].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[100].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[101].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 } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_game_proto_rawDesc, NumEnums: 2, NumMessages: 102, 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 }