From ca4a593d69f3f2442a2cbe43baef074b1b640a89 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:17:07 +0800 Subject: [PATCH 001/104] =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/ClusterFunc.go | 2 +- src/server/conf/json.go | 1 + src/server/conf/server.json | 5 ++++- src/server/game/ClusterMgr.go | 16 ++++++++++++++++ src/server/game/FriendMgr.go | 11 +++++++++++ src/server/game/mod/msg/Msg.go | 4 ++++ 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/server/cluster/ClusterFunc.go b/src/server/cluster/ClusterFunc.go index 6bdcd475..b610540b 100644 --- a/src/server/cluster/ClusterFunc.go +++ b/src/server/cluster/ClusterFunc.go @@ -126,6 +126,7 @@ func SendServerMsg(m *msg.Msg, serverId int) error { } func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { + m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) if v, ok := serverAgent.Load(serverId); ok { data, err := GoUtil.GobMarshal(m) if err != nil { @@ -134,7 +135,6 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { } v.(network.Agent).WriteMsg(data) } - m.UniKey = GoUtil.UniKey("clusterGlobal") newChan := make(chan *msg.Msg, 1) registerChanel(m.UniKey, newChan) timeout := time.After(15 * time.Second) diff --git a/src/server/conf/json.go b/src/server/conf/json.go index 471018f0..64bd3ec7 100644 --- a/src/server/conf/json.go +++ b/src/server/conf/json.go @@ -47,6 +47,7 @@ var Server struct { ListenAddr string CenterAddr string + CenterNode int RemoteAddr string GameConfPath string diff --git a/src/server/conf/server.json b/src/server/conf/server.json index e139badd..c6779e49 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -24,6 +24,10 @@ "ServerStatus" : 1, "ServerCenter" : 1, "GameConfPath": "D:/Github/pet_home_server/src/server/gamedata/config/", + + "ListenAddr":":9001", + "CenterAddr": "pethome.bywaystudios.com:9000", + "RemoteAddr":"host.docker.internal:9001", "RedisAddr":"127.0.0.1", "RedisPort" :"6379", @@ -35,7 +39,6 @@ "RedisConnType":"Direct", "GoogleVerify":false, - "RemoteAddr":"host.docker.internal:9001", "Partition":3, "KafkaHost":"kafka-server", "CountryCode":"004", diff --git a/src/server/game/ClusterMgr.go b/src/server/game/ClusterMgr.go index 6eec04b3..e3b1ba4e 100644 --- a/src/server/game/ClusterMgr.go +++ b/src/server/game/ClusterMgr.go @@ -37,4 +37,20 @@ func init() { RegisterClusterHandler(msg.HANDLE_TYPE_REQ_CARD, FriendMgrSend) RegisterClusterHandler(msg.HANDLE_TYPE_AGREE_CARD, FriendMgrSend) RegisterClusterHandler(msg.CLUSTER_FRIEND_SYNC, ClusterFriendSync) + RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, champshipInrankHandler) + RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_RANK_INFO, champshipRankInfoHandler) +} + +func champshipInrankHandler(m *msg.Msg) error { + G_GameLogicPtr.ChampshipMgrSend(m) + return nil +} + +func champshipRankInfoHandler(m *msg.Msg) error { + data := G_GameLogicPtr.ChampshipMgrCall(m) + m.To = m.From + m.From = 0 + m.Extra = data + FriendMgrSend(m) + return nil } diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index 033029a3..b571cc37 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -90,6 +90,8 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_SET, f.SetVarUserData) f.RegisterHandler(msg.HANDLE_TYPE_VAR_EXPIRE_SET, f.SetExpireVarData) + + f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_LOGIN, f.SendMsgToCenter) } func (f *FriendMgr) getData() *FirendData { @@ -252,6 +254,15 @@ func ClusterFriendSync(m *msg.Msg) error { return nil } +// 异步发送消息给中心服 +func (f *FriendMgr) SendMsgToCenter(m *msg.Msg) (interface{}, error) { + return nil, mergeCluster.SendServerMsg(m, conf.Server.CenterNode) +} + +func (f *FriendMgr) CallMsgToCenter(m *msg.Msg) (interface{}, error) { + return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) +} + func FriendMgrCall(m *msg.Msg) interface{} { ToServer := GoUtil.GetServerIdByUid(m.To) if ToServer != conf.Server.ServerID { diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index fdbc64ea..269987be 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -107,6 +107,10 @@ const ( HANDLE_TYPE_FRIEND_GREETING_REPLY // 好友问候回复 HANDLE_TYPE_FRIEND_SPONSOER // 好友赞助体力 + + HANDLE_TYPE_CHAMPSHIP_LOGIN // 锦标赛登录 + HANDLE_TYPE_CHAMPSHIP_RANK_INFO // 锦标赛排名信息 + ) const ( From 8c5b63a49aace4f887011edcc8c13c75e8f45d3c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:45:22 +0800 Subject: [PATCH 002/104] =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + src/server/cluster/ClusterFunc.go | 19 +++++++++++++------ src/server/game/FriendMgr.go | 9 +++++++++ src/server/game/Type.go | 1 + src/server/game/mod/msg/Msg.go | 1 + 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e65e11c5..fea300b4 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ src/server/unit_test.go src/server/teLog/* src/server/teLog/log.2024-11-28 src/server/logs/ga_log/*.log +src/server/conf/server.json diff --git a/src/server/cluster/ClusterFunc.go b/src/server/cluster/ClusterFunc.go index b610540b..1e1ef822 100644 --- a/src/server/cluster/ClusterFunc.go +++ b/src/server/cluster/ClusterFunc.go @@ -127,6 +127,13 @@ func SendServerMsg(m *msg.Msg, serverId int) error { func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) + + // 先注册回调通道,避免发送出去后对方快速返回导致丢失 + newChan := make(chan *msg.Msg, 1) + registerChanel(m.UniKey, newChan) + defer unregisterChanel(m.UniKey) + + // 之后再发送消息 if v, ok := serverAgent.Load(serverId); ok { data, err := GoUtil.GobMarshal(m) if err != nil { @@ -134,14 +141,14 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { return nil, err } v.(network.Agent).WriteMsg(data) + } else { + return nil, fmt.Errorf("server %d not online", serverId) } - newChan := make(chan *msg.Msg, 1) - registerChanel(m.UniKey, newChan) + + // 等待返回(直接接收一次) timeout := time.After(15 * time.Second) select { - case <-newChan: - backm := <-newChan - unregisterChanel(m.UniKey) + case backm := <-newChan: if backm == nil { return nil, fmt.Errorf("server %d not response", serverId) } @@ -169,8 +176,8 @@ func processMsg(a *Agent, m *msg.Msg) error { if m.UniKey != "" { if chanel, ok := CallbackChan[m.UniKey]; ok { chanel <- m + return nil } - return nil } if fun, ok := FuncMap[m.Type]; ok { err = fun(a, m) diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index b571cc37..97bfa892 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -92,6 +92,7 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_VAR_EXPIRE_SET, f.SetExpireVarData) f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_LOGIN, f.SendMsgToCenter) + f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, f.SendMsgToCenter) } func (f *FriendMgr) getData() *FirendData { @@ -275,3 +276,11 @@ func FriendMgrCall(m *msg.Msg) interface{} { } return G_GameLogicPtr.FriendMgrCall(m.Clone()) } + +func SendMsgToCenter(m *msg.Msg) error { + return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) +} + +func CallMsgToCenter(m *msg.Msg) (interface{}, error) { + return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) +} diff --git a/src/server/game/Type.go b/src/server/game/Type.go index 9ff8994d..31200159 100644 --- a/src/server/game/Type.go +++ b/src/server/game/Type.go @@ -110,4 +110,5 @@ func init() { gob.Register(&GameResult{}) gob.Register(&CatnipMsg{}) gob.Register(&CatnipLock{}) + gob.Register(CRank{}) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 269987be..a5a1c4ba 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -110,6 +110,7 @@ const ( HANDLE_TYPE_CHAMPSHIP_LOGIN // 锦标赛登录 HANDLE_TYPE_CHAMPSHIP_RANK_INFO // 锦标赛排名信息 + HANDLE_TYPE_CHAMPSHIP_MY_RANK // 锦标赛我的排名 ) From 4dc6dcbee70d7045ed180e7ed13ec0171d66c1a8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:47:17 +0800 Subject: [PATCH 003/104] =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/GoUtil/GoUtil.go | 6 ++++++ src/server/game/ClusterMgr.go | 10 ++++++++++ src/server/game/mod/msg/Msg.go | 19 ++++++++++--------- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/server/GoUtil/GoUtil.go b/src/server/GoUtil/GoUtil.go index 494b9b8c..b5ca11dd 100644 --- a/src/server/GoUtil/GoUtil.go +++ b/src/server/GoUtil/GoUtil.go @@ -238,6 +238,12 @@ func GobUnmarshal(data []byte, obj interface{}) error { } func GetServerIdByUid(uid int) int { + if uid <= 100000 { + return uid + } + if uid <= 100000000 { + return uid / 100000 + } return int((uid % 100000000) / 100000) } diff --git a/src/server/game/ClusterMgr.go b/src/server/game/ClusterMgr.go index e3b1ba4e..98374e2f 100644 --- a/src/server/game/ClusterMgr.go +++ b/src/server/game/ClusterMgr.go @@ -39,6 +39,7 @@ func init() { RegisterClusterHandler(msg.CLUSTER_FRIEND_SYNC, ClusterFriendSync) RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, champshipInrankHandler) RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_RANK_INFO, champshipRankInfoHandler) + RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_MY_RANK, champshipMyRankHandler) } func champshipInrankHandler(m *msg.Msg) error { @@ -54,3 +55,12 @@ func champshipRankInfoHandler(m *msg.Msg) error { FriendMgrSend(m) return nil } + +func champshipMyRankHandler(m *msg.Msg) error { + MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(m.From) + m.To = m.From + m.From = 0 + m.Extra = MyRank + FriendMgrSend(m) + return nil +} diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index a5a1c4ba..3e5d89ef 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -126,15 +126,16 @@ const ( func (m *Msg) Clone() *Msg { return &Msg{ - Type: m.Type, - To: m.To, - From: m.From, - Item: m.Item, - SendT: m.SendT, - End: m.End, - Extra: m.Extra, - Id: m.Id, - H: m.H, + Type: m.Type, + To: m.To, + From: m.From, + Item: m.Item, + SendT: m.SendT, + End: m.End, + Extra: m.Extra, + Id: m.Id, + H: m.H, + UniKey: m.UniKey, } } From 91e5b48fe5c1231666386c937a50da16a9ef82ce Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 2 Dec 2025 10:09:21 +0800 Subject: [PATCH 004/104] =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/server.json | 6 ++--- src/server/game/UnitTest.go | 49 +++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/server/conf/server.json b/src/server/conf/server.json index c6779e49..d77d57cb 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -22,12 +22,12 @@ "ServerOpenTime": "2018-01-01 00:00:00", "ServerName": "Merge_Pet", "ServerStatus" : 1, - "ServerCenter" : 1, + "ServerCenter" : 0, "GameConfPath": "D:/Github/pet_home_server/src/server/gamedata/config/", "ListenAddr":":9001", - "CenterAddr": "pethome.bywaystudios.com:9000", - "RemoteAddr":"host.docker.internal:9001", + "CenterAddr": "127.0.0.1:9000", + "RemoteAddr":"127.0.0.1:9001", "RedisAddr":"127.0.0.1", "RedisPort" :"6379", diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index a7ada801..44fe9c28 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -3,10 +3,12 @@ package game import ( "fmt" "math" + "server/GoUtil" mergeDataCfg "server/conf/mergeData" orderCfg "server/conf/order" "server/game/mod/decorate" "server/game/mod/item" + MsgMod "server/game/mod/msg" "server/game/mod/order" "server/game/mod/quest" "server/msg" @@ -371,3 +373,50 @@ func UnitOrderPetReward(p *Player) error { } return nil } + +func UnitClusterChampship(p *Player) error { + ChampshipMod := p.PlayMod.getChampshipMod() + Score := float64(ChampshipMod.GetScore()) + //更新排行榜 + m := &MsgMod.Msg{ + Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_INRANK, + SendT: GoUtil.Now(), + Extra: CRank{ + Uid: int(p.M_DwUin), + Score: Score, + H: ChampshipMod.GetH(), + N: ChampshipMod.GetN(), + }, + } + + time.Sleep(5 * time.Second) + SendMsgToCenter(m) + <-p.msgChan + return nil +} + +func UnitClusterChampshipCall(p *Player) error { + ChampshipMod := p.PlayMod.getChampshipMod() + Score := float64(ChampshipMod.GetScore()) + //更新排行榜 + m := &MsgMod.Msg{ + Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_MY_RANK, + SendT: GoUtil.Now(), + From: int(p.M_DwUin), + Extra: CRank{ + Uid: int(p.M_DwUin), + Score: Score, + H: ChampshipMod.GetH(), + N: ChampshipMod.GetN(), + }, + } + SendMsgToCenter(m) + time.Sleep(5 * time.Second) + r, err := CallMsgToCenter(m) + if err != nil { + log.Debug(err.Error()) + return err + } + fmt.Print(r) + return nil +} From b48aeea1d836944ef62a1fc36ac68283be33425d Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 10 Dec 2025 17:33:50 +0800 Subject: [PATCH 005/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91-=E4=BF=AE=E6=94=B9=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/ActivityFunc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index 11cab5eb..6309b2fd 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -381,6 +381,11 @@ func (p *Player) CatnipBackData() { } } } + for _, v := range CatnipMod.Game { + if invite, ok := tmpData[v.Partner]; ok { + invite.Type = 4 // 已参与游戏的好友不显示邀请 + } + } for _, v := range tmpData { ResPlayerSimple := G_getGameLogic().GetResSimplePlayerByUid(int(v.Uid)) if ResPlayerSimple != nil { From e4e1b93a9a0113071515e8f892f8799b3bac37d1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:56:57 +0800 Subject: [PATCH 006/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91-=E4=BF=AE=E6=94=B9=E9=A2=86?= =?UTF-8?q?=E5=A5=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/catnip/CatnipCfg.go | 15 +++++++++++++++ src/server/game/mod/catnip/Catnip.go | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/src/server/conf/catnip/CatnipCfg.go b/src/server/conf/catnip/CatnipCfg.go index ff388e17..bdc1742d 100644 --- a/src/server/conf/catnip/CatnipCfg.go +++ b/src/server/conf/catnip/CatnipCfg.go @@ -112,6 +112,21 @@ func GetProgressReward(Id int, Rewards []int, Progress int) ([]*item.Item, []int return Items, Ids } +func GetProgressNum(Id int) int { + TemplateId := GetTemplateId(Id) + data, err := gamedata.GetData(CATNIP_GAME_CFG_NAME) + if err != nil { + return 0 + } + Num := 0 + for _, v := range data { + if gamedata.GetIntValue(v, "Template") == TemplateId { + Num++ + } + } + return Num +} + func GetItemCost(Id, Mul int) []*item.Item { data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) if err != nil { diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index ab86953d..fd60cced 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -189,7 +189,11 @@ func (c *CatnipMod) Reward(Id int) ([]*item.Item, *CatnipGame, error) { return nil, nil, fmt.Errorf("game with Progress %d does not exist", Id) } Items, Ids := catnipCfg.GetProgressReward(c.Id, GameInfo.Reward, GameInfo.Progress) + ProgressNum := catnipCfg.GetProgressNum(c.Id) GameInfo.Reward = append(GameInfo.Reward, Ids...) + if len(GameInfo.Reward) == ProgressNum { + GameInfo.Status = GAME_STATUS_COMPLETED + } if Items == nil { return nil, nil, fmt.Errorf("no reward found for progress %d in game ID %d", GameInfo.Progress, Id) } From fde28211098c746ffef6394dc3a7bc142dcc436e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 10 Dec 2025 20:52:27 +0800 Subject: [PATCH 007/104] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 8feb0aa9..db1c3af4 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -4386,6 +4386,7 @@ func ReqOfflineReconnectFunc(a gate.Agent, buf []byte) error { internal.AsignPlayerToAgents(a, player) internal.Agents.Delete(agent) } + player.TeLog("reconnect", map[string]interface{}{}) res.Result = 3 } else { res.Result = 2 From cc2fbb53d8cef981ec11813360d8d735026445be Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 10 Dec 2025 21:23:21 +0800 Subject: [PATCH 008/104] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/conf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index 291fe683..38545475 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -7,7 +7,7 @@ import ( var ( // log conf - LogFlag = log.LstdFlags + LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf PendingWriteNum = 2000 From d1d63de3bfc9c5b7ec100afb3629671c610d5492 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:00:22 +0800 Subject: [PATCH 009/104] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=A0=E7=89=A9=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 1 + src/server/msg/Gameapi.pb.go | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 3e13c142..5a35db3a 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -525,6 +525,7 @@ func (ad *GameLogic) GetResFriendPlayerByUid(Id int) *msg.ResFriendPlayerSimple DressSet: GoUtil.MapIntToInt32(player.DressSet), Friend: GoUtil.IntToInt32(player.Friend), Physiology: GoUtil.MapIntToInt32(player.Physiology), + PetName: player.PetName, } } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index c6e46e92..1b0ec484 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -13262,6 +13262,7 @@ type ResFriendPlayerSimple struct { Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表 Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态 Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态 + PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13415,6 +13416,13 @@ func (x *ResFriendPlayerSimple) GetPhysiology() map[int32]int32 { return nil } +func (x *ResFriendPlayerSimple) GetPetName() string { + if x != nil { + return x.PetName + } + return "" +} + type ResPlayerSimple struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` @@ -26026,7 +26034,7 @@ type CatnipGame struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 - Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [100,150,200] + Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3] Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴 Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度 @@ -26117,7 +26125,7 @@ type CatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间 - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作 Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -28408,7 +28416,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x04Code\x18\x01 \x01(\x05R\x04Code\x12-\n" + "\x04List\x18\x02 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\")\n" + "\x15ReqFriendPlayerSimple\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\xf9\x06\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x93\a\n" + "\x15ResFriendPlayerSimple\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + @@ -28429,7 +28437,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x04Last\x18\x10 \x01(\v2\x10.tutorial.ActLogR\x04Last\x12O\n" + "\n" + "Physiology\x18\x11 \x03(\v2/.tutorial.ResFriendPlayerSimple.PhysiologyEntryR\n" + - "Physiology\x1a8\n" + + "Physiology\x12\x18\n" + + "\aPetName\x18\x12 \x01(\tR\aPetName\x1a8\n" + "\n" + "EmojiEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + From 5a9b2a0fa8a20f53b509f8f7652356658797e8a0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:25:31 +0800 Subject: [PATCH 010/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91-=E4=BF=AE=E6=94=B9=E5=90=8C?= =?UTF-8?q?=E6=84=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 3 ++- src/server/game/RegisterNetworkFunc.go | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 5a35db3a..6c6be5b5 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -296,12 +296,13 @@ func (ad *GameLogic) SetDataSync(Uid int, Op int, Data interface{}) error { return err } -func (ad *GameLogic) SetCatnipPartner(Uid int, GameId int, PartnerUid int) error { +func (ad *GameLogic) SetCatnipPartner(Uid int, GameId int, PartnerUid int, EndT int64) error { _, err := ad.VarMgr.Call(&MsgMod.Msg{ From: Uid, To: Uid, Type: MsgMod.HANDLE_TYPE_SET_CATNIP_PARTNER, SendT: GoUtil.Now(), + End: EndT, Extra: map[string]interface{}{ "uid": Uid, "game_id": GameId, diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index db1c3af4..5e8a5256 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -5423,6 +5423,7 @@ func ReqCatnipAgree(player *Player, buf []byte) error { } CatnipMod := player.PlayMod.getCatnipMod() ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + ActivityInfo := player.GetActivityInfo(ActivityId) if ActivityId == 0 { player.SendErrClienRes(&msg.ResCatnipAgree{ Code: msg.RES_CODE_FAIL, @@ -5438,7 +5439,7 @@ func ReqCatnipAgree(player *Player, buf []byte) error { }) return err } - err = G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), int(req.Id), int(req.Uid)) + err = G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), int(req.Id), int(req.Uid), ActivityInfo.EndT) if err != nil { player.SendErrClienRes(&msg.ResCatnipAgree{ Code: msg.RES_CODE_FAIL, @@ -5756,7 +5757,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { }) case friend.REPLY_TYPE_CATNIP: // 猫草大作战同意邀请 GameId := GoUtil.Int(ReplyInfo.Param) - err := G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), GameId, ReplyInfo.Uid) + activityInfo := player.GetActivityInfo(player.GetActivityId(activity.ACT_TYPE_CATNIP)) + err := G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), GameId, ReplyInfo.Uid, activityInfo.EndT) if err != nil { player.PushClientRes(&msg.ResFriendReplyHandle{ Code: msg.RES_CODE_FAIL, From 03eca57bb5fd47fd620108203ea906817619b51b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:29:03 +0800 Subject: [PATCH 011/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91-=E4=BF=AE=E6=94=B9=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 1 + src/server/msg/Gameapi.pb.go | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 5e8a5256..9b8be192 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -5812,6 +5812,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { player.PushClientRes(&msg.ResFriendReplyHandle{ Code: msg.RES_CODE_SUCCESS, LogId: req.LogId, + Type: req.Type, }) return nil } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 1b0ec484..76a0cddb 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -15320,6 +15320,7 @@ type ResFriendReplyHandle struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15375,6 +15376,13 @@ func (x *ResFriendReplyHandle) GetLogId() int32 { return 0 } +func (x *ResFriendReplyHandle) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + type ResFriendBubble struct { state protoimpl.MessageState `protogen:"open.v1"` Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 @@ -28582,11 +28590,12 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x14ReqFriendReplyHandle\x12\x14\n" + "\x05LogId\x18\x01 \x01(\x05R\x05LogId\x12\x14\n" + "\x05Param\x18\x02 \x01(\tR\x05Param\x12\x12\n" + - "\x04Type\x18\x03 \x01(\x05R\x04Type\"f\n" + + "\x04Type\x18\x03 \x01(\x05R\x04Type\"z\n" + "\x14ResFriendReplyHandle\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x14\n" + - "\x05LogId\x18\x03 \x01(\x05R\x05LogId\"E\n" + + "\x05LogId\x18\x03 \x01(\x05R\x05LogId\x12\x12\n" + + "\x04Type\x18\x04 \x01(\x05R\x04Type\"E\n" + "\x0fResFriendBubble\x122\n" + "\x06Bubble\x18\x01 \x03(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"#\n" + "\x11ReqFriendTLUpvote\x12\x0e\n" + From 865cc45c5971345692c3e93a10289dea99b21c27 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 12 Dec 2025 17:08:51 +0800 Subject: [PATCH 012/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91-=E4=BF=AE=E6=94=B9=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/MessageHandler.go | 12 + src/server/game/RegisterNetworkFunc.go | 17 +- src/server/msg/Gameapi.pb.go | 13304 +++++++++++++---------- 3 files changed, 7462 insertions(+), 5871 deletions(-) diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index ff25d17b..31143138 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -417,6 +417,12 @@ func (p *Player) handle(m *msg.Msg) error { CatnipMod.BeInvited(int(m.From), m.SendT) FriendMod := p.PlayMod.getFriendMod() FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendReplyNotify{ + Player: PlayerSimpleData, + Type: int32(friend.REPLY_TYPE_CATNIP), + Time: int32(m.SendT), + }) case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() CatnipMsg, ok := m.Extra.(CatnipMsg) @@ -465,6 +471,12 @@ func (p *Player) handle(m *msg.Msg) error { Items := catnipCfg.GetItemCost(ActivityId, CatnipMsg.FriendItems) FriendMod := p.PlayMod.getFriendMod() FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) + PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.ResFriendReplyNotify{ + Player: PlayerSimpleData, + Type: int32(friend.REPLY_TYPE_CATNIP_ITEMS), + Time: int32(m.SendT), + }) } p.CatnipBackData() case msg.HANDLE_TYPE_CATNIP_SEND_EMOJI: diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 9b8be192..f61c40cc 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -5740,6 +5740,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { }) return fmt.Errorf("reply info not exist") } + ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_NONE if req.Type == 1 && ReplyInfo.Uid > 10000 { switch ReplyInfo.Type { case friend.REPLY_TYPE_GREETING: @@ -5759,12 +5760,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { GameId := GoUtil.Int(ReplyInfo.Param) activityInfo := player.GetActivityInfo(player.GetActivityId(activity.ACT_TYPE_CATNIP)) err := G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), GameId, ReplyInfo.Uid, activityInfo.EndT) - if err != nil { - player.PushClientRes(&msg.ResFriendReplyHandle{ - Code: msg.RES_CODE_FAIL, - Msg: err.Error(), - }) - } else { + if err == nil { CatnipMod := player.PlayMod.getCatnipMod() ActivityId := player.GetActivityId(activity.ACT_TYPE_MINING) UserList, _ := CatnipMod.Agree(GameId, ReplyInfo.Uid) @@ -5795,6 +5791,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { }) } player.CatnipBackData() + } else { + ErrType = msg.FRIEND_REPLY_HANDLE_ERR_TYPE_CATNIP } } @@ -5810,9 +5808,10 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { } player.FriendLogBackData() player.PushClientRes(&msg.ResFriendReplyHandle{ - Code: msg.RES_CODE_SUCCESS, - LogId: req.LogId, - Type: req.Type, + Code: msg.RES_CODE_SUCCESS, + LogId: req.LogId, + Type: req.Type, + ErrType: ErrType, }) return nil } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 76a0cddb..751699a4 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.6 +// protoc-gen-go v1.35.1 // protoc v5.28.2 // source: proto/Gameapi.proto @@ -11,7 +11,6 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" - unsafe "unsafe" ) const ( @@ -358,44 +357,44 @@ type RES_CODE int32 const ( RES_CODE_FAIL RES_CODE = 0 RES_CODE_SUCCESS RES_CODE = 1 - RES_CODE_Protocol_Error_Account_Exist RES_CODE = 100 // 账号已存在 - RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 101 // 账号或密码错误 - RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 102 // 账号或密码过短 - RES_CODE_Protocol_Error_Account_Fail RES_CODE = 103 // 账号操作失败 - RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 104 // 账号不存在 - RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 105 // 验证码错误 - RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 106 // 设备号错误 - RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 107 // 未实名认证 - RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 108 // 实名认证失败 + RES_CODE_Protocol_Error_Account_Exist RES_CODE = 2 // 账号已存在 + RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 3 // 账号或密码错误 + RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 4 // 账号或密码过短 + RES_CODE_Protocol_Error_Account_Fail RES_CODE = 5 // 账号操作失败 + RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 6 // 账号不存在 + RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 7 // 验证码错误 + RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 8 // 设备号错误 + RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 9 // 未实名认证 + RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 10 // 实名认证失败 ) // Enum value maps for RES_CODE. var ( RES_CODE_name = map[int32]string{ - 0: "FAIL", - 1: "SUCCESS", - 100: "Protocol_Error_Account_Exist", - 101: "Protocol_Error_Account_OR_PWD_ERROR", - 102: "Protocol_Error_Account_OR_PWD_Short", - 103: "Protocol_Error_Account_Fail", - 104: "Protocol_Error_Account_NoExsit", - 105: "Protocol_Error_Account_Code_Error", - 106: "Protocol_Error_Account_Device_Error", - 107: "Protocol_Error_Id_Not_Verify", - 108: "Protocol_Error_Id_Verify_Error", + 0: "FAIL", + 1: "SUCCESS", + 2: "Protocol_Error_Account_Exist", + 3: "Protocol_Error_Account_OR_PWD_ERROR", + 4: "Protocol_Error_Account_OR_PWD_Short", + 5: "Protocol_Error_Account_Fail", + 6: "Protocol_Error_Account_NoExsit", + 7: "Protocol_Error_Account_Code_Error", + 8: "Protocol_Error_Account_Device_Error", + 9: "Protocol_Error_Id_Not_Verify", + 10: "Protocol_Error_Id_Verify_Error", } RES_CODE_value = map[string]int32{ "FAIL": 0, "SUCCESS": 1, - "Protocol_Error_Account_Exist": 100, - "Protocol_Error_Account_OR_PWD_ERROR": 101, - "Protocol_Error_Account_OR_PWD_Short": 102, - "Protocol_Error_Account_Fail": 103, - "Protocol_Error_Account_NoExsit": 104, - "Protocol_Error_Account_Code_Error": 105, - "Protocol_Error_Account_Device_Error": 106, - "Protocol_Error_Id_Not_Verify": 107, - "Protocol_Error_Id_Verify_Error": 108, + "Protocol_Error_Account_Exist": 2, + "Protocol_Error_Account_OR_PWD_ERROR": 3, + "Protocol_Error_Account_OR_PWD_Short": 4, + "Protocol_Error_Account_Fail": 5, + "Protocol_Error_Account_NoExsit": 6, + "Protocol_Error_Account_Code_Error": 7, + "Protocol_Error_Account_Device_Error": 8, + "Protocol_Error_Id_Not_Verify": 9, + "Protocol_Error_Id_Verify_Error": 10, } ) @@ -687,25 +686,25 @@ const ( TIME_LINE_TYPE_LOG_TYPE_CARD_SELECT_SEND TIME_LINE_TYPE = 9 // 选择卡牌交换 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_1 TIME_LINE_TYPE = 10 // 卡牌交换成功 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_2 TIME_LINE_TYPE = 11 // 卡牌交换成功 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 14 // 删除好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 充值赠送 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 19 // 充值接受 - TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // NPC成为好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名 - TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 宠物宝藏 - TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功 - TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册 - TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 宠物宝藏帮助 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 12 // 删除好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 13 // 非小猫游戏,他人偷走了玩家的猫币 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 14 // 图鉴收集 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 15 // 图鉴点赞 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 16 // 充值赠送 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 17 // 充值接受 + TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 18 // 心愿单 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 19 // NPC成为好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 20 // playroom点赞 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 21 // 竞标赛排名 + TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 22 // 宠物宝藏 + TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 23 // 收到赠送卡牌 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 24 // 小猫游戏,给小猫成功装箱 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 25 // 小猫游戏,装箱小猫未成功 + TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 26 // 接受卡牌请求 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 27 // 邀请注册 + TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 28 // 宠物宝藏帮助 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 29 // 好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 30 // 获得好友赞助体力 ) // Enum value maps for TIME_LINE_TYPE. @@ -723,25 +722,25 @@ var ( 9: "LOG_TYPE_CARD_SELECT_SEND", 10: "LOG_TYPE_CARD_EX_SUCCESS_1", 11: "LOG_TYPE_CARD_EX_SUCCESS_2", - 14: "LOG_TYPE_FRIEND_DELETE", - 15: "LOG_TYPE_PLAYROOM_VISIT", - 16: "LOG_TYPE_HANDBOOK", - 17: "LOG_TYPE_HANDBOOK_UPVOTE", - 18: "LOG_TYPE_CHARGE_SEND", - 19: "LOG_TYPE_CHARGE_RECEIVED", - 20: "LOG_TYPE_WISH", - 21: "LOG_TYPE_FRIEND_BECOME_NPC", - 22: "LOG_TYPE_PLAYROOM_UPVOTE", - 23: "LOG_TYPE_PLAYROOM_CHAMPSHIP", - 24: "LOG_TYPE_TREASURE", - 25: "LOG_TYPE_CARD_SEND_ACCEPT", - 26: "LOG_TYPE_PLAYROOM_CAT_WIN", - 27: "LOG_TYPE_PLAYROOM_CAT_LOSE", - 28: "LOG_TYPE_CARD_GIVE_ACCEPT", - 29: "LOG_TYPE_FRIEND_INVITE", - 30: "LOG_TYPE_TREASURE_HELP", - 31: "LOG_TYPE_FRIEND_SPONSOR", - 32: "LOG_TYPE_FRIEND_SPONSOR_GET", + 12: "LOG_TYPE_FRIEND_DELETE", + 13: "LOG_TYPE_PLAYROOM_VISIT", + 14: "LOG_TYPE_HANDBOOK", + 15: "LOG_TYPE_HANDBOOK_UPVOTE", + 16: "LOG_TYPE_CHARGE_SEND", + 17: "LOG_TYPE_CHARGE_RECEIVED", + 18: "LOG_TYPE_WISH", + 19: "LOG_TYPE_FRIEND_BECOME_NPC", + 20: "LOG_TYPE_PLAYROOM_UPVOTE", + 21: "LOG_TYPE_PLAYROOM_CHAMPSHIP", + 22: "LOG_TYPE_TREASURE", + 23: "LOG_TYPE_CARD_SEND_ACCEPT", + 24: "LOG_TYPE_PLAYROOM_CAT_WIN", + 25: "LOG_TYPE_PLAYROOM_CAT_LOSE", + 26: "LOG_TYPE_CARD_GIVE_ACCEPT", + 27: "LOG_TYPE_FRIEND_INVITE", + 28: "LOG_TYPE_TREASURE_HELP", + 29: "LOG_TYPE_FRIEND_SPONSOR", + 30: "LOG_TYPE_FRIEND_SPONSOR_GET", } TIME_LINE_TYPE_value = map[string]int32{ "DEFAULT": 0, @@ -756,25 +755,25 @@ var ( "LOG_TYPE_CARD_SELECT_SEND": 9, "LOG_TYPE_CARD_EX_SUCCESS_1": 10, "LOG_TYPE_CARD_EX_SUCCESS_2": 11, - "LOG_TYPE_FRIEND_DELETE": 14, - "LOG_TYPE_PLAYROOM_VISIT": 15, - "LOG_TYPE_HANDBOOK": 16, - "LOG_TYPE_HANDBOOK_UPVOTE": 17, - "LOG_TYPE_CHARGE_SEND": 18, - "LOG_TYPE_CHARGE_RECEIVED": 19, - "LOG_TYPE_WISH": 20, - "LOG_TYPE_FRIEND_BECOME_NPC": 21, - "LOG_TYPE_PLAYROOM_UPVOTE": 22, - "LOG_TYPE_PLAYROOM_CHAMPSHIP": 23, - "LOG_TYPE_TREASURE": 24, - "LOG_TYPE_CARD_SEND_ACCEPT": 25, - "LOG_TYPE_PLAYROOM_CAT_WIN": 26, - "LOG_TYPE_PLAYROOM_CAT_LOSE": 27, - "LOG_TYPE_CARD_GIVE_ACCEPT": 28, - "LOG_TYPE_FRIEND_INVITE": 29, - "LOG_TYPE_TREASURE_HELP": 30, - "LOG_TYPE_FRIEND_SPONSOR": 31, - "LOG_TYPE_FRIEND_SPONSOR_GET": 32, + "LOG_TYPE_FRIEND_DELETE": 12, + "LOG_TYPE_PLAYROOM_VISIT": 13, + "LOG_TYPE_HANDBOOK": 14, + "LOG_TYPE_HANDBOOK_UPVOTE": 15, + "LOG_TYPE_CHARGE_SEND": 16, + "LOG_TYPE_CHARGE_RECEIVED": 17, + "LOG_TYPE_WISH": 18, + "LOG_TYPE_FRIEND_BECOME_NPC": 19, + "LOG_TYPE_PLAYROOM_UPVOTE": 20, + "LOG_TYPE_PLAYROOM_CHAMPSHIP": 21, + "LOG_TYPE_TREASURE": 22, + "LOG_TYPE_CARD_SEND_ACCEPT": 23, + "LOG_TYPE_PLAYROOM_CAT_WIN": 24, + "LOG_TYPE_PLAYROOM_CAT_LOSE": 25, + "LOG_TYPE_CARD_GIVE_ACCEPT": 26, + "LOG_TYPE_FRIEND_INVITE": 27, + "LOG_TYPE_TREASURE_HELP": 28, + "LOG_TYPE_FRIEND_SPONSOR": 29, + "LOG_TYPE_FRIEND_SPONSOR_GET": 30, } ) @@ -1135,17 +1134,64 @@ func (FRIEND_REPLY_TYPE) EnumDescriptor() ([]byte, []int) { return file_proto_Gameapi_proto_rawDescGZIP(), []int{12} } +type FRIEND_REPLY_HANDLE_ERR_TYPE int32 + +const ( + FRIEND_REPLY_HANDLE_ERR_TYPE_NONE FRIEND_REPLY_HANDLE_ERR_TYPE = 0 // 默认 + FRIEND_REPLY_HANDLE_ERR_TYPE_CATNIP FRIEND_REPLY_HANDLE_ERR_TYPE = 1 // 好友位置已满不存在 +) + +// Enum value maps for FRIEND_REPLY_HANDLE_ERR_TYPE. +var ( + FRIEND_REPLY_HANDLE_ERR_TYPE_name = map[int32]string{ + 0: "NONE", + 1: "CATNIP", + } + FRIEND_REPLY_HANDLE_ERR_TYPE_value = map[string]int32{ + "NONE": 0, + "CATNIP": 1, + } +) + +func (x FRIEND_REPLY_HANDLE_ERR_TYPE) Enum() *FRIEND_REPLY_HANDLE_ERR_TYPE { + p := new(FRIEND_REPLY_HANDLE_ERR_TYPE) + *p = x + return p +} + +func (x FRIEND_REPLY_HANDLE_ERR_TYPE) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FRIEND_REPLY_HANDLE_ERR_TYPE) Descriptor() protoreflect.EnumDescriptor { + return file_proto_Gameapi_proto_enumTypes[13].Descriptor() +} + +func (FRIEND_REPLY_HANDLE_ERR_TYPE) Type() protoreflect.EnumType { + return &file_proto_Gameapi_proto_enumTypes[13] +} + +func (x FRIEND_REPLY_HANDLE_ERR_TYPE) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FRIEND_REPLY_HANDLE_ERR_TYPE.Descriptor instead. +func (FRIEND_REPLY_HANDLE_ERR_TYPE) EnumDescriptor() ([]byte, []int) { + return file_proto_Gameapi_proto_rawDescGZIP(), []int{13} +} + type ClientReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID - Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` - Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` - SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` - GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"` - UserId string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"` - UserBase string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID; + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` + Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` + SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` + GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"` + UserId string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"` + UserBase string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"` } func (x *ClientReq) Reset() { @@ -1228,10 +1274,11 @@ func (x *ClientReq) GetUserBase() string { } type ReqOfflineReconnect struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqOfflineReconnect) Reset() { @@ -1272,11 +1319,12 @@ func (x *ReqOfflineReconnect) GetDwUin() int64 { } type ResOfflineReconnect struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` } func (x *ResOfflineReconnect) Reset() { @@ -1324,11 +1372,12 @@ func (x *ResOfflineReconnect) GetResult() int32 { } type ReqBindFacebookAccount struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqBindFacebookAccount) Reset() { @@ -1376,12 +1425,13 @@ func (x *ReqBindFacebookAccount) GetBindAccountId() string { } type ResBindFacebookAccount struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResBindFacebookAccount) Reset() { @@ -1437,11 +1487,12 @@ func (x *ResBindFacebookAccount) GetResultCode() int32 { // //请求强制绑定已绑过其他设备的fb并且不同步数据 type ReqOnlyBindFacebook struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqOnlyBindFacebook) Reset() { @@ -1489,12 +1540,13 @@ func (x *ReqOnlyBindFacebook) GetBindAccountId() string { } type ResOnlyBindFacebook struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResOnlyBindFacebook) Reset() { @@ -1550,11 +1602,12 @@ func (x *ResOnlyBindFacebook) GetResultCode() int32 { // //请求接触绑定 type ReqUnBindFacebook struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqUnBindFacebook) Reset() { @@ -1602,11 +1655,12 @@ func (x *ReqUnBindFacebook) GetBindAccountId() string { } type ResUnBindFacebook struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ResUnBindFacebook) Reset() { @@ -1655,11 +1709,12 @@ func (x *ResUnBindFacebook) GetBindAccountId() string { // //请求强制绑定已绑过其他设备的fb并且同步数据 type ReqSynGameData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"` } func (x *ReqSynGameData) Reset() { @@ -1707,11 +1762,12 @@ func (x *ReqSynGameData) GetNewFBId() string { } type ResSynGameData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResSynGameData) Reset() { @@ -1759,9 +1815,9 @@ func (x *ResSynGameData) GetResultCode() int32 { } type ForceKickOut struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ForceKickOut) Reset() { @@ -1795,10 +1851,11 @@ func (*ForceKickOut) Descriptor() ([]byte, []int) { } type ResServerVersion struct { - state protoimpl.MessageState `protogen:"open.v1"` - Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"` } func (x *ResServerVersion) Reset() { @@ -1839,10 +1896,11 @@ func (x *ResServerVersion) GetVersion() int32 { } type ResChessColorData struct { - state protoimpl.MessageState `protogen:"open.v1"` - MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResChessColorData) Reset() { @@ -1883,12 +1941,13 @@ func (x *ResChessColorData) GetMChessColorData() map[string]int32 { } type ClientRes struct { - state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` - Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` - Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` + Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` } func (x *ClientRes) Reset() { @@ -1944,13 +2003,14 @@ func (x *ClientRes) GetInfo() []byte { // //请求注册账号 type ReqRegisterAccount struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` + DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; } func (x *ReqRegisterAccount) Reset() { @@ -2013,10 +2073,11 @@ func (x *ReqRegisterAccount) GetDevice() string { // //响应注册账号 type ResRegisterAccount struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResRegisterAccount) Reset() { @@ -2058,14 +2119,15 @@ func (x *ResRegisterAccount) GetResultCode() int32 { // //请求登录 type ReqLogin struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 - Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; + Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式; } func (x *ReqLogin) Reset() { @@ -2134,10 +2196,11 @@ func (x *ReqLogin) GetType() LOGIN_TYPE { } type ReqLoginCode struct { - state protoimpl.MessageState `protogen:"open.v1"` - TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码; } func (x *ReqLoginCode) Reset() { @@ -2178,12 +2241,13 @@ func (x *ReqLoginCode) GetTelPhone() string { } type ResLoginCode struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败 - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败; + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试; } func (x *ResLoginCode) Reset() { @@ -2238,11 +2302,12 @@ func (x *ResLoginCode) GetCode() string { } type ReqId2Verify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码 - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码; + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名; } func (x *ReqId2Verify) Reset() { @@ -2290,11 +2355,12 @@ func (x *ReqId2Verify) GetName() string { } type ResId2Verify struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败 - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败; + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; } func (x *ResId2Verify) Reset() { @@ -2343,14 +2409,15 @@ func (x *ResId2Verify) GetMsg() string { // //响应登录 type ResLogin struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` - FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` + FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; } func (x *ResLogin) Reset() { @@ -2419,12 +2486,13 @@ func (x *ResLogin) GetMsg() string { } type ReqChangePassword struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码 - NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码; + NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` } func (x *ReqChangePassword) Reset() { @@ -2479,10 +2547,11 @@ func (x *ReqChangePassword) GetNewPwd() string { } type ResChangePassword struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResChangePassword) Reset() { @@ -2524,10 +2593,11 @@ func (x *ResChangePassword) GetResultCode() int32 { // /请求玩家基本信息(玩家登入成功后,第一条请求信息) type ReqPlayerBaseInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerBaseInfo) Reset() { @@ -2569,33 +2639,34 @@ func (x *ReqPlayerBaseInfo) GetDwUin() int64 { // 响应基本信息 type ResPlayerBaseInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` - Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` - RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` - Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` - Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` - StartOrderId string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"` - MusicCode int32 `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"` - Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` - PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` - LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` - EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` - UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` - LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` - Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` - Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` - EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` - NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` - ChampshipsGroupID int32 `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"` - LastChampGroupID int32 `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"` - FaceBookId string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - RegisterTime int32 `protobuf:"varint,24,opt,name=register_time,json=registerTime,proto3" json:"register_time,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` + Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` + RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` + Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` + Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` + StartOrderId string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"` + MusicCode int32 `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"` + Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` + PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` + LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` + EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` + UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` + LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` + Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` + Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` + EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` + NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` + ChampshipsGroupID int32 `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"` + LastChampGroupID int32 `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"` + FaceBookId string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` + RegisterTime int32 `protobuf:"varint,24,opt,name=register_time,json=registerTime,proto3" json:"register_time,omitempty"` } func (x *ResPlayerBaseInfo) Reset() { @@ -2797,9 +2868,9 @@ func (x *ResPlayerBaseInfo) GetRegisterTime() int32 { } type ReqPlayerAsset struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayerAsset) Reset() { @@ -2834,20 +2905,21 @@ func (*ReqPlayerAsset) Descriptor() ([]byte, []int) { // 玩家资产 type ResPlayerAsset struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` - Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` - RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` - Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` - Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` - Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` - PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验 - LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` + Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` + RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` + Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` + Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` + Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` + PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验; + LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数; } func (x *ResPlayerAsset) Reset() { @@ -2959,11 +3031,12 @@ func (x *ResPlayerAsset) GetLoginDay() int32 { // 客户端向服务器请求更新基本信息条目(没有响应) type UpdateBaseItemInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *UpdateBaseItemInfo) Reset() { @@ -3011,11 +3084,12 @@ func (x *UpdateBaseItemInfo) GetMUpdateItem() map[int32]int32 { } type NotifyRenewBuyEnergyCnt struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"` } func (x *NotifyRenewBuyEnergyCnt) Reset() { @@ -3064,10 +3138,11 @@ func (x *NotifyRenewBuyEnergyCnt) GetCurCnt() int32 { // /请求移除广告 type ReqRemoveAd struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqRemoveAd) Reset() { @@ -3109,10 +3184,11 @@ func (x *ReqRemoveAd) GetDwUin() int64 { // //响应移除广告 type ResRemoveAd struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResRemoveAd) Reset() { @@ -3154,11 +3230,12 @@ func (x *ResRemoveAd) GetResultCode() int32 { // 服务器向客户端通知间隔增长的体力 type NotifyAddEnergy struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"` } func (x *NotifyAddEnergy) Reset() { @@ -3207,10 +3284,11 @@ func (x *NotifyAddEnergy) GetAddCnt() int32 { // /请求服务器时间 type ReqServerTime struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqServerTime) Reset() { @@ -3252,10 +3330,11 @@ func (x *ReqServerTime) GetDwUin() int64 { // //响应服务器时间 type ResServerTime struct { - state protoimpl.MessageState `protogen:"open.v1"` - ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"` } func (x *ResServerTime) Reset() { @@ -3296,10 +3375,11 @@ func (x *ResServerTime) GetServerTime() int32 { } type ReqPlayerChessData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerChessData) Reset() { @@ -3341,13 +3421,14 @@ func (x *ReqPlayerChessData) GetDwUin() int64 { // /响应棋盘数据 type ResPlayerChessData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - ChessList []int32 `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` - ChessBuff []int32 `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ChessList []int32 `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` + ChessBuff []int32 `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` } func (x *ResPlayerChessData) Reset() { @@ -3409,16 +3490,17 @@ func (x *ResPlayerChessData) GetChessBuff() []int32 { } type ResPlayerChessInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessList []int32 `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` - ChessBuff []int32 `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` - ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` - RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` - Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` - PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件 - RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessList []int32 `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` + ChessBuff []int32 `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` + ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` + RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` + Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` + PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件; + RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励; } func (x *ResPlayerChessInfo) Reset() { @@ -3501,10 +3583,11 @@ func (x *ResPlayerChessInfo) GetRetireReward() []string { } type ReqGetChessRetireReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; } func (x *ReqGetChessRetireReward) Reset() { @@ -3545,12 +3628,13 @@ func (x *ReqGetChessRetireReward) GetId() string { } type ResGetChessRetireReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; } func (x *ResGetChessRetireReward) Reset() { @@ -3605,10 +3689,11 @@ func (x *ResGetChessRetireReward) GetId() string { } type PartBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子; } func (x *PartBag) Reset() { @@ -3649,11 +3734,12 @@ func (x *PartBag) GetPartBagGrids() []*PartBagGrid { } type PartBagGrid struct { - state protoimpl.MessageState `protogen:"open.v1"` - PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量; } func (x *PartBagGrid) Reset() { @@ -3701,11 +3787,12 @@ func (x *PartBagGrid) GetCount() int32 { } type ReqPutPartInBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID; + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqPutPartInBag) Reset() { @@ -3753,11 +3840,12 @@ func (x *ReqPutPartInBag) GetMChessData() map[string]int32 { } type ResPutPartInBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResPutPartInBag) Reset() { @@ -3806,14 +3894,15 @@ func (x *ResPutPartInBag) GetMsg() string { // 棋盘操作队列 type ChessHandle struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"` - Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` - ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"` + Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` + ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; } func (x *ChessHandle) Reset() { @@ -3883,12 +3972,13 @@ func (x *ChessHandle) GetActType() []int32 { // ///同步棋盘数据 type UpdatePlayerChessData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MChessHandle []*ChessHandle `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MChessHandle []*ChessHandle `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"` } func (x *UpdatePlayerChessData) Reset() { @@ -3943,11 +4033,12 @@ func (x *UpdatePlayerChessData) GetMChessHandle() []*ChessHandle { } type ResUpdatePlayerChessData struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResUpdatePlayerChessData) Reset() { @@ -3996,11 +4087,12 @@ func (x *ResUpdatePlayerChessData) GetMsg() string { // 分离器 type ReqSeparateChess struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqSeparateChess) Reset() { @@ -4048,11 +4140,12 @@ func (x *ReqSeparateChess) GetMChessData() map[string]int32 { } type ResSeparateChess struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResSeparateChess) Reset() { @@ -4101,11 +4194,12 @@ func (x *ResSeparateChess) GetMsg() string { // 神奇魔术棒(升级器) type ReqUpgradeChess struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqUpgradeChess) Reset() { @@ -4153,11 +4247,12 @@ func (x *ReqUpgradeChess) GetMChessData() map[string]int32 { } type ResUpgradeChess struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResUpgradeChess) Reset() { @@ -4206,11 +4301,12 @@ func (x *ResUpgradeChess) GetMsg() string { // 从缓存中获取棋子 type ReqGetChessFromBuff struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqGetChessFromBuff) Reset() { @@ -4258,11 +4354,12 @@ func (x *ReqGetChessFromBuff) GetMChessData() map[string]int32 { } type ResGetChessFromBuff struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResGetChessFromBuff) Reset() { @@ -4311,15 +4408,16 @@ func (x *ResGetChessFromBuff) GetMsg() string { // 棋子转换 type ReqChessEx struct { - state protoimpl.MessageState `protogen:"open.v1"` - OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` - NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` - CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡 - MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` + NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` + CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` + Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡; + MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星; } func (x *ReqChessEx) Reset() { @@ -4395,11 +4493,12 @@ func (x *ReqChessEx) GetCostStar() int32 { } type ResChessEx struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResChessEx) Reset() { @@ -4448,11 +4547,12 @@ func (x *ResChessEx) GetMsg() string { // 开启资源宝箱 type ReqSourceChest struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChestId int32 `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChestId int32 `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqSourceChest) Reset() { @@ -4500,11 +4600,12 @@ func (x *ReqSourceChest) GetMChessData() map[string]int32 { } type ResSourceChest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResSourceChest) Reset() { @@ -4553,14 +4654,15 @@ func (x *ResSourceChest) GetMsg() string { // playroom 打工离线 type ReqPlayroomOutline struct { - state protoimpl.MessageState `protogen:"open.v1"` - OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` - NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` - CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线 - MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` + NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` + CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线; + MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqPlayroomOutline) Reset() { @@ -4629,11 +4731,12 @@ func (x *ReqPlayroomOutline) GetMChessData() map[string]int32 { } type ResPlayroomOutline struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResPlayroomOutline) Reset() { @@ -4682,12 +4785,13 @@ func (x *ResPlayroomOutline) GetMsg() string { // 棋盘背包 type ChessBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子 - ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数 - ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子; + ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数; + ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数; } func (x *ChessBag) Reset() { @@ -4742,12 +4846,13 @@ func (x *ChessBag) GetChessFreeCnt() int32 { } type ChessBagGrid struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID - ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID; + ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID; + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; } func (x *ChessBagGrid) Reset() { @@ -4803,13 +4908,14 @@ func (x *ChessBagGrid) GetEmitId() int32 { // 放置棋子进背包 type ReqPutChessInBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID - MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqPutChessInBag) Reset() { @@ -4871,11 +4977,12 @@ func (x *ReqPutChessInBag) GetMChessData() map[string]int32 { } type ResPutChessInBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResPutChessInBag) Reset() { @@ -4924,11 +5031,12 @@ func (x *ResPutChessInBag) GetMsg() string { // 从背包取出棋子 type ReqTakeChessOutBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - BagId int32 `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BagId int32 `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqTakeChessOutBag) Reset() { @@ -4976,11 +5084,12 @@ func (x *ReqTakeChessOutBag) GetMChessData() map[string]int32 { } type ResTakeChessOutBag struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResTakeChessOutBag) Reset() { @@ -5029,9 +5138,9 @@ func (x *ResTakeChessOutBag) GetMsg() string { // 购买棋盘格子 type ReqBuyChessBagGrid struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqBuyChessBagGrid) Reset() { @@ -5065,11 +5174,12 @@ func (*ReqBuyChessBagGrid) Descriptor() ([]byte, []int) { } type ResBuyChessBagGrid struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *ResBuyChessBagGrid) Reset() { @@ -5118,10 +5228,11 @@ func (x *ResBuyChessBagGrid) GetMsg() string { // /请求玩家身份信息 type ReqPlayerProfileData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerProfileData) Reset() { @@ -5162,18 +5273,19 @@ func (x *ReqPlayerProfileData) GetDwUin() int64 { } type ResPlayerProfileData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` - ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` - DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` - PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` - UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"` - UnlockIcon string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"` - ActiveTime int32 `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` + ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` + DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` + PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` + UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"` + UnlockIcon string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"` + ActiveTime int32 `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` } func (x *ResPlayerProfileData) Reset() { @@ -5271,10 +5383,11 @@ func (x *ResPlayerProfileData) GetActiveTime() int32 { // /请求玩家身份信息 type ReqPlayerBriefProfileData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerBriefProfileData) Reset() { @@ -5315,17 +5428,18 @@ func (x *ReqPlayerBriefProfileData) GetDwUin() int64 { } type ResPlayerBriefProfileData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` - ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` - DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` - PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` - ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` - SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` + ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` + DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` + PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` + ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` + SetEmoji map[int32]int32 `protobuf:"bytes,8,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已设置的头像; } func (x *ResPlayerBriefProfileData) Reset() { @@ -5416,10 +5530,11 @@ func (x *ResPlayerBriefProfileData) GetSetEmoji() map[int32]int32 { // 设置能量倍数 type ReqSetEnergyMul struct { - state protoimpl.MessageState `protogen:"open.v1"` - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` } func (x *ReqSetEnergyMul) Reset() { @@ -5460,11 +5575,12 @@ func (x *ReqSetEnergyMul) GetEnergyMul() int32 { } type ResSetEnergyMul struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetEnergyMul) Reset() { @@ -5513,10 +5629,11 @@ func (x *ResSetEnergyMul) GetMsg() string { // 设置能量倍数 type ReqLang struct { - state protoimpl.MessageState `protogen:"open.v1"` - Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文; } func (x *ReqLang) Reset() { @@ -5557,11 +5674,12 @@ func (x *ReqLang) GetLang() LANG_TYPE { } type ResLang struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResLang) Reset() { @@ -5609,14 +5727,15 @@ func (x *ResLang) GetMsg() string { } type BaseInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数 - IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店 - EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数 - EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数 - Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数; + IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店; + EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数; + EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数; + Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文; } func (x *BaseInfo) Reset() { @@ -5685,9 +5804,9 @@ func (x *BaseInfo) GetLang() LANG_TYPE { } type ReqUserInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqUserInfo) Reset() { @@ -5721,22 +5840,23 @@ func (*ReqUserInfo) Descriptor() ([]byte, []int) { } type UserInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` - DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` - FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录 - PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 - EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表 - SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 - IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码 - AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` + DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` + FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录; + PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; + EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表; + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已设置的头像; + IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码; + AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码; } func (x *UserInfo) Reset() { @@ -5862,10 +5982,11 @@ func (x *UserInfo) GetAddCode() string { // 设置昵称 type ReqSetName struct { - state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *ReqSetName) Reset() { @@ -5906,11 +6027,12 @@ func (x *ReqSetName) GetName() string { } type ResSetName struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetName) Reset() { @@ -5959,10 +6081,11 @@ func (x *ResSetName) GetMsg() string { // 设置宠物名字 type ReqSetPetName struct { - state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *ReqSetPetName) Reset() { @@ -6003,11 +6126,12 @@ func (x *ReqSetPetName) GetName() string { } type ResSetPetName struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetPetName) Reset() { @@ -6056,10 +6180,11 @@ func (x *ResSetPetName) GetMsg() string { // 购买能量 type ReqBuyEnergy struct { - state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力; } func (x *ReqBuyEnergy) Reset() { @@ -6100,11 +6225,12 @@ func (x *ReqBuyEnergy) GetEnergy() int32 { } type ResBuyEnergy struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResBuyEnergy) Reset() { @@ -6153,9 +6279,9 @@ func (x *ResBuyEnergy) GetMsg() string { // 看广告获取能量 type ReqGetEnergyByAD struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqGetEnergyByAD) Reset() { @@ -6189,11 +6315,12 @@ func (*ReqGetEnergyByAD) Descriptor() ([]byte, []int) { } type ResGetEnergyByAD struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetEnergyByAD) Reset() { @@ -6241,10 +6368,11 @@ func (x *ResGetEnergyByAD) GetMsg() string { } type ReqGetHandbookReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` } func (x *ReqGetHandbookReward) Reset() { @@ -6285,11 +6413,12 @@ func (x *ReqGetHandbookReward) GetChessId() int32 { } type ResGetHandbookReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetHandbookReward) Reset() { @@ -6337,11 +6466,12 @@ func (x *ResGetHandbookReward) GetMsg() string { } type HandbookInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` } func (x *HandbookInfo) Reset() { @@ -6389,11 +6519,12 @@ func (x *HandbookInfo) GetStatus() int32 { } type Handbook struct { - state protoimpl.MessageState `protogen:"open.v1"` - Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` - Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` + Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励; } func (x *Handbook) Reset() { @@ -6441,10 +6572,11 @@ func (x *Handbook) GetCollect() []string { } type RegHandbookAllReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C" - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"; } func (x *RegHandbookAllReward) Reset() { @@ -6485,11 +6617,12 @@ func (x *RegHandbookAllReward) GetType() string { } type ResHandbookAllReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResHandbookAllReward) Reset() { @@ -6537,12 +6670,13 @@ func (x *ResHandbookAllReward) GetMsg() string { } type ReqRewardOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; } func (x *ReqRewardOrder) Reset() { @@ -6597,11 +6731,12 @@ func (x *ReqRewardOrder) GetActType() []int32 { } type ResRewardOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResRewardOrder) Reset() { @@ -6649,9 +6784,9 @@ func (x *ResRewardOrder) GetMsg() string { } type ReqCreatePetOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCreatePetOrder) Reset() { @@ -6686,10 +6821,11 @@ func (*ReqCreatePetOrder) Descriptor() ([]byte, []int) { // 删除订单 type ReqDelOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` } func (x *ReqDelOrder) Reset() { @@ -6730,11 +6866,12 @@ func (x *ReqDelOrder) GetOrderId() int32 { } type ResDelOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResDelOrder) Reset() { @@ -6783,10 +6920,11 @@ func (x *ResDelOrder) GetMsg() string { // 获取出售棋子获得的星星数量 type ReqSellChessNum struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` } func (x *ReqSellChessNum) Reset() { @@ -6827,10 +6965,11 @@ func (x *ReqSellChessNum) GetChessId() int32 { } type ResSellChessNum struct { - state protoimpl.MessageState `protogen:"open.v1"` - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *ResSellChessNum) Reset() { @@ -6871,13 +7010,14 @@ func (x *ResSellChessNum) GetNum() int32 { } type Order struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` - Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; } func (x *Order) Reset() { @@ -6939,10 +7079,11 @@ func (x *Order) GetItems() []*ItemInfo { } type ResOrderList struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"` } func (x *ResOrderList) Reset() { @@ -6984,13 +7125,14 @@ func (x *ResOrderList) GetOrderList() []*Order { // 装饰信息 type ResDecorateInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` - MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` - RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励 - Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` + MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` + RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励; + Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件; } func (x *ResDecorateInfo) Reset() { @@ -7052,11 +7194,12 @@ func (x *ResDecorateInfo) GetParts() []*DecoratePart { } type DecoratePart struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件; } func (x *DecoratePart) Reset() { @@ -7105,11 +7248,12 @@ func (x *DecoratePart) GetItems() []*ItemInfo { // 请求装饰基础信息 type ReqDecorate struct { - state protoimpl.MessageState `protogen:"open.v1"` - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` - DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` + DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"` } func (x *ReqDecorate) Reset() { @@ -7157,11 +7301,12 @@ func (x *ReqDecorate) GetDecorateId() int32 { } type ResDecorate struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResDecorate) Reset() { @@ -7210,9 +7355,9 @@ func (x *ResDecorate) GetMsg() string { // 一键装饰 type ReqDecorateAll struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqDecorateAll) Reset() { @@ -7246,11 +7391,12 @@ func (*ReqDecorateAll) Descriptor() ([]byte, []int) { } type ResDecorateAll struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResDecorateAll) Reset() { @@ -7298,10 +7444,11 @@ func (x *ResDecorateAll) GetMsg() string { } type ReqAreaReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` } func (x *ReqAreaReward) Reset() { @@ -7342,11 +7489,12 @@ func (x *ReqAreaReward) GetAreaId() int32 { } type ResAreaReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResAreaReward) Reset() { @@ -7395,11 +7543,12 @@ func (x *ResAreaReward) GetMsg() string { // 请求Gm命令 type ReqGmCommand struct { - state protoimpl.MessageState `protogen:"open.v1"` - Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"` - Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"` + Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` } func (x *ReqGmCommand) Reset() { @@ -7448,11 +7597,12 @@ func (x *ReqGmCommand) GetArgs() string { // --------------卡牌------------ type Card struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *Card) Reset() { @@ -7500,9 +7650,9 @@ func (x *Card) GetCount() int32 { } type ReqCardInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCardInfo) Reset() { @@ -7536,23 +7686,24 @@ func (*ReqCardInfo) Descriptor() ([]byte, []int) { } type ResCardInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表 - ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级 - Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取 - CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励 - ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数 - ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 - AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 - EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间 - ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid - ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid - GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 - Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次 - Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取 - SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表; + ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级; + Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取; + CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励; + ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数; + ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; + AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌; + EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间; + ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; + ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; + GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; + Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次; + Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴 CardId => Status 1:已解锁 2:已领取; + SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励; } func (x *ResCardInfo) Reset() { @@ -7684,14 +7835,15 @@ func (x *ResCardInfo) GetSeasonFirst() bool { } type ResNotifyCardTimes struct { - state protoimpl.MessageState `protogen:"open.v1"` - ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数 - ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 - ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid - ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid - GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数; + ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; + ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; + ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; + GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; } func (x *ResNotifyCardTimes) Reset() { @@ -7760,9 +7912,9 @@ func (x *ResNotifyCardTimes) GetGoldTimes() int32 { } type ReqCardSeasonFirstReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCardSeasonFirstReward) Reset() { @@ -7796,11 +7948,12 @@ func (*ReqCardSeasonFirstReward) Descriptor() ([]byte, []int) { } type ResCardSeasonFirstReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCardSeasonFirstReward) Reset() { @@ -7849,10 +8002,11 @@ func (x *ResCardSeasonFirstReward) GetMsg() string { // 领取卡牌图鉴奖励 type ReqCardHandbookReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardHandbookReward) Reset() { @@ -7893,12 +8047,13 @@ func (x *ReqCardHandbookReward) GetCardId() int32 { } type ResCardHandbookReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - CardId int32 `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + CardId int32 `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ResCardHandbookReward) Reset() { @@ -7954,11 +8109,12 @@ func (x *ResCardHandbookReward) GetCardId() int32 { // 万能卡兑换 type ReqMasterCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡 - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡; + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id; } func (x *ReqMasterCard) Reset() { @@ -8006,13 +8162,14 @@ func (x *ReqMasterCard) GetCardId() int32 { } type ResMasterCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - MasterId int32 `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"` - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + MasterId int32 `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"` + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ResMasterCard) Reset() { @@ -8075,10 +8232,11 @@ func (x *ResMasterCard) GetCardId() int32 { // 领取卡牌系列收集奖励 type ReqCardCollectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"` } func (x *ReqCardCollectReward) Reset() { @@ -8119,11 +8277,12 @@ func (x *ReqCardCollectReward) GetColor() int32 { } type ResCardCollectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCardCollectReward) Reset() { @@ -8172,10 +8331,11 @@ func (x *ResCardCollectReward) GetMsg() string { // 兑换收集星星奖励 type ReqExStarReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqExStarReward) Reset() { @@ -8216,11 +8376,12 @@ func (x *ReqExStarReward) GetId() int32 { } type ResExStarReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResExStarReward) Reset() { @@ -8269,9 +8430,9 @@ func (x *ResExStarReward) GetMsg() string { // 领取全收集奖励 type ReqAllCollectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqAllCollectReward) Reset() { @@ -8305,11 +8466,12 @@ func (*ReqAllCollectReward) Descriptor() ([]byte, []int) { } type ResAllCollectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResAllCollectReward) Reset() { @@ -8358,11 +8520,12 @@ func (x *ResAllCollectReward) GetMsg() string { // 请求赠送卡片 type ReqCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardGive) Reset() { @@ -8410,11 +8573,12 @@ func (x *ReqCardGive) GetCardId() int32 { } type ResCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCardGive) Reset() { @@ -8463,10 +8627,11 @@ func (x *ResCardGive) GetMsg() string { // 同意请求卡牌 type ReqAgreeCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; } func (x *ReqAgreeCardGive) Reset() { @@ -8507,12 +8672,13 @@ func (x *ReqAgreeCardGive) GetId() string { } type ResAgreeCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResAgreeCardGive) Reset() { @@ -8568,10 +8734,11 @@ func (x *ResAgreeCardGive) GetId() string { // 拒绝请求卡牌 type ReqRefuseCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; } func (x *ReqRefuseCardGive) Reset() { @@ -8612,12 +8779,13 @@ func (x *ReqRefuseCardGive) GetId() string { } type ResRefuseCardGive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardGive) Reset() { @@ -8673,12 +8841,13 @@ func (x *ResRefuseCardGive) GetId() string { // 直接赠送卡牌 type ReqCardSend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; } func (x *ReqCardSend) Reset() { @@ -8733,11 +8902,12 @@ func (x *ReqCardSend) GetEmoji() int32 { } type ResCardSend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCardSend) Reset() { @@ -8786,12 +8956,13 @@ func (x *ResCardSend) GetMsg() string { // 请求卡牌交换 type ReqCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; } func (x *ReqCardExchange) Reset() { @@ -8846,11 +9017,12 @@ func (x *ReqCardExchange) GetEmoji() int32 { } type ResCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCardExchange) Reset() { @@ -8899,11 +9071,12 @@ func (x *ResCardExchange) GetMsg() string { // 选择交换的卡牌 type ReqSelectCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqSelectCardExchange) Reset() { @@ -8951,12 +9124,13 @@ func (x *ReqSelectCardExchange) GetCardId() int32 { } type ResSelectCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResSelectCardExchange) Reset() { @@ -9012,10 +9186,11 @@ func (x *ResSelectCardExchange) GetId() string { // 同意卡牌交换 type ReqAgreeCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqAgreeCardExchange) Reset() { @@ -9056,13 +9231,14 @@ func (x *ReqAgreeCardExchange) GetId() string { } type ResAgreeCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; } func (x *ResAgreeCardExchange) Reset() { @@ -9125,10 +9301,11 @@ func (x *ResAgreeCardExchange) GetEmoji() int32 { // 拒绝选择卡牌进行交换 type ReqRefuseCardSelect struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardSelect) Reset() { @@ -9169,12 +9346,13 @@ func (x *ReqRefuseCardSelect) GetId() string { } type ResRefuseCardSelect struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardSelect) Reset() { @@ -9230,10 +9408,11 @@ func (x *ResRefuseCardSelect) GetId() string { // 拒绝卡牌交换 type ReqRefuseCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardExchange) Reset() { @@ -9274,12 +9453,13 @@ func (x *ReqRefuseCardExchange) GetId() string { } type ResRefuseCardExchange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardExchange) Reset() { @@ -9335,10 +9515,11 @@ func (x *ResRefuseCardExchange) GetId() string { // 领取卡牌 type ReqGetFriendCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetFriendCard) Reset() { @@ -9379,14 +9560,15 @@ func (x *ReqGetFriendCard) GetId() string { } type ResGetFriendCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; } func (x *ResGetFriendCard) Reset() { @@ -9456,9 +9638,9 @@ func (x *ResGetFriendCard) GetEmoji() int32 { // 获取可以交换的金卡 type ReqGetGoldCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqGetGoldCard) Reset() { @@ -9492,11 +9674,12 @@ func (*ReqGetGoldCard) Descriptor() ([]byte, []int) { } type ResGetGoldCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡 - Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡; + Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡; } func (x *ResGetGoldCard) Reset() { @@ -9545,10 +9728,11 @@ func (x *ResGetGoldCard) GetFive() int32 { // 领取引导奖励 type ReqGuideReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGuideReward) Reset() { @@ -9589,11 +9773,12 @@ func (x *ReqGuideReward) GetId() int32 { } type ResGuideReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGuideReward) Reset() { @@ -9641,10 +9826,11 @@ func (x *ResGuideReward) GetMsg() string { } type ReqGuidePlayroom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGuidePlayroom) Reset() { @@ -9685,11 +9871,12 @@ func (x *ReqGuidePlayroom) GetId() int32 { } type ResGuidePlayroom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGuidePlayroom) Reset() { @@ -9737,10 +9924,11 @@ func (x *ResGuidePlayroom) GetMsg() string { } type ResGuildInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResGuildInfo) Reset() { @@ -9781,10 +9969,11 @@ func (x *ResGuildInfo) GetReward() map[int32]int32 { } type ResGuideInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResGuideInfo) Reset() { @@ -9825,13 +10014,14 @@ func (x *ResGuideInfo) GetReward() map[int32]int32 { } type ResItemPop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具 - CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包 - Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具; + CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包; + Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签; } func (x *ResItemPop) Reset() { @@ -9893,11 +10083,12 @@ func (x *ResItemPop) GetLable() string { } type ItemInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *ItemInfo) Reset() { @@ -9945,11 +10136,12 @@ func (x *ItemInfo) GetNum() int32 { } type CardPack struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id - Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id; + Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` } func (x *CardPack) Reset() { @@ -9998,13 +10190,14 @@ func (x *CardPack) GetCard() []int32 { // 新手任务 type ResGuideTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励 - Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 - UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励; + Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //任务进度; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间; } func (x *ResGuideTask) Reset() { @@ -10066,12 +10259,13 @@ func (x *ResGuideTask) GetUnlockTime() int32 { } type GuideTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 - Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; + Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; } func (x *GuideTask) Reset() { @@ -10126,10 +10320,11 @@ func (x *GuideTask) GetId() int32 { } type ReqGetGuideTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; } func (x *ReqGetGuideTaskReward) Reset() { @@ -10170,12 +10365,13 @@ func (x *ReqGetGuideTaskReward) GetId() int32 { } type ResGetGuideTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; } func (x *ResGetGuideTaskReward) Reset() { @@ -10230,10 +10426,11 @@ func (x *ResGetGuideTaskReward) GetId() int32 { } type ReqGetGuideActiveReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; } func (x *ReqGetGuideActiveReward) Reset() { @@ -10274,12 +10471,13 @@ func (x *ReqGetGuideActiveReward) GetId() int32 { } type ResGetGuideActiveReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; } func (x *ResGetGuideActiveReward) Reset() { @@ -10335,14 +10533,15 @@ func (x *ResGetGuideActiveReward) GetId() int32 { // 日常任务 type ResDailyTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励 - DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 - DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳 - WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //周奖励; + DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //任务进度; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳; + WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳; } func (x *ResDailyTask) Reset() { @@ -10411,12 +10610,13 @@ func (x *ResDailyTask) GetWeekEnd() int32 { } type DailyWeek struct { - state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 - Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取 - NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; + Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取; + NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度; } func (x *DailyWeek) Reset() { @@ -10471,15 +10671,16 @@ func (x *DailyWeek) GetNeedActive() int32 { } type DailyTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 - UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁 - Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id - Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; + UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁; + Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; + Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引; } func (x *DailyTask) Reset() { @@ -10555,14 +10756,15 @@ func (x *DailyTask) GetIndex() int32 { } type QuestProgress struct { - state protoimpl.MessageState `protogen:"open.v1"` - Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签 - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度 - Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标 - Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 - Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度; + Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标; + Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成; + Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数; } func (x *QuestProgress) Reset() { @@ -10632,10 +10834,11 @@ func (x *QuestProgress) GetParam() int32 { // 领取日常任务奖励 type ReqGetDailyTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetDailyTaskReward) Reset() { @@ -10676,11 +10879,12 @@ func (x *ReqGetDailyTaskReward) GetId() int32 { } type ResGetDailyTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetDailyTaskReward) Reset() { @@ -10729,10 +10933,11 @@ func (x *ResGetDailyTaskReward) GetMsg() string { // 领取日常周奖励 type ReqGetDailyWeekReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetDailyWeekReward) Reset() { @@ -10773,11 +10978,12 @@ func (x *ReqGetDailyWeekReward) GetId() int32 { } type ResGetDailyWeekReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetDailyWeekReward) Reset() { @@ -10825,9 +11031,9 @@ func (x *ResGetDailyWeekReward) GetMsg() string { } type ReqDailyUnlock struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqDailyUnlock) Reset() { @@ -10861,11 +11067,12 @@ func (*ReqDailyUnlock) Descriptor() ([]byte, []int) { } type ResDailyUnlock struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResDailyUnlock) Reset() { @@ -10913,11 +11120,12 @@ func (x *ResDailyUnlock) GetMsg() string { } type ResFaceInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"` + SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` } func (x *ResFaceInfo) Reset() { @@ -10965,12 +11173,13 @@ func (x *ResFaceInfo) GetSetId() int32 { } type FaceInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; } func (x *FaceInfo) Reset() { @@ -11025,10 +11234,11 @@ func (x *FaceInfo) GetAddTime() int64 { } type ReqSetFace struct { - state protoimpl.MessageState `protogen:"open.v1"` - Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"` } func (x *ReqSetFace) Reset() { @@ -11069,11 +11279,12 @@ func (x *ReqSetFace) GetFace() int32 { } type ResSetFace struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetFace) Reset() { @@ -11121,11 +11332,12 @@ func (x *ResSetFace) GetMsg() string { } type ResAvatarInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` - SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` + SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` } func (x *ResAvatarInfo) Reset() { @@ -11173,12 +11385,13 @@ func (x *ResAvatarInfo) GetSetId() int32 { } type AvatarInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; } func (x *AvatarInfo) Reset() { @@ -11233,10 +11446,11 @@ func (x *AvatarInfo) GetAddTime() int64 { } type ReqSetAvatar struct { - state protoimpl.MessageState `protogen:"open.v1"` - Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"` } func (x *ReqSetAvatar) Reset() { @@ -11277,11 +11491,12 @@ func (x *ReqSetAvatar) GetAvatar() int32 { } type ResSetAvatar struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetAvatar) Reset() { @@ -11330,12 +11545,13 @@ func (x *ResSetAvatar) GetMsg() string { // 表情 Emoji type EmojiInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; } func (x *EmojiInfo) Reset() { @@ -11391,11 +11607,12 @@ func (x *EmojiInfo) GetAddTime() int64 { // 设置表情 type ReqSetEmoji struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3; } func (x *ReqSetEmoji) Reset() { @@ -11443,11 +11660,12 @@ func (x *ReqSetEmoji) GetType() int32 { } type ResSetEmoji struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetEmoji) Reset() { @@ -11496,13 +11714,14 @@ func (x *ResSetEmoji) GetMsg() string { // 七日签到 type ResSevenLogin struct { - state protoimpl.MessageState `protogen:"open.v1"` - WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励 - MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励 - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 - IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励; + MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回; } func (x *ResSevenLogin) Reset() { @@ -11564,14 +11783,15 @@ func (x *ResSevenLogin) GetIsBack() bool { } type SevenLoginReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1 - Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2 - Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3 - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取 - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1; + Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2; + Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取; + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id; } func (x *SevenLoginReward) Reset() { @@ -11641,10 +11861,11 @@ func (x *SevenLoginReward) GetId() int32 { // 领取周奖励 type ReqGetSevenLoginReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetSevenLoginReward) Reset() { @@ -11685,11 +11906,12 @@ func (x *ReqGetSevenLoginReward) GetId() int32 { } type ResGetSevenLoginReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetSevenLoginReward) Reset() { @@ -11738,10 +11960,11 @@ func (x *ResGetSevenLoginReward) GetMsg() string { // 领取月奖励 type ReqGetMonthLoginReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetMonthLoginReward) Reset() { @@ -11782,11 +12005,12 @@ func (x *ReqGetMonthLoginReward) GetId() int32 { } type ResGetMonthLoginReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetMonthLoginReward) Reset() { @@ -11835,10 +12059,11 @@ func (x *ResGetMonthLoginReward) GetMsg() string { // 活动 type ResActivity struct { - state protoimpl.MessageState `protogen:"open.v1"` - ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"` } func (x *ResActivity) Reset() { @@ -11879,16 +12104,17 @@ func (x *ResActivity) GetActiveList() []*ActivityInfo { } type ActivityInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型 - StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束 - Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题 - Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型; + StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束; + Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题; + Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点; } func (x *ActivityInfo) Reset() { @@ -11972,10 +12198,11 @@ func (x *ActivityInfo) GetRed() int32 { // 领取活动奖励 type ReqActivityReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id; } func (x *ReqActivityReward) Reset() { @@ -12016,11 +12243,12 @@ func (x *ReqActivityReward) GetId() int32 { } type ResActivityReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResActivityReward) Reset() { @@ -12070,9 +12298,9 @@ func (x *ResActivityReward) GetMsg() string { // #region 限时事件 // 限时事件 type ReqLimitEvent struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqLimitEvent) Reset() { @@ -12106,10 +12334,11 @@ func (*ReqLimitEvent) Descriptor() ([]byte, []int) { } type ResLimitEvent struct { - state protoimpl.MessageState `protogen:"open.v1"` - LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //限时事件列表; } func (x *ResLimitEvent) Reset() { @@ -12150,12 +12379,13 @@ func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { } type ResLimitEventProgress struct { - state protoimpl.MessageState `protogen:"open.v1"` - ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度 - Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度 - ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度; + Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度; + ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //奖励 可以选择的奖励 Id =》 RewardId; } func (x *ResLimitEventProgress) Reset() { @@ -12210,10 +12440,11 @@ func (x *ResLimitEventProgress) GetProgressReward() map[int32]int32 { } type ReqLimitEventReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqLimitEventReward) Reset() { @@ -12254,11 +12485,12 @@ func (x *ReqLimitEventReward) GetId() int32 { } type ResLimitEventReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResLimitEventReward) Reset() { @@ -12306,10 +12538,11 @@ func (x *ResLimitEventReward) GetMsg() string { } type ReqSelectLimitEvent struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqSelectLimitEvent) Reset() { @@ -12350,11 +12583,12 @@ func (x *ReqSelectLimitEvent) GetId() int32 { } type ResSelectLimitEvent struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSelectLimitEvent) Reset() { @@ -12402,15 +12636,16 @@ func (x *ResSelectLimitEvent) GetMsg() string { } type LimitEvent struct { - state protoimpl.MessageState `protogen:"open.v1"` - EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 - Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd - Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数 - StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 - Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam - ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; + Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数; + StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; + Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //key 为枚举 LimitEventParam; + ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间; } func (x *LimitEvent) Reset() { @@ -12486,13 +12721,14 @@ func (x *LimitEvent) GetShowTime() int32 { } type LimitEventNotify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型 - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 - Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; } func (x *LimitEventNotify) Reset() { @@ -12554,11 +12790,12 @@ func (x *LimitEventNotify) GetCd() int32 { } type ReqLimitEventLuckyCat struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqLimitEventLuckyCat) Reset() { @@ -12606,11 +12843,12 @@ func (x *ReqLimitEventLuckyCat) GetMChessData() map[string]int32 { } type ResLimitEventLuckyCat struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResLimitEventLuckyCat) Reset() { @@ -12658,9 +12896,9 @@ func (x *ResLimitEventLuckyCat) GetMsg() string { } type ReqLimitSenceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqLimitSenceReward) Reset() { @@ -12694,11 +12932,12 @@ func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) { } type ResLimitSenceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResLimitSenceReward) Reset() { @@ -12746,11 +12985,12 @@ func (x *ResLimitSenceReward) GetMsg() string { } type ResChessRainReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具 - Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具; + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id; } func (x *ResChessRainReward) Reset() { @@ -12798,9 +13038,9 @@ func (x *ResChessRainReward) GetId() int32 { } type ReqFastProduceInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFastProduceInfo) Reset() { @@ -12834,12 +13074,13 @@ func (*ReqFastProduceInfo) Descriptor() ([]byte, []int) { } type ResFastProduceInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量 - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数 - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数; + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; } func (x *ResFastProduceInfo) Reset() { @@ -12895,10 +13136,11 @@ func (x *ResFastProduceInfo) GetEndTime() int64 { // 连技快手奖励 type ReqFastProduceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` } func (x *ReqFastProduceReward) Reset() { @@ -12939,13 +13181,14 @@ func (x *ReqFastProduceReward) GetEnergy() int32 { } type ResFastProduceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` - Num int32 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` + Num int32 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *ResFastProduceReward) Reset() { @@ -13007,9 +13250,9 @@ func (x *ResFastProduceReward) GetNum() int32 { } type ReqCatTrickReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCatTrickReward) Reset() { @@ -13043,12 +13286,13 @@ func (*ReqCatTrickReward) Descriptor() ([]byte, []int) { } type ResCatTrickReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭; } func (x *ResCatTrickReward) Reset() { @@ -13104,10 +13348,11 @@ func (x *ResCatTrickReward) GetIsClose() bool { // 搜索好友 type ReqSearchPlayer struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqSearchPlayer) Reset() { @@ -13148,11 +13393,12 @@ func (x *ReqSearchPlayer) GetUid() string { } type ResSearchPlayer struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` - List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` + List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` } func (x *ResSearchPlayer) Reset() { @@ -13200,10 +13446,11 @@ func (x *ResSearchPlayer) GetList() []*ResPlayerSimple { } type ReqFriendPlayerSimple struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqFriendPlayerSimple) Reset() { @@ -13244,27 +13491,28 @@ func (x *ReqFriendPlayerSimple) GetUid() int64 { } type ResFriendPlayerSimple struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` - Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` - Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` - Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 - Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id - DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id - Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表 - Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态 - Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态 - PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` + Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` + Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` + Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; + Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; + DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; + Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表; + Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态; + Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理状态 位置 =》 状态; + PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; } func (x *ResFriendPlayerSimple) Reset() { @@ -13424,21 +13672,22 @@ func (x *ResFriendPlayerSimple) GetPetName() string { } type ResPlayerSimple struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` - Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` - Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` - Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` + Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` + Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` + Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; } func (x *ResPlayerSimple) Reset() { @@ -13556,12 +13805,13 @@ func (x *ResPlayerSimple) GetInteract() int64 { } type ActLog struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` } func (x *ActLog) Reset() { @@ -13616,16 +13866,17 @@ func (x *ActLog) GetParam() string { } type ResPlayerRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` - Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` + Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人; } func (x *ResPlayerRank) Reset() { @@ -13708,15 +13959,16 @@ func (x *ResPlayerRank) GetType() int32 { } type ResFriendLog struct { - state protoimpl.MessageState `protogen:"open.v1"` - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` - Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` - Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` - Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` + Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` + Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; } func (x *ResFriendLog) Reset() { @@ -13792,11 +14044,12 @@ func (x *ResFriendLog) GetUpvote() bool { } type NotifyFriendLog struct { - state protoimpl.MessageState `protogen:"open.v1"` - Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` - Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` + Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; } func (x *NotifyFriendLog) Reset() { @@ -13844,12 +14097,13 @@ func (x *NotifyFriendLog) GetBubble() *FriendBubbleInfo { } type FriendBubbleInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2: - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:; + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; } func (x *FriendBubbleInfo) Reset() { @@ -13904,10 +14158,11 @@ func (x *FriendBubbleInfo) GetItems() []*ItemInfo { } type NotifyFriendCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *NotifyFriendCard) Reset() { @@ -13948,21 +14203,22 @@ func (x *NotifyFriendCard) GetInfo() *ResFriendCard { } type ResFriendCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` - Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` - CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` - ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` - Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` + Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` + CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` + ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` + Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; } func (x *ResFriendCard) Reset() { @@ -14080,11 +14336,12 @@ func (x *ResFriendCard) GetEmoji() int32 { } type ReqKv struct { - state protoimpl.MessageState `protogen:"open.v1"` - Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *ReqKv) Reset() { @@ -14132,10 +14389,11 @@ func (x *ReqKv) GetValue() string { } type ResKv struct { - state protoimpl.MessageState `protogen:"open.v1"` - Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResKv) Reset() { @@ -14176,10 +14434,11 @@ func (x *ResKv) GetKv() map[int32]string { } type ReqFriendByCode struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码; } func (x *ReqFriendByCode) Reset() { @@ -14220,12 +14479,13 @@ func (x *ReqFriendByCode) GetCode() string { } type ResFriendByCode struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; } func (x *ResFriendByCode) Reset() { @@ -14281,9 +14541,9 @@ func (x *ResFriendByCode) GetPlayer() *ResPlayerSimple { // 好友推荐 type ReqFriendRecommend struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendRecommend) Reset() { @@ -14317,10 +14577,11 @@ func (*ReqFriendRecommend) Descriptor() ([]byte, []int) { } type ResFriendRecommend struct { - state protoimpl.MessageState `protogen:"open.v1"` - List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *ResFriendRecommend) Reset() { @@ -14362,10 +14623,11 @@ func (x *ResFriendRecommend) GetList() []*ResPlayerSimple { // 隐藏 type ReqFriendIgnore struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqFriendIgnore) Reset() { @@ -14406,11 +14668,12 @@ func (x *ReqFriendIgnore) GetUid() int64 { } type ResFriendIgnore struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResFriendIgnore) Reset() { @@ -14459,9 +14722,9 @@ func (x *ResFriendIgnore) GetMsg() string { // 好友基础信息 type ReqFriendList struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendList) Reset() { @@ -14495,13 +14758,14 @@ func (*ReqFriendList) Descriptor() ([]byte, []int) { } type ResFriendList struct { - state protoimpl.MessageState `protogen:"open.v1"` - FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` - ReqApplyList []int64 `protobuf:"varint,3,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表 - Npc []int32 `protobuf:"varint,2,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表 - Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` + ReqApplyList []int64 `protobuf:"varint,2,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表; + Npc []int32 `protobuf:"varint,3,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表; + Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数; } func (x *ResFriendList) Reset() { @@ -14563,10 +14827,11 @@ func (x *ResFriendList) GetSponsor() int32 { } type ReqAddNpc struct { - state protoimpl.MessageState `protogen:"open.v1"` - NpcId int32 `protobuf:"varint,1,opt,name=NpcId,proto3" json:"NpcId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NpcId int32 `protobuf:"varint,1,opt,name=NpcId,proto3" json:"NpcId,omitempty"` } func (x *ReqAddNpc) Reset() { @@ -14607,12 +14872,13 @@ func (x *ReqAddNpc) GetNpcId() int32 { } type ResAddNpc struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - NpcId int32 `protobuf:"varint,3,opt,name=NpcId,proto3" json:"NpcId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + NpcId int32 `protobuf:"varint,3,opt,name=NpcId,proto3" json:"NpcId,omitempty"` } func (x *ResAddNpc) Reset() { @@ -14668,9 +14934,9 @@ func (x *ResAddNpc) GetNpcId() int32 { // 好友申请列表 type ReqFriendApply struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendApply) Reset() { @@ -14704,10 +14970,11 @@ func (*ReqFriendApply) Descriptor() ([]byte, []int) { } type ResFriendApply struct { - state protoimpl.MessageState `protogen:"open.v1"` - ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` } func (x *ResFriendApply) Reset() { @@ -14748,11 +15015,12 @@ func (x *ResFriendApply) GetApplyList() []*ResFriendApplyInfo { } type ResFriendApplyInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Time int32 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Time int32 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` } func (x *ResFriendApplyInfo) Reset() { @@ -14801,9 +15069,9 @@ func (x *ResFriendApplyInfo) GetTime() int32 { // 好友卡牌交换列表 type ReqFriendCardMsg struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendCardMsg) Reset() { @@ -14837,10 +15105,11 @@ func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) { } type ResFriendCardMsg struct { - state protoimpl.MessageState `protogen:"open.v1"` - MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"` } func (x *ResFriendCardMsg) Reset() { @@ -14882,9 +15151,9 @@ func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard { // 好友心愿单请求列表 type ReqWishApplyList struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqWishApplyList) Reset() { @@ -14918,10 +15187,11 @@ func (*ReqWishApplyList) Descriptor() ([]byte, []int) { } type ResWishApplyList struct { - state protoimpl.MessageState `protogen:"open.v1"` - ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` } func (x *ResWishApplyList) Reset() { @@ -14963,10 +15233,11 @@ func (x *ResWishApplyList) GetApplyList() []*ResFriendApplyInfo { // 同意好友心愿单请求 type ReqWishApply struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqWishApply) Reset() { @@ -15007,12 +15278,13 @@ func (x *ReqWishApply) GetUid() int64 { } type ResWishApply struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResWishApply) Reset() { @@ -15068,9 +15340,9 @@ func (x *ResWishApply) GetUid() int64 { // 好友时间线 type ReqFriendTimeLine struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendTimeLine) Reset() { @@ -15104,11 +15376,12 @@ func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) { } type ResFriendTimeLine struct { - state protoimpl.MessageState `protogen:"open.v1"` - Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"` - Reply []*ResFriendReply `protobuf:"bytes,2,rep,name=Reply,proto3" json:"Reply,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"` + Reply []*ResFriendReply `protobuf:"bytes,2,rep,name=Reply,proto3" json:"Reply,omitempty"` } func (x *ResFriendTimeLine) Reset() { @@ -15156,17 +15429,18 @@ func (x *ResFriendTimeLine) GetReply() []*ResFriendReply { } type ResFriendReply struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼 - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理 - AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // - Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 - Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼; + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理; + AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //; + Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; + Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; } func (x *ResFriendReply) Reset() { @@ -15256,12 +15530,13 @@ func (x *ResFriendReply) GetItems() []*ItemInfo { } type ReqFriendReplyHandle struct { - state protoimpl.MessageState `protogen:"open.v1"` - LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id - Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; } func (x *ReqFriendReplyHandle) Reset() { @@ -15316,13 +15591,15 @@ func (x *ReqFriendReplyHandle) GetType() int32 { } type ResFriendReplyHandle struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; + ErrType FRIEND_REPLY_HANDLE_ERR_TYPE `protobuf:"varint,5,opt,name=ErrType,proto3,enum=tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE" json:"ErrType,omitempty"` // 错误类型; } func (x *ResFriendReplyHandle) Reset() { @@ -15383,11 +15660,19 @@ func (x *ResFriendReplyHandle) GetType() int32 { return 0 } +func (x *ResFriendReplyHandle) GetErrType() FRIEND_REPLY_HANDLE_ERR_TYPE { + if x != nil { + return x.ErrType + } + return FRIEND_REPLY_HANDLE_ERR_TYPE_NONE +} + type ResFriendBubble struct { - state protoimpl.MessageState `protogen:"open.v1"` - Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; } func (x *ResFriendBubble) Reset() { @@ -15429,10 +15714,11 @@ func (x *ResFriendBubble) GetBubble() []*FriendBubbleInfo { // 时间线点赞 type ReqFriendTLUpvote struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqFriendTLUpvote) Reset() { @@ -15473,12 +15759,13 @@ func (x *ReqFriendTLUpvote) GetId() int32 { } type ResFriendTLUpvote struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResFriendTLUpvote) Reset() { @@ -15534,10 +15821,11 @@ func (x *ResFriendTLUpvote) GetId() int32 { // 时间线领奖 type ReqFriendTReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqFriendTReward) Reset() { @@ -15578,12 +15866,13 @@ func (x *ReqFriendTReward) GetId() int32 { } type ResFriendTReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResFriendTReward) Reset() { @@ -15638,12 +15927,13 @@ func (x *ResFriendTReward) GetId() int32 { } type ResFriendApplyNotify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除 - Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除; + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` } func (x *ResFriendApplyNotify) Reset() { @@ -15697,18 +15987,80 @@ func (x *ResFriendApplyNotify) GetTime() int32 { return 0 } +type ResFriendReplyNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` +} + +func (x *ResFriendReplyNotify) Reset() { + *x = ResFriendReplyNotify{} + mi := &file_proto_Gameapi_proto_msgTypes[259] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResFriendReplyNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResFriendReplyNotify) ProtoMessage() {} + +func (x *ResFriendReplyNotify) ProtoReflect() protoreflect.Message { + mi := &file_proto_Gameapi_proto_msgTypes[259] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResFriendReplyNotify.ProtoReflect.Descriptor instead. +func (*ResFriendReplyNotify) Descriptor() ([]byte, []int) { + return file_proto_Gameapi_proto_rawDescGZIP(), []int{259} +} + +func (x *ResFriendReplyNotify) GetPlayer() *ResPlayerSimple { + if x != nil { + return x.Player + } + return nil +} + +func (x *ResFriendReplyNotify) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *ResFriendReplyNotify) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + // 申请好友 type ReqApplyFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求; } func (x *ReqApplyFriend) Reset() { *x = ReqApplyFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[259] + mi := &file_proto_Gameapi_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15720,7 +16072,7 @@ func (x *ReqApplyFriend) String() string { func (*ReqApplyFriend) ProtoMessage() {} func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[259] + mi := &file_proto_Gameapi_proto_msgTypes[260] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15733,7 +16085,7 @@ func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqApplyFriend.ProtoReflect.Descriptor instead. func (*ReqApplyFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{259} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{260} } func (x *ReqApplyFriend) GetUid() int64 { @@ -15751,17 +16103,18 @@ func (x *ReqApplyFriend) GetType() int32 { } type ResApplyFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResApplyFriend) Reset() { *x = ResApplyFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[260] + mi := &file_proto_Gameapi_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15773,7 +16126,7 @@ func (x *ResApplyFriend) String() string { func (*ResApplyFriend) ProtoMessage() {} func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[260] + mi := &file_proto_Gameapi_proto_msgTypes[261] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15786,7 +16139,7 @@ func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResApplyFriend.ProtoReflect.Descriptor instead. func (*ResApplyFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{260} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{261} } func (x *ResApplyFriend) GetCode() RES_CODE { @@ -15812,15 +16165,16 @@ func (x *ResApplyFriend) GetUid() int64 { // 同意申请 type ReqAgreeFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqAgreeFriend) Reset() { *x = ReqAgreeFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[261] + mi := &file_proto_Gameapi_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15832,7 +16186,7 @@ func (x *ReqAgreeFriend) String() string { func (*ReqAgreeFriend) ProtoMessage() {} func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[261] + mi := &file_proto_Gameapi_proto_msgTypes[262] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15845,7 +16199,7 @@ func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAgreeFriend.ProtoReflect.Descriptor instead. func (*ReqAgreeFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{261} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{262} } func (x *ReqAgreeFriend) GetUid() int64 { @@ -15856,18 +16210,19 @@ func (x *ReqAgreeFriend) GetUid() int64 { } type ResAgreeFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` } func (x *ResAgreeFriend) Reset() { *x = ResAgreeFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[262] + mi := &file_proto_Gameapi_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15879,7 +16234,7 @@ func (x *ResAgreeFriend) String() string { func (*ResAgreeFriend) ProtoMessage() {} func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[262] + mi := &file_proto_Gameapi_proto_msgTypes[263] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15892,7 +16247,7 @@ func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAgreeFriend.ProtoReflect.Descriptor instead. func (*ResAgreeFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{262} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{263} } func (x *ResAgreeFriend) GetCode() RES_CODE { @@ -15925,15 +16280,16 @@ func (x *ResAgreeFriend) GetPlayer() *ResPlayerSimple { // 拒绝申请 type ReqRefuseFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqRefuseFriend) Reset() { *x = ReqRefuseFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[263] + mi := &file_proto_Gameapi_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15945,7 +16301,7 @@ func (x *ReqRefuseFriend) String() string { func (*ReqRefuseFriend) ProtoMessage() {} func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[263] + mi := &file_proto_Gameapi_proto_msgTypes[264] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15958,7 +16314,7 @@ func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseFriend.ProtoReflect.Descriptor instead. func (*ReqRefuseFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{263} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{264} } func (x *ReqRefuseFriend) GetUid() int64 { @@ -15969,17 +16325,18 @@ func (x *ReqRefuseFriend) GetUid() int64 { } type ResRefuseFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResRefuseFriend) Reset() { *x = ResRefuseFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[264] + mi := &file_proto_Gameapi_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15991,7 +16348,7 @@ func (x *ResRefuseFriend) String() string { func (*ResRefuseFriend) ProtoMessage() {} func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[264] + mi := &file_proto_Gameapi_proto_msgTypes[265] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16004,7 +16361,7 @@ func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseFriend.ProtoReflect.Descriptor instead. func (*ResRefuseFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{264} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{265} } func (x *ResRefuseFriend) GetCode() RES_CODE { @@ -16030,15 +16387,16 @@ func (x *ResRefuseFriend) GetUid() int64 { // 删除好友 type ReqDelFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqDelFriend) Reset() { *x = ReqDelFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[265] + mi := &file_proto_Gameapi_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16050,7 +16408,7 @@ func (x *ReqDelFriend) String() string { func (*ReqDelFriend) ProtoMessage() {} func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[265] + mi := &file_proto_Gameapi_proto_msgTypes[266] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16063,7 +16421,7 @@ func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDelFriend.ProtoReflect.Descriptor instead. func (*ReqDelFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{265} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{266} } func (x *ReqDelFriend) GetUid() int64 { @@ -16074,17 +16432,18 @@ func (x *ReqDelFriend) GetUid() int64 { } type ResDelFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResDelFriend) Reset() { *x = ResDelFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[266] + mi := &file_proto_Gameapi_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16096,7 +16455,7 @@ func (x *ResDelFriend) String() string { func (*ResDelFriend) ProtoMessage() {} func (x *ResDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[266] + mi := &file_proto_Gameapi_proto_msgTypes[267] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16109,7 +16468,7 @@ func (x *ResDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDelFriend.ProtoReflect.Descriptor instead. func (*ResDelFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{266} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{267} } func (x *ResDelFriend) GetCode() RES_CODE { @@ -16135,15 +16494,16 @@ func (x *ResDelFriend) GetUid() int64 { // 玩家榜单 type ReqRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单; } func (x *ReqRank) Reset() { *x = ReqRank{} - mi := &file_proto_Gameapi_proto_msgTypes[267] + mi := &file_proto_Gameapi_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16155,7 +16515,7 @@ func (x *ReqRank) String() string { func (*ReqRank) ProtoMessage() {} func (x *ReqRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[267] + mi := &file_proto_Gameapi_proto_msgTypes[268] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16168,7 +16528,7 @@ func (x *ReqRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRank.ProtoReflect.Descriptor instead. func (*ReqRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{267} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{268} } func (x *ReqRank) GetType() int32 { @@ -16179,18 +16539,19 @@ func (x *ReqRank) GetType() int32 { } type ResRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型 - RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 - MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 - MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型; + RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; + MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; } func (x *ResRank) Reset() { *x = ResRank{} - mi := &file_proto_Gameapi_proto_msgTypes[268] + mi := &file_proto_Gameapi_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16202,7 +16563,7 @@ func (x *ResRank) String() string { func (*ResRank) ProtoMessage() {} func (x *ResRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[268] + mi := &file_proto_Gameapi_proto_msgTypes[269] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16215,7 +16576,7 @@ func (x *ResRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRank.ProtoReflect.Descriptor instead. func (*ResRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{268} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{269} } func (x *ResRank) GetType() int32 { @@ -16248,14 +16609,14 @@ func (x *ResRank) GetMyScore() float32 { // 邮件列表 type ReqMailList struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqMailList) Reset() { *x = ReqMailList{} - mi := &file_proto_Gameapi_proto_msgTypes[269] + mi := &file_proto_Gameapi_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16267,7 +16628,7 @@ func (x *ReqMailList) String() string { func (*ReqMailList) ProtoMessage() {} func (x *ReqMailList) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[269] + mi := &file_proto_Gameapi_proto_msgTypes[270] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16280,19 +16641,20 @@ func (x *ReqMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMailList.ProtoReflect.Descriptor instead. func (*ReqMailList) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{269} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{270} } type ResMailList struct { - state protoimpl.MessageState `protogen:"open.v1"` - MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResMailList) Reset() { *x = ResMailList{} - mi := &file_proto_Gameapi_proto_msgTypes[270] + mi := &file_proto_Gameapi_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16304,7 +16666,7 @@ func (x *ResMailList) String() string { func (*ResMailList) ProtoMessage() {} func (x *ResMailList) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[270] + mi := &file_proto_Gameapi_proto_msgTypes[271] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16317,7 +16679,7 @@ func (x *ResMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMailList.ProtoReflect.Descriptor instead. func (*ResMailList) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{270} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{271} } func (x *ResMailList) GetMailList() map[int32]*MailInfo { @@ -16328,28 +16690,29 @@ func (x *ResMailList) GetMailList() map[int32]*MailInfo { } type MailInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id - Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题 - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 - Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间 - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除 - Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 - Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件 - TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题 - ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容 - SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题 - SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题 - TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题 - ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容 - SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id; + Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题; + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容; + Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间; + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除; + Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件; + TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题; + ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容; + SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题; + SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题; + TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题; + ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容; + SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题; } func (x *MailInfo) Reset() { *x = MailInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[271] + mi := &file_proto_Gameapi_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16361,7 +16724,7 @@ func (x *MailInfo) String() string { func (*MailInfo) ProtoMessage() {} func (x *MailInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[271] + mi := &file_proto_Gameapi_proto_msgTypes[272] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16374,7 +16737,7 @@ func (x *MailInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MailInfo.ProtoReflect.Descriptor instead. func (*MailInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{271} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{272} } func (x *MailInfo) GetId() int32 { @@ -16476,15 +16839,16 @@ func (x *MailInfo) GetSubTitlePtBr() string { } type MailNotify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *MailNotify) Reset() { *x = MailNotify{} - mi := &file_proto_Gameapi_proto_msgTypes[272] + mi := &file_proto_Gameapi_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16496,7 +16860,7 @@ func (x *MailNotify) String() string { func (*MailNotify) ProtoMessage() {} func (x *MailNotify) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[272] + mi := &file_proto_Gameapi_proto_msgTypes[273] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16509,7 +16873,7 @@ func (x *MailNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use MailNotify.ProtoReflect.Descriptor instead. func (*MailNotify) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{272} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{273} } func (x *MailNotify) GetInfo() *MailInfo { @@ -16521,15 +16885,16 @@ func (x *MailNotify) GetInfo() *MailInfo { // 读邮件 type ReqReadMail struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqReadMail) Reset() { *x = ReqReadMail{} - mi := &file_proto_Gameapi_proto_msgTypes[273] + mi := &file_proto_Gameapi_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16541,7 +16906,7 @@ func (x *ReqReadMail) String() string { func (*ReqReadMail) ProtoMessage() {} func (x *ReqReadMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[273] + mi := &file_proto_Gameapi_proto_msgTypes[274] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16554,7 +16919,7 @@ func (x *ReqReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReadMail.ProtoReflect.Descriptor instead. func (*ReqReadMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{273} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{274} } func (x *ReqReadMail) GetId() int32 { @@ -16565,17 +16930,18 @@ func (x *ReqReadMail) GetId() int32 { } type ResReadMail struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResReadMail) Reset() { *x = ResReadMail{} - mi := &file_proto_Gameapi_proto_msgTypes[274] + mi := &file_proto_Gameapi_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16587,7 +16953,7 @@ func (x *ResReadMail) String() string { func (*ResReadMail) ProtoMessage() {} func (x *ResReadMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[274] + mi := &file_proto_Gameapi_proto_msgTypes[275] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16600,7 +16966,7 @@ func (x *ResReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResReadMail.ProtoReflect.Descriptor instead. func (*ResReadMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{274} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{275} } func (x *ResReadMail) GetCode() RES_CODE { @@ -16626,15 +16992,16 @@ func (x *ResReadMail) GetId() int32 { // 领取邮件 type ReqGetMailReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetMailReward) Reset() { *x = ReqGetMailReward{} - mi := &file_proto_Gameapi_proto_msgTypes[275] + mi := &file_proto_Gameapi_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16646,7 +17013,7 @@ func (x *ReqGetMailReward) String() string { func (*ReqGetMailReward) ProtoMessage() {} func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[275] + mi := &file_proto_Gameapi_proto_msgTypes[276] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16659,7 +17026,7 @@ func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetMailReward.ProtoReflect.Descriptor instead. func (*ReqGetMailReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{275} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{276} } func (x *ReqGetMailReward) GetId() int32 { @@ -16670,17 +17037,18 @@ func (x *ReqGetMailReward) GetId() int32 { } type ResGetMailReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResGetMailReward) Reset() { *x = ResGetMailReward{} - mi := &file_proto_Gameapi_proto_msgTypes[276] + mi := &file_proto_Gameapi_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16692,7 +17060,7 @@ func (x *ResGetMailReward) String() string { func (*ResGetMailReward) ProtoMessage() {} func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[276] + mi := &file_proto_Gameapi_proto_msgTypes[277] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16705,7 +17073,7 @@ func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetMailReward.ProtoReflect.Descriptor instead. func (*ResGetMailReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{276} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{277} } func (x *ResGetMailReward) GetCode() RES_CODE { @@ -16731,15 +17099,16 @@ func (x *ResGetMailReward) GetId() int32 { // 删除邮件 type ReqDeleteMail struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqDeleteMail) Reset() { *x = ReqDeleteMail{} - mi := &file_proto_Gameapi_proto_msgTypes[277] + mi := &file_proto_Gameapi_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16751,7 +17120,7 @@ func (x *ReqDeleteMail) String() string { func (*ReqDeleteMail) ProtoMessage() {} func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[277] + mi := &file_proto_Gameapi_proto_msgTypes[278] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16764,7 +17133,7 @@ func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDeleteMail.ProtoReflect.Descriptor instead. func (*ReqDeleteMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{277} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{278} } func (x *ReqDeleteMail) GetId() int32 { @@ -16775,17 +17144,18 @@ func (x *ReqDeleteMail) GetId() int32 { } type ResDeleteMail struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResDeleteMail) Reset() { *x = ResDeleteMail{} - mi := &file_proto_Gameapi_proto_msgTypes[278] + mi := &file_proto_Gameapi_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16797,7 +17167,7 @@ func (x *ResDeleteMail) String() string { func (*ResDeleteMail) ProtoMessage() {} func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[278] + mi := &file_proto_Gameapi_proto_msgTypes[279] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16810,7 +17180,7 @@ func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDeleteMail.ProtoReflect.Descriptor instead. func (*ResDeleteMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{278} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{279} } func (x *ResDeleteMail) GetCode() RES_CODE { @@ -16835,31 +17205,32 @@ func (x *ResDeleteMail) GetId() int32 { } type ResCharge struct { - state protoimpl.MessageState `protogen:"open.v1"` - Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额 - Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数 - First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次 - SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包 - FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次 - ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店 - Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量 - Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包 - Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单 - SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额 - SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周 - TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额 - MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额 - AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间 - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 - PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间 - WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额; + Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数; + First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次; + SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 特惠礼包; + FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次; + ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 棋子商店; + Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 礼包 礼包id =》 礼包数量; + Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包; + Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单; + SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额; + SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周; + TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额; + MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额; + AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间; + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 每周优惠 id -> 限购次数; + PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间; + WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间; } func (x *ResCharge) Reset() { *x = ResCharge{} - mi := &file_proto_Gameapi_proto_msgTypes[279] + mi := &file_proto_Gameapi_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16871,7 +17242,7 @@ func (x *ResCharge) String() string { func (*ResCharge) ProtoMessage() {} func (x *ResCharge) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[279] + mi := &file_proto_Gameapi_proto_msgTypes[280] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16884,7 +17255,7 @@ func (x *ResCharge) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCharge.ProtoReflect.Descriptor instead. func (*ResCharge) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{279} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{280} } func (x *ResCharge) GetCharge() float32 { @@ -17007,16 +17378,17 @@ func (x *ResCharge) GetWeeklyEndTime() int64 { } type LogoutPetWork struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间 - RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间; + RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间; } func (x *LogoutPetWork) Reset() { *x = LogoutPetWork{} - mi := &file_proto_Gameapi_proto_msgTypes[280] + mi := &file_proto_Gameapi_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17028,7 +17400,7 @@ func (x *LogoutPetWork) String() string { func (*LogoutPetWork) ProtoMessage() {} func (x *LogoutPetWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[280] + mi := &file_proto_Gameapi_proto_msgTypes[281] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17041,7 +17413,7 @@ func (x *LogoutPetWork) ProtoReflect() protoreflect.Message { // Deprecated: Use LogoutPetWork.ProtoReflect.Descriptor instead. func (*LogoutPetWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{280} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{281} } func (x *LogoutPetWork) GetWorkTime() int64 { @@ -17059,17 +17431,18 @@ func (x *LogoutPetWork) GetRemainTime() int64 { } type WeeklyDiscountInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 剩余购买次数 - Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比 - unknownFields protoimpl.UnknownFields + 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"` // 剩余购买次数; + Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比; } func (x *WeeklyDiscountInfo) Reset() { *x = WeeklyDiscountInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[281] + mi := &file_proto_Gameapi_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17081,7 +17454,7 @@ func (x *WeeklyDiscountInfo) String() string { func (*WeeklyDiscountInfo) ProtoMessage() {} func (x *WeeklyDiscountInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[281] + mi := &file_proto_Gameapi_proto_msgTypes[282] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17094,7 +17467,7 @@ func (x *WeeklyDiscountInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WeeklyDiscountInfo.ProtoReflect.Descriptor instead. func (*WeeklyDiscountInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{281} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{282} } func (x *WeeklyDiscountInfo) GetId() int32 { @@ -17119,17 +17492,18 @@ func (x *WeeklyDiscountInfo) GetDiscount() int32 { } type WishList struct { - state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 心愿点数 - Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id - unknownFields protoimpl.UnknownFields + 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"` // 心愿点数; + Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id; } func (x *WishList) Reset() { *x = WishList{} - mi := &file_proto_Gameapi_proto_msgTypes[282] + mi := &file_proto_Gameapi_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17141,7 +17515,7 @@ func (x *WishList) String() string { func (*WishList) ProtoMessage() {} func (x *WishList) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[282] + mi := &file_proto_Gameapi_proto_msgTypes[283] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17154,7 +17528,7 @@ func (x *WishList) ProtoReflect() protoreflect.Message { // Deprecated: Use WishList.ProtoReflect.Descriptor instead. func (*WishList) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{282} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{283} } func (x *WishList) GetId() int32 { @@ -17180,16 +17554,17 @@ func (x *WishList) GetUid() []int64 { // 添加心愿单 type ReqAddWish struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店; } func (x *ReqAddWish) Reset() { *x = ReqAddWish{} - mi := &file_proto_Gameapi_proto_msgTypes[283] + mi := &file_proto_Gameapi_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17201,7 +17576,7 @@ func (x *ReqAddWish) String() string { func (*ReqAddWish) ProtoMessage() {} func (x *ReqAddWish) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[283] + mi := &file_proto_Gameapi_proto_msgTypes[284] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17214,7 +17589,7 @@ func (x *ReqAddWish) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAddWish.ProtoReflect.Descriptor instead. func (*ReqAddWish) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{283} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{284} } func (x *ReqAddWish) GetId() int32 { @@ -17232,16 +17607,17 @@ func (x *ReqAddWish) GetType() int32 { } type ResAddWish struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResAddWish) Reset() { *x = ResAddWish{} - mi := &file_proto_Gameapi_proto_msgTypes[284] + mi := &file_proto_Gameapi_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17253,7 +17629,7 @@ func (x *ResAddWish) String() string { func (*ResAddWish) ProtoMessage() {} func (x *ResAddWish) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[284] + mi := &file_proto_Gameapi_proto_msgTypes[285] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17266,7 +17642,7 @@ func (x *ResAddWish) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAddWish.ProtoReflect.Descriptor instead. func (*ResAddWish) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{284} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{285} } func (x *ResAddWish) GetCode() RES_CODE { @@ -17285,14 +17661,14 @@ func (x *ResAddWish) GetMsg() string { // 领取心愿单奖励 type ReqGetWish struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqGetWish) Reset() { *x = ReqGetWish{} - mi := &file_proto_Gameapi_proto_msgTypes[285] + mi := &file_proto_Gameapi_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17304,7 +17680,7 @@ func (x *ReqGetWish) String() string { func (*ReqGetWish) ProtoMessage() {} func (x *ReqGetWish) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[285] + mi := &file_proto_Gameapi_proto_msgTypes[286] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17317,20 +17693,21 @@ func (x *ReqGetWish) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetWish.ProtoReflect.Descriptor instead. func (*ReqGetWish) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{285} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{286} } type ResGetWish struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGetWish) Reset() { *x = ResGetWish{} - mi := &file_proto_Gameapi_proto_msgTypes[286] + mi := &file_proto_Gameapi_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17342,7 +17719,7 @@ func (x *ResGetWish) String() string { func (*ResGetWish) ProtoMessage() {} func (x *ResGetWish) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[286] + mi := &file_proto_Gameapi_proto_msgTypes[287] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17355,7 +17732,7 @@ func (x *ResGetWish) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetWish.ProtoReflect.Descriptor instead. func (*ResGetWish) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{286} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{287} } func (x *ResGetWish) GetCode() RES_CODE { @@ -17374,15 +17751,16 @@ func (x *ResGetWish) GetMsg() string { // 发送心愿单请求 type ReqSendWishBeg struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; } func (x *ReqSendWishBeg) Reset() { *x = ReqSendWishBeg{} - mi := &file_proto_Gameapi_proto_msgTypes[287] + mi := &file_proto_Gameapi_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17394,7 +17772,7 @@ func (x *ReqSendWishBeg) String() string { func (*ReqSendWishBeg) ProtoMessage() {} func (x *ReqSendWishBeg) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[287] + mi := &file_proto_Gameapi_proto_msgTypes[288] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17407,7 +17785,7 @@ func (x *ReqSendWishBeg) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSendWishBeg.ProtoReflect.Descriptor instead. func (*ReqSendWishBeg) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{287} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{288} } func (x *ReqSendWishBeg) GetUid() []int64 { @@ -17418,16 +17796,17 @@ func (x *ReqSendWishBeg) GetUid() []int64 { } type ResSendWishBeg struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSendWishBeg) Reset() { *x = ResSendWishBeg{} - mi := &file_proto_Gameapi_proto_msgTypes[288] + mi := &file_proto_Gameapi_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17439,7 +17818,7 @@ func (x *ResSendWishBeg) String() string { func (*ResSendWishBeg) ProtoMessage() {} func (x *ResSendWishBeg) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[288] + mi := &file_proto_Gameapi_proto_msgTypes[289] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17452,7 +17831,7 @@ func (x *ResSendWishBeg) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSendWishBeg.ProtoReflect.Descriptor instead. func (*ResSendWishBeg) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{288} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{289} } func (x *ResSendWishBeg) GetCode() RES_CODE { @@ -17470,16 +17849,17 @@ func (x *ResSendWishBeg) GetMsg() string { } type ResSpecialShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位 - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数; } func (x *ResSpecialShop) Reset() { *x = ResSpecialShop{} - mi := &file_proto_Gameapi_proto_msgTypes[289] + mi := &file_proto_Gameapi_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17491,7 +17871,7 @@ func (x *ResSpecialShop) String() string { func (*ResSpecialShop) ProtoMessage() {} func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[289] + mi := &file_proto_Gameapi_proto_msgTypes[290] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17504,7 +17884,7 @@ func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSpecialShop.ProtoReflect.Descriptor instead. func (*ResSpecialShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{289} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{290} } func (x *ResSpecialShop) GetGrade() int32 { @@ -17522,17 +17902,18 @@ func (x *ResSpecialShop) GetCount() int32 { } type ResChessShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石 - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量 - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量; + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id; } func (x *ResChessShop) Reset() { *x = ResChessShop{} - mi := &file_proto_Gameapi_proto_msgTypes[290] + mi := &file_proto_Gameapi_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17544,7 +17925,7 @@ func (x *ResChessShop) String() string { func (*ResChessShop) ProtoMessage() {} func (x *ResChessShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[290] + mi := &file_proto_Gameapi_proto_msgTypes[291] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17557,7 +17938,7 @@ func (x *ResChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChessShop.ProtoReflect.Descriptor instead. func (*ResChessShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{290} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{291} } func (x *ResChessShop) GetDiamond() int32 { @@ -17582,14 +17963,14 @@ func (x *ResChessShop) GetChessId() int32 { } type ReqFreeShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFreeShop) Reset() { *x = ReqFreeShop{} - mi := &file_proto_Gameapi_proto_msgTypes[291] + mi := &file_proto_Gameapi_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17601,7 +17982,7 @@ func (x *ReqFreeShop) String() string { func (*ReqFreeShop) ProtoMessage() {} func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[291] + mi := &file_proto_Gameapi_proto_msgTypes[292] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17614,20 +17995,21 @@ func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFreeShop.ProtoReflect.Descriptor instead. func (*ReqFreeShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{291} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{292} } type ResFreeShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResFreeShop) Reset() { *x = ResFreeShop{} - mi := &file_proto_Gameapi_proto_msgTypes[292] + mi := &file_proto_Gameapi_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17639,7 +18021,7 @@ func (x *ResFreeShop) String() string { func (*ResFreeShop) ProtoMessage() {} func (x *ResFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[292] + mi := &file_proto_Gameapi_proto_msgTypes[293] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17652,7 +18034,7 @@ func (x *ResFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFreeShop.ProtoReflect.Descriptor instead. func (*ResFreeShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{292} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{293} } func (x *ResFreeShop) GetCode() RES_CODE { @@ -17671,15 +18053,16 @@ func (x *ResFreeShop) GetMsg() string { // 商店购买棋子 type ReqBuyChessShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqBuyChessShop) Reset() { *x = ReqBuyChessShop{} - mi := &file_proto_Gameapi_proto_msgTypes[293] + mi := &file_proto_Gameapi_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17691,7 +18074,7 @@ func (x *ReqBuyChessShop) String() string { func (*ReqBuyChessShop) ProtoMessage() {} func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[293] + mi := &file_proto_Gameapi_proto_msgTypes[294] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17704,7 +18087,7 @@ func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqBuyChessShop.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{293} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{294} } func (x *ReqBuyChessShop) GetId() int32 { @@ -17715,16 +18098,17 @@ func (x *ReqBuyChessShop) GetId() int32 { } type ResBuyChessShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResBuyChessShop) Reset() { *x = ResBuyChessShop{} - mi := &file_proto_Gameapi_proto_msgTypes[294] + mi := &file_proto_Gameapi_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17736,7 +18120,7 @@ func (x *ResBuyChessShop) String() string { func (*ResBuyChessShop) ProtoMessage() {} func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[294] + mi := &file_proto_Gameapi_proto_msgTypes[295] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17749,7 +18133,7 @@ func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResBuyChessShop.ProtoReflect.Descriptor instead. func (*ResBuyChessShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{294} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{295} } func (x *ResBuyChessShop) GetCode() RES_CODE { @@ -17768,16 +18152,17 @@ func (x *ResBuyChessShop) GetMsg() string { // 商店购买棋子 type ReqBuyChessShop2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqBuyChessShop2) Reset() { *x = ReqBuyChessShop2{} - mi := &file_proto_Gameapi_proto_msgTypes[295] + mi := &file_proto_Gameapi_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17789,7 +18174,7 @@ func (x *ReqBuyChessShop2) String() string { func (*ReqBuyChessShop2) ProtoMessage() {} func (x *ReqBuyChessShop2) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[295] + mi := &file_proto_Gameapi_proto_msgTypes[296] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17802,7 +18187,7 @@ func (x *ReqBuyChessShop2) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqBuyChessShop2.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop2) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{295} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{296} } func (x *ReqBuyChessShop2) GetId() int32 { @@ -17820,16 +18205,17 @@ func (x *ReqBuyChessShop2) GetMChessData() map[string]int32 { } type ResBuyChessShop2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResBuyChessShop2) Reset() { *x = ResBuyChessShop2{} - mi := &file_proto_Gameapi_proto_msgTypes[296] + mi := &file_proto_Gameapi_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17841,7 +18227,7 @@ func (x *ResBuyChessShop2) String() string { func (*ResBuyChessShop2) ProtoMessage() {} func (x *ResBuyChessShop2) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[296] + mi := &file_proto_Gameapi_proto_msgTypes[297] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17854,7 +18240,7 @@ func (x *ResBuyChessShop2) ProtoReflect() protoreflect.Message { // Deprecated: Use ResBuyChessShop2.ProtoReflect.Descriptor instead. func (*ResBuyChessShop2) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{296} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{297} } func (x *ResBuyChessShop2) GetCode() RES_CODE { @@ -17873,14 +18259,14 @@ func (x *ResBuyChessShop2) GetMsg() string { // 刷新棋子商店 type ReqRefreshChessShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqRefreshChessShop) Reset() { *x = ReqRefreshChessShop{} - mi := &file_proto_Gameapi_proto_msgTypes[297] + mi := &file_proto_Gameapi_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17892,7 +18278,7 @@ func (x *ReqRefreshChessShop) String() string { func (*ReqRefreshChessShop) ProtoMessage() {} func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[297] + mi := &file_proto_Gameapi_proto_msgTypes[298] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17905,20 +18291,21 @@ func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefreshChessShop.ProtoReflect.Descriptor instead. func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{297} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{298} } type ResRefreshChessShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResRefreshChessShop) Reset() { *x = ResRefreshChessShop{} - mi := &file_proto_Gameapi_proto_msgTypes[298] + mi := &file_proto_Gameapi_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17930,7 +18317,7 @@ func (x *ResRefreshChessShop) String() string { func (*ResRefreshChessShop) ProtoMessage() {} func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[298] + mi := &file_proto_Gameapi_proto_msgTypes[299] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17943,7 +18330,7 @@ func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefreshChessShop.ProtoReflect.Descriptor instead. func (*ResRefreshChessShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{298} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{299} } func (x *ResRefreshChessShop) GetCode() RES_CODE { @@ -17961,14 +18348,14 @@ func (x *ResRefreshChessShop) GetMsg() string { } type ReqEndless struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqEndless) Reset() { *x = ReqEndless{} - mi := &file_proto_Gameapi_proto_msgTypes[299] + mi := &file_proto_Gameapi_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17980,7 +18367,7 @@ func (x *ReqEndless) String() string { func (*ReqEndless) ProtoMessage() {} func (x *ReqEndless) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[299] + mi := &file_proto_Gameapi_proto_msgTypes[300] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17993,20 +18380,21 @@ func (x *ReqEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndless.ProtoReflect.Descriptor instead. func (*ReqEndless) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{299} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{300} } type ResEndless struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResEndless) Reset() { *x = ResEndless{} - mi := &file_proto_Gameapi_proto_msgTypes[300] + mi := &file_proto_Gameapi_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18018,7 +18406,7 @@ func (x *ResEndless) String() string { func (*ResEndless) ProtoMessage() {} func (x *ResEndless) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[300] + mi := &file_proto_Gameapi_proto_msgTypes[301] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18031,7 +18419,7 @@ func (x *ResEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndless.ProtoReflect.Descriptor instead. func (*ResEndless) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{300} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{301} } func (x *ResEndless) GetId() int32 { @@ -18049,17 +18437,18 @@ func (x *ResEndless) GetEndlessList() map[int32]*ResEndlessInfo { } type ResEndlessInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` } func (x *ResEndlessInfo) Reset() { *x = ResEndlessInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[301] + mi := &file_proto_Gameapi_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18071,7 +18460,7 @@ func (x *ResEndlessInfo) String() string { func (*ResEndlessInfo) ProtoMessage() {} func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[301] + mi := &file_proto_Gameapi_proto_msgTypes[302] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18084,7 +18473,7 @@ func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessInfo.ProtoReflect.Descriptor instead. func (*ResEndlessInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{301} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{302} } func (x *ResEndlessInfo) GetChargeId() int32 { @@ -18109,14 +18498,14 @@ func (x *ResEndlessInfo) GetItems() []*ItemInfo { } type ReqEndlessReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqEndlessReward) Reset() { *x = ReqEndlessReward{} - mi := &file_proto_Gameapi_proto_msgTypes[302] + mi := &file_proto_Gameapi_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18128,7 +18517,7 @@ func (x *ReqEndlessReward) String() string { func (*ReqEndlessReward) ProtoMessage() {} func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[302] + mi := &file_proto_Gameapi_proto_msgTypes[303] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18141,20 +18530,21 @@ func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndlessReward.ProtoReflect.Descriptor instead. func (*ReqEndlessReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{302} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{303} } type ResEndlessReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResEndlessReward) Reset() { *x = ResEndlessReward{} - mi := &file_proto_Gameapi_proto_msgTypes[303] + mi := &file_proto_Gameapi_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18166,7 +18556,7 @@ func (x *ResEndlessReward) String() string { func (*ResEndlessReward) ProtoMessage() {} func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[303] + mi := &file_proto_Gameapi_proto_msgTypes[304] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18179,7 +18569,7 @@ func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessReward.ProtoReflect.Descriptor instead. func (*ResEndlessReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{303} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{304} } func (x *ResEndlessReward) GetCode() RES_CODE { @@ -18197,18 +18587,19 @@ func (x *ResEndlessReward) GetMsg() string { } type ResPiggyBank struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告 - Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石 - Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数 - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告; + Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石; + Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数; + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间; } func (x *ResPiggyBank) Reset() { *x = ResPiggyBank{} - mi := &file_proto_Gameapi_proto_msgTypes[304] + mi := &file_proto_Gameapi_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18220,7 +18611,7 @@ func (x *ResPiggyBank) String() string { func (*ResPiggyBank) ProtoMessage() {} func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[304] + mi := &file_proto_Gameapi_proto_msgTypes[305] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18233,7 +18624,7 @@ func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBank.ProtoReflect.Descriptor instead. func (*ResPiggyBank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{304} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{305} } func (x *ResPiggyBank) GetType() int32 { @@ -18265,14 +18656,14 @@ func (x *ResPiggyBank) GetEndTime() int32 { } type ReqPiggyBankReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPiggyBankReward) Reset() { *x = ReqPiggyBankReward{} - mi := &file_proto_Gameapi_proto_msgTypes[305] + mi := &file_proto_Gameapi_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18284,7 +18675,7 @@ func (x *ReqPiggyBankReward) String() string { func (*ReqPiggyBankReward) ProtoMessage() {} func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[305] + mi := &file_proto_Gameapi_proto_msgTypes[306] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18297,20 +18688,21 @@ func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPiggyBankReward.ProtoReflect.Descriptor instead. func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{305} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{306} } type ResPiggyBankReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPiggyBankReward) Reset() { *x = ResPiggyBankReward{} - mi := &file_proto_Gameapi_proto_msgTypes[306] + mi := &file_proto_Gameapi_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18322,7 +18714,7 @@ func (x *ResPiggyBankReward) String() string { func (*ResPiggyBankReward) ProtoMessage() {} func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[306] + mi := &file_proto_Gameapi_proto_msgTypes[307] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18335,7 +18727,7 @@ func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBankReward.ProtoReflect.Descriptor instead. func (*ResPiggyBankReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{306} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{307} } func (x *ResPiggyBankReward) GetCode() RES_CODE { @@ -18353,16 +18745,17 @@ func (x *ResPiggyBankReward) GetMsg() string { } type ReqChargeReceive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id - Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容; } func (x *ReqChargeReceive) Reset() { *x = ReqChargeReceive{} - mi := &file_proto_Gameapi_proto_msgTypes[307] + mi := &file_proto_Gameapi_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18374,7 +18767,7 @@ func (x *ReqChargeReceive) String() string { func (*ReqChargeReceive) ProtoMessage() {} func (x *ReqChargeReceive) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[307] + mi := &file_proto_Gameapi_proto_msgTypes[308] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18387,7 +18780,7 @@ func (x *ReqChargeReceive) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChargeReceive.ProtoReflect.Descriptor instead. func (*ReqChargeReceive) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{307} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{308} } func (x *ReqChargeReceive) GetUid() int64 { @@ -18405,16 +18798,17 @@ func (x *ReqChargeReceive) GetContent() string { } type ResChargeReceive struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResChargeReceive) Reset() { *x = ResChargeReceive{} - mi := &file_proto_Gameapi_proto_msgTypes[308] + mi := &file_proto_Gameapi_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18426,7 +18820,7 @@ func (x *ResChargeReceive) String() string { func (*ResChargeReceive) ProtoMessage() {} func (x *ResChargeReceive) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[308] + mi := &file_proto_Gameapi_proto_msgTypes[309] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18439,7 +18833,7 @@ func (x *ResChargeReceive) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChargeReceive.ProtoReflect.Descriptor instead. func (*ResChargeReceive) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{308} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{309} } func (x *ResChargeReceive) GetCode() RES_CODE { @@ -18457,19 +18851,20 @@ func (x *ResChargeReceive) GetMsg() string { } type ReqCreateOrderSn struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test - Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送 - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` + PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test; + Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送; + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid; } func (x *ReqCreateOrderSn) Reset() { *x = ReqCreateOrderSn{} - mi := &file_proto_Gameapi_proto_msgTypes[309] + mi := &file_proto_Gameapi_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18481,7 +18876,7 @@ func (x *ReqCreateOrderSn) String() string { func (*ReqCreateOrderSn) ProtoMessage() {} func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[309] + mi := &file_proto_Gameapi_proto_msgTypes[310] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18494,7 +18889,7 @@ func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCreateOrderSn.ProtoReflect.Descriptor instead. func (*ReqCreateOrderSn) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{309} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{310} } func (x *ReqCreateOrderSn) GetChargeId() int32 { @@ -18533,15 +18928,16 @@ func (x *ReqCreateOrderSn) GetUid() int64 { } type ResCreateOrderSn struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; } func (x *ResCreateOrderSn) Reset() { *x = ResCreateOrderSn{} - mi := &file_proto_Gameapi_proto_msgTypes[310] + mi := &file_proto_Gameapi_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18553,7 +18949,7 @@ func (x *ResCreateOrderSn) String() string { func (*ResCreateOrderSn) ProtoMessage() {} func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[310] + mi := &file_proto_Gameapi_proto_msgTypes[311] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18566,7 +18962,7 @@ func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCreateOrderSn.ProtoReflect.Descriptor instead. func (*ResCreateOrderSn) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{310} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{311} } func (x *ResCreateOrderSn) GetOrderSn() string { @@ -18577,18 +18973,19 @@ func (x *ResCreateOrderSn) GetOrderSn() string { } type ReqShippingOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 - ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id; + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; } func (x *ReqShippingOrder) Reset() { *x = ReqShippingOrder{} - mi := &file_proto_Gameapi_proto_msgTypes[311] + mi := &file_proto_Gameapi_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18600,7 +18997,7 @@ func (x *ReqShippingOrder) String() string { func (*ReqShippingOrder) ProtoMessage() {} func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[311] + mi := &file_proto_Gameapi_proto_msgTypes[312] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18613,7 +19010,7 @@ func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqShippingOrder.ProtoReflect.Descriptor instead. func (*ReqShippingOrder) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{311} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{312} } func (x *ReqShippingOrder) GetOrderSn() string { @@ -18645,16 +19042,17 @@ func (x *ReqShippingOrder) GetStatus() int32 { } type ResShippingOrder struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResShippingOrder) Reset() { *x = ResShippingOrder{} - mi := &file_proto_Gameapi_proto_msgTypes[312] + mi := &file_proto_Gameapi_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18666,7 +19064,7 @@ func (x *ResShippingOrder) String() string { func (*ResShippingOrder) ProtoMessage() {} func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[312] + mi := &file_proto_Gameapi_proto_msgTypes[313] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18679,7 +19077,7 @@ func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ResShippingOrder.ProtoReflect.Descriptor instead. func (*ResShippingOrder) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{312} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{313} } func (x *ResShippingOrder) GetCode() RES_CODE { @@ -18697,14 +19095,14 @@ func (x *ResShippingOrder) GetMsg() string { } type ReqChampship struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqChampship) Reset() { *x = ReqChampship{} - mi := &file_proto_Gameapi_proto_msgTypes[313] + mi := &file_proto_Gameapi_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18716,7 +19114,7 @@ func (x *ReqChampship) String() string { func (*ReqChampship) ProtoMessage() {} func (x *ReqChampship) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[313] + mi := &file_proto_Gameapi_proto_msgTypes[314] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18729,25 +19127,26 @@ func (x *ReqChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampship.ProtoReflect.Descriptor instead. func (*ReqChampship) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{313} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{314} } type ResChampship struct { - state protoimpl.MessageState `protogen:"open.v1"` - Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` - Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` - Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` - Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` - RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` - Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` + Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` + Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` + Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` + RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` + Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"` } func (x *ResChampship) Reset() { *x = ResChampship{} - mi := &file_proto_Gameapi_proto_msgTypes[314] + mi := &file_proto_Gameapi_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18759,7 +19158,7 @@ func (x *ResChampship) String() string { func (*ResChampship) ProtoMessage() {} func (x *ResChampship) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[314] + mi := &file_proto_Gameapi_proto_msgTypes[315] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18772,7 +19171,7 @@ func (x *ResChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampship.ProtoReflect.Descriptor instead. func (*ResChampship) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{314} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{315} } func (x *ResChampship) GetScore() int32 { @@ -18825,14 +19224,14 @@ func (x *ResChampship) GetStatus() int32 { } type ReqChampshipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqChampshipReward) Reset() { *x = ReqChampshipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[315] + mi := &file_proto_Gameapi_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18844,7 +19243,7 @@ func (x *ReqChampshipReward) String() string { func (*ReqChampshipReward) ProtoMessage() {} func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[315] + mi := &file_proto_Gameapi_proto_msgTypes[316] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18857,20 +19256,21 @@ func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipReward.ProtoReflect.Descriptor instead. func (*ReqChampshipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{315} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{316} } type ResChampshipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResChampshipReward) Reset() { *x = ResChampshipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[316] + mi := &file_proto_Gameapi_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18882,7 +19282,7 @@ func (x *ResChampshipReward) String() string { func (*ResChampshipReward) ProtoMessage() {} func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[316] + mi := &file_proto_Gameapi_proto_msgTypes[317] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18895,7 +19295,7 @@ func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipReward.ProtoReflect.Descriptor instead. func (*ResChampshipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{316} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{317} } func (x *ResChampshipReward) GetCode() RES_CODE { @@ -18913,14 +19313,14 @@ func (x *ResChampshipReward) GetMsg() string { } type ReqChampshipRankReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqChampshipRankReward) Reset() { *x = ReqChampshipRankReward{} - mi := &file_proto_Gameapi_proto_msgTypes[317] + mi := &file_proto_Gameapi_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18932,7 +19332,7 @@ func (x *ReqChampshipRankReward) String() string { func (*ReqChampshipRankReward) ProtoMessage() {} func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[317] + mi := &file_proto_Gameapi_proto_msgTypes[318] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18945,20 +19345,21 @@ func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipRankReward.ProtoReflect.Descriptor instead. func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{317} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{318} } type ResChampshipRankReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResChampshipRankReward) Reset() { *x = ResChampshipRankReward{} - mi := &file_proto_Gameapi_proto_msgTypes[318] + mi := &file_proto_Gameapi_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18970,7 +19371,7 @@ func (x *ResChampshipRankReward) String() string { func (*ResChampshipRankReward) ProtoMessage() {} func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[318] + mi := &file_proto_Gameapi_proto_msgTypes[319] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18983,7 +19384,7 @@ func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipRankReward.ProtoReflect.Descriptor instead. func (*ResChampshipRankReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{318} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{319} } func (x *ResChampshipRankReward) GetCode() RES_CODE { @@ -19001,14 +19402,14 @@ func (x *ResChampshipRankReward) GetMsg() string { } type ReqChampshipRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqChampshipRank) Reset() { *x = ReqChampshipRank{} - mi := &file_proto_Gameapi_proto_msgTypes[319] + mi := &file_proto_Gameapi_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19020,7 +19421,7 @@ func (x *ReqChampshipRank) String() string { func (*ReqChampshipRank) ProtoMessage() {} func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[319] + mi := &file_proto_Gameapi_proto_msgTypes[320] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19033,21 +19434,22 @@ func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipRank.ProtoReflect.Descriptor instead. func (*ReqChampshipRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{319} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{320} } type ResChampshipRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; } func (x *ResChampshipRank) Reset() { *x = ResChampshipRank{} - mi := &file_proto_Gameapi_proto_msgTypes[320] + mi := &file_proto_Gameapi_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19059,7 +19461,7 @@ func (x *ResChampshipRank) String() string { func (*ResChampshipRank) ProtoMessage() {} func (x *ResChampshipRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[320] + mi := &file_proto_Gameapi_proto_msgTypes[321] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19072,7 +19474,7 @@ func (x *ResChampshipRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipRank.ProtoReflect.Descriptor instead. func (*ResChampshipRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{320} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{321} } func (x *ResChampshipRank) GetRankList() map[int32]*ResPlayerRank { @@ -19097,14 +19499,14 @@ func (x *ResChampshipRank) GetMyScore() float32 { } type ReqChampshipPreRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqChampshipPreRank) Reset() { *x = ReqChampshipPreRank{} - mi := &file_proto_Gameapi_proto_msgTypes[321] + mi := &file_proto_Gameapi_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19116,7 +19518,7 @@ func (x *ReqChampshipPreRank) String() string { func (*ReqChampshipPreRank) ProtoMessage() {} func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[321] + mi := &file_proto_Gameapi_proto_msgTypes[322] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19129,21 +19531,22 @@ func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipPreRank.ProtoReflect.Descriptor instead. func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{321} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{322} } type ResChampshipPreRank struct { - state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; } func (x *ResChampshipPreRank) Reset() { *x = ResChampshipPreRank{} - mi := &file_proto_Gameapi_proto_msgTypes[322] + mi := &file_proto_Gameapi_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19155,7 +19558,7 @@ func (x *ResChampshipPreRank) String() string { func (*ResChampshipPreRank) ProtoMessage() {} func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[322] + mi := &file_proto_Gameapi_proto_msgTypes[323] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19168,7 +19571,7 @@ func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipPreRank.ProtoReflect.Descriptor instead. func (*ResChampshipPreRank) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{322} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{323} } func (x *ResChampshipPreRank) GetRankList() map[int32]*ResPlayerRank { @@ -19193,18 +19596,19 @@ func (x *ResChampshipPreRank) GetMyScore() float32 { } type ResNotifyCard struct { - state protoimpl.MessageState `protogen:"open.v1"` - Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌 - Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 - ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星 - Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 卡牌; + Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌; + ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星; + Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴; } func (x *ResNotifyCard) Reset() { *x = ResNotifyCard{} - mi := &file_proto_Gameapi_proto_msgTypes[323] + mi := &file_proto_Gameapi_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19216,7 +19620,7 @@ func (x *ResNotifyCard) String() string { func (*ResNotifyCard) ProtoMessage() {} func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[323] + mi := &file_proto_Gameapi_proto_msgTypes[324] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19229,7 +19633,7 @@ func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { // Deprecated: Use ResNotifyCard.ProtoReflect.Descriptor instead. func (*ResNotifyCard) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{323} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{324} } func (x *ResNotifyCard) GetCard() map[int32]int32 { @@ -19261,15 +19665,16 @@ func (x *ResNotifyCard) GetHandbook() map[int32]int32 { } type ReqSetFacebookUrl struct { - state protoimpl.MessageState `protogen:"open.v1"` - Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *ReqSetFacebookUrl) Reset() { *x = ReqSetFacebookUrl{} - mi := &file_proto_Gameapi_proto_msgTypes[324] + mi := &file_proto_Gameapi_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19281,7 +19686,7 @@ func (x *ReqSetFacebookUrl) String() string { func (*ReqSetFacebookUrl) ProtoMessage() {} func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[324] + mi := &file_proto_Gameapi_proto_msgTypes[325] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19294,7 +19699,7 @@ func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ReqSetFacebookUrl) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{324} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{325} } func (x *ReqSetFacebookUrl) GetUrl() string { @@ -19305,16 +19710,17 @@ func (x *ReqSetFacebookUrl) GetUrl() string { } type ResSetFacebookUrl struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetFacebookUrl) Reset() { *x = ResSetFacebookUrl{} - mi := &file_proto_Gameapi_proto_msgTypes[325] + mi := &file_proto_Gameapi_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19326,7 +19732,7 @@ func (x *ResSetFacebookUrl) String() string { func (*ResSetFacebookUrl) ProtoMessage() {} func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[325] + mi := &file_proto_Gameapi_proto_msgTypes[326] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19339,7 +19745,7 @@ func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ResSetFacebookUrl) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{325} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{326} } func (x *ResSetFacebookUrl) GetCode() RES_CODE { @@ -19358,15 +19764,16 @@ func (x *ResSetFacebookUrl) GetMsg() string { // 邀请facebook好友 type ReqInviteFriendData struct { - state protoimpl.MessageState `protogen:"open.v1"` - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqInviteFriendData) Reset() { *x = ReqInviteFriendData{} - mi := &file_proto_Gameapi_proto_msgTypes[326] + mi := &file_proto_Gameapi_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19378,7 +19785,7 @@ func (x *ReqInviteFriendData) String() string { func (*ReqInviteFriendData) ProtoMessage() {} func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[326] + mi := &file_proto_Gameapi_proto_msgTypes[327] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19391,7 +19798,7 @@ func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqInviteFriendData.ProtoReflect.Descriptor instead. func (*ReqInviteFriendData) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{326} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{327} } func (x *ReqInviteFriendData) GetDwUin() int64 { @@ -19402,16 +19809,17 @@ func (x *ReqInviteFriendData) GetDwUin() int64 { } type ResInviteFriendData struct { - state protoimpl.MessageState `protogen:"open.v1"` - IdLists []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` - GetIndex int32 `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdLists []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` + GetIndex int32 `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` } func (x *ResInviteFriendData) Reset() { *x = ResInviteFriendData{} - mi := &file_proto_Gameapi_proto_msgTypes[327] + mi := &file_proto_Gameapi_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19423,7 +19831,7 @@ func (x *ResInviteFriendData) String() string { func (*ResInviteFriendData) ProtoMessage() {} func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[327] + mi := &file_proto_Gameapi_proto_msgTypes[328] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19436,7 +19844,7 @@ func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message { // Deprecated: Use ResInviteFriendData.ProtoReflect.Descriptor instead. func (*ResInviteFriendData) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{327} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{328} } func (x *ResInviteFriendData) GetIdLists() []int32 { @@ -19454,15 +19862,16 @@ func (x *ResInviteFriendData) GetGetIndex() int32 { } type ReqSelfInvited struct { - state protoimpl.MessageState `protogen:"open.v1"` - InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"` } func (x *ReqSelfInvited) Reset() { *x = ReqSelfInvited{} - mi := &file_proto_Gameapi_proto_msgTypes[328] + mi := &file_proto_Gameapi_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19474,7 +19883,7 @@ func (x *ReqSelfInvited) String() string { func (*ReqSelfInvited) ProtoMessage() {} func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[328] + mi := &file_proto_Gameapi_proto_msgTypes[329] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19487,7 +19896,7 @@ func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSelfInvited.ProtoReflect.Descriptor instead. func (*ReqSelfInvited) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{328} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{329} } func (x *ReqSelfInvited) GetInviterId() int64 { @@ -19498,15 +19907,16 @@ func (x *ReqSelfInvited) GetInviterId() int64 { } type ResSelfInvited struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResSelfInvited) Reset() { *x = ResSelfInvited{} - mi := &file_proto_Gameapi_proto_msgTypes[329] + mi := &file_proto_Gameapi_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19518,7 +19928,7 @@ func (x *ResSelfInvited) String() string { func (*ResSelfInvited) ProtoMessage() {} func (x *ResSelfInvited) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[329] + mi := &file_proto_Gameapi_proto_msgTypes[330] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19531,7 +19941,7 @@ func (x *ResSelfInvited) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSelfInvited.ProtoReflect.Descriptor instead. func (*ResSelfInvited) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{329} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{330} } func (x *ResSelfInvited) GetResultCode() int32 { @@ -19542,16 +19952,17 @@ func (x *ResSelfInvited) GetResultCode() int32 { } type NotifyInvitedSuccess struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - IdLists []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + IdLists []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` } func (x *NotifyInvitedSuccess) Reset() { *x = NotifyInvitedSuccess{} - mi := &file_proto_Gameapi_proto_msgTypes[330] + mi := &file_proto_Gameapi_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19563,7 +19974,7 @@ func (x *NotifyInvitedSuccess) String() string { func (*NotifyInvitedSuccess) ProtoMessage() {} func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[330] + mi := &file_proto_Gameapi_proto_msgTypes[331] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19576,7 +19987,7 @@ func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyInvitedSuccess.ProtoReflect.Descriptor instead. func (*NotifyInvitedSuccess) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{330} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{331} } func (x *NotifyInvitedSuccess) GetResultCode() int32 { @@ -19594,15 +20005,16 @@ func (x *NotifyInvitedSuccess) GetIdLists() []int32 { } type ReqGetInviteReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` } func (x *ReqGetInviteReward) Reset() { *x = ReqGetInviteReward{} - mi := &file_proto_Gameapi_proto_msgTypes[331] + mi := &file_proto_Gameapi_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19614,7 +20026,7 @@ func (x *ReqGetInviteReward) String() string { func (*ReqGetInviteReward) ProtoMessage() {} func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[331] + mi := &file_proto_Gameapi_proto_msgTypes[332] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19627,7 +20039,7 @@ func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetInviteReward.ProtoReflect.Descriptor instead. func (*ReqGetInviteReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{331} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{332} } func (x *ReqGetInviteReward) GetGetIndex() int32 { @@ -19638,15 +20050,16 @@ func (x *ReqGetInviteReward) GetGetIndex() int32 { } type ResGetInviteReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResGetInviteReward) Reset() { *x = ResGetInviteReward{} - mi := &file_proto_Gameapi_proto_msgTypes[332] + mi := &file_proto_Gameapi_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19658,7 +20071,7 @@ func (x *ResGetInviteReward) String() string { func (*ResGetInviteReward) ProtoMessage() {} func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[332] + mi := &file_proto_Gameapi_proto_msgTypes[333] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19671,7 +20084,7 @@ func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetInviteReward.ProtoReflect.Descriptor instead. func (*ResGetInviteReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{332} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{333} } func (x *ResGetInviteReward) GetResultCode() int32 { @@ -19682,15 +20095,16 @@ func (x *ResGetInviteReward) GetResultCode() int32 { } type ReqAutoAddInviteFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid; } func (x *ReqAutoAddInviteFriend) Reset() { *x = ReqAutoAddInviteFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[333] + mi := &file_proto_Gameapi_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19702,7 +20116,7 @@ func (x *ReqAutoAddInviteFriend) String() string { func (*ReqAutoAddInviteFriend) ProtoMessage() {} func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[333] + mi := &file_proto_Gameapi_proto_msgTypes[334] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19715,7 +20129,7 @@ func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ReqAutoAddInviteFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{333} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{334} } func (x *ReqAutoAddInviteFriend) GetId() int64 { @@ -19726,15 +20140,16 @@ func (x *ReqAutoAddInviteFriend) GetId() int64 { } type ResAutoAddInviteFriend struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResAutoAddInviteFriend) Reset() { *x = ResAutoAddInviteFriend{} - mi := &file_proto_Gameapi_proto_msgTypes[334] + mi := &file_proto_Gameapi_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19746,7 +20161,7 @@ func (x *ResAutoAddInviteFriend) String() string { func (*ResAutoAddInviteFriend) ProtoMessage() {} func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[334] + mi := &file_proto_Gameapi_proto_msgTypes[335] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19759,7 +20174,7 @@ func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ResAutoAddInviteFriend) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{334} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{335} } func (x *ResAutoAddInviteFriend) GetResultCode() int32 { @@ -19770,15 +20185,16 @@ func (x *ResAutoAddInviteFriend) GetResultCode() int32 { } type ReqAutoAddInviteFriend2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id; } func (x *ReqAutoAddInviteFriend2) Reset() { *x = ReqAutoAddInviteFriend2{} - mi := &file_proto_Gameapi_proto_msgTypes[335] + mi := &file_proto_Gameapi_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19790,7 +20206,7 @@ func (x *ReqAutoAddInviteFriend2) String() string { func (*ReqAutoAddInviteFriend2) ProtoMessage() {} func (x *ReqAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[335] + mi := &file_proto_Gameapi_proto_msgTypes[336] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19803,7 +20219,7 @@ func (x *ReqAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAutoAddInviteFriend2.ProtoReflect.Descriptor instead. func (*ReqAutoAddInviteFriend2) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{335} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{336} } func (x *ReqAutoAddInviteFriend2) GetId() string { @@ -19814,15 +20230,16 @@ func (x *ReqAutoAddInviteFriend2) GetId() string { } type ResAutoAddInviteFriend2 struct { - state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResAutoAddInviteFriend2) Reset() { *x = ResAutoAddInviteFriend2{} - mi := &file_proto_Gameapi_proto_msgTypes[336] + mi := &file_proto_Gameapi_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19834,7 +20251,7 @@ func (x *ResAutoAddInviteFriend2) String() string { func (*ResAutoAddInviteFriend2) ProtoMessage() {} func (x *ResAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[336] + mi := &file_proto_Gameapi_proto_msgTypes[337] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19847,7 +20264,7 @@ func (x *ResAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAutoAddInviteFriend2.ProtoReflect.Descriptor instead. func (*ResAutoAddInviteFriend2) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{336} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{337} } func (x *ResAutoAddInviteFriend2) GetResultCode() int32 { @@ -19859,14 +20276,14 @@ func (x *ResAutoAddInviteFriend2) GetResultCode() int32 { // 挖矿活动 type ReqMining struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqMining) Reset() { *x = ReqMining{} - mi := &file_proto_Gameapi_proto_msgTypes[337] + mi := &file_proto_Gameapi_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19878,7 +20295,7 @@ func (x *ReqMining) String() string { func (*ReqMining) ProtoMessage() {} func (x *ReqMining) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[337] + mi := &file_proto_Gameapi_proto_msgTypes[338] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19891,26 +20308,27 @@ func (x *ReqMining) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMining.ProtoReflect.Descriptor instead. func (*ReqMining) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{337} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{338} } type ResMining struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 - Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石 - Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 - Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石; + Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图; + Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数; } func (x *ResMining) Reset() { *x = ResMining{} - mi := &file_proto_Gameapi_proto_msgTypes[338] + mi := &file_proto_Gameapi_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19922,7 +20340,7 @@ func (x *ResMining) String() string { func (*ResMining) ProtoMessage() {} func (x *ResMining) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[338] + mi := &file_proto_Gameapi_proto_msgTypes[339] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19935,7 +20353,7 @@ func (x *ResMining) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMining.ProtoReflect.Descriptor instead. func (*ResMining) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{338} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{339} } func (x *ResMining) GetId() int32 { @@ -19995,16 +20413,17 @@ func (x *ResMining) GetMining() int32 { } type ReqMiningTake struct { - state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 - Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图; + Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石; } func (x *ReqMiningTake) Reset() { *x = ReqMiningTake{} - mi := &file_proto_Gameapi_proto_msgTypes[339] + mi := &file_proto_Gameapi_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20016,7 +20435,7 @@ func (x *ReqMiningTake) String() string { func (*ReqMiningTake) ProtoMessage() {} func (x *ReqMiningTake) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[339] + mi := &file_proto_Gameapi_proto_msgTypes[340] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20029,7 +20448,7 @@ func (x *ReqMiningTake) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMiningTake.ProtoReflect.Descriptor instead. func (*ReqMiningTake) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{339} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{340} } func (x *ReqMiningTake) GetMap() map[int32]string { @@ -20047,16 +20466,17 @@ func (x *ReqMiningTake) GetGem() int32 { } type ResMiningTake struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResMiningTake) Reset() { *x = ResMiningTake{} - mi := &file_proto_Gameapi_proto_msgTypes[340] + mi := &file_proto_Gameapi_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20068,7 +20488,7 @@ func (x *ResMiningTake) String() string { func (*ResMiningTake) ProtoMessage() {} func (x *ResMiningTake) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[340] + mi := &file_proto_Gameapi_proto_msgTypes[341] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20081,7 +20501,7 @@ func (x *ResMiningTake) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMiningTake.ProtoReflect.Descriptor instead. func (*ResMiningTake) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{340} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{341} } func (x *ResMiningTake) GetCode() RES_CODE { @@ -20099,14 +20519,14 @@ func (x *ResMiningTake) GetMsg() string { } type ReqMiningReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqMiningReward) Reset() { *x = ReqMiningReward{} - mi := &file_proto_Gameapi_proto_msgTypes[341] + mi := &file_proto_Gameapi_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20118,7 +20538,7 @@ func (x *ReqMiningReward) String() string { func (*ReqMiningReward) ProtoMessage() {} func (x *ReqMiningReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[341] + mi := &file_proto_Gameapi_proto_msgTypes[342] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20131,20 +20551,21 @@ func (x *ReqMiningReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMiningReward.ProtoReflect.Descriptor instead. func (*ReqMiningReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{341} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{342} } type ResMiningReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResMiningReward) Reset() { *x = ResMiningReward{} - mi := &file_proto_Gameapi_proto_msgTypes[342] + mi := &file_proto_Gameapi_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20156,7 +20577,7 @@ func (x *ResMiningReward) String() string { func (*ResMiningReward) ProtoMessage() {} func (x *ResMiningReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[342] + mi := &file_proto_Gameapi_proto_msgTypes[343] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20169,7 +20590,7 @@ func (x *ResMiningReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMiningReward.ProtoReflect.Descriptor instead. func (*ResMiningReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{342} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{343} } func (x *ResMiningReward) GetCode() RES_CODE { @@ -20188,14 +20609,14 @@ func (x *ResMiningReward) GetMsg() string { // 活动通行证 type ReqActPass struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqActPass) Reset() { *x = ReqActPass{} - mi := &file_proto_Gameapi_proto_msgTypes[343] + mi := &file_proto_Gameapi_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20207,7 +20628,7 @@ func (x *ReqActPass) String() string { func (*ReqActPass) ProtoMessage() {} func (x *ReqActPass) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[343] + mi := &file_proto_Gameapi_proto_msgTypes[344] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20220,26 +20641,27 @@ func (x *ReqActPass) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqActPass.ProtoReflect.Descriptor instead. func (*ReqActPass) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{343} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{344} } type ResActPass struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 - Score int32 `protobuf:"varint,6,opt,name=Score,proto3" json:"Score,omitempty"` // 经验 - Reward []int32 `protobuf:"varint,7,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id - LowPass bool `protobuf:"varint,8,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证 - HighPass bool `protobuf:"varint,9,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Score int32 `protobuf:"varint,5,opt,name=Score,proto3" json:"Score,omitempty"` // 经验; + Reward []int32 `protobuf:"varint,6,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id; + LowPass bool `protobuf:"varint,7,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证; + HighPass bool `protobuf:"varint,8,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证; } func (x *ResActPass) Reset() { *x = ResActPass{} - mi := &file_proto_Gameapi_proto_msgTypes[344] + mi := &file_proto_Gameapi_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20251,7 +20673,7 @@ func (x *ResActPass) String() string { func (*ResActPass) ProtoMessage() {} func (x *ResActPass) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[344] + mi := &file_proto_Gameapi_proto_msgTypes[345] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20264,7 +20686,7 @@ func (x *ResActPass) ProtoReflect() protoreflect.Message { // Deprecated: Use ResActPass.ProtoReflect.Descriptor instead. func (*ResActPass) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{344} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{345} } func (x *ResActPass) GetId() int32 { @@ -20324,14 +20746,14 @@ func (x *ResActPass) GetHighPass() bool { } type ReqActPassReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqActPassReward) Reset() { *x = ReqActPassReward{} - mi := &file_proto_Gameapi_proto_msgTypes[345] + mi := &file_proto_Gameapi_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20343,7 +20765,7 @@ func (x *ReqActPassReward) String() string { func (*ReqActPassReward) ProtoMessage() {} func (x *ReqActPassReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[345] + mi := &file_proto_Gameapi_proto_msgTypes[346] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20356,21 +20778,22 @@ func (x *ReqActPassReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqActPassReward.ProtoReflect.Descriptor instead. func (*ReqActPassReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{345} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{346} } type ResActPassReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id; } func (x *ResActPassReward) Reset() { *x = ResActPassReward{} - mi := &file_proto_Gameapi_proto_msgTypes[346] + mi := &file_proto_Gameapi_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20382,7 +20805,7 @@ func (x *ResActPassReward) String() string { func (*ResActPassReward) ProtoMessage() {} func (x *ResActPassReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[346] + mi := &file_proto_Gameapi_proto_msgTypes[347] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20395,7 +20818,7 @@ func (x *ResActPassReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResActPassReward.ProtoReflect.Descriptor instead. func (*ResActPassReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{346} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{347} } func (x *ResActPassReward) GetCode() RES_CODE { @@ -20420,15 +20843,16 @@ func (x *ResActPassReward) GetRewardLevel() []int32 { } type ResActRed struct { - state protoimpl.MessageState `protogen:"open.v1"` - Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 活动红点; } func (x *ResActRed) Reset() { *x = ResActRed{} - mi := &file_proto_Gameapi_proto_msgTypes[347] + mi := &file_proto_Gameapi_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20440,7 +20864,7 @@ func (x *ResActRed) String() string { func (*ResActRed) ProtoMessage() {} func (x *ResActRed) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[347] + mi := &file_proto_Gameapi_proto_msgTypes[348] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20453,7 +20877,7 @@ func (x *ResActRed) ProtoReflect() protoreflect.Message { // Deprecated: Use ResActRed.ProtoReflect.Descriptor instead. func (*ResActRed) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{347} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{348} } func (x *ResActRed) GetRed() map[int32]int32 { @@ -20465,16 +20889,17 @@ func (x *ResActRed) GetRed() map[int32]int32 { // 活动红点通知 type NotifyActRed struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"` } func (x *NotifyActRed) Reset() { *x = NotifyActRed{} - mi := &file_proto_Gameapi_proto_msgTypes[348] + mi := &file_proto_Gameapi_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20486,7 +20911,7 @@ func (x *NotifyActRed) String() string { func (*NotifyActRed) ProtoMessage() {} func (x *NotifyActRed) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[348] + mi := &file_proto_Gameapi_proto_msgTypes[349] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20499,7 +20924,7 @@ func (x *NotifyActRed) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyActRed.ProtoReflect.Descriptor instead. func (*NotifyActRed) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{348} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{349} } func (x *NotifyActRed) GetId() int32 { @@ -20518,15 +20943,16 @@ func (x *NotifyActRed) GetRed() int32 { // 活动更新通知 type ActivityNotify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *ActivityNotify) Reset() { *x = ActivityNotify{} - mi := &file_proto_Gameapi_proto_msgTypes[349] + mi := &file_proto_Gameapi_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20538,7 +20964,7 @@ func (x *ActivityNotify) String() string { func (*ActivityNotify) ProtoMessage() {} func (x *ActivityNotify) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[349] + mi := &file_proto_Gameapi_proto_msgTypes[350] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20551,7 +20977,7 @@ func (x *ActivityNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use ActivityNotify.ProtoReflect.Descriptor instead. func (*ActivityNotify) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{349} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{350} } func (x *ActivityNotify) GetInfo() *ActivityInfo { @@ -20562,15 +20988,16 @@ func (x *ActivityNotify) GetInfo() *ActivityInfo { } type ResItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResItem) Reset() { *x = ResItem{} - mi := &file_proto_Gameapi_proto_msgTypes[350] + mi := &file_proto_Gameapi_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20582,7 +21009,7 @@ func (x *ResItem) String() string { func (*ResItem) ProtoMessage() {} func (x *ResItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[350] + mi := &file_proto_Gameapi_proto_msgTypes[351] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20595,7 +21022,7 @@ func (x *ResItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ResItem.ProtoReflect.Descriptor instead. func (*ResItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{350} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{351} } func (x *ResItem) GetItem() map[int32]int32 { @@ -20606,15 +21033,16 @@ func (x *ResItem) GetItem() map[int32]int32 { } type ItemNotify struct { - state protoimpl.MessageState `protogen:"open.v1"` - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 道具id =》 变化的数量; } func (x *ItemNotify) Reset() { *x = ItemNotify{} - mi := &file_proto_Gameapi_proto_msgTypes[351] + mi := &file_proto_Gameapi_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20626,7 +21054,7 @@ func (x *ItemNotify) String() string { func (*ItemNotify) ProtoMessage() {} func (x *ItemNotify) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[351] + mi := &file_proto_Gameapi_proto_msgTypes[352] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20639,7 +21067,7 @@ func (x *ItemNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use ItemNotify.ProtoReflect.Descriptor instead. func (*ItemNotify) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{351} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{352} } func (x *ItemNotify) GetItem() map[int32]int32 { @@ -20651,14 +21079,14 @@ func (x *ItemNotify) GetItem() map[int32]int32 { // 猜颜色 type ReqGuessColor struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqGuessColor) Reset() { *x = ReqGuessColor{} - mi := &file_proto_Gameapi_proto_msgTypes[352] + mi := &file_proto_Gameapi_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20670,7 +21098,7 @@ func (x *ReqGuessColor) String() string { func (*ReqGuessColor) ProtoMessage() {} func (x *ReqGuessColor) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[352] + mi := &file_proto_Gameapi_proto_msgTypes[353] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20683,27 +21111,28 @@ func (x *ReqGuessColor) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGuessColor.ProtoReflect.Descriptor instead. func (*ReqGuessColor) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{352} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{353} } type ResGuessColor struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 - MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史 - OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 - WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数 - Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史; + OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 对手完成进度; + WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数; + Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; } func (x *ResGuessColor) Reset() { *x = ResGuessColor{} - mi := &file_proto_Gameapi_proto_msgTypes[353] + mi := &file_proto_Gameapi_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20715,7 +21144,7 @@ func (x *ResGuessColor) String() string { func (*ResGuessColor) ProtoMessage() {} func (x *ResGuessColor) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[353] + mi := &file_proto_Gameapi_proto_msgTypes[354] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20728,7 +21157,7 @@ func (x *ResGuessColor) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGuessColor.ProtoReflect.Descriptor instead. func (*ResGuessColor) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{353} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{354} } func (x *ResGuessColor) GetId() int32 { @@ -20795,18 +21224,19 @@ func (x *ResGuessColor) GetOpponent() *Opponent { } type Opponent struct { - state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Progress int32 `protobuf:"varint,4,opt,name=Progress,proto3" json:"Progress,omitempty"` } func (x *Opponent) Reset() { *x = Opponent{} - mi := &file_proto_Gameapi_proto_msgTypes[354] + mi := &file_proto_Gameapi_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20818,7 +21248,7 @@ func (x *Opponent) String() string { func (*Opponent) ProtoMessage() {} func (x *Opponent) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[354] + mi := &file_proto_Gameapi_proto_msgTypes[355] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20831,7 +21261,7 @@ func (x *Opponent) ProtoReflect() protoreflect.Message { // Deprecated: Use Opponent.ProtoReflect.Descriptor instead. func (*Opponent) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{354} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{355} } func (x *Opponent) GetName() string { @@ -20864,16 +21294,17 @@ func (x *Opponent) GetProgress() int32 { // 猜颜色 type ReqGuessColorTake struct { - state protoimpl.MessageState `protogen:"open.v1"` - Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史 - OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史; + OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 对手完成进度; } func (x *ReqGuessColorTake) Reset() { *x = ReqGuessColorTake{} - mi := &file_proto_Gameapi_proto_msgTypes[355] + mi := &file_proto_Gameapi_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20885,7 +21316,7 @@ func (x *ReqGuessColorTake) String() string { func (*ReqGuessColorTake) ProtoMessage() {} func (x *ReqGuessColorTake) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[355] + mi := &file_proto_Gameapi_proto_msgTypes[356] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20898,7 +21329,7 @@ func (x *ReqGuessColorTake) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGuessColorTake.ProtoReflect.Descriptor instead. func (*ReqGuessColorTake) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{355} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{356} } func (x *ReqGuessColorTake) GetMap() *GuessColorInfo { @@ -20916,15 +21347,16 @@ func (x *ReqGuessColorTake) GetOMap() map[int32]int32 { } type GuessColorInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 我的错误历史; } func (x *GuessColorInfo) Reset() { *x = GuessColorInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[356] + mi := &file_proto_Gameapi_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20936,7 +21368,7 @@ func (x *GuessColorInfo) String() string { func (*GuessColorInfo) ProtoMessage() {} func (x *GuessColorInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[356] + mi := &file_proto_Gameapi_proto_msgTypes[357] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20949,7 +21381,7 @@ func (x *GuessColorInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuessColorInfo.ProtoReflect.Descriptor instead. func (*GuessColorInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{356} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{357} } func (x *GuessColorInfo) GetMap() map[int32]int32 { @@ -20960,16 +21392,17 @@ func (x *GuessColorInfo) GetMap() map[int32]int32 { } type ResGuessColorTake struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGuessColorTake) Reset() { *x = ResGuessColorTake{} - mi := &file_proto_Gameapi_proto_msgTypes[357] + mi := &file_proto_Gameapi_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20981,7 +21414,7 @@ func (x *ResGuessColorTake) String() string { func (*ResGuessColorTake) ProtoMessage() {} func (x *ResGuessColorTake) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[357] + mi := &file_proto_Gameapi_proto_msgTypes[358] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20994,7 +21427,7 @@ func (x *ResGuessColorTake) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGuessColorTake.ProtoReflect.Descriptor instead. func (*ResGuessColorTake) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{357} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{358} } func (x *ResGuessColorTake) GetCode() RES_CODE { @@ -21013,14 +21446,14 @@ func (x *ResGuessColorTake) GetMsg() string { // 领奖 type ReqGuessColorReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqGuessColorReward) Reset() { *x = ReqGuessColorReward{} - mi := &file_proto_Gameapi_proto_msgTypes[358] + mi := &file_proto_Gameapi_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21032,7 +21465,7 @@ func (x *ReqGuessColorReward) String() string { func (*ReqGuessColorReward) ProtoMessage() {} func (x *ReqGuessColorReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[358] + mi := &file_proto_Gameapi_proto_msgTypes[359] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21045,20 +21478,21 @@ func (x *ReqGuessColorReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGuessColorReward.ProtoReflect.Descriptor instead. func (*ReqGuessColorReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{358} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{359} } type ResGuessColorReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResGuessColorReward) Reset() { *x = ResGuessColorReward{} - mi := &file_proto_Gameapi_proto_msgTypes[359] + mi := &file_proto_Gameapi_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21070,7 +21504,7 @@ func (x *ResGuessColorReward) String() string { func (*ResGuessColorReward) ProtoMessage() {} func (x *ResGuessColorReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[359] + mi := &file_proto_Gameapi_proto_msgTypes[360] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21083,7 +21517,7 @@ func (x *ResGuessColorReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGuessColorReward.ProtoReflect.Descriptor instead. func (*ResGuessColorReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{359} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{360} } func (x *ResGuessColorReward) GetCode() RES_CODE { @@ -21101,14 +21535,14 @@ func (x *ResGuessColorReward) GetMsg() string { } type ReqRace struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqRace) Reset() { *x = ReqRace{} - mi := &file_proto_Gameapi_proto_msgTypes[360] + mi := &file_proto_Gameapi_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21120,7 +21554,7 @@ func (x *ReqRace) String() string { func (*ReqRace) ProtoMessage() {} func (x *ReqRace) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[360] + mi := &file_proto_Gameapi_proto_msgTypes[361] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21133,28 +21567,29 @@ func (x *ReqRace) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRace.ProtoReflect.Descriptor instead. func (*ReqRace) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{360} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{361} } type ResRace struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 - GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间 - GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间 - Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 - Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 - Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间; + GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间; + Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; + Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名; } func (x *ResRace) Reset() { *x = ResRace{} - mi := &file_proto_Gameapi_proto_msgTypes[361] + mi := &file_proto_Gameapi_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21166,7 +21601,7 @@ func (x *ResRace) String() string { func (*ResRace) ProtoMessage() {} func (x *ResRace) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[361] + mi := &file_proto_Gameapi_proto_msgTypes[362] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21179,7 +21614,7 @@ func (x *ResRace) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRace.ProtoReflect.Descriptor instead. func (*ResRace) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{361} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{362} } func (x *ResRace) GetId() int32 { @@ -21253,19 +21688,20 @@ func (x *ResRace) GetRank() int32 { } type Raceopponent struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` - Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` + Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` } func (x *Raceopponent) Reset() { *x = Raceopponent{} - mi := &file_proto_Gameapi_proto_msgTypes[362] + mi := &file_proto_Gameapi_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21277,7 +21713,7 @@ func (x *Raceopponent) String() string { func (*Raceopponent) ProtoMessage() {} func (x *Raceopponent) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[362] + mi := &file_proto_Gameapi_proto_msgTypes[363] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21290,7 +21726,7 @@ func (x *Raceopponent) ProtoReflect() protoreflect.Message { // Deprecated: Use Raceopponent.ProtoReflect.Descriptor instead. func (*Raceopponent) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{362} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{363} } func (x *Raceopponent) GetId() int32 { @@ -21329,14 +21765,14 @@ func (x *Raceopponent) GetProgress() int32 { } type ReqRaceStart struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqRaceStart) Reset() { *x = ReqRaceStart{} - mi := &file_proto_Gameapi_proto_msgTypes[363] + mi := &file_proto_Gameapi_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21348,7 +21784,7 @@ func (x *ReqRaceStart) String() string { func (*ReqRaceStart) ProtoMessage() {} func (x *ReqRaceStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[363] + mi := &file_proto_Gameapi_proto_msgTypes[364] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21361,20 +21797,21 @@ func (x *ReqRaceStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRaceStart.ProtoReflect.Descriptor instead. func (*ReqRaceStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{363} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{364} } type ResRaceStart struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResRaceStart) Reset() { *x = ResRaceStart{} - mi := &file_proto_Gameapi_proto_msgTypes[364] + mi := &file_proto_Gameapi_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21386,7 +21823,7 @@ func (x *ResRaceStart) String() string { func (*ResRaceStart) ProtoMessage() {} func (x *ResRaceStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[364] + mi := &file_proto_Gameapi_proto_msgTypes[365] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21399,7 +21836,7 @@ func (x *ResRaceStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRaceStart.ProtoReflect.Descriptor instead. func (*ResRaceStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{364} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{365} } func (x *ResRaceStart) GetCode() RES_CODE { @@ -21417,14 +21854,14 @@ func (x *ResRaceStart) GetMsg() string { } type ReqRaceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqRaceReward) Reset() { *x = ReqRaceReward{} - mi := &file_proto_Gameapi_proto_msgTypes[365] + mi := &file_proto_Gameapi_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21436,7 +21873,7 @@ func (x *ReqRaceReward) String() string { func (*ReqRaceReward) ProtoMessage() {} func (x *ReqRaceReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[365] + mi := &file_proto_Gameapi_proto_msgTypes[366] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21449,20 +21886,21 @@ func (x *ReqRaceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRaceReward.ProtoReflect.Descriptor instead. func (*ReqRaceReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{365} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{366} } type ResRaceReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResRaceReward) Reset() { *x = ResRaceReward{} - mi := &file_proto_Gameapi_proto_msgTypes[366] + mi := &file_proto_Gameapi_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21474,7 +21912,7 @@ func (x *ResRaceReward) String() string { func (*ResRaceReward) ProtoMessage() {} func (x *ResRaceReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[366] + mi := &file_proto_Gameapi_proto_msgTypes[367] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21487,7 +21925,7 @@ func (x *ResRaceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRaceReward.ProtoReflect.Descriptor instead. func (*ResRaceReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{366} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{367} } func (x *ResRaceReward) GetCode() RES_CODE { @@ -21506,14 +21944,14 @@ func (x *ResRaceReward) GetMsg() string { // --------------------------【playroom】-------------------------- type ReqPlayroom struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroom) Reset() { *x = ReqPlayroom{} - mi := &file_proto_Gameapi_proto_msgTypes[367] + mi := &file_proto_Gameapi_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21525,7 +21963,7 @@ func (x *ReqPlayroom) String() string { func (*ReqPlayroom) ProtoMessage() {} func (x *ReqPlayroom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[367] + mi := &file_proto_Gameapi_proto_msgTypes[368] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21538,48 +21976,49 @@ func (x *ReqPlayroom) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroom.ProtoReflect.Descriptor instead. func (*ReqPlayroom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{367} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{368} } type ResPlayroom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态 - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励 - Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 - Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友 - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id - Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰 - Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> - LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 - StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 - WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 - AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 - Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 - WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线 - Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数 - Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳 - DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id - PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包 - PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 - Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数 - RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分 - Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id - DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 - DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 - InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 - Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 - Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid - AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息 - Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间 - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励; + Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友; + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; + Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰; + Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情>; + LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; + StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; + WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; + AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; + Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线; + Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数; + Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳; + DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; + PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包; + PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; + Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数; + RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分; + Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id; + DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; + DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; + Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid; + AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息; + Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间; + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 每周优惠 id -> 限购次数; } func (x *ResPlayroom) Reset() { *x = ResPlayroom{} - mi := &file_proto_Gameapi_proto_msgTypes[368] + mi := &file_proto_Gameapi_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21591,7 +22030,7 @@ func (x *ResPlayroom) String() string { func (*ResPlayroom) ProtoMessage() {} func (x *ResPlayroom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[368] + mi := &file_proto_Gameapi_proto_msgTypes[369] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21604,7 +22043,7 @@ func (x *ResPlayroom) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroom.ProtoReflect.Descriptor instead. func (*ResPlayroom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{368} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{369} } func (x *ResPlayroom) GetStatus() int32 { @@ -21818,16 +22257,17 @@ func (x *ResPlayroom) GetWeeklyDiscount() map[int32]*WeeklyDiscountInfo { } type NotifyPlayroomTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 - DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; + DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; } func (x *NotifyPlayroomTask) Reset() { *x = NotifyPlayroomTask{} - mi := &file_proto_Gameapi_proto_msgTypes[369] + mi := &file_proto_Gameapi_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21839,7 +22279,7 @@ func (x *NotifyPlayroomTask) String() string { func (*NotifyPlayroomTask) ProtoMessage() {} func (x *NotifyPlayroomTask) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[369] + mi := &file_proto_Gameapi_proto_msgTypes[370] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21852,7 +22292,7 @@ func (x *NotifyPlayroomTask) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomTask.ProtoReflect.Descriptor instead. func (*NotifyPlayroomTask) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{369} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{370} } func (x *NotifyPlayroomTask) GetDailyTask() []*DailyTask { @@ -21871,15 +22311,16 @@ func (x *NotifyPlayroomTask) GetDailyTaskReward() []int32 { // 领取任务奖励 type ReqPlayroomTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; } func (x *ReqPlayroomTask) Reset() { *x = ReqPlayroomTask{} - mi := &file_proto_Gameapi_proto_msgTypes[370] + mi := &file_proto_Gameapi_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21891,7 +22332,7 @@ func (x *ReqPlayroomTask) String() string { func (*ReqPlayroomTask) ProtoMessage() {} func (x *ReqPlayroomTask) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[370] + mi := &file_proto_Gameapi_proto_msgTypes[371] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21904,7 +22345,7 @@ func (x *ReqPlayroomTask) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomTask.ProtoReflect.Descriptor instead. func (*ReqPlayroomTask) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{370} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{371} } func (x *ReqPlayroomTask) GetId() int32 { @@ -21915,17 +22356,18 @@ func (x *ReqPlayroomTask) GetId() int32 { } type ResPlayroomTask struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; } func (x *ResPlayroomTask) Reset() { *x = ResPlayroomTask{} - mi := &file_proto_Gameapi_proto_msgTypes[371] + mi := &file_proto_Gameapi_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21937,7 +22379,7 @@ func (x *ResPlayroomTask) String() string { func (*ResPlayroomTask) ProtoMessage() {} func (x *ResPlayroomTask) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[371] + mi := &file_proto_Gameapi_proto_msgTypes[372] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21950,7 +22392,7 @@ func (x *ResPlayroomTask) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomTask.ProtoReflect.Descriptor instead. func (*ResPlayroomTask) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{371} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{372} } func (x *ResPlayroomTask) GetCode() RES_CODE { @@ -21976,15 +22418,16 @@ func (x *ResPlayroomTask) GetId() int32 { // 领取任务大奖 type ReqPlayroomTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; } func (x *ReqPlayroomTaskReward) Reset() { *x = ReqPlayroomTaskReward{} - mi := &file_proto_Gameapi_proto_msgTypes[372] + mi := &file_proto_Gameapi_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21996,7 +22439,7 @@ func (x *ReqPlayroomTaskReward) String() string { func (*ReqPlayroomTaskReward) ProtoMessage() {} func (x *ReqPlayroomTaskReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[372] + mi := &file_proto_Gameapi_proto_msgTypes[373] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22009,7 +22452,7 @@ func (x *ReqPlayroomTaskReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomTaskReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomTaskReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{372} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{373} } func (x *ReqPlayroomTaskReward) GetType() int32 { @@ -22020,18 +22463,19 @@ func (x *ReqPlayroomTaskReward) GetType() int32 { } type ResPlayroomTaskReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; } func (x *ResPlayroomTaskReward) Reset() { *x = ResPlayroomTaskReward{} - mi := &file_proto_Gameapi_proto_msgTypes[373] + mi := &file_proto_Gameapi_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22043,7 +22487,7 @@ func (x *ResPlayroomTaskReward) String() string { func (*ResPlayroomTaskReward) ProtoMessage() {} func (x *ResPlayroomTaskReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[373] + mi := &file_proto_Gameapi_proto_msgTypes[374] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22056,7 +22500,7 @@ func (x *ResPlayroomTaskReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomTaskReward.ProtoReflect.Descriptor instead. func (*ResPlayroomTaskReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{373} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{374} } func (x *ResPlayroomTaskReward) GetCode() RES_CODE { @@ -22088,15 +22532,16 @@ func (x *ResPlayroomTaskReward) GetType() int32 { } type ReqPlayroomUnlock struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; } func (x *ReqPlayroomUnlock) Reset() { *x = ReqPlayroomUnlock{} - mi := &file_proto_Gameapi_proto_msgTypes[374] + mi := &file_proto_Gameapi_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22108,7 +22553,7 @@ func (x *ReqPlayroomUnlock) String() string { func (*ReqPlayroomUnlock) ProtoMessage() {} func (x *ReqPlayroomUnlock) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[374] + mi := &file_proto_Gameapi_proto_msgTypes[375] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22121,7 +22566,7 @@ func (x *ReqPlayroomUnlock) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomUnlock.ProtoReflect.Descriptor instead. func (*ReqPlayroomUnlock) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{374} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{375} } func (x *ReqPlayroomUnlock) GetId() int32 { @@ -22132,17 +22577,18 @@ func (x *ReqPlayroomUnlock) GetId() int32 { } type ResPlayroomUnlock struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; } func (x *ResPlayroomUnlock) Reset() { *x = ResPlayroomUnlock{} - mi := &file_proto_Gameapi_proto_msgTypes[375] + mi := &file_proto_Gameapi_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22154,7 +22600,7 @@ func (x *ResPlayroomUnlock) String() string { func (*ResPlayroomUnlock) ProtoMessage() {} func (x *ResPlayroomUnlock) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[375] + mi := &file_proto_Gameapi_proto_msgTypes[376] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22167,7 +22613,7 @@ func (x *ResPlayroomUnlock) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomUnlock.ProtoReflect.Descriptor instead. func (*ResPlayroomUnlock) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{375} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{376} } func (x *ResPlayroomUnlock) GetCode() RES_CODE { @@ -22192,15 +22638,16 @@ func (x *ResPlayroomUnlock) GetId() int32 { } type ReqPlayroomUpvote struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; } func (x *ReqPlayroomUpvote) Reset() { *x = ReqPlayroomUpvote{} - mi := &file_proto_Gameapi_proto_msgTypes[376] + mi := &file_proto_Gameapi_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22212,7 +22659,7 @@ func (x *ReqPlayroomUpvote) String() string { func (*ReqPlayroomUpvote) ProtoMessage() {} func (x *ReqPlayroomUpvote) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[376] + mi := &file_proto_Gameapi_proto_msgTypes[377] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22225,7 +22672,7 @@ func (x *ReqPlayroomUpvote) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomUpvote.ProtoReflect.Descriptor instead. func (*ReqPlayroomUpvote) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{376} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{377} } func (x *ReqPlayroomUpvote) GetId() int64 { @@ -22236,17 +22683,18 @@ func (x *ReqPlayroomUpvote) GetId() int64 { } type ResPlayroomUpvote struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; } func (x *ResPlayroomUpvote) Reset() { *x = ResPlayroomUpvote{} - mi := &file_proto_Gameapi_proto_msgTypes[377] + mi := &file_proto_Gameapi_proto_msgTypes[378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22258,7 +22706,7 @@ func (x *ResPlayroomUpvote) String() string { func (*ResPlayroomUpvote) ProtoMessage() {} func (x *ResPlayroomUpvote) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[377] + mi := &file_proto_Gameapi_proto_msgTypes[378] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22271,7 +22719,7 @@ func (x *ResPlayroomUpvote) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomUpvote.ProtoReflect.Descriptor instead. func (*ResPlayroomUpvote) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{377} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{378} } func (x *ResPlayroomUpvote) GetCode() RES_CODE { @@ -22296,15 +22744,16 @@ func (x *ResPlayroomUpvote) GetId() int64 { } type PlayroomDress struct { - state protoimpl.MessageState `protogen:"open.v1"` - List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id; } func (x *PlayroomDress) Reset() { *x = PlayroomDress{} - mi := &file_proto_Gameapi_proto_msgTypes[378] + mi := &file_proto_Gameapi_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22316,7 +22765,7 @@ func (x *PlayroomDress) String() string { func (*PlayroomDress) ProtoMessage() {} func (x *PlayroomDress) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[378] + mi := &file_proto_Gameapi_proto_msgTypes[379] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22329,7 +22778,7 @@ func (x *PlayroomDress) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayroomDress.ProtoReflect.Descriptor instead. func (*PlayroomDress) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{378} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{379} } func (x *PlayroomDress) GetList() []*PlayroomDressInfo { @@ -22340,18 +22789,19 @@ func (x *PlayroomDress) GetList() []*PlayroomDressInfo { } type PlayroomDressInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; } func (x *PlayroomDressInfo) Reset() { *x = PlayroomDressInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[379] + mi := &file_proto_Gameapi_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22363,7 +22813,7 @@ func (x *PlayroomDressInfo) String() string { func (*PlayroomDressInfo) ProtoMessage() {} func (x *PlayroomDressInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[379] + mi := &file_proto_Gameapi_proto_msgTypes[380] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22376,7 +22826,7 @@ func (x *PlayroomDressInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayroomDressInfo.ProtoReflect.Descriptor instead. func (*PlayroomDressInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{379} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{380} } func (x *PlayroomDressInfo) GetId() int32 { @@ -22408,18 +22858,19 @@ func (x *PlayroomDressInfo) GetLabel() string { } type PlayroomAirInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; } func (x *PlayroomAirInfo) Reset() { *x = PlayroomAirInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[380] + mi := &file_proto_Gameapi_proto_msgTypes[381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22431,7 +22882,7 @@ func (x *PlayroomAirInfo) String() string { func (*PlayroomAirInfo) ProtoMessage() {} func (x *PlayroomAirInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[380] + mi := &file_proto_Gameapi_proto_msgTypes[381] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22444,7 +22895,7 @@ func (x *PlayroomAirInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayroomAirInfo.ProtoReflect.Descriptor instead. func (*PlayroomAirInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{380} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{381} } func (x *PlayroomAirInfo) GetId() int32 { @@ -22476,18 +22927,19 @@ func (x *PlayroomAirInfo) GetLabel() string { } type PlayroomCollectInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; } func (x *PlayroomCollectInfo) Reset() { *x = PlayroomCollectInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[381] + mi := &file_proto_Gameapi_proto_msgTypes[382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22499,7 +22951,7 @@ func (x *PlayroomCollectInfo) String() string { func (*PlayroomCollectInfo) ProtoMessage() {} func (x *PlayroomCollectInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[381] + mi := &file_proto_Gameapi_proto_msgTypes[382] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22512,7 +22964,7 @@ func (x *PlayroomCollectInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayroomCollectInfo.ProtoReflect.Descriptor instead. func (*PlayroomCollectInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{381} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{382} } func (x *PlayroomCollectInfo) GetId() int32 { @@ -22544,15 +22996,16 @@ func (x *PlayroomCollectInfo) GetLabel() string { } type ReqPlayroomDressSet struct { - state protoimpl.MessageState `protogen:"open.v1"` - DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; } func (x *ReqPlayroomDressSet) Reset() { *x = ReqPlayroomDressSet{} - mi := &file_proto_Gameapi_proto_msgTypes[382] + mi := &file_proto_Gameapi_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22564,7 +23017,7 @@ func (x *ReqPlayroomDressSet) String() string { func (*ReqPlayroomDressSet) ProtoMessage() {} func (x *ReqPlayroomDressSet) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[382] + mi := &file_proto_Gameapi_proto_msgTypes[383] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22577,7 +23030,7 @@ func (x *ReqPlayroomDressSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomDressSet.ProtoReflect.Descriptor instead. func (*ReqPlayroomDressSet) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{382} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{383} } func (x *ReqPlayroomDressSet) GetDressSet() map[int32]int32 { @@ -22588,16 +23041,17 @@ func (x *ReqPlayroomDressSet) GetDressSet() map[int32]int32 { } type ResPlayroomDressSet struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomDressSet) Reset() { *x = ResPlayroomDressSet{} - mi := &file_proto_Gameapi_proto_msgTypes[383] + mi := &file_proto_Gameapi_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22609,7 +23063,7 @@ func (x *ResPlayroomDressSet) String() string { func (*ResPlayroomDressSet) ProtoMessage() {} func (x *ResPlayroomDressSet) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[383] + mi := &file_proto_Gameapi_proto_msgTypes[384] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22622,7 +23076,7 @@ func (x *ResPlayroomDressSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomDressSet.ProtoReflect.Descriptor instead. func (*ResPlayroomDressSet) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{383} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{384} } func (x *ResPlayroomDressSet) GetCode() RES_CODE { @@ -22640,15 +23094,16 @@ func (x *ResPlayroomDressSet) GetMsg() string { } type ReqPlayroomPetAirSet struct { - state protoimpl.MessageState `protogen:"open.v1"` - PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; } func (x *ReqPlayroomPetAirSet) Reset() { *x = ReqPlayroomPetAirSet{} - mi := &file_proto_Gameapi_proto_msgTypes[384] + mi := &file_proto_Gameapi_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22660,7 +23115,7 @@ func (x *ReqPlayroomPetAirSet) String() string { func (*ReqPlayroomPetAirSet) ProtoMessage() {} func (x *ReqPlayroomPetAirSet) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[384] + mi := &file_proto_Gameapi_proto_msgTypes[385] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22673,7 +23128,7 @@ func (x *ReqPlayroomPetAirSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomPetAirSet.ProtoReflect.Descriptor instead. func (*ReqPlayroomPetAirSet) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{384} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{385} } func (x *ReqPlayroomPetAirSet) GetPetAirSet() int32 { @@ -22684,16 +23139,17 @@ func (x *ReqPlayroomPetAirSet) GetPetAirSet() int32 { } type ResPlayroomPetAirSet struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomPetAirSet) Reset() { *x = ResPlayroomPetAirSet{} - mi := &file_proto_Gameapi_proto_msgTypes[385] + mi := &file_proto_Gameapi_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22705,7 +23161,7 @@ func (x *ResPlayroomPetAirSet) String() string { func (*ResPlayroomPetAirSet) ProtoMessage() {} func (x *ResPlayroomPetAirSet) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[385] + mi := &file_proto_Gameapi_proto_msgTypes[386] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22718,7 +23174,7 @@ func (x *ResPlayroomPetAirSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomPetAirSet.ProtoReflect.Descriptor instead. func (*ResPlayroomPetAirSet) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{385} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{386} } func (x *ResPlayroomPetAirSet) GetCode() RES_CODE { @@ -22736,14 +23192,14 @@ func (x *ResPlayroomPetAirSet) GetMsg() string { } type ReqPlayroomWrokOutline struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomWrokOutline) Reset() { *x = ReqPlayroomWrokOutline{} - mi := &file_proto_Gameapi_proto_msgTypes[386] + mi := &file_proto_Gameapi_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22755,7 +23211,7 @@ func (x *ReqPlayroomWrokOutline) String() string { func (*ReqPlayroomWrokOutline) ProtoMessage() {} func (x *ReqPlayroomWrokOutline) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[386] + mi := &file_proto_Gameapi_proto_msgTypes[387] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22768,20 +23224,21 @@ func (x *ReqPlayroomWrokOutline) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomWrokOutline.ProtoReflect.Descriptor instead. func (*ReqPlayroomWrokOutline) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{386} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{387} } type ResPlayroomWrokOutline struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomWrokOutline) Reset() { *x = ResPlayroomWrokOutline{} - mi := &file_proto_Gameapi_proto_msgTypes[387] + mi := &file_proto_Gameapi_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22793,7 +23250,7 @@ func (x *ResPlayroomWrokOutline) String() string { func (*ResPlayroomWrokOutline) ProtoMessage() {} func (x *ResPlayroomWrokOutline) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[387] + mi := &file_proto_Gameapi_proto_msgTypes[388] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22806,7 +23263,7 @@ func (x *ResPlayroomWrokOutline) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomWrokOutline.ProtoReflect.Descriptor instead. func (*ResPlayroomWrokOutline) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{387} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{388} } func (x *ResPlayroomWrokOutline) GetCode() RES_CODE { @@ -22824,15 +23281,16 @@ func (x *ResPlayroomWrokOutline) GetMsg() string { } type NofiPlayroomStatus struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态; } func (x *NofiPlayroomStatus) Reset() { *x = NofiPlayroomStatus{} - mi := &file_proto_Gameapi_proto_msgTypes[388] + mi := &file_proto_Gameapi_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22844,7 +23302,7 @@ func (x *NofiPlayroomStatus) String() string { func (*NofiPlayroomStatus) ProtoMessage() {} func (x *NofiPlayroomStatus) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[388] + mi := &file_proto_Gameapi_proto_msgTypes[389] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22857,7 +23315,7 @@ func (x *NofiPlayroomStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use NofiPlayroomStatus.ProtoReflect.Descriptor instead. func (*NofiPlayroomStatus) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{388} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{389} } func (x *NofiPlayroomStatus) GetWorkOutline() int32 { @@ -22868,16 +23326,17 @@ func (x *NofiPlayroomStatus) GetWorkOutline() int32 { } type NotifyPlayroomWork struct { - state protoimpl.MessageState `protogen:"open.v1"` - StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 - WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; + WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; } func (x *NotifyPlayroomWork) Reset() { *x = NotifyPlayroomWork{} - mi := &file_proto_Gameapi_proto_msgTypes[389] + mi := &file_proto_Gameapi_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22889,7 +23348,7 @@ func (x *NotifyPlayroomWork) String() string { func (*NotifyPlayroomWork) ProtoMessage() {} func (x *NotifyPlayroomWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[389] + mi := &file_proto_Gameapi_proto_msgTypes[390] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22902,7 +23361,7 @@ func (x *NotifyPlayroomWork) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomWork.ProtoReflect.Descriptor instead. func (*NotifyPlayroomWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{389} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{390} } func (x *NotifyPlayroomWork) GetStartTime() int32 { @@ -22920,17 +23379,18 @@ func (x *NotifyPlayroomWork) GetWorkStatus() int32 { } type NotifyPlayroomLose struct { - state protoimpl.MessageState `protogen:"open.v1"` - LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 - Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 - Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; + Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇; } func (x *NotifyPlayroomLose) Reset() { *x = NotifyPlayroomLose{} - mi := &file_proto_Gameapi_proto_msgTypes[390] + mi := &file_proto_Gameapi_proto_msgTypes[391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22942,7 +23402,7 @@ func (x *NotifyPlayroomLose) String() string { func (*NotifyPlayroomLose) ProtoMessage() {} func (x *NotifyPlayroomLose) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[390] + mi := &file_proto_Gameapi_proto_msgTypes[391] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22955,7 +23415,7 @@ func (x *NotifyPlayroomLose) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomLose.ProtoReflect.Descriptor instead. func (*NotifyPlayroomLose) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{390} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{391} } func (x *NotifyPlayroomLose) GetLoseItem() []*ItemInfo { @@ -22980,16 +23440,17 @@ func (x *NotifyPlayroomLose) GetRevenge() int64 { } type ChipInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; } func (x *ChipInfo) Reset() { *x = ChipInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[391] + mi := &file_proto_Gameapi_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23001,7 +23462,7 @@ func (x *ChipInfo) String() string { func (*ChipInfo) ProtoMessage() {} func (x *ChipInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[391] + mi := &file_proto_Gameapi_proto_msgTypes[392] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23014,7 +23475,7 @@ func (x *ChipInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ChipInfo.ProtoReflect.Descriptor instead. func (*ChipInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{391} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{392} } func (x *ChipInfo) GetUid() int64 { @@ -23032,18 +23493,19 @@ func (x *ChipInfo) GetEmojiId() int32 { } type NotifyPlayroomMood struct { - state protoimpl.MessageState `protogen:"open.v1"` - AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 - Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> - Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理> - AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; + Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情>; + Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理 <位置, 生理>; + AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励; } func (x *NotifyPlayroomMood) Reset() { *x = NotifyPlayroomMood{} - mi := &file_proto_Gameapi_proto_msgTypes[392] + mi := &file_proto_Gameapi_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23055,7 +23517,7 @@ func (x *NotifyPlayroomMood) String() string { func (*NotifyPlayroomMood) ProtoMessage() {} func (x *NotifyPlayroomMood) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[392] + mi := &file_proto_Gameapi_proto_msgTypes[393] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23068,7 +23530,7 @@ func (x *NotifyPlayroomMood) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomMood.ProtoReflect.Descriptor instead. func (*NotifyPlayroomMood) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{392} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{393} } func (x *NotifyPlayroomMood) GetAllMood() int32 { @@ -23100,17 +23562,18 @@ func (x *NotifyPlayroomMood) GetAdItem() []*AdItem { } type AdItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数 - LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间 - ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数; + LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间; + ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id; } func (x *AdItem) Reset() { *x = AdItem{} - mi := &file_proto_Gameapi_proto_msgTypes[393] + mi := &file_proto_Gameapi_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23122,7 +23585,7 @@ func (x *AdItem) String() string { func (*AdItem) ProtoMessage() {} func (x *AdItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[393] + mi := &file_proto_Gameapi_proto_msgTypes[394] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23135,7 +23598,7 @@ func (x *AdItem) ProtoReflect() protoreflect.Message { // Deprecated: Use AdItem.ProtoReflect.Descriptor instead. func (*AdItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{393} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{394} } func (x *AdItem) GetWatch() int32 { @@ -23160,15 +23623,16 @@ func (x *AdItem) GetItemId() int32 { } type NotifyPlayroomKiss struct { - state protoimpl.MessageState `protogen:"open.v1"` - Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; } func (x *NotifyPlayroomKiss) Reset() { *x = NotifyPlayroomKiss{} - mi := &file_proto_Gameapi_proto_msgTypes[394] + mi := &file_proto_Gameapi_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23180,7 +23644,7 @@ func (x *NotifyPlayroomKiss) String() string { func (*NotifyPlayroomKiss) ProtoMessage() {} func (x *NotifyPlayroomKiss) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[394] + mi := &file_proto_Gameapi_proto_msgTypes[395] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23193,7 +23657,7 @@ func (x *NotifyPlayroomKiss) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomKiss.ProtoReflect.Descriptor instead. func (*NotifyPlayroomKiss) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{394} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{395} } func (x *NotifyPlayroomKiss) GetKiss() int32 { @@ -23204,19 +23668,20 @@ func (x *NotifyPlayroomKiss) GetKiss() int32 { } type FriendRoom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数; } func (x *FriendRoom) Reset() { *x = FriendRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[395] + mi := &file_proto_Gameapi_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23228,7 +23693,7 @@ func (x *FriendRoom) String() string { func (*FriendRoom) ProtoMessage() {} func (x *FriendRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[395] + mi := &file_proto_Gameapi_proto_msgTypes[396] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23241,7 +23706,7 @@ func (x *FriendRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use FriendRoom.ProtoReflect.Descriptor instead. func (*FriendRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{395} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{396} } func (x *FriendRoom) GetUid() int64 { @@ -23280,19 +23745,20 @@ func (x *FriendRoom) GetTimes() int32 { } type RoomOpponent struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间; } func (x *RoomOpponent) Reset() { *x = RoomOpponent{} - mi := &file_proto_Gameapi_proto_msgTypes[396] + mi := &file_proto_Gameapi_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23304,7 +23770,7 @@ func (x *RoomOpponent) String() string { func (*RoomOpponent) ProtoMessage() {} func (x *RoomOpponent) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[396] + mi := &file_proto_Gameapi_proto_msgTypes[397] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23317,7 +23783,7 @@ func (x *RoomOpponent) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomOpponent.ProtoReflect.Descriptor instead. func (*RoomOpponent) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{396} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{397} } func (x *RoomOpponent) GetUid() int64 { @@ -23357,15 +23823,16 @@ func (x *RoomOpponent) GetLastTime() int32 { // 请求拜访空间信息 type ReqPlayroomInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqPlayroomInfo) Reset() { *x = ReqPlayroomInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[397] + mi := &file_proto_Gameapi_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23377,7 +23844,7 @@ func (x *ReqPlayroomInfo) String() string { func (*ReqPlayroomInfo) ProtoMessage() {} func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[397] + mi := &file_proto_Gameapi_proto_msgTypes[398] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23390,7 +23857,7 @@ func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomInfo.ProtoReflect.Descriptor instead. func (*ReqPlayroomInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{397} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{398} } func (x *ReqPlayroomInfo) GetUid() int64 { @@ -23401,31 +23868,32 @@ func (x *ReqPlayroomInfo) GetUid() int64 { } type ResPlayroomInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id - GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id - Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 - Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束 - Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御 - Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌> - Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 - PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名 - Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 - Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 - UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数 - DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id - Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; + GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id; + Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励; + Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束; + Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御; + Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 翻牌 <位置, 牌>; + Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名; + Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; + Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; + UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数; + DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; + Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; } func (x *ResPlayroomInfo) Reset() { *x = ResPlayroomInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[398] + mi := &file_proto_Gameapi_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23437,7 +23905,7 @@ func (x *ResPlayroomInfo) String() string { func (*ResPlayroomInfo) ProtoMessage() {} func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[398] + mi := &file_proto_Gameapi_proto_msgTypes[399] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23450,7 +23918,7 @@ func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomInfo.ProtoReflect.Descriptor instead. func (*ResPlayroomInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{398} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{399} } func (x *ResPlayroomInfo) GetUid() int64 { @@ -23574,15 +24042,16 @@ func (x *ResPlayroomInfo) GetKiss() int32 { // 请求翻牌 type ReqPlayroomFlip struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; } func (x *ReqPlayroomFlip) Reset() { *x = ReqPlayroomFlip{} - mi := &file_proto_Gameapi_proto_msgTypes[399] + mi := &file_proto_Gameapi_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23594,7 +24063,7 @@ func (x *ReqPlayroomFlip) String() string { func (*ReqPlayroomFlip) ProtoMessage() {} func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[399] + mi := &file_proto_Gameapi_proto_msgTypes[400] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23607,7 +24076,7 @@ func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomFlip.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{399} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{400} } func (x *ReqPlayroomFlip) GetId() int32 { @@ -23618,18 +24087,19 @@ func (x *ReqPlayroomFlip) GetId() int32 { } type ResPlayroomFlip struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id; } func (x *ResPlayroomFlip) Reset() { *x = ResPlayroomFlip{} - mi := &file_proto_Gameapi_proto_msgTypes[400] + mi := &file_proto_Gameapi_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23641,7 +24111,7 @@ func (x *ResPlayroomFlip) String() string { func (*ResPlayroomFlip) ProtoMessage() {} func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[400] + mi := &file_proto_Gameapi_proto_msgTypes[401] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23654,7 +24124,7 @@ func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomFlip.ProtoReflect.Descriptor instead. func (*ResPlayroomFlip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{400} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{401} } func (x *ResPlayroomFlip) GetCode() RES_CODE { @@ -23687,15 +24157,16 @@ func (x *ResPlayroomFlip) GetCardId() int32 { // 引导修改playroom生理值 type ReqPlayroomGuide struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //; } func (x *ReqPlayroomGuide) Reset() { *x = ReqPlayroomGuide{} - mi := &file_proto_Gameapi_proto_msgTypes[401] + mi := &file_proto_Gameapi_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23707,7 +24178,7 @@ func (x *ReqPlayroomGuide) String() string { func (*ReqPlayroomGuide) ProtoMessage() {} func (x *ReqPlayroomGuide) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[401] + mi := &file_proto_Gameapi_proto_msgTypes[402] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23720,7 +24191,7 @@ func (x *ReqPlayroomGuide) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGuide.ProtoReflect.Descriptor instead. func (*ReqPlayroomGuide) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{401} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{402} } func (x *ReqPlayroomGuide) GetType() int32 { @@ -23731,16 +24202,17 @@ func (x *ReqPlayroomGuide) GetType() int32 { } type ResPlayroomGuide struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomGuide) Reset() { *x = ResPlayroomGuide{} - mi := &file_proto_Gameapi_proto_msgTypes[402] + mi := &file_proto_Gameapi_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23752,7 +24224,7 @@ func (x *ResPlayroomGuide) String() string { func (*ResPlayroomGuide) ProtoMessage() {} func (x *ResPlayroomGuide) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[402] + mi := &file_proto_Gameapi_proto_msgTypes[403] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23765,7 +24237,7 @@ func (x *ResPlayroomGuide) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGuide.ProtoReflect.Descriptor instead. func (*ResPlayroomGuide) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{402} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{403} } func (x *ResPlayroomGuide) GetCode() RES_CODE { @@ -23784,15 +24256,16 @@ func (x *ResPlayroomGuide) GetMsg() string { // 领取游戏奖励 type ReqPlayroomFlipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; } func (x *ReqPlayroomFlipReward) Reset() { *x = ReqPlayroomFlipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[403] + mi := &file_proto_Gameapi_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23804,7 +24277,7 @@ func (x *ReqPlayroomFlipReward) String() string { func (*ReqPlayroomFlipReward) ProtoMessage() {} func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[403] + mi := &file_proto_Gameapi_proto_msgTypes[404] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23817,7 +24290,7 @@ func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{403} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{404} } func (x *ReqPlayroomFlipReward) GetEmojiId() int32 { @@ -23828,16 +24301,17 @@ func (x *ReqPlayroomFlipReward) GetEmojiId() int32 { } type ResPlayroomFlipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomFlipReward) Reset() { *x = ResPlayroomFlipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[404] + mi := &file_proto_Gameapi_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23849,7 +24323,7 @@ func (x *ResPlayroomFlipReward) String() string { func (*ResPlayroomFlipReward) ProtoMessage() {} func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[404] + mi := &file_proto_Gameapi_proto_msgTypes[405] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23862,7 +24336,7 @@ func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ResPlayroomFlipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{404} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{405} } func (x *ResPlayroomFlipReward) GetCode() RES_CODE { @@ -23880,16 +24354,17 @@ func (x *ResPlayroomFlipReward) GetMsg() string { } type ReqPlayroomGame struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果 - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; } func (x *ReqPlayroomGame) Reset() { *x = ReqPlayroomGame{} - mi := &file_proto_Gameapi_proto_msgTypes[405] + mi := &file_proto_Gameapi_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23901,7 +24376,7 @@ func (x *ReqPlayroomGame) String() string { func (*ReqPlayroomGame) ProtoMessage() {} func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[405] + mi := &file_proto_Gameapi_proto_msgTypes[406] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23914,7 +24389,7 @@ func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGame.ProtoReflect.Descriptor instead. func (*ReqPlayroomGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{405} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{406} } func (x *ReqPlayroomGame) GetType() int32 { @@ -23932,18 +24407,19 @@ func (x *ReqPlayroomGame) GetEmojiId() int32 { } type ResPlayroomGame struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` - Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` + Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励; } func (x *ResPlayroomGame) Reset() { *x = ResPlayroomGame{} - mi := &file_proto_Gameapi_proto_msgTypes[406] + mi := &file_proto_Gameapi_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23955,7 +24431,7 @@ func (x *ResPlayroomGame) String() string { func (*ResPlayroomGame) ProtoMessage() {} func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[406] + mi := &file_proto_Gameapi_proto_msgTypes[407] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23968,7 +24444,7 @@ func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGame.ProtoReflect.Descriptor instead. func (*ResPlayroomGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{406} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{407} } func (x *ResPlayroomGame) GetCode() RES_CODE { @@ -24001,16 +24477,17 @@ func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo { // 展示游戏结果数据 type ReqPlayroomGameShowReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果 - SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果; + SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id; } func (x *ReqPlayroomGameShowReward) Reset() { *x = ReqPlayroomGameShowReward{} - mi := &file_proto_Gameapi_proto_msgTypes[407] + mi := &file_proto_Gameapi_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24022,7 +24499,7 @@ func (x *ReqPlayroomGameShowReward) String() string { func (*ReqPlayroomGameShowReward) ProtoMessage() {} func (x *ReqPlayroomGameShowReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[407] + mi := &file_proto_Gameapi_proto_msgTypes[408] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24035,7 +24512,7 @@ func (x *ReqPlayroomGameShowReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGameShowReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomGameShowReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{407} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{408} } func (x *ReqPlayroomGameShowReward) GetType() int32 { @@ -24053,15 +24530,16 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 { } type ResPlayroomGameShowReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,5,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具; } func (x *ResPlayroomGameShowReward) Reset() { *x = ResPlayroomGameShowReward{} - mi := &file_proto_Gameapi_proto_msgTypes[408] + mi := &file_proto_Gameapi_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24073,7 +24551,7 @@ func (x *ResPlayroomGameShowReward) String() string { func (*ResPlayroomGameShowReward) ProtoMessage() {} func (x *ResPlayroomGameShowReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[408] + mi := &file_proto_Gameapi_proto_msgTypes[409] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24086,7 +24564,7 @@ func (x *ResPlayroomGameShowReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGameShowReward.ProtoReflect.Descriptor instead. func (*ResPlayroomGameShowReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{408} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{409} } func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { @@ -24098,16 +24576,17 @@ func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { // 宠物交互 type ReqPlayroomInteract struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型 - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2; } func (x *ReqPlayroomInteract) Reset() { *x = ReqPlayroomInteract{} - mi := &file_proto_Gameapi_proto_msgTypes[409] + mi := &file_proto_Gameapi_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24119,7 +24598,7 @@ func (x *ReqPlayroomInteract) String() string { func (*ReqPlayroomInteract) ProtoMessage() {} func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[409] + mi := &file_proto_Gameapi_proto_msgTypes[410] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24132,7 +24611,7 @@ func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomInteract.ProtoReflect.Descriptor instead. func (*ReqPlayroomInteract) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{409} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{410} } func (x *ReqPlayroomInteract) GetId() int32 { @@ -24150,17 +24629,18 @@ func (x *ReqPlayroomInteract) GetType() int32 { } type ResPlayroomInteract struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; } func (x *ResPlayroomInteract) Reset() { *x = ResPlayroomInteract{} - mi := &file_proto_Gameapi_proto_msgTypes[410] + mi := &file_proto_Gameapi_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24172,7 +24652,7 @@ func (x *ResPlayroomInteract) String() string { func (*ResPlayroomInteract) ProtoMessage() {} func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[410] + mi := &file_proto_Gameapi_proto_msgTypes[411] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24185,7 +24665,7 @@ func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomInteract.ProtoReflect.Descriptor instead. func (*ResPlayroomInteract) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{410} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{411} } func (x *ResPlayroomInteract) GetCode() RES_CODE { @@ -24211,15 +24691,16 @@ func (x *ResPlayroomInteract) GetInteractNum() int32 { // playroom装饰 type ReqPlayroomSetRoom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; } func (x *ReqPlayroomSetRoom) Reset() { *x = ReqPlayroomSetRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[411] + mi := &file_proto_Gameapi_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24231,7 +24712,7 @@ func (x *ReqPlayroomSetRoom) String() string { func (*ReqPlayroomSetRoom) ProtoMessage() {} func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[411] + mi := &file_proto_Gameapi_proto_msgTypes[412] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24244,7 +24725,7 @@ func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ReqPlayroomSetRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{411} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{412} } func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 { @@ -24255,16 +24736,17 @@ func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 { } type ResPlayroomSetRoom struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomSetRoom) Reset() { *x = ResPlayroomSetRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[412] + mi := &file_proto_Gameapi_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24276,7 +24758,7 @@ func (x *ResPlayroomSetRoom) String() string { func (*ResPlayroomSetRoom) ProtoMessage() {} func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[412] + mi := &file_proto_Gameapi_proto_msgTypes[413] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24289,7 +24771,7 @@ func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ResPlayroomSetRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{412} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{413} } func (x *ResPlayroomSetRoom) GetCode() RES_CODE { @@ -24307,16 +24789,17 @@ func (x *ResPlayroomSetRoom) GetMsg() string { } type ReqPlayroomSelectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; } func (x *ReqPlayroomSelectReward) Reset() { *x = ReqPlayroomSelectReward{} - mi := &file_proto_Gameapi_proto_msgTypes[413] + mi := &file_proto_Gameapi_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24328,7 +24811,7 @@ func (x *ReqPlayroomSelectReward) String() string { func (*ReqPlayroomSelectReward) ProtoMessage() {} func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[413] + mi := &file_proto_Gameapi_proto_msgTypes[414] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24341,7 +24824,7 @@ func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomSelectReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{413} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{414} } func (x *ReqPlayroomSelectReward) GetId() int32 { @@ -24359,16 +24842,17 @@ func (x *ReqPlayroomSelectReward) GetEmojiId() int32 { } type ResPlayroomSelectReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomSelectReward) Reset() { *x = ResPlayroomSelectReward{} - mi := &file_proto_Gameapi_proto_msgTypes[414] + mi := &file_proto_Gameapi_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24380,7 +24864,7 @@ func (x *ResPlayroomSelectReward) String() string { func (*ResPlayroomSelectReward) ProtoMessage() {} func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[414] + mi := &file_proto_Gameapi_proto_msgTypes[415] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24393,7 +24877,7 @@ func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ResPlayroomSelectReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{414} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{415} } func (x *ResPlayroomSelectReward) GetCode() RES_CODE { @@ -24412,14 +24896,14 @@ func (x *ResPlayroomSelectReward) GetMsg() string { // 处理偷取的棋子 type ReqPlayroomLose struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomLose) Reset() { *x = ReqPlayroomLose{} - mi := &file_proto_Gameapi_proto_msgTypes[415] + mi := &file_proto_Gameapi_proto_msgTypes[416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24431,7 +24915,7 @@ func (x *ReqPlayroomLose) String() string { func (*ReqPlayroomLose) ProtoMessage() {} func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[415] + mi := &file_proto_Gameapi_proto_msgTypes[416] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24444,20 +24928,21 @@ func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomLose.ProtoReflect.Descriptor instead. func (*ReqPlayroomLose) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{415} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{416} } type ResPlayroomLose struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomLose) Reset() { *x = ResPlayroomLose{} - mi := &file_proto_Gameapi_proto_msgTypes[416] + mi := &file_proto_Gameapi_proto_msgTypes[417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24469,7 +24954,7 @@ func (x *ResPlayroomLose) String() string { func (*ResPlayroomLose) ProtoMessage() {} func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[416] + mi := &file_proto_Gameapi_proto_msgTypes[417] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24482,7 +24967,7 @@ func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomLose.ProtoReflect.Descriptor instead. func (*ResPlayroomLose) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{416} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{417} } func (x *ResPlayroomLose) GetCode() RES_CODE { @@ -24501,14 +24986,14 @@ func (x *ResPlayroomLose) GetMsg() string { // 打工 type ReqPlayroomWork struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomWork) Reset() { *x = ReqPlayroomWork{} - mi := &file_proto_Gameapi_proto_msgTypes[417] + mi := &file_proto_Gameapi_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24520,7 +25005,7 @@ func (x *ReqPlayroomWork) String() string { func (*ReqPlayroomWork) ProtoMessage() {} func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[417] + mi := &file_proto_Gameapi_proto_msgTypes[418] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24533,20 +25018,21 @@ func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomWork.ProtoReflect.Descriptor instead. func (*ReqPlayroomWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{417} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{418} } type ResPlayroomWork struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomWork) Reset() { *x = ResPlayroomWork{} - mi := &file_proto_Gameapi_proto_msgTypes[418] + mi := &file_proto_Gameapi_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24558,7 +25044,7 @@ func (x *ResPlayroomWork) String() string { func (*ResPlayroomWork) ProtoMessage() {} func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[418] + mi := &file_proto_Gameapi_proto_msgTypes[419] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24571,7 +25057,7 @@ func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomWork.ProtoReflect.Descriptor instead. func (*ResPlayroomWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{418} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{419} } func (x *ResPlayroomWork) GetCode() RES_CODE { @@ -24590,14 +25076,14 @@ func (x *ResPlayroomWork) GetMsg() string { // 休息 type ReqPlayroomRest struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomRest) Reset() { *x = ReqPlayroomRest{} - mi := &file_proto_Gameapi_proto_msgTypes[419] + mi := &file_proto_Gameapi_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24609,7 +25095,7 @@ func (x *ReqPlayroomRest) String() string { func (*ReqPlayroomRest) ProtoMessage() {} func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[419] + mi := &file_proto_Gameapi_proto_msgTypes[420] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24622,20 +25108,21 @@ func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomRest.ProtoReflect.Descriptor instead. func (*ReqPlayroomRest) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{419} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{420} } type ResPlayroomRest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomRest) Reset() { *x = ResPlayroomRest{} - mi := &file_proto_Gameapi_proto_msgTypes[420] + mi := &file_proto_Gameapi_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24647,7 +25134,7 @@ func (x *ResPlayroomRest) String() string { func (*ResPlayroomRest) ProtoMessage() {} func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[420] + mi := &file_proto_Gameapi_proto_msgTypes[421] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24660,7 +25147,7 @@ func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomRest.ProtoReflect.Descriptor instead. func (*ResPlayroomRest) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{420} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{421} } func (x *ResPlayroomRest) GetCode() RES_CODE { @@ -24679,14 +25166,14 @@ func (x *ResPlayroomRest) GetMsg() string { // 抽奖 type ReqPlayroomDraw struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomDraw) Reset() { *x = ReqPlayroomDraw{} - mi := &file_proto_Gameapi_proto_msgTypes[421] + mi := &file_proto_Gameapi_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24698,7 +25185,7 @@ func (x *ReqPlayroomDraw) String() string { func (*ReqPlayroomDraw) ProtoMessage() {} func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[421] + mi := &file_proto_Gameapi_proto_msgTypes[422] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24711,21 +25198,22 @@ func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomDraw.ProtoReflect.Descriptor instead. func (*ReqPlayroomDraw) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{421} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{422} } type ResPlayroomDraw struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id; } func (x *ResPlayroomDraw) Reset() { *x = ResPlayroomDraw{} - mi := &file_proto_Gameapi_proto_msgTypes[422] + mi := &file_proto_Gameapi_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24737,7 +25225,7 @@ func (x *ResPlayroomDraw) String() string { func (*ResPlayroomDraw) ProtoMessage() {} func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[422] + mi := &file_proto_Gameapi_proto_msgTypes[423] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24750,7 +25238,7 @@ func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomDraw.ProtoReflect.Descriptor instead. func (*ResPlayroomDraw) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{422} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{423} } func (x *ResPlayroomDraw) GetCode() RES_CODE { @@ -24776,15 +25264,16 @@ func (x *ResPlayroomDraw) GetId() int32 { // 消除 纸屑 type ReqPlayroomChip struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数; } func (x *ReqPlayroomChip) Reset() { *x = ReqPlayroomChip{} - mi := &file_proto_Gameapi_proto_msgTypes[423] + mi := &file_proto_Gameapi_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24796,7 +25285,7 @@ func (x *ReqPlayroomChip) String() string { func (*ReqPlayroomChip) ProtoMessage() {} func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[423] + mi := &file_proto_Gameapi_proto_msgTypes[424] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24809,7 +25298,7 @@ func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomChip.ProtoReflect.Descriptor instead. func (*ReqPlayroomChip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{423} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{424} } func (x *ReqPlayroomChip) GetUid() []int64 { @@ -24820,16 +25309,17 @@ func (x *ReqPlayroomChip) GetUid() []int64 { } type ResPlayroomChip struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomChip) Reset() { *x = ResPlayroomChip{} - mi := &file_proto_Gameapi_proto_msgTypes[424] + mi := &file_proto_Gameapi_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24841,7 +25331,7 @@ func (x *ResPlayroomChip) String() string { func (*ResPlayroomChip) ProtoMessage() {} func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[424] + mi := &file_proto_Gameapi_proto_msgTypes[425] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24854,7 +25344,7 @@ func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomChip.ProtoReflect.Descriptor instead. func (*ResPlayroomChip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{424} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{425} } func (x *ResPlayroomChip) GetCode() RES_CODE { @@ -24872,15 +25362,16 @@ func (x *ResPlayroomChip) GetMsg() string { } type ReqPlayroomBuyItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id; } func (x *ReqPlayroomBuyItem) Reset() { *x = ReqPlayroomBuyItem{} - mi := &file_proto_Gameapi_proto_msgTypes[425] + mi := &file_proto_Gameapi_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24892,7 +25383,7 @@ func (x *ReqPlayroomBuyItem) String() string { func (*ReqPlayroomBuyItem) ProtoMessage() {} func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[425] + mi := &file_proto_Gameapi_proto_msgTypes[426] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24905,7 +25396,7 @@ func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ReqPlayroomBuyItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{425} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{426} } func (x *ReqPlayroomBuyItem) GetId() int32 { @@ -24916,16 +25407,17 @@ func (x *ReqPlayroomBuyItem) GetId() int32 { } type ResPlayroomBuyItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomBuyItem) Reset() { *x = ResPlayroomBuyItem{} - mi := &file_proto_Gameapi_proto_msgTypes[426] + mi := &file_proto_Gameapi_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24937,7 +25429,7 @@ func (x *ResPlayroomBuyItem) String() string { func (*ResPlayroomBuyItem) ProtoMessage() {} func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[426] + mi := &file_proto_Gameapi_proto_msgTypes[427] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24950,7 +25442,7 @@ func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ResPlayroomBuyItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{426} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{427} } func (x *ResPlayroomBuyItem) GetCode() RES_CODE { @@ -24969,16 +25461,17 @@ func (x *ResPlayroomBuyItem) GetMsg() string { // playroom商店 购买 type ReqPlayroomShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量; } func (x *ReqPlayroomShop) Reset() { *x = ReqPlayroomShop{} - mi := &file_proto_Gameapi_proto_msgTypes[427] + mi := &file_proto_Gameapi_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24990,7 +25483,7 @@ func (x *ReqPlayroomShop) String() string { func (*ReqPlayroomShop) ProtoMessage() {} func (x *ReqPlayroomShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[427] + mi := &file_proto_Gameapi_proto_msgTypes[428] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25003,7 +25496,7 @@ func (x *ReqPlayroomShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomShop.ProtoReflect.Descriptor instead. func (*ReqPlayroomShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{427} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{428} } func (x *ReqPlayroomShop) GetId() int32 { @@ -25021,16 +25514,17 @@ func (x *ReqPlayroomShop) GetNum() int32 { } type ResPlayroomShop struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResPlayroomShop) Reset() { *x = ResPlayroomShop{} - mi := &file_proto_Gameapi_proto_msgTypes[428] + mi := &file_proto_Gameapi_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25042,7 +25536,7 @@ func (x *ResPlayroomShop) String() string { func (*ResPlayroomShop) ProtoMessage() {} func (x *ResPlayroomShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[428] + mi := &file_proto_Gameapi_proto_msgTypes[429] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25055,7 +25549,7 @@ func (x *ResPlayroomShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomShop.ProtoReflect.Descriptor instead. func (*ResPlayroomShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{428} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{429} } func (x *ResPlayroomShop) GetCode() RES_CODE { @@ -25074,14 +25568,14 @@ func (x *ResPlayroomShop) GetMsg() string { // #region 宠物宝藏 type ReqFriendTreasure struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendTreasure) Reset() { *x = ReqFriendTreasure{} - mi := &file_proto_Gameapi_proto_msgTypes[429] + mi := &file_proto_Gameapi_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25093,7 +25587,7 @@ func (x *ReqFriendTreasure) String() string { func (*ReqFriendTreasure) ProtoMessage() {} func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[429] + mi := &file_proto_Gameapi_proto_msgTypes[430] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25106,24 +25600,25 @@ func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasure.ProtoReflect.Descriptor instead. func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{429} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{430} } type ResFriendTreasure struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 - Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位 - List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表 - List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表 - Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; + Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位; + List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表; + Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表; } func (x *ResFriendTreasure) Reset() { *x = ResFriendTreasure{} - mi := &file_proto_Gameapi_proto_msgTypes[430] + mi := &file_proto_Gameapi_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25135,7 +25630,7 @@ func (x *ResFriendTreasure) String() string { func (*ResFriendTreasure) ProtoMessage() {} func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[430] + mi := &file_proto_Gameapi_proto_msgTypes[431] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25148,7 +25643,7 @@ func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasure.ProtoReflect.Descriptor instead. func (*ResFriendTreasure) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{430} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{431} } func (x *ResFriendTreasure) GetStatus() int32 { @@ -25194,21 +25689,22 @@ func (x *ResFriendTreasure) GetUids() []int64 { } type TreasureInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像 - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框 - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid - Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻 - NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型; + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像; + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框; + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid; + Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻; + NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称; } func (x *TreasureInfo) Reset() { *x = TreasureInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[431] + mi := &file_proto_Gameapi_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25220,7 +25716,7 @@ func (x *TreasureInfo) String() string { func (*TreasureInfo) ProtoMessage() {} func (x *TreasureInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[431] + mi := &file_proto_Gameapi_proto_msgTypes[432] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25233,7 +25729,7 @@ func (x *TreasureInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TreasureInfo.ProtoReflect.Descriptor instead. func (*TreasureInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{431} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{432} } func (x *TreasureInfo) GetPos() int32 { @@ -25286,16 +25782,17 @@ func (x *TreasureInfo) GetNickName() string { } type ReqFriendTreasureStart struct { - state protoimpl.MessageState `protogen:"open.v1"` - List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表 - List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` } func (x *ReqFriendTreasureStart) Reset() { *x = ReqFriendTreasureStart{} - mi := &file_proto_Gameapi_proto_msgTypes[432] + mi := &file_proto_Gameapi_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25307,7 +25804,7 @@ func (x *ReqFriendTreasureStart) String() string { func (*ReqFriendTreasureStart) ProtoMessage() {} func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[432] + mi := &file_proto_Gameapi_proto_msgTypes[433] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25320,7 +25817,7 @@ func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{432} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{433} } func (x *ReqFriendTreasureStart) GetList() []*TreasureInfo { @@ -25338,16 +25835,17 @@ func (x *ReqFriendTreasureStart) GetList2() []int32 { } type ResFriendTreasureStart struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResFriendTreasureStart) Reset() { *x = ResFriendTreasureStart{} - mi := &file_proto_Gameapi_proto_msgTypes[433] + mi := &file_proto_Gameapi_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25359,7 +25857,7 @@ func (x *ResFriendTreasureStart) String() string { func (*ResFriendTreasureStart) ProtoMessage() {} func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[433] + mi := &file_proto_Gameapi_proto_msgTypes[434] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25372,7 +25870,7 @@ func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{433} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{434} } func (x *ResFriendTreasureStart) GetCode() RES_CODE { @@ -25390,14 +25888,14 @@ func (x *ResFriendTreasureStart) GetMsg() string { } type ReqFriendTreasureEnd struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqFriendTreasureEnd) Reset() { *x = ReqFriendTreasureEnd{} - mi := &file_proto_Gameapi_proto_msgTypes[434] + mi := &file_proto_Gameapi_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25409,7 +25907,7 @@ func (x *ReqFriendTreasureEnd) String() string { func (*ReqFriendTreasureEnd) ProtoMessage() {} func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[434] + mi := &file_proto_Gameapi_proto_msgTypes[435] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25422,20 +25920,21 @@ func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureEnd) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{434} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{435} } type ResFriendTreasureEnd struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResFriendTreasureEnd) Reset() { *x = ResFriendTreasureEnd{} - mi := &file_proto_Gameapi_proto_msgTypes[435] + mi := &file_proto_Gameapi_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25447,7 +25946,7 @@ func (x *ResFriendTreasureEnd) String() string { func (*ResFriendTreasureEnd) ProtoMessage() {} func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[435] + mi := &file_proto_Gameapi_proto_msgTypes[436] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25460,7 +25959,7 @@ func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ResFriendTreasureEnd) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{435} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{436} } func (x *ResFriendTreasureEnd) GetCode() RES_CODE { @@ -25478,15 +25977,16 @@ func (x *ResFriendTreasureEnd) GetMsg() string { } type ReqFriendTreasureFilp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *ReqFriendTreasureFilp) Reset() { *x = ReqFriendTreasureFilp{} - mi := &file_proto_Gameapi_proto_msgTypes[436] + mi := &file_proto_Gameapi_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25498,7 +25998,7 @@ func (x *ReqFriendTreasureFilp) String() string { func (*ReqFriendTreasureFilp) ProtoMessage() {} func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[436] + mi := &file_proto_Gameapi_proto_msgTypes[437] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25511,7 +26011,7 @@ func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureFilp) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{436} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{437} } func (x *ReqFriendTreasureFilp) GetPos() int32 { @@ -25522,16 +26022,17 @@ func (x *ReqFriendTreasureFilp) GetPos() int32 { } type ResFriendTreasureFilp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResFriendTreasureFilp) Reset() { *x = ResFriendTreasureFilp{} - mi := &file_proto_Gameapi_proto_msgTypes[437] + mi := &file_proto_Gameapi_proto_msgTypes[438] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25543,7 +26044,7 @@ func (x *ResFriendTreasureFilp) String() string { func (*ResFriendTreasureFilp) ProtoMessage() {} func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[437] + mi := &file_proto_Gameapi_proto_msgTypes[438] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25556,7 +26057,7 @@ func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ResFriendTreasureFilp) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{437} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{438} } func (x *ResFriendTreasureFilp) GetCode() RES_CODE { @@ -25574,15 +26075,16 @@ func (x *ResFriendTreasureFilp) GetMsg() string { } type ResFriendTreasureStar struct { - state protoimpl.MessageState `protogen:"open.v1"` - Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; } func (x *ResFriendTreasureStar) Reset() { *x = ResFriendTreasureStar{} - mi := &file_proto_Gameapi_proto_msgTypes[438] + mi := &file_proto_Gameapi_proto_msgTypes[439] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25594,7 +26096,7 @@ func (x *ResFriendTreasureStar) String() string { func (*ResFriendTreasureStar) ProtoMessage() {} func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[438] + mi := &file_proto_Gameapi_proto_msgTypes[439] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25607,7 +26109,7 @@ func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureStar.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStar) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{438} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{439} } func (x *ResFriendTreasureStar) GetStar() int32 { @@ -25618,16 +26120,17 @@ func (x *ResFriendTreasureStar) GetStar() int32 { } type ReqKafkaLog struct { - state protoimpl.MessageState `protogen:"open.v1"` - Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"` - Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"` + Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *ReqKafkaLog) Reset() { *x = ReqKafkaLog{} - mi := &file_proto_Gameapi_proto_msgTypes[439] + mi := &file_proto_Gameapi_proto_msgTypes[440] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25639,7 +26142,7 @@ func (x *ReqKafkaLog) String() string { func (*ReqKafkaLog) ProtoMessage() {} func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[439] + mi := &file_proto_Gameapi_proto_msgTypes[440] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25652,7 +26155,7 @@ func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqKafkaLog.ProtoReflect.Descriptor instead. func (*ReqKafkaLog) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{439} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{440} } func (x *ReqKafkaLog) GetEvent() string { @@ -25670,14 +26173,14 @@ func (x *ReqKafkaLog) GetData() string { } type ReqCollectInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCollectInfo) Reset() { *x = ReqCollectInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[440] + mi := &file_proto_Gameapi_proto_msgTypes[441] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25689,7 +26192,7 @@ func (x *ReqCollectInfo) String() string { func (*ReqCollectInfo) ProtoMessage() {} func (x *ReqCollectInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[440] + mi := &file_proto_Gameapi_proto_msgTypes[441] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25702,20 +26205,21 @@ func (x *ReqCollectInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCollectInfo.ProtoReflect.Descriptor instead. func (*ReqCollectInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{440} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{441} } type ResCollectInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19] - Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19]; + Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; } func (x *ResCollectInfo) Reset() { *x = ResCollectInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[441] + mi := &file_proto_Gameapi_proto_msgTypes[442] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25727,7 +26231,7 @@ func (x *ResCollectInfo) String() string { func (*ResCollectInfo) ProtoMessage() {} func (x *ResCollectInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[441] + mi := &file_proto_Gameapi_proto_msgTypes[442] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25740,7 +26244,7 @@ func (x *ResCollectInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCollectInfo.ProtoReflect.Descriptor instead. func (*ResCollectInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{441} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{442} } func (x *ResCollectInfo) GetId() []int32 { @@ -25758,16 +26262,17 @@ func (x *ResCollectInfo) GetItems() []*CollectItem { } type CollectItem struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引 - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; } func (x *CollectItem) Reset() { *x = CollectItem{} - mi := &file_proto_Gameapi_proto_msgTypes[442] + mi := &file_proto_Gameapi_proto_msgTypes[443] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25779,7 +26284,7 @@ func (x *CollectItem) String() string { func (*CollectItem) ProtoMessage() {} func (x *CollectItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[442] + mi := &file_proto_Gameapi_proto_msgTypes[443] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25792,7 +26297,7 @@ func (x *CollectItem) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectItem.ProtoReflect.Descriptor instead. func (*CollectItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{442} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{443} } func (x *CollectItem) GetId() int32 { @@ -25810,15 +26315,16 @@ func (x *CollectItem) GetItems() []*ItemInfo { } type ReqCollect struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id; } func (x *ReqCollect) Reset() { *x = ReqCollect{} - mi := &file_proto_Gameapi_proto_msgTypes[443] + mi := &file_proto_Gameapi_proto_msgTypes[444] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25830,7 +26336,7 @@ func (x *ReqCollect) String() string { func (*ReqCollect) ProtoMessage() {} func (x *ReqCollect) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[443] + mi := &file_proto_Gameapi_proto_msgTypes[444] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25843,7 +26349,7 @@ func (x *ReqCollect) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCollect.ProtoReflect.Descriptor instead. func (*ReqCollect) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{443} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{444} } func (x *ReqCollect) GetId() int32 { @@ -25854,16 +26360,17 @@ func (x *ReqCollect) GetId() int32 { } type ResCollect struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCollect) Reset() { *x = ResCollect{} - mi := &file_proto_Gameapi_proto_msgTypes[444] + mi := &file_proto_Gameapi_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25875,7 +26382,7 @@ func (x *ResCollect) String() string { func (*ResCollect) ProtoMessage() {} func (x *ResCollect) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[444] + mi := &file_proto_Gameapi_proto_msgTypes[445] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25888,7 +26395,7 @@ func (x *ResCollect) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCollect.ProtoReflect.Descriptor instead. func (*ResCollect) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{444} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{445} } func (x *ResCollect) GetCode() RES_CODE { @@ -25909,14 +26416,14 @@ func (x *ResCollect) GetMsg() string { // ----------------【猫草大作战】-------------- // 猫草大作战详细信息 type ReqCatnip struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCatnip) Reset() { *x = ReqCatnip{} - mi := &file_proto_Gameapi_proto_msgTypes[445] + mi := &file_proto_Gameapi_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25928,7 +26435,7 @@ func (x *ReqCatnip) String() string { func (*ReqCatnip) ProtoMessage() {} func (x *ReqCatnip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[445] + mi := &file_proto_Gameapi_proto_msgTypes[446] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25941,25 +26448,26 @@ func (x *ReqCatnip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnip.ProtoReflect.Descriptor instead. func (*ReqCatnip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{445} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{446} } type ResCatnip struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 - GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表 - Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 - FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表; + Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表; } func (x *ResCatnip) Reset() { *x = ResCatnip{} - mi := &file_proto_Gameapi_proto_msgTypes[446] + mi := &file_proto_Gameapi_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25971,7 +26479,7 @@ func (x *ResCatnip) String() string { func (*ResCatnip) ProtoMessage() {} func (x *ResCatnip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[446] + mi := &file_proto_Gameapi_proto_msgTypes[447] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25984,7 +26492,7 @@ func (x *ResCatnip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnip.ProtoReflect.Descriptor instead. func (*ResCatnip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{446} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{447} } func (x *ResCatnip) GetId() int32 { @@ -26038,21 +26546,22 @@ func (x *ResCatnip) GetFriendList() []*CatnipInvite { // 小游戏信息 type CatnipGame struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 - Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 - Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3] - Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴 - Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id - FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; + Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; + Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; + Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; + FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; } func (x *CatnipGame) Reset() { *x = CatnipGame{} - mi := &file_proto_Gameapi_proto_msgTypes[447] + mi := &file_proto_Gameapi_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26064,7 +26573,7 @@ func (x *CatnipGame) String() string { func (*CatnipGame) ProtoMessage() {} func (x *CatnipGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[447] + mi := &file_proto_Gameapi_proto_msgTypes[448] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26077,7 +26586,7 @@ func (x *CatnipGame) ProtoReflect() protoreflect.Message { // Deprecated: Use CatnipGame.ProtoReflect.Descriptor instead. func (*CatnipGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{447} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{448} } func (x *CatnipGame) GetId() int32 { @@ -26130,18 +26639,19 @@ func (x *CatnipGame) GetFriendProgress() int32 { } type CatnipInvite struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间 - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作 - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间; + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作; + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息; } func (x *CatnipInvite) Reset() { *x = CatnipInvite{} - mi := &file_proto_Gameapi_proto_msgTypes[448] + mi := &file_proto_Gameapi_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26153,7 +26663,7 @@ func (x *CatnipInvite) String() string { func (*CatnipInvite) ProtoMessage() {} func (x *CatnipInvite) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[448] + mi := &file_proto_Gameapi_proto_msgTypes[449] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26166,7 +26676,7 @@ func (x *CatnipInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use CatnipInvite.ProtoReflect.Descriptor instead. func (*CatnipInvite) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{448} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{449} } func (x *CatnipInvite) GetUid() int64 { @@ -26199,16 +26709,17 @@ func (x *CatnipInvite) GetPlayer() *ResPlayerSimple { // 邀请好友 type ReqCatnipInvite struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ReqCatnipInvite) Reset() { *x = ReqCatnipInvite{} - mi := &file_proto_Gameapi_proto_msgTypes[449] + mi := &file_proto_Gameapi_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26220,7 +26731,7 @@ func (x *ReqCatnipInvite) String() string { func (*ReqCatnipInvite) ProtoMessage() {} func (x *ReqCatnipInvite) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[449] + mi := &file_proto_Gameapi_proto_msgTypes[450] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26233,7 +26744,7 @@ func (x *ReqCatnipInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipInvite.ProtoReflect.Descriptor instead. func (*ReqCatnipInvite) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{449} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{450} } func (x *ReqCatnipInvite) GetId() int32 { @@ -26251,17 +26762,18 @@ func (x *ReqCatnipInvite) GetUid() int64 { } type ResCatnipInvite struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ResCatnipInvite) Reset() { *x = ResCatnipInvite{} - mi := &file_proto_Gameapi_proto_msgTypes[450] + mi := &file_proto_Gameapi_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26273,7 +26785,7 @@ func (x *ResCatnipInvite) String() string { func (*ResCatnipInvite) ProtoMessage() {} func (x *ResCatnipInvite) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[450] + mi := &file_proto_Gameapi_proto_msgTypes[451] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26286,7 +26798,7 @@ func (x *ResCatnipInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipInvite.ProtoReflect.Descriptor instead. func (*ResCatnipInvite) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{450} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{451} } func (x *ResCatnipInvite) GetCode() RES_CODE { @@ -26312,16 +26824,17 @@ func (x *ResCatnipInvite) GetUid() int64 { // 同意邀请 type ReqCatnipAgree struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ReqCatnipAgree) Reset() { *x = ReqCatnipAgree{} - mi := &file_proto_Gameapi_proto_msgTypes[451] + mi := &file_proto_Gameapi_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26333,7 +26846,7 @@ func (x *ReqCatnipAgree) String() string { func (*ReqCatnipAgree) ProtoMessage() {} func (x *ReqCatnipAgree) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[451] + mi := &file_proto_Gameapi_proto_msgTypes[452] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26346,7 +26859,7 @@ func (x *ReqCatnipAgree) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipAgree.ProtoReflect.Descriptor instead. func (*ReqCatnipAgree) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{451} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{452} } func (x *ReqCatnipAgree) GetId() int32 { @@ -26364,17 +26877,18 @@ func (x *ReqCatnipAgree) GetUid() int64 { } type ResCatnipAgree struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ResCatnipAgree) Reset() { *x = ResCatnipAgree{} - mi := &file_proto_Gameapi_proto_msgTypes[452] + mi := &file_proto_Gameapi_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26386,7 +26900,7 @@ func (x *ResCatnipAgree) String() string { func (*ResCatnipAgree) ProtoMessage() {} func (x *ResCatnipAgree) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[452] + mi := &file_proto_Gameapi_proto_msgTypes[453] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26399,7 +26913,7 @@ func (x *ResCatnipAgree) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipAgree.ProtoReflect.Descriptor instead. func (*ResCatnipAgree) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{452} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{453} } func (x *ResCatnipAgree) GetCode() RES_CODE { @@ -26424,16 +26938,17 @@ func (x *ResCatnipAgree) GetUid() int64 { } type ReqCatnipRefuse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ReqCatnipRefuse) Reset() { *x = ReqCatnipRefuse{} - mi := &file_proto_Gameapi_proto_msgTypes[453] + mi := &file_proto_Gameapi_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26445,7 +26960,7 @@ func (x *ReqCatnipRefuse) String() string { func (*ReqCatnipRefuse) ProtoMessage() {} func (x *ReqCatnipRefuse) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[453] + mi := &file_proto_Gameapi_proto_msgTypes[454] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26458,7 +26973,7 @@ func (x *ReqCatnipRefuse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipRefuse.ProtoReflect.Descriptor instead. func (*ReqCatnipRefuse) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{453} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{454} } func (x *ReqCatnipRefuse) GetId() int32 { @@ -26476,17 +26991,18 @@ func (x *ReqCatnipRefuse) GetUid() int64 { } type ResCatnipRefuse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; } func (x *ResCatnipRefuse) Reset() { *x = ResCatnipRefuse{} - mi := &file_proto_Gameapi_proto_msgTypes[454] + mi := &file_proto_Gameapi_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26498,7 +27014,7 @@ func (x *ResCatnipRefuse) String() string { func (*ResCatnipRefuse) ProtoMessage() {} func (x *ResCatnipRefuse) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[454] + mi := &file_proto_Gameapi_proto_msgTypes[455] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26511,7 +27027,7 @@ func (x *ResCatnipRefuse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipRefuse.ProtoReflect.Descriptor instead. func (*ResCatnipRefuse) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{454} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{455} } func (x *ResCatnipRefuse) GetCode() RES_CODE { @@ -26537,15 +27053,16 @@ func (x *ResCatnipRefuse) GetUid() int64 { // 设置游戏倍数 type ReqCatnipMultiply struct { - state protoimpl.MessageState `protogen:"open.v1"` - Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; } func (x *ReqCatnipMultiply) Reset() { *x = ReqCatnipMultiply{} - mi := &file_proto_Gameapi_proto_msgTypes[455] + mi := &file_proto_Gameapi_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26557,7 +27074,7 @@ func (x *ReqCatnipMultiply) String() string { func (*ReqCatnipMultiply) ProtoMessage() {} func (x *ReqCatnipMultiply) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[455] + mi := &file_proto_Gameapi_proto_msgTypes[456] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26570,7 +27087,7 @@ func (x *ReqCatnipMultiply) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipMultiply.ProtoReflect.Descriptor instead. func (*ReqCatnipMultiply) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{455} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{456} } func (x *ReqCatnipMultiply) GetMultiply() int32 { @@ -26581,17 +27098,18 @@ func (x *ReqCatnipMultiply) GetMultiply() int32 { } type ResCatnipMultiply struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; } func (x *ResCatnipMultiply) Reset() { *x = ResCatnipMultiply{} - mi := &file_proto_Gameapi_proto_msgTypes[456] + mi := &file_proto_Gameapi_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26603,7 +27121,7 @@ func (x *ResCatnipMultiply) String() string { func (*ResCatnipMultiply) ProtoMessage() {} func (x *ResCatnipMultiply) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[456] + mi := &file_proto_Gameapi_proto_msgTypes[457] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26616,7 +27134,7 @@ func (x *ResCatnipMultiply) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipMultiply.ProtoReflect.Descriptor instead. func (*ResCatnipMultiply) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{456} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{457} } func (x *ResCatnipMultiply) GetCode() RES_CODE { @@ -26642,15 +27160,16 @@ func (x *ResCatnipMultiply) GetMultiply() int32 { // 游戏转盘 type ReqCatnipPlay struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; } func (x *ReqCatnipPlay) Reset() { *x = ReqCatnipPlay{} - mi := &file_proto_Gameapi_proto_msgTypes[457] + mi := &file_proto_Gameapi_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26662,7 +27181,7 @@ func (x *ReqCatnipPlay) String() string { func (*ReqCatnipPlay) ProtoMessage() {} func (x *ReqCatnipPlay) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[457] + mi := &file_proto_Gameapi_proto_msgTypes[458] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26675,7 +27194,7 @@ func (x *ReqCatnipPlay) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipPlay.ProtoReflect.Descriptor instead. func (*ReqCatnipPlay) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{457} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{458} } func (x *ReqCatnipPlay) GetId() int32 { @@ -26686,17 +27205,18 @@ func (x *ReqCatnipPlay) GetId() int32 { } type ResCatnipPlay struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id; } func (x *ResCatnipPlay) Reset() { *x = ResCatnipPlay{} - mi := &file_proto_Gameapi_proto_msgTypes[458] + mi := &file_proto_Gameapi_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26708,7 +27228,7 @@ func (x *ResCatnipPlay) String() string { func (*ResCatnipPlay) ProtoMessage() {} func (x *ResCatnipPlay) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[458] + mi := &file_proto_Gameapi_proto_msgTypes[459] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26721,7 +27241,7 @@ func (x *ResCatnipPlay) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipPlay.ProtoReflect.Descriptor instead. func (*ResCatnipPlay) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{458} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{459} } func (x *ResCatnipPlay) GetCode() RES_CODE { @@ -26747,15 +27267,16 @@ func (x *ResCatnipPlay) GetId() int32 { // 领取阶段奖励 type ReqCatnipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; } func (x *ReqCatnipReward) Reset() { *x = ReqCatnipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[459] + mi := &file_proto_Gameapi_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26767,7 +27288,7 @@ func (x *ReqCatnipReward) String() string { func (*ReqCatnipReward) ProtoMessage() {} func (x *ReqCatnipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[459] + mi := &file_proto_Gameapi_proto_msgTypes[460] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26780,7 +27301,7 @@ func (x *ReqCatnipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipReward.ProtoReflect.Descriptor instead. func (*ReqCatnipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{459} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{460} } func (x *ReqCatnipReward) GetId() int32 { @@ -26791,16 +27312,17 @@ func (x *ReqCatnipReward) GetId() int32 { } type ResCatnipReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCatnipReward) Reset() { *x = ResCatnipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[460] + mi := &file_proto_Gameapi_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26812,7 +27334,7 @@ func (x *ResCatnipReward) String() string { func (*ResCatnipReward) ProtoMessage() {} func (x *ResCatnipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[460] + mi := &file_proto_Gameapi_proto_msgTypes[461] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26825,7 +27347,7 @@ func (x *ResCatnipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipReward.ProtoReflect.Descriptor instead. func (*ResCatnipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{460} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{461} } func (x *ResCatnipReward) GetCode() RES_CODE { @@ -26844,14 +27366,14 @@ func (x *ResCatnipReward) GetMsg() string { // 领取大奖 type ReqCatnipGrandReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqCatnipGrandReward) Reset() { *x = ReqCatnipGrandReward{} - mi := &file_proto_Gameapi_proto_msgTypes[461] + mi := &file_proto_Gameapi_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26863,7 +27385,7 @@ func (x *ReqCatnipGrandReward) String() string { func (*ReqCatnipGrandReward) ProtoMessage() {} func (x *ReqCatnipGrandReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[461] + mi := &file_proto_Gameapi_proto_msgTypes[462] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26876,20 +27398,21 @@ func (x *ReqCatnipGrandReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipGrandReward.ProtoReflect.Descriptor instead. func (*ReqCatnipGrandReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{461} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{462} } type ResCatnipGrandReward struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResCatnipGrandReward) Reset() { *x = ResCatnipGrandReward{} - mi := &file_proto_Gameapi_proto_msgTypes[462] + mi := &file_proto_Gameapi_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26901,7 +27424,7 @@ func (x *ResCatnipGrandReward) String() string { func (*ResCatnipGrandReward) ProtoMessage() {} func (x *ResCatnipGrandReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[462] + mi := &file_proto_Gameapi_proto_msgTypes[463] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26914,7 +27437,7 @@ func (x *ResCatnipGrandReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipGrandReward.ProtoReflect.Descriptor instead. func (*ResCatnipGrandReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{462} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{463} } func (x *ResCatnipGrandReward) GetCode() RES_CODE { @@ -26933,16 +27456,17 @@ func (x *ResCatnipGrandReward) GetMsg() string { // 发送表情 type ReqCatnipEmoji struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; } func (x *ReqCatnipEmoji) Reset() { *x = ReqCatnipEmoji{} - mi := &file_proto_Gameapi_proto_msgTypes[463] + mi := &file_proto_Gameapi_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26954,7 +27478,7 @@ func (x *ReqCatnipEmoji) String() string { func (*ReqCatnipEmoji) ProtoMessage() {} func (x *ReqCatnipEmoji) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[463] + mi := &file_proto_Gameapi_proto_msgTypes[464] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26967,7 +27491,7 @@ func (x *ReqCatnipEmoji) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipEmoji.ProtoReflect.Descriptor instead. func (*ReqCatnipEmoji) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{463} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{464} } func (x *ReqCatnipEmoji) GetId() int32 { @@ -26985,18 +27509,19 @@ func (x *ReqCatnipEmoji) GetEmojiId() int32 { } type ResCatnipEmoji struct { - state protoimpl.MessageState `protogen:"open.v1"` - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; } func (x *ResCatnipEmoji) Reset() { *x = ResCatnipEmoji{} - mi := &file_proto_Gameapi_proto_msgTypes[464] + mi := &file_proto_Gameapi_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27008,7 +27533,7 @@ func (x *ResCatnipEmoji) String() string { func (*ResCatnipEmoji) ProtoMessage() {} func (x *ResCatnipEmoji) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[464] + mi := &file_proto_Gameapi_proto_msgTypes[465] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27021,7 +27546,7 @@ func (x *ResCatnipEmoji) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipEmoji.ProtoReflect.Descriptor instead. func (*ResCatnipEmoji) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{464} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{465} } func (x *ResCatnipEmoji) GetCode() RES_CODE { @@ -27054,16 +27579,17 @@ func (x *ResCatnipEmoji) GetId() int32 { // -------------------后台管理------------------- type AdminReq struct { - state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` - Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` + Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *AdminReq) Reset() { *x = AdminReq{} - mi := &file_proto_Gameapi_proto_msgTypes[465] + mi := &file_proto_Gameapi_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27075,7 +27601,7 @@ func (x *AdminReq) String() string { func (*AdminReq) ProtoMessage() {} func (x *AdminReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[465] + mi := &file_proto_Gameapi_proto_msgTypes[466] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27088,7 +27614,7 @@ func (x *AdminReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminReq.ProtoReflect.Descriptor instead. func (*AdminReq) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{465} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{466} } func (x *AdminReq) GetFunc() string { @@ -27106,16 +27632,17 @@ func (x *AdminReq) GetInfo() []byte { } type AdminRes struct { - state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` - Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` + Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *AdminRes) Reset() { *x = AdminRes{} - mi := &file_proto_Gameapi_proto_msgTypes[466] + mi := &file_proto_Gameapi_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27127,7 +27654,7 @@ func (x *AdminRes) String() string { func (*AdminRes) ProtoMessage() {} func (x *AdminRes) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[466] + mi := &file_proto_Gameapi_proto_msgTypes[467] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27140,7 +27667,7 @@ func (x *AdminRes) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRes.ProtoReflect.Descriptor instead. func (*AdminRes) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{466} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{467} } func (x *AdminRes) GetFunc() string { @@ -27158,15 +27685,16 @@ func (x *AdminRes) GetInfo() []byte { } type ReqAdminInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqAdminInfo) Reset() { *x = ReqAdminInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[467] + mi := &file_proto_Gameapi_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27178,7 +27706,7 @@ func (x *ReqAdminInfo) String() string { func (*ReqAdminInfo) ProtoMessage() {} func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[467] + mi := &file_proto_Gameapi_proto_msgTypes[468] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27191,7 +27719,7 @@ func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminInfo.ProtoReflect.Descriptor instead. func (*ReqAdminInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{467} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{468} } func (x *ReqAdminInfo) GetUid() int64 { @@ -27202,14 +27730,14 @@ func (x *ReqAdminInfo) GetUid() int64 { } type ReqReloadServerMail struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqReloadServerMail) Reset() { *x = ReqReloadServerMail{} - mi := &file_proto_Gameapi_proto_msgTypes[468] + mi := &file_proto_Gameapi_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27221,7 +27749,7 @@ func (x *ReqReloadServerMail) String() string { func (*ReqReloadServerMail) ProtoMessage() {} func (x *ReqReloadServerMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[468] + mi := &file_proto_Gameapi_proto_msgTypes[469] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27234,18 +27762,18 @@ func (x *ReqReloadServerMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReloadServerMail.ProtoReflect.Descriptor instead. func (*ReqReloadServerMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{468} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{469} } type ReqServerInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqServerInfo) Reset() { *x = ReqServerInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[469] + mi := &file_proto_Gameapi_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27257,7 +27785,7 @@ func (x *ReqServerInfo) String() string { func (*ReqServerInfo) ProtoMessage() {} func (x *ReqServerInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[469] + mi := &file_proto_Gameapi_proto_msgTypes[470] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27270,18 +27798,18 @@ func (x *ReqServerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqServerInfo.ProtoReflect.Descriptor instead. func (*ReqServerInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{469} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{470} } type ReqReload struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *ReqReload) Reset() { *x = ReqReload{} - mi := &file_proto_Gameapi_proto_msgTypes[470] + mi := &file_proto_Gameapi_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27293,7 +27821,7 @@ func (x *ReqReload) String() string { func (*ReqReload) ProtoMessage() {} func (x *ReqReload) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[470] + mi := &file_proto_Gameapi_proto_msgTypes[471] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27306,20 +27834,21 @@ func (x *ReqReload) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReload.ProtoReflect.Descriptor instead. func (*ReqReload) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{470} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{471} } type ReqAdminGm struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid - Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; + Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令; } func (x *ReqAdminGm) Reset() { *x = ReqAdminGm{} - mi := &file_proto_Gameapi_proto_msgTypes[471] + mi := &file_proto_Gameapi_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27331,7 +27860,7 @@ func (x *ReqAdminGm) String() string { func (*ReqAdminGm) ProtoMessage() {} func (x *ReqAdminGm) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[471] + mi := &file_proto_Gameapi_proto_msgTypes[472] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27344,7 +27873,7 @@ func (x *ReqAdminGm) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminGm.ProtoReflect.Descriptor instead. func (*ReqAdminGm) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{471} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{472} } func (x *ReqAdminGm) GetUid() int64 { @@ -27362,17 +27891,18 @@ func (x *ReqAdminGm) GetCommand() string { } type ReqAdminBan struct { - state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间 - Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间; + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因; } func (x *ReqAdminBan) Reset() { *x = ReqAdminBan{} - mi := &file_proto_Gameapi_proto_msgTypes[472] + mi := &file_proto_Gameapi_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27384,7 +27914,7 @@ func (x *ReqAdminBan) String() string { func (*ReqAdminBan) ProtoMessage() {} func (x *ReqAdminBan) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[472] + mi := &file_proto_Gameapi_proto_msgTypes[473] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27397,7 +27927,7 @@ func (x *ReqAdminBan) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminBan.ProtoReflect.Descriptor instead. func (*ReqAdminBan) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{472} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{473} } func (x *ReqAdminBan) GetUid() int64 { @@ -27422,17 +27952,18 @@ func (x *ReqAdminBan) GetReason() string { } type ReqAdminShipping struct { - state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 - ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; + ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号; } func (x *ReqAdminShipping) Reset() { *x = ReqAdminShipping{} - mi := &file_proto_Gameapi_proto_msgTypes[473] + mi := &file_proto_Gameapi_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27444,7 +27975,7 @@ func (x *ReqAdminShipping) String() string { func (*ReqAdminShipping) ProtoMessage() {} func (x *ReqAdminShipping) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[473] + mi := &file_proto_Gameapi_proto_msgTypes[474] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27457,7 +27988,7 @@ func (x *ReqAdminShipping) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminShipping.ProtoReflect.Descriptor instead. func (*ReqAdminShipping) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{473} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{474} } func (x *ReqAdminShipping) GetOrderSn() string { @@ -27483,2262 +28014,3306 @@ func (x *ReqAdminShipping) GetChannelOrderSn() string { var File_proto_Gameapi_proto protoreflect.FileDescriptor -const file_proto_Gameapi_proto_rawDesc = "" + - "\n" + - "\x13proto/Gameapi.proto\x12\btutorial\"\xb5\x01\n" + - "\tClientReq\x12\x12\n" + - "\x04func\x18\x01 \x01(\tR\x04func\x12\x10\n" + - "\x03cid\x18\x02 \x01(\tR\x03cid\x12\x12\n" + - "\x04info\x18\x03 \x01(\fR\x04info\x12\x1c\n" + - "\tsessionId\x18\x04 \x01(\tR\tsessionId\x12\x1c\n" + - "\tgatewayId\x18\x05 \x01(\tR\tgatewayId\x12\x16\n" + - "\x06userId\x18\x06 \x01(\tR\x06userId\x12\x1a\n" + - "\buserBase\x18\a \x01(\tR\buserBase\"+\n" + - "\x13ReqOfflineReconnect\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"C\n" + - "\x13ResOfflineReconnect\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + - "\x06Result\x18\x02 \x01(\x05R\x06Result\"T\n" + - "\x16ReqBindFacebookAccount\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"t\n" + - "\x16ResBindFacebookAccount\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\x12\x1e\n" + - "\n" + - "ResultCode\x18\x03 \x01(\x05R\n" + - "ResultCode\"Q\n" + - "\x13ReqOnlyBindFacebook\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"q\n" + - "\x13ResOnlyBindFacebook\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\x12\x1e\n" + - "\n" + - "ResultCode\x18\x03 \x01(\x05R\n" + - "ResultCode\"O\n" + - "\x11ReqUnBindFacebook\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"Y\n" + - "\x11ResUnBindFacebook\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\x12$\n" + - "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"@\n" + - "\x0eReqSynGameData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x18\n" + - "\aNewFBId\x18\x02 \x01(\tR\aNewFBId\"F\n" + - "\x0eResSynGameData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + - "\n" + - "ResultCode\x18\x02 \x01(\x05R\n" + - "ResultCode\"\x0e\n" + - "\fForceKickOut\",\n" + - "\x10ResServerVersion\x12\x18\n" + - "\aVersion\x18\x01 \x01(\x05R\aVersion\"\xb3\x01\n" + - "\x11ResChessColorData\x12Z\n" + - "\x0fmChessColorData\x18\x01 \x03(\v20.tutorial.ResChessColorData.MChessColorDataEntryR\x0fmChessColorData\x1aB\n" + - "\x14MChessColorDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"E\n" + - "\tClientRes\x12\x12\n" + - "\x04func\x18\x01 \x01(\tR\x04func\x12\x10\n" + - "\x03cid\x18\x02 \x01(\tR\x03cid\x12\x12\n" + - "\x04info\x18\x03 \x01(\fR\x04info\"x\n" + - "\x12ReqRegisterAccount\x12\x1a\n" + - "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x18\n" + - "\aUserPwd\x18\x02 \x01(\tR\aUserPwd\x12\x14\n" + - "\x05dwUin\x18\x03 \x01(\x05R\x05dwUin\x12\x16\n" + - "\x06Device\x18\x04 \x01(\tR\x06Device\"4\n" + - "\x12ResRegisterAccount\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\"\x96\x01\n" + - "\bReqLogin\x12\x1a\n" + - "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x18\n" + - "\aUserPwd\x18\x02 \x01(\tR\aUserPwd\x12\x12\n" + - "\x04Code\x18\x03 \x01(\tR\x04Code\x12\x16\n" + - "\x06Device\x18\x04 \x01(\tR\x06Device\x12(\n" + - "\x04type\x18\x05 \x01(\x0e2\x14.tutorial.LOGIN_TYPER\x04type\"*\n" + - "\fReqLoginCode\x12\x1a\n" + - "\bTelPhone\x18\x01 \x01(\tR\bTelPhone\"T\n" + - "\fResLoginCode\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x12\n" + - "\x04Code\x18\x03 \x01(\tR\x04Code\"2\n" + - "\fReqId2Verify\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\"T\n" + - "\fResId2Verify\x122\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x8e\x01\n" + - "\bResLogin\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\x12\x14\n" + - "\x05dwUin\x18\x02 \x01(\x03R\x05dwUin\x12\x1a\n" + - "\bUserName\x18\x03 \x01(\tR\bUserName\x12\x1e\n" + - "\n" + - "FaceBookId\x18\x04 \x01(\tR\n" + - "FaceBookId\x12\x10\n" + - "\x03Msg\x18\x05 \x01(\tR\x03Msg\"_\n" + - "\x11ReqChangePassword\x12\x1a\n" + - "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x16\n" + - "\x06OldPwd\x18\x02 \x01(\tR\x06OldPwd\x12\x16\n" + - "\x06NewPwd\x18\x03 \x01(\tR\x06NewPwd\"3\n" + - "\x11ResChangePassword\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\")\n" + - "\x11ReqPlayerBaseInfo\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\x93\x06\n" + - "\x11ResPlayerBaseInfo\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + - "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + - "\x04star\x18\x03 \x01(\x05R\x04star\x12!\n" + - "\frecover_time\x18\x04 \x01(\x05R\vrecoverTime\x12\x18\n" + - "\adiamond\x18\x05 \x01(\x05R\adiamond\x12\x14\n" + - "\x05level\x18\x06 \x01(\x05R\x05level\x12\x10\n" + - "\x03exp\x18\a \x01(\x05R\x03exp\x12$\n" + - "\x0estart_order_id\x18\b \x01(\tR\fstartOrderId\x12\x1d\n" + - "\n" + - "music_code\x18\t \x01(\x05R\tmusicCode\x12\x14\n" + - "\x05guild\x18\n" + - " \x01(\x05R\x05guild\x12*\n" + - "\x11pack_unlock_count\x18\v \x01(\x05R\x0fpackUnlockCount\x12$\n" + - "\x0elast_play_time\x18\f \x01(\x05R\flastPlayTime\x12&\n" + - "\x0eEnergyBuyCount\x18\r \x01(\x05R\x0eEnergyBuyCount\x12\x1b\n" + - "\tuser_name\x18\x0e \x01(\tR\buserName\x12\x1d\n" + - "\n" + - "login_time\x18\x0f \x01(\x05R\tloginTime\x12\x1f\n" + - "\vlogout_time\x18\x10 \x01(\x05R\n" + - "logoutTime\x12&\n" + - "\x0etodayolinetime\x18\x11 \x01(\x05R\x0etodayolinetime\x12&\n" + - "\x0erolecreatetime\x18\x12 \x01(\x05R\x0erolecreatetime\x12\"\n" + - "\fEmitOrderCnt\x18\x13 \x01(\x05R\fEmitOrderCnt\x12\x12\n" + - "\x04NoAd\x18\x14 \x01(\x05R\x04NoAd\x12,\n" + - "\x11ChampshipsGroupID\x18\x15 \x01(\x05R\x11ChampshipsGroupID\x12*\n" + - "\x10LastChampGroupID\x18\x16 \x01(\x05R\x10LastChampGroupID\x12\x1e\n" + - "\n" + - "FaceBookId\x18\x17 \x01(\tR\n" + - "FaceBookId\x12#\n" + - "\rregister_time\x18\x18 \x01(\x05R\fregisterTime\"\x10\n" + - "\x0eReqPlayerAsset\"\x95\x02\n" + - "\x0eResPlayerAsset\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + - "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + - "\x04star\x18\x03 \x01(\x05R\x04star\x12!\n" + - "\frecover_time\x18\x04 \x01(\x05R\vrecoverTime\x12\x18\n" + - "\adiamond\x18\x05 \x01(\x05R\adiamond\x12\x14\n" + - "\x05level\x18\x06 \x01(\x05R\x05level\x12\x10\n" + - "\x03exp\x18\a \x01(\x05R\x03exp\x12\x14\n" + - "\x05Login\x18\b \x01(\x05R\x05Login\x12\x16\n" + - "\x06Logout\x18\t \x01(\x05R\x06Logout\x12\x12\n" + - "\x04PExp\x18\n" + - " \x01(\x05R\x04PExp\x12\x1a\n" + - "\bLoginDay\x18\v \x01(\x05R\bLoginDay\"\xbb\x01\n" + - "\x12UpdateBaseItemInfo\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12O\n" + - "\vmUpdateItem\x18\x02 \x03(\v2-.tutorial.UpdateBaseItemInfo.MUpdateItemEntryR\vmUpdateItem\x1a>\n" + - "\x10MUpdateItemEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"G\n" + - "\x17NotifyRenewBuyEnergyCnt\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + - "\x06CurCnt\x18\x02 \x01(\x05R\x06CurCnt\"#\n" + - "\vReqRemoveAd\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"-\n" + - "\vResRemoveAd\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\"?\n" + - "\x0fNotifyAddEnergy\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + - "\x06addCnt\x18\x02 \x01(\x05R\x06addCnt\"%\n" + - "\rReqServerTime\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"/\n" + - "\rResServerTime\x12\x1e\n" + - "\n" + - "ServerTime\x18\x01 \x01(\x05R\n" + - "ServerTime\"*\n" + - "\x12ReqPlayerChessData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xf3\x01\n" + - "\x12ResPlayerChessData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12L\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2,.tutorial.ResPlayerChessData.MChessDataEntryR\n" + - "mChessData\x12\x1c\n" + - "\tChessList\x18\x03 \x03(\x05R\tChessList\x12\x1c\n" + - "\tChessBuff\x18\x04 \x03(\x05R\tChessBuff\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x87\x02\n" + - "\x12ResPlayerChessInfo\x12\x1c\n" + - "\tChessList\x18\x01 \x03(\x05R\tChessList\x12\x1c\n" + - "\tChessBuff\x18\x02 \x03(\x05R\tChessBuff\x12.\n" + - "\bChessBag\x18\x03 \x01(\v2\x12.tutorial.ChessBagR\bChessBag\x12\x1e\n" + - "\n" + - "RetireEmit\x18\x04 \x03(\tR\n" + - "RetireEmit\x12\x14\n" + - "\x05Honor\x18\x05 \x03(\x05R\x05Honor\x12+\n" + - "\aPartBag\x18\x06 \x01(\v2\x11.tutorial.PartBagR\aPartBag\x12\"\n" + - "\fRetireReward\x18\a \x03(\tR\fRetireReward\")\n" + - "\x17ReqGetChessRetireReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"c\n" + - "\x17ResGetChessRetireReward\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"D\n" + - "\aPartBag\x129\n" + - "\fPartBagGrids\x18\x01 \x03(\v2\x15.tutorial.PartBagGridR\fPartBagGrids\";\n" + - "\vPartBagGrid\x12\x16\n" + - "\x06PartId\x18\x01 \x01(\x05R\x06PartId\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\"\xb5\x01\n" + - "\x0fReqPutPartInBag\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12I\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2).tutorial.ReqPutPartInBag.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"K\n" + - "\x0fResPutPartInBag\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\x90\x01\n" + - "\vChessHandle\x12)\n" + - "\x04type\x18\x01 \x01(\x0e2\x15.tutorial.HANDLE_TYPER\x04type\x12\x12\n" + - "\x04Emit\x18\x02 \x01(\x05R\x04Emit\x12\x18\n" + - "\aChessId\x18\x03 \x01(\x05R\aChessId\x12\x0e\n" + - "\x02Id\x18\x04 \x01(\x05R\x02Id\x12\x18\n" + - "\aActType\x18\x05 \x03(\x05R\aActType\"\xf8\x01\n" + - "\x15UpdatePlayerChessData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12O\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2/.tutorial.UpdatePlayerChessData.MChessDataEntryR\n" + - "mChessData\x129\n" + - "\fmChessHandle\x18\x03 \x03(\v2\x15.tutorial.ChessHandleR\fmChessHandle\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"T\n" + - "\x18ResUpdatePlayerChessData\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb7\x01\n" + - "\x10ReqSeparateChess\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12J\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2*.tutorial.ReqSeparateChess.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + - "\x10ResSeparateChess\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb5\x01\n" + - "\x0fReqUpgradeChess\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12I\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2).tutorial.ReqUpgradeChess.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"K\n" + - "\x0fResUpgradeChess\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xbd\x01\n" + - "\x13ReqGetChessFromBuff\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12M\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2-.tutorial.ReqGetChessFromBuff.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"O\n" + - "\x13ResGetChessFromBuff\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb4\x02\n" + - "\n" + - "ReqChessEx\x12\x1e\n" + - "\n" + - "OldChessId\x18\x01 \x01(\x05R\n" + - "OldChessId\x12\x1e\n" + - "\n" + - "NewChessId\x18\x02 \x01(\x05R\n" + - "NewChessId\x12\x18\n" + - "\aCostDia\x18\x03 \x01(\x05R\aCostDia\x12+\n" + - "\x04Type\x18\x04 \x01(\x0e2\x17.tutorial.CHESS_EX_TYPER\x04Type\x12D\n" + - "\n" + - "mChessData\x18\x05 \x03(\v2$.tutorial.ReqChessEx.MChessDataEntryR\n" + - "mChessData\x12\x1a\n" + - "\bCostStar\x18\x06 \x01(\x05R\bCostStar\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"F\n" + - "\n" + - "ResChessEx\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb3\x01\n" + - "\x0eReqSourceChest\x12\x18\n" + - "\aChestId\x18\x01 \x01(\x05R\aChestId\x12H\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2(.tutorial.ReqSourceChest.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"J\n" + - "\x0eResSourceChest\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\x8f\x02\n" + - "\x12ReqPlayroomOutline\x12\x1e\n" + - "\n" + - "OldChessId\x18\x01 \x01(\x05R\n" + - "OldChessId\x12\x1e\n" + - "\n" + - "NewChessId\x18\x02 \x01(\x05R\n" + - "NewChessId\x12\x18\n" + - "\aCostDia\x18\x03 \x01(\x05R\aCostDia\x12\x12\n" + - "\x04Type\x18\x04 \x01(\x05R\x04Type\x12L\n" + - "\n" + - "mChessData\x18\x05 \x03(\v2,.tutorial.ReqPlayroomOutline.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + - "\x12ResPlayroomOutline\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\x8e\x01\n" + - "\bChessBag\x12<\n" + - "\rChessBagGrids\x18\x01 \x03(\v2\x16.tutorial.ChessBagGridR\rChessBagGrids\x12 \n" + - "\vChessBuyCnt\x18\x02 \x01(\x05R\vChessBuyCnt\x12\"\n" + - "\fChessFreeCnt\x18\x03 \x01(\x05R\fChessFreeCnt\"P\n" + - "\fChessBagGrid\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aChessId\x18\x02 \x01(\x05R\aChessId\x12\x16\n" + - "\x06EmitId\x18\x03 \x01(\x05R\x06EmitId\"\xe5\x01\n" + - "\x10ReqPutChessInBag\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12\x14\n" + - "\x05BagId\x18\x02 \x01(\x05R\x05BagId\x12\x16\n" + - "\x06EmitId\x18\x03 \x01(\x05R\x06EmitId\x12J\n" + - "\n" + - "mChessData\x18\x04 \x03(\v2*.tutorial.ReqPutChessInBag.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + - "\x10ResPutChessInBag\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb7\x01\n" + - "\x12ReqTakeChessOutBag\x12\x14\n" + - "\x05BagId\x18\x01 \x01(\x05R\x05BagId\x12L\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2,.tutorial.ReqTakeChessOutBag.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + - "\x12ResTakeChessOutBag\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\"\x14\n" + - "\x12ReqBuyChessBagGrid\"N\n" + - "\x12ResBuyChessBagGrid\x12&\n" + - "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + - "\x03msg\x18\x02 \x01(\tR\x03msg\",\n" + - "\x14ReqPlayerProfileData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xa2\x02\n" + - "\x14ResPlayerProfileData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + - "\n" + - "ImageFrame\x18\x02 \x01(\x05R\n" + - "ImageFrame\x12\x1c\n" + - "\tImageIcon\x18\x03 \x01(\x05R\tImageIcon\x12 \n" + - "\vDecorateCnt\x18\x04 \x01(\x05R\vDecorateCnt\x12\x1a\n" + - "\bNickName\x18\x05 \x01(\tR\bNickName\x12\x16\n" + - "\x06PicURL\x18\x06 \x01(\tR\x06PicURL\x12 \n" + - "\vUnlockFrame\x18\a \x01(\tR\vUnlockFrame\x12\x1e\n" + - "\n" + - "UnlockIcon\x18\b \x01(\tR\n" + - "UnlockIcon\x12\x1e\n" + - "\n" + - "ActiveTime\x18\t \x01(\x05R\n" + - "ActiveTime\"1\n" + - "\x19ReqPlayerBriefProfileData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xf1\x02\n" + - "\x19ResPlayerBriefProfileData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + - "\n" + - "ImageFrame\x18\x02 \x01(\x05R\n" + - "ImageFrame\x12\x1c\n" + - "\tImageIcon\x18\x03 \x01(\x05R\tImageIcon\x12 \n" + - "\vDecorateCnt\x18\x04 \x01(\x05R\vDecorateCnt\x12\x1a\n" + - "\bNickName\x18\x05 \x01(\tR\bNickName\x12\x16\n" + - "\x06PicURL\x18\x06 \x01(\tR\x06PicURL\x12\x1e\n" + - "\n" + - "ActiveTime\x18\a \x01(\x05R\n" + - "ActiveTime\x12M\n" + - "\bSetEmoji\x18\v \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + - "\rSetEmojiEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"/\n" + - "\x0fReqSetEnergyMul\x12\x1c\n" + - "\tEnergyMul\x18\x01 \x01(\x05R\tEnergyMul\"W\n" + - "\x0fResSetEnergyMul\x122\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"2\n" + - "\aReqLang\x12'\n" + - "\x04Lang\x18\x01 \x01(\x0e2\x13.tutorial.LANG_TYPER\x04Lang\"O\n" + - "\aResLang\x122\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xab\x01\n" + - "\bBaseInfo\x12\x1c\n" + - "\tEnergyMul\x18\x01 \x01(\x05R\tEnergyMul\x12\x1e\n" + - "\n" + - "IsFirstBuy\x18\x02 \x01(\bR\n" + - "IsFirstBuy\x12\x1c\n" + - "\tEnergyBuy\x18\x03 \x01(\x05R\tEnergyBuy\x12\x1a\n" + - "\bEnergyAD\x18\x04 \x01(\x05R\bEnergyAD\x12'\n" + - "\x04Lang\x18\x05 \x01(\x0e2\x13.tutorial.LANG_TYPER\x04Lang\"\r\n" + - "\vReqUserInfo\"\xfa\x03\n" + - "\bUserInfo\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x1a\n" + - "\bNickname\x18\x02 \x01(\tR\bNickname\x12\x16\n" + - "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x12\n" + - "\x04Face\x18\x04 \x01(\x05R\x04Face\x12 \n" + - "\vDecorateCnt\x18\x05 \x01(\x05R\vDecorateCnt\x124\n" + - "\n" + - "AvatarList\x18\x06 \x03(\v2\x14.tutorial.AvatarInfoR\n" + - "AvatarList\x12.\n" + - "\bFaceList\x18\a \x03(\v2\x12.tutorial.FaceInfoR\bFaceList\x12\x14\n" + - "\x05Login\x18\b \x01(\x05R\x05Login\x12\x18\n" + - "\aPetName\x18\t \x01(\tR\aPetName\x121\n" + - "\tEmojiList\x18\n" + - " \x03(\v2\x13.tutorial.EmojiInfoR\tEmojiList\x12<\n" + - "\bSetEmoji\x18\v \x03(\v2 .tutorial.UserInfo.SetEmojiEntryR\bSetEmoji\x12\x14\n" + - "\x05IdNum\x18\f \x01(\tR\x05IdNum\x12\x18\n" + - "\aAddCode\x18\r \x01(\tR\aAddCode\x1a;\n" + - "\rSetEmojiEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\" \n" + - "\n" + - "ReqSetName\x12\x12\n" + - "\x04Name\x18\x01 \x01(\tR\x04Name\"R\n" + - "\n" + - "ResSetName\x122\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"#\n" + - "\rReqSetPetName\x12\x12\n" + - "\x04Name\x18\x01 \x01(\tR\x04Name\"U\n" + - "\rResSetPetName\x122\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + - "ResultCode\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"&\n" + - "\fReqBuyEnergy\x12\x16\n" + - "\x06Energy\x18\x01 \x01(\x05R\x06Energy\"H\n" + - "\fResBuyEnergy\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x12\n" + - "\x10ReqGetEnergyByAD\"L\n" + - "\x10ResGetEnergyByAD\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"0\n" + - "\x14ReqGetHandbookReward\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\"P\n" + - "\x14ResGetHandbookReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"@\n" + - "\fHandbookInfo\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\"Z\n" + - "\bHandbook\x124\n" + - "\tHandbooks\x18\x01 \x03(\v2\x16.tutorial.HandbookInfoR\tHandbooks\x12\x18\n" + - "\aCollect\x18\x02 \x03(\tR\aCollect\"*\n" + - "\x14RegHandbookAllReward\x12\x12\n" + - "\x04Type\x18\x01 \x01(\tR\x04Type\"P\n" + - "\x14ResHandbookAllReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xcd\x01\n" + - "\x0eReqRewardOrder\x12\x18\n" + - "\aOrderId\x18\x01 \x01(\x05R\aOrderId\x12H\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2(.tutorial.ReqRewardOrder.MChessDataEntryR\n" + - "mChessData\x12\x18\n" + - "\aActType\x18\x03 \x03(\x05R\aActType\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"J\n" + - "\x0eResRewardOrder\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x13\n" + - "\x11ReqCreatePetOrder\"'\n" + - "\vReqDelOrder\x12\x18\n" + - "\aOrderId\x18\x01 \x01(\x05R\aOrderId\"G\n" + - "\vResDelOrder\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + - "\x0fReqSellChessNum\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\"#\n" + - "\x0fResSellChessNum\x12\x10\n" + - "\x03Num\x18\x01 \x01(\x05R\x03Num\"o\n" + - "\x05Order\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aChessId\x18\x02 \x03(\x05R\aChessId\x12\x12\n" + - "\x04type\x18\x03 \x01(\x05R\x04type\x12(\n" + - "\x05Items\x18\x04 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"=\n" + - "\fResOrderList\x12-\n" + - "\tOrderList\x18\x01 \x03(\v2\x0f.tutorial.OrderR\tOrderList\"\x99\x01\n" + - "\x0fResDecorateInfo\x12\x16\n" + - "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\x12 \n" + - "\vmFinishList\x18\x02 \x03(\x05R\vmFinishList\x12\x1e\n" + - "\n" + - "RewardArea\x18\x03 \x03(\x05R\n" + - "RewardArea\x12,\n" + - "\x05Parts\x18\x04 \x03(\v2\x16.tutorial.DecoratePartR\x05Parts\"H\n" + - "\fDecoratePart\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + - "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"E\n" + - "\vReqDecorate\x12\x16\n" + - "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\x12\x1e\n" + - "\n" + - "DecorateId\x18\x02 \x01(\x05R\n" + - "DecorateId\"G\n" + - "\vResDecorate\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x10\n" + - "\x0eReqDecorateAll\"J\n" + - "\x0eResDecorateAll\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"'\n" + - "\rReqAreaReward\x12\x16\n" + - "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\"I\n" + - "\rResAreaReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"<\n" + - "\fReqGmCommand\x12\x18\n" + - "\aCommand\x18\x01 \x01(\tR\aCommand\x12\x12\n" + - "\x04args\x18\x02 \x01(\tR\x04args\",\n" + - "\x04Card\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\"\r\n" + - "\vReqCardInfo\"\xd3\x04\n" + - "\vResCardInfo\x12*\n" + - "\bCardList\x18\x01 \x03(\v2\x0e.tutorial.CardR\bCardList\x12\x16\n" + - "\x06ExStar\x18\x02 \x01(\x05R\x06ExStar\x12\x16\n" + - "\x06Status\x18\x03 \x01(\x05R\x06Status\x12\x1c\n" + - "\tCollectId\x18\x04 \x03(\x05R\tCollectId\x12\x18\n" + - "\aExTimes\x18\x05 \x01(\x05R\aExTimes\x12\x1a\n" + - "\bReqTimes\x18\x06 \x01(\x05R\bReqTimes\x12<\n" + - "\aAllCard\x18\a \x03(\v2\".tutorial.ResCardInfo.AllCardEntryR\aAllCard\x12\x18\n" + - "\aEndTime\x18\b \x01(\x05R\aEndTime\x12\x16\n" + - "\x06ReqUid\x18\t \x03(\x03R\x06ReqUid\x12\x14\n" + - "\x05ExUid\x18\n" + - " \x03(\x03R\x05ExUid\x12\x1c\n" + - "\tGoldTimes\x18\v \x01(\x05R\tGoldTimes\x12\x14\n" + - "\x05Round\x18\f \x01(\x05R\x05Round\x12?\n" + - "\bHandbook\x18\r \x03(\v2#.tutorial.ResCardInfo.HandbookEntryR\bHandbook\x12 \n" + - "\vSeasonFirst\x18\x0e \x01(\bR\vSeasonFirst\x1a:\n" + - "\fAllCardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + - "\rHandbookEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x96\x01\n" + - "\x12ResNotifyCardTimes\x12\x18\n" + - "\aExTimes\x18\x01 \x01(\x05R\aExTimes\x12\x1a\n" + - "\bReqTimes\x18\x02 \x01(\x05R\bReqTimes\x12\x16\n" + - "\x06ReqUid\x18\x03 \x03(\x03R\x06ReqUid\x12\x14\n" + - "\x05ExUid\x18\x04 \x03(\x03R\x05ExUid\x12\x1c\n" + - "\tGoldTimes\x18\x05 \x01(\x05R\tGoldTimes\"\x1a\n" + - "\x18ReqCardSeasonFirstReward\"T\n" + - "\x18ResCardSeasonFirstReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"/\n" + - "\x15ReqCardHandbookReward\x12\x16\n" + - "\x06CardId\x18\x01 \x01(\x05R\x06CardId\"i\n" + - "\x15ResCardHandbookReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x16\n" + - "\x06CardId\x18\x03 \x01(\x05R\x06CardId\"7\n" + - "\rReqMasterCard\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"}\n" + - "\rResMasterCard\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x1a\n" + - "\bMasterId\x18\x03 \x01(\x05R\bMasterId\x12\x16\n" + - "\x06CardId\x18\x04 \x01(\x05R\x06CardId\",\n" + - "\x14ReqCardCollectReward\x12\x14\n" + - "\x05Color\x18\x01 \x01(\x05R\x05Color\"P\n" + - "\x14ResCardCollectReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"!\n" + - "\x0fReqExStarReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + - "\x0fResExStarReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + - "\x13ReqAllCollectReward\"O\n" + - "\x13ResAllCollectReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"7\n" + - "\vReqCardGive\x12\x10\n" + - "\x03Uid\x18\x01 \x03(\x03R\x03Uid\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"G\n" + - "\vResCardGive\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + - "\x10ReqAgreeCardGive\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"\\\n" + - "\x10ResAgreeCardGive\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"#\n" + - "\x11ReqRefuseCardGive\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"]\n" + - "\x11ResRefuseCardGive\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"M\n" + - "\vReqCardSend\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + - "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"G\n" + - "\vResCardSend\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"Q\n" + - "\x0fReqCardExchange\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + - "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"K\n" + - "\x0fResCardExchange\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"?\n" + - "\x15ReqSelectCardExchange\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"a\n" + - "\x15ResSelectCardExchange\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"&\n" + - "\x14ReqAgreeCardExchange\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"v\n" + - "\x14ResAgreeCardExchange\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x14\n" + - "\x05Emoji\x18\x04 \x01(\x05R\x05Emoji\"%\n" + - "\x13ReqRefuseCardSelect\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"_\n" + - "\x13ResRefuseCardSelect\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"'\n" + - "\x15ReqRefuseCardExchange\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"a\n" + - "\x15ResRefuseCardExchange\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"\"\n" + - "\x10ReqGetFriendCard\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"\x8a\x01\n" + - "\x10ResGetFriendCard\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x16\n" + - "\x06CardId\x18\x04 \x01(\x05R\x06CardId\x12\x14\n" + - "\x05Emoji\x18\x05 \x01(\x05R\x05Emoji\"\x10\n" + - "\x0eReqGetGoldCard\"8\n" + - "\x0eResGetGoldCard\x12\x12\n" + - "\x04Four\x18\x01 \x01(\x05R\x04Four\x12\x12\n" + - "\x04Five\x18\x02 \x01(\x05R\x04Five\" \n" + - "\x0eReqGuideReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"J\n" + - "\x0eResGuideReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + - "\x10ReqGuidePlayroom\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"L\n" + - "\x10ResGuidePlayroom\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x85\x01\n" + - "\fResGuildInfo\x12:\n" + - "\x06Reward\x18\x01 \x03(\v2\".tutorial.ResGuildInfo.RewardEntryR\x06Reward\x1a9\n" + - "\vRewardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x85\x01\n" + - "\fResGuideInfo\x12:\n" + - "\x06Reward\x18\x01 \x03(\v2\".tutorial.ResGuideInfo.RewardEntryR\x06Reward\x1a9\n" + - "\vRewardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8e\x01\n" + - "\n" + - "ResItemPop\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + - "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x120\n" + - "\tCardPacks\x18\x03 \x03(\v2\x12.tutorial.CardPackR\tCardPacks\x12\x14\n" + - "\x05Lable\x18\x04 \x01(\tR\x05Lable\",\n" + - "\bItemInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Num\x18\x02 \x01(\x05R\x03Num\".\n" + - "\bCardPack\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Card\x18\x02 \x03(\x05R\x04Card\"\xee\x01\n" + - "\fResGuideTask\x12\"\n" + - "\fActiveReward\x18\x01 \x03(\x05R\fActiveReward\x124\n" + - "\x04Task\x18\x02 \x03(\v2 .tutorial.ResGuideTask.TaskEntryR\x04Task\x12\x16\n" + - "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x1e\n" + - "\n" + - "UnlockTime\x18\x04 \x01(\x05R\n" + - "UnlockTime\x1aL\n" + - "\tTaskEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + - "\x05value\x18\x02 \x01(\v2\x13.tutorial.GuideTaskR\x05value:\x028\x01\"h\n" + - "\tGuideTask\x12\x16\n" + - "\x06Status\x18\x01 \x01(\x05R\x06Status\x123\n" + - "\bProgress\x18\x02 \x01(\v2\x17.tutorial.QuestProgressR\bProgress\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"'\n" + - "\x15ReqGetGuideTaskReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"a\n" + - "\x15ResGetGuideTaskReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\")\n" + - "\x17ReqGetGuideActiveReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"c\n" + - "\x17ResGetGuideActiveReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x8c\x03\n" + - "\fResDailyTask\x12F\n" + - "\n" + - "WeekReward\x18\x01 \x03(\v2&.tutorial.ResDailyTask.WeekRewardEntryR\n" + - "WeekReward\x12C\n" + - "\tDailyTask\x18\x02 \x03(\v2%.tutorial.ResDailyTask.DailyTaskEntryR\tDailyTask\x12\x16\n" + - "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x16\n" + - "\x06DayEnd\x18\x04 \x01(\x05R\x06DayEnd\x12\x18\n" + - "\aWeekEnd\x18\x05 \x01(\x05R\aWeekEnd\x1aR\n" + - "\x0fWeekRewardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + - "\x05value\x18\x02 \x01(\v2\x13.tutorial.DailyWeekR\x05value:\x028\x01\x1aQ\n" + - "\x0eDailyTaskEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + - "\x05value\x18\x02 \x01(\v2\x13.tutorial.DailyTaskR\x05value:\x028\x01\"m\n" + - "\tDailyWeek\x12(\n" + - "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x16\n" + - "\x06Status\x18\x02 \x01(\bR\x06Status\x12\x1e\n" + - "\n" + - "NeedActive\x18\x03 \x01(\x05R\n" + - "NeedActive\"\xc0\x01\n" + - "\tDailyTask\x12\x16\n" + - "\x06Status\x18\x01 \x01(\x05R\x06Status\x12\x16\n" + - "\x06UnLock\x18\x02 \x01(\bR\x06UnLock\x123\n" + - "\bProgress\x18\x03 \x01(\v2\x17.tutorial.QuestProgressR\bProgress\x12(\n" + - "\x05Items\x18\x04 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x0e\n" + - "\x02Id\x18\x05 \x01(\x05R\x02Id\x12\x14\n" + - "\x05Index\x18\x06 \x01(\x05R\x05Index\"}\n" + - "\rQuestProgress\x12\x14\n" + - "\x05Label\x18\x01 \x01(\tR\x05Label\x12\x10\n" + - "\x03Num\x18\x02 \x01(\x05R\x03Num\x12\x16\n" + - "\x06Target\x18\x03 \x01(\x05R\x06Target\x12\x16\n" + - "\x06Status\x18\x04 \x01(\bR\x06Status\x12\x14\n" + - "\x05Param\x18\x05 \x01(\x05R\x05Param\"'\n" + - "\x15ReqGetDailyTaskReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"Q\n" + - "\x15ResGetDailyTaskReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"'\n" + - "\x15ReqGetDailyWeekReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"Q\n" + - "\x15ResGetDailyWeekReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x10\n" + - "\x0eReqDailyUnlock\"J\n" + - "\x0eResDailyUnlock\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"S\n" + - "\vResFaceInfo\x12.\n" + - "\bFaceList\x18\x01 \x03(\v2\x12.tutorial.FaceInfoR\bFaceList\x12\x14\n" + - "\x05SetId\x18\x02 \x01(\x05R\x05SetId\"N\n" + - "\bFaceInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\" \n" + - "\n" + - "ReqSetFace\x12\x12\n" + - "\x04Face\x18\x01 \x01(\x05R\x04Face\"F\n" + - "\n" + - "ResSetFace\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"[\n" + - "\rResAvatarInfo\x124\n" + - "\n" + - "AvatarList\x18\x01 \x03(\v2\x14.tutorial.AvatarInfoR\n" + - "AvatarList\x12\x14\n" + - "\x05SetId\x18\x02 \x01(\x05R\x05SetId\"P\n" + - "\n" + - "AvatarInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\"&\n" + - "\fReqSetAvatar\x12\x16\n" + - "\x06Avatar\x18\x01 \x01(\x05R\x06Avatar\"H\n" + - "\fResSetAvatar\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"O\n" + - "\tEmojiInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\"1\n" + - "\vReqSetEmoji\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\"G\n" + - "\vResSetEmoji\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xb9\x01\n" + - "\rResSevenLogin\x12:\n" + - "\n" + - "WeekReward\x18\x01 \x03(\v2\x1a.tutorial.SevenLoginRewardR\n" + - "WeekReward\x12<\n" + - "\vMonthReward\x18\x02 \x03(\v2\x1a.tutorial.SevenLoginRewardR\vMonthReward\x12\x16\n" + - "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x16\n" + - "\x06IsBack\x18\x04 \x01(\bR\x06IsBack\"\xb8\x01\n" + - "\x10SevenLoginReward\x12(\n" + - "\x05Item1\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Item1\x12(\n" + - "\x05Item2\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Item2\x12(\n" + - "\x05Item3\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Item3\x12\x16\n" + - "\x06Status\x18\x04 \x01(\x05R\x06Status\x12\x0e\n" + - "\x02Id\x18\x05 \x01(\x05R\x02Id\"(\n" + - "\x16ReqGetSevenLoginReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"R\n" + - "\x16ResGetSevenLoginReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"(\n" + - "\x16ReqGetMonthLoginReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"R\n" + - "\x16ResGetMonthLoginReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"E\n" + - "\vResActivity\x126\n" + - "\n" + - "ActiveList\x18\x01 \x03(\v2\x16.tutorial.ActivityInfoR\n" + - "ActiveList\"\xaa\x01\n" + - "\fActivityInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x1c\n" + - "\tStartTime\x18\x03 \x01(\x05R\tStartTime\x12\x18\n" + - "\aEndTime\x18\x04 \x01(\x05R\aEndTime\x12\x16\n" + - "\x06Status\x18\x05 \x01(\x05R\x06Status\x12\x14\n" + - "\x05Title\x18\x06 \x01(\tR\x05Title\x12\x10\n" + - "\x03Red\x18\a \x01(\x05R\x03Red\"#\n" + - "\x11ReqActivityReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"M\n" + - "\x11ResActivityReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + - "\rReqLimitEvent\"\xbd\x01\n" + - "\rResLimitEvent\x12S\n" + - "\x0eLimitEventList\x18\x01 \x03(\v2+.tutorial.ResLimitEvent.LimitEventListEntryR\x0eLimitEventList\x1aW\n" + - "\x13LimitEventListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12*\n" + - "\x05value\x18\x02 \x01(\v2\x14.tutorial.LimitEventR\x05value:\x028\x01\"\xf5\x01\n" + - "\x15ResLimitEventProgress\x12 \n" + - "\vProgressMax\x18\x01 \x01(\x05R\vProgressMax\x12\x1a\n" + - "\bProgress\x18\x02 \x01(\x05R\bProgress\x12[\n" + - "\x0eProgressReward\x18\x03 \x03(\v23.tutorial.ResLimitEventProgress.ProgressRewardEntryR\x0eProgressReward\x1aA\n" + - "\x13ProgressRewardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"%\n" + - "\x13ReqLimitEventReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"O\n" + - "\x13ResLimitEventReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"%\n" + - "\x13ReqSelectLimitEvent\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"O\n" + - "\x13ResSelectLimitEvent\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xf3\x01\n" + - "\n" + - "LimitEvent\x12\x18\n" + - "\aEndTime\x18\x01 \x01(\x05R\aEndTime\x12\x0e\n" + - "\x02Cd\x18\x02 \x01(\x05R\x02Cd\x12\x10\n" + - "\x03mul\x18\x03 \x01(\x02R\x03mul\x12\x1c\n" + - "\tStartTime\x18\x04 \x01(\x05R\tStartTime\x125\n" + - "\x05Param\x18\x05 \x03(\v2\x1f.tutorial.LimitEvent.ParamEntryR\x05Param\x12\x1a\n" + - "\bShowTime\x18\x06 \x01(\x05R\bShowTime\x1a8\n" + - "\n" + - "ParamEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"`\n" + - "\x10LimitEventNotify\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x0e\n" + - "\x02Cd\x18\x04 \x01(\x05R\x02Cd\"\xc1\x01\n" + - "\x15ReqLimitEventLuckyCat\x12\x18\n" + - "\aChessId\x18\x01 \x01(\x05R\aChessId\x12O\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2/.tutorial.ReqLimitEventLuckyCat.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"Q\n" + - "\x15ResLimitEventLuckyCat\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + - "\x13ReqLimitSenceReward\"O\n" + - "\x13ResLimitSenceReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"N\n" + - "\x12ResChessRainReward\x12(\n" + - "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x0e\n" + - "\x02Id\x18\x02 \x01(\x05R\x02Id\"\x14\n" + - "\x12ReqFastProduceInfo\"X\n" + - "\x12ResFastProduceInfo\x12\x16\n" + - "\x06Energy\x18\x01 \x01(\x05R\x06Energy\x12\x10\n" + - "\x03Num\x18\x02 \x01(\x05R\x03Num\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x03R\aEndTime\".\n" + - "\x14ReqFastProduceReward\x12\x16\n" + - "\x06Energy\x18\x01 \x01(\x05R\x06Energy\"|\n" + - "\x14ResFastProduceReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x03R\aEndTime\x12\x10\n" + - "\x03Num\x18\x04 \x01(\x05R\x03Num\"\x13\n" + - "\x11ReqCatTrickReward\"g\n" + - "\x11ResCatTrickReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + - "\aIsClose\x18\x03 \x01(\bR\aIsClose\"#\n" + - "\x0fReqSearchPlayer\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\tR\x03Uid\"T\n" + - "\x0fResSearchPlayer\x12\x12\n" + - "\x04Code\x18\x01 \x01(\x05R\x04Code\x12-\n" + - "\x04List\x18\x02 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\")\n" + - "\x15ReqFriendPlayerSimple\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x93\a\n" + - "\x15ResFriendPlayerSimple\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + - "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x1a\n" + - "\bDecorate\x18\x06 \x01(\x05R\bDecorate\x12\x14\n" + - "\x05login\x18\a \x01(\x05R\x05login\x12\x1a\n" + - "\bloginout\x18\b \x01(\x05R\bloginout\x12\x1a\n" + - "\bFacebook\x18\t \x01(\tR\bFacebook\x12@\n" + - "\x05Emoji\x18\n" + - " \x03(\v2*.tutorial.ResFriendPlayerSimple.EmojiEntryR\x05Emoji\x12\x18\n" + - "\aAddTime\x18\v \x01(\x03R\aAddTime\x12\x1a\n" + - "\bInteract\x18\f \x01(\x03R\bInteract\x12I\n" + - "\bPlayroom\x18\r \x03(\v2-.tutorial.ResFriendPlayerSimple.PlayroomEntryR\bPlayroom\x12I\n" + - "\bDressSet\x18\x0e \x03(\v2-.tutorial.ResFriendPlayerSimple.DressSetEntryR\bDressSet\x12\x16\n" + - "\x06Friend\x18\x0f \x03(\x05R\x06Friend\x12$\n" + - "\x04Last\x18\x10 \x01(\v2\x10.tutorial.ActLogR\x04Last\x12O\n" + - "\n" + - "Physiology\x18\x11 \x03(\v2/.tutorial.ResFriendPlayerSimple.PhysiologyEntryR\n" + - "Physiology\x12\x18\n" + - "\aPetName\x18\x12 \x01(\tR\aPetName\x1a8\n" + - "\n" + - "EmojiEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + - "\rPlayroomEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + - "\rDressSetEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + - "\x0fPhysiologyEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8f\x03\n" + - "\x0fResPlayerSimple\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + - "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x1a\n" + - "\bDecorate\x18\x06 \x01(\x05R\bDecorate\x12\x14\n" + - "\x05login\x18\a \x01(\x05R\x05login\x12\x1a\n" + - "\bloginout\x18\b \x01(\x05R\bloginout\x12\x1a\n" + - "\bFacebook\x18\t \x01(\tR\bFacebook\x12:\n" + - "\x05Emoji\x18\n" + - " \x03(\v2$.tutorial.ResPlayerSimple.EmojiEntryR\x05Emoji\x12\x18\n" + - "\aAddTime\x18\v \x01(\x03R\aAddTime\x12\x1a\n" + - "\bInteract\x18\f \x01(\x03R\bInteract\x1a8\n" + - "\n" + - "EmojiEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"F\n" + - "\x06ActLog\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x14\n" + - "\x05Param\x18\x03 \x01(\tR\x05Param\"\xa1\x01\n" + - "\rResPlayerRank\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + - "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x14\n" + - "\x05score\x18\x06 \x01(\x02R\x05score\x12\x12\n" + - "\x04type\x18\a \x01(\x05R\x04type\"\xa7\x01\n" + - "\fResFriendLog\x121\n" + - "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x03 \x01(\x05R\x04Time\x12\x14\n" + - "\x05Param\x18\x04 \x01(\tR\x05Param\x12\x0e\n" + - "\x02Id\x18\x05 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Upvote\x18\x06 \x01(\bR\x06Upvote\"q\n" + - "\x0fNotifyFriendLog\x12*\n" + - "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x122\n" + - "\x06Bubble\x18\x02 \x01(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"`\n" + - "\x10FriendBubbleInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12(\n" + - "\x05Items\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"?\n" + - "\x10NotifyFriendCard\x12+\n" + - "\x04Info\x18\x01 \x01(\v2\x17.tutorial.ResFriendCardR\x04Info\"\x91\x02\n" + - "\rResFriendCard\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + - "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x12\n" + - "\x04Type\x18\x06 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\a \x01(\x05R\x04Time\x12\x16\n" + - "\x06CardId\x18\b \x01(\x05R\x06CardId\x12\x1a\n" + - "\bExCardId\x18\t \x01(\x05R\bExCardId\x12\x16\n" + - "\x06Status\x18\n" + - " \x01(\x05R\x06Status\x12\x0e\n" + - "\x02Id\x18\v \x01(\tR\x02Id\x12\x14\n" + - "\x05Emoji\x18\f \x01(\x05R\x05Emoji\"/\n" + - "\x05ReqKv\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value\"g\n" + - "\x05ResKv\x12'\n" + - "\x02kv\x18\x01 \x03(\v2\x17.tutorial.ResKv.KvEntryR\x02kv\x1a5\n" + - "\aKvEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"%\n" + - "\x0fReqFriendByCode\x12\x12\n" + - "\x04Code\x18\x01 \x01(\tR\x04Code\"~\n" + - "\x0fResFriendByCode\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x121\n" + - "\x06Player\x18\x03 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"\x14\n" + - "\x12ReqFriendRecommend\"C\n" + - "\x12ResFriendRecommend\x12-\n" + - "\x04List\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\"#\n" + - "\x0fReqFriendIgnore\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"K\n" + - "\x0fResFriendIgnore\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + - "\rReqFriendList\"\x9a\x01\n" + - "\rResFriendList\x129\n" + - "\n" + - "FriendList\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\n" + - "FriendList\x12\"\n" + - "\fReqApplyList\x18\x03 \x03(\x03R\fReqApplyList\x12\x10\n" + - "\x03Npc\x18\x02 \x03(\x05R\x03Npc\x12\x18\n" + - "\aSponsor\x18\x04 \x01(\x05R\aSponsor\"!\n" + - "\tReqAddNpc\x12\x14\n" + - "\x05NpcId\x18\x01 \x01(\x05R\x05NpcId\"[\n" + - "\tResAddNpc\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x14\n" + - "\x05NpcId\x18\x03 \x01(\x05R\x05NpcId\"\x10\n" + - "\x0eReqFriendApply\"L\n" + - "\x0eResFriendApply\x12:\n" + - "\tApplyList\x18\x01 \x03(\v2\x1c.tutorial.ResFriendApplyInfoR\tApplyList\"[\n" + - "\x12ResFriendApplyInfo\x121\n" + - "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + - "\x04Time\x18\x02 \x01(\x05R\x04Time\"\x12\n" + - "\x10ReqFriendCardMsg\"E\n" + - "\x10ResFriendCardMsg\x121\n" + - "\aMsgList\x18\x01 \x03(\v2\x17.tutorial.ResFriendCardR\aMsgList\"\x12\n" + - "\x10ReqWishApplyList\"N\n" + - "\x10ResWishApplyList\x12:\n" + - "\tApplyList\x18\x01 \x03(\v2\x1c.tutorial.ResFriendApplyInfoR\tApplyList\" \n" + - "\fReqWishApply\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"Z\n" + - "\fResWishApply\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\x13\n" + - "\x11ReqFriendTimeLine\"m\n" + - "\x11ResFriendTimeLine\x12(\n" + - "\x03Log\x18\x01 \x03(\v2\x16.tutorial.ResFriendLogR\x03Log\x12.\n" + - "\x05Reply\x18\x02 \x03(\v2\x18.tutorial.ResFriendReplyR\x05Reply\"\xf3\x01\n" + - "\x0eResFriendReply\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x14\n" + - "\x05Param\x18\x03 \x01(\tR\x05Param\x12\x16\n" + - "\x06Status\x18\x04 \x01(\x05R\x06Status\x12\x18\n" + - "\aAddTime\x18\x05 \x01(\x03R\aAddTime\x12\x18\n" + - "\aEndTime\x18\x06 \x01(\x03R\aEndTime\x121\n" + - "\x06Player\x18\a \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12(\n" + - "\x05Items\x18\b \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"V\n" + - "\x14ReqFriendReplyHandle\x12\x14\n" + - "\x05LogId\x18\x01 \x01(\x05R\x05LogId\x12\x14\n" + - "\x05Param\x18\x02 \x01(\tR\x05Param\x12\x12\n" + - "\x04Type\x18\x03 \x01(\x05R\x04Type\"z\n" + - "\x14ResFriendReplyHandle\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x14\n" + - "\x05LogId\x18\x03 \x01(\x05R\x05LogId\x12\x12\n" + - "\x04Type\x18\x04 \x01(\x05R\x04Type\"E\n" + - "\x0fResFriendBubble\x122\n" + - "\x06Bubble\x18\x01 \x03(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"#\n" + - "\x11ReqFriendTLUpvote\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"]\n" + - "\x11ResFriendTLUpvote\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"\"\n" + - "\x10ReqFriendTReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"\\\n" + - "\x10ResFriendTReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"q\n" + - "\x14ResFriendApplyNotify\x121\n" + - "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x03 \x01(\x05R\x04Time\"6\n" + - "\x0eReqApplyFriend\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\"\\\n" + - "\x0eResApplyFriend\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\"\n" + - "\x0eReqAgreeFriend\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x8f\x01\n" + - "\x0eResAgreeFriend\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\x121\n" + - "\x06Player\x18\x04 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"#\n" + - "\x0fReqRefuseFriend\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"]\n" + - "\x0fResRefuseFriend\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\" \n" + - "\fReqDelFriend\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"Z\n" + - "\fResDelFriend\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\x1d\n" + - "\aReqRank\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\"\xe4\x01\n" + - "\aResRank\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\x12;\n" + - "\bRankList\x18\x02 \x03(\v2\x1f.tutorial.ResRank.RankListEntryR\bRankList\x12\x16\n" + - "\x06MyRank\x18\x03 \x01(\x05R\x06MyRank\x12\x18\n" + - "\aMyScore\x18\x04 \x01(\x02R\aMyScore\x1aV\n" + - "\rRankListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12/\n" + - "\x05value\x18\x02 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x05value:\x028\x01\"\r\n" + - "\vReqMailList\"\x9f\x01\n" + - "\vResMailList\x12?\n" + - "\bMailList\x18\x01 \x03(\v2#.tutorial.ResMailList.MailListEntryR\bMailList\x1aO\n" + - "\rMailListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + - "\x05value\x18\x02 \x01(\v2\x12.tutorial.MailInfoR\x05value:\x028\x01\"\x8c\x03\n" + - "\bMailInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + - "\x05Title\x18\x02 \x01(\tR\x05Title\x12\x18\n" + - "\aContent\x18\x03 \x01(\tR\aContent\x12\x12\n" + - "\x04Time\x18\x04 \x01(\x05R\x04Time\x12\x16\n" + - "\x06Status\x18\x05 \x01(\x05R\x06Status\x12(\n" + - "\x05Items\x18\x06 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x12\n" + - "\x04Type\x18\a \x01(\x05R\x04Type\x12\x18\n" + - "\aTitleEn\x18\b \x01(\tR\aTitleEn\x12\x1c\n" + - "\tContentEn\x18\t \x01(\tR\tContentEn\x12\x1a\n" + - "\bSubTitle\x18\n" + - " \x01(\tR\bSubTitle\x12\x1e\n" + - "\n" + - "SubTitleEn\x18\v \x01(\tR\n" + - "SubTitleEn\x12\x1c\n" + - "\tTitlePtBr\x18\f \x01(\tR\tTitlePtBr\x12 \n" + - "\vContentPtBr\x18\r \x01(\tR\vContentPtBr\x12\"\n" + - "\fSubTitlePtBr\x18\x0e \x01(\tR\fSubTitlePtBr\"4\n" + - "\n" + - "MailNotify\x12&\n" + - "\x04Info\x18\x01 \x01(\v2\x12.tutorial.MailInfoR\x04Info\"\x1d\n" + - "\vReqReadMail\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"W\n" + - "\vResReadMail\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"\"\n" + - "\x10ReqGetMailReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"\\\n" + - "\x10ResGetMailReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x1f\n" + - "\rReqDeleteMail\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"Y\n" + - "\rResDeleteMail\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x85\b\n" + - "\tResCharge\x12\x16\n" + - "\x06Charge\x18\x01 \x01(\x02R\x06Charge\x12\x14\n" + - "\x05Total\x18\x02 \x01(\x05R\x05Total\x12\x14\n" + - "\x05First\x18\x03 \x03(\x05R\x05First\x12F\n" + - "\vSpecialShop\x18\x04 \x03(\v2$.tutorial.ResCharge.SpecialShopEntryR\vSpecialShop\x12\x1a\n" + - "\bFreeShop\x18\x05 \x01(\x05R\bFreeShop\x12@\n" + - "\tChessShop\x18\x06 \x03(\v2\".tutorial.ResCharge.ChessShopEntryR\tChessShop\x121\n" + - "\x04Gift\x18\a \x03(\v2\x1d.tutorial.ResCharge.GiftEntryR\x04Gift\x12\x0e\n" + - "\x02Ad\x18\b \x01(\bR\x02Ad\x12&\n" + - "\x04Wish\x18\t \x01(\v2\x12.tutorial.WishListR\x04Wish\x12$\n" + - "\rSpecialCharge\x18\n" + - " \x01(\x02R\rSpecialCharge\x12,\n" + - "\x11SpecialChargeWeek\x18\v \x01(\x05R\x11SpecialChargeWeek\x12 \n" + - "\vTodayCharge\x18\f \x01(\x02R\vTodayCharge\x12 \n" + - "\vMonthCharge\x18\r \x01(\x02R\vMonthCharge\x12\x1c\n" + - "\tAdEndTime\x18\x0e \x01(\x03R\tAdEndTime\x12O\n" + - "\x0eWeeklyDiscount\x18\x0f \x03(\v2'.tutorial.ResCharge.WeeklyDiscountEntryR\x0eWeeklyDiscount\x12,\n" + - "\x11PetWorkRemainTime\x18\x10 \x01(\x03R\x11PetWorkRemainTime\x12$\n" + - "\rWeeklyEndTime\x18\x11 \x01(\x03R\rWeeklyEndTime\x1aX\n" + - "\x10SpecialShopEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12.\n" + - "\x05value\x18\x02 \x01(\v2\x18.tutorial.ResSpecialShopR\x05value:\x028\x01\x1aT\n" + - "\x0eChessShopEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12,\n" + - "\x05value\x18\x02 \x01(\v2\x16.tutorial.ResChessShopR\x05value:\x028\x01\x1a7\n" + - "\tGiftEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a_\n" + - "\x13WeeklyDiscountEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x122\n" + - "\x05value\x18\x02 \x01(\v2\x1c.tutorial.WeeklyDiscountInfoR\x05value:\x028\x01\"K\n" + - "\rLogoutPetWork\x12\x1a\n" + - "\bWorkTime\x18\x01 \x01(\x03R\bWorkTime\x12\x1e\n" + - "\n" + - "RemainTime\x18\x02 \x01(\x03R\n" + - "RemainTime\"V\n" + - "\x12WeeklyDiscountInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x1a\n" + - "\bDiscount\x18\x03 \x01(\x05R\bDiscount\"B\n" + - "\bWishList\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x10\n" + - "\x03Uid\x18\x03 \x03(\x03R\x03Uid\"0\n" + - "\n" + - "ReqAddWish\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\"F\n" + - "\n" + - "ResAddWish\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + - "\n" + - "ReqGetWish\"F\n" + - "\n" + - "ResGetWish\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + - "\x0eReqSendWishBeg\x12\x10\n" + - "\x03Uid\x18\x01 \x03(\x03R\x03Uid\"J\n" + - "\x0eResSendWishBeg\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"<\n" + - "\x0eResSpecialShop\x12\x14\n" + - "\x05Grade\x18\x01 \x01(\x05R\x05Grade\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\"X\n" + - "\fResChessShop\x12\x18\n" + - "\aDiamond\x18\x01 \x01(\x05R\aDiamond\x12\x14\n" + - "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x18\n" + - "\aChessId\x18\x03 \x01(\x05R\aChessId\"\r\n" + - "\vReqFreeShop\"G\n" + - "\vResFreeShop\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"!\n" + - "\x0fReqBuyChessShop\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + - "\x0fResBuyChessShop\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xad\x01\n" + - "\x10ReqBuyChessShop2\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12J\n" + - "\n" + - "mChessData\x18\x02 \x03(\v2*.tutorial.ReqBuyChessShop2.MChessDataEntryR\n" + - "mChessData\x1a=\n" + - "\x0fMChessDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + - "\x10ResBuyChessShop2\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + - "\x13ReqRefreshChessShop\"O\n" + - "\x13ResRefreshChessShop\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + - "\n" + - "ReqEndless\"\xbf\x01\n" + - "\n" + - "ResEndless\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12G\n" + - "\vEndlessList\x18\x02 \x03(\v2%.tutorial.ResEndless.EndlessListEntryR\vEndlessList\x1aX\n" + - "\x10EndlessListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12.\n" + - "\x05value\x18\x02 \x01(\v2\x18.tutorial.ResEndlessInfoR\x05value:\x028\x01\"j\n" + - "\x0eResEndlessInfo\x12\x1a\n" + - "\bChargeId\x18\x01 \x01(\x05R\bChargeId\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12(\n" + - "\x05Items\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"\x12\n" + - "\x10ReqEndlessReward\"L\n" + - "\x10ResEndlessReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"l\n" + - "\fResPiggyBank\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x18\n" + - "\aDiamond\x18\x02 \x01(\x05R\aDiamond\x12\x14\n" + - "\x05Count\x18\x03 \x01(\x05R\x05Count\x12\x18\n" + - "\aEndTime\x18\x04 \x01(\x05R\aEndTime\"\x14\n" + - "\x12ReqPiggyBankReward\"N\n" + - "\x12ResPiggyBankReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\">\n" + - "\x10ReqChargeReceive\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + - "\aContent\x18\x02 \x01(\tR\aContent\"L\n" + - "\x10ResChargeReceive\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x8a\x01\n" + - "\x10ReqCreateOrderSn\x12\x1a\n" + - "\bChargeId\x18\x01 \x01(\x05R\bChargeId\x12\x1a\n" + - "\bPlatForm\x18\x02 \x01(\tR\bPlatForm\x12\x18\n" + - "\achannel\x18\x03 \x01(\tR\achannel\x12\x12\n" + - "\x04Type\x18\x04 \x01(\x05R\x04Type\x12\x10\n" + - "\x03Uid\x18\x05 \x01(\x03R\x03Uid\",\n" + - "\x10ResCreateOrderSn\x12\x18\n" + - "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\"x\n" + - "\x10ReqShippingOrder\x12\x18\n" + - "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\x12\x1c\n" + - "\tProduceId\x18\x02 \x01(\tR\tProduceId\x12\x14\n" + - "\x05Token\x18\x03 \x01(\tR\x05Token\x12\x16\n" + - "\x06Status\x18\x04 \x01(\x05R\x06Status\"L\n" + - "\x10ResShippingOrder\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0e\n" + - "\fReqChampship\"\xba\x01\n" + - "\fResChampship\x12\x14\n" + - "\x05Score\x18\x01 \x01(\x05R\x05Score\x12\x16\n" + - "\x06Reward\x18\x02 \x01(\x05R\x06Reward\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x16\n" + - "\x06Period\x18\x04 \x01(\x05R\x06Period\x12\x12\n" + - "\x04Rank\x18\x05 \x01(\x05R\x04Rank\x12\x1e\n" + - "\n" + - "RankReward\x18\x06 \x01(\x05R\n" + - "RankReward\x12\x16\n" + - "\x06Status\x18\a \x01(\x05R\x06Status\"\x14\n" + - "\x12ReqChampshipReward\"N\n" + - "\x12ResChampshipReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x18\n" + - "\x16ReqChampshipRankReward\"R\n" + - "\x16ResChampshipRankReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x12\n" + - "\x10ReqChampshipRank\"\xe0\x01\n" + - "\x10ResChampshipRank\x12D\n" + - "\bRankList\x18\x01 \x03(\v2(.tutorial.ResChampshipRank.RankListEntryR\bRankList\x12\x16\n" + - "\x06MyRank\x18\x02 \x01(\x05R\x06MyRank\x12\x18\n" + - "\aMyScore\x18\x03 \x01(\x02R\aMyScore\x1aT\n" + - "\rRankListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + - "\x05value\x18\x02 \x01(\v2\x17.tutorial.ResPlayerRankR\x05value:\x028\x01\"\x15\n" + - "\x13ReqChampshipPreRank\"\xe6\x01\n" + - "\x13ResChampshipPreRank\x12G\n" + - "\bRankList\x18\x01 \x03(\v2+.tutorial.ResChampshipPreRank.RankListEntryR\bRankList\x12\x16\n" + - "\x06MyRank\x18\x02 \x01(\x05R\x06MyRank\x12\x18\n" + - "\aMyScore\x18\x03 \x01(\x02R\aMyScore\x1aT\n" + - "\rRankListEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + - "\x05value\x18\x02 \x01(\v2\x17.tutorial.ResPlayerRankR\x05value:\x028\x01\"\x8f\x03\n" + - "\rResNotifyCard\x125\n" + - "\x04Card\x18\x01 \x03(\v2!.tutorial.ResNotifyCard.CardEntryR\x04Card\x12;\n" + - "\x06Master\x18\x02 \x03(\v2#.tutorial.ResNotifyCard.MasterEntryR\x06Master\x12\x16\n" + - "\x06ExStar\x18\x03 \x01(\x05R\x06ExStar\x12A\n" + - "\bHandbook\x18\x04 \x03(\v2%.tutorial.ResNotifyCard.HandbookEntryR\bHandbook\x1a7\n" + - "\tCardEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a9\n" + - "\vMasterEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + - "\rHandbookEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"%\n" + - "\x11ReqSetFacebookUrl\x12\x10\n" + - "\x03Url\x18\x01 \x01(\tR\x03Url\"M\n" + - "\x11ResSetFacebookUrl\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + - "\x13ReqInviteFriendData\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"K\n" + - "\x13ResInviteFriendData\x12\x18\n" + - "\aIdLists\x18\x01 \x03(\x05R\aIdLists\x12\x1a\n" + - "\bGetIndex\x18\x02 \x01(\x05R\bGetIndex\".\n" + - "\x0eReqSelfInvited\x12\x1c\n" + - "\tInviterId\x18\x01 \x01(\x03R\tInviterId\"0\n" + - "\x0eResSelfInvited\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\"P\n" + - "\x14NotifyInvitedSuccess\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\x12\x18\n" + - "\aIdLists\x18\x02 \x03(\x05R\aIdLists\"0\n" + - "\x12ReqGetInviteReward\x12\x1a\n" + - "\bGetIndex\x18\x01 \x01(\x05R\bGetIndex\"4\n" + - "\x12ResGetInviteReward\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\"(\n" + - "\x16ReqAutoAddInviteFriend\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x03R\x02id\"8\n" + - "\x16ResAutoAddInviteFriend\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\")\n" + - "\x17ReqAutoAddInviteFriend2\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\"9\n" + - "\x17ResAutoAddInviteFriend2\x12\x1e\n" + - "\n" + - "ResultCode\x18\x01 \x01(\x05R\n" + - "ResultCode\"\v\n" + - "\tReqMining\"\x8f\x02\n" + - "\tResMining\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + - "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + - "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x12\x10\n" + - "\x03Gem\x18\x06 \x03(\x05R\x03Gem\x12.\n" + - "\x03Map\x18\a \x03(\v2\x1c.tutorial.ResMining.MapEntryR\x03Map\x12\x16\n" + - "\x06Mining\x18\b \x01(\x05R\x06Mining\x1a6\n" + - "\bMapEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x8d\x01\n" + - "\rReqMiningTake\x122\n" + - "\x03Map\x18\x01 \x03(\v2 .tutorial.ReqMiningTake.MapEntryR\x03Map\x12\x10\n" + - "\x03Gem\x18\x02 \x01(\x05R\x03Gem\x1a6\n" + - "\bMapEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"I\n" + - "\rResMiningTake\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + - "\x0fReqMiningReward\"K\n" + - "\x0fResMiningReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + - "\n" + - "ReqActPass\"\xce\x01\n" + - "\n" + - "ResActPass\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + - "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x14\n" + - "\x05Score\x18\x06 \x01(\x05R\x05Score\x12\x16\n" + - "\x06Reward\x18\a \x03(\x05R\x06Reward\x12\x18\n" + - "\aLowPass\x18\b \x01(\bR\aLowPass\x12\x1a\n" + - "\bHighPass\x18\t \x01(\bR\bHighPass\"\x12\n" + - "\x10ReqActPassReward\"n\n" + - "\x10ResActPassReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12 \n" + - "\vRewardLevel\x18\x03 \x03(\x05R\vRewardLevel\"s\n" + - "\tResActRed\x12.\n" + - "\x03Red\x18\x01 \x03(\v2\x1c.tutorial.ResActRed.RedEntryR\x03Red\x1a6\n" + - "\bRedEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"0\n" + - "\fNotifyActRed\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Red\x18\x02 \x01(\x05R\x03Red\"<\n" + - "\x0eActivityNotify\x12*\n" + - "\x04Info\x18\x01 \x01(\v2\x16.tutorial.ActivityInfoR\x04Info\"s\n" + - "\aResItem\x12/\n" + - "\x04Item\x18\x01 \x03(\v2\x1b.tutorial.ResItem.ItemEntryR\x04Item\x1a7\n" + - "\tItemEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"y\n" + - "\n" + - "ItemNotify\x122\n" + - "\x04Item\x18\x01 \x03(\v2\x1e.tutorial.ItemNotify.ItemEntryR\x04Item\x1a7\n" + - "\tItemEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x0f\n" + - "\rReqGuessColor\"\xef\x02\n" + - "\rResGuessColor\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + - "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + - "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x122\n" + - "\aMapList\x18\x06 \x03(\v2\x18.tutorial.GuessColorInfoR\aMapList\x125\n" + - "\x04OMap\x18\a \x03(\v2!.tutorial.ResGuessColor.OMapEntryR\x04OMap\x12\x18\n" + - "\aWinTime\x18\b \x01(\x05R\aWinTime\x12.\n" + - "\bOpponent\x18\t \x01(\v2\x12.tutorial.opponentR\bOpponent\x1a7\n" + - "\tOMapEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"f\n" + - "\bopponent\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x1a\n" + - "\bProgress\x18\x05 \x01(\x05R\bProgress\"\xb3\x01\n" + - "\x11ReqGuessColorTake\x12*\n" + - "\x03Map\x18\x01 \x01(\v2\x18.tutorial.GuessColorInfoR\x03Map\x129\n" + - "\x04OMap\x18\x02 \x03(\v2%.tutorial.ReqGuessColorTake.OMapEntryR\x04OMap\x1a7\n" + - "\tOMapEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"}\n" + - "\x0eGuessColorInfo\x123\n" + - "\x03Map\x18\x01 \x03(\v2!.tutorial.GuessColorInfo.MapEntryR\x03Map\x1a6\n" + - "\bMapEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"M\n" + - "\x11ResGuessColorTake\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + - "\x13ReqGuessColorReward\"O\n" + - "\x13ResGuessColorReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\t\n" + - "\aReqRace\"\xa7\x02\n" + - "\aResRace\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + - "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + - "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x12$\n" + - "\rGameStartTime\x18\x06 \x01(\x05R\rGameStartTime\x12 \n" + - "\vGameEndTime\x18\a \x01(\x05R\vGameEndTime\x12\x1a\n" + - "\bProgress\x18\b \x01(\x05R\bProgress\x122\n" + - "\bOpponent\x18\t \x03(\v2\x16.tutorial.raceopponentR\bOpponent\x12\x12\n" + - "\x04Rank\x18\n" + - " \x01(\x05R\x04Rank\"z\n" + - "\fraceopponent\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Face\x18\x02 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x12\n" + - "\x04Name\x18\x04 \x01(\tR\x04Name\x12\x1a\n" + - "\bProgress\x18\x05 \x01(\x05R\bProgress\"\x0e\n" + - "\fReqRaceStart\"H\n" + - "\fResRaceStart\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + - "\rReqRaceReward\"I\n" + - "\rResRaceReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\r\n" + - "\vReqPlayroom\"\xa9\r\n" + - "\vResPlayroom\x12\x16\n" + - "\x06status\x18\x01 \x01(\x05R\x06status\x12(\n" + - "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x122\n" + - "\bOpponent\x18\x03 \x03(\v2\x16.tutorial.RoomOpponentR\bOpponent\x12,\n" + - "\x06Friend\x18\x04 \x03(\v2\x14.tutorial.FriendRoomR\x06Friend\x12?\n" + - "\bPlayroom\x18\x05 \x03(\v2#.tutorial.ResPlayroom.PlayroomEntryR\bPlayroom\x127\n" + - "\acollect\x18\x06 \x03(\v2\x1d.tutorial.PlayroomCollectInfoR\acollect\x123\n" + - "\x04Mood\x18\a \x03(\v2\x1f.tutorial.ResPlayroom.MoodEntryR\x04Mood\x12.\n" + - "\bLoseItem\x18\b \x03(\v2\x12.tutorial.ItemInfoR\bLoseItem\x12\x1c\n" + - "\tStartTime\x18\t \x01(\x05R\tStartTime\x12\x1e\n" + - "\n" + - "WorkStatus\x18\n" + - " \x01(\x05R\n" + - "WorkStatus\x12\x18\n" + - "\aAllMood\x18\v \x01(\x05R\aAllMood\x12&\n" + - "\x04Chip\x18\f \x03(\v2\x12.tutorial.ChipInfoR\x04Chip\x12 \n" + - "\vWorkOutline\x18\r \x01(\x05R\vWorkOutline\x12\x18\n" + - "\aJackpot\x18\x0e \x01(\x05R\aJackpot\x12E\n" + - "\n" + - "Physiology\x18\x0f \x03(\v2%.tutorial.ResPlayroom.PhysiologyEntryR\n" + - "Physiology\x126\n" + - "\x05Dress\x18\x10 \x03(\v2 .tutorial.ResPlayroom.DressEntryR\x05Dress\x12?\n" + - "\bDressSet\x18\x11 \x03(\v2#.tutorial.ResPlayroom.DressSetEntryR\bDressSet\x121\n" + - "\x06PetAir\x18\x12 \x03(\v2\x19.tutorial.PlayroomAirInfoR\x06PetAir\x12\x1c\n" + - "\tPetAirSet\x18\x13 \x01(\x05R\tPetAirSet\x12\x16\n" + - "\x06Upvote\x18\x14 \x01(\x05R\x06Upvote\x12\x1c\n" + - "\tRoomPoint\x18\x15 \x01(\x05R\tRoomPoint\x12\x16\n" + - "\x06Unlock\x18\x16 \x03(\x05R\x06Unlock\x121\n" + - "\tDailyTask\x18\x17 \x03(\v2\x13.tutorial.DailyTaskR\tDailyTask\x12(\n" + - "\x0fDailyTaskReward\x18\x18 \x03(\x05R\x0fDailyTaskReward\x12 \n" + - "\vInteractNum\x18\x19 \x01(\x05R\vInteractNum\x12\x12\n" + - "\x04Kiss\x18\x1a \x01(\x05R\x04Kiss\x12\x18\n" + - "\aRevenge\x18\x1b \x01(\x03R\aRevenge\x12(\n" + - "\x06AdItem\x18\x1c \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x12,\n" + - "\x06Target\x18\x1d \x01(\v2\x14.tutorial.FriendRoomR\x06Target\x12Q\n" + - "\x0eWeeklyDiscount\x18\x1e \x03(\v2).tutorial.ResPlayroom.WeeklyDiscountEntryR\x0eWeeklyDiscount\x1a;\n" + - "\rPlayroomEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a7\n" + - "\tMoodEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + - "\x0fPhysiologyEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1aQ\n" + - "\n" + - "DressEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + - "\x05value\x18\x02 \x01(\v2\x17.tutorial.PlayroomDressR\x05value:\x028\x01\x1a;\n" + - "\rDressSetEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a_\n" + - "\x13WeeklyDiscountEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x122\n" + - "\x05value\x18\x02 \x01(\v2\x1c.tutorial.WeeklyDiscountInfoR\x05value:\x028\x01\"q\n" + - "\x12NotifyPlayroomTask\x121\n" + - "\tDailyTask\x18\x01 \x03(\v2\x13.tutorial.DailyTaskR\tDailyTask\x12(\n" + - "\x0fDailyTaskReward\x18\x02 \x03(\x05R\x0fDailyTaskReward\"!\n" + - "\x0fReqPlayroomTask\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"[\n" + - "\x0fResPlayroomTask\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"+\n" + - "\x15ReqPlayroomTaskReward\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\"u\n" + - "\x15ResPlayroomTaskReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x04 \x01(\x05R\x04Type\"#\n" + - "\x11ReqPlayroomUnlock\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"]\n" + - "\x11ResPlayroomUnlock\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"#\n" + - "\x11ReqPlayroomUpvote\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x03R\x02Id\"]\n" + - "\x11ResPlayroomUpvote\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x03R\x02Id\"@\n" + - "\rPlayroomDress\x12/\n" + - "\x04List\x18\x01 \x03(\v2\x1b.tutorial.PlayroomDressInfoR\x04List\"m\n" + - "\x11PlayroomDressInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + - "\x05Label\x18\x04 \x01(\tR\x05Label\"k\n" + - "\x0fPlayroomAirInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + - "\x05Label\x18\x04 \x01(\tR\x05Label\"o\n" + - "\x13PlayroomCollectInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + - "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + - "\x05Label\x18\x04 \x01(\tR\x05Label\"\x9b\x01\n" + - "\x13ReqPlayroomDressSet\x12G\n" + - "\bDressSet\x18\x01 \x03(\v2+.tutorial.ReqPlayroomDressSet.DressSetEntryR\bDressSet\x1a;\n" + - "\rDressSetEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"O\n" + - "\x13ResPlayroomDressSet\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"4\n" + - "\x14ReqPlayroomPetAirSet\x12\x1c\n" + - "\tPetAirSet\x18\x01 \x01(\x05R\tPetAirSet\"P\n" + - "\x14ResPlayroomPetAirSet\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x18\n" + - "\x16ReqPlayroomWrokOutline\"R\n" + - "\x16ResPlayroomWrokOutline\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"6\n" + - "\x12NofiPlayroomStatus\x12 \n" + - "\vWorkOutline\x18\x01 \x01(\x05R\vWorkOutline\"R\n" + - "\x12NotifyPlayroomWork\x12\x1c\n" + - "\tStartTime\x18\x01 \x01(\x05R\tStartTime\x12\x1e\n" + - "\n" + - "WorkStatus\x18\x02 \x01(\x05R\n" + - "WorkStatus\"\x86\x01\n" + - "\x12NotifyPlayroomLose\x12.\n" + - "\bLoseItem\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\bLoseItem\x12&\n" + - "\x04Chip\x18\x02 \x03(\v2\x12.tutorial.ChipInfoR\x04Chip\x12\x18\n" + - "\aRevenge\x18\x03 \x01(\x03R\aRevenge\"6\n" + - "\bChipInfo\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + - "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xda\x02\n" + - "\x12NotifyPlayroomMood\x12\x18\n" + - "\aAllMood\x18\x01 \x01(\x05R\aAllMood\x12:\n" + - "\x04Mood\x18\x02 \x03(\v2&.tutorial.NotifyPlayroomMood.MoodEntryR\x04Mood\x12L\n" + - "\n" + - "Physiology\x18\x03 \x03(\v2,.tutorial.NotifyPlayroomMood.PhysiologyEntryR\n" + - "Physiology\x12(\n" + - "\x06AdItem\x18\x04 \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x1a7\n" + - "\tMoodEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + - "\x0fPhysiologyEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"T\n" + - "\x06AdItem\x12\x14\n" + - "\x05Watch\x18\x01 \x01(\x05R\x05Watch\x12\x1c\n" + - "\tLastWatch\x18\x02 \x01(\x05R\tLastWatch\x12\x16\n" + - "\x06ItemId\x18\x03 \x01(\x05R\x06ItemId\"(\n" + - "\x12NotifyPlayroomKiss\x12\x12\n" + - "\x04Kiss\x18\x01 \x01(\x05R\x04Kiss\"t\n" + - "\n" + - "FriendRoom\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + - "\x05Times\x18\x05 \x01(\x05R\x05Times\"|\n" + - "\fRoomOpponent\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x1a\n" + - "\bLastTime\x18\x05 \x01(\x05R\bLastTime\"#\n" + - "\x0fReqPlayroomInfo\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x9f\a\n" + - "\x0fResPlayroomInfo\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12C\n" + - "\bPlayroom\x18\x05 \x03(\v2'.tutorial.ResPlayroomInfo.PlayroomEntryR\bPlayroom\x12\x16\n" + - "\x06GameId\x18\x06 \x01(\x05R\x06GameId\x12:\n" + - "\x05Items\x18\a \x03(\v2$.tutorial.ResPlayroomInfo.ItemsEntryR\x05Items\x12\x16\n" + - "\x06Status\x18\b \x01(\x05R\x06Status\x12\x18\n" + - "\adefense\x18\t \x01(\bR\adefense\x127\n" + - "\x04flip\x18\n" + - " \x03(\v2#.tutorial.ResPlayroomInfo.FlipEntryR\x04flip\x12\x12\n" + - "\x04Chip\x18\v \x01(\x05R\x04Chip\x12\x18\n" + - "\aPetName\x18\f \x01(\tR\aPetName\x12:\n" + - "\x05Emoji\x18\r \x03(\v2$.tutorial.ResPlayroomInfo.EmojiEntryR\x05Emoji\x12\x16\n" + - "\x06Upvote\x18\x0e \x01(\bR\x06Upvote\x12 \n" + - "\vUpvoteCount\x18\x0f \x01(\x05R\vUpvoteCount\x12C\n" + - "\bDressSet\x18\x10 \x03(\v2'.tutorial.ResPlayroomInfo.DressSetEntryR\bDressSet\x12\x12\n" + - "\x04Kiss\x18\x11 \x01(\x05R\x04Kiss\x1a;\n" + - "\rPlayroomEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1aL\n" + - "\n" + - "ItemsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + - "\x05value\x18\x02 \x01(\v2\x12.tutorial.ItemInfoR\x05value:\x028\x01\x1a7\n" + - "\tFlipEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a8\n" + - "\n" + - "EmojiEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + - "\rDressSetEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"!\n" + - "\x0fReqPlayroomFlip\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"s\n" + - "\x0fResPlayroomFlip\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\x12\x16\n" + - "\x06CardId\x18\x04 \x01(\x05R\x06CardId\"&\n" + - "\x10ReqPlayroomGuide\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\"L\n" + - "\x10ResPlayroomGuide\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"1\n" + - "\x15ReqPlayroomFlipReward\x12\x18\n" + - "\aEmojiId\x18\x01 \x01(\x05R\aEmojiId\"Q\n" + - "\x15ResPlayroomFlipReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"?\n" + - "\x0fReqPlayroomGame\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x18\n" + - "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xe9\x01\n" + - "\x0fResPlayroomGame\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x12\n" + - "\x04Type\x18\x03 \x01(\x05R\x04Type\x12:\n" + - "\x05Items\x18\x04 \x03(\v2$.tutorial.ResPlayroomGame.ItemsEntryR\x05Items\x1aL\n" + - "\n" + - "ItemsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + - "\x05value\x18\x02 \x01(\v2\x12.tutorial.ItemInfoR\x05value:\x028\x01\"K\n" + - "\x19ReqPlayroomGameShowReward\x12\x12\n" + - "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" + - "\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" + - "\x19ResPlayroomGameShowReward\x12(\n" + - "\x05Items\x18\x05 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + - "\x13ReqPlayroomInteract\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" + - "\x13ResPlayroomInteract\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12 \n" + - "\vInteractNum\x18\x03 \x01(\x05R\vInteractNum\"\x99\x01\n" + - "\x12ReqPlayroomSetRoom\x12F\n" + - "\bPlayroom\x18\x01 \x03(\v2*.tutorial.ReqPlayroomSetRoom.PlayroomEntryR\bPlayroom\x1a;\n" + - "\rPlayroomEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + - "\x12ResPlayroomSetRoom\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"C\n" + - "\x17ReqPlayroomSelectReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"S\n" + - "\x17ResPlayroomSelectReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + - "\x0fReqPlayroomLose\"K\n" + - "\x0fResPlayroomLose\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + - "\x0fReqPlayroomWork\"K\n" + - "\x0fResPlayroomWork\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + - "\x0fReqPlayroomRest\"K\n" + - "\x0fResPlayroomRest\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + - "\x0fReqPlayroomDraw\"[\n" + - "\x0fResPlayroomDraw\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"#\n" + - "\x0fReqPlayroomChip\x12\x10\n" + - "\x03Uid\x18\x01 \x03(\x03R\x03Uid\"K\n" + - "\x0fResPlayroomChip\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"$\n" + - "\x12ReqPlayroomBuyItem\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"N\n" + - "\x12ResPlayroomBuyItem\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"3\n" + - "\x0fReqPlayroomShop\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Num\x18\x02 \x01(\x05R\x03Num\"K\n" + - "\x0fResPlayroomShop\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x13\n" + - "\x11ReqFriendTreasure\"\xab\x01\n" + - "\x11ResFriendTreasure\x12\x16\n" + - "\x06Status\x18\x01 \x01(\x05R\x06Status\x12\x12\n" + - "\x04Star\x18\x02 \x01(\x05R\x04Star\x12\x14\n" + - "\x05Shift\x18\x03 \x01(\x05R\x05Shift\x12*\n" + - "\x04List\x18\x04 \x03(\v2\x16.tutorial.TreasureInfoR\x04List\x12\x14\n" + - "\x05List2\x18\x05 \x03(\x05R\x05List2\x12\x12\n" + - "\x04Uids\x18\x06 \x03(\x03R\x04Uids\"\xa6\x01\n" + - "\fTreasureInfo\x12\x10\n" + - "\x03Pos\x18\x01 \x01(\x05R\x03Pos\x12\x12\n" + - "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x10\n" + - "\x03Uid\x18\x05 \x01(\x03R\x03Uid\x12\x16\n" + - "\x06Status\x18\x06 \x01(\x05R\x06Status\x12\x1a\n" + - "\bNickName\x18\a \x01(\tR\bNickName\"Z\n" + - "\x16ReqFriendTreasureStart\x12*\n" + - "\x04List\x18\x01 \x03(\v2\x16.tutorial.TreasureInfoR\x04List\x12\x14\n" + - "\x05List2\x18\x02 \x03(\x05R\x05List2\"R\n" + - "\x16ResFriendTreasureStart\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x16\n" + - "\x14ReqFriendTreasureEnd\"P\n" + - "\x14ResFriendTreasureEnd\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\")\n" + - "\x15ReqFriendTreasureFilp\x12\x10\n" + - "\x03Pos\x18\x01 \x01(\x05R\x03Pos\"Q\n" + - "\x15ResFriendTreasureFilp\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + - "\x15ResFriendTreasureStar\x12\x12\n" + - "\x04Star\x18\x01 \x01(\x05R\x04Star\"7\n" + - "\vReqKafkaLog\x12\x14\n" + - "\x05Event\x18\x01 \x01(\tR\x05Event\x12\x12\n" + - "\x04Data\x18\x02 \x01(\tR\x04Data\"\x10\n" + - "\x0eReqCollectInfo\"M\n" + - "\x0eResCollectInfo\x12\x0e\n" + - "\x02Id\x18\x01 \x03(\x05R\x02Id\x12+\n" + - "\x05Items\x18\x02 \x03(\v2\x15.tutorial.CollectItemR\x05Items\"G\n" + - "\vCollectItem\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + - "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"\x1c\n" + - "\n" + - "ReqCollect\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"F\n" + - "\n" + - "ResCollect\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\v\n" + - "\tReqCatnip\"\xef\x01\n" + - "\tResCatnip\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + - "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + - "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x120\n" + - "\bGameList\x18\x05 \x03(\v2\x14.tutorial.CatnipGameR\bGameList\x12\x1a\n" + - "\bMultiply\x18\x06 \x01(\x05R\bMultiply\x126\n" + - "\n" + - "FriendList\x18\a \x03(\v2\x16.tutorial.CatnipInviteR\n" + - "FriendList\"\xdb\x01\n" + - "\n" + - "CatnipGame\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x1a\n" + - "\bProgress\x18\x03 \x01(\x05R\bProgress\x12\x16\n" + - "\x06Reward\x18\x04 \x03(\x05R\x06Reward\x123\n" + - "\aPartner\x18\x05 \x01(\v2\x19.tutorial.ResPlayerSimpleR\aPartner\x12\x14\n" + - "\x05Emoji\x18\x06 \x01(\x05R\x05Emoji\x12&\n" + - "\x0eFriendProgress\x18\a \x01(\x05R\x0eFriendProgress\"{\n" + - "\fCatnipInvite\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x12\n" + - "\x04Type\x18\x03 \x01(\x05R\x04Type\x121\n" + - "\x06Player\x18\x04 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"3\n" + - "\x0fReqCatnipInvite\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"]\n" + - "\x0fResCatnipInvite\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"2\n" + - "\x0eReqCatnipAgree\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"\\\n" + - "\x0eResCatnipAgree\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"3\n" + - "\x0fReqCatnipRefuse\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + - "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"]\n" + - "\x0fResCatnipRefuse\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + - "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"/\n" + - "\x11ReqCatnipMultiply\x12\x1a\n" + - "\bMultiply\x18\x01 \x01(\x05R\bMultiply\"i\n" + - "\x11ResCatnipMultiply\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x1a\n" + - "\bMultiply\x18\x03 \x01(\x05R\bMultiply\"\x1f\n" + - "\rReqCatnipPlay\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"Y\n" + - "\rResCatnipPlay\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\x05R\x02Id\"!\n" + - "\x0fReqCatnipReward\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + - "\x0fResCatnipReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x16\n" + - "\x14ReqCatnipGrandReward\"P\n" + - "\x14ResCatnipGrandReward\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\":\n" + - "\x0eReqCatnipEmoji\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + - "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"t\n" + - "\x0eResCatnipEmoji\x12&\n" + - "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + - "\aEmojiId\x18\x03 \x01(\x05R\aEmojiId\x12\x0e\n" + - "\x02Id\x18\x04 \x01(\x05R\x02Id\"2\n" + - "\bAdminReq\x12\x12\n" + - "\x04Func\x18\x01 \x01(\tR\x04Func\x12\x12\n" + - "\x04Info\x18\x02 \x01(\fR\x04Info\"2\n" + - "\bAdminRes\x12\x12\n" + - "\x04Func\x18\x01 \x01(\tR\x04Func\x12\x12\n" + - "\x04Info\x18\x02 \x01(\fR\x04Info\" \n" + - "\fReqAdminInfo\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x15\n" + - "\x13ReqReloadServerMail\"\x0f\n" + - "\rReqServerInfo\"\v\n" + - "\tReqReload\"8\n" + - "\n" + - "ReqAdminGm\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + - "\aCommand\x18\x02 \x01(\tR\aCommand\"K\n" + - "\vReqAdminBan\x12\x10\n" + - "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + - "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x16\n" + - "\x06Reason\x18\x03 \x01(\tR\x06Reason\"l\n" + - "\x10ReqAdminShipping\x12\x18\n" + - "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\x12\x16\n" + - "\x06Status\x18\x02 \x01(\x05R\x06Status\x12&\n" + - "\x0eChannelOrderSn\x18\x03 \x01(\tR\x0eChannelOrderSn*\xee\v\n" + - "\x0eITEM_POP_LABEL\x12\f\n" + - "\bPlayroom\x10\x00\x12\r\n" + - "\tPiggyBank\x10\x01\x12\n" + - "\n" + - "\x06Charge\x10\x02\x12\v\n" + - "\aEndless\x10\x03\x12\x0f\n" + - "\vLevUpReward\x10\x04\x12\x0f\n" + - "\vHandleChess\x10\x05\x12\x12\n" + - "\x0eHandbookReward\x10\x06\x12\x0f\n" + - "\vOrderReward\x10\a\x12\x10\n" + - "\fDecorateCost\x10\b\x12\x0f\n" + - "\vDecorateAdd\x10\t\x12\x13\n" + - "\x0fBuyChessBagGrid\x10\n" + - "\x12\v\n" + - "\aChessEx\x10\v\x12\x15\n" + - "\x11CardCollectReward\x10\f\x12\x10\n" + - "\fExStarReward\x10\r\x12\x14\n" + - "\x10AllCollectReward\x10\x0e\x12\x0f\n" + - "\vGuideReward\x10\x0f\x12\x13\n" + - "\x0fDailyTaskReward\x10\x10\x12\x13\n" + - "\x0fDailyWeekReward\x10\x11\x12\r\n" + - "\tBuyEnergy\x10\x12\x12\x19\n" + - "\x15SevenLoginRewardLabel\x10\x13\x12\x14\n" + - "\x10MonthLoginReward\x10\x14\x12\x15\n" + - "\x11FastProduceReward\x10\x15\x12\x14\n" + - "\x10LimitSenceReward\x10\x16\x12\x0e\n" + - "\n" + - "MailReward\x10\x17\x12\f\n" + - "\bFreeShop\x10\x18\x12\r\n" + - "\tChessShop\x10\x19\x12\x14\n" + - "\x10RefreshChessShop\x10\x1a\x12\x11\n" + - "\rEndlessReward\x10\x1b\x12\x13\n" + - "\x0fPiggyBankReward\x10\x1c\x12\x13\n" + - "\x0fChampshipReward\x10\x1d\x12\x14\n" + - "\x10LimitEventReward\x10\x1e\x12\x17\n" + - "\x13ChampshipRankReward\x10\x1f\x12\n" + - "\n" + - "\x06invite\x10 \x12\x14\n" + - "\x10SelectLimitEvent\x10!\x12\x0e\n" + - "\n" + - "MiningTake\x10\"\x12\x10\n" + - "\fMiningReward\x10#\x12\x0e\n" + - "\n" + - "GuessColor\x10$\x12\x14\n" + - "\x10GuessColorReward\x10%\x12\x0e\n" + - "\n" + - "RaceReward\x10&\x12\x10\n" + - "\fPlayroomGame\x10'\x12\x10\n" + - "\fPlayroomDraw\x10(\x12\x10\n" + - "\fPlayroomChip\x10)\x12\x10\n" + - "\fPlayroomFlip\x10*\x12\x16\n" + - "\x12FriendtreasureFilp\x10+\x12\x15\n" + - "\x11FriendtreasureEnd\x10,\x12\x06\n" + - "\x02GM\x10-\x12\x12\n" + - "\x0eFriendtreasure\x10.\x12\x16\n" + - "\x12CardHandbookReward\x10/\x12\x17\n" + - "\x13LimitEventChestRain\x100\x12\x11\n" + - "\rGetEnergyByAD\x101\x12\x0f\n" + - "\vSourceChest\x102\x12\x13\n" + - "\x0fPlayroomBuyItem\x103\x12\x19\n" + - "\x15CardSeasonFirstReward\x104\x12\x16\n" + - "\x12AllCollectRewardHB\x105\x12\x10\n" + - "\fPlayroomShop\x106\x12\x15\n" + - "\x11HandbookAllReward\x107\x12\f\n" + - "\bTLUpvote\x108\x12\v\n" + - "\aCollect\x109\x12\x10\n" + - "\fActivityGift\x10:\x12\x12\n" + - "\x0eActivityReward\x10;\x12\x12\n" + - "\x0eCatTrickReward\x10<\x12\v\n" + - "\aAddWish\x10=\x12\v\n" + - "\aGetWish\x10>\x12\x10\n" + - "\fPlayroomTask\x10?\x12\x16\n" + - "\x12PlayroomTaskReward\x10@\x12\x12\n" + - "\x0ePlayroomUpvote\x10A\x12\x12\n" + - "\x0eDecorateReward\x10B\x12\x10\n" + - "\fCatnipReward\x10C\x12\x15\n" + - "\x11CatnipGrandReward\x10D\x12\x0e\n" + - "\n" + - "CatnipPlay\x10E\x12\x11\n" + - "\rFriendTReward\x10F\x12\f\n" + - "\bPetTheif\x10G\x12\x13\n" + - "\x0fGuideTaskReward\x10H\x12\x15\n" + - "\x11GuideActiveReward\x10I\x12\x0e\n" + - "\n" + - "PassCharge\x10J\x12\x11\n" + - "\rActPassReward\x10K\x12\x15\n" + - "\x11FriendReplyHandle\x10L\x12\x18\n" + - "\x14GetChessRetireReward\x10M\x12\x16\n" + - "\x12ApplyFriendSponsor\x10N*B\n" + - "\vHANDLE_TYPE\x12\a\n" + - "\x03ADD\x10\x00\x12\v\n" + - "\aCOMPOSE\x10\x01\x12\a\n" + - "\x03BUY\x10\x02\x12\b\n" + - "\x04SELL\x10\x03\x12\n" + - "\n" + - "\x06REMOVE\x10\x04*\xf0\x02\n" + - "\bRES_CODE\x12\b\n" + - "\x04FAIL\x10\x00\x12\v\n" + - "\aSUCCESS\x10\x01\x12 \n" + - "\x1cProtocol_Error_Account_Exist\x10d\x12'\n" + - "#Protocol_Error_Account_OR_PWD_ERROR\x10e\x12'\n" + - "#Protocol_Error_Account_OR_PWD_Short\x10f\x12\x1f\n" + - "\x1bProtocol_Error_Account_Fail\x10g\x12\"\n" + - "\x1eProtocol_Error_Account_NoExsit\x10h\x12%\n" + - "!Protocol_Error_Account_Code_Error\x10i\x12'\n" + - "#Protocol_Error_Account_Device_Error\x10j\x12 \n" + - "\x1cProtocol_Error_Id_Not_Verify\x10k\x12\"\n" + - "\x1eProtocol_Error_Id_Verify_Error\x10l*.\n" + - "\tITEM_TYPE\x12\n" + - "\n" + - "\x06ENERGY\x10\x00\x12\b\n" + - "\x04STAR\x10\x01\x12\v\n" + - "\aDIAMOND\x10\x02*\x9f\x01\n" + - "\rACTIVITY_TYPE\x12\x19\n" + - "\x15ACTIVITY_TYPE_DEFAULT\x10\x00\x12\x13\n" + - "\x0fACT_TYPE_MINING\x10\x01\x12\x18\n" + - "\x14ACT_TYPE_GUESS_COLOR\x10\x02\x12\x11\n" + - "\rACT_TYPE_RACE\x10\x03\x12\x1a\n" + - "\x16ACT_TYPE_DISCOUNT_GIFT\x10\x04\x12\x15\n" + - "\x11ACT_TYPE_ADD_GIFT\x10\x05*\x95\x02\n" + - "\n" + - "ORDER_TYPE\x12\x16\n" + - "\x12ORDER_TYPE_DEFAULT\x10\x00\x12\x0f\n" + - "\vCommon_type\x10\x01\x12\x0e\n" + - "\n" + - "Extra_type\x10\x02\x12\x0e\n" + - "\n" + - "Super_type\x10\x03\x12\x10\n" + - "\fPreheat_type\x10\x04\x12\x10\n" + - "\fTrigger_type\x10\x05\x12\x0e\n" + - "\n" + - "Clean_type\x10\x06\x12\x14\n" + - "\x10Clean_Order_type\x10\a\x12\x0f\n" + - "\vClean_type2\x10\b\x12\x10\n" + - "\fCOMFORT_TYPE\x10\t\x12\x0e\n" + - "\n" + - "Guide_type\x10\n" + - "\x12\f\n" + - "\bPet_type\x10\v\x12\x10\n" + - "\fPreview_type\x10\f\x12\x0e\n" + - "\n" + - "Fixed_type\x10\r\x12\x11\n" + - "\rPlayroom_type\x10\x0e*P\n" + - "\n" + - "LOGIN_TYPE\x12\x11\n" + - "\rACCOUNT_LOGIN\x10\x00\x12\x0e\n" + - "\n" + - "CODE_LOGIN\x10\x01\x12\x10\n" + - "\fDEVICE_LOGIN\x10\x02\x12\r\n" + - "\tSDK_LOGIN\x10\x03*\xf7\x06\n" + - "\x0eTIME_LINE_TYPE\x12\v\n" + - "\aDEFAULT\x10\x00\x12\x19\n" + - "\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_BECOME\x10\x02\x12\x19\n" + - "\x15LOG_TYPE_CARD_EX_SEND\x10\x03\x12\x16\n" + - "\x12LOG_TYPE_CARD_SEND\x10\x04\x12\x16\n" + - "\x12LOG_TYPE_CARD_GIVE\x10\x05\x12\x1c\n" + - "\x18LOG_TYPE_CARD_SELECT_GET\x10\x06\x12\x1d\n" + - "\x19LOG_TYPE_CARD_ACCEPT_GIVE\x10\a\x12\x18\n" + - "\x14LOG_TYPE_CARD_EX_GET\x10\b\x12\x1d\n" + - "\x19LOG_TYPE_CARD_SELECT_SEND\x10\t\x12\x1e\n" + - "\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" + - "\x12\x1e\n" + - "\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_DELETE\x10\x0e\x12\x1b\n" + - "\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" + - "\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" + - "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" + - "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1c\n" + - "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x13\x12\x11\n" + - "\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" + - "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" + - "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" + - "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x17\x12\x15\n" + - "\x11LOG_TYPE_TREASURE\x10\x18\x12\x1d\n" + - "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x19\x12\x1d\n" + - "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" + - "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" + - "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" + - "\x16LOG_TYPE_TREASURE_HELP\x10\x1e\x12\x1b\n" + - "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1f\x12\x1f\n" + - "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10 *\x9b\x01\n" + - "\rCHESS_EX_TYPE\x12\x11\n" + - "\rCHESS_EX_NONE\x10\x00\x12\x13\n" + - "\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" + - "\fCHESS_EX_BOX\x10\x02\x12\x16\n" + - "\x12CHESS_EX_QUICK_BUY\x10\x03\x12\x12\n" + - "\x0eCHESS_EX_EVENT\x10\x04\x12$\n" + - " CHESS_EX_EVENT_LITTLE_APPRENTICE\x10\x05*4\n" + - "\tLANG_TYPE\x12\v\n" + - "\aLANG_CN\x10\x00\x12\v\n" + - "\aLANG_EN\x10\x01\x12\r\n" + - "\tLANG_PTBR\x10\x02*x\n" + - "\x0fLimitEventParam\x12\f\n" + - "\bLEP_NONE\x10\x00\x12\x14\n" + - "\x10CAT_TRICK_ENERGY\x10\x01\x12\x12\n" + - "\x0eCAT_TRICK_TYPE\x10\x02\x12\x15\n" + - "\x11PAYBACK_DAY_COUNT\x10\x03\x12\x16\n" + - "\x12LUCKY_CAT_EARNINGS\x10\x04*\x8a\a\n" + - "\n" + - "ActLogType\x12\x15\n" + - "\x11ACT_LOG_TYPE_NONE\x10\x00\x12\x1c\n" + - "\x18ACT_LOG_TYPE_FIRST_LOGIN\x10\x01\x12\"\n" + - "\x1eACT_LOG_TYPE_COMPLETE_RESTROOM\x10\x02\x12$\n" + - " ACT_LOG_TYPE_COMPLETE_RESTAURANT\x10\x03\x12\"\n" + - "\x1eACT_LOG_TYPE_COMPLETE_BATHROOM\x10\x04\x12#\n" + - "\x1fACT_LOG_TYPE_COMPLETE_CLOAKROOM\x10\x05\x12\x1f\n" + - "\x1bACT_LOG_TYPE_GET_NEW_AVATAR\x10\x06\x12%\n" + - "!ACT_LOG_TYPE_GET_NEW_AVATAR_FRAME\x10\a\x12 \n" + - "\x1cACT_LOG_TYPE_GET_NEW_EMOTION\x10\b\x12#\n" + - "\x1fACT_LOG_TYPE_GET_NEW_DECORATION\x10\t\x12 \n" + - "\x1cACT_LOG_TYPE_GET_NEW_COSTUME\x10\n" + - "\x12$\n" + - " ACT_LOG_TYPE_COMPLETE_CARD_ALBUM\x10\v\x12#\n" + - "\x1fACT_LOG_TYPE_COMPLETE_ALL_CARDS\x10\f\x12&\n" + - "\"ACT_LOG_TYPE_GET_CHAMPIONSHIP_RANK\x10\r\x12'\n" + - "#ACT_LOG_TYPE_GET_CHAMPIONSHIP_PRIZE\x10\x0e\x12+\n" + - "'ACT_LOG_TYPE_GET_LIMITED_ACTIVITY_PRIZE\x10\x0f\x12*\n" + - "&ACT_LOG_TYPE_JOIN_FRIEND_COOP_ACTIVITY\x10\x10\x12%\n" + - "!ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE\x10\x11\x12'\n" + - "#ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE_1\x10\x12\x12\"\n" + - "\x1eACT_LOG_TYPE_OPEN_PET_TREASURE\x10\x13\x12\x1d\n" + - "\x19ACT_LOG_TYPE_VISIT_UPVOTE\x10\x14\x12.\n" + - "*ACT_LOG_TYPE_COMPLETE_HANDBOOK_ACHIEVEMENT\x10\x15\x12(\n" + - "$ACT_LOG_TYPE_COMPLETE_CHAPTER_SCENES\x10\x16\x12!\n" + - "\x1dACT_LOG_TYPE_LOST_USER_RETURN\x10\x17*\xa4\x01\n" + - "\x11FRIEND_REPLY_TYPE\x12\x1a\n" + - "\x16FRIEND_REPLY_TYPE_NONE\x10\x00\x12\x1b\n" + - "\x17FRIEND_REPLY_TYPE_GREET\x10\x01\x12\"\n" + - "\x1eFRIEND_REPLY_TYPE_RETURN_GREET\x10\x02\x12\x15\n" + - "\x11REPLY_TYPE_CATNIP\x10\x03\x12\x1b\n" + - "\x17REPLY_TYPE_CATNIP_ITEMS\x10\x04B\bZ\x06../msgb\x06proto3" +var file_proto_Gameapi_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x47, 0x61, 0x6d, 0x65, 0x61, 0x70, 0x69, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x22, + 0xb5, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x6e, + 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, + 0x77, 0x55, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x0a, 0x16, 0x52, 0x65, 0x71, + 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, + 0x74, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, + 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x6e, 0x6c, 0x79, + 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, + 0x6e, 0x6c, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, + 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x11, 0x52, + 0x65, 0x71, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, + 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11, + 0x52, 0x65, 0x73, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x79, + 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x65, 0x73, + 0x53, 0x79, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75, + 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0xb3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x78, 0x0a, 0x12, + 0x52, 0x65, 0x71, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x01, 0x0a, + 0x08, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6c, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x65, 0x6c, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x22, 0x54, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x49, 0x64, + 0x32, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x0c, 0x52, + 0x65, 0x73, 0x49, 0x64, 0x32, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x0a, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, + 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x5f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4e, + 0x65, 0x77, 0x50, 0x77, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x65, 0x77, + 0x50, 0x77, 0x64, 0x22, 0x33, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, + 0x55, 0x69, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, + 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, + 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x69, + 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, + 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x6f, 0x64, 0x61, + 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, + 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, + 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x68, + 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, + 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, + 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, + 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, + 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x95, 0x02, 0x0a, 0x0e, + 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, + 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4c, + 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, + 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x45, 0x78, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x50, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x44, 0x61, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x44, 0x61, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, + 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x47, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, + 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, + 0x71, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, + 0x2d, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3f, + 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x22, + 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2f, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, + 0x55, 0x69, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, + 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, + 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x87, 0x02, 0x0a, 0x12, 0x52, 0x65, + 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x12, 0x2e, 0x0a, 0x08, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, + 0x61, 0x67, 0x52, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, + 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x48, 0x6f, 0x6e, + 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, + 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x52, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x12, + 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x63, + 0x0a, 0x17, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x65, 0x74, + 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x12, 0x39, + 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0c, 0x50, 0x61, 0x72, + 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x0b, 0x50, 0x61, 0x72, + 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x74, 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, 0xb5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x75, + 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, + 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, + 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x75, 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x42, 0x61, + 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x90, 0x01, 0x0a, 0x0b, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf8, + 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, + 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x39, 0x0a, 0x0c, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0c, 0x6d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0xb7, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4a, + 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, + 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x55, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, + 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xbd, 0x01, 0x0a, + 0x13, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x42, 0x75, 0x66, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, + 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, + 0x66, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, + 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, + 0x75, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb4, 0x02, + 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x1e, 0x0a, 0x0a, + 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, + 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, 0x2b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x2e, 0x4d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x45, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb3, 0x01, 0x0a, + 0x0e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x68, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8f, + 0x02, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, + 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, + 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, + 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, + 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x3c, 0x0a, + 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0d, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, + 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, + 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, + 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, + 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, + 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, + 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, + 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, + 0x65, 0x73, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, + 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x52, 0x65, + 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, + 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, + 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, + 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x19, + 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, + 0xf1, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, + 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, + 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, + 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, + 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x53, 0x65, + 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, + 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, + 0x79, 0x4d, 0x75, 0x6c, 0x22, 0x57, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x32, 0x0a, + 0x07, 0x52, 0x65, 0x71, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x4c, 0x61, 0x6e, + 0x67, 0x22, 0x4f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x0a, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0xab, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1e, 0x0a, + 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x12, 0x1c, 0x0a, + 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x45, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x12, 0x27, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x4c, 0x61, 0x6e, 0x67, + 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0xfa, 0x03, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, + 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, + 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, + 0x0a, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x45, 0x6d, 0x6f, + 0x6a, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x1a, + 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x20, 0x0a, 0x0a, + 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, + 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x50, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, + 0x74, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x26, + 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, + 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x42, 0x79, 0x41, 0x44, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, + 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x48, 0x61, + 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, + 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5a, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, + 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x22, 0x2a, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x48, 0x61, 0x6e, 0x64, 0x62, + 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x41, + 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x13, + 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x22, 0x27, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, + 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x6c, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x6f, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, + 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, + 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, + 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, + 0x72, 0x65, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x41, 0x72, 0x65, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x50, 0x61, + 0x72, 0x74, 0x73, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x45, 0x0a, + 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, + 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x0a, + 0x0e, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x22, + 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, + 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x0d, 0x52, + 0x65, 0x71, 0x41, 0x72, 0x65, 0x61, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, + 0x65, 0x61, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x72, 0x65, 0x61, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x2c, 0x0a, + 0x04, 0x43, 0x61, 0x72, 0x64, 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, 0x0d, 0x0a, 0x0b, 0x52, + 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0b, 0x52, + 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 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, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, + 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, + 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x61, + 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, + 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x53, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x96, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, + 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x52, + 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, + 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x71, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, + 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2f, 0x0a, 0x15, 0x52, + 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x15, + 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x22, 0x7d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, + 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, + 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x50, 0x0a, + 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x41, 0x6c, 0x6c, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, + 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, + 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, + 0x10, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, + 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, + 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, + 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x4d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, + 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x47, + 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x51, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, + 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, + 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x52, + 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, + 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x25, 0x0a, 0x13, 0x52, + 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, + 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, + 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, + 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, + 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x76, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x69, 0x76, 0x65, 0x22, 0x20, 0x0a, 0x0e, + 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, + 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, + 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4c, + 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, + 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, + 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, + 0x0a, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, + 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, + 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, + 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, + 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0c, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x34, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, + 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x4c, + 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x09, + 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x63, 0x0a, + 0x17, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, + 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, + 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x61, 0x79, 0x45, + 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x1a, 0x52, 0x0a, 0x0f, 0x57, 0x65, + 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, + 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, + 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, + 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x28, + 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x22, 0xc0, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x33, + 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, + 0x65, 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, + 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, + 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, + 0x71, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4a, 0x0a, 0x0e, + 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x53, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, + 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, + 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, + 0x08, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, + 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, + 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, + 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, + 0x65, 0x74, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, + 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, + 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, + 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x09, 0x45, 0x6d, 0x6f, 0x6a, + 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0b, 0x52, 0x65, 0x71, + 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0b, + 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x76, + 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, + 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, + 0x6b, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, + 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, + 0x65, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x16, + 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, + 0x71, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xaa, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 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, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x23, 0x0a, 0x11, + 0x52, 0x65, 0x71, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xf5, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xf3, 0x01, 0x0a, 0x0a, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x43, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x03, 0x6d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, + 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, + 0x77, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x60, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, + 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x22, 0x7c, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x13, + 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x22, 0x67, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x54, 0x72, 0x69, + 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x0f, + 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, + 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, + 0x69, 0x64, 0x22, 0x93, 0x07, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, + 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, + 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x40, + 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x49, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x12, 0x49, 0x0a, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x4c, 0x61, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, + 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x0a, 0x50, 0x68, + 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, + 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x50, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, + 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, + 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, + 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, + 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3a, + 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, + 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x06, 0x41, 0x63, + 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x70, 0x76, 0x6f, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, + 0x22, 0x71, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0x32, 0x0a, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x42, 0x75, 0x62, + 0x62, 0x6c, 0x65, 0x22, 0x60, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x62, + 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x91, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, + 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x65, + 0x71, 0x4b, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x52, + 0x65, 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4b, + 0x76, 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, 0x35, 0x0a, + 0x07, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x7e, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x14, 0x0a, 0x12, 0x52, + 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x64, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x52, 0x65, + 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, + 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x70, + 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x70, 0x63, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, + 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, + 0x4e, 0x70, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x09, 0x52, 0x65, 0x73, + 0x41, 0x64, 0x64, 0x4e, 0x70, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5b, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x4d, + 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x12, + 0x0a, 0x10, 0x52, 0x65, 0x71, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x57, 0x69, 0x73, 0x68, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x6d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, 0x6f, + 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, + 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, + 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x56, 0x0a, 0x14, 0x52, 0x65, + 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x40, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x52, 0x49, 0x45, + 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x07, 0x45, 0x72, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x45, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, + 0x62, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, + 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, + 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10, + 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x71, + 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x71, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x0e, + 0x52, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, + 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x8f, + 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x31, 0x0a, + 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, + 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x55, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, + 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x1a, 0x56, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, + 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, + 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c, 0x03, 0x0a, 0x08, 0x4d, 0x61, + 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x62, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x45, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x45, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, 0x42, + 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, + 0x42, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x74, 0x42, + 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x50, 0x74, 0x42, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x50, 0x74, 0x42, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x75, 0x62, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, 0x42, 0x72, 0x22, 0x34, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, + 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x57, 0x0a, + 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, + 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, + 0x73, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x0d, 0x52, 0x65, 0x73, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x85, 0x08, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, + 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, + 0x47, 0x69, 0x66, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, + 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x57, 0x69, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x04, 0x57, 0x69, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x57, 0x65, + 0x65, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, + 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x54, + 0x6f, 0x64, 0x61, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0b, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x41, 0x64, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x41, 0x64, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, + 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, + 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, + 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, + 0x0a, 0x11, 0x50, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x50, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, + 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x13, 0x57, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0d, + 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1a, 0x0a, + 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x6d, + 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x12, 0x57, 0x65, 0x65, + 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x42, 0x0a, 0x08, 0x57, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 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, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, 0x57, + 0x69, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x41, 0x64, + 0x64, 0x57, 0x69, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x57, 0x69, 0x73, 0x68, 0x22, 0x46, 0x0a, + 0x0a, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x57, 0x69, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6e, 0x64, + 0x57, 0x69, 0x73, 0x68, 0x42, 0x65, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x69, 0x73, 0x68, 0x42, 0x65, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, + 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, + 0x0b, 0x52, 0x65, 0x71, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, + 0x52, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, + 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xad, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, + 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, + 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, + 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, + 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x1a, 0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, + 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, + 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, + 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, + 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, + 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, + 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, + 0x12, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3e, 0x0a, + 0x10, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x55, 0x69, 0x64, 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, 0x22, 0x4c, 0x0a, + 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x8a, 0x01, 0x0a, 0x10, + 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22, 0x78, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0e, + 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x22, 0xba, + 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x52, + 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, + 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, + 0x61, 0x6e, 0x6b, 0x22, 0xe0, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, + 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, + 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, + 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe6, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x47, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, + 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, + 0x3b, 0x0a, 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, + 0x53, 0x74, 0x61, 0x72, 0x12, 0x41, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, + 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, + 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, + 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x53, + 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, + 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, + 0x0a, 0x13, 0x52, 0x65, 0x71, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2e, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, + 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, + 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x12, + 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x34, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, + 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38, + 0x0a, 0x16, 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x41, + 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, + 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 0x12, 0x1e, + 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x0b, + 0x0a, 0x09, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x09, + 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, + 0x65, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x12, 0x2e, 0x0a, + 0x03, 0x4d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x01, + 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, + 0x32, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, + 0x4d, 0x61, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x47, 0x65, 0x6d, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, + 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x4d, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, + 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x41, 0x63, + 0x74, 0x50, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x77, 0x50, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x4c, 0x6f, 0x77, 0x50, 0x61, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x48, + 0x69, 0x67, 0x68, 0x50, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x48, + 0x69, 0x67, 0x68, 0x50, 0x61, 0x73, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x41, 0x63, + 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x10, 0x52, + 0x65, 0x73, 0x41, 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x73, 0x0a, 0x09, 0x52, + 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x2e, 0x52, 0x65, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x03, 0x52, 0x65, 0x64, 0x1a, 0x36, 0x0a, 0x08, 0x52, 0x65, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x30, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, + 0x65, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x04, 0x49, + 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, + 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x79, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x22, 0xef, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x4f, 0x4d, 0x61, + 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x2e, 0x4f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4f, 0x4d, 0x61, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x4f, 0x70, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x1a, 0x37, 0x0a, 0x09, 0x4f, 0x4d, + 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x11, + 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, + 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, + 0x04, 0x4f, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x4f, 0x4d, 0x61, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x4f, 0x4d, 0x61, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x7d, 0x0a, 0x0e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, + 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, + 0x63, 0x65, 0x22, 0xa7, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, + 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x61, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, + 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0x7a, 0x0a, 0x0c, + 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x46, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x52, + 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x52, + 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0d, + 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0xa9, 0x0d, + 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, + 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, + 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x4d, + 0x6f, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, + 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, + 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, + 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x45, 0x0a, 0x0a, + 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, + 0x6f, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x44, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x06, + 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, + 0x41, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x12, + 0x1c, 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x55, + 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x16, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x31, 0x0a, 0x09, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, + 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x18, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, + 0x73, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x51, 0x0a, 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, + 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, + 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0a, 0x44, 0x72, 0x65, 0x73, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x13, 0x57, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71, 0x0a, 0x12, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x31, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x61, 0x69, + 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x21, 0x0a, 0x0f, + 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x5b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, + 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x15, + 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x75, 0x0a, 0x15, 0x52, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, + 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x50, 0x6c, + 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6b, 0x0a, 0x0f, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6f, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x50, + 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, + 0x47, 0x0a, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, + 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, + 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x34, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x22, 0x50, 0x0a, 0x14, + 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x41, 0x69, + 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x18, + 0x0a, 0x16, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, + 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x36, 0x0a, 0x12, + 0x4e, 0x6f, 0x66, 0x69, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, + 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, + 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x12, + 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, + 0x65, 0x22, 0x36, 0x0a, 0x08, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x12, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x3a, 0x0a, 0x04, 0x4d, 0x6f, + 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, + 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, + 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73, 0x69, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x61, + 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x57, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x12, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4b, 0x69, + 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x22, 0x74, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x0c, + 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, + 0x9f, 0x07, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x43, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, + 0x12, 0x37, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x6c, 0x69, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, + 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, + 0x70, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, + 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, + 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x46, 0x6c, 0x69, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, + 0x46, 0x6c, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x10, 0x52, 0x65, 0x71, + 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, + 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x31, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, + 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, + 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, + 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, + 0x45, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x39, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, + 0x74, 0x4e, 0x75, 0x6d, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, + 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x43, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x22, 0x5b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, + 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, + 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, + 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x33, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x52, 0x65, + 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x68, 0x69, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x69, 0x66, + 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, + 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, + 0x73, 0x74, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x04, 0x55, 0x69, 0x64, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x61, + 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, + 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x5a, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x22, 0x52, 0x0a, 0x16, + 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, + 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x6c, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x53, 0x74, 0x61, 0x72, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4b, 0x61, 0x66, 0x6b, + 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, + 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x4d, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0x47, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0b, + 0x0a, 0x09, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x22, 0xef, 0x01, 0x0a, 0x09, + 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x61, 0x6d, 0x65, 0x52, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xdb, 0x01, + 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, + 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x07, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, + 0x6f, 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7b, 0x0a, 0x0c, 0x43, + 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, + 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x0e, + 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x41, 0x67, 0x72, 0x65, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x22, 0x5c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x41, 0x67, 0x72, + 0x65, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x33, + 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x66, 0x75, 0x73, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, + 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, + 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x22, 0x1f, + 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x59, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, + 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, + 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3a, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, + 0x70, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, + 0x22, 0x74, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x45, 0x6d, 0x6f, + 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, + 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x0b, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x52, + 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x38, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x47, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, + 0x4b, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x10, + 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x53, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x2a, 0xee, 0x0b, 0x0a, 0x0e, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x12, 0x0c, 0x0a, + 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, + 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x73, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x65, 0x76, 0x55, 0x70, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x65, + 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, + 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x10, 0x09, 0x12, 0x13, 0x0a, + 0x0f, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, + 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x10, 0x0b, 0x12, + 0x15, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0e, 0x12, 0x0f, + 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0f, 0x12, + 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, + 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x75, 0x79, + 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x12, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x65, 0x76, 0x65, + 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x14, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x61, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x15, + 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, + 0x6f, 0x70, 0x10, 0x18, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, + 0x70, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, + 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, + 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1e, 0x12, 0x17, 0x0a, 0x13, + 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, + 0x20, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x21, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x54, 0x61, 0x6b, 0x65, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x23, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x24, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, + 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x25, 0x12, + 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x26, 0x12, + 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, + 0x27, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, + 0x77, 0x10, 0x28, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, + 0x68, 0x69, 0x70, 0x10, 0x29, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, + 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x10, 0x2a, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x10, 0x2b, 0x12, + 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, + 0x65, 0x45, 0x6e, 0x64, 0x10, 0x2c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x4d, 0x10, 0x2d, 0x12, 0x12, + 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, + 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, + 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x2f, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x73, 0x74, 0x52, 0x61, 0x69, + 0x6e, 0x10, 0x30, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x42, 0x79, 0x41, 0x44, 0x10, 0x31, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x68, 0x65, 0x73, 0x74, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x34, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x6c, 0x6c, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x42, 0x10, 0x35, 0x12, + 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x10, + 0x36, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4c, 0x55, 0x70, + 0x76, 0x6f, 0x74, 0x65, 0x10, 0x38, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x10, 0x39, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, + 0x69, 0x66, 0x74, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x61, 0x74, + 0x54, 0x72, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x3c, 0x12, 0x0b, 0x0a, + 0x07, 0x41, 0x64, 0x64, 0x57, 0x69, 0x73, 0x68, 0x10, 0x3d, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x57, 0x69, 0x73, 0x68, 0x10, 0x3e, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, + 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x3f, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, + 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, + 0x6f, 0x74, 0x65, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x42, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x61, 0x74, + 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x43, 0x12, 0x15, 0x0a, 0x11, 0x43, + 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x10, 0x44, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, + 0x10, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x10, 0x46, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x65, 0x74, 0x54, 0x68, 0x65, 0x69, + 0x66, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x48, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x49, 0x12, + 0x0e, 0x0a, 0x0a, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x4a, 0x12, + 0x11, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x10, 0x4b, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0x4c, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x10, 0x4d, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x53, 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x10, 0x4e, 0x2a, 0x42, 0x0a, 0x0b, 0x48, + 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, + 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4c, + 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, + 0xf0, 0x02, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, + 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, + 0x53, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x4f, 0x52, 0x5f, 0x50, 0x57, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x27, + 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x4f, 0x52, 0x5f, 0x50, 0x57, 0x44, 0x5f, + 0x53, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x4e, 0x6f, 0x45, 0x78, 0x73, 0x69, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x49, + 0x64, 0x5f, 0x4e, 0x6f, 0x74, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x10, 0x09, 0x12, 0x22, + 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x49, 0x64, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x0a, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, + 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, 0x44, + 0x10, 0x02, 0x2a, 0x9f, 0x01, 0x0a, 0x0d, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x47, 0x55, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x11, + 0x0a, 0x0d, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x43, 0x45, 0x10, + 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x47, 0x49, 0x46, 0x54, 0x10, 0x04, 0x12, 0x15, 0x0a, + 0x11, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x47, 0x49, + 0x46, 0x54, 0x10, 0x05, 0x2a, 0x95, 0x02, 0x0a, 0x0a, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, + 0x53, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, + 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x10, + 0x0a, 0x0c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, + 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x06, + 0x12, 0x14, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x32, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4d, 0x46, 0x4f, + 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x69, + 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x65, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, + 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0e, 0x2a, 0x50, 0x0a, 0x0a, + 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x43, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, + 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x53, 0x44, 0x4b, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x03, 0x2a, 0xf7, + 0x06, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x19, + 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, + 0x44, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x42, 0x45, 0x43, + 0x4f, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x03, + 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, + 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x10, 0x05, + 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, + 0x44, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x06, 0x12, 0x1d, + 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, + 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, + 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, + 0x58, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x5f, + 0x53, 0x45, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x5f, 0x32, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x10, 0x0d, 0x12, + 0x15, 0x0a, 0x11, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, + 0x42, 0x4f, 0x4f, 0x4b, 0x10, 0x0e, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x55, 0x50, 0x56, 0x4f, + 0x54, 0x45, 0x10, 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x10, 0x12, 0x1c, + 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, + 0x45, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, + 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x53, 0x48, 0x10, 0x12, 0x12, + 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, + 0x4e, 0x44, 0x5f, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x4e, 0x50, 0x43, 0x10, 0x13, 0x12, + 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, + 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x55, 0x50, 0x56, 0x4f, 0x54, 0x45, 0x10, 0x14, 0x12, 0x1f, 0x0a, + 0x1b, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, + 0x4f, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4d, 0x50, 0x53, 0x48, 0x49, 0x50, 0x10, 0x15, 0x12, 0x15, + 0x0a, 0x11, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x45, 0x41, 0x53, + 0x55, 0x52, 0x45, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x43, 0x43, 0x45, + 0x50, 0x54, 0x10, 0x17, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x57, 0x49, + 0x4e, 0x10, 0x18, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x4c, 0x4f, 0x53, + 0x45, 0x10, 0x19, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x41, 0x52, 0x44, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, + 0x10, 0x1a, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, + 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x10, 0x1b, 0x12, 0x1a, + 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x45, 0x41, 0x53, + 0x55, 0x52, 0x45, 0x5f, 0x48, 0x45, 0x4c, 0x50, 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, + 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x50, + 0x4f, 0x4e, 0x53, 0x4f, 0x52, 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x50, 0x4f, 0x4e, 0x53, + 0x4f, 0x52, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x1e, 0x2a, 0x9b, 0x01, 0x0a, 0x0d, 0x43, 0x48, 0x45, + 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, + 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x42, 0x55, 0x42, 0x42, 0x4c, 0x45, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x42, + 0x4f, 0x58, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, + 0x5f, 0x51, 0x55, 0x49, 0x43, 0x4b, 0x5f, 0x42, 0x55, 0x59, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, + 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x04, + 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x45, 0x4e, + 0x54, 0x49, 0x43, 0x45, 0x10, 0x05, 0x2a, 0x34, 0x0a, 0x09, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x43, 0x4e, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x54, 0x42, 0x52, 0x10, 0x02, 0x2a, 0x78, 0x0a, 0x0f, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x0c, 0x0a, 0x08, 0x4c, 0x45, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x41, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x43, 0x4b, 0x5f, 0x45, 0x4e, 0x45, 0x52, 0x47, + 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x43, 0x4b, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x59, 0x42, 0x41, + 0x43, 0x4b, 0x5f, 0x44, 0x41, 0x59, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x16, + 0x0a, 0x12, 0x4c, 0x55, 0x43, 0x4b, 0x59, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x4e, + 0x49, 0x4e, 0x47, 0x53, 0x10, 0x04, 0x2a, 0x8a, 0x07, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x4c, 0x6f, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, + 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x52, + 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, + 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, + 0x45, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x24, + 0x0a, 0x20, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x55, 0x52, 0x41, + 0x4e, 0x54, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x42, 0x41, + 0x54, 0x48, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, + 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x41, 0x4b, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x05, 0x12, 0x1f, 0x0a, + 0x1b, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, + 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x41, 0x56, 0x41, 0x54, 0x41, 0x52, 0x10, 0x06, 0x12, 0x25, + 0x0a, 0x21, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, + 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x41, 0x56, 0x41, 0x54, 0x41, 0x52, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x45, 0x4d, + 0x4f, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, 0x4c, + 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, + 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, + 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x55, 0x4d, 0x45, 0x10, 0x0a, 0x12, 0x24, + 0x0a, 0x20, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x41, 0x4c, 0x42, + 0x55, 0x4d, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x41, 0x4c, + 0x4c, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x54, + 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x48, + 0x41, 0x4d, 0x50, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x10, + 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4d, 0x50, 0x49, 0x4f, 0x4e, 0x53, 0x48, + 0x49, 0x50, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, + 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4c, + 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x0f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x54, 0x5f, 0x4c, + 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x46, 0x52, 0x49, + 0x45, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, + 0x59, 0x10, 0x10, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x5f, 0x47, 0x41, + 0x4d, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x11, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, + 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x56, + 0x49, 0x53, 0x49, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x5f, + 0x31, 0x10, 0x12, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x54, 0x52, 0x45, + 0x41, 0x53, 0x55, 0x52, 0x45, 0x10, 0x13, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x54, 0x5f, 0x4c, + 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x5f, 0x55, 0x50, + 0x56, 0x4f, 0x54, 0x45, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, + 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, + 0x48, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x43, 0x48, 0x49, 0x45, 0x56, 0x45, + 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, + 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, + 0x43, 0x48, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x10, 0x16, + 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, + 0x4e, 0x10, 0x17, 0x2a, 0xa4, 0x01, 0x0a, 0x11, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, + 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x52, 0x49, + 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, + 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x54, + 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, + 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x47, + 0x52, 0x45, 0x45, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x4e, 0x49, 0x50, 0x10, 0x03, 0x12, 0x1b, 0x0a, + 0x17, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x4e, + 0x49, 0x50, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x04, 0x2a, 0x34, 0x0a, 0x1c, 0x46, 0x52, + 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x54, 0x4e, 0x49, 0x50, 0x10, 0x01, + 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} var ( file_proto_Gameapi_proto_rawDescOnce sync.Once - file_proto_Gameapi_proto_rawDescData []byte + file_proto_Gameapi_proto_rawDescData = file_proto_Gameapi_proto_rawDesc ) func file_proto_Gameapi_proto_rawDescGZIP() []byte { file_proto_Gameapi_proto_rawDescOnce.Do(func() { - file_proto_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_Gameapi_proto_rawDesc), len(file_proto_Gameapi_proto_rawDesc))) + file_proto_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_Gameapi_proto_rawDescData) }) return file_proto_Gameapi_proto_rawDescData } -var file_proto_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 13) -var file_proto_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 544) +var file_proto_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 14) +var file_proto_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 545) var file_proto_Gameapi_proto_goTypes = []any{ (ITEM_POP_LABEL)(0), // 0: tutorial.ITEM_POP_LABEL (HANDLE_TYPE)(0), // 1: tutorial.HANDLE_TYPE @@ -29753,615 +31328,617 @@ var file_proto_Gameapi_proto_goTypes = []any{ (LimitEventParam)(0), // 10: tutorial.LimitEventParam (ActLogType)(0), // 11: tutorial.ActLogType (FRIEND_REPLY_TYPE)(0), // 12: tutorial.FRIEND_REPLY_TYPE - (*ClientReq)(nil), // 13: tutorial.ClientReq - (*ReqOfflineReconnect)(nil), // 14: tutorial.ReqOfflineReconnect - (*ResOfflineReconnect)(nil), // 15: tutorial.ResOfflineReconnect - (*ReqBindFacebookAccount)(nil), // 16: tutorial.ReqBindFacebookAccount - (*ResBindFacebookAccount)(nil), // 17: tutorial.ResBindFacebookAccount - (*ReqOnlyBindFacebook)(nil), // 18: tutorial.ReqOnlyBindFacebook - (*ResOnlyBindFacebook)(nil), // 19: tutorial.ResOnlyBindFacebook - (*ReqUnBindFacebook)(nil), // 20: tutorial.ReqUnBindFacebook - (*ResUnBindFacebook)(nil), // 21: tutorial.ResUnBindFacebook - (*ReqSynGameData)(nil), // 22: tutorial.ReqSynGameData - (*ResSynGameData)(nil), // 23: tutorial.ResSynGameData - (*ForceKickOut)(nil), // 24: tutorial.ForceKickOut - (*ResServerVersion)(nil), // 25: tutorial.ResServerVersion - (*ResChessColorData)(nil), // 26: tutorial.ResChessColorData - (*ClientRes)(nil), // 27: tutorial.ClientRes - (*ReqRegisterAccount)(nil), // 28: tutorial.ReqRegisterAccount - (*ResRegisterAccount)(nil), // 29: tutorial.ResRegisterAccount - (*ReqLogin)(nil), // 30: tutorial.ReqLogin - (*ReqLoginCode)(nil), // 31: tutorial.ReqLoginCode - (*ResLoginCode)(nil), // 32: tutorial.ResLoginCode - (*ReqId2Verify)(nil), // 33: tutorial.ReqId2Verify - (*ResId2Verify)(nil), // 34: tutorial.ResId2Verify - (*ResLogin)(nil), // 35: tutorial.ResLogin - (*ReqChangePassword)(nil), // 36: tutorial.ReqChangePassword - (*ResChangePassword)(nil), // 37: tutorial.ResChangePassword - (*ReqPlayerBaseInfo)(nil), // 38: tutorial.ReqPlayerBaseInfo - (*ResPlayerBaseInfo)(nil), // 39: tutorial.ResPlayerBaseInfo - (*ReqPlayerAsset)(nil), // 40: tutorial.ReqPlayerAsset - (*ResPlayerAsset)(nil), // 41: tutorial.ResPlayerAsset - (*UpdateBaseItemInfo)(nil), // 42: tutorial.UpdateBaseItemInfo - (*NotifyRenewBuyEnergyCnt)(nil), // 43: tutorial.NotifyRenewBuyEnergyCnt - (*ReqRemoveAd)(nil), // 44: tutorial.ReqRemoveAd - (*ResRemoveAd)(nil), // 45: tutorial.ResRemoveAd - (*NotifyAddEnergy)(nil), // 46: tutorial.NotifyAddEnergy - (*ReqServerTime)(nil), // 47: tutorial.ReqServerTime - (*ResServerTime)(nil), // 48: tutorial.ResServerTime - (*ReqPlayerChessData)(nil), // 49: tutorial.ReqPlayerChessData - (*ResPlayerChessData)(nil), // 50: tutorial.ResPlayerChessData - (*ResPlayerChessInfo)(nil), // 51: tutorial.ResPlayerChessInfo - (*ReqGetChessRetireReward)(nil), // 52: tutorial.ReqGetChessRetireReward - (*ResGetChessRetireReward)(nil), // 53: tutorial.ResGetChessRetireReward - (*PartBag)(nil), // 54: tutorial.PartBag - (*PartBagGrid)(nil), // 55: tutorial.PartBagGrid - (*ReqPutPartInBag)(nil), // 56: tutorial.ReqPutPartInBag - (*ResPutPartInBag)(nil), // 57: tutorial.ResPutPartInBag - (*ChessHandle)(nil), // 58: tutorial.ChessHandle - (*UpdatePlayerChessData)(nil), // 59: tutorial.UpdatePlayerChessData - (*ResUpdatePlayerChessData)(nil), // 60: tutorial.ResUpdatePlayerChessData - (*ReqSeparateChess)(nil), // 61: tutorial.ReqSeparateChess - (*ResSeparateChess)(nil), // 62: tutorial.ResSeparateChess - (*ReqUpgradeChess)(nil), // 63: tutorial.ReqUpgradeChess - (*ResUpgradeChess)(nil), // 64: tutorial.ResUpgradeChess - (*ReqGetChessFromBuff)(nil), // 65: tutorial.ReqGetChessFromBuff - (*ResGetChessFromBuff)(nil), // 66: tutorial.ResGetChessFromBuff - (*ReqChessEx)(nil), // 67: tutorial.ReqChessEx - (*ResChessEx)(nil), // 68: tutorial.ResChessEx - (*ReqSourceChest)(nil), // 69: tutorial.ReqSourceChest - (*ResSourceChest)(nil), // 70: tutorial.ResSourceChest - (*ReqPlayroomOutline)(nil), // 71: tutorial.ReqPlayroomOutline - (*ResPlayroomOutline)(nil), // 72: tutorial.ResPlayroomOutline - (*ChessBag)(nil), // 73: tutorial.ChessBag - (*ChessBagGrid)(nil), // 74: tutorial.ChessBagGrid - (*ReqPutChessInBag)(nil), // 75: tutorial.ReqPutChessInBag - (*ResPutChessInBag)(nil), // 76: tutorial.ResPutChessInBag - (*ReqTakeChessOutBag)(nil), // 77: tutorial.ReqTakeChessOutBag - (*ResTakeChessOutBag)(nil), // 78: tutorial.ResTakeChessOutBag - (*ReqBuyChessBagGrid)(nil), // 79: tutorial.ReqBuyChessBagGrid - (*ResBuyChessBagGrid)(nil), // 80: tutorial.ResBuyChessBagGrid - (*ReqPlayerProfileData)(nil), // 81: tutorial.ReqPlayerProfileData - (*ResPlayerProfileData)(nil), // 82: tutorial.ResPlayerProfileData - (*ReqPlayerBriefProfileData)(nil), // 83: tutorial.ReqPlayerBriefProfileData - (*ResPlayerBriefProfileData)(nil), // 84: tutorial.ResPlayerBriefProfileData - (*ReqSetEnergyMul)(nil), // 85: tutorial.ReqSetEnergyMul - (*ResSetEnergyMul)(nil), // 86: tutorial.ResSetEnergyMul - (*ReqLang)(nil), // 87: tutorial.ReqLang - (*ResLang)(nil), // 88: tutorial.ResLang - (*BaseInfo)(nil), // 89: tutorial.BaseInfo - (*ReqUserInfo)(nil), // 90: tutorial.ReqUserInfo - (*UserInfo)(nil), // 91: tutorial.UserInfo - (*ReqSetName)(nil), // 92: tutorial.ReqSetName - (*ResSetName)(nil), // 93: tutorial.ResSetName - (*ReqSetPetName)(nil), // 94: tutorial.ReqSetPetName - (*ResSetPetName)(nil), // 95: tutorial.ResSetPetName - (*ReqBuyEnergy)(nil), // 96: tutorial.ReqBuyEnergy - (*ResBuyEnergy)(nil), // 97: tutorial.ResBuyEnergy - (*ReqGetEnergyByAD)(nil), // 98: tutorial.ReqGetEnergyByAD - (*ResGetEnergyByAD)(nil), // 99: tutorial.ResGetEnergyByAD - (*ReqGetHandbookReward)(nil), // 100: tutorial.ReqGetHandbookReward - (*ResGetHandbookReward)(nil), // 101: tutorial.ResGetHandbookReward - (*HandbookInfo)(nil), // 102: tutorial.HandbookInfo - (*Handbook)(nil), // 103: tutorial.Handbook - (*RegHandbookAllReward)(nil), // 104: tutorial.RegHandbookAllReward - (*ResHandbookAllReward)(nil), // 105: tutorial.ResHandbookAllReward - (*ReqRewardOrder)(nil), // 106: tutorial.ReqRewardOrder - (*ResRewardOrder)(nil), // 107: tutorial.ResRewardOrder - (*ReqCreatePetOrder)(nil), // 108: tutorial.ReqCreatePetOrder - (*ReqDelOrder)(nil), // 109: tutorial.ReqDelOrder - (*ResDelOrder)(nil), // 110: tutorial.ResDelOrder - (*ReqSellChessNum)(nil), // 111: tutorial.ReqSellChessNum - (*ResSellChessNum)(nil), // 112: tutorial.ResSellChessNum - (*Order)(nil), // 113: tutorial.Order - (*ResOrderList)(nil), // 114: tutorial.ResOrderList - (*ResDecorateInfo)(nil), // 115: tutorial.ResDecorateInfo - (*DecoratePart)(nil), // 116: tutorial.DecoratePart - (*ReqDecorate)(nil), // 117: tutorial.ReqDecorate - (*ResDecorate)(nil), // 118: tutorial.ResDecorate - (*ReqDecorateAll)(nil), // 119: tutorial.ReqDecorateAll - (*ResDecorateAll)(nil), // 120: tutorial.ResDecorateAll - (*ReqAreaReward)(nil), // 121: tutorial.ReqAreaReward - (*ResAreaReward)(nil), // 122: tutorial.ResAreaReward - (*ReqGmCommand)(nil), // 123: tutorial.ReqGmCommand - (*Card)(nil), // 124: tutorial.Card - (*ReqCardInfo)(nil), // 125: tutorial.ReqCardInfo - (*ResCardInfo)(nil), // 126: tutorial.ResCardInfo - (*ResNotifyCardTimes)(nil), // 127: tutorial.ResNotifyCardTimes - (*ReqCardSeasonFirstReward)(nil), // 128: tutorial.ReqCardSeasonFirstReward - (*ResCardSeasonFirstReward)(nil), // 129: tutorial.ResCardSeasonFirstReward - (*ReqCardHandbookReward)(nil), // 130: tutorial.ReqCardHandbookReward - (*ResCardHandbookReward)(nil), // 131: tutorial.ResCardHandbookReward - (*ReqMasterCard)(nil), // 132: tutorial.ReqMasterCard - (*ResMasterCard)(nil), // 133: tutorial.ResMasterCard - (*ReqCardCollectReward)(nil), // 134: tutorial.ReqCardCollectReward - (*ResCardCollectReward)(nil), // 135: tutorial.ResCardCollectReward - (*ReqExStarReward)(nil), // 136: tutorial.ReqExStarReward - (*ResExStarReward)(nil), // 137: tutorial.ResExStarReward - (*ReqAllCollectReward)(nil), // 138: tutorial.ReqAllCollectReward - (*ResAllCollectReward)(nil), // 139: tutorial.ResAllCollectReward - (*ReqCardGive)(nil), // 140: tutorial.ReqCardGive - (*ResCardGive)(nil), // 141: tutorial.ResCardGive - (*ReqAgreeCardGive)(nil), // 142: tutorial.ReqAgreeCardGive - (*ResAgreeCardGive)(nil), // 143: tutorial.ResAgreeCardGive - (*ReqRefuseCardGive)(nil), // 144: tutorial.ReqRefuseCardGive - (*ResRefuseCardGive)(nil), // 145: tutorial.ResRefuseCardGive - (*ReqCardSend)(nil), // 146: tutorial.ReqCardSend - (*ResCardSend)(nil), // 147: tutorial.ResCardSend - (*ReqCardExchange)(nil), // 148: tutorial.ReqCardExchange - (*ResCardExchange)(nil), // 149: tutorial.ResCardExchange - (*ReqSelectCardExchange)(nil), // 150: tutorial.ReqSelectCardExchange - (*ResSelectCardExchange)(nil), // 151: tutorial.ResSelectCardExchange - (*ReqAgreeCardExchange)(nil), // 152: tutorial.ReqAgreeCardExchange - (*ResAgreeCardExchange)(nil), // 153: tutorial.ResAgreeCardExchange - (*ReqRefuseCardSelect)(nil), // 154: tutorial.ReqRefuseCardSelect - (*ResRefuseCardSelect)(nil), // 155: tutorial.ResRefuseCardSelect - (*ReqRefuseCardExchange)(nil), // 156: tutorial.ReqRefuseCardExchange - (*ResRefuseCardExchange)(nil), // 157: tutorial.ResRefuseCardExchange - (*ReqGetFriendCard)(nil), // 158: tutorial.ReqGetFriendCard - (*ResGetFriendCard)(nil), // 159: tutorial.ResGetFriendCard - (*ReqGetGoldCard)(nil), // 160: tutorial.ReqGetGoldCard - (*ResGetGoldCard)(nil), // 161: tutorial.ResGetGoldCard - (*ReqGuideReward)(nil), // 162: tutorial.ReqGuideReward - (*ResGuideReward)(nil), // 163: tutorial.ResGuideReward - (*ReqGuidePlayroom)(nil), // 164: tutorial.ReqGuidePlayroom - (*ResGuidePlayroom)(nil), // 165: tutorial.ResGuidePlayroom - (*ResGuildInfo)(nil), // 166: tutorial.ResGuildInfo - (*ResGuideInfo)(nil), // 167: tutorial.ResGuideInfo - (*ResItemPop)(nil), // 168: tutorial.ResItemPop - (*ItemInfo)(nil), // 169: tutorial.ItemInfo - (*CardPack)(nil), // 170: tutorial.CardPack - (*ResGuideTask)(nil), // 171: tutorial.ResGuideTask - (*GuideTask)(nil), // 172: tutorial.GuideTask - (*ReqGetGuideTaskReward)(nil), // 173: tutorial.ReqGetGuideTaskReward - (*ResGetGuideTaskReward)(nil), // 174: tutorial.ResGetGuideTaskReward - (*ReqGetGuideActiveReward)(nil), // 175: tutorial.ReqGetGuideActiveReward - (*ResGetGuideActiveReward)(nil), // 176: tutorial.ResGetGuideActiveReward - (*ResDailyTask)(nil), // 177: tutorial.ResDailyTask - (*DailyWeek)(nil), // 178: tutorial.DailyWeek - (*DailyTask)(nil), // 179: tutorial.DailyTask - (*QuestProgress)(nil), // 180: tutorial.QuestProgress - (*ReqGetDailyTaskReward)(nil), // 181: tutorial.ReqGetDailyTaskReward - (*ResGetDailyTaskReward)(nil), // 182: tutorial.ResGetDailyTaskReward - (*ReqGetDailyWeekReward)(nil), // 183: tutorial.ReqGetDailyWeekReward - (*ResGetDailyWeekReward)(nil), // 184: tutorial.ResGetDailyWeekReward - (*ReqDailyUnlock)(nil), // 185: tutorial.ReqDailyUnlock - (*ResDailyUnlock)(nil), // 186: tutorial.ResDailyUnlock - (*ResFaceInfo)(nil), // 187: tutorial.ResFaceInfo - (*FaceInfo)(nil), // 188: tutorial.FaceInfo - (*ReqSetFace)(nil), // 189: tutorial.ReqSetFace - (*ResSetFace)(nil), // 190: tutorial.ResSetFace - (*ResAvatarInfo)(nil), // 191: tutorial.ResAvatarInfo - (*AvatarInfo)(nil), // 192: tutorial.AvatarInfo - (*ReqSetAvatar)(nil), // 193: tutorial.ReqSetAvatar - (*ResSetAvatar)(nil), // 194: tutorial.ResSetAvatar - (*EmojiInfo)(nil), // 195: tutorial.EmojiInfo - (*ReqSetEmoji)(nil), // 196: tutorial.ReqSetEmoji - (*ResSetEmoji)(nil), // 197: tutorial.ResSetEmoji - (*ResSevenLogin)(nil), // 198: tutorial.ResSevenLogin - (*SevenLoginReward)(nil), // 199: tutorial.SevenLoginReward - (*ReqGetSevenLoginReward)(nil), // 200: tutorial.ReqGetSevenLoginReward - (*ResGetSevenLoginReward)(nil), // 201: tutorial.ResGetSevenLoginReward - (*ReqGetMonthLoginReward)(nil), // 202: tutorial.ReqGetMonthLoginReward - (*ResGetMonthLoginReward)(nil), // 203: tutorial.ResGetMonthLoginReward - (*ResActivity)(nil), // 204: tutorial.ResActivity - (*ActivityInfo)(nil), // 205: tutorial.ActivityInfo - (*ReqActivityReward)(nil), // 206: tutorial.ReqActivityReward - (*ResActivityReward)(nil), // 207: tutorial.ResActivityReward - (*ReqLimitEvent)(nil), // 208: tutorial.ReqLimitEvent - (*ResLimitEvent)(nil), // 209: tutorial.ResLimitEvent - (*ResLimitEventProgress)(nil), // 210: tutorial.ResLimitEventProgress - (*ReqLimitEventReward)(nil), // 211: tutorial.ReqLimitEventReward - (*ResLimitEventReward)(nil), // 212: tutorial.ResLimitEventReward - (*ReqSelectLimitEvent)(nil), // 213: tutorial.ReqSelectLimitEvent - (*ResSelectLimitEvent)(nil), // 214: tutorial.ResSelectLimitEvent - (*LimitEvent)(nil), // 215: tutorial.LimitEvent - (*LimitEventNotify)(nil), // 216: tutorial.LimitEventNotify - (*ReqLimitEventLuckyCat)(nil), // 217: tutorial.ReqLimitEventLuckyCat - (*ResLimitEventLuckyCat)(nil), // 218: tutorial.ResLimitEventLuckyCat - (*ReqLimitSenceReward)(nil), // 219: tutorial.ReqLimitSenceReward - (*ResLimitSenceReward)(nil), // 220: tutorial.ResLimitSenceReward - (*ResChessRainReward)(nil), // 221: tutorial.ResChessRainReward - (*ReqFastProduceInfo)(nil), // 222: tutorial.ReqFastProduceInfo - (*ResFastProduceInfo)(nil), // 223: tutorial.ResFastProduceInfo - (*ReqFastProduceReward)(nil), // 224: tutorial.ReqFastProduceReward - (*ResFastProduceReward)(nil), // 225: tutorial.ResFastProduceReward - (*ReqCatTrickReward)(nil), // 226: tutorial.ReqCatTrickReward - (*ResCatTrickReward)(nil), // 227: tutorial.ResCatTrickReward - (*ReqSearchPlayer)(nil), // 228: tutorial.ReqSearchPlayer - (*ResSearchPlayer)(nil), // 229: tutorial.ResSearchPlayer - (*ReqFriendPlayerSimple)(nil), // 230: tutorial.ReqFriendPlayerSimple - (*ResFriendPlayerSimple)(nil), // 231: tutorial.ResFriendPlayerSimple - (*ResPlayerSimple)(nil), // 232: tutorial.ResPlayerSimple - (*ActLog)(nil), // 233: tutorial.ActLog - (*ResPlayerRank)(nil), // 234: tutorial.ResPlayerRank - (*ResFriendLog)(nil), // 235: tutorial.ResFriendLog - (*NotifyFriendLog)(nil), // 236: tutorial.NotifyFriendLog - (*FriendBubbleInfo)(nil), // 237: tutorial.FriendBubbleInfo - (*NotifyFriendCard)(nil), // 238: tutorial.NotifyFriendCard - (*ResFriendCard)(nil), // 239: tutorial.ResFriendCard - (*ReqKv)(nil), // 240: tutorial.ReqKv - (*ResKv)(nil), // 241: tutorial.ResKv - (*ReqFriendByCode)(nil), // 242: tutorial.ReqFriendByCode - (*ResFriendByCode)(nil), // 243: tutorial.ResFriendByCode - (*ReqFriendRecommend)(nil), // 244: tutorial.ReqFriendRecommend - (*ResFriendRecommend)(nil), // 245: tutorial.ResFriendRecommend - (*ReqFriendIgnore)(nil), // 246: tutorial.ReqFriendIgnore - (*ResFriendIgnore)(nil), // 247: tutorial.ResFriendIgnore - (*ReqFriendList)(nil), // 248: tutorial.ReqFriendList - (*ResFriendList)(nil), // 249: tutorial.ResFriendList - (*ReqAddNpc)(nil), // 250: tutorial.ReqAddNpc - (*ResAddNpc)(nil), // 251: tutorial.ResAddNpc - (*ReqFriendApply)(nil), // 252: tutorial.ReqFriendApply - (*ResFriendApply)(nil), // 253: tutorial.ResFriendApply - (*ResFriendApplyInfo)(nil), // 254: tutorial.ResFriendApplyInfo - (*ReqFriendCardMsg)(nil), // 255: tutorial.ReqFriendCardMsg - (*ResFriendCardMsg)(nil), // 256: tutorial.ResFriendCardMsg - (*ReqWishApplyList)(nil), // 257: tutorial.ReqWishApplyList - (*ResWishApplyList)(nil), // 258: tutorial.ResWishApplyList - (*ReqWishApply)(nil), // 259: tutorial.ReqWishApply - (*ResWishApply)(nil), // 260: tutorial.ResWishApply - (*ReqFriendTimeLine)(nil), // 261: tutorial.ReqFriendTimeLine - (*ResFriendTimeLine)(nil), // 262: tutorial.ResFriendTimeLine - (*ResFriendReply)(nil), // 263: tutorial.ResFriendReply - (*ReqFriendReplyHandle)(nil), // 264: tutorial.ReqFriendReplyHandle - (*ResFriendReplyHandle)(nil), // 265: tutorial.ResFriendReplyHandle - (*ResFriendBubble)(nil), // 266: tutorial.ResFriendBubble - (*ReqFriendTLUpvote)(nil), // 267: tutorial.ReqFriendTLUpvote - (*ResFriendTLUpvote)(nil), // 268: tutorial.ResFriendTLUpvote - (*ReqFriendTReward)(nil), // 269: tutorial.ReqFriendTReward - (*ResFriendTReward)(nil), // 270: tutorial.ResFriendTReward - (*ResFriendApplyNotify)(nil), // 271: tutorial.ResFriendApplyNotify - (*ReqApplyFriend)(nil), // 272: tutorial.ReqApplyFriend - (*ResApplyFriend)(nil), // 273: tutorial.ResApplyFriend - (*ReqAgreeFriend)(nil), // 274: tutorial.ReqAgreeFriend - (*ResAgreeFriend)(nil), // 275: tutorial.ResAgreeFriend - (*ReqRefuseFriend)(nil), // 276: tutorial.ReqRefuseFriend - (*ResRefuseFriend)(nil), // 277: tutorial.ResRefuseFriend - (*ReqDelFriend)(nil), // 278: tutorial.ReqDelFriend - (*ResDelFriend)(nil), // 279: tutorial.ResDelFriend - (*ReqRank)(nil), // 280: tutorial.ReqRank - (*ResRank)(nil), // 281: tutorial.ResRank - (*ReqMailList)(nil), // 282: tutorial.ReqMailList - (*ResMailList)(nil), // 283: tutorial.ResMailList - (*MailInfo)(nil), // 284: tutorial.MailInfo - (*MailNotify)(nil), // 285: tutorial.MailNotify - (*ReqReadMail)(nil), // 286: tutorial.ReqReadMail - (*ResReadMail)(nil), // 287: tutorial.ResReadMail - (*ReqGetMailReward)(nil), // 288: tutorial.ReqGetMailReward - (*ResGetMailReward)(nil), // 289: tutorial.ResGetMailReward - (*ReqDeleteMail)(nil), // 290: tutorial.ReqDeleteMail - (*ResDeleteMail)(nil), // 291: tutorial.ResDeleteMail - (*ResCharge)(nil), // 292: tutorial.ResCharge - (*LogoutPetWork)(nil), // 293: tutorial.LogoutPetWork - (*WeeklyDiscountInfo)(nil), // 294: tutorial.WeeklyDiscountInfo - (*WishList)(nil), // 295: tutorial.WishList - (*ReqAddWish)(nil), // 296: tutorial.ReqAddWish - (*ResAddWish)(nil), // 297: tutorial.ResAddWish - (*ReqGetWish)(nil), // 298: tutorial.ReqGetWish - (*ResGetWish)(nil), // 299: tutorial.ResGetWish - (*ReqSendWishBeg)(nil), // 300: tutorial.ReqSendWishBeg - (*ResSendWishBeg)(nil), // 301: tutorial.ResSendWishBeg - (*ResSpecialShop)(nil), // 302: tutorial.ResSpecialShop - (*ResChessShop)(nil), // 303: tutorial.ResChessShop - (*ReqFreeShop)(nil), // 304: tutorial.ReqFreeShop - (*ResFreeShop)(nil), // 305: tutorial.ResFreeShop - (*ReqBuyChessShop)(nil), // 306: tutorial.ReqBuyChessShop - (*ResBuyChessShop)(nil), // 307: tutorial.ResBuyChessShop - (*ReqBuyChessShop2)(nil), // 308: tutorial.ReqBuyChessShop2 - (*ResBuyChessShop2)(nil), // 309: tutorial.ResBuyChessShop2 - (*ReqRefreshChessShop)(nil), // 310: tutorial.ReqRefreshChessShop - (*ResRefreshChessShop)(nil), // 311: tutorial.ResRefreshChessShop - (*ReqEndless)(nil), // 312: tutorial.ReqEndless - (*ResEndless)(nil), // 313: tutorial.ResEndless - (*ResEndlessInfo)(nil), // 314: tutorial.ResEndlessInfo - (*ReqEndlessReward)(nil), // 315: tutorial.ReqEndlessReward - (*ResEndlessReward)(nil), // 316: tutorial.ResEndlessReward - (*ResPiggyBank)(nil), // 317: tutorial.ResPiggyBank - (*ReqPiggyBankReward)(nil), // 318: tutorial.ReqPiggyBankReward - (*ResPiggyBankReward)(nil), // 319: tutorial.ResPiggyBankReward - (*ReqChargeReceive)(nil), // 320: tutorial.ReqChargeReceive - (*ResChargeReceive)(nil), // 321: tutorial.ResChargeReceive - (*ReqCreateOrderSn)(nil), // 322: tutorial.ReqCreateOrderSn - (*ResCreateOrderSn)(nil), // 323: tutorial.ResCreateOrderSn - (*ReqShippingOrder)(nil), // 324: tutorial.ReqShippingOrder - (*ResShippingOrder)(nil), // 325: tutorial.ResShippingOrder - (*ReqChampship)(nil), // 326: tutorial.ReqChampship - (*ResChampship)(nil), // 327: tutorial.ResChampship - (*ReqChampshipReward)(nil), // 328: tutorial.ReqChampshipReward - (*ResChampshipReward)(nil), // 329: tutorial.ResChampshipReward - (*ReqChampshipRankReward)(nil), // 330: tutorial.ReqChampshipRankReward - (*ResChampshipRankReward)(nil), // 331: tutorial.ResChampshipRankReward - (*ReqChampshipRank)(nil), // 332: tutorial.ReqChampshipRank - (*ResChampshipRank)(nil), // 333: tutorial.ResChampshipRank - (*ReqChampshipPreRank)(nil), // 334: tutorial.ReqChampshipPreRank - (*ResChampshipPreRank)(nil), // 335: tutorial.ResChampshipPreRank - (*ResNotifyCard)(nil), // 336: tutorial.ResNotifyCard - (*ReqSetFacebookUrl)(nil), // 337: tutorial.ReqSetFacebookUrl - (*ResSetFacebookUrl)(nil), // 338: tutorial.ResSetFacebookUrl - (*ReqInviteFriendData)(nil), // 339: tutorial.ReqInviteFriendData - (*ResInviteFriendData)(nil), // 340: tutorial.ResInviteFriendData - (*ReqSelfInvited)(nil), // 341: tutorial.ReqSelfInvited - (*ResSelfInvited)(nil), // 342: tutorial.ResSelfInvited - (*NotifyInvitedSuccess)(nil), // 343: tutorial.NotifyInvitedSuccess - (*ReqGetInviteReward)(nil), // 344: tutorial.ReqGetInviteReward - (*ResGetInviteReward)(nil), // 345: tutorial.ResGetInviteReward - (*ReqAutoAddInviteFriend)(nil), // 346: tutorial.ReqAutoAddInviteFriend - (*ResAutoAddInviteFriend)(nil), // 347: tutorial.ResAutoAddInviteFriend - (*ReqAutoAddInviteFriend2)(nil), // 348: tutorial.ReqAutoAddInviteFriend2 - (*ResAutoAddInviteFriend2)(nil), // 349: tutorial.ResAutoAddInviteFriend2 - (*ReqMining)(nil), // 350: tutorial.ReqMining - (*ResMining)(nil), // 351: tutorial.ResMining - (*ReqMiningTake)(nil), // 352: tutorial.ReqMiningTake - (*ResMiningTake)(nil), // 353: tutorial.ResMiningTake - (*ReqMiningReward)(nil), // 354: tutorial.ReqMiningReward - (*ResMiningReward)(nil), // 355: tutorial.ResMiningReward - (*ReqActPass)(nil), // 356: tutorial.ReqActPass - (*ResActPass)(nil), // 357: tutorial.ResActPass - (*ReqActPassReward)(nil), // 358: tutorial.ReqActPassReward - (*ResActPassReward)(nil), // 359: tutorial.ResActPassReward - (*ResActRed)(nil), // 360: tutorial.ResActRed - (*NotifyActRed)(nil), // 361: tutorial.NotifyActRed - (*ActivityNotify)(nil), // 362: tutorial.ActivityNotify - (*ResItem)(nil), // 363: tutorial.ResItem - (*ItemNotify)(nil), // 364: tutorial.ItemNotify - (*ReqGuessColor)(nil), // 365: tutorial.ReqGuessColor - (*ResGuessColor)(nil), // 366: tutorial.ResGuessColor - (*Opponent)(nil), // 367: tutorial.opponent - (*ReqGuessColorTake)(nil), // 368: tutorial.ReqGuessColorTake - (*GuessColorInfo)(nil), // 369: tutorial.GuessColorInfo - (*ResGuessColorTake)(nil), // 370: tutorial.ResGuessColorTake - (*ReqGuessColorReward)(nil), // 371: tutorial.ReqGuessColorReward - (*ResGuessColorReward)(nil), // 372: tutorial.ResGuessColorReward - (*ReqRace)(nil), // 373: tutorial.ReqRace - (*ResRace)(nil), // 374: tutorial.ResRace - (*Raceopponent)(nil), // 375: tutorial.raceopponent - (*ReqRaceStart)(nil), // 376: tutorial.ReqRaceStart - (*ResRaceStart)(nil), // 377: tutorial.ResRaceStart - (*ReqRaceReward)(nil), // 378: tutorial.ReqRaceReward - (*ResRaceReward)(nil), // 379: tutorial.ResRaceReward - (*ReqPlayroom)(nil), // 380: tutorial.ReqPlayroom - (*ResPlayroom)(nil), // 381: tutorial.ResPlayroom - (*NotifyPlayroomTask)(nil), // 382: tutorial.NotifyPlayroomTask - (*ReqPlayroomTask)(nil), // 383: tutorial.ReqPlayroomTask - (*ResPlayroomTask)(nil), // 384: tutorial.ResPlayroomTask - (*ReqPlayroomTaskReward)(nil), // 385: tutorial.ReqPlayroomTaskReward - (*ResPlayroomTaskReward)(nil), // 386: tutorial.ResPlayroomTaskReward - (*ReqPlayroomUnlock)(nil), // 387: tutorial.ReqPlayroomUnlock - (*ResPlayroomUnlock)(nil), // 388: tutorial.ResPlayroomUnlock - (*ReqPlayroomUpvote)(nil), // 389: tutorial.ReqPlayroomUpvote - (*ResPlayroomUpvote)(nil), // 390: tutorial.ResPlayroomUpvote - (*PlayroomDress)(nil), // 391: tutorial.PlayroomDress - (*PlayroomDressInfo)(nil), // 392: tutorial.PlayroomDressInfo - (*PlayroomAirInfo)(nil), // 393: tutorial.PlayroomAirInfo - (*PlayroomCollectInfo)(nil), // 394: tutorial.PlayroomCollectInfo - (*ReqPlayroomDressSet)(nil), // 395: tutorial.ReqPlayroomDressSet - (*ResPlayroomDressSet)(nil), // 396: tutorial.ResPlayroomDressSet - (*ReqPlayroomPetAirSet)(nil), // 397: tutorial.ReqPlayroomPetAirSet - (*ResPlayroomPetAirSet)(nil), // 398: tutorial.ResPlayroomPetAirSet - (*ReqPlayroomWrokOutline)(nil), // 399: tutorial.ReqPlayroomWrokOutline - (*ResPlayroomWrokOutline)(nil), // 400: tutorial.ResPlayroomWrokOutline - (*NofiPlayroomStatus)(nil), // 401: tutorial.NofiPlayroomStatus - (*NotifyPlayroomWork)(nil), // 402: tutorial.NotifyPlayroomWork - (*NotifyPlayroomLose)(nil), // 403: tutorial.NotifyPlayroomLose - (*ChipInfo)(nil), // 404: tutorial.ChipInfo - (*NotifyPlayroomMood)(nil), // 405: tutorial.NotifyPlayroomMood - (*AdItem)(nil), // 406: tutorial.AdItem - (*NotifyPlayroomKiss)(nil), // 407: tutorial.NotifyPlayroomKiss - (*FriendRoom)(nil), // 408: tutorial.FriendRoom - (*RoomOpponent)(nil), // 409: tutorial.RoomOpponent - (*ReqPlayroomInfo)(nil), // 410: tutorial.ReqPlayroomInfo - (*ResPlayroomInfo)(nil), // 411: tutorial.ResPlayroomInfo - (*ReqPlayroomFlip)(nil), // 412: tutorial.ReqPlayroomFlip - (*ResPlayroomFlip)(nil), // 413: tutorial.ResPlayroomFlip - (*ReqPlayroomGuide)(nil), // 414: tutorial.ReqPlayroomGuide - (*ResPlayroomGuide)(nil), // 415: tutorial.ResPlayroomGuide - (*ReqPlayroomFlipReward)(nil), // 416: tutorial.ReqPlayroomFlipReward - (*ResPlayroomFlipReward)(nil), // 417: tutorial.ResPlayroomFlipReward - (*ReqPlayroomGame)(nil), // 418: tutorial.ReqPlayroomGame - (*ResPlayroomGame)(nil), // 419: tutorial.ResPlayroomGame - (*ReqPlayroomGameShowReward)(nil), // 420: tutorial.ReqPlayroomGameShowReward - (*ResPlayroomGameShowReward)(nil), // 421: tutorial.ResPlayroomGameShowReward - (*ReqPlayroomInteract)(nil), // 422: tutorial.ReqPlayroomInteract - (*ResPlayroomInteract)(nil), // 423: tutorial.ResPlayroomInteract - (*ReqPlayroomSetRoom)(nil), // 424: tutorial.ReqPlayroomSetRoom - (*ResPlayroomSetRoom)(nil), // 425: tutorial.ResPlayroomSetRoom - (*ReqPlayroomSelectReward)(nil), // 426: tutorial.ReqPlayroomSelectReward - (*ResPlayroomSelectReward)(nil), // 427: tutorial.ResPlayroomSelectReward - (*ReqPlayroomLose)(nil), // 428: tutorial.ReqPlayroomLose - (*ResPlayroomLose)(nil), // 429: tutorial.ResPlayroomLose - (*ReqPlayroomWork)(nil), // 430: tutorial.ReqPlayroomWork - (*ResPlayroomWork)(nil), // 431: tutorial.ResPlayroomWork - (*ReqPlayroomRest)(nil), // 432: tutorial.ReqPlayroomRest - (*ResPlayroomRest)(nil), // 433: tutorial.ResPlayroomRest - (*ReqPlayroomDraw)(nil), // 434: tutorial.ReqPlayroomDraw - (*ResPlayroomDraw)(nil), // 435: tutorial.ResPlayroomDraw - (*ReqPlayroomChip)(nil), // 436: tutorial.ReqPlayroomChip - (*ResPlayroomChip)(nil), // 437: tutorial.ResPlayroomChip - (*ReqPlayroomBuyItem)(nil), // 438: tutorial.ReqPlayroomBuyItem - (*ResPlayroomBuyItem)(nil), // 439: tutorial.ResPlayroomBuyItem - (*ReqPlayroomShop)(nil), // 440: tutorial.ReqPlayroomShop - (*ResPlayroomShop)(nil), // 441: tutorial.ResPlayroomShop - (*ReqFriendTreasure)(nil), // 442: tutorial.ReqFriendTreasure - (*ResFriendTreasure)(nil), // 443: tutorial.ResFriendTreasure - (*TreasureInfo)(nil), // 444: tutorial.TreasureInfo - (*ReqFriendTreasureStart)(nil), // 445: tutorial.ReqFriendTreasureStart - (*ResFriendTreasureStart)(nil), // 446: tutorial.ResFriendTreasureStart - (*ReqFriendTreasureEnd)(nil), // 447: tutorial.ReqFriendTreasureEnd - (*ResFriendTreasureEnd)(nil), // 448: tutorial.ResFriendTreasureEnd - (*ReqFriendTreasureFilp)(nil), // 449: tutorial.ReqFriendTreasureFilp - (*ResFriendTreasureFilp)(nil), // 450: tutorial.ResFriendTreasureFilp - (*ResFriendTreasureStar)(nil), // 451: tutorial.ResFriendTreasureStar - (*ReqKafkaLog)(nil), // 452: tutorial.ReqKafkaLog - (*ReqCollectInfo)(nil), // 453: tutorial.ReqCollectInfo - (*ResCollectInfo)(nil), // 454: tutorial.ResCollectInfo - (*CollectItem)(nil), // 455: tutorial.CollectItem - (*ReqCollect)(nil), // 456: tutorial.ReqCollect - (*ResCollect)(nil), // 457: tutorial.ResCollect - (*ReqCatnip)(nil), // 458: tutorial.ReqCatnip - (*ResCatnip)(nil), // 459: tutorial.ResCatnip - (*CatnipGame)(nil), // 460: tutorial.CatnipGame - (*CatnipInvite)(nil), // 461: tutorial.CatnipInvite - (*ReqCatnipInvite)(nil), // 462: tutorial.ReqCatnipInvite - (*ResCatnipInvite)(nil), // 463: tutorial.ResCatnipInvite - (*ReqCatnipAgree)(nil), // 464: tutorial.ReqCatnipAgree - (*ResCatnipAgree)(nil), // 465: tutorial.ResCatnipAgree - (*ReqCatnipRefuse)(nil), // 466: tutorial.ReqCatnipRefuse - (*ResCatnipRefuse)(nil), // 467: tutorial.ResCatnipRefuse - (*ReqCatnipMultiply)(nil), // 468: tutorial.ReqCatnipMultiply - (*ResCatnipMultiply)(nil), // 469: tutorial.ResCatnipMultiply - (*ReqCatnipPlay)(nil), // 470: tutorial.ReqCatnipPlay - (*ResCatnipPlay)(nil), // 471: tutorial.ResCatnipPlay - (*ReqCatnipReward)(nil), // 472: tutorial.ReqCatnipReward - (*ResCatnipReward)(nil), // 473: tutorial.ResCatnipReward - (*ReqCatnipGrandReward)(nil), // 474: tutorial.ReqCatnipGrandReward - (*ResCatnipGrandReward)(nil), // 475: tutorial.ResCatnipGrandReward - (*ReqCatnipEmoji)(nil), // 476: tutorial.ReqCatnipEmoji - (*ResCatnipEmoji)(nil), // 477: tutorial.ResCatnipEmoji - (*AdminReq)(nil), // 478: tutorial.AdminReq - (*AdminRes)(nil), // 479: tutorial.AdminRes - (*ReqAdminInfo)(nil), // 480: tutorial.ReqAdminInfo - (*ReqReloadServerMail)(nil), // 481: tutorial.ReqReloadServerMail - (*ReqServerInfo)(nil), // 482: tutorial.ReqServerInfo - (*ReqReload)(nil), // 483: tutorial.ReqReload - (*ReqAdminGm)(nil), // 484: tutorial.ReqAdminGm - (*ReqAdminBan)(nil), // 485: tutorial.ReqAdminBan - (*ReqAdminShipping)(nil), // 486: tutorial.ReqAdminShipping - nil, // 487: tutorial.ResChessColorData.MChessColorDataEntry - nil, // 488: tutorial.UpdateBaseItemInfo.MUpdateItemEntry - nil, // 489: tutorial.ResPlayerChessData.MChessDataEntry - nil, // 490: tutorial.ReqPutPartInBag.MChessDataEntry - nil, // 491: tutorial.UpdatePlayerChessData.MChessDataEntry - nil, // 492: tutorial.ReqSeparateChess.MChessDataEntry - nil, // 493: tutorial.ReqUpgradeChess.MChessDataEntry - nil, // 494: tutorial.ReqGetChessFromBuff.MChessDataEntry - nil, // 495: tutorial.ReqChessEx.MChessDataEntry - nil, // 496: tutorial.ReqSourceChest.MChessDataEntry - nil, // 497: tutorial.ReqPlayroomOutline.MChessDataEntry - nil, // 498: tutorial.ReqPutChessInBag.MChessDataEntry - nil, // 499: tutorial.ReqTakeChessOutBag.MChessDataEntry - nil, // 500: tutorial.ResPlayerBriefProfileData.SetEmojiEntry - nil, // 501: tutorial.UserInfo.SetEmojiEntry - nil, // 502: tutorial.ReqRewardOrder.MChessDataEntry - nil, // 503: tutorial.ResCardInfo.AllCardEntry - nil, // 504: tutorial.ResCardInfo.HandbookEntry - nil, // 505: tutorial.ResGuildInfo.RewardEntry - nil, // 506: tutorial.ResGuideInfo.RewardEntry - nil, // 507: tutorial.ResGuideTask.TaskEntry - nil, // 508: tutorial.ResDailyTask.WeekRewardEntry - nil, // 509: tutorial.ResDailyTask.DailyTaskEntry - nil, // 510: tutorial.ResLimitEvent.LimitEventListEntry - nil, // 511: tutorial.ResLimitEventProgress.ProgressRewardEntry - nil, // 512: tutorial.LimitEvent.ParamEntry - nil, // 513: tutorial.ReqLimitEventLuckyCat.MChessDataEntry - nil, // 514: tutorial.ResFriendPlayerSimple.EmojiEntry - nil, // 515: tutorial.ResFriendPlayerSimple.PlayroomEntry - nil, // 516: tutorial.ResFriendPlayerSimple.DressSetEntry - nil, // 517: tutorial.ResFriendPlayerSimple.PhysiologyEntry - nil, // 518: tutorial.ResPlayerSimple.EmojiEntry - nil, // 519: tutorial.ResKv.KvEntry - nil, // 520: tutorial.ResRank.RankListEntry - nil, // 521: tutorial.ResMailList.MailListEntry - nil, // 522: tutorial.ResCharge.SpecialShopEntry - nil, // 523: tutorial.ResCharge.ChessShopEntry - nil, // 524: tutorial.ResCharge.GiftEntry - nil, // 525: tutorial.ResCharge.WeeklyDiscountEntry - nil, // 526: tutorial.ReqBuyChessShop2.MChessDataEntry - nil, // 527: tutorial.ResEndless.EndlessListEntry - nil, // 528: tutorial.ResChampshipRank.RankListEntry - nil, // 529: tutorial.ResChampshipPreRank.RankListEntry - nil, // 530: tutorial.ResNotifyCard.CardEntry - nil, // 531: tutorial.ResNotifyCard.MasterEntry - nil, // 532: tutorial.ResNotifyCard.HandbookEntry - nil, // 533: tutorial.ResMining.MapEntry - nil, // 534: tutorial.ReqMiningTake.MapEntry - nil, // 535: tutorial.ResActRed.RedEntry - nil, // 536: tutorial.ResItem.ItemEntry - nil, // 537: tutorial.ItemNotify.ItemEntry - nil, // 538: tutorial.ResGuessColor.OMapEntry - nil, // 539: tutorial.ReqGuessColorTake.OMapEntry - nil, // 540: tutorial.GuessColorInfo.MapEntry - nil, // 541: tutorial.ResPlayroom.PlayroomEntry - nil, // 542: tutorial.ResPlayroom.MoodEntry - nil, // 543: tutorial.ResPlayroom.PhysiologyEntry - nil, // 544: tutorial.ResPlayroom.DressEntry - nil, // 545: tutorial.ResPlayroom.DressSetEntry - nil, // 546: tutorial.ResPlayroom.WeeklyDiscountEntry - nil, // 547: tutorial.ReqPlayroomDressSet.DressSetEntry - nil, // 548: tutorial.NotifyPlayroomMood.MoodEntry - nil, // 549: tutorial.NotifyPlayroomMood.PhysiologyEntry - nil, // 550: tutorial.ResPlayroomInfo.PlayroomEntry - nil, // 551: tutorial.ResPlayroomInfo.ItemsEntry - nil, // 552: tutorial.ResPlayroomInfo.FlipEntry - nil, // 553: tutorial.ResPlayroomInfo.EmojiEntry - nil, // 554: tutorial.ResPlayroomInfo.DressSetEntry - nil, // 555: tutorial.ResPlayroomGame.ItemsEntry - nil, // 556: tutorial.ReqPlayroomSetRoom.PlayroomEntry + (FRIEND_REPLY_HANDLE_ERR_TYPE)(0), // 13: tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE + (*ClientReq)(nil), // 14: tutorial.ClientReq + (*ReqOfflineReconnect)(nil), // 15: tutorial.ReqOfflineReconnect + (*ResOfflineReconnect)(nil), // 16: tutorial.ResOfflineReconnect + (*ReqBindFacebookAccount)(nil), // 17: tutorial.ReqBindFacebookAccount + (*ResBindFacebookAccount)(nil), // 18: tutorial.ResBindFacebookAccount + (*ReqOnlyBindFacebook)(nil), // 19: tutorial.ReqOnlyBindFacebook + (*ResOnlyBindFacebook)(nil), // 20: tutorial.ResOnlyBindFacebook + (*ReqUnBindFacebook)(nil), // 21: tutorial.ReqUnBindFacebook + (*ResUnBindFacebook)(nil), // 22: tutorial.ResUnBindFacebook + (*ReqSynGameData)(nil), // 23: tutorial.ReqSynGameData + (*ResSynGameData)(nil), // 24: tutorial.ResSynGameData + (*ForceKickOut)(nil), // 25: tutorial.ForceKickOut + (*ResServerVersion)(nil), // 26: tutorial.ResServerVersion + (*ResChessColorData)(nil), // 27: tutorial.ResChessColorData + (*ClientRes)(nil), // 28: tutorial.ClientRes + (*ReqRegisterAccount)(nil), // 29: tutorial.ReqRegisterAccount + (*ResRegisterAccount)(nil), // 30: tutorial.ResRegisterAccount + (*ReqLogin)(nil), // 31: tutorial.ReqLogin + (*ReqLoginCode)(nil), // 32: tutorial.ReqLoginCode + (*ResLoginCode)(nil), // 33: tutorial.ResLoginCode + (*ReqId2Verify)(nil), // 34: tutorial.ReqId2Verify + (*ResId2Verify)(nil), // 35: tutorial.ResId2Verify + (*ResLogin)(nil), // 36: tutorial.ResLogin + (*ReqChangePassword)(nil), // 37: tutorial.ReqChangePassword + (*ResChangePassword)(nil), // 38: tutorial.ResChangePassword + (*ReqPlayerBaseInfo)(nil), // 39: tutorial.ReqPlayerBaseInfo + (*ResPlayerBaseInfo)(nil), // 40: tutorial.ResPlayerBaseInfo + (*ReqPlayerAsset)(nil), // 41: tutorial.ReqPlayerAsset + (*ResPlayerAsset)(nil), // 42: tutorial.ResPlayerAsset + (*UpdateBaseItemInfo)(nil), // 43: tutorial.UpdateBaseItemInfo + (*NotifyRenewBuyEnergyCnt)(nil), // 44: tutorial.NotifyRenewBuyEnergyCnt + (*ReqRemoveAd)(nil), // 45: tutorial.ReqRemoveAd + (*ResRemoveAd)(nil), // 46: tutorial.ResRemoveAd + (*NotifyAddEnergy)(nil), // 47: tutorial.NotifyAddEnergy + (*ReqServerTime)(nil), // 48: tutorial.ReqServerTime + (*ResServerTime)(nil), // 49: tutorial.ResServerTime + (*ReqPlayerChessData)(nil), // 50: tutorial.ReqPlayerChessData + (*ResPlayerChessData)(nil), // 51: tutorial.ResPlayerChessData + (*ResPlayerChessInfo)(nil), // 52: tutorial.ResPlayerChessInfo + (*ReqGetChessRetireReward)(nil), // 53: tutorial.ReqGetChessRetireReward + (*ResGetChessRetireReward)(nil), // 54: tutorial.ResGetChessRetireReward + (*PartBag)(nil), // 55: tutorial.PartBag + (*PartBagGrid)(nil), // 56: tutorial.PartBagGrid + (*ReqPutPartInBag)(nil), // 57: tutorial.ReqPutPartInBag + (*ResPutPartInBag)(nil), // 58: tutorial.ResPutPartInBag + (*ChessHandle)(nil), // 59: tutorial.ChessHandle + (*UpdatePlayerChessData)(nil), // 60: tutorial.UpdatePlayerChessData + (*ResUpdatePlayerChessData)(nil), // 61: tutorial.ResUpdatePlayerChessData + (*ReqSeparateChess)(nil), // 62: tutorial.ReqSeparateChess + (*ResSeparateChess)(nil), // 63: tutorial.ResSeparateChess + (*ReqUpgradeChess)(nil), // 64: tutorial.ReqUpgradeChess + (*ResUpgradeChess)(nil), // 65: tutorial.ResUpgradeChess + (*ReqGetChessFromBuff)(nil), // 66: tutorial.ReqGetChessFromBuff + (*ResGetChessFromBuff)(nil), // 67: tutorial.ResGetChessFromBuff + (*ReqChessEx)(nil), // 68: tutorial.ReqChessEx + (*ResChessEx)(nil), // 69: tutorial.ResChessEx + (*ReqSourceChest)(nil), // 70: tutorial.ReqSourceChest + (*ResSourceChest)(nil), // 71: tutorial.ResSourceChest + (*ReqPlayroomOutline)(nil), // 72: tutorial.ReqPlayroomOutline + (*ResPlayroomOutline)(nil), // 73: tutorial.ResPlayroomOutline + (*ChessBag)(nil), // 74: tutorial.ChessBag + (*ChessBagGrid)(nil), // 75: tutorial.ChessBagGrid + (*ReqPutChessInBag)(nil), // 76: tutorial.ReqPutChessInBag + (*ResPutChessInBag)(nil), // 77: tutorial.ResPutChessInBag + (*ReqTakeChessOutBag)(nil), // 78: tutorial.ReqTakeChessOutBag + (*ResTakeChessOutBag)(nil), // 79: tutorial.ResTakeChessOutBag + (*ReqBuyChessBagGrid)(nil), // 80: tutorial.ReqBuyChessBagGrid + (*ResBuyChessBagGrid)(nil), // 81: tutorial.ResBuyChessBagGrid + (*ReqPlayerProfileData)(nil), // 82: tutorial.ReqPlayerProfileData + (*ResPlayerProfileData)(nil), // 83: tutorial.ResPlayerProfileData + (*ReqPlayerBriefProfileData)(nil), // 84: tutorial.ReqPlayerBriefProfileData + (*ResPlayerBriefProfileData)(nil), // 85: tutorial.ResPlayerBriefProfileData + (*ReqSetEnergyMul)(nil), // 86: tutorial.ReqSetEnergyMul + (*ResSetEnergyMul)(nil), // 87: tutorial.ResSetEnergyMul + (*ReqLang)(nil), // 88: tutorial.ReqLang + (*ResLang)(nil), // 89: tutorial.ResLang + (*BaseInfo)(nil), // 90: tutorial.BaseInfo + (*ReqUserInfo)(nil), // 91: tutorial.ReqUserInfo + (*UserInfo)(nil), // 92: tutorial.UserInfo + (*ReqSetName)(nil), // 93: tutorial.ReqSetName + (*ResSetName)(nil), // 94: tutorial.ResSetName + (*ReqSetPetName)(nil), // 95: tutorial.ReqSetPetName + (*ResSetPetName)(nil), // 96: tutorial.ResSetPetName + (*ReqBuyEnergy)(nil), // 97: tutorial.ReqBuyEnergy + (*ResBuyEnergy)(nil), // 98: tutorial.ResBuyEnergy + (*ReqGetEnergyByAD)(nil), // 99: tutorial.ReqGetEnergyByAD + (*ResGetEnergyByAD)(nil), // 100: tutorial.ResGetEnergyByAD + (*ReqGetHandbookReward)(nil), // 101: tutorial.ReqGetHandbookReward + (*ResGetHandbookReward)(nil), // 102: tutorial.ResGetHandbookReward + (*HandbookInfo)(nil), // 103: tutorial.HandbookInfo + (*Handbook)(nil), // 104: tutorial.Handbook + (*RegHandbookAllReward)(nil), // 105: tutorial.RegHandbookAllReward + (*ResHandbookAllReward)(nil), // 106: tutorial.ResHandbookAllReward + (*ReqRewardOrder)(nil), // 107: tutorial.ReqRewardOrder + (*ResRewardOrder)(nil), // 108: tutorial.ResRewardOrder + (*ReqCreatePetOrder)(nil), // 109: tutorial.ReqCreatePetOrder + (*ReqDelOrder)(nil), // 110: tutorial.ReqDelOrder + (*ResDelOrder)(nil), // 111: tutorial.ResDelOrder + (*ReqSellChessNum)(nil), // 112: tutorial.ReqSellChessNum + (*ResSellChessNum)(nil), // 113: tutorial.ResSellChessNum + (*Order)(nil), // 114: tutorial.Order + (*ResOrderList)(nil), // 115: tutorial.ResOrderList + (*ResDecorateInfo)(nil), // 116: tutorial.ResDecorateInfo + (*DecoratePart)(nil), // 117: tutorial.DecoratePart + (*ReqDecorate)(nil), // 118: tutorial.ReqDecorate + (*ResDecorate)(nil), // 119: tutorial.ResDecorate + (*ReqDecorateAll)(nil), // 120: tutorial.ReqDecorateAll + (*ResDecorateAll)(nil), // 121: tutorial.ResDecorateAll + (*ReqAreaReward)(nil), // 122: tutorial.ReqAreaReward + (*ResAreaReward)(nil), // 123: tutorial.ResAreaReward + (*ReqGmCommand)(nil), // 124: tutorial.ReqGmCommand + (*Card)(nil), // 125: tutorial.Card + (*ReqCardInfo)(nil), // 126: tutorial.ReqCardInfo + (*ResCardInfo)(nil), // 127: tutorial.ResCardInfo + (*ResNotifyCardTimes)(nil), // 128: tutorial.ResNotifyCardTimes + (*ReqCardSeasonFirstReward)(nil), // 129: tutorial.ReqCardSeasonFirstReward + (*ResCardSeasonFirstReward)(nil), // 130: tutorial.ResCardSeasonFirstReward + (*ReqCardHandbookReward)(nil), // 131: tutorial.ReqCardHandbookReward + (*ResCardHandbookReward)(nil), // 132: tutorial.ResCardHandbookReward + (*ReqMasterCard)(nil), // 133: tutorial.ReqMasterCard + (*ResMasterCard)(nil), // 134: tutorial.ResMasterCard + (*ReqCardCollectReward)(nil), // 135: tutorial.ReqCardCollectReward + (*ResCardCollectReward)(nil), // 136: tutorial.ResCardCollectReward + (*ReqExStarReward)(nil), // 137: tutorial.ReqExStarReward + (*ResExStarReward)(nil), // 138: tutorial.ResExStarReward + (*ReqAllCollectReward)(nil), // 139: tutorial.ReqAllCollectReward + (*ResAllCollectReward)(nil), // 140: tutorial.ResAllCollectReward + (*ReqCardGive)(nil), // 141: tutorial.ReqCardGive + (*ResCardGive)(nil), // 142: tutorial.ResCardGive + (*ReqAgreeCardGive)(nil), // 143: tutorial.ReqAgreeCardGive + (*ResAgreeCardGive)(nil), // 144: tutorial.ResAgreeCardGive + (*ReqRefuseCardGive)(nil), // 145: tutorial.ReqRefuseCardGive + (*ResRefuseCardGive)(nil), // 146: tutorial.ResRefuseCardGive + (*ReqCardSend)(nil), // 147: tutorial.ReqCardSend + (*ResCardSend)(nil), // 148: tutorial.ResCardSend + (*ReqCardExchange)(nil), // 149: tutorial.ReqCardExchange + (*ResCardExchange)(nil), // 150: tutorial.ResCardExchange + (*ReqSelectCardExchange)(nil), // 151: tutorial.ReqSelectCardExchange + (*ResSelectCardExchange)(nil), // 152: tutorial.ResSelectCardExchange + (*ReqAgreeCardExchange)(nil), // 153: tutorial.ReqAgreeCardExchange + (*ResAgreeCardExchange)(nil), // 154: tutorial.ResAgreeCardExchange + (*ReqRefuseCardSelect)(nil), // 155: tutorial.ReqRefuseCardSelect + (*ResRefuseCardSelect)(nil), // 156: tutorial.ResRefuseCardSelect + (*ReqRefuseCardExchange)(nil), // 157: tutorial.ReqRefuseCardExchange + (*ResRefuseCardExchange)(nil), // 158: tutorial.ResRefuseCardExchange + (*ReqGetFriendCard)(nil), // 159: tutorial.ReqGetFriendCard + (*ResGetFriendCard)(nil), // 160: tutorial.ResGetFriendCard + (*ReqGetGoldCard)(nil), // 161: tutorial.ReqGetGoldCard + (*ResGetGoldCard)(nil), // 162: tutorial.ResGetGoldCard + (*ReqGuideReward)(nil), // 163: tutorial.ReqGuideReward + (*ResGuideReward)(nil), // 164: tutorial.ResGuideReward + (*ReqGuidePlayroom)(nil), // 165: tutorial.ReqGuidePlayroom + (*ResGuidePlayroom)(nil), // 166: tutorial.ResGuidePlayroom + (*ResGuildInfo)(nil), // 167: tutorial.ResGuildInfo + (*ResGuideInfo)(nil), // 168: tutorial.ResGuideInfo + (*ResItemPop)(nil), // 169: tutorial.ResItemPop + (*ItemInfo)(nil), // 170: tutorial.ItemInfo + (*CardPack)(nil), // 171: tutorial.CardPack + (*ResGuideTask)(nil), // 172: tutorial.ResGuideTask + (*GuideTask)(nil), // 173: tutorial.GuideTask + (*ReqGetGuideTaskReward)(nil), // 174: tutorial.ReqGetGuideTaskReward + (*ResGetGuideTaskReward)(nil), // 175: tutorial.ResGetGuideTaskReward + (*ReqGetGuideActiveReward)(nil), // 176: tutorial.ReqGetGuideActiveReward + (*ResGetGuideActiveReward)(nil), // 177: tutorial.ResGetGuideActiveReward + (*ResDailyTask)(nil), // 178: tutorial.ResDailyTask + (*DailyWeek)(nil), // 179: tutorial.DailyWeek + (*DailyTask)(nil), // 180: tutorial.DailyTask + (*QuestProgress)(nil), // 181: tutorial.QuestProgress + (*ReqGetDailyTaskReward)(nil), // 182: tutorial.ReqGetDailyTaskReward + (*ResGetDailyTaskReward)(nil), // 183: tutorial.ResGetDailyTaskReward + (*ReqGetDailyWeekReward)(nil), // 184: tutorial.ReqGetDailyWeekReward + (*ResGetDailyWeekReward)(nil), // 185: tutorial.ResGetDailyWeekReward + (*ReqDailyUnlock)(nil), // 186: tutorial.ReqDailyUnlock + (*ResDailyUnlock)(nil), // 187: tutorial.ResDailyUnlock + (*ResFaceInfo)(nil), // 188: tutorial.ResFaceInfo + (*FaceInfo)(nil), // 189: tutorial.FaceInfo + (*ReqSetFace)(nil), // 190: tutorial.ReqSetFace + (*ResSetFace)(nil), // 191: tutorial.ResSetFace + (*ResAvatarInfo)(nil), // 192: tutorial.ResAvatarInfo + (*AvatarInfo)(nil), // 193: tutorial.AvatarInfo + (*ReqSetAvatar)(nil), // 194: tutorial.ReqSetAvatar + (*ResSetAvatar)(nil), // 195: tutorial.ResSetAvatar + (*EmojiInfo)(nil), // 196: tutorial.EmojiInfo + (*ReqSetEmoji)(nil), // 197: tutorial.ReqSetEmoji + (*ResSetEmoji)(nil), // 198: tutorial.ResSetEmoji + (*ResSevenLogin)(nil), // 199: tutorial.ResSevenLogin + (*SevenLoginReward)(nil), // 200: tutorial.SevenLoginReward + (*ReqGetSevenLoginReward)(nil), // 201: tutorial.ReqGetSevenLoginReward + (*ResGetSevenLoginReward)(nil), // 202: tutorial.ResGetSevenLoginReward + (*ReqGetMonthLoginReward)(nil), // 203: tutorial.ReqGetMonthLoginReward + (*ResGetMonthLoginReward)(nil), // 204: tutorial.ResGetMonthLoginReward + (*ResActivity)(nil), // 205: tutorial.ResActivity + (*ActivityInfo)(nil), // 206: tutorial.ActivityInfo + (*ReqActivityReward)(nil), // 207: tutorial.ReqActivityReward + (*ResActivityReward)(nil), // 208: tutorial.ResActivityReward + (*ReqLimitEvent)(nil), // 209: tutorial.ReqLimitEvent + (*ResLimitEvent)(nil), // 210: tutorial.ResLimitEvent + (*ResLimitEventProgress)(nil), // 211: tutorial.ResLimitEventProgress + (*ReqLimitEventReward)(nil), // 212: tutorial.ReqLimitEventReward + (*ResLimitEventReward)(nil), // 213: tutorial.ResLimitEventReward + (*ReqSelectLimitEvent)(nil), // 214: tutorial.ReqSelectLimitEvent + (*ResSelectLimitEvent)(nil), // 215: tutorial.ResSelectLimitEvent + (*LimitEvent)(nil), // 216: tutorial.LimitEvent + (*LimitEventNotify)(nil), // 217: tutorial.LimitEventNotify + (*ReqLimitEventLuckyCat)(nil), // 218: tutorial.ReqLimitEventLuckyCat + (*ResLimitEventLuckyCat)(nil), // 219: tutorial.ResLimitEventLuckyCat + (*ReqLimitSenceReward)(nil), // 220: tutorial.ReqLimitSenceReward + (*ResLimitSenceReward)(nil), // 221: tutorial.ResLimitSenceReward + (*ResChessRainReward)(nil), // 222: tutorial.ResChessRainReward + (*ReqFastProduceInfo)(nil), // 223: tutorial.ReqFastProduceInfo + (*ResFastProduceInfo)(nil), // 224: tutorial.ResFastProduceInfo + (*ReqFastProduceReward)(nil), // 225: tutorial.ReqFastProduceReward + (*ResFastProduceReward)(nil), // 226: tutorial.ResFastProduceReward + (*ReqCatTrickReward)(nil), // 227: tutorial.ReqCatTrickReward + (*ResCatTrickReward)(nil), // 228: tutorial.ResCatTrickReward + (*ReqSearchPlayer)(nil), // 229: tutorial.ReqSearchPlayer + (*ResSearchPlayer)(nil), // 230: tutorial.ResSearchPlayer + (*ReqFriendPlayerSimple)(nil), // 231: tutorial.ReqFriendPlayerSimple + (*ResFriendPlayerSimple)(nil), // 232: tutorial.ResFriendPlayerSimple + (*ResPlayerSimple)(nil), // 233: tutorial.ResPlayerSimple + (*ActLog)(nil), // 234: tutorial.ActLog + (*ResPlayerRank)(nil), // 235: tutorial.ResPlayerRank + (*ResFriendLog)(nil), // 236: tutorial.ResFriendLog + (*NotifyFriendLog)(nil), // 237: tutorial.NotifyFriendLog + (*FriendBubbleInfo)(nil), // 238: tutorial.FriendBubbleInfo + (*NotifyFriendCard)(nil), // 239: tutorial.NotifyFriendCard + (*ResFriendCard)(nil), // 240: tutorial.ResFriendCard + (*ReqKv)(nil), // 241: tutorial.ReqKv + (*ResKv)(nil), // 242: tutorial.ResKv + (*ReqFriendByCode)(nil), // 243: tutorial.ReqFriendByCode + (*ResFriendByCode)(nil), // 244: tutorial.ResFriendByCode + (*ReqFriendRecommend)(nil), // 245: tutorial.ReqFriendRecommend + (*ResFriendRecommend)(nil), // 246: tutorial.ResFriendRecommend + (*ReqFriendIgnore)(nil), // 247: tutorial.ReqFriendIgnore + (*ResFriendIgnore)(nil), // 248: tutorial.ResFriendIgnore + (*ReqFriendList)(nil), // 249: tutorial.ReqFriendList + (*ResFriendList)(nil), // 250: tutorial.ResFriendList + (*ReqAddNpc)(nil), // 251: tutorial.ReqAddNpc + (*ResAddNpc)(nil), // 252: tutorial.ResAddNpc + (*ReqFriendApply)(nil), // 253: tutorial.ReqFriendApply + (*ResFriendApply)(nil), // 254: tutorial.ResFriendApply + (*ResFriendApplyInfo)(nil), // 255: tutorial.ResFriendApplyInfo + (*ReqFriendCardMsg)(nil), // 256: tutorial.ReqFriendCardMsg + (*ResFriendCardMsg)(nil), // 257: tutorial.ResFriendCardMsg + (*ReqWishApplyList)(nil), // 258: tutorial.ReqWishApplyList + (*ResWishApplyList)(nil), // 259: tutorial.ResWishApplyList + (*ReqWishApply)(nil), // 260: tutorial.ReqWishApply + (*ResWishApply)(nil), // 261: tutorial.ResWishApply + (*ReqFriendTimeLine)(nil), // 262: tutorial.ReqFriendTimeLine + (*ResFriendTimeLine)(nil), // 263: tutorial.ResFriendTimeLine + (*ResFriendReply)(nil), // 264: tutorial.ResFriendReply + (*ReqFriendReplyHandle)(nil), // 265: tutorial.ReqFriendReplyHandle + (*ResFriendReplyHandle)(nil), // 266: tutorial.ResFriendReplyHandle + (*ResFriendBubble)(nil), // 267: tutorial.ResFriendBubble + (*ReqFriendTLUpvote)(nil), // 268: tutorial.ReqFriendTLUpvote + (*ResFriendTLUpvote)(nil), // 269: tutorial.ResFriendTLUpvote + (*ReqFriendTReward)(nil), // 270: tutorial.ReqFriendTReward + (*ResFriendTReward)(nil), // 271: tutorial.ResFriendTReward + (*ResFriendApplyNotify)(nil), // 272: tutorial.ResFriendApplyNotify + (*ResFriendReplyNotify)(nil), // 273: tutorial.ResFriendReplyNotify + (*ReqApplyFriend)(nil), // 274: tutorial.ReqApplyFriend + (*ResApplyFriend)(nil), // 275: tutorial.ResApplyFriend + (*ReqAgreeFriend)(nil), // 276: tutorial.ReqAgreeFriend + (*ResAgreeFriend)(nil), // 277: tutorial.ResAgreeFriend + (*ReqRefuseFriend)(nil), // 278: tutorial.ReqRefuseFriend + (*ResRefuseFriend)(nil), // 279: tutorial.ResRefuseFriend + (*ReqDelFriend)(nil), // 280: tutorial.ReqDelFriend + (*ResDelFriend)(nil), // 281: tutorial.ResDelFriend + (*ReqRank)(nil), // 282: tutorial.ReqRank + (*ResRank)(nil), // 283: tutorial.ResRank + (*ReqMailList)(nil), // 284: tutorial.ReqMailList + (*ResMailList)(nil), // 285: tutorial.ResMailList + (*MailInfo)(nil), // 286: tutorial.MailInfo + (*MailNotify)(nil), // 287: tutorial.MailNotify + (*ReqReadMail)(nil), // 288: tutorial.ReqReadMail + (*ResReadMail)(nil), // 289: tutorial.ResReadMail + (*ReqGetMailReward)(nil), // 290: tutorial.ReqGetMailReward + (*ResGetMailReward)(nil), // 291: tutorial.ResGetMailReward + (*ReqDeleteMail)(nil), // 292: tutorial.ReqDeleteMail + (*ResDeleteMail)(nil), // 293: tutorial.ResDeleteMail + (*ResCharge)(nil), // 294: tutorial.ResCharge + (*LogoutPetWork)(nil), // 295: tutorial.LogoutPetWork + (*WeeklyDiscountInfo)(nil), // 296: tutorial.WeeklyDiscountInfo + (*WishList)(nil), // 297: tutorial.WishList + (*ReqAddWish)(nil), // 298: tutorial.ReqAddWish + (*ResAddWish)(nil), // 299: tutorial.ResAddWish + (*ReqGetWish)(nil), // 300: tutorial.ReqGetWish + (*ResGetWish)(nil), // 301: tutorial.ResGetWish + (*ReqSendWishBeg)(nil), // 302: tutorial.ReqSendWishBeg + (*ResSendWishBeg)(nil), // 303: tutorial.ResSendWishBeg + (*ResSpecialShop)(nil), // 304: tutorial.ResSpecialShop + (*ResChessShop)(nil), // 305: tutorial.ResChessShop + (*ReqFreeShop)(nil), // 306: tutorial.ReqFreeShop + (*ResFreeShop)(nil), // 307: tutorial.ResFreeShop + (*ReqBuyChessShop)(nil), // 308: tutorial.ReqBuyChessShop + (*ResBuyChessShop)(nil), // 309: tutorial.ResBuyChessShop + (*ReqBuyChessShop2)(nil), // 310: tutorial.ReqBuyChessShop2 + (*ResBuyChessShop2)(nil), // 311: tutorial.ResBuyChessShop2 + (*ReqRefreshChessShop)(nil), // 312: tutorial.ReqRefreshChessShop + (*ResRefreshChessShop)(nil), // 313: tutorial.ResRefreshChessShop + (*ReqEndless)(nil), // 314: tutorial.ReqEndless + (*ResEndless)(nil), // 315: tutorial.ResEndless + (*ResEndlessInfo)(nil), // 316: tutorial.ResEndlessInfo + (*ReqEndlessReward)(nil), // 317: tutorial.ReqEndlessReward + (*ResEndlessReward)(nil), // 318: tutorial.ResEndlessReward + (*ResPiggyBank)(nil), // 319: tutorial.ResPiggyBank + (*ReqPiggyBankReward)(nil), // 320: tutorial.ReqPiggyBankReward + (*ResPiggyBankReward)(nil), // 321: tutorial.ResPiggyBankReward + (*ReqChargeReceive)(nil), // 322: tutorial.ReqChargeReceive + (*ResChargeReceive)(nil), // 323: tutorial.ResChargeReceive + (*ReqCreateOrderSn)(nil), // 324: tutorial.ReqCreateOrderSn + (*ResCreateOrderSn)(nil), // 325: tutorial.ResCreateOrderSn + (*ReqShippingOrder)(nil), // 326: tutorial.ReqShippingOrder + (*ResShippingOrder)(nil), // 327: tutorial.ResShippingOrder + (*ReqChampship)(nil), // 328: tutorial.ReqChampship + (*ResChampship)(nil), // 329: tutorial.ResChampship + (*ReqChampshipReward)(nil), // 330: tutorial.ReqChampshipReward + (*ResChampshipReward)(nil), // 331: tutorial.ResChampshipReward + (*ReqChampshipRankReward)(nil), // 332: tutorial.ReqChampshipRankReward + (*ResChampshipRankReward)(nil), // 333: tutorial.ResChampshipRankReward + (*ReqChampshipRank)(nil), // 334: tutorial.ReqChampshipRank + (*ResChampshipRank)(nil), // 335: tutorial.ResChampshipRank + (*ReqChampshipPreRank)(nil), // 336: tutorial.ReqChampshipPreRank + (*ResChampshipPreRank)(nil), // 337: tutorial.ResChampshipPreRank + (*ResNotifyCard)(nil), // 338: tutorial.ResNotifyCard + (*ReqSetFacebookUrl)(nil), // 339: tutorial.ReqSetFacebookUrl + (*ResSetFacebookUrl)(nil), // 340: tutorial.ResSetFacebookUrl + (*ReqInviteFriendData)(nil), // 341: tutorial.ReqInviteFriendData + (*ResInviteFriendData)(nil), // 342: tutorial.ResInviteFriendData + (*ReqSelfInvited)(nil), // 343: tutorial.ReqSelfInvited + (*ResSelfInvited)(nil), // 344: tutorial.ResSelfInvited + (*NotifyInvitedSuccess)(nil), // 345: tutorial.NotifyInvitedSuccess + (*ReqGetInviteReward)(nil), // 346: tutorial.ReqGetInviteReward + (*ResGetInviteReward)(nil), // 347: tutorial.ResGetInviteReward + (*ReqAutoAddInviteFriend)(nil), // 348: tutorial.ReqAutoAddInviteFriend + (*ResAutoAddInviteFriend)(nil), // 349: tutorial.ResAutoAddInviteFriend + (*ReqAutoAddInviteFriend2)(nil), // 350: tutorial.ReqAutoAddInviteFriend2 + (*ResAutoAddInviteFriend2)(nil), // 351: tutorial.ResAutoAddInviteFriend2 + (*ReqMining)(nil), // 352: tutorial.ReqMining + (*ResMining)(nil), // 353: tutorial.ResMining + (*ReqMiningTake)(nil), // 354: tutorial.ReqMiningTake + (*ResMiningTake)(nil), // 355: tutorial.ResMiningTake + (*ReqMiningReward)(nil), // 356: tutorial.ReqMiningReward + (*ResMiningReward)(nil), // 357: tutorial.ResMiningReward + (*ReqActPass)(nil), // 358: tutorial.ReqActPass + (*ResActPass)(nil), // 359: tutorial.ResActPass + (*ReqActPassReward)(nil), // 360: tutorial.ReqActPassReward + (*ResActPassReward)(nil), // 361: tutorial.ResActPassReward + (*ResActRed)(nil), // 362: tutorial.ResActRed + (*NotifyActRed)(nil), // 363: tutorial.NotifyActRed + (*ActivityNotify)(nil), // 364: tutorial.ActivityNotify + (*ResItem)(nil), // 365: tutorial.ResItem + (*ItemNotify)(nil), // 366: tutorial.ItemNotify + (*ReqGuessColor)(nil), // 367: tutorial.ReqGuessColor + (*ResGuessColor)(nil), // 368: tutorial.ResGuessColor + (*Opponent)(nil), // 369: tutorial.opponent + (*ReqGuessColorTake)(nil), // 370: tutorial.ReqGuessColorTake + (*GuessColorInfo)(nil), // 371: tutorial.GuessColorInfo + (*ResGuessColorTake)(nil), // 372: tutorial.ResGuessColorTake + (*ReqGuessColorReward)(nil), // 373: tutorial.ReqGuessColorReward + (*ResGuessColorReward)(nil), // 374: tutorial.ResGuessColorReward + (*ReqRace)(nil), // 375: tutorial.ReqRace + (*ResRace)(nil), // 376: tutorial.ResRace + (*Raceopponent)(nil), // 377: tutorial.raceopponent + (*ReqRaceStart)(nil), // 378: tutorial.ReqRaceStart + (*ResRaceStart)(nil), // 379: tutorial.ResRaceStart + (*ReqRaceReward)(nil), // 380: tutorial.ReqRaceReward + (*ResRaceReward)(nil), // 381: tutorial.ResRaceReward + (*ReqPlayroom)(nil), // 382: tutorial.ReqPlayroom + (*ResPlayroom)(nil), // 383: tutorial.ResPlayroom + (*NotifyPlayroomTask)(nil), // 384: tutorial.NotifyPlayroomTask + (*ReqPlayroomTask)(nil), // 385: tutorial.ReqPlayroomTask + (*ResPlayroomTask)(nil), // 386: tutorial.ResPlayroomTask + (*ReqPlayroomTaskReward)(nil), // 387: tutorial.ReqPlayroomTaskReward + (*ResPlayroomTaskReward)(nil), // 388: tutorial.ResPlayroomTaskReward + (*ReqPlayroomUnlock)(nil), // 389: tutorial.ReqPlayroomUnlock + (*ResPlayroomUnlock)(nil), // 390: tutorial.ResPlayroomUnlock + (*ReqPlayroomUpvote)(nil), // 391: tutorial.ReqPlayroomUpvote + (*ResPlayroomUpvote)(nil), // 392: tutorial.ResPlayroomUpvote + (*PlayroomDress)(nil), // 393: tutorial.PlayroomDress + (*PlayroomDressInfo)(nil), // 394: tutorial.PlayroomDressInfo + (*PlayroomAirInfo)(nil), // 395: tutorial.PlayroomAirInfo + (*PlayroomCollectInfo)(nil), // 396: tutorial.PlayroomCollectInfo + (*ReqPlayroomDressSet)(nil), // 397: tutorial.ReqPlayroomDressSet + (*ResPlayroomDressSet)(nil), // 398: tutorial.ResPlayroomDressSet + (*ReqPlayroomPetAirSet)(nil), // 399: tutorial.ReqPlayroomPetAirSet + (*ResPlayroomPetAirSet)(nil), // 400: tutorial.ResPlayroomPetAirSet + (*ReqPlayroomWrokOutline)(nil), // 401: tutorial.ReqPlayroomWrokOutline + (*ResPlayroomWrokOutline)(nil), // 402: tutorial.ResPlayroomWrokOutline + (*NofiPlayroomStatus)(nil), // 403: tutorial.NofiPlayroomStatus + (*NotifyPlayroomWork)(nil), // 404: tutorial.NotifyPlayroomWork + (*NotifyPlayroomLose)(nil), // 405: tutorial.NotifyPlayroomLose + (*ChipInfo)(nil), // 406: tutorial.ChipInfo + (*NotifyPlayroomMood)(nil), // 407: tutorial.NotifyPlayroomMood + (*AdItem)(nil), // 408: tutorial.AdItem + (*NotifyPlayroomKiss)(nil), // 409: tutorial.NotifyPlayroomKiss + (*FriendRoom)(nil), // 410: tutorial.FriendRoom + (*RoomOpponent)(nil), // 411: tutorial.RoomOpponent + (*ReqPlayroomInfo)(nil), // 412: tutorial.ReqPlayroomInfo + (*ResPlayroomInfo)(nil), // 413: tutorial.ResPlayroomInfo + (*ReqPlayroomFlip)(nil), // 414: tutorial.ReqPlayroomFlip + (*ResPlayroomFlip)(nil), // 415: tutorial.ResPlayroomFlip + (*ReqPlayroomGuide)(nil), // 416: tutorial.ReqPlayroomGuide + (*ResPlayroomGuide)(nil), // 417: tutorial.ResPlayroomGuide + (*ReqPlayroomFlipReward)(nil), // 418: tutorial.ReqPlayroomFlipReward + (*ResPlayroomFlipReward)(nil), // 419: tutorial.ResPlayroomFlipReward + (*ReqPlayroomGame)(nil), // 420: tutorial.ReqPlayroomGame + (*ResPlayroomGame)(nil), // 421: tutorial.ResPlayroomGame + (*ReqPlayroomGameShowReward)(nil), // 422: tutorial.ReqPlayroomGameShowReward + (*ResPlayroomGameShowReward)(nil), // 423: tutorial.ResPlayroomGameShowReward + (*ReqPlayroomInteract)(nil), // 424: tutorial.ReqPlayroomInteract + (*ResPlayroomInteract)(nil), // 425: tutorial.ResPlayroomInteract + (*ReqPlayroomSetRoom)(nil), // 426: tutorial.ReqPlayroomSetRoom + (*ResPlayroomSetRoom)(nil), // 427: tutorial.ResPlayroomSetRoom + (*ReqPlayroomSelectReward)(nil), // 428: tutorial.ReqPlayroomSelectReward + (*ResPlayroomSelectReward)(nil), // 429: tutorial.ResPlayroomSelectReward + (*ReqPlayroomLose)(nil), // 430: tutorial.ReqPlayroomLose + (*ResPlayroomLose)(nil), // 431: tutorial.ResPlayroomLose + (*ReqPlayroomWork)(nil), // 432: tutorial.ReqPlayroomWork + (*ResPlayroomWork)(nil), // 433: tutorial.ResPlayroomWork + (*ReqPlayroomRest)(nil), // 434: tutorial.ReqPlayroomRest + (*ResPlayroomRest)(nil), // 435: tutorial.ResPlayroomRest + (*ReqPlayroomDraw)(nil), // 436: tutorial.ReqPlayroomDraw + (*ResPlayroomDraw)(nil), // 437: tutorial.ResPlayroomDraw + (*ReqPlayroomChip)(nil), // 438: tutorial.ReqPlayroomChip + (*ResPlayroomChip)(nil), // 439: tutorial.ResPlayroomChip + (*ReqPlayroomBuyItem)(nil), // 440: tutorial.ReqPlayroomBuyItem + (*ResPlayroomBuyItem)(nil), // 441: tutorial.ResPlayroomBuyItem + (*ReqPlayroomShop)(nil), // 442: tutorial.ReqPlayroomShop + (*ResPlayroomShop)(nil), // 443: tutorial.ResPlayroomShop + (*ReqFriendTreasure)(nil), // 444: tutorial.ReqFriendTreasure + (*ResFriendTreasure)(nil), // 445: tutorial.ResFriendTreasure + (*TreasureInfo)(nil), // 446: tutorial.TreasureInfo + (*ReqFriendTreasureStart)(nil), // 447: tutorial.ReqFriendTreasureStart + (*ResFriendTreasureStart)(nil), // 448: tutorial.ResFriendTreasureStart + (*ReqFriendTreasureEnd)(nil), // 449: tutorial.ReqFriendTreasureEnd + (*ResFriendTreasureEnd)(nil), // 450: tutorial.ResFriendTreasureEnd + (*ReqFriendTreasureFilp)(nil), // 451: tutorial.ReqFriendTreasureFilp + (*ResFriendTreasureFilp)(nil), // 452: tutorial.ResFriendTreasureFilp + (*ResFriendTreasureStar)(nil), // 453: tutorial.ResFriendTreasureStar + (*ReqKafkaLog)(nil), // 454: tutorial.ReqKafkaLog + (*ReqCollectInfo)(nil), // 455: tutorial.ReqCollectInfo + (*ResCollectInfo)(nil), // 456: tutorial.ResCollectInfo + (*CollectItem)(nil), // 457: tutorial.CollectItem + (*ReqCollect)(nil), // 458: tutorial.ReqCollect + (*ResCollect)(nil), // 459: tutorial.ResCollect + (*ReqCatnip)(nil), // 460: tutorial.ReqCatnip + (*ResCatnip)(nil), // 461: tutorial.ResCatnip + (*CatnipGame)(nil), // 462: tutorial.CatnipGame + (*CatnipInvite)(nil), // 463: tutorial.CatnipInvite + (*ReqCatnipInvite)(nil), // 464: tutorial.ReqCatnipInvite + (*ResCatnipInvite)(nil), // 465: tutorial.ResCatnipInvite + (*ReqCatnipAgree)(nil), // 466: tutorial.ReqCatnipAgree + (*ResCatnipAgree)(nil), // 467: tutorial.ResCatnipAgree + (*ReqCatnipRefuse)(nil), // 468: tutorial.ReqCatnipRefuse + (*ResCatnipRefuse)(nil), // 469: tutorial.ResCatnipRefuse + (*ReqCatnipMultiply)(nil), // 470: tutorial.ReqCatnipMultiply + (*ResCatnipMultiply)(nil), // 471: tutorial.ResCatnipMultiply + (*ReqCatnipPlay)(nil), // 472: tutorial.ReqCatnipPlay + (*ResCatnipPlay)(nil), // 473: tutorial.ResCatnipPlay + (*ReqCatnipReward)(nil), // 474: tutorial.ReqCatnipReward + (*ResCatnipReward)(nil), // 475: tutorial.ResCatnipReward + (*ReqCatnipGrandReward)(nil), // 476: tutorial.ReqCatnipGrandReward + (*ResCatnipGrandReward)(nil), // 477: tutorial.ResCatnipGrandReward + (*ReqCatnipEmoji)(nil), // 478: tutorial.ReqCatnipEmoji + (*ResCatnipEmoji)(nil), // 479: tutorial.ResCatnipEmoji + (*AdminReq)(nil), // 480: tutorial.AdminReq + (*AdminRes)(nil), // 481: tutorial.AdminRes + (*ReqAdminInfo)(nil), // 482: tutorial.ReqAdminInfo + (*ReqReloadServerMail)(nil), // 483: tutorial.ReqReloadServerMail + (*ReqServerInfo)(nil), // 484: tutorial.ReqServerInfo + (*ReqReload)(nil), // 485: tutorial.ReqReload + (*ReqAdminGm)(nil), // 486: tutorial.ReqAdminGm + (*ReqAdminBan)(nil), // 487: tutorial.ReqAdminBan + (*ReqAdminShipping)(nil), // 488: tutorial.ReqAdminShipping + nil, // 489: tutorial.ResChessColorData.MChessColorDataEntry + nil, // 490: tutorial.UpdateBaseItemInfo.MUpdateItemEntry + nil, // 491: tutorial.ResPlayerChessData.MChessDataEntry + nil, // 492: tutorial.ReqPutPartInBag.MChessDataEntry + nil, // 493: tutorial.UpdatePlayerChessData.MChessDataEntry + nil, // 494: tutorial.ReqSeparateChess.MChessDataEntry + nil, // 495: tutorial.ReqUpgradeChess.MChessDataEntry + nil, // 496: tutorial.ReqGetChessFromBuff.MChessDataEntry + nil, // 497: tutorial.ReqChessEx.MChessDataEntry + nil, // 498: tutorial.ReqSourceChest.MChessDataEntry + nil, // 499: tutorial.ReqPlayroomOutline.MChessDataEntry + nil, // 500: tutorial.ReqPutChessInBag.MChessDataEntry + nil, // 501: tutorial.ReqTakeChessOutBag.MChessDataEntry + nil, // 502: tutorial.ResPlayerBriefProfileData.SetEmojiEntry + nil, // 503: tutorial.UserInfo.SetEmojiEntry + nil, // 504: tutorial.ReqRewardOrder.MChessDataEntry + nil, // 505: tutorial.ResCardInfo.AllCardEntry + nil, // 506: tutorial.ResCardInfo.HandbookEntry + nil, // 507: tutorial.ResGuildInfo.RewardEntry + nil, // 508: tutorial.ResGuideInfo.RewardEntry + nil, // 509: tutorial.ResGuideTask.TaskEntry + nil, // 510: tutorial.ResDailyTask.WeekRewardEntry + nil, // 511: tutorial.ResDailyTask.DailyTaskEntry + nil, // 512: tutorial.ResLimitEvent.LimitEventListEntry + nil, // 513: tutorial.ResLimitEventProgress.ProgressRewardEntry + nil, // 514: tutorial.LimitEvent.ParamEntry + nil, // 515: tutorial.ReqLimitEventLuckyCat.MChessDataEntry + nil, // 516: tutorial.ResFriendPlayerSimple.EmojiEntry + nil, // 517: tutorial.ResFriendPlayerSimple.PlayroomEntry + nil, // 518: tutorial.ResFriendPlayerSimple.DressSetEntry + nil, // 519: tutorial.ResFriendPlayerSimple.PhysiologyEntry + nil, // 520: tutorial.ResPlayerSimple.EmojiEntry + nil, // 521: tutorial.ResKv.KvEntry + nil, // 522: tutorial.ResRank.RankListEntry + nil, // 523: tutorial.ResMailList.MailListEntry + nil, // 524: tutorial.ResCharge.SpecialShopEntry + nil, // 525: tutorial.ResCharge.ChessShopEntry + nil, // 526: tutorial.ResCharge.GiftEntry + nil, // 527: tutorial.ResCharge.WeeklyDiscountEntry + nil, // 528: tutorial.ReqBuyChessShop2.MChessDataEntry + nil, // 529: tutorial.ResEndless.EndlessListEntry + nil, // 530: tutorial.ResChampshipRank.RankListEntry + nil, // 531: tutorial.ResChampshipPreRank.RankListEntry + nil, // 532: tutorial.ResNotifyCard.CardEntry + nil, // 533: tutorial.ResNotifyCard.MasterEntry + nil, // 534: tutorial.ResNotifyCard.HandbookEntry + nil, // 535: tutorial.ResMining.MapEntry + nil, // 536: tutorial.ReqMiningTake.MapEntry + nil, // 537: tutorial.ResActRed.RedEntry + nil, // 538: tutorial.ResItem.ItemEntry + nil, // 539: tutorial.ItemNotify.ItemEntry + nil, // 540: tutorial.ResGuessColor.OMapEntry + nil, // 541: tutorial.ReqGuessColorTake.OMapEntry + nil, // 542: tutorial.GuessColorInfo.MapEntry + nil, // 543: tutorial.ResPlayroom.PlayroomEntry + nil, // 544: tutorial.ResPlayroom.MoodEntry + nil, // 545: tutorial.ResPlayroom.PhysiologyEntry + nil, // 546: tutorial.ResPlayroom.DressEntry + nil, // 547: tutorial.ResPlayroom.DressSetEntry + nil, // 548: tutorial.ResPlayroom.WeeklyDiscountEntry + nil, // 549: tutorial.ReqPlayroomDressSet.DressSetEntry + nil, // 550: tutorial.NotifyPlayroomMood.MoodEntry + nil, // 551: tutorial.NotifyPlayroomMood.PhysiologyEntry + nil, // 552: tutorial.ResPlayroomInfo.PlayroomEntry + nil, // 553: tutorial.ResPlayroomInfo.ItemsEntry + nil, // 554: tutorial.ResPlayroomInfo.FlipEntry + nil, // 555: tutorial.ResPlayroomInfo.EmojiEntry + nil, // 556: tutorial.ResPlayroomInfo.DressSetEntry + nil, // 557: tutorial.ResPlayroomGame.ItemsEntry + nil, // 558: tutorial.ReqPlayroomSetRoom.PlayroomEntry } var file_proto_Gameapi_proto_depIdxs = []int32{ - 487, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry + 489, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry 6, // 1: tutorial.ReqLogin.type:type_name -> tutorial.LOGIN_TYPE 2, // 2: tutorial.ResId2Verify.ResultCode:type_name -> tutorial.RES_CODE - 488, // 3: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry - 489, // 4: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry - 73, // 5: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag - 54, // 6: tutorial.ResPlayerChessInfo.PartBag:type_name -> tutorial.PartBag + 490, // 3: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry + 491, // 4: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry + 74, // 5: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag + 55, // 6: tutorial.ResPlayerChessInfo.PartBag:type_name -> tutorial.PartBag 2, // 7: tutorial.ResGetChessRetireReward.code:type_name -> tutorial.RES_CODE - 55, // 8: tutorial.PartBag.PartBagGrids:type_name -> tutorial.PartBagGrid - 490, // 9: tutorial.ReqPutPartInBag.mChessData:type_name -> tutorial.ReqPutPartInBag.MChessDataEntry + 56, // 8: tutorial.PartBag.PartBagGrids:type_name -> tutorial.PartBagGrid + 492, // 9: tutorial.ReqPutPartInBag.mChessData:type_name -> tutorial.ReqPutPartInBag.MChessDataEntry 2, // 10: tutorial.ResPutPartInBag.code:type_name -> tutorial.RES_CODE 1, // 11: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE - 491, // 12: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry - 58, // 13: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle + 493, // 12: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry + 59, // 13: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle 2, // 14: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE - 492, // 15: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry + 494, // 15: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry 2, // 16: tutorial.ResSeparateChess.code:type_name -> tutorial.RES_CODE - 493, // 17: tutorial.ReqUpgradeChess.mChessData:type_name -> tutorial.ReqUpgradeChess.MChessDataEntry + 495, // 17: tutorial.ReqUpgradeChess.mChessData:type_name -> tutorial.ReqUpgradeChess.MChessDataEntry 2, // 18: tutorial.ResUpgradeChess.code:type_name -> tutorial.RES_CODE - 494, // 19: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry + 496, // 19: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry 2, // 20: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE 8, // 21: tutorial.ReqChessEx.Type:type_name -> tutorial.CHESS_EX_TYPE - 495, // 22: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry + 497, // 22: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry 2, // 23: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE - 496, // 24: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry + 498, // 24: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry 2, // 25: tutorial.ResSourceChest.code:type_name -> tutorial.RES_CODE - 497, // 26: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry + 499, // 26: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry 2, // 27: tutorial.ResPlayroomOutline.code:type_name -> tutorial.RES_CODE - 74, // 28: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid - 498, // 29: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry + 75, // 28: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid + 500, // 29: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry 2, // 30: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE - 499, // 31: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry + 501, // 31: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry 2, // 32: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE 2, // 33: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE - 500, // 34: tutorial.ResPlayerBriefProfileData.SetEmoji:type_name -> tutorial.ResPlayerBriefProfileData.SetEmojiEntry + 502, // 34: tutorial.ResPlayerBriefProfileData.SetEmoji:type_name -> tutorial.ResPlayerBriefProfileData.SetEmojiEntry 2, // 35: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE 9, // 36: tutorial.ReqLang.Lang:type_name -> tutorial.LANG_TYPE 2, // 37: tutorial.ResLang.ResultCode:type_name -> tutorial.RES_CODE 9, // 38: tutorial.BaseInfo.Lang:type_name -> tutorial.LANG_TYPE - 192, // 39: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo - 188, // 40: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo - 195, // 41: tutorial.UserInfo.EmojiList:type_name -> tutorial.EmojiInfo - 501, // 42: tutorial.UserInfo.SetEmoji:type_name -> tutorial.UserInfo.SetEmojiEntry + 193, // 39: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo + 189, // 40: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo + 196, // 41: tutorial.UserInfo.EmojiList:type_name -> tutorial.EmojiInfo + 503, // 42: tutorial.UserInfo.SetEmoji:type_name -> tutorial.UserInfo.SetEmojiEntry 2, // 43: tutorial.ResSetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 44: tutorial.ResSetPetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 45: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE 2, // 46: tutorial.ResGetEnergyByAD.Code:type_name -> tutorial.RES_CODE 2, // 47: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE - 102, // 48: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo + 103, // 48: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo 2, // 49: tutorial.ResHandbookAllReward.Code:type_name -> tutorial.RES_CODE - 502, // 50: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry + 504, // 50: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry 2, // 51: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE 2, // 52: tutorial.ResDelOrder.Code:type_name -> tutorial.RES_CODE - 169, // 53: tutorial.Order.Items:type_name -> tutorial.ItemInfo - 113, // 54: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order - 116, // 55: tutorial.ResDecorateInfo.Parts:type_name -> tutorial.DecoratePart - 169, // 56: tutorial.DecoratePart.Items:type_name -> tutorial.ItemInfo + 170, // 53: tutorial.Order.Items:type_name -> tutorial.ItemInfo + 114, // 54: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order + 117, // 55: tutorial.ResDecorateInfo.Parts:type_name -> tutorial.DecoratePart + 170, // 56: tutorial.DecoratePart.Items:type_name -> tutorial.ItemInfo 2, // 57: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE 2, // 58: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE 2, // 59: tutorial.ResAreaReward.Code:type_name -> tutorial.RES_CODE - 124, // 60: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card - 503, // 61: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry - 504, // 62: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry + 125, // 60: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card + 505, // 61: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry + 506, // 62: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry 2, // 63: tutorial.ResCardSeasonFirstReward.Code:type_name -> tutorial.RES_CODE 2, // 64: tutorial.ResCardHandbookReward.Code:type_name -> tutorial.RES_CODE 2, // 65: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE @@ -30380,233 +31957,235 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 78: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE 2, // 79: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE 2, // 80: tutorial.ResGuidePlayroom.Code:type_name -> tutorial.RES_CODE - 505, // 81: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry - 506, // 82: tutorial.ResGuideInfo.Reward:type_name -> tutorial.ResGuideInfo.RewardEntry - 169, // 83: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo - 170, // 84: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack - 507, // 85: tutorial.ResGuideTask.Task:type_name -> tutorial.ResGuideTask.TaskEntry - 180, // 86: tutorial.GuideTask.Progress:type_name -> tutorial.QuestProgress + 507, // 81: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry + 508, // 82: tutorial.ResGuideInfo.Reward:type_name -> tutorial.ResGuideInfo.RewardEntry + 170, // 83: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo + 171, // 84: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack + 509, // 85: tutorial.ResGuideTask.Task:type_name -> tutorial.ResGuideTask.TaskEntry + 181, // 86: tutorial.GuideTask.Progress:type_name -> tutorial.QuestProgress 2, // 87: tutorial.ResGetGuideTaskReward.Code:type_name -> tutorial.RES_CODE 2, // 88: tutorial.ResGetGuideActiveReward.Code:type_name -> tutorial.RES_CODE - 508, // 89: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry - 509, // 90: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry - 169, // 91: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo - 180, // 92: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress - 169, // 93: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo + 510, // 89: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry + 511, // 90: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry + 170, // 91: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo + 181, // 92: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress + 170, // 93: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo 2, // 94: tutorial.ResGetDailyTaskReward.Code:type_name -> tutorial.RES_CODE 2, // 95: tutorial.ResGetDailyWeekReward.Code:type_name -> tutorial.RES_CODE 2, // 96: tutorial.ResDailyUnlock.Code:type_name -> tutorial.RES_CODE - 188, // 97: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo + 189, // 97: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo 2, // 98: tutorial.ResSetFace.Code:type_name -> tutorial.RES_CODE - 192, // 99: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo + 193, // 99: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo 2, // 100: tutorial.ResSetAvatar.Code:type_name -> tutorial.RES_CODE 2, // 101: tutorial.ResSetEmoji.Code:type_name -> tutorial.RES_CODE - 199, // 102: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward - 199, // 103: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward - 169, // 104: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo - 169, // 105: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo - 169, // 106: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo + 200, // 102: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward + 200, // 103: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward + 170, // 104: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo + 170, // 105: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo + 170, // 106: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo 2, // 107: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE 2, // 108: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE - 205, // 109: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo + 206, // 109: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo 2, // 110: tutorial.ResActivityReward.Code:type_name -> tutorial.RES_CODE - 510, // 111: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry - 511, // 112: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry + 512, // 111: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry + 513, // 112: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry 2, // 113: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE 2, // 114: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE - 512, // 115: tutorial.LimitEvent.Param:type_name -> tutorial.LimitEvent.ParamEntry - 513, // 116: tutorial.ReqLimitEventLuckyCat.mChessData:type_name -> tutorial.ReqLimitEventLuckyCat.MChessDataEntry + 514, // 115: tutorial.LimitEvent.Param:type_name -> tutorial.LimitEvent.ParamEntry + 515, // 116: tutorial.ReqLimitEventLuckyCat.mChessData:type_name -> tutorial.ReqLimitEventLuckyCat.MChessDataEntry 2, // 117: tutorial.ResLimitEventLuckyCat.Code:type_name -> tutorial.RES_CODE 2, // 118: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE - 169, // 119: tutorial.ResChessRainReward.Items:type_name -> tutorial.ItemInfo + 170, // 119: tutorial.ResChessRainReward.Items:type_name -> tutorial.ItemInfo 2, // 120: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE 2, // 121: tutorial.ResCatTrickReward.Code:type_name -> tutorial.RES_CODE - 232, // 122: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple - 514, // 123: tutorial.ResFriendPlayerSimple.Emoji:type_name -> tutorial.ResFriendPlayerSimple.EmojiEntry - 515, // 124: tutorial.ResFriendPlayerSimple.Playroom:type_name -> tutorial.ResFriendPlayerSimple.PlayroomEntry - 516, // 125: tutorial.ResFriendPlayerSimple.DressSet:type_name -> tutorial.ResFriendPlayerSimple.DressSetEntry - 233, // 126: tutorial.ResFriendPlayerSimple.Last:type_name -> tutorial.ActLog - 517, // 127: tutorial.ResFriendPlayerSimple.Physiology:type_name -> tutorial.ResFriendPlayerSimple.PhysiologyEntry - 518, // 128: tutorial.ResPlayerSimple.Emoji:type_name -> tutorial.ResPlayerSimple.EmojiEntry - 232, // 129: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple - 235, // 130: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog - 237, // 131: tutorial.NotifyFriendLog.Bubble:type_name -> tutorial.FriendBubbleInfo - 169, // 132: tutorial.FriendBubbleInfo.Items:type_name -> tutorial.ItemInfo - 239, // 133: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard - 519, // 134: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry + 233, // 122: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple + 516, // 123: tutorial.ResFriendPlayerSimple.Emoji:type_name -> tutorial.ResFriendPlayerSimple.EmojiEntry + 517, // 124: tutorial.ResFriendPlayerSimple.Playroom:type_name -> tutorial.ResFriendPlayerSimple.PlayroomEntry + 518, // 125: tutorial.ResFriendPlayerSimple.DressSet:type_name -> tutorial.ResFriendPlayerSimple.DressSetEntry + 234, // 126: tutorial.ResFriendPlayerSimple.Last:type_name -> tutorial.ActLog + 519, // 127: tutorial.ResFriendPlayerSimple.Physiology:type_name -> tutorial.ResFriendPlayerSimple.PhysiologyEntry + 520, // 128: tutorial.ResPlayerSimple.Emoji:type_name -> tutorial.ResPlayerSimple.EmojiEntry + 233, // 129: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple + 236, // 130: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog + 238, // 131: tutorial.NotifyFriendLog.Bubble:type_name -> tutorial.FriendBubbleInfo + 170, // 132: tutorial.FriendBubbleInfo.Items:type_name -> tutorial.ItemInfo + 240, // 133: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard + 521, // 134: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry 2, // 135: tutorial.ResFriendByCode.Code:type_name -> tutorial.RES_CODE - 232, // 136: tutorial.ResFriendByCode.Player:type_name -> tutorial.ResPlayerSimple - 232, // 137: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple + 233, // 136: tutorial.ResFriendByCode.Player:type_name -> tutorial.ResPlayerSimple + 233, // 137: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple 2, // 138: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE - 232, // 139: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple + 233, // 139: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple 2, // 140: tutorial.ResAddNpc.Code:type_name -> tutorial.RES_CODE - 254, // 141: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo - 232, // 142: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple - 239, // 143: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard - 254, // 144: tutorial.ResWishApplyList.ApplyList:type_name -> tutorial.ResFriendApplyInfo + 255, // 141: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo + 233, // 142: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple + 240, // 143: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard + 255, // 144: tutorial.ResWishApplyList.ApplyList:type_name -> tutorial.ResFriendApplyInfo 2, // 145: tutorial.ResWishApply.Code:type_name -> tutorial.RES_CODE - 235, // 146: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog - 263, // 147: tutorial.ResFriendTimeLine.Reply:type_name -> tutorial.ResFriendReply - 232, // 148: tutorial.ResFriendReply.Player:type_name -> tutorial.ResPlayerSimple - 169, // 149: tutorial.ResFriendReply.Items:type_name -> tutorial.ItemInfo + 236, // 146: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog + 264, // 147: tutorial.ResFriendTimeLine.Reply:type_name -> tutorial.ResFriendReply + 233, // 148: tutorial.ResFriendReply.Player:type_name -> tutorial.ResPlayerSimple + 170, // 149: tutorial.ResFriendReply.Items:type_name -> tutorial.ItemInfo 2, // 150: tutorial.ResFriendReplyHandle.Code:type_name -> tutorial.RES_CODE - 237, // 151: tutorial.ResFriendBubble.Bubble:type_name -> tutorial.FriendBubbleInfo - 2, // 152: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE - 2, // 153: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE - 232, // 154: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 2, // 155: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE - 2, // 156: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE - 232, // 157: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple - 2, // 158: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE - 2, // 159: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE - 520, // 160: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry - 521, // 161: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry - 169, // 162: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo - 284, // 163: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo - 2, // 164: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE - 2, // 165: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE - 2, // 166: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE - 522, // 167: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry - 523, // 168: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry - 524, // 169: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry - 295, // 170: tutorial.ResCharge.Wish:type_name -> tutorial.WishList - 525, // 171: tutorial.ResCharge.WeeklyDiscount:type_name -> tutorial.ResCharge.WeeklyDiscountEntry - 2, // 172: tutorial.ResAddWish.Code:type_name -> tutorial.RES_CODE - 2, // 173: tutorial.ResGetWish.Code:type_name -> tutorial.RES_CODE - 2, // 174: tutorial.ResSendWishBeg.Code:type_name -> tutorial.RES_CODE - 2, // 175: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE - 2, // 176: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE - 526, // 177: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry - 2, // 178: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE - 2, // 179: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE - 527, // 180: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry - 169, // 181: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo - 2, // 182: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE - 2, // 183: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE - 2, // 184: tutorial.ResChargeReceive.Code:type_name -> tutorial.RES_CODE - 2, // 185: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE - 2, // 186: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE - 2, // 187: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE - 528, // 188: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry - 529, // 189: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry - 530, // 190: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry - 531, // 191: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry - 532, // 192: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry - 2, // 193: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE - 533, // 194: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry - 534, // 195: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry - 2, // 196: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE - 2, // 197: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE - 2, // 198: tutorial.ResActPassReward.Code:type_name -> tutorial.RES_CODE - 535, // 199: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry - 205, // 200: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo - 536, // 201: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry - 537, // 202: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry - 369, // 203: tutorial.ResGuessColor.MapList:type_name -> tutorial.GuessColorInfo - 538, // 204: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry - 367, // 205: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent - 369, // 206: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.GuessColorInfo - 539, // 207: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry - 540, // 208: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry - 2, // 209: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE - 2, // 210: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE - 375, // 211: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent - 2, // 212: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE - 2, // 213: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE - 169, // 214: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo - 409, // 215: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent - 408, // 216: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom - 541, // 217: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry - 394, // 218: tutorial.ResPlayroom.collect:type_name -> tutorial.PlayroomCollectInfo - 542, // 219: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry - 169, // 220: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo - 404, // 221: tutorial.ResPlayroom.Chip:type_name -> tutorial.ChipInfo - 543, // 222: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry - 544, // 223: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry - 545, // 224: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry - 393, // 225: tutorial.ResPlayroom.PetAir:type_name -> tutorial.PlayroomAirInfo - 179, // 226: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask - 406, // 227: tutorial.ResPlayroom.AdItem:type_name -> tutorial.AdItem - 408, // 228: tutorial.ResPlayroom.Target:type_name -> tutorial.FriendRoom - 546, // 229: tutorial.ResPlayroom.WeeklyDiscount:type_name -> tutorial.ResPlayroom.WeeklyDiscountEntry - 179, // 230: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask - 2, // 231: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE - 2, // 232: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE - 2, // 233: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE - 2, // 234: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE - 392, // 235: tutorial.PlayroomDress.List:type_name -> tutorial.PlayroomDressInfo - 547, // 236: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry - 2, // 237: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE - 2, // 238: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE - 2, // 239: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE - 169, // 240: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo - 404, // 241: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo - 548, // 242: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry - 549, // 243: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry - 406, // 244: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem - 550, // 245: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry - 551, // 246: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry - 552, // 247: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry - 553, // 248: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry - 554, // 249: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry - 2, // 250: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE - 2, // 251: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE - 2, // 252: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE - 2, // 253: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE - 555, // 254: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry - 169, // 255: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo - 2, // 256: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE - 556, // 257: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry - 2, // 258: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE - 2, // 259: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE - 2, // 260: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE - 2, // 261: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE - 2, // 262: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE - 2, // 263: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE - 2, // 264: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE - 2, // 265: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE - 2, // 266: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE - 444, // 267: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo - 444, // 268: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo - 2, // 269: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE - 2, // 270: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE - 2, // 271: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE - 455, // 272: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem - 169, // 273: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo - 2, // 274: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE - 460, // 275: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame - 461, // 276: tutorial.ResCatnip.FriendList:type_name -> tutorial.CatnipInvite - 232, // 277: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple - 232, // 278: tutorial.CatnipInvite.Player:type_name -> tutorial.ResPlayerSimple - 2, // 279: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE - 2, // 280: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE - 2, // 281: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE - 2, // 282: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE - 2, // 283: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE - 2, // 284: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE - 2, // 285: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE - 2, // 286: tutorial.ResCatnipEmoji.Code:type_name -> tutorial.RES_CODE - 172, // 287: tutorial.ResGuideTask.TaskEntry.value:type_name -> tutorial.GuideTask - 178, // 288: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek - 179, // 289: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask - 215, // 290: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent - 232, // 291: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple - 284, // 292: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo - 302, // 293: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop - 303, // 294: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop - 294, // 295: tutorial.ResCharge.WeeklyDiscountEntry.value:type_name -> tutorial.WeeklyDiscountInfo - 314, // 296: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo - 234, // 297: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 234, // 298: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 391, // 299: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress - 294, // 300: tutorial.ResPlayroom.WeeklyDiscountEntry.value:type_name -> tutorial.WeeklyDiscountInfo - 169, // 301: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo - 169, // 302: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo - 303, // [303:303] is the sub-list for method output_type - 303, // [303:303] is the sub-list for method input_type - 303, // [303:303] is the sub-list for extension type_name - 303, // [303:303] is the sub-list for extension extendee - 0, // [0:303] is the sub-list for field type_name + 13, // 151: tutorial.ResFriendReplyHandle.ErrType:type_name -> tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE + 238, // 152: tutorial.ResFriendBubble.Bubble:type_name -> tutorial.FriendBubbleInfo + 2, // 153: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE + 2, // 154: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE + 233, // 155: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple + 233, // 156: tutorial.ResFriendReplyNotify.Player:type_name -> tutorial.ResPlayerSimple + 2, // 157: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE + 2, // 158: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE + 233, // 159: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple + 2, // 160: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE + 2, // 161: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE + 522, // 162: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry + 523, // 163: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry + 170, // 164: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo + 286, // 165: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo + 2, // 166: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE + 2, // 167: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE + 2, // 168: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE + 524, // 169: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry + 525, // 170: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry + 526, // 171: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry + 297, // 172: tutorial.ResCharge.Wish:type_name -> tutorial.WishList + 527, // 173: tutorial.ResCharge.WeeklyDiscount:type_name -> tutorial.ResCharge.WeeklyDiscountEntry + 2, // 174: tutorial.ResAddWish.Code:type_name -> tutorial.RES_CODE + 2, // 175: tutorial.ResGetWish.Code:type_name -> tutorial.RES_CODE + 2, // 176: tutorial.ResSendWishBeg.Code:type_name -> tutorial.RES_CODE + 2, // 177: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE + 2, // 178: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE + 528, // 179: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry + 2, // 180: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE + 2, // 181: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE + 529, // 182: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry + 170, // 183: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo + 2, // 184: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE + 2, // 185: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE + 2, // 186: tutorial.ResChargeReceive.Code:type_name -> tutorial.RES_CODE + 2, // 187: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE + 2, // 188: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE + 2, // 189: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE + 530, // 190: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry + 531, // 191: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry + 532, // 192: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry + 533, // 193: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry + 534, // 194: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry + 2, // 195: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE + 535, // 196: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry + 536, // 197: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry + 2, // 198: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE + 2, // 199: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE + 2, // 200: tutorial.ResActPassReward.Code:type_name -> tutorial.RES_CODE + 537, // 201: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry + 206, // 202: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo + 538, // 203: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry + 539, // 204: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry + 371, // 205: tutorial.ResGuessColor.MapList:type_name -> tutorial.GuessColorInfo + 540, // 206: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry + 369, // 207: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent + 371, // 208: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.GuessColorInfo + 541, // 209: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry + 542, // 210: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry + 2, // 211: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE + 2, // 212: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE + 377, // 213: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent + 2, // 214: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE + 2, // 215: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE + 170, // 216: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo + 411, // 217: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent + 410, // 218: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom + 543, // 219: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry + 396, // 220: tutorial.ResPlayroom.collect:type_name -> tutorial.PlayroomCollectInfo + 544, // 221: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry + 170, // 222: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo + 406, // 223: tutorial.ResPlayroom.Chip:type_name -> tutorial.ChipInfo + 545, // 224: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry + 546, // 225: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry + 547, // 226: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry + 395, // 227: tutorial.ResPlayroom.PetAir:type_name -> tutorial.PlayroomAirInfo + 180, // 228: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask + 408, // 229: tutorial.ResPlayroom.AdItem:type_name -> tutorial.AdItem + 410, // 230: tutorial.ResPlayroom.Target:type_name -> tutorial.FriendRoom + 548, // 231: tutorial.ResPlayroom.WeeklyDiscount:type_name -> tutorial.ResPlayroom.WeeklyDiscountEntry + 180, // 232: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask + 2, // 233: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE + 2, // 234: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE + 2, // 235: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE + 2, // 236: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE + 394, // 237: tutorial.PlayroomDress.List:type_name -> tutorial.PlayroomDressInfo + 549, // 238: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry + 2, // 239: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE + 2, // 240: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE + 2, // 241: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE + 170, // 242: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo + 406, // 243: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo + 550, // 244: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry + 551, // 245: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry + 408, // 246: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem + 552, // 247: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry + 553, // 248: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry + 554, // 249: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry + 555, // 250: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry + 556, // 251: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry + 2, // 252: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE + 2, // 253: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE + 2, // 254: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE + 2, // 255: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE + 557, // 256: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry + 170, // 257: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo + 2, // 258: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE + 558, // 259: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry + 2, // 260: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE + 2, // 261: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE + 2, // 262: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE + 2, // 263: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE + 2, // 264: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE + 2, // 265: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE + 2, // 266: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE + 2, // 267: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE + 2, // 268: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE + 446, // 269: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo + 446, // 270: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo + 2, // 271: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE + 2, // 272: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE + 2, // 273: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE + 457, // 274: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem + 170, // 275: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo + 2, // 276: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE + 462, // 277: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame + 463, // 278: tutorial.ResCatnip.FriendList:type_name -> tutorial.CatnipInvite + 233, // 279: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple + 233, // 280: tutorial.CatnipInvite.Player:type_name -> tutorial.ResPlayerSimple + 2, // 281: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE + 2, // 282: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE + 2, // 283: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE + 2, // 284: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE + 2, // 285: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE + 2, // 286: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE + 2, // 287: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE + 2, // 288: tutorial.ResCatnipEmoji.Code:type_name -> tutorial.RES_CODE + 173, // 289: tutorial.ResGuideTask.TaskEntry.value:type_name -> tutorial.GuideTask + 179, // 290: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek + 180, // 291: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask + 216, // 292: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent + 233, // 293: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple + 286, // 294: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo + 304, // 295: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop + 305, // 296: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop + 296, // 297: tutorial.ResCharge.WeeklyDiscountEntry.value:type_name -> tutorial.WeeklyDiscountInfo + 316, // 298: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo + 235, // 299: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 235, // 300: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 393, // 301: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress + 296, // 302: tutorial.ResPlayroom.WeeklyDiscountEntry.value:type_name -> tutorial.WeeklyDiscountInfo + 170, // 303: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo + 170, // 304: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo + 305, // [305:305] is the sub-list for method output_type + 305, // [305:305] is the sub-list for method input_type + 305, // [305:305] is the sub-list for extension type_name + 305, // [305:305] is the sub-list for extension extendee + 0, // [0:305] is the sub-list for field type_name } func init() { file_proto_Gameapi_proto_init() } @@ -30618,9 +32197,9 @@ func file_proto_Gameapi_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_Gameapi_proto_rawDesc), len(file_proto_Gameapi_proto_rawDesc)), - NumEnums: 13, - NumMessages: 544, + RawDescriptor: file_proto_Gameapi_proto_rawDesc, + NumEnums: 14, + NumMessages: 545, NumExtensions: 0, NumServices: 0, }, @@ -30630,6 +32209,7 @@ func file_proto_Gameapi_proto_init() { MessageInfos: file_proto_Gameapi_proto_msgTypes, }.Build() File_proto_Gameapi_proto = out.File + file_proto_Gameapi_proto_rawDesc = nil file_proto_Gameapi_proto_goTypes = nil file_proto_Gameapi_proto_depIdxs = nil } From 6fd2d3a03970c9600de48c3652a9ff0d93469546 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 10:16:06 +0800 Subject: [PATCH 013/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index c19f15d7..4d2624ae 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -363,7 +363,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.PushClientRes(PlayroomMod.NotifyLose()) case "save": player.PlayMod.ClearData(player) - case "outline": + case "logout": a := player.GetAgent() a.Close() player.ClearData() From dc4f33b1f5ec6a249aa763673330be097d18a6d7 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 11:52:31 +0800 Subject: [PATCH 014/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 4d2624ae..4629c3c3 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -365,6 +365,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.PlayMod.ClearData(player) case "logout": a := player.GetAgent() + player.PushAndSendClienRes(&msg.ForceKickOut{}) a.Close() player.ClearData() case "resetFriend": From c1f32bc792bc4ae11293e99062002d301661ca7b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:23:03 +0800 Subject: [PATCH 015/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 4629c3c3..a5a85253 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -364,10 +364,7 @@ func ReqGmCommand_(player *Player, Command string) error { case "save": player.PlayMod.ClearData(player) case "logout": - a := player.GetAgent() player.PushAndSendClienRes(&msg.ForceKickOut{}) - a.Close() - player.ClearData() case "resetFriend": FriendMod := player.PlayMod.getFriendMod() FriendMod.FriendList = make(map[int]struct{}) From 9512b7b0e08635c037c227527537668a6a7ea8af Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:00:24 +0800 Subject: [PATCH 016/104] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/gamedata/config/Activity.txt | 16 - src/server/gamedata/config/CardDetailCfg.txt | 139 --- .../gamedata/config/ChampshipScoreReward.txt | 35 - src/server/gamedata/config/DecorateCost.txt | 311 ------- src/server/gamedata/config/EndlessGift.txt | 13 - src/server/gamedata/config/GrowthFund.txt | 11 - src/server/gamedata/config/GuideData.txt | 20 - src/server/gamedata/config/IndoorProgress.txt | 109 --- src/server/gamedata/config/LevelUpBuyPack.txt | 11 - src/server/gamedata/config/LimiteEvent.txt | 4 - src/server/gamedata/config/MergeData.txt | 275 ------ src/server/gamedata/config/PassOne.txt | 20 - src/server/gamedata/config/PromotionPack.txt | 5 - .../gamedata/config/RandomNameDataBase.txt | 860 ------------------ src/server/gamedata/config/RankData.txt | 18 - src/server/gamedata/config/SceneData.txt | 9 - src/server/gamedata/config/ShopItem.txt | 19 - src/server/gamedata/config/ShopPack.txt | 9 - src/server/gamedata/config/StartMerge.txt | 67 -- src/server/gamedata/config/StartOrder.txt | 27 - src/server/gamedata/config/test.txt | 4 - 21 files changed, 1982 deletions(-) delete mode 100644 src/server/gamedata/config/Activity.txt delete mode 100644 src/server/gamedata/config/CardDetailCfg.txt delete mode 100644 src/server/gamedata/config/ChampshipScoreReward.txt delete mode 100644 src/server/gamedata/config/DecorateCost.txt delete mode 100644 src/server/gamedata/config/EndlessGift.txt delete mode 100644 src/server/gamedata/config/GrowthFund.txt delete mode 100644 src/server/gamedata/config/GuideData.txt delete mode 100644 src/server/gamedata/config/IndoorProgress.txt delete mode 100644 src/server/gamedata/config/LevelUpBuyPack.txt delete mode 100644 src/server/gamedata/config/LimiteEvent.txt delete mode 100644 src/server/gamedata/config/MergeData.txt delete mode 100644 src/server/gamedata/config/PassOne.txt delete mode 100644 src/server/gamedata/config/PromotionPack.txt delete mode 100644 src/server/gamedata/config/RandomNameDataBase.txt delete mode 100644 src/server/gamedata/config/RankData.txt delete mode 100644 src/server/gamedata/config/SceneData.txt delete mode 100644 src/server/gamedata/config/ShopItem.txt delete mode 100644 src/server/gamedata/config/ShopPack.txt delete mode 100644 src/server/gamedata/config/StartMerge.txt delete mode 100644 src/server/gamedata/config/StartOrder.txt delete mode 100644 src/server/gamedata/config/test.txt diff --git a/src/server/gamedata/config/Activity.txt b/src/server/gamedata/config/Activity.txt deleted file mode 100644 index a2efa29d..00000000 --- a/src/server/gamedata/config/Activity.txt +++ /dev/null @@ -1,16 +0,0 @@ -ActivityId ActivtyName ActiveCfgNames Type StartTime Duration -int string string int string "(list#sep=|),string" -活动id 活动名称 配置表名 活动类型 开始时间 持续时间 -id ActivtyName ActiveCfgNames Type StartTime EndTime -1 Passport Passport.txt 1 0 11 20 12 * 604800 -2 Promotion Promotion.txt 2 0 11 20 12 * 604800 -3 InfinitePack InfinitePack.txt 3 0 0 22 12 * 604800 -4 Passport Passport.txt 1 0 0 28 12 * 604800 -5 Promotion Promotion.txt 2 0 0 28 12 * 604800 -6 InfinitePack InfinitePack.txt 3 0 0 28 12 * 604800 -7 Passport Passport.txt 1 0 0 4 1 * 604800 -8 Promotion Promotion.txt 2 0 0 4 1 * 604800 -9 InfinitePack InfinitePack.txt 3 0 0 4 1 * 604800 -10 7day InfinitePack.txt 4 0 0 16 1 * 604800 -11 Card InfinitePack.txt 5 0 4 6 5 * 7761600 -12 Card InfinitePack.txt 5 0 4 5 8 * 7761600 \ No newline at end of file diff --git a/src/server/gamedata/config/CardDetailCfg.txt b/src/server/gamedata/config/CardDetailCfg.txt deleted file mode 100644 index 9d3b5aa8..00000000 --- a/src/server/gamedata/config/CardDetailCfg.txt +++ /dev/null @@ -1,139 +0,0 @@ -界面配置表 -Id PictureAlbum Icon Color Star ImageRes IsGold Name -int int string int int string int string -Id 等级开放 区域Id 排序Id 价格 原价 -1 1 Card/SubCard/Cards_Deliciousfood_1 1 1 10 0 Cat Food -2 1 Card/SubCard/Cards_Deliciousfood_2 1 1 10 0 Dog Food -3 1 Card/SubCard/Cards_Deliciousfood_3 1 1 10 0 Biscuit -4 1 Card/SubCard/Cards_Deliciousfood_4 1 1 10 0 Steak -5 1 Card/SubCard/Cards_Deliciousfood_5 1 1 10 0 Cupcake -6 1 Card/SubCard/Cards_Deliciousfood_6 1 1 10 0 Turkey Dinner -7 1 Card/SubCard/Cards_Deliciousfood_7 1 1 10 0 Tea Time -8 1 Card/SubCard/Cards_Deliciousfood_8 1 1 10 0 Sashimi -9 1 Card/SubCard/Cards_Deliciousfood_9 2 2 10 0 Birthday Cake -10 2 Card/SubCard/Cards_Rescuemaster_1 1 1 10 0 Take Medicine -11 2 Card/SubCard/Cards_Rescuemaster_2 1 1 10 0 Disinfection -12 2 Card/SubCard/Cards_Rescuemaster_3 1 1 10 0 Clean the Dog -13 2 Card/SubCard/Cards_Rescuemaster_4 1 1 10 0 Clean the Cat -14 2 Card/SubCard/Cards_Rescuemaster_5 1 1 10 0 Wash the Dog -15 2 Card/SubCard/Cards_Rescuemaster_6 1 1 10 0 Wash the Cat -16 2 Card/SubCard/Cards_Rescuemaster_7 1 1 10 0 Dry the Dog -17 2 Card/SubCard/Cards_Rescuemaster_8 2 2 10 0 Dry the Cat -18 2 Card/SubCard/Cards_Rescuemaster_9 2 2 10 0 Brand New -19 3 Card/SubCard/Cards_happy_1 1 1 10 0 Yarn Ball -20 3 Card/SubCard/Cards_happy_2 1 1 10 0 Dog Bone -21 3 Card/SubCard/Cards_happy_3 1 1 10 0 Slide -22 3 Card/SubCard/Cards_happy_4 1 1 10 0 Pet Ball -23 3 Card/SubCard/Cards_happy_5 1 1 10 0 Cat Teaser -24 3 Card/SubCard/Cards_happy_6 1 1 10 0 Frisbee -25 3 Card/SubCard/Cards_happy_7 2 2 10 0 Cat Toy -26 3 Card/SubCard/Cards_happy_8 2 2 10 0 A Nice Day -27 3 Card/SubCard/Cards_happy_9 2 2 10 0 Play With You -28 4 Card/SubCard/Cards_newcome_1 1 1 10 0 This Is Glass -29 4 Card/SubCard/Cards_newcome_2 1 1 10 0 This Is Ceramic -30 4 Card/SubCard/Cards_newcome_3 1 1 10 0 This Is Clay -31 4 Card/SubCard/Cards_newcome_4 1 1 10 0 This Is Garbage -32 4 Card/SubCard/Cards_newcome_5 1 1 10 0 This Is Bed -33 4 Card/SubCard/Cards_newcome_6 2 2 10 0 This Is Curtain -34 4 Card/SubCard/Cards_newcome_7 2 2 10 0 This Is Case -35 4 Card/SubCard/Cards_newcome_8 3 3 10 0 This Is Candle -36 4 Card/SubCard/Cards_newcome_9 3 3 10 0 This Is Computer -37 5 Card/SubCard/Cards_Muddlethrough_1 1 1 10 0 Oh My Yarn -38 5 Card/SubCard/Cards_Muddlethrough_2 1 1 10 0 Oh My Pet Food -39 5 Card/SubCard/Cards_Muddlethrough_3 1 1 10 0 Oh My Car -40 5 Card/SubCard/Cards_Muddlethrough_4 1 1 10 0 Oh My Table -41 5 Card/SubCard/Cards_Muddlethrough_5 1 1 10 0 Oh My Chips -42 5 Card/SubCard/Cards_Muddlethrough_6 2 2 10 0 Oh My Fish -43 5 Card/SubCard/Cards_Muddlethrough_7 2 2 10 0 Oh My Sofa -44 5 Card/SubCard/Cards_Muddlethrough_8 2 2 10 0 Oh My Sink -45 5 Card/SubCard/Cards_Muddlethrough_9 4 4 10 0 Oh My Watermelon -46 6 Card/SubCard/Cards_Dogsintrouble_1 1 1 10 0 Hey My Pizza -47 6 Card/SubCard/Cards_Dogsintrouble_2 1 1 10 0 Hey My Slipper -48 6 Card/SubCard/Cards_Dogsintrouble_3 1 1 10 0 Hey My Seat -49 6 Card/SubCard/Cards_Dogsintrouble_4 1 1 10 0 Hey My Hanging -50 6 Card/SubCard/Cards_Dogsintrouble_5 2 2 10 0 Hey My Wall -51 6 Card/SubCard/Cards_Dogsintrouble_6 2 2 10 0 Hey My Floor -52 6 Card/SubCard/Cards_Dogsintrouble_7 2 2 10 0 Hey My Toilet -53 6 Card/SubCard/Cards_Dogsintrouble_8 3 3 10 0 Hey My Paper -54 6 Card/SubCard/Cards_Dogsintrouble_9 4 4 10 0 Hey My Drink -55 7 Card/SubCard/Cards_catanddog_1 1 1 10 0 Greeting Together -56 7 Card/SubCard/Cards_catanddog_2 1 1 10 0 Let You See -57 7 Card/SubCard/Cards_catanddog_3 1 1 10 0 Whisper -58 7 Card/SubCard/Cards_catanddog_4 2 2 10 0 Play Outside -59 7 Card/SubCard/Cards_catanddog_5 2 2 10 0 Do Not Fight -60 7 Card/SubCard/Cards_catanddog_6 3 3 10 0 Harmony -61 7 Card/SubCard/Cards_catanddog_7 3 3 10 0 Go Hiking -62 7 Card/SubCard/Cards_catanddog_8 4 4 10 0 Sleep Together -63 7 Card/SubCard/Cards_catanddog_9 4 4 10 0 Who I Am -64 8 Card/SubCard/Cards_Funwithcats_1 1 1 10 0 New Toy -65 8 Card/SubCard/Cards_Funwithcats_2 1 1 10 0 Face Touch -66 8 Card/SubCard/Cards_Funwithcats_3 2 2 10 0 On Bed -67 8 Card/SubCard/Cards_Funwithcats_4 2 2 10 0 Smelling -68 8 Card/SubCard/Cards_Funwithcats_5 3 3 10 0 Go Out -69 8 Card/SubCard/Cards_Funwithcats_6 3 3 10 0 Play Toys -70 8 Card/SubCard/Cards_Funwithcats_7 3 3 10 0 In Garden -71 8 Card/SubCard/Cards_Funwithcats_8 4 4 10 0 A Mice? -72 8 Card/SubCard/Cards_Funwithcats_9 5 5 10 0 Good Friend -73 9 Card/SubCard/Cards_homedog_1 1 1 10 0 Best Friend -74 9 Card/SubCard/Cards_homedog_2 2 2 10 0 Meet -75 9 Card/SubCard/Cards_homedog_3 2 2 10 0 Swing -76 9 Card/SubCard/Cards_homedog_4 2 2 10 0 Cool Summer -77 9 Card/SubCard/Cards_homedog_5 3 3 10 0 Go Biking -78 9 Card/SubCard/Cards_homedog_6 3 3 10 0 Group Photo -79 9 Card/SubCard/Cards_homedog_7 4 4 10 0 Play Water -80 9 Card/SubCard/Cards_homedog_8 4 4 10 1 Dress Up -81 9 Card/SubCard/Cards_homedog_9 5 5 10 0 Sled -82 10 Card/SubCard/Cards_Lovinghome_1 1 1 10 0 Soft Sofa -83 10 Card/SubCard/Cards_Lovinghome_2 2 2 10 0 Stand High -84 10 Card/SubCard/Cards_Lovinghome_3 2 2 10 0 Dog's Home -85 10 Card/SubCard/Cards_Lovinghome_4 3 3 10 0 Pack Cat -86 10 Card/SubCard/Cards_Lovinghome_5 3 3 10 0 Bath Dog -87 10 Card/SubCard/Cards_Lovinghome_6 3 3 10 0 Cat's Basket -88 10 Card/SubCard/Cards_Lovinghome_7 4 4 10 0 Watch TV -89 10 Card/SubCard/Cards_Lovinghome_8 5 5 10 0 My Bed -90 10 Card/SubCard/Cards_Lovinghome_9 5 5 10 1 Love Dessert -91 11 Card/SubCard/Cards_Helper_1 1 1 10 0 Find Material -92 11 Card/SubCard/Cards_Helper_2 2 2 10 0 Let's Cook -93 11 Card/SubCard/Cards_Helper_3 3 3 10 0 Cut Meat -94 11 Card/SubCard/Cards_Helper_4 3 3 10 0 Delicious -95 11 Card/SubCard/Cards_Helper_5 4 4 10 0 Woof Chef -96 11 Card/SubCard/Cards_Helper_6 4 4 10 1 Diligent Dog -97 11 Card/SubCard/Cards_Helper_7 4 4 10 1 Cook Learning -98 11 Card/SubCard/Cards_Helper_8 5 5 10 0 Home Cat -99 11 Card/SubCard/Cards_Helper_9 5 5 10 0 Have a Taste -100 12 Card/SubCard/Cards_Showeringishard_1 2 2 10 0 Happy Bath -101 12 Card/SubCard/Cards_Showeringishard_2 2 2 10 0 No Shower -102 12 Card/SubCard/Cards_Showeringishard_3 3 3 10 0 Yellow Duck -103 12 Card/SubCard/Cards_Showeringishard_4 4 4 10 0 Let Me Out -104 12 Card/SubCard/Cards_Showeringishard_5 4 4 10 1 Dog In Tub -105 12 Card/SubCard/Cards_Showeringishard_6 4 4 10 1 Wooden Barrel Bath -106 12 Card/SubCard/Cards_Showeringishard_7 5 5 10 0 Shaking Water -107 12 Card/SubCard/Cards_Showeringishard_8 5 5 10 0 Out Of Bath -108 12 Card/SubCard/Cards_Showeringishard_9 5 5 10 1 Cat Dryer -109 13 Card/SubCard/Cards_Poolparty_1 2 2 10 0 First Try -110 13 Card/SubCard/Cards_Poolparty_2 2 2 10 0 Playing Water -111 13 Card/SubCard/Cards_Poolparty_3 4 4 10 0 Swimming -112 13 Card/SubCard/Cards_Poolparty_4 4 4 10 0 Happy Party -113 13 Card/SubCard/Cards_Poolparty_5 4 4 10 1 New Found -114 13 Card/SubCard/Cards_Poolparty_6 4 4 10 1 Half Break -115 13 Card/SubCard/Cards_Poolparty_7 5 5 10 0 Pool Volleyball -116 13 Card/SubCard/Cards_Poolparty_8 5 5 10 0 Swim Master -117 13 Card/SubCard/Cards_Poolparty_9 5 5 10 1 Energy Restore -118 14 Card/SubCard/Cards_Fashioncat_1 2 2 10 0 Shirt Cat -119 14 Card/SubCard/Cards_Fashioncat_2 3 3 10 0 Leisure Cat -120 14 Card/SubCard/Cards_Fashioncat_3 3 3 10 0 Worker Cat -121 14 Card/SubCard/Cards_Fashioncat_4 4 4 10 0 Detective Cat -122 14 Card/SubCard/Cards_Fashioncat_5 5 5 10 0 Employee Cat -123 14 Card/SubCard/Cards_Fashioncat_6 5 5 10 0 Keeper Cat -124 14 Card/SubCard/Cards_Fashioncat_7 5 5 10 0 Winter Cat -125 14 Card/SubCard/Cards_Fashioncat_8 5 5 10 1 Travel Cat -126 14 Card/SubCard/Cards_Fashioncat_9 5 5 10 1 Hoilday Cat -127 15 Card/SubCard/Cards_Exoticstyle_1 2 2 10 0 North Dog -128 15 Card/SubCard/Cards_Exoticstyle_2 3 3 10 0 West Dog -129 15 Card/SubCard/Cards_Exoticstyle_3 4 4 10 0 Tradition Dog -130 15 Card/SubCard/Cards_Exoticstyle_4 4 4 10 1 Romantic Dog -131 15 Card/SubCard/Cards_Exoticstyle_5 5 5 10 0 South Asia Dog -132 15 Card/SubCard/Cards_Exoticstyle_6 5 5 10 0 Desert Dog -133 15 Card/SubCard/Cards_Exoticstyle_7 5 5 10 0 Royal Dog -134 15 Card/SubCard/Cards_Exoticstyle_8 5 5 10 1 Lake Dog -135 15 Card/SubCard/Cards_Exoticstyle_9 5 5 10 1 East Dog \ No newline at end of file diff --git a/src/server/gamedata/config/ChampshipScoreReward.txt b/src/server/gamedata/config/ChampshipScoreReward.txt deleted file mode 100644 index fd64b99f..00000000 --- a/src/server/gamedata/config/ChampshipScoreReward.txt +++ /dev/null @@ -1,35 +0,0 @@ -界面配置表 -Id ScoreNeed ItemReward SortId -int int string int -Id 积分需求 道具奖励 分组 -1 2 LOCK 0 -2 12 Energy=35 1 -3 20 Cardpack1=1 2 -4 40 Energy=50 2 -5 120 LimitEvent4=5 3 -6 265 Energy=160 3 -7 425 Star=200 4 -8 625 Cardpack2=1 4 -9 890 Energy=300 5 -10 1190 LimitEvent5=10 5 -11 1540 702=1 6 -12 1940 Star=450 6 -13 2420 Cardpack3=1 7 -14 3060 Energy=700 7 -15 3860 Star=900 8 -16 4820 702=1 8 -17 5940 Star=1400 9 -18 7220 Energy=1400 9 -19 8670 LimitEvent1=15 10 -20 10270 703=1 10 -21 12120 Cardpack4=1 11 -22 14200 Energy=2250 11 -23 16520 Star=2500 12 -24 19080 LimitEvent3=30 12 -25 21880 Energy=3050 13 -26 24930 Cardpack4=1 13 -27 28130 Star=3200 14 -28 31650 Energy=3850 14 -29 35490 Star=3600 15 -30 39650 704=1 15 -31 44650 Energy=5500 16 \ No newline at end of file diff --git a/src/server/gamedata/config/DecorateCost.txt b/src/server/gamedata/config/DecorateCost.txt deleted file mode 100644 index 388bc864..00000000 --- a/src/server/gamedata/config/DecorateCost.txt +++ /dev/null @@ -1,311 +0,0 @@ -界面配置表 -Id AreaId SortId CostCount Title Icon Pos Action Spine Button Build Shine -int int int int string string string string string string string string -Id 区域Id 排序Id 消耗资源数量 标题 图标 位置 行为 交互动画 对应按钮 建造效果 闪光效果 -1 1 0 0 show cat/old_curtain 150#625 init_img#bg/clearObj/1 -2 1 0 0 show cat/back_box_2 86#462 init_img#bg/clearObj/2 -3 1 0 0 show cat/back_storage_rack -474#592 init_img#bg/clearObj/3 -4 1 0 0 show cat/back_box_1 460#257 init_img#bg/clearObj/4 -5 1 0 0 show cat/old_gabage 30#-200 init_img#bg/clearObj/5 -6 1 0 0 show cat/center_box -494#244 init_img#bg/clearObj/6 -7 1 0 0 show cat/basketball 491#-354 init_img#bg/clearObj/7 -8 1 0 0 show cat/old_book_1 460#70 init_img#bg/clearObj/8 -9 1 0 0 show cat/front_box_3 63#-104 init_img#bg/clearObj/9 -10 1 0 0 show cat/front_box_1 78#-621 init_img#bg/clearObj/10 -11 1 0 0 show cat/old_wood -480#-20 init_img#bg/clearObj/11 -12 1 0 0 show cat/front_box_2 -486#-362 init_img#bg/clearObj/12 -13 1 0 0 show cat/old_book_2 -585#-935 init_img#bg/clearObj/13 -14 1 0 0 show cat/old_web 0#0 init_img#bg/clearObj/14 -15 1 0 0 hide cat/curtain 166#745 init_img#bg/addObj/1 -16 1 0 0 hide cat/desk -476#597 init_img#bg/addObj/2 -17 1 0 0 hide cat/watch -510#1000 init_img#bg/addObj/3 -18 1 0 0 hide cat/flowerpot_2 -222#587 init_img#bg/addObj/4 -19 1 0 0 hide cat/carpet 0#-110 init_img#bg/addObj/5 -20 1 0 0 hide cat/cat_tree 250#597 init_img#bg/addObj/6 -21 1 0 0 hide cat/cushion -6#-111 init_img#bg/addObj/7 -22 1 0 0 hide cat/toy_ball 425#-25 init_img#bg/addObj/8 -23 1 0 0 hide cat/cat_home -404#220 init_img#bg/addObj/9 -24 1 0 0 hide cat/food_bowl -20#-559 init_img#bg/addObj/10 -25 1 0 0 hide cat/basin 380#-532 init_img#bg/addObj/11 -26 1 0 0 hide cat/flowerpot_1 -459#-381 init_img#bg/addObj/12 -27 1 0 0 hide cat/fence 0#-768 init_img#bg/addObj/13 -28 1 0 0 show "cat_SkeletonData,sick" 40#-100 init_spine#bg/my_sg -29 1 0 0 show cat/bg_dirty 0#0 init_img#bg -30 1 1 80 Wash the cat cat/cat_clear first "replace_spine#bg/my_sg,weak" -31 1 2 90 Clean up basketball cat/basketball first "clear#bg/clearObj/7,bg/clearObj/14" clear -32 1 3 100 Cleaning the cardboard box cat/front_box_1 first clear#bg/clearObj/10 clear -33 1 4 110 Cleaning the cardboard box cat/front_box_2 first "clear#bg/clearObj/12,bg/clearObj/11,bg/clearObj/13" clear -34 1 5 120 Cushion cat/cushion first "replace#bg/clearObj/9,bg/addObj/7@clear#bg/clearObj/5" shine -35 1 6 130 Food bowl cat/food_bowl second "add#bg/addObj/10,bg/addObj/11" cat_feeding bg/addObj/10 shine -36 1 7 140 Happy Little Cat cat/cat_happy second "replace_spine#bg/my_sg,idle" cat_petting "bg/my_sg@0.5,0@200,400" -37 1 8 150 Cleaning the storage box cat/back_box_1 second "clear#bg/clearObj/4,bg/clearObj/8" clear -38 1 9 160 Cleaning up garbage cat/back_box_2 second clear#bg/clearObj/2 clear -39 1 10 170 Clean up express delivery cat/center_box second clear#bg/clearObj/6 clear -40 1 11 180 Cleaning containers cat/back_storage_rack second clear#bg/clearObj/3 clear -41 1 12 190 Cleaning the room cat/bg_clear third "clear#bg/clearObj/1@replace_image#bg,cat/bg_clear" change_bg -42 1 13 200 Carpet cat/carpet third add#bg/addObj/5 build shine -43 1 14 210 Toy ball cat/toy_ball third add#bg/addObj/8 shine -44 1 15 220 Cat Home cat/cat_home four add#bg/addObj/9 cat_sleeping bg/addObj/9 shine -45 1 16 230 Curtain cat/curtain four add#bg/addObj/1 build shine -46 1 17 240 Cat tree cat/cat_tree four add#bg/addObj/6 cat_playing bg/addObj/6 build shine -47 1 18 270 Desk cat/desk four "add#bg/addObj/2,bg/addObj/3" build shine -48 1 19 310 Green plants cat/flowerpot_2 four add#bg/addObj/4 shine -49 1 20 350 Flower and fence cat/flowerpot_1 four "add#bg/addObj/13,bg/addObj/12" build shine -50 2 0 0 show dog_home/old_wallpit 404#806 init_img#bg/clearObj/1 -51 2 0 0 show dog_home/old_fireplace 440#310 init_img#bg/clearObj/2 -52 2 0 0 show dog_home/old_window_1 -15#571 init_img#bg/clearObj/3 -53 2 0 0 show dog_home/old_wallcovering -200#-460 init_img#bg/clearObj/4 -54 2 0 0 show dog_home/old_curtain -50#678 init_img#bg/clearObj/5 -55 2 0 0 show dog_home/old_sofa_3 -35#140 init_img#bg/clearObj/6 -56 2 0 0 show dog_home/old_cloth_3 -42#170 init_img#bg/clearObj/7 -57 2 0 0 show dog_home/old_light_1 -415#285 init_img#bg/clearObj/8 -58 2 0 0 show dog_home/old_sofa_2 -560#95 init_img#bg/clearObj/9 -59 2 0 0 show dog_home/old_cloth_2 -562#55 init_img#bg/clearObj/10 -60 2 0 0 show dog_home/old_box 490#-120 init_img#bg/clearObj/11 -61 2 0 0 show dog_home/old_mat_1 -48#-253 init_img#bg/clearObj/12 -62 2 0 0 show dog_home/old_sofa_1 -460#-728 init_img#bg/clearObj/13 -63 2 0 0 show dog_home/old_cloth_1 -520#-650 init_img#bg/clearObj/14 -64 2 0 0 show dog_home/old_paper -100#-1050 init_img#bg/clearObj/15 -65 2 0 0 show dog_home/old_desk 380#-895 init_img#bg/clearObj/16 -66 2 0 0 show dog_home/old_web 0#0 init_img#bg/clearObj/17 -67 2 0 0 hide dog_home/neck_cover -72#-50 init_img#bg/clearObj/21 -68 2 0 0 show dog_home/old_teacup 246#-590 init_img#bg/clearObj/22 -69 2 0 0 show dog_home/old_light_2 -140#1010 init_img#bg/clearObj/23 -70 2 0 0 hide dog_home/old_window_3 -10#560 init_img#bg/addObj/1 -71 2 0 0 hide dog_home/window -10#640 init_img#bg/addObj/2 -72 2 0 0 hide dog_home/curtain -44#547 init_img#bg/addObj/3 -73 2 0 0 hide dog_home/old_mat_2 -85#-240 init_img#bg/addObj/4 -74 2 0 0 hide dog_home/carpet -40#-294 init_img#bg/addObj/5 -75 2 0 0 hide dog_home/bowl 46#-380 init_img#bg/addObj/6 -76 2 0 0 hide dog_home/desk_1 -480#133 init_img#bg/addObj/7 -77 2 0 0 hide dog_home/light_1 -470#488 init_img#bg/addObj/8 -78 2 0 0 hide dog_home/light_2 -200#955 init_img#bg/addObj/9 -79 2 0 0 hide dog_home/sofa_2 -40#185 init_img#bg/addObj/10 -80 2 0 0 hide dog_home/painting 520#870 init_img#bg/addObj/11 -81 2 0 0 hide dog_home/decorate 490#575 init_img#bg/addObj/12 -82 2 0 0 hide dog_home/fire_place 470#225 init_img#bg/addObj/13 -83 2 0 0 hide dog_home/desk_2 400#-925 init_img#bg/addObj/14 -84 2 0 0 hide dog_home/sofa_1 -550#90 init_img#bg/addObj/15 -85 2 0 0 hide dog_home/sofa_3 -355#-730 init_img#bg/addObj/16 -86 2 0 0 hide dog_home/tea 460#-920 init_img#bg/addObj/17 -87 2 0 0 hide dog_home/tennis 271#-292 init_img#bg/addObj/18 -88 2 0 0 hide dog_home/flower 280#60 init_img#bg/addObj/19 -89 2 0 0 hide dog_home/pillow_1 -615#210 init_img#bg/addObj/20 -90 2 0 0 hide dog_home/pillow_2 -23#266 init_img#bg/addObj/21 -91 2 0 0 hide dog_home/pillow_3 -423#-510 init_img#bg/addObj/22 -92 2 0 0 show dog_home/bg_old 0#0 init_img#bg -93 2 0 0 show "Scene2_SkeletonData,Scene2_weakdog" -135#-210 init_spine#bg/my_sg -94 2 1 280 Cleaning spider webs dog_home/old_web first clear#bg/clearObj/17 -95 2 2 300 Repair wall holes and Window dog_home/old_window_3 first "clear#bg/clearObj/1,bg/clearObj/5@replace#bg/clearObj/3,bg/addObj/1" build shine -96 2 3 320 Clean up debris dog_home/old_wallcovering first "clear#bg/clearObj/15,bg/clearObj/22,bg/clearObj/4" clear -97 2 4 340 Discard cloth dog_home/old_cloth_3 first "clear#bg/clearObj/7,bg/clearObj/10,bg/clearObj/14" clear -98 2 5 360 Add a dog basin dog_home/bowl first "clear#bg/clearObj/11@replace#bg/clearObj/12,bg/addObj/4@add#bg/addObj/6@replace_spine#bg/my_sg,Scene2_idledog" dog_feeding bg/addObj/6 clear shine -99 2 6 380 Repair the floor and wall dog_home/bg_clear second "replace_image#bg,dog_home/bg_clear" dog_petting "bg/my_sg@0.5,0@450,250" change_bg -100 2 7 400 Table lamp dog_home/light_1 second "clear#bg/clearObj/8@add#bg/addObj/7,bg/addObj/8" build shine -101 2 8 420 Replace the chandelier dog_home/light_2 second "replace#bg/clearObj/23,bg/addObj/9" build shine -102 2 9 440 Repair the fireplace dog_home/fire_place second "replace#bg/clearObj/2,bg/addObj/13" build shine -103 2 10 460 Replace the table dog_home/desk_2 second "replace#bg/clearObj/16,bg/addObj/14" build shine -104 2 11 500 Wood flooring and wallpaper dog_home/bg_new third "replace_image#bg,dog_home/bg_new" change_bg -105 2 12 520 Replace carpet dog_home/carpet third "replace#bg/addObj/4,bg/addObj/5@replace_spine#bg/my_sg,Scene2_idle2dog@reset_pos#bg/my_sg,-100=-300" dog_petting "bg/my_sg@0.5,0@300,500" build shine -106 2 13 540 Replacing the sofa dog_home/sofa_2 third "clear#bg/clearObj/6,bg/clearObj/9,bg/clearObj/13@add#bg/addObj/10,bg/addObj/15,bg/addObj/16" build shine -107 2 14 560 Replacing Windows dog_home/window third "replace#bg/addObj/1,bg/addObj/2" build shine -108 2 15 580 Fireplace accessories dog_home/painting third "add#bg/addObj/11,bg/addObj/12" build shine -109 2 16 600 Add tea cups dog_home/tea four add#bg/addObj/17 build shine -110 2 17 620 Dog tennis dog_home/tennis four add#bg/addObj/18 dog_playball bg/addObj/18 shine -111 2 18 640 Add green plants dog_home/flower four add#bg/addObj/19 build shine -112 2 19 660 Add curtains dog_home/curtain four add#bg/addObj/3 build shine -113 2 20 680 Add pillows dog_home/pillow_2 four "add#bg/addObj/20,bg/addObj/21,bg/addObj/22" build shine -114 3 0 0 show kitchen/old_window 481#785 init_img#bg/clearObj/4 -115 3 0 0 show kitchen/old_cupboard_2 168#105 init_img#bg/clearObj/6 -116 3 0 0 show kitchen/old_cupboard_1 -270#870 init_img#bg/clearObj/7 -117 3 0 0 show kitchen/old_water 78#-150 init_img#bg/clearObj/8 -118 3 0 0 show kitchen/old_fridge_dirty -440#205 init_img#bg/clearObj/10 -119 3 0 0 show kitchen/old_cupboard_dirty_2 200#50 init_img#bg/clearObj/11 -120 3 0 0 show kitchen/old_cupboard_dirty_1 -90#825 init_img#bg/clearObj/12 -121 3 0 0 show kitchen/old_microwave_oven 90#416 init_img#bg/clearObj/13 -122 3 0 0 show kitchen/old_flower 300#355 init_img#bg/clearObj/14 -123 3 0 0 show kitchen/old_pot 450#-270 init_img#bg/clearObj/15 -124 3 0 0 show kitchen/old_dog_food -128#-378 init_img#bg/clearObj/16 -125 3 0 0 show kitchen/old_pizza_box 449#-478 init_img#bg/clearObj/17 -126 3 0 0 show kitchen/garbage_5 -70#-840 init_img#bg/clearObj/18 -127 3 0 0 show kitchen/garbage_4 460#-890 init_img#bg/clearObj/19 -128 3 0 0 show kitchen/garbage_3 -490#-500 init_img#bg/clearObj/21 -129 3 0 0 show kitchen/garbage_1 -454#-1082 init_img#bg/clearObj/22 -130 3 0 0 show kitchen/old_chair -288#-765 init_img#bg/clearObj/23 -131 3 0 0 show kitchen/garbage_2 235#-1035 init_img#bg/clearObj/24 -132 3 0 0 hide kitchen/old_fridge -520#200 init_img#bg/clearObj/25 -133 3 0 0 hide kitchen/window 481#785 init_img#bg/addObj/4 -134 3 0 0 hide kitchen/closet_2 168#105 init_img#bg/addObj/6 -135 3 0 0 hide kitchen/closet_1 -270#870 init_img#bg/addObj/7 -136 3 0 0 hide kitchen/microwave_oven 90#416 init_img#bg/addObj/8 -137 3 0 0 hide kitchen/bowl_1 -210#645 init_img#bg/addObj/9 -138 3 0 0 hide kitchen/bowl_3 -485#782 init_img#bg/addObj/10 -139 3 0 0 hide kitchen/kitchenware_1 -195#475 init_img#bg/addObj/11 -140 3 0 0 hide kitchen/pot_1 -265#375 init_img#bg/addObj/12 -141 3 0 0 hide kitchen/fridge -520#200 init_img#bg/addObj/13 -142 3 0 0 hide kitchen/desk 255#-230 init_img#bg/addObj/14 -143 3 0 0 hide kitchen/flower_1 275#395 init_img#bg/addObj/16 -144 3 0 0 hide kitchen/flower_2 475#560 init_img#bg/addObj/17 -145 3 0 0 hide kitchen/chopping_board 625#355 init_img#bg/addObj/18 -146 3 0 0 hide kitchen/bowl_2 535#325 init_img#bg/addObj/19 -147 3 0 0 hide kitchen/orange_juice_3 430#205 init_img#bg/addObj/20 -148 3 0 0 hide kitchen/orange_juice_1 160#150 init_img#bg/addObj/21 -149 3 0 0 hide kitchen/fruit_tray 330#160 init_img#bg/addObj/22 -150 3 0 0 hide kitchen/teapot 520#145 init_img#bg/addObj/23 -151 3 0 0 hide kitchen/orange_juice_2 420#110 init_img#bg/addObj/24 -152 3 0 0 hide kitchen/kitchenware_2 25#395 init_img#bg/addObj/26 -153 3 0 0 hide kitchen/pot_2 -145#365 init_img#bg/addObj/27 -154 3 0 0 show "Scene3_SkeletonData,Scene3_idlecat" -80#310 init_spine#bg/clearObj/my_sg -155 3 0 0 show "Scene3_SkeletonData,Scene3_idledog" 200#-640 init_spine#bg/clearObj/my_sg_2 -156 3 0 0 show kitchen/bg_old 0#0 init_img#bg -157 3 1 225 Clean up debris kitchen/garbage_4 first "clear#bg/clearObj/19,bg/clearObj/24" clear -158 3 2 255 Clean up newspapers kitchen/garbage_1 first "clear#bg/clearObj/18,bg/clearObj/22" clear -159 3 3 285 Clean up dog food kitchen/old_dog_food first "clear#bg/clearObj/16,bg/clearObj/21" clear -160 3 4 315 Cleaning Pizza kitchen/old_pizza_box first "clear#bg/clearObj/15,bg/clearObj/17" clear -161 3 5 345 Turn off the faucet kitchen/old_water first clear#bg/clearObj/8 clear -162 3 6 375 Take away the chair kitchen/old_chair first clear#bg/clearObj/23 clear -163 3 7 405 Cleaning the refrigerator kitchen/old_fridge second "replace#bg/clearObj/10,bg/clearObj/25" build shine -164 3 8 435 Clean the cabinet kitchen/old_cupboard_2 second clear#bg/clearObj/11 clear -165 3 9 465 Cleaning the wall cabinet kitchen/old_cupboard_1 second clear#bg/clearObj/12 clear -166 3 10 495 Acquire a completely new outlook kitchen/floor third "replace_image#bg,kitchen/bg_clear@replace#bg/clearObj/4,bg/addObj/4@replace#bg/clearObj/6,bg/addObj/6@replace#bg/clearObj/7,bg/addObj/7@replace#bg/clearObj/13,bg/addObj/8@replace#bg/clearObj/25,bg/addObj/13" change_bg shine -167 3 11 555 Cleaning Dogs kitchen/dog four "replace_spine#bg/clearObj/my_sg_2,Scene3_idle2dog@reset_pos#bg/clearObj/my_sg_2,-280=-810" build -168 3 12 585 Add a dining table kitchen/desk four add#bg/addObj/14 build shine -169 3 13 615 Add potted plants kitchen/flower_2 four "clear#bg/clearObj/14@add#bg/addObj/16,bg/addObj/17,bg/addObj/18,bg/addObj/19" build shine -170 3 14 645 Have some juice kitchen/orange_juice_3 five "add#bg/addObj/20,bg/addObj/21,bg/addObj/24" shine -171 3 15 675 Adding fruit trays kitchen/fruit_tray five "add#bg/addObj/22,bg/addObj/23" shine -172 3 16 705 Cats running recklessly kitchen/cat five "replace_spine#bg/clearObj/my_sg,Scene3_idle2cat@reset_pos#bg/clearObj/my_sg,320=75" build -173 3 17 735 Add tableware kitchen/bowl_3 six "add#bg/addObj/9,bg/addObj/10" build shine -174 3 18 765 Add a spoon kitchen/kitchenware_2 six add#bg/addObj/26 build shine -175 3 19 795 Add kitchen utensils kitchen/kitchenware_1 six add#bg/addObj/11 build shine -176 3 20 825 Add a pot kitchen/pot_1 six "add#bg/addObj/12,bg/addObj/27" build shine -177 4 0 0 show outdoor/old_barrel_3 510#430 init_img#bg/clearObj/1 -178 4 0 0 show outdoor/old_grass_3 -631#480 init_img#bg/clearObj/2 -179 4 0 0 show outdoor/old_barrel_2 568#230 init_img#bg/clearObj/3 -180 4 0 0 show outdoor/old_treeroot -160#425 init_img#bg/clearObj/4 -181 4 0 0 show outdoor/old_dog 211#367 init_img#bg/clearObj/5 -182 4 0 0 show outdoor/old_dog_mud 190#375 init_img#bg/clearObj/6 -183 4 0 0 show outdoor/old_mudpit 272#3 init_img#bg/clearObj/7 -184 4 0 0 show outdoor/old_barrel_1 -360#0 init_img#bg/clearObj/8 -185 4 0 0 show outdoor/old_grass_4 -383#-150 init_img#bg/clearObj/9 -186 4 0 0 show outdoor/old_cat_mud -70#-50 init_img#bg/clearObj/10 -187 4 0 0 hide outdoor/old_cat -68#-35 init_img#bg/clearObj/11 -188 4 0 0 show outdoor/old_board 408#-430 init_img#bg/clearObj/12 -189 4 0 0 show outdoor/old_box 317#-728 init_img#bg/clearObj/13 -190 4 0 0 show outdoor/old_grass_1 392#-950 init_img#bg/clearObj/14 -191 4 0 0 show outdoor/old_grass_2 -372#-760 init_img#bg/clearObj/15 -192 4 0 0 hide outdoor/house 0#701 init_img#bg/addObj/1 -193 4 0 0 hide outdoor/floor 0#-340 init_img#bg/addObj/2 -194 4 0 0 hide outdoor/pet_home -200#500 init_img#bg/addObj/3 -195 4 0 0 hide outdoor/pool 340#-30 init_img#bg/addObj/4 -196 4 0 0 hide outdoor/slider 390#345 init_img#bg/addObj/5 -197 4 0 0 hide outdoor/cat -170#220 init_img#bg/addObj/6 -198 4 0 0 hide outdoor/dog 210#45 init_img#bg/addObj/7 -199 4 0 0 hide outdoor/yellow_duck 500#-30 init_img#bg/addObj/8 -200 4 0 0 hide outdoor/food_box -340#-100 init_img#bg/addObj/9 -201 4 0 0 hide outdoor/desk 300#-650 init_img#bg/addObj/10 -202 4 0 0 hide outdoor/shrub 0#-890 init_img#bg/addObj/11 -203 4 0 0 hide outdoor/tea_pot 470#-275 init_img#bg/addObj/12 -204 4 0 0 hide outdoor/tea_cup 425#-490 init_img#bg/addObj/13 -205 4 0 0 hide outdoor/frisbee 240#-360 init_img#bg/addObj/14 -206 4 0 0 show outdoor/bg_old 0#0 init_img#bg -207 4 1 270 Cat Bathing outdoor/old_cat first "replace#bg/clearObj/10,bg/clearObj/11" -208 4 2 300 Dog Bathing outdoor/old_dog first clear#bg/clearObj/6 clear -209 4 3 330 Clean up weeds outdoor/old_grass_4 first clear#bg/clearObj/9 clear -210 4 4 360 Clean up old wooden barrels outdoor/old_barrel_1 first clear#bg/clearObj/8 clear -211 4 5 390 Filling out mud pits outdoor/old_mudpit first clear#bg/clearObj/7 clear -212 4 6 420 Clean the wooden bucket outdoor/old_barrel_2 first clear#bg/clearObj/3 clear -213 4 7 450 Cleaning wooden stakes outdoor/old_treeroot first "clear#bg/clearObj/1,bg/clearObj/2,bg/clearObj/4" clear -214 4 8 480 Clean the wooden box outdoor/old_box first "clear#bg/clearObj/12,bg/clearObj/13" clear -215 4 9 510 Clean up weeds outdoor/old_grass_2 first "clear#bg/clearObj/14,bg/clearObj/15" clear -216 4 10 540 Clean up fallen leaves outdoor/floor second "add#bg/addObj/1,bg/addObj/2" -217 4 11 600 Air cushion swimming pool outdoor/pool second add#bg/addObj/4 build shine -218 4 12 630 Curious Cat outdoor/cat second "replace#bg/clearObj/11,bg/addObj/6" -219 4 13 660 A dog playing with water outdoor/dog third "replace#bg/clearObj/5,bg/addObj/7" -220 4 14 690 Add escalators outdoor/slider third add#bg/addObj/5 build shine -221 4 15 720 Little Yellow Duck outdoor/yellow_duck third add#bg/addObj/8 shine -222 4 16 750 Planting shrubs outdoor/shrub third add#bg/addObj/11 build shine -223 4 17 780 Add a cat's nest outdoor/pet_home third add#bg/addObj/3 build shine -224 4 18 810 Add Pet food bowl outdoor/food_box third add#bg/addObj/9 shine -225 4 19 840 Add tables and chairs outdoor/desk third add#bg/addObj/10 build shine -226 4 20 870 Add tea sets and frisbees outdoor/tea_pot four "add#bg/addObj/12,bg/addObj/13,bg/addObj/14" shine -227 5 0 0 show treehouse/old_fallen_leaves_4 -286#-660 init_img#bg/clearObj/1 -228 5 0 0 show treehouse/old_tree 0#146 init_img#bg/clearObj/2 -229 5 0 0 show treehouse/old_board_3 460#100 init_img#bg/clearObj/3 -230 5 0 0 show treehouse/old_board_1 545#-325 init_img#bg/clearObj/4 -231 5 0 0 show treehouse/old_board_2 285#-170 init_img#bg/clearObj/5 -232 5 0 0 show treehouse/old_fallen_leaves_3 120#100 init_img#bg/clearObj/6 -233 5 0 0 show treehouse/old_platform -88#-60 init_img#bg/clearObj/7 -234 5 0 0 show treehouse/old_house -200#620 init_img#bg/clearObj/8 -235 5 0 0 show treehouse/old_roof -160#900 init_img#bg/clearObj/9 -236 5 0 0 show treehouse/old_lamp_holder 290#810 init_img#bg/clearObj/10 -237 5 0 0 show treehouse/old_fence -92#320 init_img#bg/clearObj/11 -238 5 0 0 show treehouse/old_cat 135#540 init_img#bg/clearObj/12 -239 5 0 0 show treehouse/old_table 50#-770 init_img#bg/clearObj/13 -240 5 0 0 show treehouse/old_fallen_leaves_1 -518#-740 init_img#bg/clearObj/14 -241 5 0 0 show treehouse/old_ladder -55#-700 init_img#bg/clearObj/15 -242 5 0 0 show treehouse/old_dog 50#-660 init_img#bg/clearObj/16 -243 5 0 0 show treehouse/old_window -610#560 init_img#bg/clearObj/17 -244 5 0 0 show treehouse/old_door -580#460 init_img#bg/clearObj/18 -245 5 0 0 show treehouse/old_tire 450#90 init_img#bg/clearObj/19 -246 5 0 0 show treehouse/old_stone 482#-410 init_img#bg/clearObj/20 -247 5 0 0 show treehouse/old_slabstone 540#-650 init_img#bg/clearObj/21 -248 5 0 0 show treehouse/old_fallen_leaves_2 460#-960 init_img#bg/clearObj/22 -249 5 0 0 hide treehouse/leaves 450#290 init_img#bg/clearObj/23 -250 5 0 0 hide treehouse/dog 265#-625 init_img#bg/clearObj/24 -251 5 0 0 show treehouse/bg_old 0#0 init_img#bg -252 5 0 0 hide treehouse/tree 0#145 init_img#bg/addObj/1 -253 5 0 0 hide treehouse/broom -530#-430 init_img#bg/addObj/2 -254 5 0 0 hide treehouse/hammock 20#-60 init_img#bg/addObj/3 -255 5 0 0 hide treehouse/ball -70#-480 init_img#bg/addObj/4 -256 5 0 0 hide treehouse/Trojan_horse 380#-160 init_img#bg/addObj/5 -257 5 0 0 hide treehouse/platform -90#-50 init_img#bg/addObj/6 -258 5 0 0 hide treehouse/house -200#620 init_img#bg/addObj/7 -259 5 0 0 hide treehouse/window_1 5#570 init_img#bg/addObj/8 -260 5 0 0 hide treehouse/door -420#470 init_img#bg/addObj/9 -261 5 0 0 hide treehouse/fence -92#320 init_img#bg/addObj/10 -262 5 0 0 hide treehouse/cat -260#280 init_img#bg/addObj/11 -263 5 0 0 hide treehouse/roof -160#900 init_img#bg/addObj/12 -264 5 0 0 hide treehouse/window -610#560 init_img#bg/addObj/13 -265 5 0 0 hide treehouse/table 60#-856 init_img#bg/addObj/14 -266 5 0 0 hide treehouse/ladder -55#-700 init_img#bg/addObj/15 -267 5 0 0 hide treehouse/bed 50#475 init_img#bg/addObj/16 -268 5 0 0 hide treehouse/bears 35#580 init_img#bg/addObj/17 -269 5 0 0 hide treehouse/sill 10#435 init_img#bg/addObj/18 -270 5 0 0 hide treehouse/girl -140#550 init_img#bg/addObj/19 -271 5 0 0 hide treehouse/watch 5#750 init_img#bg/addObj/20 -272 5 0 0 hide treehouse/books 40#462 init_img#bg/addObj/21 -273 5 0 0 hide treehouse/curtain 10#580 init_img#bg/addObj/22 -274 5 0 0 hide treehouse/flower 125#525 init_img#bg/addObj/23 -275 5 0 0 hide treehouse/window_frame 5#570 init_img#bg/addObj/24 -276 5 0 0 hide treehouse/mask 35#890 init_img#bg/addObj/25 -277 5 0 0 hide treehouse/lamp_holder 300#820 init_img#bg/addObj/26 -278 5 0 0 hide treehouse/light 330#715 init_img#bg/addObj/27 -279 5 0 0 hide treehouse/coffee -30#450 init_img#bg/addObj/28 -280 5 0 0 hide treehouse/cat_food -619#515 init_img#bg/addObj/29 -281 5 0 0 hide treehouse/fruit_tray 30#-660 init_img#bg/addObj/30 -282 5 0 0 hide treehouse/bird 450#567 init_img#bg/addObj/31 -283 5 1 120 Clean up debris treehouse/old_board_3 first "clear#bg/clearObj/3,bg/clearObj/19" clear -284 5 2 160 Cleaning wooden boards treehouse/old_board_2 first "clear#bg/clearObj/4,bg/clearObj/5,bg/clearObj/20" clear -285 5 3 200 Clean up fallen leaves treehouse/old_fallen_leaves_2 first "clear#bg/clearObj/1,bg/clearObj/6,bg/clearObj/21,bg/clearObj/22" clear -286 5 4 240 Clean up old stairs treehouse/old_ladder first clear#bg/clearObj/15 clear -287 5 5 280 Demolition of roofs and doors treehouse/old_roof first "clear#bg/clearObj/9,bg/clearObj/10,bg/clearObj/18" clear -288 5 6 320 Demolition of houses treehouse/old_house first "clear#bg/clearObj/17,bg/clearObj/8" clear -289 5 7 360 Sunny treehouse/bg_clear first "replace_image#bg,treehouse/bg_clear" change_bg -290 5 8 400 Golden Tree treehouse/tree first "replace#bg/clearObj/2,bg/addObj/1" -291 5 9 440 Tree House Base treehouse/platform second "replace#bg/clearObj/7,bg/addObj/6@add#bg/clearObj/23" build shine -292 5 10 480 Clean the fence treehouse/fence third "replace#bg/clearObj/11,bg/addObj/10@replace#bg/clearObj/12,bg/addObj/11" shine -293 5 11 520 Build a tree house treehouse/house third "add#bg/addObj/7,bg/addObj/8,bg/addObj/9,bg/addObj/13" build shine -294 5 12 560 Building a roof treehouse/roof four add#bg/addObj/12 build shine -295 5 13 600 Happy Dog treehouse/dog four "replace#bg/clearObj/16,bg/clearObj/24" -296 5 14 640 Broom treehouse/broom four "replace#bg/clearObj/14,bg/addObj/2" -297 5 15 680 Install stairs treehouse/ladder four add#bg/addObj/15 build shine -298 5 16 720 New Table treehouse/table four "replace#bg/clearObj/13,bg/addObj/14" build shine -299 5 17 760 Little Bear treehouse/bears five "add#bg/addObj/24,bg/addObj/16,bg/addObj/17,bg/addObj/18,bg/addObj/21" shine -300 5 18 800 Hammock treehouse/hammock five "add#bg/addObj/3,bg/addObj/4" build shine -301 5 19 840 Trojan horse treehouse/Trojan_horse five add#bg/addObj/5 build shine -302 5 20 880 Pet identification treehouse/mask five add#bg/addObj/25 build shine -303 5 21 920 Star light treehouse/light five "add#bg/addObj/26,bg/addObj/27" build shine -304 5 22 960 Girl treehouse/girl six "add#bg/addObj/19,bg/addObj/28" -305 5 23 1000 Curtain treehouse/curtain six "add#bg/addObj/20,bg/addObj/22,bg/addObj/29" build shine -306 5 24 1040 Fruit tray treehouse/fruit_tray six add#bg/addObj/30 shine -307 5 25 1080 Parrot treehouse/bird seven "add#bg/addObj/23,bg/addObj/31" shine diff --git a/src/server/gamedata/config/EndlessGift.txt b/src/server/gamedata/config/EndlessGift.txt deleted file mode 100644 index 7bbfee52..00000000 --- a/src/server/gamedata/config/EndlessGift.txt +++ /dev/null @@ -1,13 +0,0 @@ -等级配置表 -Id Content SellType SellPrice -int int string float -Id 内容 类型 价格 -1 601=1 Free 0 -2 562=1 Ad 0 -3 "562=1,Energy=128" Dollar 0.49 -4 "602=1,Diamond=36" Ad 0 -5 601=1 Free 0 -6 "562=1,Energy=288" Dollar 0.99 -7 602=1 Free 0 -8 "562=1,Diamond=36" Ad 0 -9 "562=2,Energy=388" Dollar 1.49 diff --git a/src/server/gamedata/config/GrowthFund.txt b/src/server/gamedata/config/GrowthFund.txt deleted file mode 100644 index 1faca35f..00000000 --- a/src/server/gamedata/config/GrowthFund.txt +++ /dev/null @@ -1,11 +0,0 @@ -界面配置表 -Id Level RewardIds RewardCnt Price OriginPrice Describe -int int string string float float string -Id 等级开放 区域Id 排序Id 价格 原价 fds -1 5 Diamond|Energy 100|100 3 10 upgrade to Lv5 Claim rewards! -2 8 Diamond|Energy 200|200 3 10 upgrade to Lv8 Claim rewards! -3 11 Diamond|Energy 100|101 3 10 upgrade to Lv11 Claim rewards! -4 14 Diamond|Energy 200|201 3 10 upgrade to Lv14 Claim rewards! -5 17 Diamond|Energy 100|102 3 10 upgrade to Lv17 Claim rewards! -6 20 Diamond|Energy 200|202 3 10 upgrade to Lv20 Claim rewards! -7 23 Diamond|Energy 100|103 3 10 upgrade to Lv23 Claim rewards! \ No newline at end of file diff --git a/src/server/gamedata/config/GuideData.txt b/src/server/gamedata/config/GuideData.txt deleted file mode 100644 index b9937ca7..00000000 --- a/src/server/gamedata/config/GuideData.txt +++ /dev/null @@ -1,20 +0,0 @@ -界面配置表 -Id targetStr fingerType title titlePos other disappear -int string int string string string string -Id 目标 手指类型 标题 标题位置 其他 消失 -0 MainHomeUI/bringupBtn 1 You accidentally found a poor little cat in the garbage section, please help it! up null null -1 MainHomeUI/mergeBtn 1 Welcome to the Pets Home! Please allow me to guide you about the producing progress. Click this button first. down null null -2 MainMergePanel/center_2 2 Move two same items together to merge and upgrade! down 隐藏建造按钮 null -3 MainMergePanel/right_6 2 Continue merging and we will find more items. down null null -4 MainMergePanel/center_12 2 Almost there! Let us try one more time. up null null -5 MainMergePanel/center_12 1 Well done! Now you have a Food Table! Click it to get some food! up null null -6 MainMergePanel/center_12 1 These food could not be enough. Let us get more! up null null -7 MainMergePanel/center_12 1 Still not enough. Recuperation requires high-energy food. up null null -8 null 2 null null null null -9 null 2 null null null null -10 MainMergePanel/order_first 1 Excellent! You finished food producing for the first time.Let the pets have a taste! center null null -11 null 0 New food order coming in! Continue merging to finish the order! center null auto -12 MainMergePanel/buildBtn 1 We can start rebuilding the Pets Home since we have got enough stars. center 展示建造按钮 null -13 MainDecoratePanel/OpenObjItem 1 Quite a mess isn't it? Click the button for the first step. center null null -14 MainDecoratePanel/buildBtn 1 Let us do some cleaning! down null null -15 null 1 Well done! Let us get more stars! center null null \ No newline at end of file diff --git a/src/server/gamedata/config/IndoorProgress.txt b/src/server/gamedata/config/IndoorProgress.txt deleted file mode 100644 index b55de309..00000000 --- a/src/server/gamedata/config/IndoorProgress.txt +++ /dev/null @@ -1,109 +0,0 @@ -内景进度表 -Id Scene Lv Reward -int int int int -Id 场景 等级 奖励 -1 1 1 0 -2 1 2 0 -3 1 3 0 -4 1 4 0 -5 1 5 562 -6 1 6 581 -7 1 7 0 -8 1 8 0 -9 1 9 0 -10 1 10 241 -11 1 11 0 -12 1 12 0 -13 1 13 581 -14 1 14 121 -15 1 15 0 -16 1 16 562 -17 1 17 0 -18 1 18 0 -19 1 19 0 -20 1 20 201 -21 2 1 181 -22 2 2 0 -23 2 3 141 -24 2 4 0 -25 2 5 162 -26 2 6 0 -27 2 7 164 -28 2 8 0 -29 2 9 585 -30 2 10 0 -31 2 11 585 -32 2 12 0 -33 2 13 183 -34 2 14 0 -35 2 15 184 -36 2 16 0 -37 2 17 562 -38 2 18 0 -39 2 19 585 -40 2 20 0 -41 3 1 0 -42 3 2 0 -43 3 3 0 -44 3 4 562 -45 3 5 0 -46 3 6 0 -47 3 7 0 -48 3 8 561 -49 3 9 0 -50 3 10 0 -51 3 11 0 -52 3 12 562 -53 3 13 0 -54 3 14 0 -55 3 15 0 -56 3 16 562 -57 3 17 0 -58 3 18 0 -59 3 19 0 -60 3 20 585 -61 4 1 0 -62 4 2 0 -63 4 3 0 -64 4 4 562 -65 4 5 0 -66 4 6 0 -67 4 7 0 -68 4 8 561 -69 4 9 0 -70 4 10 0 -71 4 11 0 -72 4 12 562 -73 4 13 0 -74 4 14 0 -75 4 15 0 -76 4 16 562 -77 4 17 0 -78 4 18 0 -79 4 19 0 -80 4 20 585 -81 5 1 0 -82 5 2 0 -83 5 3 0 -84 5 4 0 -85 5 5 562 -86 5 6 0 -87 5 7 0 -88 5 8 0 -89 5 9 0 -90 5 10 561 -91 5 11 0 -92 5 12 0 -93 5 13 0 -94 5 14 0 -95 5 15 601 -96 5 16 0 -97 5 17 0 -98 5 18 0 -99 5 19 0 -100 5 20 562 -101 5 21 0 -102 5 22 0 -103 5 23 0 -104 5 24 0 -105 5 25 585 diff --git a/src/server/gamedata/config/LevelUpBuyPack.txt b/src/server/gamedata/config/LevelUpBuyPack.txt deleted file mode 100644 index 1faca35f..00000000 --- a/src/server/gamedata/config/LevelUpBuyPack.txt +++ /dev/null @@ -1,11 +0,0 @@ -界面配置表 -Id Level RewardIds RewardCnt Price OriginPrice Describe -int int string string float float string -Id 等级开放 区域Id 排序Id 价格 原价 fds -1 5 Diamond|Energy 100|100 3 10 upgrade to Lv5 Claim rewards! -2 8 Diamond|Energy 200|200 3 10 upgrade to Lv8 Claim rewards! -3 11 Diamond|Energy 100|101 3 10 upgrade to Lv11 Claim rewards! -4 14 Diamond|Energy 200|201 3 10 upgrade to Lv14 Claim rewards! -5 17 Diamond|Energy 100|102 3 10 upgrade to Lv17 Claim rewards! -6 20 Diamond|Energy 200|202 3 10 upgrade to Lv20 Claim rewards! -7 23 Diamond|Energy 100|103 3 10 upgrade to Lv23 Claim rewards! \ No newline at end of file diff --git a/src/server/gamedata/config/LimiteEvent.txt b/src/server/gamedata/config/LimiteEvent.txt deleted file mode 100644 index 20beec87..00000000 --- a/src/server/gamedata/config/LimiteEvent.txt +++ /dev/null @@ -1,4 +0,0 @@ -LimiteEventId EventName Type StartTime Duration AddTimes -int string int string "(list#sep=|),string" AddTimes -�id ����� ����� ��ʼʱ�� ����ʱ�� AddTimes -id EventName Type StartTime EndTime AddTimes \ No newline at end of file diff --git a/src/server/gamedata/config/MergeData.txt b/src/server/gamedata/config/MergeData.txt deleted file mode 100644 index db5772cb..00000000 --- a/src/server/gamedata/config/MergeData.txt +++ /dev/null @@ -1,275 +0,0 @@ -界面配置表 -Id Lv MaxLv Icon Color Title Content SellType SellNum Star Origin Capacity CoolTime CoolNum Emit_List SellDiamond Relative Type Emit_ID Emit_Type Product_Type Order_Score -int int int string string string string string int int string int int int string int string string string string string int -Id 等级 最大等级 图标 系列 标题 内容 出售类型 出售价格 订单星星数 来源 容量 冷却时间 快速冷却消耗 发射内容 出售钻石 关联 类型 发射器编号 发射器类型 产物类型 订单积分 -1 1 12 Production_A1_LV1 Food Fish-shaped Treats Food star 1 5 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product main 1 -2 2 12 Production_A1_LV2 Food Bone-shaped Treats Food star 1 9 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product main 2 -3 3 12 Production_A1_LV3 Food Mixed Pet Treats Food star 3 15 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product main 4 -4 4 12 Production_A1_LV4 Food Pet Food Food star 5 27 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 2 Cooking Tools Product main 8 -5 5 12 Production_A1_LV5 Food Advanced Pet Food Food star 9 48 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 4 Cooking Tools Product main 16 -6 6 12 Production_A1_LV6 Food Premium Pet Food Food star 16 84 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 7 Cooking Tools Product main 32 -7 7 12 Production_A1_LV7 Food Pet Patty Food star 28 149 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 13 Cooking Tools Product main 64 -8 8 12 Production_A1_LV8 Food Pet Sausage Food star 51 264 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 25 Cooking Tools Product main 128 -9 9 12 Production_A1_LV9 Food Pet Rice Food star 90 466 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 45 Cooking Tools Product main 256 -10 10 12 Production_A1_LV10 Food Advanced Pet Rice Food star 158 825 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 80 Cooking Tools Product main 512 -11 11 12 Production_A1_LV11 Food Pet Ham Food star 280 1459 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 140 Cooking Tools Product main 1024 -12 12 12 Production_A1_LV12 Food Pet Roast Chicken Food star 495 2579 "84,85,86,87,88,89,90,91,92" -1 -1 -1 null 240 Cooking Tools Product main 2048 -21 1 12 Production_A2_LV1 Can Cat Snack Can star 1 5 "85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product sub 4 -22 2 12 Production_A2_LV2 Can Packed Snack Can star 1 9 "85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product sub 8 -23 3 12 Production_A2_LV3 Can Advanced Packed Snack Can star 3 16 "85,86,87,88,89,90,91,92" -1 -1 -1 null 1 Cooking Tools Product sub 16 -24 4 12 Production_A2_LV4 Can Cat Snack Can Can star 5 28 "85,86,87,88,89,90,91,92" -1 -1 -1 null 2 Cooking Tools Product sub 32 -25 5 12 Production_A2_LV5 Can Cat Tuna Can Can star 9 50 "85,86,87,88,89,90,91,92" -1 -1 -1 null 4 Cooking Tools Product sub 64 -26 6 12 Production_A2_LV6 Can Advanced Tuna Can Can star 16 89 "85,86,87,88,89,90,91,92" -1 -1 -1 null 7 Cooking Tools Product sub 128 -27 7 12 Production_A2_LV7 Can Main Dish Can Can star 28 157 "85,86,87,88,89,90,91,92" -1 -1 -1 null 13 Cooking Tools Product sub 256 -28 8 12 Production_A2_LV8 Can Advanced Main Dish Can Can star 51 277 "85,86,87,88,89,90,91,92" -1 -1 -1 null 25 Cooking Tools Product sub 512 -29 9 12 Production_A2_LV9 Can Premium Main Dish Can Can star 90 490 "85,86,87,88,89,90,91,92" -1 -1 -1 null 45 Cooking Tools Product sub 1024 -30 10 12 Production_A2_LV10 Can Small Fish Pack Can star 158 866 "85,86,87,88,89,90,91,92" -1 -1 -1 null 80 Cooking Tools Product sub 2048 -31 11 12 Production_A2_LV11 Can Advanced Small Fish Pack Can star 280 1532 "85,86,87,88,89,90,91,92" -1 -1 -1 null 140 Cooking Tools Product sub 4096 -32 12 12 Production_A2_LV12 Can Premium Small Fish Pack Can star 495 2708 "85,86,87,88,89,90,91,92" -1 -1 -1 null 240 Cooking Tools Product sub 8192 -41 1 12 Production_B1_LV1 Pet Cloth Cotton Pet Cloth star 1 5 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product main 1 -42 2 12 Production_B1_LV2 Pet Cloth Cotton Ball Pet Cloth star 1 9 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product main 2 -43 3 12 Production_B1_LV3 Pet Cloth Pet Collar Pet Cloth star 3 16 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product main 4 -44 4 12 Production_B1_LV4 Pet Cloth Pet Napkin Pet Cloth star 5 28 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 2 Sewing Product main 8 -45 5 12 Production_B1_LV5 Pet Cloth Advanced Pet Napkin Pet Cloth star 9 50 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 4 Sewing Product main 16 -46 6 12 Production_B1_LV6 Pet Cloth Pet Scarf Pet Cloth star 16 89 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 7 Sewing Product main 32 -47 7 12 Production_B1_LV7 Pet Cloth Pet Warm Hat Pet Cloth star 28 157 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 13 Sewing Product main 64 -48 8 12 Production_B1_LV8 Pet Cloth Pet Warm Set Pet Cloth star 51 277 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 25 Sewing Product main 128 -49 9 12 Production_B1_LV9 Pet Cloth Pet Sweater Pet Cloth star 90 490 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 45 Sewing Product main 256 -50 10 12 Production_B1_LV10 Pet Cloth Advanced Pet Sweater Pet Cloth star 158 866 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 80 Sewing Product main 512 -51 11 12 Production_B1_LV11 Pet Cloth Premium Pet Sweater Pet Cloth star 280 1532 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 140 Sewing Product main 1024 -52 12 12 Production_B1_LV12 Pet Cloth Pet Jacket Pet Cloth star 495 2708 "104,105,106,107,108,109,110,111,112" -1 -1 -1 null 240 Sewing Product main 2048 -61 1 12 Production_B2_LV1 Pet Shoes Pet Paw Sticker Pet Shoes star 1 5 "105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product sub 4 -62 2 12 Production_B2_LV2 Pet Shoes Pet Socks Pet Shoes star 1 9 "105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product sub 8 -63 3 12 Production_B2_LV3 Pet Shoes Cute Pet Socks Pet Shoes star 3 17 "105,106,107,108,109,110,111,112" -1 -1 -1 null 1 Sewing Product sub 16 -64 4 12 Production_B2_LV4 Pet Shoes Pet Sandals Pet Shoes star 5 30 "105,106,107,108,109,110,111,112" -1 -1 -1 null 2 Sewing Product sub 32 -65 5 12 Production_B2_LV5 Pet Shoes Cute Pet Sandals Pet Shoes star 9 52 "105,106,107,108,109,110,111,112" -1 -1 -1 null 4 Sewing Product sub 64 -66 6 12 Production_B2_LV6 Pet Shoes Pet Shoes Pet Shoes star 16 93 "105,106,107,108,109,110,111,112" -1 -1 -1 null 7 Sewing Product sub 128 -67 7 12 Production_B2_LV7 Pet Shoes Cute Pet Shoes Pet Shoes star 28 164 "105,106,107,108,109,110,111,112" -1 -1 -1 null 13 Sewing Product sub 256 -68 8 12 Production_B2_LV8 Pet Shoes Pet Boots Pet Shoes star 51 290 "105,106,107,108,109,110,111,112" -1 -1 -1 null 25 Sewing Product sub 512 -69 9 12 Production_B2_LV9 Pet Shoes Cute Pet Boots Pet Shoes star 90 513 "105,106,107,108,109,110,111,112" -1 -1 1 null 45 Sewing Product sub 1024 -70 10 12 Production_B2_LV10 Pet Shoes Pet Sports Shoes Pet Shoes star 158 907 "105,106,107,108,109,110,111,112" -1 -1 -1 null 80 Sewing Product sub 2048 -71 11 12 Production_B2_LV11 Pet Shoes Pet Warm Shoes Pet Shoes star 280 1604 "105,106,107,108,109,110,111,112" -1 -1 -1 null 140 Sewing Product sub 4096 -72 12 12 Production_B2_LV12 Pet Shoes Advanced Pet Warm Shoes Pet Shoes star 495 2837 "105,106,107,108,109,110,111,112" -1 -1 -1 null 240 Sewing Product sub 8192 -81 1 12 Launcher_A_LV1 Cooking Tools Fish-Shaped Cookie Cutter Cooking Tools null 1 1 null -1 -1 -1 null 40 "Food,Can" Emitter A normal "Food,Can" 0 -82 2 12 Launcher_A_LV2 Cooking Tools Bone-Shaped Cookie Cutter Cooking Tools null -1 -1 null -1 -1 -1 null 80 "Food,Can" Emitter A normal "Food,Can" 0 -83 3 12 Launcher_A_LV3 Cooking Tools Cookie Cutter Set Cooking Tools null -1 -1 null -1 -1 -1 null 160 "Food,Can" Emitter A normal "Food,Can" 0 -84 4 12 Launcher_A_LV4 Cooking Tools Basic Baking Tray Cooking Tools null -1 -1 null 40 60 1 1=1 -1 "Food,Can" Emitter A normal "Food,Can" 32 -85 5 12 Launcher_A_LV5 Cooking Tools Cute Baking Tray Cooking Tools null -1 -1 null 42 60 1 "1=0.9,21=0.1" -1 "Food,Can" Emitter A normal "Food,Can" 512 -86 6 12 Launcher_A_LV6 Cooking Tools Baking Tray Set Cooking Tools null -1 -1 null 44 60 1 "1=0.7,21=0.2,2=0.1" -1 "Food,Can" Emitter A normal "Food,Can" 1024 -87 7 12 Launcher_A_LV7 Cooking Tools Air Fryer Cooking Tools null -1 -1 null 46 60 1 "1=0.65,21=0.18,2=0.15,22=0.02" -1 "Food,Can" Emitter A normal "Food,Can" 1024 -88 8 12 Launcher_A_LV8 Cooking Tools Mini Oven Cooking Tools null -1 -1 null 48 60 1 "1=0.6,21=0.15,2=0.2,22=0.05" -1 "Food,Can" Emitter A normal "Food,Can" 2048 -89 9 12 Launcher_A_LV9 Cooking Tools Baking Oven Cooking Tools null -1 -1 null 50 60 1 "1=0.55,21=0.12,2=0.25,22=0.08" -1 "Food,Can" Emitter A normal "Food,Can" 4096 -90 10 12 Launcher_A_LV10 Cooking Tools Fancy Oven Cooking Tools null -1 -1 null 52 60 1 "1=0.5,21=0.1,2=0.3,22=0.1" -1 "Food,Can" Emitter A normal "Food,Can" 8192 -91 11 12 Launcher_A_LV11 Cooking Tools Chef's Oven Cooking Tools null -1 -1 null 54 60 1 "1=0.45,21=0.09,2=0.35,22=0.11" -1 "Food,Can" Emitter A normal "Food,Can" 8192 -92 12 12 Launcher_A_LV12 Cooking Tools Baking Master Set Cooking Tools null -1 -1 null 56 60 1 "1=0.4,21=0.08,2=0.4,22=0.12" -1 "Food,Can" Emitter A normal "Food,Can" 8192 -101 1 12 Launcher_B_LV1 Sewing Needle Sewing null 1 1 null -1 -1 -1 null 20 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 0 -102 2 12 Launcher_B_LV2 Sewing Needle&Spool Sewing null -1 -1 null -1 -1 -1 null 40 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 0 -103 3 12 Launcher_B_LV3 Sewing Needle Cushion Sewing null -1 -1 null -1 -1 -1 null 80 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 0 -104 4 12 Launcher_B_LV4 Sewing Sweater Needle Sewing null -1 -1 null 40 60 1 41=1 -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 32 -105 5 12 Launcher_B_LV5 Sewing Knitting Needle Sewing null -1 -1 null 42 60 1 "41=0.85,61=0.15" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 512 -106 6 12 Launcher_B_LV6 Sewing Yarn Basket Sewing null -1 -1 null 44 60 1 "41=0.7,61=0.2,42=0.1" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 1024 -107 7 12 Launcher_B_LV7 Sewing Knitting Basket Sewing null -1 -1 null 46 60 1 "41=0.65,61=0.18,42=0.15,62=0.02" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 1024 -108 8 12 Launcher_B_LV8 Sewing Sewing Machine Sewing null -1 -1 null 48 60 1 "41=0.6,61=0.15,42=0.2,62=0.05" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 2048 -109 9 12 Launcher_B_LV9 Sewing Electric Sewing Machine Sewing null -1 -1 null 50 60 1 "41=0.55,61=0.12,42=0.25,62=0.1" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 4096 -110 10 12 Launcher_B_LV10 Sewing Classic Sewing Machine Sewing null -1 -1 null 52 60 1 "41=0.5,61=0.1,42=0.3,62=0.1" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 8192 -111 11 12 Launcher_B_LV11 Sewing Premium Sewing Machine Sewing null -1 -1 null 54 60 1 "41=0.45,61=0.09,42=0.35,62=0.11" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 8192 -112 12 12 Launcher_B_LV12 Sewing Sewing Workbench Sewing null -1 -1 null 56 60 1 "41=0.4,61=0.08,42=0.40,62=0.12" -1 "Pet Cloth,Pet Shoes" Emitter B normal "Pet Cloth,Pet Shoes" 8192 -121 1 12 Launcher_C_LV1 Toolbox Band Tape Toolbox null 1 1 null -1 -1 -1 null 45 Wood Emitter C raw Pet House 0 -122 2 12 Launcher_C_LV2 Toolbox Caliper Toolbox null -1 -1 null -1 -1 -1 null 90 Wood Emitter C raw Pet House 0 -123 3 12 Launcher_C_LV3 Toolbox Plier Set Toolbox null -1 -1 null -1 -1 -1 null -1 Wood Emitter C raw Pet House 0 -124 4 12 Launcher_C_LV4 Toolbox Wood Plane Toolbox null -1 -1 null -1 -1 -1 null -1 Wood Emitter C raw Pet House 0 -125 5 12 Launcher_C_LV5 Toolbox Wood Tool Set Toolbox null -1 -1 null 24 60 1 141=1 -1 Wood Emitter C raw Pet House 16 -126 6 12 Launcher_C_LV6 Toolbox Advanced Wood Tool Set Toolbox null -1 -1 null 24 60 1 "141=0.9,142=0.1" -1 Wood Emitter C raw Pet House 32 -127 7 12 Launcher_C_LV7 Toolbox Wood Tool Kit Toolbox null -1 -1 null 24 60 1 "141=0.8,142=0.2" -1 Wood Emitter C raw Pet House 64 -128 8 12 Launcher_C_LV8 Toolbox Advanced Wood Tool Kit Toolbox null -1 -1 null 24 60 1 "141=0.75,142=0.25" -1 Wood Emitter C raw Pet House 128 -129 9 12 Launcher_C_LV9 Toolbox Wood Tool Box Toolbox null -1 -1 null 24 60 1 "141=0.7,142=0.3" -1 Wood Emitter C raw Pet House 256 -130 10 12 Launcher_C_LV10 Toolbox Advanced Wood Tool Box Toolbox null -1 -1 null 24 60 1 "141=0.65,142=0.35" -1 Wood Emitter C raw Pet House 512 -131 11 12 Launcher_C_LV11 Toolbox Professional Wood Tool Box Toolbox null -1 -1 null 24 60 1 "141=0.62,142=0.38" -1 Wood Emitter C raw Pet House 1024 -132 12 12 Launcher_C_LV12 Toolbox Master Wood Tool Box Toolbox null -1 -1 null 24 60 1 "141=0.6,142=0.4" -1 Wood Emitter C raw Pet House 2048 -141 1 5 Launcher_sub_C_LV1 Wood Log Wood null 1 1 "125,126,127,128,129,130,131,132" -1 -1 -1 null 5 Pet House Emitter 0 -142 2 5 Launcher_sub_C_LV2 Wood Log Bundles Wood null -1 -1 "125,126,127,128,129,130,131,132" -1 -1 -1 null 10 Pet House Emitter 0 -143 3 5 Launcher_sub_C_LV3 Wood Wood Blocks Wood null -1 -1 "125,126,127,128,129,130,131,132" -1 -1 -1 null 20 Pet House Emitter 0 -144 4 5 Launcher_sub_C_LV4 Wood Wood Board Wood null -1 -1 "125,126,127,128,129,130,131,132" -1 -1 -1 null 50 Pet House Emitter 0 -145 5 5 Launcher_sub_C_LV5 Wood Wood Pile unlock null -1 -1 "125,126,127,128,129,130,131,132" 16 -1 -1 "221=0.8,222=0.2" -1 Pet House Emitter 0 -161 1 8 Launcher_D_LV1 Shelf Small Shelf Shelf null 1 1 null -1 -1 -1 null 45 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 0 -162 2 8 Launcher_D_LV2 Shelf Medium shelf Shelf null -1 -1 null -1 -1 -1 null 90 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 0 -163 3 8 Launcher_D_LV3 Shelf Large shelf Shelf null -1 -1 null -1 -1 -1 null -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 0 -164 4 8 Launcher_D_LV4 Shelf Bedside Table Shelf null -1 -1 null 38 -1 -1 241=1 -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 64 -165 5 8 Launcher_D_LV5 Shelf Small Display Shelf null -1 -1 null 40 60 1 "241=0.8,261=0.2" -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 128 -166 6 8 Launcher_D_LV6 Shelf Double Door Display Shelf null -1 -1 null 42 60 1 "241=0.7,261=0.2,242=0.1" -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 512 -167 7 8 Launcher_D_LV7 Shelf Premium Display Shelf null -1 -1 null 44 60 1 "241=0.65,261=0.18,242=0.15,262=0.02" -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 1024 -168 8 8 Launcher_D_LV8 Shelf Deluxe Display Shelf null -1 -1 null 46 60 1 "241=0.6,261=0.15,242=0.2,262=0.05" -1 "Pet Toy,Pet Tree" Emitter D normal "Pet Toy,Pet Tree" 2048 -181 1 9 Launcher_E_LV1 Bathtub Basin Bathtub null 1 1 null -1 -1 -1 null 45 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 0 -182 2 9 Launcher_E_LV2 Bathtub Baby bathtub Bathtub null -1 -1 null 36 60 1 "281=0.8,301=0.2" 90 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 0 -183 3 9 Launcher_E_LV3 Bathtub Premium baby bathtub Bathtub null -1 -1 null 38 60 1 "281=0.7,301=0.2,282=0.1" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 0 -184 4 9 Launcher_E_LV4 Bathtub Children Pool Bathtub null -1 -1 null 40 60 1 "281=0.65,301=0.18,282=0.15,302=0.02" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 0 -185 5 9 Launcher_E_LV5 Bathtub Advanced Children Pool Bathtub null -1 -1 null 42 60 1 "281=0.6,301=0.15,282=0.2,302=0.05" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 0 -186 6 9 Launcher_E_LV6 Bathtub Premium Children Pool Bathtub null -1 -1 null 44 60 1 "281=0.55,301=0.12,282=0.25,302=0.08" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 32 -187 7 9 Launcher_E_LV7 Bathtub Ordinary bathtub Bathtub null -1 -1 null 46 60 1 "281=0.5,301=0.1,282=0.3,302=0.1" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 128 -188 8 9 Launcher_E_LV8 Bathtub Premium bathtub Bathtub null -1 -1 null 48 60 1 "281=0.45,301=0.09,282=0.35,302=0.11" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 512 -189 9 9 Launcher_E_LV9 Bathtub Luxury bathtub Bathtub null -1 -1 null 50 60 1 "281=0.4,301=0.08,282=0.4,302=0.12" -1 "Bath Toys,Cleaning Tools" Emitter E normal "Bath Toys,Cleaning Tools" 2048 -221 1 12 Production_sub_C_LV1 Pet House Pink Wood Pet House star 1 7 145 -1 -1 -1 null 6 Wood Product main 4 -222 2 12 Production_sub_C_LV2 Pet House Pink Wood Pile Pet House star 2 13 145 -1 -1 -1 null 12 Wood Product main 8 -223 3 12 Production_sub_C_LV3 Pet House Crate Pet House star 3 23 145 -1 -1 -1 null 23 Wood Product main 16 -224 4 12 Production_sub_C_LV4 Pet House Pet Crate Pet House star 6 40 145 -1 -1 -1 null 43 Wood Product main 32 -225 5 12 Production_sub_C_LV5 Pet House Pet Bed Pet House star 10 72 145 -1 -1 -1 null 80 Wood Product main 64 -226 6 12 Production_sub_C_LV6 Pet House Wooden Pet House Pet House star 13 127 145 -1 -1 -1 null 150 Wood Product main 128 -227 7 12 Production_sub_C_LV7 Pet House Premium Pet House Pet House star 32 224 145 -1 -1 -1 null 290 Wood Product main 256 -228 8 12 Production_sub_C_LV8 Pet House Deluxe Pet House Pet House star 41 396 145 -1 -1 -1 null 540 Wood Product main 512 -229 9 12 Production_sub_C_LV9 Pet House Pet Villa Pet House star 110 700 145 -1 -1 -1 null 780 Wood Product main 1024 -230 10 12 Production_sub_C_LV10 Pet House Premium Pet Villa Pet House star 200 1237 147 -1 -1 -1 null 990 Wood Product main 2048 -231 11 12 Production_sub_C_LV11 Pet House Deluxe Pet Villa Pet House star 360 2188 145 -1 -1 -1 null 1100 Wood Product main 4096 -232 12 12 Production_sub_C_LV12 Pet House Pet Castle Pet House star 640 3869 145 -1 -1 -1 null 1300 Wood Product main 8192 -241 1 12 Production_D1_LV1 Pet Toy Yarn Ball Pet Toy star 1 5 "164,165,166,167,168" -1 -1 -1 null 1 Shelf Product main 1 -242 2 12 Production_D1_LV2 Pet Toy Plastic Ball Pet Toy star 1 9 "164,165,166,167,168" -1 -1 -1 null 1 Shelf Product main 2 -243 3 12 Production_D1_LV3 Pet Toy Bell Ball Pet Toy star 3 15 "164,165,166,167,168" -1 -1 -1 null 1 Shelf Product main 4 -244 4 12 Production_D1_LV4 Pet Toy Catnip Ball Pet Toy star 5 27 "164,165,166,167,168" -1 -1 -1 null 2 Shelf Product main 8 -245 5 12 Production_D1_LV5 Pet Toy Spring Toy Pet Toy star 9 48 "164,165,166,167,168" -1 -1 -1 null 4 Shelf Product main 16 -246 6 12 Production_D1_LV6 Pet Toy Chewer Toy Pet Toy star 16 84 "164,165,166,167,168" -1 -1 -1 null 7 Shelf Product main 32 -247 7 12 Production_D1_LV7 Pet Toy Cat Teaser Pet Toy star 28 149 "164,165,166,167,168" -1 -1 -1 null 13 Shelf Product main 64 -248 8 12 Production_D1_LV8 Pet Toy Premium Pet House Pet Toy star 51 264 "164,165,166,167,168" -1 -1 -1 null 25 Shelf Product main 128 -249 9 12 Production_D1_LV9 Pet Toy Stuffed Fish Pet Toy star 90 466 "164,165,166,167,168" -1 -1 -1 null 45 Shelf Product main 256 -250 10 12 Production_D1_LV10 Pet Toy Feather Ball Pet Toy star 158 825 "164,165,166,167,168" -1 -1 -1 null 80 Shelf Product main 512 -251 11 12 Production_D1_LV11 Pet Toy Catching Toy Pet Toy star 280 1459 "164,165,166,167,168" -1 -1 -1 null 140 Shelf Product main 1024 -252 12 12 Production_D1_LV12 Pet Toy Jumping Toy Pet Toy star 495 2579 "164,165,166,167,168" -1 -1 -1 null 240 Shelf Product main 2048 -261 1 12 Production_D2_LV1 Pet Tree Cat Scratcher Pet Tree star 1 5 "165,166,167,168" -1 -1 -1 null 1 Shelf Product sub 4 -262 2 12 Production_D2_LV2 Pet Tree Meow Cat Scratcher Pet Tree star 1 8 "165,166,167,168" -1 -1 -1 null 1 Shelf Product sub 8 -263 3 12 Production_D2_LV3 Pet Tree Daybed Cat Scratcher Pet Tree star 3 14 "165,166,167,168" -1 -1 -1 null 1 Shelf Product sub 16 -264 4 12 Production_D2_LV4 Pet Tree Premium Daybed Cat Scratcher Pet Tree star 5 26 "165,166,167,168" -1 -1 -1 null 2 Shelf Product sub 32 -265 5 12 Production_D2_LV5 Pet Tree Ball Type Cat Scratcher Pet Tree star 9 45 "165,166,167,168" -1 -1 -1 null 4 Shelf Product sub 64 -266 6 12 Production_D2_LV6 Pet Tree Bridge Cat Scratcher Pet Tree star 16 80 "165,166,167,168" -1 -1 -1 null 7 Shelf Product sub 128 -267 7 12 Production_D2_LV7 Pet Tree Simple Cat Tree Pet Tree star 28 142 "165,166,167,168" -1 -1 -1 null 13 Shelf Product sub 256 -268 8 12 Production_D2_LV8 Pet Tree Happy Cat Tree Pet Tree star 51 251 "165,166,167,168" -1 -1 -1 null 25 Shelf Product sub 512 -269 9 12 Production_D2_LV9 Pet Tree Cat Tree Set Pet Tree star 90 443 "165,166,167,168" -1 -1 -1 null 45 Shelf Product sub 1024 -270 10 12 Production_D2_LV10 Pet Tree Premium Cat Tree Pet Tree star 158 784 "165,166,167,168" -1 -1 -1 null 80 Shelf Product sub 2048 -271 11 12 Production_D2_LV11 Pet Tree Deluxe Cat Tree Pet Tree star 280 1386 "165,166,167,168" -1 -1 -1 null 140 Shelf Product sub 4096 -272 12 12 Production_D2_LV12 Pet Tree Cat Paradise Pet Tree star 495 2450 "165,166,167,168" -1 -1 -1 null 240 Shelf Product sub 8192 -281 1 12 Production_E1_LV1 Bath Toys Bubble ball Bath Toys star 1 4 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product main 2 -282 2 12 Production_E1_LV2 Bath Toys Toy Tadpole Bath Toys star 1 8 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product main 4 -283 3 12 Production_E1_LV3 Bath Toys Toy fish Bath Toys star 3 14 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product main 8 -284 4 12 Production_E1_LV4 Bath Toys Toy Seahorse Bath Toys star 5 24 "182,183,184,185,186,187,188,189" -1 -1 -1 null 2 Bathtub Product main 16 -285 5 12 Production_E1_LV5 Bath Toys Toy yellow duck Bath Toys star 9 43 "182,183,184,185,186,187,188,189" -1 -1 -1 null 4 Bathtub Product main 32 -286 6 12 Production_E1_LV6 Bath Toys Toy octopus Bath Toys star 16 76 "182,183,184,185,186,187,188,189" -1 -1 -1 null 7 Bathtub Product main 64 -287 7 12 Production_E1_LV7 Bath Toys Toy turtle Bath Toys star 28 134 "182,183,184,185,186,187,188,189" -1 -1 -1 null 13 Bathtub Product main 128 -288 8 12 Production_E1_LV8 Bath Toys Toy shark Bath Toys star 51 237 "182,183,184,185,186,187,188,189" -1 -1 -1 null 25 Bathtub Product main 256 -289 9 12 Production_E1_LV9 Bath Toys Toy whale Bath Toys star 90 420 "182,183,184,185,186,187,188,189" -1 -1 -1 null 45 Bathtub Product main 512 -290 10 12 Production_E1_LV10 Bath Toys Toy Swimming Dog Bath Toys star 158 742 "182,183,184,185,186,187,188,189" -1 -1 -1 null 80 Bathtub Product main 1024 -291 11 12 Production_E1_LV11 Bath Toys Toy float Bath Toys star 280 1313 "182,183,184,185,186,187,188,189" -1 -1 -1 null 140 Bathtub Product main 2048 -292 12 12 Production_E1_LV12 Bath Toys Toy boat Bath Toys star 495 2321 "182,183,184,185,186,187,188,189" -1 -1 -1 null 240 Bathtub Product main 4096 -301 1 12 Production_E2_LV1 Cleaning Tools Pet Towel Cleaning Tools star 1 5 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product sub 3 -302 2 12 Production_E2_LV2 Cleaning Tools Advanced Towel Cleaning Tools star 1 8 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product sub 6 -303 3 12 Production_E2_LV3 Cleaning Tools Pet Wipes Cleaning Tools star 3 14 "182,183,184,185,186,187,188,189" -1 -1 -1 null 1 Bathtub Product sub 12 -304 4 12 Production_E2_LV4 Cleaning Tools Washing Gloves Cleaning Tools star 5 26 "182,183,184,185,186,187,188,189" -1 -1 -1 null 2 Bathtub Product sub 24 -305 5 12 Production_E2_LV5 Cleaning Tools Pet Shampoo Cleaning Tools star 9 45 "182,183,184,185,186,187,188,189" -1 -1 -1 null 4 Bathtub Product sub 48 -306 6 12 Production_E2_LV6 Cleaning Tools Advanced Shampoo Cleaning Tools star 16 80 "182,183,184,185,186,187,188,189" -1 -1 -1 null 7 Bathtub Product sub 96 -307 7 12 Production_E2_LV7 Cleaning Tools Premium Shampoo Cleaning Tools star 28 142 "182,183,184,185,186,187,188,189" -1 -1 -1 null 13 Bathtub Product sub 192 -308 8 12 Production_E2_LV8 Cleaning Tools Hair Brush Cleaning Tools star 51 251 "182,183,184,185,186,187,188,189" -1 -1 -1 null 25 Bathtub Product sub 384 -309 9 12 Production_E2_LV9 Cleaning Tools Advanced Brush Cleaning Tools star 90 443 "182,183,184,185,186,187,188,189" -1 -1 -1 null 45 Bathtub Product sub 768 -310 10 12 Production_E2_LV10 Cleaning Tools Pet Dryer Cleaning Tools star 158 784 "182,183,184,185,186,187,188,189" -1 -1 -1 null 80 Bathtub Product sub 1536 -311 11 12 Production_E2_LV11 Cleaning Tools Advanced Pet Dryer Cleaning Tools star 280 1386 "182,183,184,185,186,187,188,189" -1 -1 -1 null 140 Bathtub Product sub 3072 -312 12 12 Production_E2_LV12 Cleaning Tools Pet Dryer Box Cleaning Tools star 495 2450 "182,183,184,185,186,187,188,189" -1 -1 -1 null 240 Bathtub Product sub 6144 -1001 1 8 Launcher_H_LV1 Clothing Simple fabric wardrobe Clothing null 1 1 null 36 60 1 "1081=0.8,1021=0.2" 40 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 128 -1002 2 8 Launcher_H_LV2 Clothing Ordinary fabric wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.75,1021=0.2,1082=0.05" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 128 -1003 3 8 Launcher_H_LV3 Clothing High-end fabric wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.7,1021=0.2,1082=0.05,1022=0.05" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 128 -1004 4 8 Launcher_H_LV4 Clothing Simple wooden wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.65,1021=0.2,1082=0.1,1022=0.05" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 128 -1005 5 8 Launcher_H_LV5 Clothing Ordinary wooden wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.6,1021=0.18,1082=0.1,1022=0.12" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 128 -1006 6 8 Launcher_H_LV6 Clothing Large wooden wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.55,1021=0.18,1082=0.15,1022=0.12" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 512 -1007 7 8 Launcher_H_LV7 Clothing High-end wooden wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.5,1021=0.15,1082=0.2,1022=0.15" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 2048 -1008 8 8 Launcher_H_LV8 Clothing Luxury wooden wardrobe Clothing null -1 -1 null 36 60 1 "1081=0.45,1021=0.1,1082=0.25,1022=0.2" -1 "Clothes storage bag,Shoe" Emitter F combom "Shoe,Daily clothing,Dress" 8192 -1021 1 7 Launcher_sub_H_LV1 Clothes storage bag Simple cloth bag Clothes storage bag null 1 1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 5 "Daily clothing,Dress" Emitter 0 -1022 2 7 Launcher_sub_H_LV2 Clothes storage bag High-end cloth bag Clothes storage bag null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 10 "Daily clothing,Dress" Emitter 0 -1023 3 7 Launcher_sub_H_LV3 Clothes storage bag Simple storage bag Clothes storage bag null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 20 "Daily clothing,Dress" Emitter 0 -1024 4 7 Launcher_sub_H_LV4 Clothes storage bag Ordinary storage bag Clothes storage bag null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 50 "Daily clothing,Dress" Emitter 0 -1025 5 7 Launcher_sub_H_LV5 Clothes storage bag Premium storage bag Clothes storage bag null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null -1 "Daily clothing,Dress" Emitter 0 -1026 6 7 Launcher_sub_H_LV6 Clothes storage bag Luxury storage bag Clothes storage bag null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null -1 "Daily clothing,Dress" Emitter 0 -1027 7 7 Launcher_sub_H_LV7 Clothes storage bag Storage set unlock null -1 -1 "1001,1002,1003,1004,1005,1006,1007,1008" 18 -1 -1 "1041=0.8,1061=0.2" -1 "Daily clothing,Dress" Emitter 0 -1041 1 12 Production_sub_H_LV1 Daily clothing Children's sandals Daily clothing star 1 8 1026 -1 -1 -1 null 6 Clothes storage bag Product sub 1 -1042 2 12 Production_sub_H_LV2 Daily clothing Children's shoes Daily clothing star 2 14 1026 -1 -1 -1 null 12 Clothes storage bag Product sub 2 -1043 3 12 Production_sub_H_LV3 Daily clothing Girls' sandals Daily clothing star 3 24 1026 -1 -1 -1 null 23 Clothes storage bag Product sub 4 -1044 4 12 Production_sub_H_LV4 Daily clothing Girls' high heels Daily clothing star 6 43 1026 -1 -1 -1 null 43 Clothes storage bag Product sub 8 -1045 5 12 Production_sub_H_LV5 Daily clothing Girls' high-end shoes Daily clothing star 10 76 1026 -1 -1 -1 null 80 Clothes storage bag Product sub 16 -1046 6 12 Production_sub_H_LV6 Daily clothing Ordinary square heels shoes Daily clothing star 13 135 1026 -1 -1 -1 null 150 Clothes storage bag Product sub 32 -1047 7 12 Production_sub_H_LV7 Daily clothing Ordinary high-heeled Daily clothing star 32 239 1026 -1 -1 -1 null 290 Clothes storage bag Product sub 64 -1048 8 12 Production_sub_H_LV8 Daily clothing Classic high-heeled shoes Daily clothing star 41 422 1026 -1 -1 -1 null 540 Clothes storage bag Product sub 128 -1049 9 12 Production_sub_H_LV9 Daily clothing High-end high-heeled shoes Daily clothing star 110 746 1026 -1 -1 -1 null 780 Clothes storage bag Product sub 256 -1050 10 12 Production_sub_H_LV10 Daily clothing Ordinary evening dress shoes Daily clothing star 200 1320 1026 -1 -1 -1 null 990 Clothes storage bag Product sub 512 -1051 11 12 Production_sub_H_LV11 Daily clothing High-end evening dress shoes Daily clothing star 360 2334 1026 -1 -1 -1 null 1100 Clothes storage bag Product sub 1024 -1052 12 12 Production_sub_H_LV12 Daily clothing Luxurious evening dress shoes Daily clothing star 640 4127 1026 -1 -1 -1 null 1300 Clothes storage bag Product sub 2048 -1061 1 12 Production_sub_H2_LV1 Dress Mini dress Dress star 1 8 1026 -1 -1 -1 null 8 Clothes storage bag Product sub 4 -1062 2 12 Production_sub_H2_LV2 Dress Girls simple dress Dress star 2 15 1026 -1 -1 -1 null 16 Clothes storage bag Product sub 8 -1063 3 12 Production_sub_H2_LV3 Dress Flower girl dress Dress star 3 26 1026 -1 -1 -1 null 30 Clothes storage bag Product sub 16 -1064 4 12 Production_sub_H2_LV4 Dress Girls high-end dress Dress star 6 46 1026 -1 -1 -1 null 56 Clothes storage bag Product sub 32 -1065 5 12 Production_sub_H2_LV5 Dress Simple dress Dress star 10 81 1026 -1 -1 -1 null 104 Clothes storage bag Product sub 64 -1066 6 12 Production_sub_H2_LV6 Dress Party dress Dress star 13 143 1026 -1 -1 -1 null 195 Clothes storage bag Product sub 128 -1067 7 12 Production_sub_H2_LV7 Dress Banquet dress Dress star 32 254 1026 -1 -1 -1 null 377 Clothes storage bag Product sub 256 -1068 8 12 Production_sub_H2_LV8 Dress Classic dress Dress star 41 448 1026 -1 -1 -1 null 702 Clothes storage bag Product sub 512 -1069 9 12 Production_sub_H2_LV9 Dress Haute ceremonial dress Dress star 110 793 1026 -1 -1 -1 null 1014 Clothes storage bag Product sub 1024 -1070 10 12 Production_sub_H2_LV10 Dress Ordinary evening dress Dress star 200 1402 1026 -1 -1 -1 null 1287 Clothes storage bag Product sub 2048 -1071 11 12 Production_sub_H2_LV11 Dress High-end evening dress Dress star 360 2480 1026 -1 -1 -1 null 1430 Clothes storage bag Product sub 4096 -1072 12 12 Production_sub_H2_LV12 Dress Luxurious evening dress Dress star 640 4385 1026 -1 -1 -1 null 1690 Clothes storage bag Product sub 8192 -1081 1 12 Production_H2_LV1 Shoe Diapers Shoe star 1 5 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 2 Clothing Product main 50 -1082 2 12 Production_H2_LV2 Shoe Baby clothe Shoe star 1 9 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 3 Clothing Product main 100 -1083 3 12 Production_H2_LV3 Shoe Cartoon pajama Shoe star 3 17 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 7 Clothing Product main 200 -1084 4 12 Production_H2_LV4 Shoe Children's T-shirt Shoe star 5 30 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 11 Clothing Product main 400 -1085 5 12 Production_H2_LV5 Shoe Overall Shoe star 9 52 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 21 Clothing Product main 800 -1086 6 12 Production_H2_LV6 Shoe Sportswear Shoe star 16 93 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 45 Clothing Product main 1600 -1087 7 12 Production_H2_LV7 Shoe Sweatshirt Shoe star 28 164 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 80 Clothing Product main 3200 -1088 8 12 Production_H2_LV8 Shoe Casual wear Shoe star 51 290 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 140 Clothing Product main 6400 -1089 9 12 Production_H2_LV9 Shoe Graduation clothe Shoe star 90 513 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 240 Clothing Product main 8192 -1090 10 12 Production_H2_LV10 Shoe Casual suits Shoe star 158 907 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 320 Clothing Product main 8192 -1091 11 12 Production_H2_LV11 Shoe Vacation skirt Shoe star 280 1604 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 450 Clothing Product main 8192 -1092 12 12 Production_H2_LV12 Shoe Suits Shoe star 495 2837 "1001,1002,1003,1004,1005,1006,1007,1008" -1 -1 -1 null 590 Clothing Product main 8192 -5001 1 3 Launcher_Wash_LV1 WashTool Simple Wash Box WashTool null 1 1 null 60 60 1 5021=1 -1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5002 2 3 Launcher_Wash_LV2 WashTool Small Wash Car WashTool null -1 -1 null 60 60 1 5041=1 -1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5003 3 3 Launcher_Wash_LV3 WashTool Big Wash Car WashTool null -1 -1 null 60 60 1 5061=1 -1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5021 1 5 merge_icon_small_xiaodao WashOneTool Utility knife WashOneTool star 1 1 5001 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5022 2 5 merge_icon_small_qianzi WashOneTool pliers WashOneTool star 1 1 5001 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5023 3 5 merge_icon_small_tuizi WashOneTool Fader WashOneTool star 1 1 5001 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5024 4 5 merge_icon_small_niezi WashOneTool tweezers WashOneTool star 1 1 5001 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5025 5 5 merge_icon_small_niezimianqiu WashOneTool Tweezers with cotton balls WashOneTool star 1 1 5001 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5041 1 3 Production_Wash_LV1 WashTwoTool band-aid WashTwoTool star 1 1 5002 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5042 2 3 Production_Wash_LV2 WashTwoTool spray WashTwoTool star 1 1 5002 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5043 3 3 Production_Wash_LV3 WashTwoTool bandage WashTwoTool star 1 1 5002 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5061 1 3 merge_icon_small_qipao WashThreeTool Bubble WashThreeTool star 1 1 5003 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5062 2 3 merge_icon_small_xiangzao WashThreeTool Soap WashThreeTool star 1 1 5003 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -5063 3 3 merge_icon_small_pentou WashThreeTool Shower head WashThreeTool star 1 1 5003 -1 -1 -1 null 1 "WashOneTool,WashTwoTool,WashThreeTool" Wash 0 -501 1 5 Production_energy_LV1 Energy A Little Energy energy null 1 1 562 -1 -1 -1 null -1 Resource 0 -502 2 5 Production_energy_LV2 Energy Small Amount Energy energy null 5 5 562 -1 -1 -1 null -1 Resource 0 -503 3 5 Production_energy_LV3 Energy Appropriate Energy energy null 15 15 562 -1 -1 -1 null -1 Resource 0 -504 4 5 Production_energy_LV4 Energy Large Amount Energy energy null 40 40 562 -1 -1 -1 null -1 Resource 0 -505 5 5 Production_energy_LV5 Energy Huge Amount Energy energy null 100 100 562 -1 -1 -1 null -1 Resource 0 -521 1 5 Production_star_LV1 Star A Star star null 8 8 "561,563" -1 -1 -1 null -1 Resource 0 -522 2 5 Production_star_LV2 Star A Few Star star null 20 20 "561,563" -1 -1 -1 null -1 Resource 0 -523 3 5 Production_star_LV3 Star Small Star star null 45 45 "561,563" -1 -1 -1 null -1 Resource 0 -524 4 5 Production_star_LV4 Star Large Star star null 110 110 "561,563" -1 -1 -1 null -1 Resource 0 -525 5 5 Production_star_LV5 Star Huge Star star null 240 240 "561,563" -1 -1 -1 null -1 Resource 0 -541 1 5 Production_diamond_LV1 Diamond A Little Diamond diamond null 1 1 563 -1 -1 -1 null -1 Resource 0 -542 2 5 Production_diamond_LV2 Diamond Small Amount Diamond diamond null 3 3 563 -1 -1 -1 null -1 Resource 0 -543 3 5 Production_diamond_LV3 Diamond Appropriate Diamond diamond null 8 8 563 -1 -1 -1 null -1 Resource 0 -544 4 5 Production_diamond_LV4 Diamond Large Amount Diamond diamond null 20 20 563 -1 -1 -1 null -1 Resource 0 -545 5 5 Production_diamond_LV5 Diamond Huge Amount Diamond diamond null 50 50 563 -1 -1 -1 null -1 Resource 0 -561 1 1 Launcher_starChest Star Box Star Chest unlock null -1 -1 null 5 -1 -1 "521=0.5,522=0.35,523=0.15" -1 Star Chest 0 -562 1 1 Launcher_energeChest Energy Box Energy Chest unlock null -1 -1 null 5 -1 -1 "501=0.35,502=0.35,503=0.2,504=0.1" -1 Energy Chest 0 -563 1 1 Launcher_surpriseChest Surprise Box Surprising Chest lock null -1 -1 null 5 600 10 "541=0.35,521=0.35,542=0.2,522=0.1" -1 "Star,Diamond" Chest 0 -564 1 1 Launcher_surpriseChest Surprise Box Surprising Chest unlock null -1 -1 null 5 600 10 "541=0.35,521=0.35,542=0.2,522=0.1" -1 "Star,Diamond" Chest 0 -581 1 2 Launcher_Lowemitterchest_LV1 Emit Box Low Emit Chest Lv1 lock null -1 -1 null 6 720 12 "81=0.35,101=0.35,121=0.3" -1 "Cooking Tools,Shopping,Toolbox" Chest 0 -582 1 2 Launcher_Lowemitterchest_LV1 Emit Box Low Emit Chest Lv1 unlock null -1 -1 null 6 720 12 "81=0.35,101=0.35,121=0.3" -1 "Cooking Tools,Shopping,Toolbox" Chest 0 -583 2 2 Launcher_Lowemitterchest_LV2 Emit Box Low Emit Chest Lv2 lock null -1 -1 null 6 1800 30 "82=0.35,102=0.35,122=0.3" -1 "Cooking Tools,Shopping,Toolbox" Chest 0 -584 2 2 Launcher_Lowemitterchest_LV2 Emit Box Low Emit Chest Lv2 unlock null -1 -1 null 6 1800 30 "82=0.35,102=0.35,122=0.3" -1 "Cooking Tools,Shopping,Toolbox" Chest 0 -585 1 2 Launcher_highemitterchest_lv1 High Emit Box Higt Emit Chest Lv1 lock null -1 -1 null 6 720 12 "321=0.1,161=0.4,181=0.4,201=0.1" -1 "Sewing,Fishing,Shelf,Gardening Tools" Chest 0 -586 1 2 Launcher_highemitterchest_lv1 High Emit Box Higt Emit Chest Lv1 unlock null -1 -1 null 6 720 12 "321=0.1,161=0.4,181=0.4,201=0.1" -1 "Sewing,Fishing,Shelf,Gardening Tools" Chest 0 -587 2 2 Launcher_highemitterchest_lv2 High Emit Box Higt Emit Chest Lv2 lock null -1 -1 null 6 1800 30 "322=0.1,162=0.4,182=0.4,202=0.1" -1 "Sewing,Fishing,Shelf,Gardening Tools" Chest 0 -588 2 2 Launcher_highemitterchest_lv2 High Emit Box Higt Emit Chest Lv2 unlock null -1 -1 null 6 1800 30 "322=0.1,162=0.4,182=0.4,202=0.1" -1 "Sewing,Fishing,Shelf,Gardening Tools" Chest 0 -601 1 1 Launcher_L_A Pet Food Basket Pet Food Basket unlock null -1 -1 null 8 -1 -1 "1=0.2,2=0.3,3=0.2,4=0.1,21=0.2" -1 "Food,Can" Gift 0 -602 1 1 Launcher_L_B Pet Aid Box Pet Aid Box unlock null -1 -1 null 8 -1 -1 "41=0.2,42=0.3,43=0.2,44=0.1,61=0.2" -1 "Cleaning Tools,Medical" Gift 0 -603 1 1 Launcher_L_C Pet House Box Pet House Box unlock null -1 -1 null 8 -1 -1 "221=0.6,222=0.4" -1 Pet House Gift 0 -604 1 1 Launcher_L_D Pet Clothing Box Pet Clothing Box unlock null -1 -1 null 8 -1 -1 "241=0.1,242=0.2,243=0.3,261=0.1,262=0.2,263=0.1" -1 "Pet Cloth,Pet Shoes" Gift 0 -605 1 1 Launcher_L_E Plate of Fish Plate of Fish unlock null -1 -1 null 8 -1 -1 "281=0.3,282=0.4,283=0.2,284=0.1" -1 Fish Gift 0 -606 1 1 Launcher_L_G Flower Basket Flower Basket unlock null -1 -1 null 8 -1 -1 "341=0.3,342=0.4,343=0.2,344=0.1" -1 Garden Gift 0 -701 1 1 Launcher_zixuan_LV1 Optional Box Optional Box unlock null -1 -1 null 1 -1 -1 null -1 Gift 0 -702 1 1 Launcher_zixuan_LV2 Advanced Optional Box Advanced Optional Box unlock null -1 -1 null 1 -1 -1 null -1 Gift 0 -703 1 1 Launcher_Universal-treasure-chest_LV1 All Random Box All Random Box unlock null -1 -1 null 3 -1 -1 null -1 Gift 0 -704 1 1 Launcher_Universal-treasure-chest_LV2 Advanced All Random Box Advanced All Random Box unlock null -1 -1 null 3 -1 -1 null -1 Gift 0 -705 1 1 Launcher_Resource-chest_LV1 Resource Supply Box Resource Supply Box unlock null -1 -1 null 1 -1 -1 null -1 Gift 0 -706 1 1 Launcher_Resource-chest_LV2 Advanced Resource Supply Box Advanced Resource Supply Box unlock null -1 -1 null 1 -1 -1 null -1 Gift 0 -801 1 1 homepage_icn_Stash Package Package null null -1 -1 null 1 -1 -1 null -1 Special 0 \ No newline at end of file diff --git a/src/server/gamedata/config/PassOne.txt b/src/server/gamedata/config/PassOne.txt deleted file mode 100644 index 11a0a87b..00000000 --- a/src/server/gamedata/config/PassOne.txt +++ /dev/null @@ -1,20 +0,0 @@ -商店礼包表 -Id Lv FreeReward PayReward UpgradeGap Price_Old Price_New Hour -int int string string int float float int -Id 等级 免费奖励 付费奖励 升级所需分数 原价 售价 持续时间 -1 0 1000 24.9 9.9 168 -2 1 562=1 Energy=150 0 0 0 0 -3 2 562=1 Energy=268 0 0 0 0 -4 3 562=1 Energy=268 0 0 0 0 -5 4 562=1 Energy=268 0 0 0 0 -6 5 562=1 Energy=268 0 0 0 0 -7 6 562=1 Energy=328 0 0 0 0 -8 7 562=1 Energy=328 0 0 0 0 -9 8 562=1 Energy=328 0 0 0 0 -10 9 562=1 Energy=328 0 0 0 0 -11 10 562=1 Energy=328 0 0 0 0 -12 11 562=1 Energy=648 0 0 0 0 -13 12 562=1 Energy=648 0 0 0 0 -14 13 562=1 Energy=648 0 0 0 0 -15 14 562=1 Energy=648 0 0 0 0 -16 15 562=1 Energy=648 0 0 0 0 diff --git a/src/server/gamedata/config/PromotionPack.txt b/src/server/gamedata/config/PromotionPack.txt deleted file mode 100644 index 7661528e..00000000 --- a/src/server/gamedata/config/PromotionPack.txt +++ /dev/null @@ -1,5 +0,0 @@ -界面配置表 -Id Bg Title Tip Content Price_New Price_Old -int string string string string float float -Id 背景图片 标题 礼包说明 内容 价格 原价 -1 Activity/activity_pic_beginnerbg BeginnerPack Buy a beginner's gift bag to receive generous rewards. "Energy=500,Diamond=388,561=1" 4.99 9.99 diff --git a/src/server/gamedata/config/RandomNameDataBase.txt b/src/server/gamedata/config/RandomNameDataBase.txt deleted file mode 100644 index d24b34a0..00000000 --- a/src/server/gamedata/config/RandomNameDataBase.txt +++ /dev/null @@ -1,860 +0,0 @@ -界面配置表 -Id EnName CnName Gender -int string string int -Id EnName CnName Gender -1 Alexia 亚莉克希亚 1 -2 Alice 爱丽丝 1 -3 Alma 爱玛 1 -4 Alva 阿尔娃 1 -5 Amanda 阿曼达 1 -6 Amelia 阿蜜莉雅 1 -7 Amy 艾咪 1 -8 Anastasia 安娜塔西雅 1 -9 Andrea 安德莉亚 1 -10 Angela 安琪拉 1 -11 Ann 安妮 1 -12 Anna 安娜 1 -13 Annabelle 安娜贝儿 1 -14 Antonia 安东妮儿 1 -15 April 艾谱莉 1 -16 Arlene 艾琳娜 1 -17 Astrid 艾丝翠得 1 -18 Athena 雅典娜 1 -19 Audrey 奥德莉 1 -20 Aurora 奥萝拉 1 -21 Barbara 芭芭拉 1 -22 Beatrice 碧翠丝 1 -23 Belinda 贝琳达 1 -24 Bella 贝拉 1 -25 Belle 贝拉 1 -26 Bernice 柏妮丝 1 -27 Bertha 柏莎 1 -28 Beryl 百丽儿 1 -29 Bess 贝丝 1 -30 Betsy 贝琪 1 -31 Betty 贝蒂 1 -32 Beverly 贝芙丽 1 -33 Blanche 布兰琪 1 -34 Bblythe 布莱兹 1 -35 Bonnie 邦妮 1 -36 Bridget 布丽姬特 1 -37 Camille 卡蜜拉 1 -38 Candice 坎蒂丝 1 -39 Cara 卡拉 1 -40 Carol 卡萝 1 -41 Caroline 卡洛琳 1 -42 Catherine 凯瑟琳 1 -43 Cathy 凯丝 1 -44 Cecilia 塞西莉亚 1 -45 Celeste 莎莉丝特 1 -46 Charlotte 夏洛特 1 -47 Cherry 绮莉 1 -48 Cheryl 绮丽儿 1 -49 Chloe 克洛怡 1 -50 Christine 克莉丝汀 1 -51 Claire 克莱儿 1 -52 Clara 克莱拉 1 -53 Constance 康斯坦丝 1 -54 Cora 柯拉 1 -55 Coral 卡洛儿 1 -56 Cornelia 可妮莉雅 1 -57 Crystal 克莉斯多 1 -58 Cynthia 辛西亚 1 -59 Daisy 黛西 1 -60 Dale 黛儿 1 -61 Dana 黛娜 1 -62 Daphne 黛芙妮 1 -63 Darlene 达莲娜 1 -64 Dawn 潼恩 1 -65 Debby 黛碧 1 -66 Deborah 黛博拉 1 -67 Deirdre 迪得莉 1 -68 Delia 迪丽雅 1 -69 Denise 丹尼丝 1 -70 Diana 黛安娜 1 -71 Dinah 黛娜 1 -72 Dolores 多洛莉丝 1 -73 Dominic 多明尼卡 1 -74 Donna 唐娜 1 -75 Dora 多拉 1 -76 Doreen 多琳 1 -77 Doris 多莉丝 1 -78 Dorothy 桃乐斯 1 -79 Eartha 尔莎 1 -80 Eden 伊甸 1 -81 Edith 伊蒂丝 1 -82 Edwina 艾德文娜 1 -83 Eileen 爱琳 1 -84 Elaine 伊莲恩 1 -85 Eleanore 艾琳诺 1 -86 Elizabeth 伊莉莎白 1 -87 Ella 艾拉 1 -88 Elma 艾尔玛 1 -89 Elsa 爱尔莎 1 -90 Elsie 艾西 1 -91 Elva 艾娃 1 -92 Elvira 艾薇拉 1 -93 Emily 艾蜜莉 1 -94 Emma 艾玛 1 -95 Enid 伊妮德 1 -96 Erica 艾丽卡 1 -97 Erin 艾琳 1 -98 Esther 艾丝特 1 -99 Ethel 艾瑟儿 1 -100 Eudora 尤朵拉 1 -101 Eunice 尤妮丝 1 -102 Evangeline 伊文捷琳 1 -103 Eve 伊芙 1 -104 Evelyn 伊芙琳 1 -105 Faithe 费滋 1 -106 Fanny 梵妮 1 -107 Fay 费怡 1 -108 Flora 弗罗拉 1 -109 Florence 弗罗伦丝 1 -110 Frances 法兰西斯 1 -111 Freda 弗莉达 1 -112 Frederica 菲蕾德翠卡 1 -113 Gabrielle 嘉比里拉 1 -114 Gail 盖尔 1 -115 Gemma 姬玛 1 -116 Genevieve 珍妮芙 1 -117 Georgia 乔治亚 1 -118 Geraldine 娇拉汀 1 -119 Gill 姬儿 1 -120 Gladys 葛莱蒂丝 1 -121 Gloria 葛罗瑞亚 1 -122 Grace 葛瑞丝 1 -123 Griselda 葛莉谢尔达 1 -124 Gustave 葛佳丝塔芙 1 -125 Gwendolyn 关德琳 1 -126 Hannah 汉娜 1 -127 Harriet 哈莉特 1 -128 Hazel 海柔尔 1 -129 Hedda 赫达 1 -130 Hedy 赫蒂 1 -131 Helen 海伦 1 -132 Heloise 海洛伊丝 1 -133 Hermosa 何蒙莎 1 -134 Hilda 希尔达 1 -135 Hilary 希拉瑞莉 1 -136 Honey 汉妮 1 -137 Hulda 胡达 1 -138 Ida 艾达 1 -139 Ina 艾娜 1 -140 Ingrid 英格丽 1 -141 Irene 艾琳 1 -142 Iris 爱莉丝 1 -143 Irma 艾尔玛 1 -144 Isabel 伊莎蓓尔 1 -145 Ivy 艾薇 1 -146 Jacqueline 贾桂琳 1 -147 Jamie 婕咪 1 -148 Jane 珍 1 -149 Janet 珍妮特 1 -150 Janice 珍尼丝 1 -151 Jean 琴 1 -152 Jennifer 珍尼佛 1 -153 Jenny 珍妮 1 -154 Jessie 婕西 1 -155 Jessica 杰西嘉 1 -156 Jill 姬儿 1 -157 Jo 乔 1 -158 Joan 琼 1 -159 Joanna 乔安娜 1 -160 Joanne 希伯来 1 -161 Jocelyn 贾思琳 1 -162 Jodie 乔蒂 1 -163 Josephine 约瑟芬 1 -164 Joy 乔伊 1 -165 Joyce 乔伊丝 1 -166 Judith 朱蒂斯 1 -167 Judy 朱蒂 1 -168 Julia 朱丽亚 1 -169 Julie 朱莉 1 -170 Juliet 朱丽叶 1 -171 June 朱恩 1 -172 Kama 卡玛 1 -173 Karen 凯伦 1 -174 Katherine 凯瑟琳 1 -175 Kay 凯伊 1 -176 Kelly 凯莉盖 1 -177 Kimberley 金百莉 1 -178 Kitty 吉蒂 1 -179 Kristin 克莉丝汀 1 -180 Laura 萝拉 1 -181 Laurel 萝瑞尔 1 -182 Lauren 萝伦 1 -183 Lee 李 1 -184 Leila 莉拉 1 -185 Lena 莉娜 1 -186 Leona 李奥娜 1 -187 Lesley 雷思丽 1 -188 Letitia 莉蒂西雅 1 -189 Lilith 莉莉斯 1 -190 Lillian 丽莲 1 -191 Linda 琳达 1 -192 Lindsay 琳赛 1 -193 Lisa 丽莎 1 -194 Liz 莉斯 1 -195 Lorraine 洛伦 1 -196 Louise 璐易丝 1 -197 Lucy 露西 1 -198 Lydia 莉蒂亚 1 -199 Lynn 琳 1 -200 Mabel 玛佩尔 1 -201 Madeline 玛德琳 1 -202 Madge 玛琪 1 -203 Maggie 玛姬 1 -204 Mamie 梅蜜 1 -205 Mandy 曼蒂 1 -206 Marcia 玛西亚 1 -207 Marguerite 玛格丽特 1 -208 Maria 玛丽亚 1 -209 Marian 玛丽安 1 -210 Marina 马丽娜 1 -211 Marjorie 玛乔丽 1 -212 Martha 玛莎 1 -213 Martina 玛蒂娜 1 -214 Mary 玛丽 1 -215 Maud 穆得 1 -216 Maureen 穆琳 1 -217 Mavis 梅薇思 1 -218 Maxine 玛可欣 1 -219 Mag 麦格 1 -220 May 梅 1 -221 Megan 梅根 1 -222 Melissa 蒙丽莎 1 -223 Meroy 玛希 1 -224 Merry 梅莉 1 -225 Michelle 蜜雪儿 1 -226 Michaelia 蜜雪莉雅 1 -227 Mignon 蜜妮安 1 -228 Mildred 穆得莉 1 -229 Mirabelle 蜜拉贝儿 1 -230 Miranda 米兰达 1 -231 Miriam 蜜莉恩 1 -232 Modesty 摩黛丝提 1 -233 Moira 茉伊拉 1 -234 Molly 茉莉 1 -235 Mona 梦娜 1 -236 Monica 莫妮卡 1 -237 Muriel 穆丽儿 1 -238 Myra 玛拉 1 -239 Myrna 蜜尔娜 1 -240 Nancy 南茜 1 -241 Natalie 娜特莉 1 -242 Natividad 娜提雅维达 1 -243 Nelly 内丽 1 -244 Nicola 妮可拉 1 -245 Nicole 妮可 1 -246 Nina 妮娜 1 -247 Nora 诺拉 1 -248 Norma 诺玛 1 -249 Novia 诺维雅 1 -250 Nydia 妮蒂亚 1 -251 Octavia 奥克塔薇尔 1 -252 Odelette 奥蒂列特 1 -253 Odelia 奥蒂莉亚 1 -254 Olga 欧尔佳 1 -255 Olive 奥丽芙 1 -256 Olivia 奥丽薇亚 1 -257 Ophelia 奥菲莉亚 1 -258 Pag 佩格 1 -259 Page 蓓姬 1 -260 Pamela 潘蜜拉 1 -261 Pandora 潘朵拉 1 -262 Patricia 派翠西亚 1 -263 Paula 赛拉 1 -264 Pearl 佩儿 1 -265 Penelope 潘娜洛普 1 -266 Penny 潘妮 1 -267 Phoebe 菲碧 1 -268 Phoenix 菲妮克丝 1 -269 Phyllis 菲丽丝 1 -270 Polly 珀莉 1 -271 Poppy 波比 1 -272 Prima 普莉玛 1 -273 Prudence 普鲁登斯 1 -274 Queena 昆娜 1 -275 Quintina 昆蒂娜 1 -276 Rachel 瑞琪儿 1 -277 Rae 瑞伊 1 -278 Rebecca 丽蓓卡 1 -279 Regina 蕾佳娜 1 -280 Renata 蕾娜塔 1 -281 Renee 蕾妮 1 -282 Rita 莉达 1 -283 Riva 莉娃 1 -284 Roberta 萝勃塔 1 -285 Rosalind 罗莎琳德 1 -286 Rose 罗丝 1 -287 Rosemary 露丝玛丽 1 -288 Roxanne 洛葛仙妮 1 -289 Ruby 露比 1 -290 Ruth 露丝 1 -291 Sabina 莎碧娜 1 -292 Sally 莎莉 1 -293 Sabrina 莎柏琳娜 1 -294 Salome 莎洛姆 1 -295 Samantha 莎曼撤 1 -296 Sandra 珊朵拉 1 -297 Sandy 仙蒂 1 -298 Sara 莎拉 1 -299 Sarah 赛拉 1 -300 Sebastiane 莎芭丝提妮 1 -301 Selena 萨琳娜 1 -302 Sharon 雪伦 1 -303 Sheila 希拉 1 -304 Sherry 雪莉 1 -305 Shirley 雪丽 1 -306 Sibyl 希贝儿 1 -307 Sigrid 西格莉德 1 -308 Simona 席梦娜 1 -309 Sophia 苏菲亚 1 -310 Spring 丝柏凌 1 -311 Stacey 史黛丝 1 -312 Setlla 丝特勒 1 -313 Stephanie 丝特芬妮 1 -314 Susan 苏珊 1 -315 Susanna 苏珊娜 1 -316 Susie 苏西 1 -317 Suzanne 苏珊 1 -318 Sylvia 西维亚 1 -319 Tabitha 泰贝莎 1 -320 Tammy 泰蜜 1 -321 Teresa 泰瑞莎 1 -322 Tess 泰丝 1 -323 Thera 席拉 1 -324 Theresa 泰丽莎 1 -325 Tiffany 蒂芙妮 1 -326 Tina 蒂娜 1 -327 Tobey 托比 1 -328 Tracy 翠西 1 -329 Trista 翠丝特 1 -330 Truda 杜达 1 -331 Ula 优拉 1 -332 Una 优娜 1 -333 Ursula 耳舒拉 1 -334 Valentina 范伦汀娜 1 -335 Valerie 瓦勒莉 1 -336 Vanessa 瓦妮莎 1 -337 Venus 维纳斯 1 -338 Vera 维拉 1 -339 Verna 维娜 1 -340 Veromca 维隆卡 1 -341 Veronica 维拉妮卡 1 -342 Victoria 维多利亚 1 -343 Vicky 维琪 1 -344 Viola 维尔拉 1 -345 Violet 维尔莉特 1 -346 Virginia 维吉妮亚 1 -347 Vita 维达 1 -348 Vivien 维文 1 -349 Wallis 华莉丝 1 -350 Wanda 旺妲 1 -351 Wendy 温蒂 1 -352 Winifred 温妮费德 1 -353 Winni 温妮 1 -354 Xanthe 桑席 1 -355 Xaviera 赛薇亚拉 1 -356 Xenia 芝妮雅 1 -357 Yedda 耶达 1 -358 Yetta 依耶塔 1 -359 Yvette 依耶芙特 1 -360 Yvonne 伊芳 1 -361 Zara 莎拉 1 -362 Zenobia 丽诺比丽 1 -363 Zoe 若伊 1 -364 Zona 若娜 1 -365 Zora 若拉 1 -366 Aaron 艾伦希伯 2 -367 Abbott 艾布特希伯 2 -368 Abel 亚伯 2 -369 Abner 艾布纳希 2 -370 Abraham 亚伯拉罕希 2 -371 Adair 亚岱尔 2 -372 Adam 亚当希 2 -373 Addison 艾狄生 2 -374 Adolph 阿道夫 2 -375 Adonis 亚度尼斯 2 -376 Adrian 亚德里恩 2 -377 Ahern 亚恒 2 -378 Alan 艾伦 2 -379 Albert 艾伯特 2 -380 Aldrich 奥德里奇 2 -381 Alexander 亚历山大 2 -382 Alfred 亚尔弗列得 2 -383 Alger 阿尔杰 2 -384 Algernon 阿尔杰农 2 -385 Allen 艾伦盖尔 2 -386 Alston 奥斯顿 2 -387 Alva 阿尔瓦 2 -388 Alvin 阿尔文 2 -389 Alvis 亚尔维斯 2 -390 Amos 亚摩斯 2 -391 Andre 安得烈 2 -392 Andrew 安德鲁 2 -393 Andy 安迪 2 -394 Angelo 安其罗 2 -395 Augus 安格斯 2 -396 Ansel 安斯艾 2 -397 Antony 安东尼 2 -398 Antoine 安东 2 -399 Antonio 安东尼奥 2 -400 Archer 阿奇尔 2 -401 Archibald 阿奇柏德 2 -402 Aries 亚力士 2 -403 Arlen 亚尔林 2 -404 Armand 亚尔曼 2 -405 Armstrong 阿姆斯特朗 2 -406 Arno 阿诺 2 -407 Arnold 阿诺德 2 -408 Arthur 亚瑟 2 -409 Arvin 艾文 2 -410 Asa 亚撒 2 -411 Ashbur 亚希伯 2 -412 Atwood 亚特伍德 2 -413 Aubrey 奥布里 2 -414 August 奥格斯格 2 -415 Augustine 奥古斯汀 2 -416 Avery 艾富里 2 -417 Baird 拜尔德 2 -418 Baldwin 柏得温 2 -419 Bancroft 班克罗福特 2 -420 Bard 巴德 2 -421 Barlow 巴罗 2 -422 Barnett 巴奈特 2 -423 Baron 巴伦 2 -424 Barret 巴里特 2 -425 Barry 巴里 2 -426 Bartholomew 巴萨罗穆 2 -427 Bart 巴特 2 -428 Barton 巴顿 2 -429 Bartley 巴特莱 2 -430 Basil 巴泽尔 2 -431 Beacher 比其尔 2 -432 Beau 宝儿 2 -433 Beck 贝克 2 -434 Ben 本 2 -435 Benedict 班尼迪克 2 -436 Benjamin 班杰明 2 -437 Bennett 班奈特 2 -438 Benson 班森 2 -439 Berg 柏格 2 -440 Berger 格吉尔 2 -441 Bernie 伯尼 2 -442 Bert 伯特 2 -443 Berton 伯顿 2 -444 Bertram 柏特莱姆 2 -445 Bevis 毕维斯 2 -446 Bill 比尔 2 -447 Bing 宾 2 -448 Bishop 毕夏普 2 -449 Blair 布雷尔 2 -450 Blake 布莱克 2 -451 Blithe 布莱兹 2 -452 Bob 鲍伯 2 -453 Booth 布兹 2 -454 Borg 柏格 2 -455 Boris 伯里斯 2 -456 Bowen 波文 2 -457 Boyce 柏宜斯 2 -458 Boyd 布德 2 -459 Bradley 布兰得利 2 -460 Brady 布莱迪 2 -461 Brandon 布兰登 2 -462 Brian 布莱恩 2 -463 Broderick 布拉得里克 2 -464 Brook 布鲁克 2 -465 Bruce 布鲁斯 2 -466 Bruno 布鲁诺 2 -467 Buck 巴克 2 -468 Burgess 伯骑士 2 -469 Burke 巴尔克 2 -470 Burnell 布尼尔 2 -471 Burton 波顿 2 -472 Byron 拜伦 2 -473 Caesar 凯撒 2 -474 Calvin 卡尔文 2 -475 Carey 凯里 2 -476 Carl 卡尔 2 -477 Carr 凯尔 2 -478 Carter 卡特 2 -479 Cash 凯希 2 -480 Cecil 塞西 2 -481 Cedric 赛得里克 2 -482 Chad 查德 2 -483 Channing 强尼 2 -484 Chapman 契布曼 2 -485 Charles 查理斯 2 -486 Chasel 夏佐 2 -487 Chester 贾斯特 2 -488 Christ 克莱斯特 2 -489 Christian 克里斯汀 2 -490 Christopher 克里斯多夫 2 -491 Clare 克雷尔 2 -492 Clarence 克拉伦斯 2 -493 Clark 克拉克 2 -494 Claude 克劳德 2 -495 Clement 克雷孟特 2 -496 Cleveland 克利夫兰 2 -497 Cliff 柯利福 2 -498 Clifford 柯利弗德 2 -499 Clyde 克莱得 2 -500 Colbert 考伯特 2 -501 Colby 考尔比 2 -502 Colin 科林 2 -503 Conrad 康拉德 2 -504 Corey 寇里 2 -505 Cornelius 康那理惟士 2 -506 Cornell 康奈尔 2 -507 Curitis 柯帝士 2 -508 Cyril 西瑞尔 2 -509 Dana 戴纳 2 -510 Daniel 丹尼尔 2 -511 Darcy 达尔西 2 -512 Darnell 达尼尔 2 -513 Darren 达伦 2 -514 Dave 迪夫 2 -515 David 大卫 2 -516 Dean 迪恩 2 -517 Dempsey 邓普斯 2 -518 Dennis 邓尼斯 2 -519 Derrick 戴里克 2 -520 Devin 得文 2 -521 Dick 狄克 2 -522 Dominic 多明尼 2 -523 Donahue 唐纳修 2 -524 Donald 唐纳德 2 -525 Douglas 道格拉斯盖尔 2 -526 Drew 杜鲁威尔 2 -527 Duke 杜克 2 -528 Duncan 邓肯 2 -529 Dunn 唐恩 2 -530 Dwight 德维特 2 -531 Dylan 狄伦 2 -532 Earl 额尔 2 -533 Ed 艾德 2 -534 Eden 伊登 2 -535 Edgar 爱德格 2 -536 Edmund 艾德蒙 2 -537 Edison 爱迪生 2 -538 Edward 爱德华 2 -539 Edwiin 爱德温 2 -540 Egbert 爱格伯特 2 -541 Eli 伊莱 2 -542 Elijah 易莱哲 2 -543 Elliot 伊里 2 -544 Ellis 艾理斯 2 -545 Elmer 爱尔玛 2 -546 Elroy 爱罗伊 2 -547 Elton 爱尔顿 2 -548 Elvis 艾维斯 2 -549 Emmanuel 爱曼纽 2 -550 Enoch 伊诺克 2 -551 Eric 艾利克 2 -552 Ernest 欧尼斯特 2 -553 Eugene 尤金 2 -554 Evan 尔文 2 -555 Everley 伊夫力 2 -556 Fabian 富宾恩 2 -557 Felix 菲力克斯 2 -558 Ferdinand 斐迪南 2 -559 Fitch 费奇 2 -560 Fitzgerald 费兹捷勒 2 -561 Ford 福特 2 -562 Francis 法兰西斯 2 -563 Frank 法兰克 2 -564 Franklin 法兰克林 2 -565 Frederic 弗雷得力克 2 -566 Gabriel 加布力尔 2 -567 Gale 加尔 2 -568 Gary 盖理 2 -569 Gavin 盖文 2 -570 Gene 吉恩 2 -571 Geoffrey 杰佛理 2 -572 Geoff 杰夫 2 -573 George 乔治 2 -574 Gerald 吉罗德 2 -575 Gilbert 吉伯特 2 -576 Giles 贾艾斯 2 -577 Glenn 葛兰 2 -578 Goddard 哥达 2 -579 Godfery 高德佛里 2 -580 Gordon 戈登 2 -581 Greg 葛列格 2 -582 Gregary 葛列格里 2 -583 Griffith 葛里菲兹威尔斯 2 -584 Grover 格罗佛 2 -585 Gustave 古斯塔夫 2 -586 Guy 盖 2 -587 Hale 霍尔 2 -588 Haley 哈利 2 -589 Hamiltion 汉米敦 2 -590 Hardy 哈帝 2 -591 Harlan 哈伦 2 -592 Harley 哈利 2 -593 Harold 哈乐德 2 -594 Harriet 哈里特 2 -595 Harry 哈里 2 -596 Harvey 哈威 2 -597 Hayden 海登 2 -598 Heather 海拾兹 2 -599 Henry 享利 2 -600 Herbert 赫伯特 2 -601 Herman 赫尔曼 2 -602 Hilary 希拉里 2 -603 Hiram 海勒 2 -604 Hobart 霍伯特 2 -605 Hogan 霍根 2 -606 Horace 哈瑞斯 2 -607 Howar 好尔德 2 -608 Hubery 休伯特 2 -609 Hugo 雨果 2 -610 Humphrey 韩弗理 2 -611 Hunter 汉特 2 -612 Hyman 海曼 2 -613 Ian 伊恩 2 -614 Ingemar 英格马 2 -615 Ingram 英格兰姆 2 -616 Ira 艾勒 2 -617 Isaac 艾萨克 2 -618 Isidore 伊西多 2 -619 Ivan 艾凡 2 -620 Ives 艾维斯 2 -621 Jack 杰克 2 -622 Jacob 雅各 2 -623 James 詹姆士 2 -624 Jared 杰瑞德 2 -625 Jason 杰森 2 -626 Jay 杰法 2 -627 Jeff 杰夫 2 -628 Jeffrey 杰佛瑞 2 -629 Jeremy 杰勒米 2 -630 Jerome 哲罗姆 2 -631 Jerry 杰理 2 -632 Jesse 杰西 2 -633 Jim 吉姆 2 -634 Jo 乔 2 -635 John 约翰 2 -636 Jonas 琼纳斯 2 -637 Jonathan 强纳生 2 -638 Joseph 约瑟夫 2 -639 Joshua 乔休尔 2 -640 Joyce 乔伊斯 2 -641 Julian 朱利安 2 -642 Julius 朱利尔斯 2 -643 Justin 贾斯丁 2 -644 Keith 基斯 2 -645 Kelly 凯利 2 -646 Ken 肯恩 2 -647 Kennedy 甘乃迪 2 -648 Kenneth 肯尼士 2 -649 Kent 肯特 2 -650 Kerr 科尔 2 -651 Kerwin 科尔温 2 -652 Kevin 凯文 2 -653 Kim 金姆 2 -654 King 金 2 -655 Kirk 科克盖尔 2 -656 Kyle 凯尔威尔斯 2 -657 Lambert 蓝伯特 2 -658 Lance 蓝斯 2 -659 Larry 劳瑞 2 -660 Lawrence 劳伦斯 2 -661 Leif 列夫 2 -662 Len 伦恩 2 -663 Lennon 蓝侬爱尔兰 2 -664 Leo 利奥 2 -665 Leonard 伦纳德 2 -666 Leopold 利奥波德 2 -667 Les 勒斯 2 -668 Lester 里斯特 2 -669 Levi 李维 2 -670 Lewis 路易斯 2 -671 Lionel 赖昂内尔 2 -672 Louis 路易士 2 -673 Lucien 陆斯恩 2 -674 Luther 路德 2 -675 Lyle 赖尔 2 -676 Lyndon 林顿 2 -677 Lynn 林恩 2 -678 Magee 麦基 2 -679 Malcolm 麦尔肯 2 -680 Mandel 曼德尔 2 -681 Marcus 马卡斯 2 -682 Marico 马里奥 2 -683 Mark 马克 2 -684 Marlon 马伦 2 -685 Marsh 玛希 2 -686 Marshall 马歇尔 2 -687 Martin 马丁 2 -688 Marvin 马文 2 -689 Matt 马特 2 -690 Matthew 马休 2 -691 Maurice 摩里斯 2 -692 Max 马克斯 2 -693 Maximilian 马克西米兰 2 -694 Maxwell 麦斯威尔 2 -695 Meredith 马勒第兹 2 -696 Merle 莫尔 2 -697 Merlin 莫林 2 -698 Michael 麦克 2 -699 Michell 米契尔 2 -700 Mick 密克 2 -701 Mike 麦克 2 -702 Miles 麦尔斯 2 -703 Milo 米路 2 -704 Monroe 门罗 2 -705 Montague 曼特裘 2 -706 Moore 莫尔 2 -707 Morgan 摩尔根 2 -708 Mortimer 摩帝马 2 -709 Morton 摩顿 2 -710 Moses 摩西 2 -711 Murphy 摩菲 2 -712 Murray 莫雷 2 -713 Myron 麦伦 2 -714 Nat 纳特 2 -715 Nathan 奈登 2 -716 Nathaniel 奈宝尼尔 2 -717 Neil 尼尔 2 -718 Nelson 尼尔森 2 -719 Newman 纽曼 2 -720 Nicholas 尼克勒斯 2 -721 Nick 尼克 2 -722 Nigel 奈哲尔 2 -723 Noah 诺亚 2 -724 Noel 诺尔 2 -725 Norman 诺曼 2 -726 Norton 诺顿 2 -727 Ogden 欧格登 2 -728 Oliver 奥利佛 2 -729 Omar 奥玛 2 -730 Orville 奥利尔 2 -731 Osborn 奥斯本 2 -732 Oscar 奥斯卡 2 -733 Osmond 奥斯蒙 2 -734 Oswald 奥斯维得 2 -735 Otis 奥狄斯 2 -736 Otto 奥特 2 -737 Owen 欧恩 2 -738 Page 裴吉 2 -739 Parker 派克 2 -740 Paddy 培迪 2 -741 Patrick 派翠克 2 -742 Paul 保罗 2 -743 Payne 派恩 2 -744 Perry 斐瑞 2 -745 Pete 皮特 2 -746 Peter 彼得 2 -747 Phil 菲尔希 2 -748 Philip 菲力浦 2 -749 Porter 波特 2 -750 Prescott 普莱斯考特 2 -751 Primo 普利莫 2 -752 Quentin 昆特 2 -753 Quennel 昆尼尔 2 -754 Quincy 昆西 2 -755 Quinn 昆 2 -756 Quintion 昆顿 2 -757 Rachel 雷契尔 2 -758 Ralap 雷尔夫 2 -759 Randolph 蓝道夫 2 -760 Raymond 雷蒙德 2 -761 Regan 里根 2 -762 Reginald 雷吉诺德 2 -763 Reuben 鲁宾 2 -764 Rex 雷克斯 2 -765 Richard 理查 2 -766 Robert 罗伯特 2 -767 Robin 罗宾 2 -768 Rock 洛克 2 -769 Rod 罗德 2 -770 Roderick 罗得里克 2 -771 Rodney 罗德尼 2 -772 Ron 罗恩 2 -773 Ronald 罗奈尔得 2 -774 Rory 罗里 2 -775 Roy 罗伊 2 -776 Rudolf 鲁道夫 2 -777 Rupert 鲁伯特 2 -778 Ryan 莱安 2 -779 Sam 山姆 2 -780 Sampson 辛普森 2 -781 Samuel 撒姆尔 2 -782 Sandy 山迪 2 -783 Saxon 撒克逊 2 -784 Scott 史考特 2 -785 Sean 肖恩 2 -786 Sebastian 夕巴斯汀 2 -787 Sid 锡德 2 -788 Sidney 锡得尼 2 -789 Silvester 席尔维斯特 2 -790 Simon 赛门 2 -791 Solomon 所罗门 2 -792 Stan 史丹 2 -793 Stanford 史丹佛 2 -794 Stanley 史丹尼 2 -795 Steven 史帝文 2 -796 Stev 史帝夫 2 -797 Steward 史都华德 2 -798 Tab 塔伯 2 -799 Taylor 泰勒 2 -800 Ted 泰德 2 -801 Ternence 泰伦斯 2 -802 Theobald 希尔保特 2 -803 Theodore 希欧多尔 2 -804 Thomas 托玛士 2 -805 Tiffany 帝福尼 2 -806 Tim 堤姆 2 -807 Timothy 帝摩斯 2 -808 Tobias 托拜西 2 -809 Toby 托比 2 -810 Todd 陶德 2 -811 Tom 汤姆 2 -812 Tony 汤尼拉丁 2 -813 Tracy 特瑞西 2 -814 Troy 特洛伊 2 -815 Truman 杜鲁门 2 -816 Tyler 泰勒 2 -817 Tyrone 泰伦 2 -818 Ulysses 尤里西斯 2 -819 Upton 阿普顿 2 -820 Uriah 尤莱亚 2 -821 Valentine 范伦铁恩 2 -822 Valentine 范伦丁 2 -823 Verne 佛能 2 -824 Vic 维克 2 -825 Victor 维克多 2 -826 Vincent 文森 2 -827 Virgil 维吉尔 2 -828 Vito 维托 2 -829 Vivian 卫维 2 -830 Wade 维德 2 -831 Walker 瓦尔克 2 -832 Walter 瓦尔特 2 -833 Ward 华德 2 -834 Warner 华纳 2 -835 Wayne 韦恩 2 -836 Webb 韦勃 2 -837 Webster 韦伯斯 2 -838 Wendell 温德尔 2 -839 Werner 韦纳尔 2 -840 Wilbur 韦尔伯 2 -841 Will 威尔 2 -842 William 威廉 2 -843 Willie 威利 2 -844 Winfred 威弗列德 2 -845 Winston 温士顿 2 -846 Woodrow 伍德洛 2 -847 Wordsworth 渥兹华斯 2 -848 Wright 莱特 2 -849 Wythe 伟兹 2 -850 Xavier 赛维尔 2 -851 Yale 耶鲁 2 -852 Yehudi 耶呼弟 2 -853 York 约克 2 -854 Yves 依夫 2 -855 Zachary 扎克利 2 -856 Zebulon 纪伯伦 2 \ No newline at end of file diff --git a/src/server/gamedata/config/RankData.txt b/src/server/gamedata/config/RankData.txt deleted file mode 100644 index 101b5a18..00000000 --- a/src/server/gamedata/config/RankData.txt +++ /dev/null @@ -1,18 +0,0 @@ -等级配置表 -Id lv exp reward -int int int string -等级编号 等级 经验 奖励 -1 1 20 "84,563" -2 2 30 101 -3 3 40 104 -4 4 50 "581,102,562" -5 5 60 "123,562,561" -6 6 70 "562,161,581" -7 7 80 "182,562,581" -8 8 90 "603,562,581" -9 9 100 "165,562,581" -10 10 110 "184,562,581" -11 11 120 "601,562,581" -12 12 130 "202,562,581" -13 13 140 "602,562,581" -14 14 150 null diff --git a/src/server/gamedata/config/SceneData.txt b/src/server/gamedata/config/SceneData.txt deleted file mode 100644 index 9087bc5e..00000000 --- a/src/server/gamedata/config/SceneData.txt +++ /dev/null @@ -1,9 +0,0 @@ -场景配置表 -Id SceneId AreaId Title Icon IconGray -int int int string string string -Id 场景 编号 标题 图片 灰图 -1 1 1 Home Makeover Area/merge_pic_bgcat -2 1 2 Pup's Place Area/merge_pic_bgdog Area/merge_pic_bgdog_gray -3 1 3 Kitchen Chaos Area/merge_pic_bgkitchen Area/merge_pic_bgkitchen_gray -4 1 4 Backyard Haven Area/merge_pic_bgyard Area/merge_pic_bgyard_gray -5 1 5 Paws in the Trees Area/merge_pic_bgtreehouse Area/merge_pic_bgtreehouse_gray diff --git a/src/server/gamedata/config/ShopItem.txt b/src/server/gamedata/config/ShopItem.txt deleted file mode 100644 index 9c04c007..00000000 --- a/src/server/gamedata/config/ShopItem.txt +++ /dev/null @@ -1,19 +0,0 @@ -商店商品表 -Id Group ObjId SellType SellPrice TotalCount -int string string string float int -Id 群组 合成Id 类型 价格 数量 -1 Time MergeId=561 Diamond 25 1 -2 Time MergeId=562 Ad 0 1 -3 Time MergeId=563 Free 0 1 -4 Sale RandomEmitId Diamond 0 1 -5 Sale RandomMergeId Diamond 0 5 -6 Sale RandomMergeId Diamond 0 5 -7 Sale RandomMergeId Diamond 0 5 -8 Sale RandomMergeId Diamond 0 5 -9 Sale RandomMergeId Diamond 0 5 -10 Diamond Diamond Dollar 1.99 100 -11 Diamond Diamond Dollar 4.99 260 -12 Diamond Diamond Dollar 9.99 580 -13 Diamond Diamond Dollar 19.99 1400 -14 Diamond Diamond Dollar 49.99 3900 -15 Diamond Diamond Dollar 99.99 8000 \ No newline at end of file diff --git a/src/server/gamedata/config/ShopPack.txt b/src/server/gamedata/config/ShopPack.txt deleted file mode 100644 index 44da7939..00000000 --- a/src/server/gamedata/config/ShopPack.txt +++ /dev/null @@ -1,9 +0,0 @@ -商店礼包表 -Id Title Content Price_Old Price_New Discount TotalCount -int string string float float float int -Id 标题 礼包内容 原价 售价 折扣 数量限制 -1 Shining Pack "563=1,Diamond=318" 6 2.99 0.5 3 -2 Daily Pack "581=1,562=2,Diamond=300" 6 2.99 0.5 3 -3 Weekly Pack "585=1,Diamond=360,Energy=360" 10 4.99 0.5 3 -4 Pet Pack "562=1,Diamond=80" 1.65 0.99 0.6 -1 -5 Lady Pack "562=10,Diamond=1650" 25 14.99 0.6 -1 diff --git a/src/server/gamedata/config/StartMerge.txt b/src/server/gamedata/config/StartMerge.txt deleted file mode 100644 index a8918c03..00000000 --- a/src/server/gamedata/config/StartMerge.txt +++ /dev/null @@ -1,67 +0,0 @@ -界面配置表 -Id MergeId Row Line Lock remark -int int int int int string -Id 合成Id 行 列 锁定状态 备注 -1 223 0 0 2 小麦制品3 -2 143 1 0 2 面包3 -3 284 2 0 2 蜂蜜4 -4 303 3 0 2 猫3 -5 142 4 0 2 面包2 -6 44 5 0 2 花草2 -7 283 6 0 2 蜂蜜3 -8 182 0 1 2 蜜蜂2 -9 144 1 1 2 面包4 -10 301 2 1 2 猫1 -11 63 3 1 2 橘子派3 -12 242 4 1 2 书籍2 -13 122 5 1 2 烤炉2 -14 226 6 1 2 小麦制品6 -15 241 0 2 2 书籍1 -16 6 1 2 2 咖啡6 -17 24 2 2 2 苏打4 -18 43 3 2 2 蛋糕3 -19 185 4 2 2 蜜蜂5 -20 42 5 2 2 蛋糕2 -21 261 6 2 2 玩具1 -22 161 0 3 2 书架1 -23 6 1 3 2 咖啡6 -24 3 2 3 2 咖啡3 -25 7 3 3 2 咖啡7 -26 41 4 3 2 蛋糕1 -27 23 5 3 2 苏打3 -28 4 6 3 2 香水1 -29 45 0 4 2 蛋糕5 -30 4 1 4 2 咖啡4 -31 81 2 4 0 茶具1 -32 81 3 4 0 茶具1 -33 2 4 4 2 咖啡2 -34 5 5 4 2 咖啡5 -35 124 6 4 2 烤炉4 -36 101 0 5 2 购物袋1 -37 3 1 5 2 咖啡3 -38 2 2 5 2 咖啡2 -39 82 3 5 1 茶具2 -40 83 4 5 2 茶具3 -41 6 5 5 2 咖啡6 -42 121 6 5 2 烤炉1 -43 103 0 6 2 购物袋3 -44 5 1 6 2 咖啡5 -45 21 2 6 2 苏打1 -46 5 3 6 2 咖啡5 -47 22 4 6 2 苏打2 -48 46 5 6 2 蛋糕6 -49 141 6 6 2 面包1 -50 144 0 7 2 面包4 -51 202 1 7 2 猫窝2 -52 102 2 7 2 购物袋2 -53 201 3 7 2 猫窝1 -54 181 4 7 2 蜜蜂1 -55 163 5 7 2 书架3 -56 222 6 7 2 小麦制品2 -57 45 0 8 2 香水6 -58 282 1 8 2 蜂蜜2 -59 6 2 8 2 花草1 -60 224 3 8 2 小麦制品4 -61 5 4 8 2 香水4 -62 162 5 8 2 书架2 -63 283 6 8 2 蜂蜜3 diff --git a/src/server/gamedata/config/StartOrder.txt b/src/server/gamedata/config/StartOrder.txt deleted file mode 100644 index 0d317f68..00000000 --- a/src/server/gamedata/config/StartOrder.txt +++ /dev/null @@ -1,27 +0,0 @@ -界面配置表 -Id merge_id_list fillCount -int string int -Id 合成Id数组 填充数量 -1 3 1 -2 8 1 -3 4 1 -4 6 1 -5 22 3 -6 23 1 -7 6 1 -8 25 1 -9 8 1 -10 5,45 3 -11 6,23 1 -12 44,42 1 -13 4,4,23 3 -14 44 1 -15 45,43 1 -16 47 1 -17 4 3 -18 44,46 1 -19 62 1 -20 24,6 1 -21 3 1 -22 46,4,23 1 -23 63,23 1 \ No newline at end of file diff --git a/src/server/gamedata/config/test.txt b/src/server/gamedata/config/test.txt deleted file mode 100644 index 1882154c..00000000 --- a/src/server/gamedata/config/test.txt +++ /dev/null @@ -1,4 +0,0 @@ -数字索引 字符串索引 数字类型 字符串类型 数组类型 嵌套数组 变长数组 结构体类型 map类型 -1 one 0 knife "[1, 2]" "[[0,1], [1,2], [2,3]]" "[1, 2, 3]" "{""name"": ""name5566"", ""num"": 1}" "{""key1"": 1, ""key2"": 2}" -2 two 0 cat "[3, 4]" "[[1,2], [2,3], [3,4]]" "[4, 5]" "{""name"": ""name5566"", ""num"": 2}" "{""key3"": 3, ""key4"": 4}" -3 three 0 book "[5, 6]" "[[2,3], [3,4], [4,5]]" [6] "{""name"": ""name5566"", ""num"": 3}" "{""key5"": 5, ""key6"": 6}" From 8348e26ac49e0d41a0df25233258feed2fe94671 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:05:15 +0800 Subject: [PATCH 017/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0NPC=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/friend/friendCfg.go | 19 +++++++++++++++++++ src/server/game/RegisterNetworkFunc.go | 9 ++++++++- src/server/game/mod/friend/Friend.go | 7 ++++++- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/server/conf/friend/friendCfg.go diff --git a/src/server/conf/friend/friendCfg.go b/src/server/conf/friend/friendCfg.go new file mode 100644 index 00000000..187ff260 --- /dev/null +++ b/src/server/conf/friend/friendCfg.go @@ -0,0 +1,19 @@ +package friendCfg + +import "server/gamedata" + +const ( + CFG_NPC_FRIENDS = "NPCFriends" +) + +func init() { + gamedata.InitCfg(CFG_NPC_FRIENDS) +} + +func IsNpcFriend(Id int) bool { + _, err := gamedata.GetDataByIntKey(CFG_NPC_FRIENDS, Id) + if err != nil { + return false + } + return true +} diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index f61c40cc..d6d0af2d 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -5004,7 +5004,14 @@ func ReqAddNpc(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - FriendMod.SetNpc(int(req.NpcId)) + err = FriendMod.SetNpc(int(req.NpcId)) + if err != nil { + player.SendErrClienRes(&msg.ResAddNpc{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } if len(FriendMod.Npc) == 1 { // 首次添加NPC 视为邀请好友成功 InviteMod := player.PlayMod.getInviteMod() InviteMod.AddInvite(int(req.NpcId)) diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 3623036d..4fbf7399 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -4,6 +4,7 @@ import ( "fmt" "server/GoUtil" cardCfg "server/conf/card" + friendCfg "server/conf/friend" "server/game/mod/card" "server/game/mod/item" "server/msg" @@ -214,8 +215,12 @@ func (f *FriendMod) GetNpc() []int { return f.Npc } -func (f *FriendMod) SetNpc(id int) { +func (f *FriendMod) SetNpc(id int) error { + if !friendCfg.IsNpcFriend(id) { + return fmt.Errorf("not npc friend") + } f.Npc = append(f.Npc, id) + return nil } func (f *FriendMod) GetSyncId() int64 { From 89849854bbc9b6829a4e64279ae1d57d3f7e2d54 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:08:27 +0800 Subject: [PATCH 018/104] =?UTF-8?q?sql=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/sql/Merge_Pet.sql | 148 +++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/server/sql/Merge_Pet.sql diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql new file mode 100644 index 00000000..4b73f620 --- /dev/null +++ b/src/server/sql/Merge_Pet.sql @@ -0,0 +1,148 @@ +/*==============================================================*/ +/* Database name: sg_gamedb */ +/* DBMS name: MySQL 5.5.17 */ +/* Created on: 2014-10-16 10:00:00 */ +/*==============================================================*/ + +create database if not exists % database % CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +use % database %; + +-- ---------------------------- +-- Table structure for db_version 版本号,每次更新数据库要改这个地方 +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `db_version` ( + `version_2018_02_06_13` int unsigned NOT NULL COMMENT 'version' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '数据库版本号'; + +/*==============================================================*/ +/* Table: t_account 账号表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_account ( + `user_name` varchar(50) NOT NULL, + `user_password` varchar(128) NOT NULL, + `login_time` int unsigned DEFAULT '0' COMMENT '上次登录时间', + `logout_time` int unsigned DEFAULT '0' COMMENT '上次下线时间', + `ip_address` char(24) DEFAULT '' COMMENT '上次登录的ip地址', + `gm_level` int DEFAULT '0' COMMENT 'gm等级', + `platform` varchar(50) DEFAULT '' COMMENT '平台', + `is_online` int unsigned DEFAULT '0' COMMENT '角色是否在线', + `channel` varchar(50) DEFAULT '' COMMENT '渠道号', + `device_id` varchar(256) DEFAULT '' COMMENT '是否为刷榜账号', + `auto_id` bigint NOT NULL auto_increment COMMENT '自增id', + PRIMARY KEY (`auto_id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '账号密码对照表'; + +/*==============================================================*/ +/* Table: t_gameserver GameServer表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_gameserver ( + `id` int unsigned COMMENT '服务器id', + `start_time` int unsigned COMMENT '开服时间', + `close_time` int unsigned COMMENT '关服时间', + `is_close` int unsigned COMMENT '是否关服', + primary key (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '服务器设置'; + +-- ---------------------------- +-- Table structure for t_player_baseinfo +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `t_player_baseinfo` ( + `dwUin` bigint unsigned NOT NULL COMMENT '对应玩家account表中的dwUin', + `energy` int unsigned NOT NULL DEFAULT '0' COMMENT '能量', + `star` int unsigned NOT NULL DEFAULT '0' COMMENT '星星', + `recover_time` int unsigned NOT NULL DEFAULT '0' COMMENT '能量开始恢复时间', + `diamond` int unsigned NOT NULL DEFAULT '1' COMMENT '钻石', + `level` int unsigned NOT NULL DEFAULT '0' COMMENT '玩家等级', + `exp` int unsigned zerofill NOT NULL DEFAULT '0' COMMENT '玩家经验', + `start_order_id` varchar(50) DEFAULT NULL COMMENT '配置订单进度', + `music_code` int unsigned NOT NULL DEFAULT '0' COMMENT '音效状态码改为GUID免费改名状态', + `guild` int unsigned NOT NULL DEFAULT '0' COMMENT '引导进度 ', + `pack_unlock_count` int unsigned NOT NULL DEFAULT '0' COMMENT '背包解锁数量', + `last_play_time` int NOT NULL DEFAULT '0' COMMENT '广告能量购买时间', + `EnergyBuyCount` int NOT NULL DEFAULT '0' COMMENT '能量购买次数', + `user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '玩家账号', + `nick_name` varchar(50) NOT NULL DEFAULT '' COMMENT '玩家昵称', + `login_time` int unsigned NOT NULL DEFAULT '0' COMMENT '上次登录时间', + `logout_time` int unsigned NOT NULL DEFAULT '0' COMMENT '上次下线时间', + `todayolinetime` int unsigned NOT NULL DEFAULT '0' COMMENT '当天的累计在线时间', + `rolecreatetime` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `EmitOrderCnt` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `DailyRenewTime` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `NoAd` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `ChampshipsGroupID` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `LastChampGroupID` int unsigned NOT NULL DEFAULT '0' COMMENT '注册帐号时间', + `FaceBookId` varchar(128) DEFAULT '' COMMENT '玩家账号', + PRIMARY KEY (`dwUin`), + KEY `nick_name` (`nick_name`), + KEY `user_name` (`user_name`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '存储玩家基本信息'; + +/*==============================================================*/ +/* Table: t_player_data 玩家模块表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_player_mod ( + `dwUin` bigint unsigned COMMENT '玩家uid', + `mData` blob DEFAULT NULL COMMENT '数据', + `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', + primary key (`dwUin`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家模块表'; + +/*==============================================================*/ +/* Table: t_player_data 玩家订单表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_player_charge ( + `id` bigint unsigned AUTO_INCREMENT COMMENT '订单id', + `Uid` bigint unsigned NOT NULL COMMENT '玩家id', + `OrderId` varchar(128) DEFAULT '' COMMENT '订单号', + `ProductId` int unsigned NOT NULL DEFAULT '0' COMMENT '商品id', + `ProductName` varchar(128) DEFAULT '' COMMENT '商品名称', + `ProductDesc` varchar(128) DEFAULT '' COMMENT '商品描述', + `Price` float NOT NULL DEFAULT '0' COMMENT '价格', + `Currency` varchar(128) DEFAULT '' COMMENT '货币', + `CreateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `PayTime` int unsigned NOT NULL DEFAULT '0' COMMENT '支付时间', + `PayStatus` int unsigned NOT NULL DEFAULT '0' COMMENT '支付状态 0 未支付 1 已支付 2 支付失败 3 已发货', + `PayType` int unsigned NOT NULL DEFAULT '0' COMMENT '支付类型', + `PayPlatform` varchar(128) DEFAULT '' COMMENT '支付平台', + `PayChannel` varchar(128) DEFAULT '' COMMENT '支付渠道', + `PayChannelOrderId` varchar(512) DEFAULT '' COMMENT '支付渠道订单号', + `PayChannelUserId` varchar(128) DEFAULT '' COMMENT '支付渠道用户id', + `PayChannelExtra` varchar(128) DEFAULT '' COMMENT '支付渠道额外信息', + primary key (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家订单表'; + +-- ---------------------------- +-- Table structure for system_mail_info +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `system_mail_info` ( + `mail_id` bigint NOT NULL AUTO_INCREMENT COMMENT '邮件ID', + `title` varchar(128) DEFAULT "" COMMENT '邮件标题', + `subTitle` varchar(128) DEFAULT "" COMMENT '邮件子标题', + `content` varchar(2048) DEFAULT "" COMMENT '邮件内容', + `title_en` varchar(128) DEFAULT "" COMMENT '英文邮件标题', + `subTitle_en` varchar(128) DEFAULT "" COMMENT '英文邮件子标题', + `content_en` varchar(2048) DEFAULT "" COMMENT '英文邮件内容', + `title_ptbr` varchar(128) DEFAULT "" COMMENT '葡萄牙邮件标题', + `subTitle_ptbr` varchar(128) DEFAULT "" COMMENT '葡萄牙邮件子标题', + `content_ptbr` varchar(2048) DEFAULT "" COMMENT '葡萄牙邮件内容', + `items` varchar(2048) DEFAULT "{}" COMMENT '邮件附件', + `start_time` int unsigned NOT NULL DEFAULT '0' COMMENT '开始时间', + `register_time` int unsigned NOT NULL DEFAULT '0' COMMENT '注册时间', + `end_time` int unsigned NOT NULL DEFAULT '0' COMMENT '结束时间', + `mail_type` int unsigned NOT NULL DEFAULT '0' COMMENT '邮件类型', + `send_type` int unsigned NOT NULL DEFAULT '0' COMMENT '发送类型', + `to_uids` varchar(2048) DEFAULT "" COMMENT '发送者ID', + `create_time` int unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + PRIMARY KEY (`mail_id`) +) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT = '系统邮件'; + +/*==============================================================*/ +/* Table: t_player_data 系统模块表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_server_mod ( + `id` int NOT NULL AUTO_INCREMENT primary key, + `key` varchar(128) DEFAULT '' COMMENT '模块key', + `mData` mediumblob DEFAULT NULL COMMENT '数据', + `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统模块表'; \ No newline at end of file From 3466a7f0fbdc186cdd7f6ad2854944d06f1549d3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:37:38 +0800 Subject: [PATCH 019/104] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/msg/Gameapi.pb.go | 10176 ++++++++++++++------------------- 1 file changed, 4362 insertions(+), 5814 deletions(-) diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 751699a4..3752240b 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.36.11 // protoc v5.28.2 // source: proto/Gameapi.proto @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -1181,17 +1182,16 @@ func (FRIEND_REPLY_HANDLE_ERR_TYPE) EnumDescriptor() ([]byte, []int) { } type ClientReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID; + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` + Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` + SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` + GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"` + UserId string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"` + UserBase string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"` unknownFields protoimpl.UnknownFields - - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID; - Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` - Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` - SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` - GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"` - UserId string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"` - UserBase string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ClientReq) Reset() { @@ -1274,11 +1274,10 @@ func (x *ClientReq) GetUserBase() string { } type ReqOfflineReconnect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqOfflineReconnect) Reset() { @@ -1319,12 +1318,11 @@ func (x *ReqOfflineReconnect) GetDwUin() int64 { } type ResOfflineReconnect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResOfflineReconnect) Reset() { @@ -1372,12 +1370,11 @@ func (x *ResOfflineReconnect) GetResult() int32 { } type ReqBindFacebookAccount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqBindFacebookAccount) Reset() { @@ -1425,13 +1422,12 @@ func (x *ReqBindFacebookAccount) GetBindAccountId() string { } type ResBindFacebookAccount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResBindFacebookAccount) Reset() { @@ -1487,12 +1483,11 @@ func (x *ResBindFacebookAccount) GetResultCode() int32 { // //请求强制绑定已绑过其他设备的fb并且不同步数据 type ReqOnlyBindFacebook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqOnlyBindFacebook) Reset() { @@ -1540,13 +1535,12 @@ func (x *ReqOnlyBindFacebook) GetBindAccountId() string { } type ResOnlyBindFacebook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` - ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResOnlyBindFacebook) Reset() { @@ -1602,12 +1596,11 @@ func (x *ResOnlyBindFacebook) GetResultCode() int32 { // //请求接触绑定 type ReqUnBindFacebook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqUnBindFacebook) Reset() { @@ -1655,12 +1648,11 @@ func (x *ReqUnBindFacebook) GetBindAccountId() string { } type ResUnBindFacebook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResUnBindFacebook) Reset() { @@ -1709,12 +1701,11 @@ func (x *ResUnBindFacebook) GetBindAccountId() string { // //请求强制绑定已绑过其他设备的fb并且同步数据 type ReqSynGameData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSynGameData) Reset() { @@ -1762,12 +1753,11 @@ func (x *ReqSynGameData) GetNewFBId() string { } type ResSynGameData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSynGameData) Reset() { @@ -1815,9 +1805,9 @@ func (x *ResSynGameData) GetResultCode() int32 { } type ForceKickOut struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ForceKickOut) Reset() { @@ -1851,11 +1841,10 @@ func (*ForceKickOut) Descriptor() ([]byte, []int) { } type ResServerVersion struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"` unknownFields protoimpl.UnknownFields - - Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResServerVersion) Reset() { @@ -1896,11 +1885,10 @@ func (x *ResServerVersion) GetVersion() int32 { } type ResChessColorData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + state protoimpl.MessageState `protogen:"open.v1"` + MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResChessColorData) Reset() { @@ -1941,13 +1929,12 @@ func (x *ResChessColorData) GetMChessColorData() map[string]int32 { } type ClientRes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` + Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` unknownFields protoimpl.UnknownFields - - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` - Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` - Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ClientRes) Reset() { @@ -2003,14 +1990,13 @@ func (x *ClientRes) GetInfo() []byte { // //请求注册账号 type ReqRegisterAccount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` + DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; + sizeCache protoimpl.SizeCache } func (x *ReqRegisterAccount) Reset() { @@ -2073,11 +2059,10 @@ func (x *ReqRegisterAccount) GetDevice() string { // //响应注册账号 type ResRegisterAccount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRegisterAccount) Reset() { @@ -2119,15 +2104,14 @@ func (x *ResRegisterAccount) GetResultCode() int32 { // //请求登录 type ReqLogin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; + Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式; unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; - Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式; + sizeCache protoimpl.SizeCache } func (x *ReqLogin) Reset() { @@ -2196,11 +2180,10 @@ func (x *ReqLogin) GetType() LOGIN_TYPE { } type ReqLoginCode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码; unknownFields protoimpl.UnknownFields - - TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码; + sizeCache protoimpl.SizeCache } func (x *ReqLoginCode) Reset() { @@ -2241,13 +2224,12 @@ func (x *ReqLoginCode) GetTelPhone() string { } type ResLoginCode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败; + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试; unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试; + sizeCache protoimpl.SizeCache } func (x *ResLoginCode) Reset() { @@ -2302,12 +2284,11 @@ func (x *ResLoginCode) GetCode() string { } type ReqId2Verify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码; + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名; unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码; - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名; + sizeCache protoimpl.SizeCache } func (x *ReqId2Verify) Reset() { @@ -2355,12 +2336,11 @@ func (x *ReqId2Verify) GetName() string { } type ResId2Verify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败; + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; unknownFields protoimpl.UnknownFields - - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + sizeCache protoimpl.SizeCache } func (x *ResId2Verify) Reset() { @@ -2409,15 +2389,14 @@ func (x *ResId2Verify) GetMsg() string { // //响应登录 type ResLogin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` + FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` - FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + sizeCache protoimpl.SizeCache } func (x *ResLogin) Reset() { @@ -2486,13 +2465,12 @@ func (x *ResLogin) GetMsg() string { } type ReqChangePassword struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码; + NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码; - NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqChangePassword) Reset() { @@ -2547,11 +2525,10 @@ func (x *ReqChangePassword) GetNewPwd() string { } type ResChangePassword struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChangePassword) Reset() { @@ -2593,11 +2570,10 @@ func (x *ResChangePassword) GetResultCode() int32 { // /请求玩家基本信息(玩家登入成功后,第一条请求信息) type ReqPlayerBaseInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayerBaseInfo) Reset() { @@ -2639,34 +2615,33 @@ func (x *ReqPlayerBaseInfo) GetDwUin() int64 { // 响应基本信息 type ResPlayerBaseInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` - Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` - RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` - Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` - Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` - StartOrderId string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"` - MusicCode int32 `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"` - Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` - PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` - LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` - EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` - UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` - LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` - Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` - Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` - EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` - NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` - ChampshipsGroupID int32 `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"` - LastChampGroupID int32 `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"` - FaceBookId string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - RegisterTime int32 `protobuf:"varint,24,opt,name=register_time,json=registerTime,proto3" json:"register_time,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` + Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` + RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` + Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` + Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` + StartOrderId string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"` + MusicCode int32 `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"` + Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` + PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` + LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` + EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` + UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` + LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` + Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` + Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` + EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` + NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` + ChampshipsGroupID int32 `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"` + LastChampGroupID int32 `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"` + FaceBookId string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` + RegisterTime int32 `protobuf:"varint,24,opt,name=register_time,json=registerTime,proto3" json:"register_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResPlayerBaseInfo) Reset() { @@ -2868,9 +2843,9 @@ func (x *ResPlayerBaseInfo) GetRegisterTime() int32 { } type ReqPlayerAsset struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayerAsset) Reset() { @@ -2905,21 +2880,20 @@ func (*ReqPlayerAsset) Descriptor() ([]byte, []int) { // 玩家资产 type ResPlayerAsset struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` + Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` + RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` + Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` + Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` + Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` + PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验; + LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数; unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` - Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` - RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` - Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` - Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` - Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` - PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验; - LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数; + sizeCache protoimpl.SizeCache } func (x *ResPlayerAsset) Reset() { @@ -3031,12 +3005,11 @@ func (x *ResPlayerAsset) GetLoginDay() int32 { // 客户端向服务器请求更新基本信息条目(没有响应) type UpdateBaseItemInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *UpdateBaseItemInfo) Reset() { @@ -3084,12 +3057,11 @@ func (x *UpdateBaseItemInfo) GetMUpdateItem() map[int32]int32 { } type NotifyRenewBuyEnergyCnt struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotifyRenewBuyEnergyCnt) Reset() { @@ -3138,11 +3110,10 @@ func (x *NotifyRenewBuyEnergyCnt) GetCurCnt() int32 { // /请求移除广告 type ReqRemoveAd struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqRemoveAd) Reset() { @@ -3184,11 +3155,10 @@ func (x *ReqRemoveAd) GetDwUin() int64 { // //响应移除广告 type ResRemoveAd struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRemoveAd) Reset() { @@ -3230,12 +3200,11 @@ func (x *ResRemoveAd) GetResultCode() int32 { // 服务器向客户端通知间隔增长的体力 type NotifyAddEnergy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotifyAddEnergy) Reset() { @@ -3284,11 +3253,10 @@ func (x *NotifyAddEnergy) GetAddCnt() int32 { // /请求服务器时间 type ReqServerTime struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqServerTime) Reset() { @@ -3330,11 +3298,10 @@ func (x *ReqServerTime) GetDwUin() int64 { // //响应服务器时间 type ResServerTime struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"` unknownFields protoimpl.UnknownFields - - ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResServerTime) Reset() { @@ -3375,11 +3342,10 @@ func (x *ResServerTime) GetServerTime() int32 { } type ReqPlayerChessData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayerChessData) Reset() { @@ -3421,14 +3387,13 @@ func (x *ReqPlayerChessData) GetDwUin() int64 { // /响应棋盘数据 type ResPlayerChessData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + ChessList []int32 `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` + ChessBuff []int32 `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - ChessList []int32 `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` - ChessBuff []int32 `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayerChessData) Reset() { @@ -3490,17 +3455,16 @@ func (x *ResPlayerChessData) GetChessBuff() []int32 { } type ResPlayerChessInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessList []int32 `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` + ChessBuff []int32 `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` + ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` + RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` + Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` + PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件; + RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励; unknownFields protoimpl.UnknownFields - - ChessList []int32 `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` - ChessBuff []int32 `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` - ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` - RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` - Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` - PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件; - RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励; + sizeCache protoimpl.SizeCache } func (x *ResPlayerChessInfo) Reset() { @@ -3583,11 +3547,10 @@ func (x *ResPlayerChessInfo) GetRetireReward() []string { } type ReqGetChessRetireReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + sizeCache protoimpl.SizeCache } func (x *ReqGetChessRetireReward) Reset() { @@ -3628,13 +3591,12 @@ func (x *ReqGetChessRetireReward) GetId() string { } type ResGetChessRetireReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + sizeCache protoimpl.SizeCache } func (x *ResGetChessRetireReward) Reset() { @@ -3689,11 +3651,10 @@ func (x *ResGetChessRetireReward) GetId() string { } type PartBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子; unknownFields protoimpl.UnknownFields - - PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子; + sizeCache protoimpl.SizeCache } func (x *PartBag) Reset() { @@ -3734,12 +3695,11 @@ func (x *PartBag) GetPartBagGrids() []*PartBagGrid { } type PartBagGrid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量; unknownFields protoimpl.UnknownFields - - PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量; + sizeCache protoimpl.SizeCache } func (x *PartBagGrid) Reset() { @@ -3787,12 +3747,11 @@ func (x *PartBagGrid) GetCount() int32 { } type ReqPutPartInBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID; + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID; - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqPutPartInBag) Reset() { @@ -3840,12 +3799,11 @@ func (x *ReqPutPartInBag) GetMChessData() map[string]int32 { } type ResPutPartInBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPutPartInBag) Reset() { @@ -3894,15 +3852,14 @@ func (x *ResPutPartInBag) GetMsg() string { // 棋盘操作队列 type ChessHandle struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"` + Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` + ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; unknownFields protoimpl.UnknownFields - - Type HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"` - Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` - ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + sizeCache protoimpl.SizeCache } func (x *ChessHandle) Reset() { @@ -3972,13 +3929,12 @@ func (x *ChessHandle) GetActType() []int32 { // ///同步棋盘数据 type UpdatePlayerChessData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MChessHandle []*ChessHandle `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - MChessHandle []*ChessHandle `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdatePlayerChessData) Reset() { @@ -4033,12 +3989,11 @@ func (x *UpdatePlayerChessData) GetMChessHandle() []*ChessHandle { } type ResUpdatePlayerChessData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResUpdatePlayerChessData) Reset() { @@ -4087,12 +4042,11 @@ func (x *ResUpdatePlayerChessData) GetMsg() string { // 分离器 type ReqSeparateChess struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqSeparateChess) Reset() { @@ -4140,12 +4094,11 @@ func (x *ReqSeparateChess) GetMChessData() map[string]int32 { } type ResSeparateChess struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSeparateChess) Reset() { @@ -4194,12 +4147,11 @@ func (x *ResSeparateChess) GetMsg() string { // 神奇魔术棒(升级器) type ReqUpgradeChess struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqUpgradeChess) Reset() { @@ -4247,12 +4199,11 @@ func (x *ReqUpgradeChess) GetMChessData() map[string]int32 { } type ResUpgradeChess struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResUpgradeChess) Reset() { @@ -4301,12 +4252,11 @@ func (x *ResUpgradeChess) GetMsg() string { // 从缓存中获取棋子 type ReqGetChessFromBuff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqGetChessFromBuff) Reset() { @@ -4354,12 +4304,11 @@ func (x *ReqGetChessFromBuff) GetMChessData() map[string]int32 { } type ResGetChessFromBuff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetChessFromBuff) Reset() { @@ -4408,16 +4357,15 @@ func (x *ResGetChessFromBuff) GetMsg() string { // 棋子转换 type ReqChessEx struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` + NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` + CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` + Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡; + MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星; unknownFields protoimpl.UnknownFields - - OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` - NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` - CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡; - MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星; + sizeCache protoimpl.SizeCache } func (x *ReqChessEx) Reset() { @@ -4493,12 +4441,11 @@ func (x *ReqChessEx) GetCostStar() int32 { } type ResChessEx struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChessEx) Reset() { @@ -4547,12 +4494,11 @@ func (x *ResChessEx) GetMsg() string { // 开启资源宝箱 type ReqSourceChest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChestId int32 `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChestId int32 `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqSourceChest) Reset() { @@ -4600,12 +4546,11 @@ func (x *ReqSourceChest) GetMChessData() map[string]int32 { } type ResSourceChest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSourceChest) Reset() { @@ -4654,15 +4599,14 @@ func (x *ResSourceChest) GetMsg() string { // playroom 打工离线 type ReqPlayroomOutline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` + NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` + CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线; + MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` - NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` - CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线; - MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomOutline) Reset() { @@ -4731,12 +4675,11 @@ func (x *ReqPlayroomOutline) GetMChessData() map[string]int32 { } type ResPlayroomOutline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomOutline) Reset() { @@ -4785,13 +4728,12 @@ func (x *ResPlayroomOutline) GetMsg() string { // 棋盘背包 type ChessBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子; + ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数; + ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数; unknownFields protoimpl.UnknownFields - - ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子; - ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数; - ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数; + sizeCache protoimpl.SizeCache } func (x *ChessBag) Reset() { @@ -4846,13 +4788,12 @@ func (x *ChessBag) GetChessFreeCnt() int32 { } type ChessBagGrid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID; + ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID; + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID; - ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID; - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + sizeCache protoimpl.SizeCache } func (x *ChessBagGrid) Reset() { @@ -4908,14 +4849,13 @@ func (x *ChessBagGrid) GetEmitId() int32 { // 放置棋子进背包 type ReqPutChessInBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; - MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqPutChessInBag) Reset() { @@ -4977,12 +4917,11 @@ func (x *ReqPutChessInBag) GetMChessData() map[string]int32 { } type ResPutChessInBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPutChessInBag) Reset() { @@ -5031,12 +4970,11 @@ func (x *ResPutChessInBag) GetMsg() string { // 从背包取出棋子 type ReqTakeChessOutBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + BagId int32 `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - BagId int32 `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqTakeChessOutBag) Reset() { @@ -5084,12 +5022,11 @@ func (x *ReqTakeChessOutBag) GetMChessData() map[string]int32 { } type ResTakeChessOutBag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResTakeChessOutBag) Reset() { @@ -5138,9 +5075,9 @@ func (x *ResTakeChessOutBag) GetMsg() string { // 购买棋盘格子 type ReqBuyChessBagGrid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqBuyChessBagGrid) Reset() { @@ -5174,12 +5111,11 @@ func (*ReqBuyChessBagGrid) Descriptor() ([]byte, []int) { } type ResBuyChessBagGrid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResBuyChessBagGrid) Reset() { @@ -5228,11 +5164,10 @@ func (x *ResBuyChessBagGrid) GetMsg() string { // /请求玩家身份信息 type ReqPlayerProfileData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayerProfileData) Reset() { @@ -5273,19 +5208,18 @@ func (x *ReqPlayerProfileData) GetDwUin() int64 { } type ResPlayerProfileData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` + ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` + DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` + PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` + UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"` + UnlockIcon string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"` + ActiveTime int32 `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` - ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` - DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` - PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` - UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"` - UnlockIcon string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"` - ActiveTime int32 `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayerProfileData) Reset() { @@ -5383,11 +5317,10 @@ func (x *ResPlayerProfileData) GetActiveTime() int32 { // /请求玩家身份信息 type ReqPlayerBriefProfileData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayerBriefProfileData) Reset() { @@ -5428,18 +5361,17 @@ func (x *ReqPlayerBriefProfileData) GetDwUin() int64 { } type ResPlayerBriefProfileData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` + ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` + DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` + PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` + ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` + SetEmoji map[int32]int32 `protobuf:"bytes,8,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` - ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` - DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` - PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` - ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` - SetEmoji map[int32]int32 `protobuf:"bytes,8,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已设置的头像; + sizeCache protoimpl.SizeCache } func (x *ResPlayerBriefProfileData) Reset() { @@ -5530,11 +5462,10 @@ func (x *ResPlayerBriefProfileData) GetSetEmoji() map[int32]int32 { // 设置能量倍数 type ReqSetEnergyMul struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` unknownFields protoimpl.UnknownFields - - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetEnergyMul) Reset() { @@ -5575,12 +5506,11 @@ func (x *ReqSetEnergyMul) GetEnergyMul() int32 { } type ResSetEnergyMul struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetEnergyMul) Reset() { @@ -5629,11 +5559,10 @@ func (x *ResSetEnergyMul) GetMsg() string { // 设置能量倍数 type ReqLang struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文; unknownFields protoimpl.UnknownFields - - Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文; + sizeCache protoimpl.SizeCache } func (x *ReqLang) Reset() { @@ -5674,12 +5603,11 @@ func (x *ReqLang) GetLang() LANG_TYPE { } type ResLang struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResLang) Reset() { @@ -5727,15 +5655,14 @@ func (x *ResLang) GetMsg() string { } type BaseInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数; + IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店; + EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数; + EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数; + Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文; unknownFields protoimpl.UnknownFields - - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数; - IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店; - EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数; - EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数; - Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文; + sizeCache protoimpl.SizeCache } func (x *BaseInfo) Reset() { @@ -5804,9 +5731,9 @@ func (x *BaseInfo) GetLang() LANG_TYPE { } type ReqUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqUserInfo) Reset() { @@ -5840,23 +5767,22 @@ func (*ReqUserInfo) Descriptor() ([]byte, []int) { } type UserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` + DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` + FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录; + PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; + EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表; + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; + IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码; + AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` - DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` - AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` - FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录; - PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; - EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表; - SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已设置的头像; - IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码; - AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码; + sizeCache protoimpl.SizeCache } func (x *UserInfo) Reset() { @@ -5982,11 +5908,10 @@ func (x *UserInfo) GetAddCode() string { // 设置昵称 type ReqSetName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetName) Reset() { @@ -6027,12 +5952,11 @@ func (x *ReqSetName) GetName() string { } type ResSetName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetName) Reset() { @@ -6081,11 +6005,10 @@ func (x *ResSetName) GetMsg() string { // 设置宠物名字 type ReqSetPetName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetPetName) Reset() { @@ -6126,12 +6049,11 @@ func (x *ReqSetPetName) GetName() string { } type ResSetPetName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetPetName) Reset() { @@ -6180,11 +6102,10 @@ func (x *ResSetPetName) GetMsg() string { // 购买能量 type ReqBuyEnergy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力; unknownFields protoimpl.UnknownFields - - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力; + sizeCache protoimpl.SizeCache } func (x *ReqBuyEnergy) Reset() { @@ -6225,12 +6146,11 @@ func (x *ReqBuyEnergy) GetEnergy() int32 { } type ResBuyEnergy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResBuyEnergy) Reset() { @@ -6279,9 +6199,9 @@ func (x *ResBuyEnergy) GetMsg() string { // 看广告获取能量 type ReqGetEnergyByAD struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqGetEnergyByAD) Reset() { @@ -6315,12 +6235,11 @@ func (*ReqGetEnergyByAD) Descriptor() ([]byte, []int) { } type ResGetEnergyByAD struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetEnergyByAD) Reset() { @@ -6368,11 +6287,10 @@ func (x *ResGetEnergyByAD) GetMsg() string { } type ReqGetHandbookReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetHandbookReward) Reset() { @@ -6413,12 +6331,11 @@ func (x *ReqGetHandbookReward) GetChessId() int32 { } type ResGetHandbookReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetHandbookReward) Reset() { @@ -6466,12 +6383,11 @@ func (x *ResGetHandbookReward) GetMsg() string { } type HandbookInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HandbookInfo) Reset() { @@ -6519,12 +6435,11 @@ func (x *HandbookInfo) GetStatus() int32 { } type Handbook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` + Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励; unknownFields protoimpl.UnknownFields - - Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` - Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励; + sizeCache protoimpl.SizeCache } func (x *Handbook) Reset() { @@ -6572,11 +6487,10 @@ func (x *Handbook) GetCollect() []string { } type RegHandbookAllReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"; unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"; + sizeCache protoimpl.SizeCache } func (x *RegHandbookAllReward) Reset() { @@ -6617,12 +6531,11 @@ func (x *RegHandbookAllReward) GetType() string { } type ResHandbookAllReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResHandbookAllReward) Reset() { @@ -6670,13 +6583,12 @@ func (x *ResHandbookAllReward) GetMsg() string { } type ReqRewardOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; unknownFields protoimpl.UnknownFields - - OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + sizeCache protoimpl.SizeCache } func (x *ReqRewardOrder) Reset() { @@ -6731,12 +6643,11 @@ func (x *ReqRewardOrder) GetActType() []int32 { } type ResRewardOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRewardOrder) Reset() { @@ -6784,9 +6695,9 @@ func (x *ResRewardOrder) GetMsg() string { } type ReqCreatePetOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCreatePetOrder) Reset() { @@ -6821,11 +6732,10 @@ func (*ReqCreatePetOrder) Descriptor() ([]byte, []int) { // 删除订单 type ReqDelOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` unknownFields protoimpl.UnknownFields - - OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqDelOrder) Reset() { @@ -6866,12 +6776,11 @@ func (x *ReqDelOrder) GetOrderId() int32 { } type ResDelOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDelOrder) Reset() { @@ -6920,11 +6829,10 @@ func (x *ResDelOrder) GetMsg() string { // 获取出售棋子获得的星星数量 type ReqSellChessNum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSellChessNum) Reset() { @@ -6965,11 +6873,10 @@ func (x *ReqSellChessNum) GetChessId() int32 { } type ResSellChessNum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` unknownFields protoimpl.UnknownFields - - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSellChessNum) Reset() { @@ -7010,14 +6917,13 @@ func (x *ResSellChessNum) GetNum() int32 { } type Order struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` - Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + sizeCache protoimpl.SizeCache } func (x *Order) Reset() { @@ -7079,11 +6985,10 @@ func (x *Order) GetItems() []*ItemInfo { } type ResOrderList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"` unknownFields protoimpl.UnknownFields - - OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResOrderList) Reset() { @@ -7125,14 +7030,13 @@ func (x *ResOrderList) GetOrderList() []*Order { // 装饰信息 type ResDecorateInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` + MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` + RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励; + Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件; unknownFields protoimpl.UnknownFields - - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` - MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` - RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励; - Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件; + sizeCache protoimpl.SizeCache } func (x *ResDecorateInfo) Reset() { @@ -7194,12 +7098,11 @@ func (x *ResDecorateInfo) GetParts() []*DecoratePart { } type DecoratePart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件; + sizeCache protoimpl.SizeCache } func (x *DecoratePart) Reset() { @@ -7248,12 +7151,11 @@ func (x *DecoratePart) GetItems() []*ItemInfo { // 请求装饰基础信息 type ReqDecorate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` + DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"` unknownFields protoimpl.UnknownFields - - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` - DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqDecorate) Reset() { @@ -7301,12 +7203,11 @@ func (x *ReqDecorate) GetDecorateId() int32 { } type ResDecorate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDecorate) Reset() { @@ -7355,9 +7256,9 @@ func (x *ResDecorate) GetMsg() string { // 一键装饰 type ReqDecorateAll struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqDecorateAll) Reset() { @@ -7391,12 +7292,11 @@ func (*ReqDecorateAll) Descriptor() ([]byte, []int) { } type ResDecorateAll struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDecorateAll) Reset() { @@ -7444,11 +7344,10 @@ func (x *ResDecorateAll) GetMsg() string { } type ReqAreaReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` unknownFields protoimpl.UnknownFields - - AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqAreaReward) Reset() { @@ -7489,12 +7388,11 @@ func (x *ReqAreaReward) GetAreaId() int32 { } type ResAreaReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAreaReward) Reset() { @@ -7543,12 +7441,11 @@ func (x *ResAreaReward) GetMsg() string { // 请求Gm命令 type ReqGmCommand struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"` + Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` unknownFields protoimpl.UnknownFields - - Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"` - Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGmCommand) Reset() { @@ -7597,12 +7494,11 @@ func (x *ReqGmCommand) GetArgs() string { // --------------卡牌------------ type Card struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Card) Reset() { @@ -7650,9 +7546,9 @@ func (x *Card) GetCount() int32 { } type ReqCardInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCardInfo) Reset() { @@ -7686,24 +7582,23 @@ func (*ReqCardInfo) Descriptor() ([]byte, []int) { } type ResCardInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表; + ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级; + Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取; + CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励; + ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数; + ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; + AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; + EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间; + ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; + ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; + GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; + Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次; + Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取; + SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励; unknownFields protoimpl.UnknownFields - - CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表; - ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级; - Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取; - CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励; - ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数; - ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌; - EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间; - ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; - Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次; - Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴 CardId => Status 1:已解锁 2:已领取; - SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励; + sizeCache protoimpl.SizeCache } func (x *ResCardInfo) Reset() { @@ -7835,15 +7730,14 @@ func (x *ResCardInfo) GetSeasonFirst() bool { } type ResNotifyCardTimes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数; + ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; + ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; + ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; + GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; unknownFields protoimpl.UnknownFields - - ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数; - ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; + sizeCache protoimpl.SizeCache } func (x *ResNotifyCardTimes) Reset() { @@ -7912,9 +7806,9 @@ func (x *ResNotifyCardTimes) GetGoldTimes() int32 { } type ReqCardSeasonFirstReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCardSeasonFirstReward) Reset() { @@ -7948,12 +7842,11 @@ func (*ReqCardSeasonFirstReward) Descriptor() ([]byte, []int) { } type ResCardSeasonFirstReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardSeasonFirstReward) Reset() { @@ -8002,11 +7895,10 @@ func (x *ResCardSeasonFirstReward) GetMsg() string { // 领取卡牌图鉴奖励 type ReqCardHandbookReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"` unknownFields protoimpl.UnknownFields - - CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqCardHandbookReward) Reset() { @@ -8047,13 +7939,12 @@ func (x *ReqCardHandbookReward) GetCardId() int32 { } type ResCardHandbookReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + CardId int32 `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - CardId int32 `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardHandbookReward) Reset() { @@ -8109,12 +8000,11 @@ func (x *ResCardHandbookReward) GetCardId() int32 { // 万能卡兑换 type ReqMasterCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡; + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡; - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id; + sizeCache protoimpl.SizeCache } func (x *ReqMasterCard) Reset() { @@ -8162,14 +8052,13 @@ func (x *ReqMasterCard) GetCardId() int32 { } type ResMasterCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + MasterId int32 `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"` + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - MasterId int32 `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"` - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResMasterCard) Reset() { @@ -8232,11 +8121,10 @@ func (x *ResMasterCard) GetCardId() int32 { // 领取卡牌系列收集奖励 type ReqCardCollectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"` unknownFields protoimpl.UnknownFields - - Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqCardCollectReward) Reset() { @@ -8277,12 +8165,11 @@ func (x *ReqCardCollectReward) GetColor() int32 { } type ResCardCollectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardCollectReward) Reset() { @@ -8331,11 +8218,10 @@ func (x *ResCardCollectReward) GetMsg() string { // 兑换收集星星奖励 type ReqExStarReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqExStarReward) Reset() { @@ -8376,12 +8262,11 @@ func (x *ReqExStarReward) GetId() int32 { } type ResExStarReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResExStarReward) Reset() { @@ -8430,9 +8315,9 @@ func (x *ResExStarReward) GetMsg() string { // 领取全收集奖励 type ReqAllCollectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqAllCollectReward) Reset() { @@ -8466,12 +8351,11 @@ func (*ReqAllCollectReward) Descriptor() ([]byte, []int) { } type ResAllCollectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAllCollectReward) Reset() { @@ -8520,12 +8404,11 @@ func (x *ResAllCollectReward) GetMsg() string { // 请求赠送卡片 type ReqCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` unknownFields protoimpl.UnknownFields - - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqCardGive) Reset() { @@ -8573,12 +8456,11 @@ func (x *ReqCardGive) GetCardId() int32 { } type ResCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardGive) Reset() { @@ -8627,11 +8509,10 @@ func (x *ResCardGive) GetMsg() string { // 同意请求卡牌 type ReqAgreeCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + sizeCache protoimpl.SizeCache } func (x *ReqAgreeCardGive) Reset() { @@ -8672,13 +8553,12 @@ func (x *ReqAgreeCardGive) GetId() string { } type ResAgreeCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAgreeCardGive) Reset() { @@ -8734,11 +8614,10 @@ func (x *ResAgreeCardGive) GetId() string { // 拒绝请求卡牌 type ReqRefuseCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + sizeCache protoimpl.SizeCache } func (x *ReqRefuseCardGive) Reset() { @@ -8779,13 +8658,12 @@ func (x *ReqRefuseCardGive) GetId() string { } type ResRefuseCardGive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRefuseCardGive) Reset() { @@ -8841,13 +8719,12 @@ func (x *ResRefuseCardGive) GetId() string { // 直接赠送卡牌 type ReqCardSend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + sizeCache protoimpl.SizeCache } func (x *ReqCardSend) Reset() { @@ -8902,12 +8779,11 @@ func (x *ReqCardSend) GetEmoji() int32 { } type ResCardSend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardSend) Reset() { @@ -8956,13 +8832,12 @@ func (x *ResCardSend) GetMsg() string { // 请求卡牌交换 type ReqCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + sizeCache protoimpl.SizeCache } func (x *ReqCardExchange) Reset() { @@ -9017,12 +8892,11 @@ func (x *ReqCardExchange) GetEmoji() int32 { } type ResCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCardExchange) Reset() { @@ -9071,12 +8945,11 @@ func (x *ResCardExchange) GetMsg() string { // 选择交换的卡牌 type ReqSelectCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSelectCardExchange) Reset() { @@ -9124,13 +8997,12 @@ func (x *ReqSelectCardExchange) GetCardId() int32 { } type ResSelectCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSelectCardExchange) Reset() { @@ -9186,11 +9058,10 @@ func (x *ResSelectCardExchange) GetId() string { // 同意卡牌交换 type ReqAgreeCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqAgreeCardExchange) Reset() { @@ -9231,14 +9102,13 @@ func (x *ReqAgreeCardExchange) GetId() string { } type ResAgreeCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + sizeCache protoimpl.SizeCache } func (x *ResAgreeCardExchange) Reset() { @@ -9301,11 +9171,10 @@ func (x *ResAgreeCardExchange) GetEmoji() int32 { // 拒绝选择卡牌进行交换 type ReqRefuseCardSelect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqRefuseCardSelect) Reset() { @@ -9346,13 +9215,12 @@ func (x *ReqRefuseCardSelect) GetId() string { } type ResRefuseCardSelect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRefuseCardSelect) Reset() { @@ -9408,11 +9276,10 @@ func (x *ResRefuseCardSelect) GetId() string { // 拒绝卡牌交换 type ReqRefuseCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqRefuseCardExchange) Reset() { @@ -9453,13 +9320,12 @@ func (x *ReqRefuseCardExchange) GetId() string { } type ResRefuseCardExchange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRefuseCardExchange) Reset() { @@ -9515,11 +9381,10 @@ func (x *ResRefuseCardExchange) GetId() string { // 领取卡牌 type ReqGetFriendCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetFriendCard) Reset() { @@ -9560,15 +9425,14 @@ func (x *ReqGetFriendCard) GetId() string { } type ResGetFriendCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + sizeCache protoimpl.SizeCache } func (x *ResGetFriendCard) Reset() { @@ -9638,9 +9502,9 @@ func (x *ResGetFriendCard) GetEmoji() int32 { // 获取可以交换的金卡 type ReqGetGoldCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqGetGoldCard) Reset() { @@ -9674,12 +9538,11 @@ func (*ReqGetGoldCard) Descriptor() ([]byte, []int) { } type ResGetGoldCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡; + Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡; unknownFields protoimpl.UnknownFields - - Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡; - Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡; + sizeCache protoimpl.SizeCache } func (x *ResGetGoldCard) Reset() { @@ -9728,11 +9591,10 @@ func (x *ResGetGoldCard) GetFive() int32 { // 领取引导奖励 type ReqGuideReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGuideReward) Reset() { @@ -9773,12 +9635,11 @@ func (x *ReqGuideReward) GetId() int32 { } type ResGuideReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGuideReward) Reset() { @@ -9826,11 +9687,10 @@ func (x *ResGuideReward) GetMsg() string { } type ReqGuidePlayroom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGuidePlayroom) Reset() { @@ -9871,12 +9731,11 @@ func (x *ReqGuidePlayroom) GetId() int32 { } type ResGuidePlayroom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGuidePlayroom) Reset() { @@ -9924,11 +9783,10 @@ func (x *ResGuidePlayroom) GetMsg() string { } type ResGuildInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResGuildInfo) Reset() { @@ -9969,11 +9827,10 @@ func (x *ResGuildInfo) GetReward() map[int32]int32 { } type ResGuideInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResGuideInfo) Reset() { @@ -10014,14 +9871,13 @@ func (x *ResGuideInfo) GetReward() map[int32]int32 { } type ResItemPop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具; + CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包; + Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具; - CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包; - Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签; + sizeCache protoimpl.SizeCache } func (x *ResItemPop) Reset() { @@ -10083,12 +9939,11 @@ func (x *ResItemPop) GetLable() string { } type ItemInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ItemInfo) Reset() { @@ -10136,12 +9991,11 @@ func (x *ItemInfo) GetNum() int32 { } type CardPack struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id; + Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id; - Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CardPack) Reset() { @@ -10190,14 +10044,13 @@ func (x *CardPack) GetCard() []int32 { // 新手任务 type ResGuideTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励; + Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间; unknownFields protoimpl.UnknownFields - - ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励; - Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间; + sizeCache protoimpl.SizeCache } func (x *ResGuideTask) Reset() { @@ -10259,13 +10112,12 @@ func (x *ResGuideTask) GetUnlockTime() int32 { } type GuideTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; + Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; + sizeCache protoimpl.SizeCache } func (x *GuideTask) Reset() { @@ -10320,11 +10172,10 @@ func (x *GuideTask) GetId() int32 { } type ReqGetGuideTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + sizeCache protoimpl.SizeCache } func (x *ReqGetGuideTaskReward) Reset() { @@ -10365,13 +10216,12 @@ func (x *ReqGetGuideTaskReward) GetId() int32 { } type ResGetGuideTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + sizeCache protoimpl.SizeCache } func (x *ResGetGuideTaskReward) Reset() { @@ -10426,11 +10276,10 @@ func (x *ResGetGuideTaskReward) GetId() int32 { } type ReqGetGuideActiveReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + sizeCache protoimpl.SizeCache } func (x *ReqGetGuideActiveReward) Reset() { @@ -10471,13 +10320,12 @@ func (x *ReqGetGuideActiveReward) GetId() int32 { } type ResGetGuideActiveReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + sizeCache protoimpl.SizeCache } func (x *ResGetGuideActiveReward) Reset() { @@ -10533,15 +10381,14 @@ func (x *ResGetGuideActiveReward) GetId() int32 { // 日常任务 type ResDailyTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励; + DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳; + WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳; unknownFields protoimpl.UnknownFields - - WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //周奖励; - DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳; - WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳; + sizeCache protoimpl.SizeCache } func (x *ResDailyTask) Reset() { @@ -10610,13 +10457,12 @@ func (x *ResDailyTask) GetWeekEnd() int32 { } type DailyWeek struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; + Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取; + NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度; unknownFields protoimpl.UnknownFields - - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取; - NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度; + sizeCache protoimpl.SizeCache } func (x *DailyWeek) Reset() { @@ -10671,16 +10517,15 @@ func (x *DailyWeek) GetNeedActive() int32 { } type DailyTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; + UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁; + Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; + Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引; unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁; - Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; - Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引; + sizeCache protoimpl.SizeCache } func (x *DailyTask) Reset() { @@ -10756,15 +10601,14 @@ func (x *DailyTask) GetIndex() int32 { } type QuestProgress struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度; + Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标; + Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成; + Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数; unknownFields protoimpl.UnknownFields - - Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度; - Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标; - Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成; - Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数; + sizeCache protoimpl.SizeCache } func (x *QuestProgress) Reset() { @@ -10834,11 +10678,10 @@ func (x *QuestProgress) GetParam() int32 { // 领取日常任务奖励 type ReqGetDailyTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetDailyTaskReward) Reset() { @@ -10879,12 +10722,11 @@ func (x *ReqGetDailyTaskReward) GetId() int32 { } type ResGetDailyTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetDailyTaskReward) Reset() { @@ -10933,11 +10775,10 @@ func (x *ResGetDailyTaskReward) GetMsg() string { // 领取日常周奖励 type ReqGetDailyWeekReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetDailyWeekReward) Reset() { @@ -10978,12 +10819,11 @@ func (x *ReqGetDailyWeekReward) GetId() int32 { } type ResGetDailyWeekReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetDailyWeekReward) Reset() { @@ -11031,9 +10871,9 @@ func (x *ResGetDailyWeekReward) GetMsg() string { } type ReqDailyUnlock struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqDailyUnlock) Reset() { @@ -11067,12 +10907,11 @@ func (*ReqDailyUnlock) Descriptor() ([]byte, []int) { } type ResDailyUnlock struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDailyUnlock) Reset() { @@ -11120,12 +10959,11 @@ func (x *ResDailyUnlock) GetMsg() string { } type ResFaceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"` + SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` unknownFields protoimpl.UnknownFields - - FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFaceInfo) Reset() { @@ -11173,13 +11011,12 @@ func (x *ResFaceInfo) GetSetId() int32 { } type FaceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + sizeCache protoimpl.SizeCache } func (x *FaceInfo) Reset() { @@ -11234,11 +11071,10 @@ func (x *FaceInfo) GetAddTime() int64 { } type ReqSetFace struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"` unknownFields protoimpl.UnknownFields - - Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetFace) Reset() { @@ -11279,12 +11115,11 @@ func (x *ReqSetFace) GetFace() int32 { } type ResSetFace struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetFace) Reset() { @@ -11332,12 +11167,11 @@ func (x *ResSetFace) GetMsg() string { } type ResAvatarInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` + SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` unknownFields protoimpl.UnknownFields - - AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` - SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAvatarInfo) Reset() { @@ -11385,13 +11219,12 @@ func (x *ResAvatarInfo) GetSetId() int32 { } type AvatarInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + sizeCache protoimpl.SizeCache } func (x *AvatarInfo) Reset() { @@ -11446,11 +11279,10 @@ func (x *AvatarInfo) GetAddTime() int64 { } type ReqSetAvatar struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"` unknownFields protoimpl.UnknownFields - - Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetAvatar) Reset() { @@ -11491,12 +11323,11 @@ func (x *ReqSetAvatar) GetAvatar() int32 { } type ResSetAvatar struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetAvatar) Reset() { @@ -11545,13 +11376,12 @@ func (x *ResSetAvatar) GetMsg() string { // 表情 Emoji type EmojiInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + sizeCache protoimpl.SizeCache } func (x *EmojiInfo) Reset() { @@ -11607,12 +11437,11 @@ func (x *EmojiInfo) GetAddTime() int64 { // 设置表情 type ReqSetEmoji struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3; + sizeCache protoimpl.SizeCache } func (x *ReqSetEmoji) Reset() { @@ -11660,12 +11489,11 @@ func (x *ReqSetEmoji) GetType() int32 { } type ResSetEmoji struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetEmoji) Reset() { @@ -11714,14 +11542,13 @@ func (x *ResSetEmoji) GetMsg() string { // 七日签到 type ResSevenLogin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励; + MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励; + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; + IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回; unknownFields protoimpl.UnknownFields - - WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励; - MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回; + sizeCache protoimpl.SizeCache } func (x *ResSevenLogin) Reset() { @@ -11783,15 +11610,14 @@ func (x *ResSevenLogin) GetIsBack() bool { } type SevenLoginReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1; + Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2; + Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取; + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id; unknownFields protoimpl.UnknownFields - - Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1; - Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2; - Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id; + sizeCache protoimpl.SizeCache } func (x *SevenLoginReward) Reset() { @@ -11861,11 +11687,10 @@ func (x *SevenLoginReward) GetId() int32 { // 领取周奖励 type ReqGetSevenLoginReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetSevenLoginReward) Reset() { @@ -11906,12 +11731,11 @@ func (x *ReqGetSevenLoginReward) GetId() int32 { } type ResGetSevenLoginReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetSevenLoginReward) Reset() { @@ -11960,11 +11784,10 @@ func (x *ResGetSevenLoginReward) GetMsg() string { // 领取月奖励 type ReqGetMonthLoginReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetMonthLoginReward) Reset() { @@ -12005,12 +11828,11 @@ func (x *ReqGetMonthLoginReward) GetId() int32 { } type ResGetMonthLoginReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetMonthLoginReward) Reset() { @@ -12059,11 +11881,10 @@ func (x *ResGetMonthLoginReward) GetMsg() string { // 活动 type ResActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"` unknownFields protoimpl.UnknownFields - - ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResActivity) Reset() { @@ -12104,17 +11925,16 @@ func (x *ResActivity) GetActiveList() []*ActivityInfo { } type ActivityInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型; + StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束; + Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题; + Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型; - StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束; - Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题; - Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点; + sizeCache protoimpl.SizeCache } func (x *ActivityInfo) Reset() { @@ -12198,11 +12018,10 @@ func (x *ActivityInfo) GetRed() int32 { // 领取活动奖励 type ReqActivityReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id; + sizeCache protoimpl.SizeCache } func (x *ReqActivityReward) Reset() { @@ -12243,12 +12062,11 @@ func (x *ReqActivityReward) GetId() int32 { } type ResActivityReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResActivityReward) Reset() { @@ -12298,9 +12116,9 @@ func (x *ResActivityReward) GetMsg() string { // #region 限时事件 // 限时事件 type ReqLimitEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqLimitEvent) Reset() { @@ -12334,11 +12152,10 @@ func (*ReqLimitEvent) Descriptor() ([]byte, []int) { } type ResLimitEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //限时事件列表; + state protoimpl.MessageState `protogen:"open.v1"` + LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResLimitEvent) Reset() { @@ -12379,13 +12196,12 @@ func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { } type ResLimitEventProgress struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度; - Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度; - ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //奖励 可以选择的奖励 Id =》 RewardId; + state protoimpl.MessageState `protogen:"open.v1"` + ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度; + Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度; + ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResLimitEventProgress) Reset() { @@ -12440,11 +12256,10 @@ func (x *ResLimitEventProgress) GetProgressReward() map[int32]int32 { } type ReqLimitEventReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqLimitEventReward) Reset() { @@ -12485,12 +12300,11 @@ func (x *ReqLimitEventReward) GetId() int32 { } type ResLimitEventReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResLimitEventReward) Reset() { @@ -12538,11 +12352,10 @@ func (x *ResLimitEventReward) GetMsg() string { } type ReqSelectLimitEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSelectLimitEvent) Reset() { @@ -12583,12 +12396,11 @@ func (x *ReqSelectLimitEvent) GetId() int32 { } type ResSelectLimitEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSelectLimitEvent) Reset() { @@ -12636,16 +12448,15 @@ func (x *ResSelectLimitEvent) GetMsg() string { } type LimitEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; + Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数; + StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; + Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam; + ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间; unknownFields protoimpl.UnknownFields - - EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; - Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数; - StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //key 为枚举 LimitEventParam; - ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间; + sizeCache protoimpl.SizeCache } func (x *LimitEvent) Reset() { @@ -12721,14 +12532,13 @@ func (x *LimitEvent) GetShowTime() int32 { } type LimitEventNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; + Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; + sizeCache protoimpl.SizeCache } func (x *LimitEventNotify) Reset() { @@ -12790,12 +12600,11 @@ func (x *LimitEventNotify) GetCd() int32 { } type ReqLimitEventLuckyCat struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqLimitEventLuckyCat) Reset() { @@ -12843,12 +12652,11 @@ func (x *ReqLimitEventLuckyCat) GetMChessData() map[string]int32 { } type ResLimitEventLuckyCat struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResLimitEventLuckyCat) Reset() { @@ -12896,9 +12704,9 @@ func (x *ResLimitEventLuckyCat) GetMsg() string { } type ReqLimitSenceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqLimitSenceReward) Reset() { @@ -12932,12 +12740,11 @@ func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) { } type ResLimitSenceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResLimitSenceReward) Reset() { @@ -12985,12 +12792,11 @@ func (x *ResLimitSenceReward) GetMsg() string { } type ResChessRainReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具; + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id; unknownFields protoimpl.UnknownFields - - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具; - Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id; + sizeCache protoimpl.SizeCache } func (x *ResChessRainReward) Reset() { @@ -13038,9 +12844,9 @@ func (x *ResChessRainReward) GetId() int32 { } type ReqFastProduceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFastProduceInfo) Reset() { @@ -13074,13 +12880,12 @@ func (*ReqFastProduceInfo) Descriptor() ([]byte, []int) { } type ResFastProduceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数; + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; unknownFields protoimpl.UnknownFields - - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数; - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + sizeCache protoimpl.SizeCache } func (x *ResFastProduceInfo) Reset() { @@ -13136,11 +12941,10 @@ func (x *ResFastProduceInfo) GetEndTime() int64 { // 连技快手奖励 type ReqFastProduceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` unknownFields protoimpl.UnknownFields - - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFastProduceReward) Reset() { @@ -13181,14 +12985,13 @@ func (x *ReqFastProduceReward) GetEnergy() int32 { } type ResFastProduceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` + Num int32 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` - Num int32 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFastProduceReward) Reset() { @@ -13250,9 +13053,9 @@ func (x *ResFastProduceReward) GetNum() int32 { } type ReqCatTrickReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCatTrickReward) Reset() { @@ -13286,13 +13089,12 @@ func (*ReqCatTrickReward) Descriptor() ([]byte, []int) { } type ResCatTrickReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭; + sizeCache protoimpl.SizeCache } func (x *ResCatTrickReward) Reset() { @@ -13348,11 +13150,10 @@ func (x *ResCatTrickReward) GetIsClose() bool { // 搜索好友 type ReqSearchPlayer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSearchPlayer) Reset() { @@ -13393,12 +13194,11 @@ func (x *ReqSearchPlayer) GetUid() string { } type ResSearchPlayer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` + List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` unknownFields protoimpl.UnknownFields - - Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` - List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSearchPlayer) Reset() { @@ -13446,11 +13246,10 @@ func (x *ResSearchPlayer) GetList() []*ResPlayerSimple { } type ReqFriendPlayerSimple struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendPlayerSimple) Reset() { @@ -13491,28 +13290,27 @@ func (x *ReqFriendPlayerSimple) GetUid() int64 { } type ResFriendPlayerSimple struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` + Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` + Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` + Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; + Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; + DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; + Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表; + Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态; + Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态; + PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` - Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` - Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` - Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; - Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; - DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; - Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表; - Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态; - Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理状态 位置 =》 状态; - PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; + sizeCache protoimpl.SizeCache } func (x *ResFriendPlayerSimple) Reset() { @@ -13672,22 +13470,21 @@ func (x *ResFriendPlayerSimple) GetPetName() string { } type ResPlayerSimple struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` + Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` + Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` + Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` - Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` - Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` - Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; + sizeCache protoimpl.SizeCache } func (x *ResPlayerSimple) Reset() { @@ -13805,13 +13602,12 @@ func (x *ResPlayerSimple) GetInteract() int64 { } type ActLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ActLog) Reset() { @@ -13866,17 +13662,16 @@ func (x *ActLog) GetParam() string { } type ResPlayerRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` + Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` - Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人; + sizeCache protoimpl.SizeCache } func (x *ResPlayerRank) Reset() { @@ -13959,16 +13754,15 @@ func (x *ResPlayerRank) GetType() int32 { } type ResFriendLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` + Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` + Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; unknownFields protoimpl.UnknownFields - - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` - Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` - Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` - Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; + sizeCache protoimpl.SizeCache } func (x *ResFriendLog) Reset() { @@ -14044,12 +13838,11 @@ func (x *ResFriendLog) GetUpvote() bool { } type NotifyFriendLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` + Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; unknownFields protoimpl.UnknownFields - - Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` - Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + sizeCache protoimpl.SizeCache } func (x *NotifyFriendLog) Reset() { @@ -14097,13 +13890,12 @@ func (x *NotifyFriendLog) GetBubble() *FriendBubbleInfo { } type FriendBubbleInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:; + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:; - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + sizeCache protoimpl.SizeCache } func (x *FriendBubbleInfo) Reset() { @@ -14158,11 +13950,10 @@ func (x *FriendBubbleInfo) GetItems() []*ItemInfo { } type NotifyFriendCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` unknownFields protoimpl.UnknownFields - - Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotifyFriendCard) Reset() { @@ -14203,22 +13994,21 @@ func (x *NotifyFriendCard) GetInfo() *ResFriendCard { } type ResFriendCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` + Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` + Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` + CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` + ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` + Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` - Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` - CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` - ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` - Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + sizeCache protoimpl.SizeCache } func (x *ResFriendCard) Reset() { @@ -14336,12 +14126,11 @@ func (x *ResFriendCard) GetEmoji() int32 { } type ReqKv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqKv) Reset() { @@ -14389,11 +14178,10 @@ func (x *ReqKv) GetValue() string { } type ResKv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResKv) Reset() { @@ -14434,11 +14222,10 @@ func (x *ResKv) GetKv() map[int32]string { } type ReqFriendByCode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码; unknownFields protoimpl.UnknownFields - - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码; + sizeCache protoimpl.SizeCache } func (x *ReqFriendByCode) Reset() { @@ -14479,13 +14266,12 @@ func (x *ReqFriendByCode) GetCode() string { } type ResFriendByCode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; + sizeCache protoimpl.SizeCache } func (x *ResFriendByCode) Reset() { @@ -14541,9 +14327,9 @@ func (x *ResFriendByCode) GetPlayer() *ResPlayerSimple { // 好友推荐 type ReqFriendRecommend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendRecommend) Reset() { @@ -14577,11 +14363,10 @@ func (*ReqFriendRecommend) Descriptor() ([]byte, []int) { } type ResFriendRecommend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` unknownFields protoimpl.UnknownFields - - List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendRecommend) Reset() { @@ -14623,11 +14408,10 @@ func (x *ResFriendRecommend) GetList() []*ResPlayerSimple { // 隐藏 type ReqFriendIgnore struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendIgnore) Reset() { @@ -14668,12 +14452,11 @@ func (x *ReqFriendIgnore) GetUid() int64 { } type ResFriendIgnore struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendIgnore) Reset() { @@ -14722,9 +14505,9 @@ func (x *ResFriendIgnore) GetMsg() string { // 好友基础信息 type ReqFriendList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendList) Reset() { @@ -14758,14 +14541,13 @@ func (*ReqFriendList) Descriptor() ([]byte, []int) { } type ResFriendList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` + ReqApplyList []int64 `protobuf:"varint,2,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表; + Npc []int32 `protobuf:"varint,3,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表; + Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数; unknownFields protoimpl.UnknownFields - - FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` - ReqApplyList []int64 `protobuf:"varint,2,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表; - Npc []int32 `protobuf:"varint,3,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表; - Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数; + sizeCache protoimpl.SizeCache } func (x *ResFriendList) Reset() { @@ -14827,11 +14609,10 @@ func (x *ResFriendList) GetSponsor() int32 { } type ReqAddNpc struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NpcId int32 `protobuf:"varint,1,opt,name=NpcId,proto3" json:"NpcId,omitempty"` unknownFields protoimpl.UnknownFields - - NpcId int32 `protobuf:"varint,1,opt,name=NpcId,proto3" json:"NpcId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqAddNpc) Reset() { @@ -14872,13 +14653,12 @@ func (x *ReqAddNpc) GetNpcId() int32 { } type ResAddNpc struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + NpcId int32 `protobuf:"varint,3,opt,name=NpcId,proto3" json:"NpcId,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - NpcId int32 `protobuf:"varint,3,opt,name=NpcId,proto3" json:"NpcId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAddNpc) Reset() { @@ -14934,9 +14714,9 @@ func (x *ResAddNpc) GetNpcId() int32 { // 好友申请列表 type ReqFriendApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendApply) Reset() { @@ -14970,11 +14750,10 @@ func (*ReqFriendApply) Descriptor() ([]byte, []int) { } type ResFriendApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` unknownFields protoimpl.UnknownFields - - ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendApply) Reset() { @@ -15015,12 +14794,11 @@ func (x *ResFriendApply) GetApplyList() []*ResFriendApplyInfo { } type ResFriendApplyInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Time int32 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields - - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Time int32 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendApplyInfo) Reset() { @@ -15069,9 +14847,9 @@ func (x *ResFriendApplyInfo) GetTime() int32 { // 好友卡牌交换列表 type ReqFriendCardMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendCardMsg) Reset() { @@ -15105,11 +14883,10 @@ func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) { } type ResFriendCardMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"` unknownFields protoimpl.UnknownFields - - MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendCardMsg) Reset() { @@ -15151,9 +14928,9 @@ func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard { // 好友心愿单请求列表 type ReqWishApplyList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqWishApplyList) Reset() { @@ -15187,11 +14964,10 @@ func (*ReqWishApplyList) Descriptor() ([]byte, []int) { } type ResWishApplyList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` unknownFields protoimpl.UnknownFields - - ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResWishApplyList) Reset() { @@ -15233,11 +15009,10 @@ func (x *ResWishApplyList) GetApplyList() []*ResFriendApplyInfo { // 同意好友心愿单请求 type ReqWishApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqWishApply) Reset() { @@ -15278,13 +15053,12 @@ func (x *ReqWishApply) GetUid() int64 { } type ResWishApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResWishApply) Reset() { @@ -15340,9 +15114,9 @@ func (x *ResWishApply) GetUid() int64 { // 好友时间线 type ReqFriendTimeLine struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendTimeLine) Reset() { @@ -15376,12 +15150,11 @@ func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) { } type ResFriendTimeLine struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"` + Reply []*ResFriendReply `protobuf:"bytes,2,rep,name=Reply,proto3" json:"Reply,omitempty"` unknownFields protoimpl.UnknownFields - - Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"` - Reply []*ResFriendReply `protobuf:"bytes,2,rep,name=Reply,proto3" json:"Reply,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTimeLine) Reset() { @@ -15429,18 +15202,17 @@ func (x *ResFriendTimeLine) GetReply() []*ResFriendReply { } type ResFriendReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼; + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理; + AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //; + Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; + Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼; - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理; - AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //; - Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; - Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + sizeCache protoimpl.SizeCache } func (x *ResFriendReply) Reset() { @@ -15530,13 +15302,12 @@ func (x *ResFriendReply) GetItems() []*ItemInfo { } type ReqFriendReplyHandle struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; unknownFields protoimpl.UnknownFields - - LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; - Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; + sizeCache protoimpl.SizeCache } func (x *ReqFriendReplyHandle) Reset() { @@ -15591,15 +15362,14 @@ func (x *ReqFriendReplyHandle) GetType() int32 { } type ResFriendReplyHandle struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; + ErrType FRIEND_REPLY_HANDLE_ERR_TYPE `protobuf:"varint,5,opt,name=ErrType,proto3,enum=tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE" json:"ErrType,omitempty"` // 错误类型; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; - ErrType FRIEND_REPLY_HANDLE_ERR_TYPE `protobuf:"varint,5,opt,name=ErrType,proto3,enum=tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE" json:"ErrType,omitempty"` // 错误类型; + sizeCache protoimpl.SizeCache } func (x *ResFriendReplyHandle) Reset() { @@ -15668,11 +15438,10 @@ func (x *ResFriendReplyHandle) GetErrType() FRIEND_REPLY_HANDLE_ERR_TYPE { } type ResFriendBubble struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; unknownFields protoimpl.UnknownFields - - Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + sizeCache protoimpl.SizeCache } func (x *ResFriendBubble) Reset() { @@ -15714,11 +15483,10 @@ func (x *ResFriendBubble) GetBubble() []*FriendBubbleInfo { // 时间线点赞 type ReqFriendTLUpvote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendTLUpvote) Reset() { @@ -15759,13 +15527,12 @@ func (x *ReqFriendTLUpvote) GetId() int32 { } type ResFriendTLUpvote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTLUpvote) Reset() { @@ -15821,11 +15588,10 @@ func (x *ResFriendTLUpvote) GetId() int32 { // 时间线领奖 type ReqFriendTReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendTReward) Reset() { @@ -15866,13 +15632,12 @@ func (x *ReqFriendTReward) GetId() int32 { } type ResFriendTReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTReward) Reset() { @@ -15927,13 +15692,12 @@ func (x *ResFriendTReward) GetId() int32 { } type ResFriendApplyNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除; + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields - - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除; - Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendApplyNotify) Reset() { @@ -15988,13 +15752,12 @@ func (x *ResFriendApplyNotify) GetTime() int32 { } type ResFriendReplyNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields - - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; - Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendReplyNotify) Reset() { @@ -16050,12 +15813,11 @@ func (x *ResFriendReplyNotify) GetTime() int32 { // 申请好友 type ReqApplyFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求; + sizeCache protoimpl.SizeCache } func (x *ReqApplyFriend) Reset() { @@ -16103,13 +15865,12 @@ func (x *ReqApplyFriend) GetType() int32 { } type ResApplyFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResApplyFriend) Reset() { @@ -16165,11 +15926,10 @@ func (x *ResApplyFriend) GetUid() int64 { // 同意申请 type ReqAgreeFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqAgreeFriend) Reset() { @@ -16210,14 +15970,13 @@ func (x *ReqAgreeFriend) GetUid() int64 { } type ResAgreeFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAgreeFriend) Reset() { @@ -16280,11 +16039,10 @@ func (x *ResAgreeFriend) GetPlayer() *ResPlayerSimple { // 拒绝申请 type ReqRefuseFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqRefuseFriend) Reset() { @@ -16325,13 +16083,12 @@ func (x *ReqRefuseFriend) GetUid() int64 { } type ResRefuseFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRefuseFriend) Reset() { @@ -16387,11 +16144,10 @@ func (x *ResRefuseFriend) GetUid() int64 { // 删除好友 type ReqDelFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqDelFriend) Reset() { @@ -16432,13 +16188,12 @@ func (x *ReqDelFriend) GetUid() int64 { } type ResDelFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDelFriend) Reset() { @@ -16494,11 +16249,10 @@ func (x *ResDelFriend) GetUid() int64 { // 玩家榜单 type ReqRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单; + sizeCache protoimpl.SizeCache } func (x *ReqRank) Reset() { @@ -16539,14 +16293,13 @@ func (x *ReqRank) GetType() int32 { } type ResRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型; + RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; + MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型; - RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; - MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + sizeCache protoimpl.SizeCache } func (x *ResRank) Reset() { @@ -16609,9 +16362,9 @@ func (x *ResRank) GetMyScore() float32 { // 邮件列表 type ReqMailList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqMailList) Reset() { @@ -16645,11 +16398,10 @@ func (*ReqMailList) Descriptor() ([]byte, []int) { } type ResMailList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResMailList) Reset() { @@ -16690,24 +16442,23 @@ func (x *ResMailList) GetMailList() map[int32]*MailInfo { } type MailInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id; + Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题; + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容; + Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间; + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除; + Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件; + TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题; + ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容; + SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题; + SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题; + TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题; + ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容; + SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id; - Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题; - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容; - Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除; - Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; - Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件; - TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题; - ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容; - SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题; - SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题; - TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题; - ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容; - SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题; + sizeCache protoimpl.SizeCache } func (x *MailInfo) Reset() { @@ -16839,11 +16590,10 @@ func (x *MailInfo) GetSubTitlePtBr() string { } type MailNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` unknownFields protoimpl.UnknownFields - - Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MailNotify) Reset() { @@ -16885,11 +16635,10 @@ func (x *MailNotify) GetInfo() *MailInfo { // 读邮件 type ReqReadMail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqReadMail) Reset() { @@ -16930,13 +16679,12 @@ func (x *ReqReadMail) GetId() int32 { } type ResReadMail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResReadMail) Reset() { @@ -16992,11 +16740,10 @@ func (x *ResReadMail) GetId() int32 { // 领取邮件 type ReqGetMailReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetMailReward) Reset() { @@ -17037,13 +16784,12 @@ func (x *ReqGetMailReward) GetId() int32 { } type ResGetMailReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetMailReward) Reset() { @@ -17099,11 +16845,10 @@ func (x *ResGetMailReward) GetId() int32 { // 删除邮件 type ReqDeleteMail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqDeleteMail) Reset() { @@ -17144,13 +16889,12 @@ func (x *ReqDeleteMail) GetId() int32 { } type ResDeleteMail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResDeleteMail) Reset() { @@ -17205,27 +16949,26 @@ func (x *ResDeleteMail) GetId() int32 { } type ResCharge struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额; - Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数; - First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次; - SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 特惠礼包; - FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次; - ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 棋子商店; - Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 礼包 礼包id =》 礼包数量; - Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包; - Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单; - SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额; - SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周; - TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额; - MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额; - AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 每周优惠 id -> 限购次数; - PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间; - WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间; + state protoimpl.MessageState `protogen:"open.v1"` + Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额; + Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数; + First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次; + SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包; + FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次; + ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店; + Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量; + Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包; + Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单; + SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额; + SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周; + TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额; + MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额; + AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间; + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; + PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间; + WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResCharge) Reset() { @@ -17378,12 +17121,11 @@ func (x *ResCharge) GetWeeklyEndTime() int64 { } type LogoutPetWork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间; + RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间; unknownFields protoimpl.UnknownFields - - WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间; - RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间; + sizeCache protoimpl.SizeCache } func (x *LogoutPetWork) Reset() { @@ -17431,13 +17173,12 @@ func (x *LogoutPetWork) GetRemainTime() int64 { } type WeeklyDiscountInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` // 剩余购买次数; + Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比; 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"` // 剩余购买次数; - Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比; + sizeCache protoimpl.SizeCache } func (x *WeeklyDiscountInfo) Reset() { @@ -17492,13 +17233,12 @@ func (x *WeeklyDiscountInfo) GetDiscount() int32 { } type WishList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` // 心愿点数; + Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id; 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"` // 心愿点数; - Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id; + sizeCache protoimpl.SizeCache } func (x *WishList) Reset() { @@ -17554,12 +17294,11 @@ func (x *WishList) GetUid() []int64 { // 添加心愿单 type ReqAddWish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店; + sizeCache protoimpl.SizeCache } func (x *ReqAddWish) Reset() { @@ -17607,12 +17346,11 @@ func (x *ReqAddWish) GetType() int32 { } type ResAddWish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAddWish) Reset() { @@ -17661,9 +17399,9 @@ func (x *ResAddWish) GetMsg() string { // 领取心愿单奖励 type ReqGetWish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqGetWish) Reset() { @@ -17697,12 +17435,11 @@ func (*ReqGetWish) Descriptor() ([]byte, []int) { } type ResGetWish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetWish) Reset() { @@ -17751,11 +17488,10 @@ func (x *ResGetWish) GetMsg() string { // 发送心愿单请求 type ReqSendWishBeg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; unknownFields protoimpl.UnknownFields - - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + sizeCache protoimpl.SizeCache } func (x *ReqSendWishBeg) Reset() { @@ -17796,12 +17532,11 @@ func (x *ReqSendWishBeg) GetUid() []int64 { } type ResSendWishBeg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSendWishBeg) Reset() { @@ -17849,12 +17584,11 @@ func (x *ResSendWishBeg) GetMsg() string { } type ResSpecialShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数; unknownFields protoimpl.UnknownFields - - Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数; + sizeCache protoimpl.SizeCache } func (x *ResSpecialShop) Reset() { @@ -17902,13 +17636,12 @@ func (x *ResSpecialShop) GetCount() int32 { } type ResChessShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石; + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量; + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id; unknownFields protoimpl.UnknownFields - - Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量; - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id; + sizeCache protoimpl.SizeCache } func (x *ResChessShop) Reset() { @@ -17963,9 +17696,9 @@ func (x *ResChessShop) GetChessId() int32 { } type ReqFreeShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFreeShop) Reset() { @@ -17999,12 +17732,11 @@ func (*ReqFreeShop) Descriptor() ([]byte, []int) { } type ResFreeShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFreeShop) Reset() { @@ -18053,11 +17785,10 @@ func (x *ResFreeShop) GetMsg() string { // 商店购买棋子 type ReqBuyChessShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqBuyChessShop) Reset() { @@ -18098,12 +17829,11 @@ func (x *ReqBuyChessShop) GetId() int32 { } type ResBuyChessShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResBuyChessShop) Reset() { @@ -18152,12 +17882,11 @@ func (x *ResBuyChessShop) GetMsg() string { // 商店购买棋子 type ReqBuyChessShop2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ReqBuyChessShop2) Reset() { @@ -18205,12 +17934,11 @@ func (x *ReqBuyChessShop2) GetMChessData() map[string]int32 { } type ResBuyChessShop2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResBuyChessShop2) Reset() { @@ -18259,9 +17987,9 @@ func (x *ResBuyChessShop2) GetMsg() string { // 刷新棋子商店 type ReqRefreshChessShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqRefreshChessShop) Reset() { @@ -18295,12 +18023,11 @@ func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) { } type ResRefreshChessShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRefreshChessShop) Reset() { @@ -18348,9 +18075,9 @@ func (x *ResRefreshChessShop) GetMsg() string { } type ReqEndless struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqEndless) Reset() { @@ -18384,12 +18111,11 @@ func (*ReqEndless) Descriptor() ([]byte, []int) { } type ResEndless struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResEndless) Reset() { @@ -18437,13 +18163,12 @@ func (x *ResEndless) GetEndlessList() map[int32]*ResEndlessInfo { } type ResEndlessInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` unknownFields protoimpl.UnknownFields - - ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResEndlessInfo) Reset() { @@ -18498,9 +18223,9 @@ func (x *ResEndlessInfo) GetItems() []*ItemInfo { } type ReqEndlessReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqEndlessReward) Reset() { @@ -18534,12 +18259,11 @@ func (*ReqEndlessReward) Descriptor() ([]byte, []int) { } type ResEndlessReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResEndlessReward) Reset() { @@ -18587,14 +18311,13 @@ func (x *ResEndlessReward) GetMsg() string { } type ResPiggyBank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告; + Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石; + Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数; + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告; - Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石; - Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间; + sizeCache protoimpl.SizeCache } func (x *ResPiggyBank) Reset() { @@ -18656,9 +18379,9 @@ func (x *ResPiggyBank) GetEndTime() int32 { } type ReqPiggyBankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPiggyBankReward) Reset() { @@ -18692,12 +18415,11 @@ func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) { } type ResPiggyBankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPiggyBankReward) Reset() { @@ -18745,12 +18467,11 @@ func (x *ResPiggyBankReward) GetMsg() string { } type ReqChargeReceive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容; + sizeCache protoimpl.SizeCache } func (x *ReqChargeReceive) Reset() { @@ -18798,12 +18519,11 @@ func (x *ReqChargeReceive) GetContent() string { } type ResChargeReceive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChargeReceive) Reset() { @@ -18851,15 +18571,14 @@ func (x *ResChargeReceive) GetMsg() string { } type ReqCreateOrderSn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` + PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test; + Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送; + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid; unknownFields protoimpl.UnknownFields - - ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test; - Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid; + sizeCache protoimpl.SizeCache } func (x *ReqCreateOrderSn) Reset() { @@ -18928,11 +18647,10 @@ func (x *ReqCreateOrderSn) GetUid() int64 { } type ResCreateOrderSn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; unknownFields protoimpl.UnknownFields - - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + sizeCache protoimpl.SizeCache } func (x *ResCreateOrderSn) Reset() { @@ -18973,14 +18691,13 @@ func (x *ResCreateOrderSn) GetOrderSn() string { } type ReqShippingOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id; + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token; + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; unknownFields protoimpl.UnknownFields - - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id; - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; + sizeCache protoimpl.SizeCache } func (x *ReqShippingOrder) Reset() { @@ -19042,12 +18759,11 @@ func (x *ReqShippingOrder) GetStatus() int32 { } type ResShippingOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResShippingOrder) Reset() { @@ -19095,9 +18811,9 @@ func (x *ResShippingOrder) GetMsg() string { } type ReqChampship struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqChampship) Reset() { @@ -19131,17 +18847,16 @@ func (*ReqChampship) Descriptor() ([]byte, []int) { } type ResChampship struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` + Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` + Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` + Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` + RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` + Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"` unknownFields protoimpl.UnknownFields - - Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` - Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` - Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` - Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` - RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` - Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChampship) Reset() { @@ -19224,9 +18939,9 @@ func (x *ResChampship) GetStatus() int32 { } type ReqChampshipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqChampshipReward) Reset() { @@ -19260,12 +18975,11 @@ func (*ReqChampshipReward) Descriptor() ([]byte, []int) { } type ResChampshipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChampshipReward) Reset() { @@ -19313,9 +19027,9 @@ func (x *ResChampshipReward) GetMsg() string { } type ReqChampshipRankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqChampshipRankReward) Reset() { @@ -19349,12 +19063,11 @@ func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) { } type ResChampshipRankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResChampshipRankReward) Reset() { @@ -19402,9 +19115,9 @@ func (x *ResChampshipRankReward) GetMsg() string { } type ReqChampshipRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqChampshipRank) Reset() { @@ -19438,13 +19151,12 @@ func (*ReqChampshipRank) Descriptor() ([]byte, []int) { } type ResChampshipRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; unknownFields protoimpl.UnknownFields - - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + sizeCache protoimpl.SizeCache } func (x *ResChampshipRank) Reset() { @@ -19499,9 +19211,9 @@ func (x *ResChampshipRank) GetMyScore() float32 { } type ReqChampshipPreRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqChampshipPreRank) Reset() { @@ -19535,13 +19247,12 @@ func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { } type ResChampshipPreRank struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; unknownFields protoimpl.UnknownFields - - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + sizeCache protoimpl.SizeCache } func (x *ResChampshipPreRank) Reset() { @@ -19596,14 +19307,13 @@ func (x *ResChampshipPreRank) GetMyScore() float32 { } type ResNotifyCard struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌; + Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; + ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星; + Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴; unknownFields protoimpl.UnknownFields - - Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 卡牌; - Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌; - ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星; - Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴; + sizeCache protoimpl.SizeCache } func (x *ResNotifyCard) Reset() { @@ -19665,11 +19375,10 @@ func (x *ResNotifyCard) GetHandbook() map[int32]int32 { } type ReqSetFacebookUrl struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` unknownFields protoimpl.UnknownFields - - Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSetFacebookUrl) Reset() { @@ -19710,12 +19419,11 @@ func (x *ReqSetFacebookUrl) GetUrl() string { } type ResSetFacebookUrl struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSetFacebookUrl) Reset() { @@ -19764,11 +19472,10 @@ func (x *ResSetFacebookUrl) GetMsg() string { // 邀请facebook好友 type ReqInviteFriendData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` unknownFields protoimpl.UnknownFields - - DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqInviteFriendData) Reset() { @@ -19809,12 +19516,11 @@ func (x *ReqInviteFriendData) GetDwUin() int64 { } type ResInviteFriendData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + IdLists []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` + GetIndex int32 `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` unknownFields protoimpl.UnknownFields - - IdLists []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` - GetIndex int32 `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResInviteFriendData) Reset() { @@ -19862,11 +19568,10 @@ func (x *ResInviteFriendData) GetGetIndex() int32 { } type ReqSelfInvited struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"` unknownFields protoimpl.UnknownFields - - InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqSelfInvited) Reset() { @@ -19907,11 +19612,10 @@ func (x *ReqSelfInvited) GetInviterId() int64 { } type ResSelfInvited struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResSelfInvited) Reset() { @@ -19952,12 +19656,11 @@ func (x *ResSelfInvited) GetResultCode() int32 { } type NotifyInvitedSuccess struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + IdLists []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - IdLists []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotifyInvitedSuccess) Reset() { @@ -20005,11 +19708,10 @@ func (x *NotifyInvitedSuccess) GetIdLists() []int32 { } type ReqGetInviteReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` unknownFields protoimpl.UnknownFields - - GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqGetInviteReward) Reset() { @@ -20050,11 +19752,10 @@ func (x *ReqGetInviteReward) GetGetIndex() int32 { } type ResGetInviteReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGetInviteReward) Reset() { @@ -20095,11 +19796,10 @@ func (x *ResGetInviteReward) GetResultCode() int32 { } type ReqAutoAddInviteFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid; unknownFields protoimpl.UnknownFields - - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid; + sizeCache protoimpl.SizeCache } func (x *ReqAutoAddInviteFriend) Reset() { @@ -20140,11 +19840,10 @@ func (x *ReqAutoAddInviteFriend) GetId() int64 { } type ResAutoAddInviteFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAutoAddInviteFriend) Reset() { @@ -20185,11 +19884,10 @@ func (x *ResAutoAddInviteFriend) GetResultCode() int32 { } type ReqAutoAddInviteFriend2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id; unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id; + sizeCache protoimpl.SizeCache } func (x *ReqAutoAddInviteFriend2) Reset() { @@ -20230,11 +19928,10 @@ func (x *ReqAutoAddInviteFriend2) GetId() string { } type ResAutoAddInviteFriend2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResAutoAddInviteFriend2) Reset() { @@ -20276,9 +19973,9 @@ func (x *ResAutoAddInviteFriend2) GetResultCode() int32 { // 挖矿活动 type ReqMining struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqMining) Reset() { @@ -20312,18 +20009,17 @@ func (*ReqMining) Descriptor() ([]byte, []int) { } type ResMining struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石; + Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; + Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石; - Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图; - Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数; + sizeCache protoimpl.SizeCache } func (x *ResMining) Reset() { @@ -20413,12 +20109,11 @@ func (x *ResMining) GetMining() int32 { } type ReqMiningTake struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; + Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石; unknownFields protoimpl.UnknownFields - - Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图; - Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石; + sizeCache protoimpl.SizeCache } func (x *ReqMiningTake) Reset() { @@ -20466,12 +20161,11 @@ func (x *ReqMiningTake) GetGem() int32 { } type ResMiningTake struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResMiningTake) Reset() { @@ -20519,9 +20213,9 @@ func (x *ResMiningTake) GetMsg() string { } type ReqMiningReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqMiningReward) Reset() { @@ -20555,12 +20249,11 @@ func (*ReqMiningReward) Descriptor() ([]byte, []int) { } type ResMiningReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResMiningReward) Reset() { @@ -20609,9 +20302,9 @@ func (x *ResMiningReward) GetMsg() string { // 活动通行证 type ReqActPass struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqActPass) Reset() { @@ -20645,18 +20338,17 @@ func (*ReqActPass) Descriptor() ([]byte, []int) { } type ResActPass struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Score int32 `protobuf:"varint,5,opt,name=Score,proto3" json:"Score,omitempty"` // 经验; + Reward []int32 `protobuf:"varint,6,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id; + LowPass bool `protobuf:"varint,7,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证; + HighPass bool `protobuf:"varint,8,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Score int32 `protobuf:"varint,5,opt,name=Score,proto3" json:"Score,omitempty"` // 经验; - Reward []int32 `protobuf:"varint,6,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id; - LowPass bool `protobuf:"varint,7,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证; - HighPass bool `protobuf:"varint,8,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证; + sizeCache protoimpl.SizeCache } func (x *ResActPass) Reset() { @@ -20746,9 +20438,9 @@ func (x *ResActPass) GetHighPass() bool { } type ReqActPassReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqActPassReward) Reset() { @@ -20782,13 +20474,12 @@ func (*ReqActPassReward) Descriptor() ([]byte, []int) { } type ResActPassReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id; + sizeCache protoimpl.SizeCache } func (x *ResActPassReward) Reset() { @@ -20843,11 +20534,10 @@ func (x *ResActPassReward) GetRewardLevel() []int32 { } type ResActRed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点; unknownFields protoimpl.UnknownFields - - Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 活动红点; + sizeCache protoimpl.SizeCache } func (x *ResActRed) Reset() { @@ -20889,12 +20579,11 @@ func (x *ResActRed) GetRed() map[int32]int32 { // 活动红点通知 type NotifyActRed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotifyActRed) Reset() { @@ -20943,11 +20632,10 @@ func (x *NotifyActRed) GetRed() int32 { // 活动更新通知 type ActivityNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` unknownFields protoimpl.UnknownFields - - Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ActivityNotify) Reset() { @@ -20988,11 +20676,10 @@ func (x *ActivityNotify) GetInfo() *ActivityInfo { } type ResItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResItem) Reset() { @@ -21033,11 +20720,10 @@ func (x *ResItem) GetItem() map[int32]int32 { } type ItemNotify struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量; unknownFields protoimpl.UnknownFields - - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 道具id =》 变化的数量; + sizeCache protoimpl.SizeCache } func (x *ItemNotify) Reset() { @@ -21079,9 +20765,9 @@ func (x *ItemNotify) GetItem() map[int32]int32 { // 猜颜色 type ReqGuessColor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqGuessColor) Reset() { @@ -21115,19 +20801,18 @@ func (*ReqGuessColor) Descriptor() ([]byte, []int) { } type ResGuessColor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史; + OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; + WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数; + Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 对手完成进度; - WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数; - Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + sizeCache protoimpl.SizeCache } func (x *ResGuessColor) Reset() { @@ -21224,14 +20909,13 @@ func (x *ResGuessColor) GetOpponent() *Opponent { } type Opponent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Progress int32 `protobuf:"varint,4,opt,name=Progress,proto3" json:"Progress,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Progress int32 `protobuf:"varint,4,opt,name=Progress,proto3" json:"Progress,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Opponent) Reset() { @@ -21294,12 +20978,11 @@ func (x *Opponent) GetProgress() int32 { // 猜颜色 type ReqGuessColorTake struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史; + OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; unknownFields protoimpl.UnknownFields - - Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 对手完成进度; + sizeCache protoimpl.SizeCache } func (x *ReqGuessColorTake) Reset() { @@ -21347,11 +21030,10 @@ func (x *ReqGuessColorTake) GetOMap() map[int32]int32 { } type GuessColorInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史; unknownFields protoimpl.UnknownFields - - Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 我的错误历史; + sizeCache protoimpl.SizeCache } func (x *GuessColorInfo) Reset() { @@ -21392,12 +21074,11 @@ func (x *GuessColorInfo) GetMap() map[int32]int32 { } type ResGuessColorTake struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGuessColorTake) Reset() { @@ -21446,9 +21127,9 @@ func (x *ResGuessColorTake) GetMsg() string { // 领奖 type ReqGuessColorReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqGuessColorReward) Reset() { @@ -21482,12 +21163,11 @@ func (*ReqGuessColorReward) Descriptor() ([]byte, []int) { } type ResGuessColorReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResGuessColorReward) Reset() { @@ -21535,9 +21215,9 @@ func (x *ResGuessColorReward) GetMsg() string { } type ReqRace struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqRace) Reset() { @@ -21571,20 +21251,19 @@ func (*ReqRace) Descriptor() ([]byte, []int) { } type ResRace struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; + GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间; + GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间; + Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; + Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间; - GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间; - Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名; + sizeCache protoimpl.SizeCache } func (x *ResRace) Reset() { @@ -21688,15 +21367,14 @@ func (x *ResRace) GetRank() int32 { } type Raceopponent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` + Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` - Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Raceopponent) Reset() { @@ -21765,9 +21443,9 @@ func (x *Raceopponent) GetProgress() int32 { } type ReqRaceStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqRaceStart) Reset() { @@ -21801,12 +21479,11 @@ func (*ReqRaceStart) Descriptor() ([]byte, []int) { } type ResRaceStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRaceStart) Reset() { @@ -21854,9 +21531,9 @@ func (x *ResRaceStart) GetMsg() string { } type ReqRaceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqRaceReward) Reset() { @@ -21890,12 +21567,11 @@ func (*ReqRaceReward) Descriptor() ([]byte, []int) { } type ResRaceReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResRaceReward) Reset() { @@ -21944,9 +21620,9 @@ func (x *ResRaceReward) GetMsg() string { // --------------------------【playroom】-------------------------- type ReqPlayroom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroom) Reset() { @@ -21980,40 +21656,39 @@ func (*ReqPlayroom) Descriptor() ([]byte, []int) { } type ResPlayroom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励; - Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友; - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; - Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰; - Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情>; - LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; - AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线; - Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数; - Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳; - DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; - PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包; - PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; - Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数; - RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分; - Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id; - DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; - InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; - Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; - Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid; - AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息; - Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 每周优惠 id -> 限购次数; + state protoimpl.MessageState `protogen:"open.v1"` + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励; + Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友; + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; + Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰; + Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; + LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; + StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; + WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; + AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; + Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线; + Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数; + Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳; + DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; + PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包; + PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; + Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数; + RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分; + Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id; + DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; + DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; + Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid; + AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息; + Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间; + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResPlayroom) Reset() { @@ -22257,12 +21932,11 @@ func (x *ResPlayroom) GetWeeklyDiscount() map[int32]*WeeklyDiscountInfo { } type NotifyPlayroomTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + state protoimpl.MessageState `protogen:"open.v1"` + DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; + DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *NotifyPlayroomTask) Reset() { @@ -22311,11 +21985,10 @@ func (x *NotifyPlayroomTask) GetDailyTaskReward() []int32 { // 领取任务奖励 type ReqPlayroomTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomTask) Reset() { @@ -22356,13 +22029,12 @@ func (x *ReqPlayroomTask) GetId() int32 { } type ResPlayroomTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomTask) Reset() { @@ -22418,11 +22090,10 @@ func (x *ResPlayroomTask) GetId() int32 { // 领取任务大奖 type ReqPlayroomTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomTaskReward) Reset() { @@ -22463,14 +22134,13 @@ func (x *ReqPlayroomTaskReward) GetType() int32 { } type ResPlayroomTaskReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomTaskReward) Reset() { @@ -22532,11 +22202,10 @@ func (x *ResPlayroomTaskReward) GetType() int32 { } type ReqPlayroomUnlock struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomUnlock) Reset() { @@ -22577,13 +22246,12 @@ func (x *ReqPlayroomUnlock) GetId() int32 { } type ResPlayroomUnlock struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomUnlock) Reset() { @@ -22638,11 +22306,10 @@ func (x *ResPlayroomUnlock) GetId() int32 { } type ReqPlayroomUpvote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; unknownFields protoimpl.UnknownFields - - Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomUpvote) Reset() { @@ -22683,13 +22350,12 @@ func (x *ReqPlayroomUpvote) GetId() int64 { } type ResPlayroomUpvote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomUpvote) Reset() { @@ -22744,11 +22410,10 @@ func (x *ResPlayroomUpvote) GetId() int64 { } type PlayroomDress struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id; unknownFields protoimpl.UnknownFields - - List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id; + sizeCache protoimpl.SizeCache } func (x *PlayroomDress) Reset() { @@ -22789,14 +22454,13 @@ func (x *PlayroomDress) GetList() []*PlayroomDressInfo { } type PlayroomDressInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + sizeCache protoimpl.SizeCache } func (x *PlayroomDressInfo) Reset() { @@ -22858,14 +22522,13 @@ func (x *PlayroomDressInfo) GetLabel() string { } type PlayroomAirInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + sizeCache protoimpl.SizeCache } func (x *PlayroomAirInfo) Reset() { @@ -22927,14 +22590,13 @@ func (x *PlayroomAirInfo) GetLabel() string { } type PlayroomCollectInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + sizeCache protoimpl.SizeCache } func (x *PlayroomCollectInfo) Reset() { @@ -22996,11 +22658,10 @@ func (x *PlayroomCollectInfo) GetLabel() string { } type ReqPlayroomDressSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; unknownFields protoimpl.UnknownFields - - DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomDressSet) Reset() { @@ -23041,12 +22702,11 @@ func (x *ReqPlayroomDressSet) GetDressSet() map[int32]int32 { } type ResPlayroomDressSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomDressSet) Reset() { @@ -23094,11 +22754,10 @@ func (x *ResPlayroomDressSet) GetMsg() string { } type ReqPlayroomPetAirSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; unknownFields protoimpl.UnknownFields - - PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomPetAirSet) Reset() { @@ -23139,12 +22798,11 @@ func (x *ReqPlayroomPetAirSet) GetPetAirSet() int32 { } type ResPlayroomPetAirSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomPetAirSet) Reset() { @@ -23192,9 +22850,9 @@ func (x *ResPlayroomPetAirSet) GetMsg() string { } type ReqPlayroomWrokOutline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomWrokOutline) Reset() { @@ -23228,12 +22886,11 @@ func (*ReqPlayroomWrokOutline) Descriptor() ([]byte, []int) { } type ResPlayroomWrokOutline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomWrokOutline) Reset() { @@ -23281,11 +22938,10 @@ func (x *ResPlayroomWrokOutline) GetMsg() string { } type NofiPlayroomStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态; unknownFields protoimpl.UnknownFields - - WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态; + sizeCache protoimpl.SizeCache } func (x *NofiPlayroomStatus) Reset() { @@ -23326,12 +22982,11 @@ func (x *NofiPlayroomStatus) GetWorkOutline() int32 { } type NotifyPlayroomWork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; + WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; unknownFields protoimpl.UnknownFields - - StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; + sizeCache protoimpl.SizeCache } func (x *NotifyPlayroomWork) Reset() { @@ -23379,13 +23034,12 @@ func (x *NotifyPlayroomWork) GetWorkStatus() int32 { } type NotifyPlayroomLose struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; + Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇; unknownFields protoimpl.UnknownFields - - LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇; + sizeCache protoimpl.SizeCache } func (x *NotifyPlayroomLose) Reset() { @@ -23440,12 +23094,11 @@ func (x *NotifyPlayroomLose) GetRevenge() int64 { } type ChipInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + sizeCache protoimpl.SizeCache } func (x *ChipInfo) Reset() { @@ -23493,14 +23146,13 @@ func (x *ChipInfo) GetEmojiId() int32 { } type NotifyPlayroomMood struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; + Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; + Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理>; + AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励; unknownFields protoimpl.UnknownFields - - AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情>; - Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理 <位置, 生理>; - AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励; + sizeCache protoimpl.SizeCache } func (x *NotifyPlayroomMood) Reset() { @@ -23562,13 +23214,12 @@ func (x *NotifyPlayroomMood) GetAdItem() []*AdItem { } type AdItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数; + LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间; + ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id; unknownFields protoimpl.UnknownFields - - Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数; - LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间; - ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id; + sizeCache protoimpl.SizeCache } func (x *AdItem) Reset() { @@ -23623,11 +23274,10 @@ func (x *AdItem) GetItemId() int32 { } type NotifyPlayroomKiss struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; unknownFields protoimpl.UnknownFields - - Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + sizeCache protoimpl.SizeCache } func (x *NotifyPlayroomKiss) Reset() { @@ -23668,15 +23318,14 @@ func (x *NotifyPlayroomKiss) GetKiss() int32 { } type FriendRoom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数; + sizeCache protoimpl.SizeCache } func (x *FriendRoom) Reset() { @@ -23745,15 +23394,14 @@ func (x *FriendRoom) GetTimes() int32 { } type RoomOpponent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间; + sizeCache protoimpl.SizeCache } func (x *RoomOpponent) Reset() { @@ -23823,11 +23471,10 @@ func (x *RoomOpponent) GetLastTime() int32 { // 请求拜访空间信息 type ReqPlayroomInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomInfo) Reset() { @@ -23868,27 +23515,26 @@ func (x *ReqPlayroomInfo) GetUid() int64 { } type ResPlayroomInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; + GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id; + Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; + Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束; + Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御; + Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌>; + Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; + PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名; + Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; + Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; + UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数; + DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; + Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; - GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id; - Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励; - Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束; - Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御; - Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 翻牌 <位置, 牌>; - Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名; - Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 表情; - Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; - UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数; - DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 服装装饰 位置 =》 服装id; - Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomInfo) Reset() { @@ -24042,11 +23688,10 @@ func (x *ResPlayroomInfo) GetKiss() int32 { // 请求翻牌 type ReqPlayroomFlip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomFlip) Reset() { @@ -24087,14 +23732,13 @@ func (x *ReqPlayroomFlip) GetId() int32 { } type ResPlayroomFlip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomFlip) Reset() { @@ -24157,11 +23801,10 @@ func (x *ResPlayroomFlip) GetCardId() int32 { // 引导修改playroom生理值 type ReqPlayroomGuide struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomGuide) Reset() { @@ -24202,12 +23845,11 @@ func (x *ReqPlayroomGuide) GetType() int32 { } type ResPlayroomGuide struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomGuide) Reset() { @@ -24256,11 +23898,10 @@ func (x *ResPlayroomGuide) GetMsg() string { // 领取游戏奖励 type ReqPlayroomFlipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; unknownFields protoimpl.UnknownFields - - EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomFlipReward) Reset() { @@ -24301,12 +23942,11 @@ func (x *ReqPlayroomFlipReward) GetEmojiId() int32 { } type ResPlayroomFlipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomFlipReward) Reset() { @@ -24354,12 +23994,11 @@ func (x *ResPlayroomFlipReward) GetMsg() string { } type ReqPlayroomGame struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomGame) Reset() { @@ -24407,14 +24046,13 @@ func (x *ReqPlayroomGame) GetEmojiId() int32 { } type ResPlayroomGame struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` + Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` - Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomGame) Reset() { @@ -24477,12 +24115,11 @@ func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo { // 展示游戏结果数据 type ReqPlayroomGameShowReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果; + SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id; unknownFields protoimpl.UnknownFields - - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果; - SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomGameShowReward) Reset() { @@ -24530,11 +24167,10 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 { } type ResPlayroomGameShowReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 unknownFields protoimpl.UnknownFields - - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomGameShowReward) Reset() { @@ -24576,12 +24212,11 @@ func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { // 宠物交互 type ReqPlayroomInteract struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomInteract) Reset() { @@ -24629,13 +24264,12 @@ func (x *ReqPlayroomInteract) GetType() int32 { } type ResPlayroomInteract struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomInteract) Reset() { @@ -24691,11 +24325,10 @@ func (x *ResPlayroomInteract) GetInteractNum() int32 { // playroom装饰 type ReqPlayroomSetRoom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; unknownFields protoimpl.UnknownFields - - Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomSetRoom) Reset() { @@ -24736,12 +24369,11 @@ func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 { } type ResPlayroomSetRoom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomSetRoom) Reset() { @@ -24789,12 +24421,11 @@ func (x *ResPlayroomSetRoom) GetMsg() string { } type ReqPlayroomSelectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomSelectReward) Reset() { @@ -24842,12 +24473,11 @@ func (x *ReqPlayroomSelectReward) GetEmojiId() int32 { } type ResPlayroomSelectReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomSelectReward) Reset() { @@ -24896,9 +24526,9 @@ func (x *ResPlayroomSelectReward) GetMsg() string { // 处理偷取的棋子 type ReqPlayroomLose struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomLose) Reset() { @@ -24932,12 +24562,11 @@ func (*ReqPlayroomLose) Descriptor() ([]byte, []int) { } type ResPlayroomLose struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomLose) Reset() { @@ -24986,9 +24615,9 @@ func (x *ResPlayroomLose) GetMsg() string { // 打工 type ReqPlayroomWork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomWork) Reset() { @@ -25022,12 +24651,11 @@ func (*ReqPlayroomWork) Descriptor() ([]byte, []int) { } type ResPlayroomWork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomWork) Reset() { @@ -25076,9 +24704,9 @@ func (x *ResPlayroomWork) GetMsg() string { // 休息 type ReqPlayroomRest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomRest) Reset() { @@ -25112,12 +24740,11 @@ func (*ReqPlayroomRest) Descriptor() ([]byte, []int) { } type ResPlayroomRest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomRest) Reset() { @@ -25166,9 +24793,9 @@ func (x *ResPlayroomRest) GetMsg() string { // 抽奖 type ReqPlayroomDraw struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomDraw) Reset() { @@ -25202,13 +24829,12 @@ func (*ReqPlayroomDraw) Descriptor() ([]byte, []int) { } type ResPlayroomDraw struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id; + sizeCache protoimpl.SizeCache } func (x *ResPlayroomDraw) Reset() { @@ -25264,11 +24890,10 @@ func (x *ResPlayroomDraw) GetId() int32 { // 消除 纸屑 type ReqPlayroomChip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数; unknownFields protoimpl.UnknownFields - - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomChip) Reset() { @@ -25309,12 +24934,11 @@ func (x *ReqPlayroomChip) GetUid() []int64 { } type ResPlayroomChip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomChip) Reset() { @@ -25362,11 +24986,10 @@ func (x *ResPlayroomChip) GetMsg() string { } type ReqPlayroomBuyItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomBuyItem) Reset() { @@ -25407,12 +25030,11 @@ func (x *ReqPlayroomBuyItem) GetId() int32 { } type ResPlayroomBuyItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomBuyItem) Reset() { @@ -25461,12 +25083,11 @@ func (x *ResPlayroomBuyItem) GetMsg() string { // playroom商店 购买 type ReqPlayroomShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量; + sizeCache protoimpl.SizeCache } func (x *ReqPlayroomShop) Reset() { @@ -25514,12 +25135,11 @@ func (x *ReqPlayroomShop) GetNum() int32 { } type ResPlayroomShop struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResPlayroomShop) Reset() { @@ -25568,9 +25188,9 @@ func (x *ResPlayroomShop) GetMsg() string { // #region 宠物宝藏 type ReqFriendTreasure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendTreasure) Reset() { @@ -25604,16 +25224,15 @@ func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { } type ResFriendTreasure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; + Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位; + List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表; + Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表; unknownFields protoimpl.UnknownFields - - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; - Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位; - List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表; - List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表; - Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表; + sizeCache protoimpl.SizeCache } func (x *ResFriendTreasure) Reset() { @@ -25689,17 +25308,16 @@ func (x *ResFriendTreasure) GetUids() []int64 { } type TreasureInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型; + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像; + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框; + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid; + Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻; + NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称; unknownFields protoimpl.UnknownFields - - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型; - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像; - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid; - Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻; - NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称; + sizeCache protoimpl.SizeCache } func (x *TreasureInfo) Reset() { @@ -25782,12 +25400,11 @@ func (x *TreasureInfo) GetNickName() string { } type ReqFriendTreasureStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` unknownFields protoimpl.UnknownFields - - List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表; - List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendTreasureStart) Reset() { @@ -25835,12 +25452,11 @@ func (x *ReqFriendTreasureStart) GetList2() []int32 { } type ResFriendTreasureStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTreasureStart) Reset() { @@ -25888,9 +25504,9 @@ func (x *ResFriendTreasureStart) GetMsg() string { } type ReqFriendTreasureEnd struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqFriendTreasureEnd) Reset() { @@ -25924,12 +25540,11 @@ func (*ReqFriendTreasureEnd) Descriptor() ([]byte, []int) { } type ResFriendTreasureEnd struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTreasureEnd) Reset() { @@ -25977,11 +25592,10 @@ func (x *ResFriendTreasureEnd) GetMsg() string { } type ReqFriendTreasureFilp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` unknownFields protoimpl.UnknownFields - - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqFriendTreasureFilp) Reset() { @@ -26022,12 +25636,11 @@ func (x *ReqFriendTreasureFilp) GetPos() int32 { } type ResFriendTreasureFilp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResFriendTreasureFilp) Reset() { @@ -26075,11 +25688,10 @@ func (x *ResFriendTreasureFilp) GetMsg() string { } type ResFriendTreasureStar struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; unknownFields protoimpl.UnknownFields - - Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; + sizeCache protoimpl.SizeCache } func (x *ResFriendTreasureStar) Reset() { @@ -26120,12 +25732,11 @@ func (x *ResFriendTreasureStar) GetStar() int32 { } type ReqKafkaLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"` + Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` unknownFields protoimpl.UnknownFields - - Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"` - Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqKafkaLog) Reset() { @@ -26173,9 +25784,9 @@ func (x *ReqKafkaLog) GetData() string { } type ReqCollectInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCollectInfo) Reset() { @@ -26209,12 +25820,11 @@ func (*ReqCollectInfo) Descriptor() ([]byte, []int) { } type ResCollectInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19]; + Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; unknownFields protoimpl.UnknownFields - - Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19]; - Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + sizeCache protoimpl.SizeCache } func (x *ResCollectInfo) Reset() { @@ -26262,12 +25872,11 @@ func (x *ResCollectInfo) GetItems() []*CollectItem { } type CollectItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + sizeCache protoimpl.SizeCache } func (x *CollectItem) Reset() { @@ -26315,11 +25924,10 @@ func (x *CollectItem) GetItems() []*ItemInfo { } type ReqCollect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id; + sizeCache protoimpl.SizeCache } func (x *ReqCollect) Reset() { @@ -26360,12 +25968,11 @@ func (x *ReqCollect) GetId() int32 { } type ResCollect struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCollect) Reset() { @@ -26416,9 +26023,9 @@ func (x *ResCollect) GetMsg() string { // ----------------【猫草大作战】-------------- // 猫草大作战详细信息 type ReqCatnip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCatnip) Reset() { @@ -26452,17 +26059,16 @@ func (*ReqCatnip) Descriptor() ([]byte, []int) { } type ResCatnip struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; + GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表; + Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表; - Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; - FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表; + sizeCache protoimpl.SizeCache } func (x *ResCatnip) Reset() { @@ -26546,17 +26152,16 @@ func (x *ResCatnip) GetFriendList() []*CatnipInvite { // 小游戏信息 type CatnipGame struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; - Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; - Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; - FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; + Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; + Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; + Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; + Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; + FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CatnipGame) Reset() { @@ -26639,14 +26244,13 @@ func (x *CatnipGame) GetFriendProgress() int32 { } type CatnipInvite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间; + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作; + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作; - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息; + sizeCache protoimpl.SizeCache } func (x *CatnipInvite) Reset() { @@ -26709,12 +26313,11 @@ func (x *CatnipInvite) GetPlayer() *ResPlayerSimple { // 邀请好友 type ReqCatnipInvite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipInvite) Reset() { @@ -26762,13 +26365,12 @@ func (x *ReqCatnipInvite) GetUid() int64 { } type ResCatnipInvite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ResCatnipInvite) Reset() { @@ -26824,12 +26426,11 @@ func (x *ResCatnipInvite) GetUid() int64 { // 同意邀请 type ReqCatnipAgree struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipAgree) Reset() { @@ -26877,13 +26478,12 @@ func (x *ReqCatnipAgree) GetUid() int64 { } type ResCatnipAgree struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ResCatnipAgree) Reset() { @@ -26938,12 +26538,11 @@ func (x *ResCatnipAgree) GetUid() int64 { } type ReqCatnipRefuse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipRefuse) Reset() { @@ -26991,13 +26590,12 @@ func (x *ReqCatnipRefuse) GetUid() int64 { } type ResCatnipRefuse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + sizeCache protoimpl.SizeCache } func (x *ResCatnipRefuse) Reset() { @@ -27053,11 +26651,10 @@ func (x *ResCatnipRefuse) GetUid() int64 { // 设置游戏倍数 type ReqCatnipMultiply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; unknownFields protoimpl.UnknownFields - - Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipMultiply) Reset() { @@ -27098,13 +26695,12 @@ func (x *ReqCatnipMultiply) GetMultiply() int32 { } type ResCatnipMultiply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + sizeCache protoimpl.SizeCache } func (x *ResCatnipMultiply) Reset() { @@ -27160,11 +26756,10 @@ func (x *ResCatnipMultiply) GetMultiply() int32 { // 游戏转盘 type ReqCatnipPlay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipPlay) Reset() { @@ -27205,13 +26800,12 @@ func (x *ReqCatnipPlay) GetId() int32 { } type ResCatnipPlay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id; + sizeCache protoimpl.SizeCache } func (x *ResCatnipPlay) Reset() { @@ -27267,11 +26861,10 @@ func (x *ResCatnipPlay) GetId() int32 { // 领取阶段奖励 type ReqCatnipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipReward) Reset() { @@ -27312,12 +26905,11 @@ func (x *ReqCatnipReward) GetId() int32 { } type ResCatnipReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCatnipReward) Reset() { @@ -27366,9 +26958,9 @@ func (x *ResCatnipReward) GetMsg() string { // 领取大奖 type ReqCatnipGrandReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqCatnipGrandReward) Reset() { @@ -27402,12 +26994,11 @@ func (*ReqCatnipGrandReward) Descriptor() ([]byte, []int) { } type ResCatnipGrandReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResCatnipGrandReward) Reset() { @@ -27456,12 +27047,11 @@ func (x *ResCatnipGrandReward) GetMsg() string { // 发送表情 type ReqCatnipEmoji struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + sizeCache protoimpl.SizeCache } func (x *ReqCatnipEmoji) Reset() { @@ -27509,14 +27099,13 @@ func (x *ReqCatnipEmoji) GetEmojiId() int32 { } type ResCatnipEmoji struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` + EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; unknownFields protoimpl.UnknownFields - - Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + sizeCache protoimpl.SizeCache } func (x *ResCatnipEmoji) Reset() { @@ -27579,12 +27168,11 @@ func (x *ResCatnipEmoji) GetId() int32 { // -------------------后台管理------------------- type AdminReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` + Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` unknownFields protoimpl.UnknownFields - - Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` - Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminReq) Reset() { @@ -27632,12 +27220,11 @@ func (x *AdminReq) GetInfo() []byte { } type AdminRes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` + Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` unknownFields protoimpl.UnknownFields - - Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` - Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminRes) Reset() { @@ -27685,11 +27272,10 @@ func (x *AdminRes) GetInfo() []byte { } type ReqAdminInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReqAdminInfo) Reset() { @@ -27730,9 +27316,9 @@ func (x *ReqAdminInfo) GetUid() int64 { } type ReqReloadServerMail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqReloadServerMail) Reset() { @@ -27766,9 +27352,9 @@ func (*ReqReloadServerMail) Descriptor() ([]byte, []int) { } type ReqServerInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqServerInfo) Reset() { @@ -27802,9 +27388,9 @@ func (*ReqServerInfo) Descriptor() ([]byte, []int) { } type ReqReload struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqReload) Reset() { @@ -27838,12 +27424,11 @@ func (*ReqReload) Descriptor() ([]byte, []int) { } type ReqAdminGm struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; + Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令; + sizeCache protoimpl.SizeCache } func (x *ReqAdminGm) Reset() { @@ -27891,13 +27476,12 @@ func (x *ReqAdminGm) GetCommand() string { } type ReqAdminBan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间; + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因; unknownFields protoimpl.UnknownFields - - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间; - Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因; + sizeCache protoimpl.SizeCache } func (x *ReqAdminBan) Reset() { @@ -27952,13 +27536,12 @@ func (x *ReqAdminBan) GetReason() string { } type ReqAdminShipping struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; - ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号; + state protoimpl.MessageState `protogen:"open.v1"` + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; + ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号; + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReqAdminShipping) Reset() { @@ -28014,3300 +27597,2266 @@ func (x *ReqAdminShipping) GetChannelOrderSn() string { var File_proto_Gameapi_proto protoreflect.FileDescriptor -var file_proto_Gameapi_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x47, 0x61, 0x6d, 0x65, 0x61, 0x70, 0x69, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x22, - 0xb5, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x6e, - 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, - 0x77, 0x55, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, - 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x0a, 0x16, 0x52, 0x65, 0x71, - 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, - 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, - 0x74, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, - 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x6e, 0x6c, 0x79, - 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, - 0x6e, 0x6c, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, - 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x11, 0x52, - 0x65, 0x71, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, - 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11, - 0x52, 0x65, 0x73, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x79, - 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x65, 0x73, - 0x53, 0x79, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, - 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, - 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75, - 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xb3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x78, 0x0a, 0x12, - 0x52, 0x65, 0x71, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x01, 0x0a, - 0x08, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6c, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x65, 0x6c, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x22, 0x54, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x49, 0x64, - 0x32, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x0c, 0x52, - 0x65, 0x73, 0x49, 0x64, 0x32, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x0a, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, - 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x5f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4e, - 0x65, 0x77, 0x50, 0x77, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x65, 0x77, - 0x50, 0x77, 0x64, 0x22, 0x33, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, - 0x55, 0x69, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, - 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, - 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x69, - 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, - 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x6f, 0x64, 0x61, - 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, - 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, - 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x68, - 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, - 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, - 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, - 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x95, 0x02, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, - 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, - 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x45, 0x78, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x50, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x44, 0x61, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x44, 0x61, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, - 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, - 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, - 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x47, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, - 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, - 0x71, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, - 0x2d, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3f, - 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x22, - 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2f, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, - 0x55, 0x69, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, - 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, - 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, - 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x87, 0x02, 0x0a, 0x12, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x12, 0x2e, 0x0a, 0x08, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, - 0x61, 0x67, 0x52, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, - 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x48, 0x6f, 0x6e, - 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, - 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x52, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x12, - 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x63, - 0x0a, 0x17, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x12, 0x39, - 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0c, 0x50, 0x61, 0x72, - 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x0b, 0x50, 0x61, 0x72, - 0x74, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x74, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x74, 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, 0xb5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x75, - 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, - 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, - 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, - 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x75, 0x74, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x42, 0x61, - 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x90, 0x01, 0x0a, 0x0b, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf8, - 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, - 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x39, 0x0a, 0x0c, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0c, 0x6d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, - 0xb7, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4a, - 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, - 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x55, - 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xbd, 0x01, 0x0a, - 0x13, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x42, 0x75, 0x66, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, - 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, - 0x66, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, - 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, - 0x75, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, - 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb4, 0x02, - 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x1e, 0x0a, 0x0a, - 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, - 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, 0x2b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x2e, 0x4d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x45, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb3, 0x01, 0x0a, - 0x0e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x68, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8f, - 0x02, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, - 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, - 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, - 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, - 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x3c, 0x0a, - 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0d, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, - 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, - 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, - 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, - 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, - 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, - 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, - 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x52, 0x65, - 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, - 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, - 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, - 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, - 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, - 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x19, - 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, - 0xf1, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, - 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, - 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, - 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, - 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x53, 0x65, - 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, - 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, - 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x4d, 0x75, 0x6c, 0x22, 0x57, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x32, 0x0a, - 0x07, 0x52, 0x65, 0x71, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x4c, 0x61, 0x6e, - 0x67, 0x22, 0x4f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x0a, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0xab, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1e, 0x0a, - 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x12, 0x1c, 0x0a, - 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x12, 0x27, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x4c, 0x61, 0x6e, 0x67, - 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0xfa, 0x03, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, - 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, - 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, - 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x45, 0x6d, 0x6f, - 0x6a, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, - 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x1a, - 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x20, 0x0a, 0x0a, - 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, - 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x50, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, - 0x74, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x26, - 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x16, - 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x42, 0x79, 0x41, 0x44, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x48, 0x61, - 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, - 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5a, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, - 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x22, 0x2a, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x48, 0x61, 0x6e, 0x64, 0x62, - 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x41, - 0x6c, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x13, - 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x22, 0x27, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, - 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x6c, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x6f, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x44, - 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, - 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, - 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, - 0x72, 0x65, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x41, 0x72, 0x65, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x50, 0x61, - 0x72, 0x74, 0x73, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x45, 0x0a, - 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, - 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, - 0x74, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, - 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, - 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x0a, - 0x0e, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x22, - 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x0d, 0x52, - 0x65, 0x71, 0x41, 0x72, 0x65, 0x61, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, - 0x65, 0x61, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x72, 0x65, 0x61, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x2c, 0x0a, - 0x04, 0x43, 0x61, 0x72, 0x64, 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, 0x0d, 0x0a, 0x0b, 0x52, - 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0b, 0x52, - 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, - 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, - 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 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, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, - 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, - 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x61, - 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, - 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x53, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 0x43, 0x61, - 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x96, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, - 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x52, - 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, - 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x71, - 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, - 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2f, 0x0a, 0x15, 0x52, - 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x15, - 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x22, 0x7d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, - 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, - 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x50, 0x0a, - 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x41, 0x6c, 0x6c, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, - 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, - 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, - 0x10, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, - 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, - 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, - 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x4d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, - 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x47, - 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x51, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, - 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, - 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x52, - 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, - 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x25, 0x0a, 0x13, 0x52, - 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, - 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, - 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, - 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, - 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x76, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x69, 0x76, 0x65, 0x22, 0x20, 0x0a, 0x0e, - 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, - 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, - 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4c, - 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, - 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, - 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, - 0x0a, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, - 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, - 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, - 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, - 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x0c, - 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0c, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x34, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, - 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x4c, - 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x09, - 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x51, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, - 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x63, 0x0a, - 0x17, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, - 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x61, 0x79, 0x45, - 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x1a, 0x52, 0x0a, 0x0f, 0x57, 0x65, - 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, - 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, - 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x28, - 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x22, 0xc0, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x33, - 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x22, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, - 0x65, 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, - 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, - 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, - 0x71, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4a, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x53, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, - 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, - 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, - 0x08, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, - 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, - 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, - 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, - 0x65, 0x74, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, - 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, - 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, - 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x09, 0x45, 0x6d, 0x6f, 0x6a, - 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0b, 0x52, 0x65, 0x71, - 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0b, - 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x76, - 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, - 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, - 0x6b, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, - 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x16, - 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, - 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, - 0x71, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x6f, - 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0xaa, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 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, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x23, 0x0a, 0x11, - 0x52, 0x65, 0x71, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xf5, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, - 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xf3, 0x01, 0x0a, 0x0a, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x43, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x03, 0x6d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, - 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, - 0x77, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x60, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, - 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x43, 0x61, 0x74, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, - 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x22, 0x7c, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x13, - 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x22, 0x67, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x54, 0x72, 0x69, - 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x0f, - 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, - 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, - 0x69, 0x64, 0x22, 0x93, 0x07, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, - 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, - 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x40, - 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x45, - 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x49, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x12, 0x49, 0x0a, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x4c, 0x61, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, - 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x0a, 0x50, 0x68, - 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, - 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x50, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, - 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, - 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x73, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, - 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, - 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3a, - 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x06, 0x41, 0x63, - 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x70, 0x76, 0x6f, - 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, - 0x22, 0x71, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, - 0x32, 0x0a, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x42, 0x75, 0x62, - 0x62, 0x6c, 0x65, 0x22, 0x60, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x62, - 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x91, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, - 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x65, - 0x71, 0x4b, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x52, - 0x65, 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4b, - 0x76, 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, 0x35, 0x0a, - 0x07, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x7e, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x14, 0x0a, 0x12, 0x52, - 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x52, 0x65, - 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x52, 0x65, - 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x70, - 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x70, 0x63, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, - 0x4e, 0x70, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x09, 0x52, 0x65, 0x73, - 0x41, 0x64, 0x64, 0x4e, 0x70, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x4e, 0x70, 0x63, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5b, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x4d, - 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x12, - 0x0a, 0x10, 0x52, 0x65, 0x71, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x57, 0x69, 0x73, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x57, 0x69, 0x73, 0x68, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x6d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, 0x6f, - 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, - 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, - 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x56, 0x0a, 0x14, 0x52, 0x65, - 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x40, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x52, 0x49, 0x45, - 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x07, 0x45, 0x72, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x45, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, - 0x62, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, - 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x4c, 0x55, 0x70, 0x76, 0x6f, - 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10, - 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x71, - 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0x71, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, - 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x8f, - 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x31, 0x0a, - 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, - 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x55, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, - 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x1a, 0x56, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, - 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, - 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c, 0x03, 0x0a, 0x08, 0x4d, 0x61, - 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x62, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x45, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x45, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, 0x42, - 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, - 0x42, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x74, 0x42, - 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x50, 0x74, 0x42, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x50, 0x74, 0x42, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x75, 0x62, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x50, 0x74, 0x42, 0x72, 0x22, 0x34, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, - 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x57, 0x0a, - 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, - 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x0d, 0x52, 0x65, 0x73, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x22, 0x85, 0x08, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x14, 0x0a, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, - 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, - 0x47, 0x69, 0x66, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, - 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x57, 0x69, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x04, 0x57, 0x69, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x2c, 0x0a, - 0x11, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x57, 0x65, - 0x65, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x54, - 0x6f, 0x64, 0x61, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0b, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x64, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x41, 0x64, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, - 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, - 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, - 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, - 0x0a, 0x11, 0x50, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x50, 0x65, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, - 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, - 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x13, 0x57, - 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, - 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0d, - 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1a, 0x0a, - 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x6d, - 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x12, 0x57, 0x65, 0x65, - 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x42, 0x0a, 0x08, 0x57, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 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, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, 0x57, - 0x69, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x41, 0x64, - 0x64, 0x57, 0x69, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x57, 0x69, 0x73, 0x68, 0x22, 0x46, 0x0a, - 0x0a, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x57, 0x69, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6e, 0x64, - 0x57, 0x69, 0x73, 0x68, 0x42, 0x65, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x6e, 0x64, 0x57, 0x69, 0x73, 0x68, 0x42, 0x65, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, - 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, - 0x0b, 0x52, 0x65, 0x71, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, - 0x52, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, - 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xad, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, - 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, - 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, - 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, - 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x1a, 0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, - 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, - 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, - 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, - 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, - 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, - 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, - 0x12, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, - 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3e, 0x0a, - 0x10, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x55, 0x69, 0x64, 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, 0x22, 0x4c, 0x0a, - 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x8a, 0x01, 0x0a, 0x10, - 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22, 0x78, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0e, - 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x22, 0xba, - 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, - 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x52, - 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, - 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, - 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, - 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, - 0x61, 0x6e, 0x6b, 0x22, 0xe0, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, - 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, - 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, - 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe6, 0x01, - 0x0a, 0x13, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x47, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, - 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, - 0x3b, 0x0a, 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, - 0x53, 0x74, 0x61, 0x72, 0x12, 0x41, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, - 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, - 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x39, 0x0a, 0x0b, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, - 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x53, - 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, - 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, - 0x0a, 0x13, 0x52, 0x65, 0x71, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x13, 0x52, - 0x65, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2e, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, - 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, - 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x12, - 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x34, - 0x0a, 0x12, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, - 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38, - 0x0a, 0x16, 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x41, - 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, - 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 0x12, 0x1e, - 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x0b, - 0x0a, 0x09, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x09, - 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, - 0x65, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x12, 0x2e, 0x0a, - 0x03, 0x4d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x01, - 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, - 0x32, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, - 0x4d, 0x61, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x47, 0x65, 0x6d, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, - 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x4d, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, - 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x41, 0x63, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x77, 0x50, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x4c, 0x6f, 0x77, 0x50, 0x61, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x48, - 0x69, 0x67, 0x68, 0x50, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x48, - 0x69, 0x67, 0x68, 0x50, 0x61, 0x73, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x41, 0x63, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x41, 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x73, 0x0a, 0x09, 0x52, - 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x2e, 0x52, 0x65, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x03, 0x52, 0x65, 0x64, 0x1a, 0x36, 0x0a, 0x08, 0x52, 0x65, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x30, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, - 0x65, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x04, 0x49, - 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, - 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x79, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x22, 0xef, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x4f, 0x4d, 0x61, - 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x2e, 0x4f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4f, 0x4d, 0x61, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x4f, 0x70, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x1a, 0x37, 0x0a, 0x09, 0x4f, 0x4d, - 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x11, - 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, - 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, - 0x04, 0x4f, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x04, 0x4f, 0x4d, 0x61, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x4f, 0x4d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x7d, 0x0a, 0x0e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x47, 0x75, 0x65, 0x73, - 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, - 0x63, 0x65, 0x22, 0xa7, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x61, 0x6d, - 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, - 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0x7a, 0x0a, 0x0c, - 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x46, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x52, - 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x52, - 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0d, - 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0xa9, 0x0d, - 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, - 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, - 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, - 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x4d, - 0x6f, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, - 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, - 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, - 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, - 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x45, 0x0a, 0x0a, - 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, - 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, - 0x6f, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x44, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x06, - 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, - 0x41, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x12, - 0x1c, 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x55, - 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x16, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x31, 0x0a, 0x09, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, - 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x18, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, - 0x73, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x1d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x51, 0x0a, 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, - 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, - 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0a, 0x44, 0x72, 0x65, 0x73, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x13, 0x57, 0x65, 0x65, 0x6b, - 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x57, 0x65, 0x65, 0x6b, - 0x6c, 0x79, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71, 0x0a, 0x12, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x31, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x21, 0x0a, 0x0f, - 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x5b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x15, - 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x75, 0x0a, 0x15, 0x52, 0x65, 0x73, - 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, - 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, - 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x50, 0x6c, - 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6b, 0x0a, 0x0f, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x69, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6f, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x50, - 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, - 0x47, 0x0a, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, - 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, - 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x34, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x41, 0x69, 0x72, 0x53, 0x65, 0x74, 0x22, 0x50, 0x0a, 0x14, - 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x41, 0x69, - 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x18, - 0x0a, 0x16, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, - 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, - 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x36, 0x0a, 0x12, - 0x4e, 0x6f, 0x66, 0x69, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, - 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, - 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, - 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x12, - 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, - 0x65, 0x22, 0x36, 0x0a, 0x08, 0x43, 0x68, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x12, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x3a, 0x0a, 0x04, 0x4d, 0x6f, - 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, - 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, - 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, - 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, - 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73, 0x69, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x06, 0x41, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x57, - 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x12, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4b, 0x69, - 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x22, 0x74, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x0c, - 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, - 0x9f, 0x07, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x43, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, - 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, - 0x12, 0x37, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x6c, 0x69, 0x70, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, - 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, - 0x70, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x55, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, - 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x4b, 0x69, 0x73, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, - 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x46, 0x6c, 0x69, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, - 0x46, 0x6c, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x10, 0x52, 0x65, 0x71, - 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, - 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x31, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, - 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, - 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, - 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, - 0x45, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x39, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, - 0x74, 0x4e, 0x75, 0x6d, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x08, 0x50, - 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, - 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x43, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, - 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x22, 0x5b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, - 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, - 0x69, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, - 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x33, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x52, 0x65, - 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x68, 0x69, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x69, 0x66, - 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, - 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, - 0x73, 0x74, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x03, 0x52, 0x04, 0x55, 0x69, 0x64, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x61, - 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, - 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x5a, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x22, 0x52, 0x0a, 0x16, - 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, - 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, - 0x69, 0x6c, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x74, 0x61, 0x72, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4b, 0x61, 0x66, 0x6b, - 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, - 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x4d, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, - 0x47, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0b, - 0x0a, 0x09, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x22, 0xef, 0x01, 0x0a, 0x09, - 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x61, 0x6d, 0x65, 0x52, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xdb, 0x01, - 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x07, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x6d, - 0x6f, 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7b, 0x0a, 0x0c, 0x43, - 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, - 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x0e, - 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x41, 0x67, 0x72, 0x65, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x22, 0x5c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x41, 0x67, 0x72, - 0x65, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x33, - 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x66, 0x75, 0x73, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, - 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, - 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x22, 0x1f, - 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x59, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, - 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, - 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3a, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43, 0x61, 0x74, 0x6e, 0x69, - 0x70, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, - 0x22, 0x74, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x45, 0x6d, 0x6f, - 0x6a, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, - 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x61, 0x69, 0x6c, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x0b, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x52, - 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x38, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x47, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, - 0x4b, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x10, - 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x2a, 0xee, 0x0b, 0x0a, 0x0e, 0x49, - 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x12, 0x0c, 0x0a, - 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, - 0x73, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x65, 0x76, 0x55, 0x70, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x65, - 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, - 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x10, 0x09, 0x12, 0x13, 0x0a, - 0x0f, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, - 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x10, 0x0b, 0x12, - 0x15, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0e, 0x12, 0x0f, - 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0f, 0x12, - 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x75, 0x79, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x12, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x65, 0x76, 0x65, - 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x14, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x61, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x15, - 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, - 0x6f, 0x70, 0x10, 0x18, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, - 0x70, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, - 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, - 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1e, 0x12, 0x17, 0x0a, 0x13, - 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, - 0x20, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x21, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x54, 0x61, 0x6b, 0x65, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x23, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x24, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, - 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x25, 0x12, - 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x26, 0x12, - 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, - 0x27, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, - 0x77, 0x10, 0x28, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, - 0x68, 0x69, 0x70, 0x10, 0x29, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, - 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x10, 0x2a, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x10, 0x2b, 0x12, - 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, - 0x65, 0x45, 0x6e, 0x64, 0x10, 0x2c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x4d, 0x10, 0x2d, 0x12, 0x12, - 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, - 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x2f, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x73, 0x74, 0x52, 0x61, 0x69, - 0x6e, 0x10, 0x30, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x42, 0x79, 0x41, 0x44, 0x10, 0x31, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x43, 0x68, 0x65, 0x73, 0x74, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, - 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x34, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x6c, 0x6c, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x42, 0x10, 0x35, 0x12, - 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x10, - 0x36, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6c, 0x6c, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x37, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4c, 0x55, 0x70, - 0x76, 0x6f, 0x74, 0x65, 0x10, 0x38, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x10, 0x39, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x47, - 0x69, 0x66, 0x74, 0x10, 0x3a, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x3b, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x61, 0x74, - 0x54, 0x72, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x3c, 0x12, 0x0b, 0x0a, - 0x07, 0x41, 0x64, 0x64, 0x57, 0x69, 0x73, 0x68, 0x10, 0x3d, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x57, 0x69, 0x73, 0x68, 0x10, 0x3e, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, - 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x3f, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, - 0x40, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x70, 0x76, - 0x6f, 0x74, 0x65, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x42, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x61, 0x74, - 0x6e, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x43, 0x12, 0x15, 0x0a, 0x11, 0x43, - 0x61, 0x74, 0x6e, 0x69, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x44, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x6e, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x79, - 0x10, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x10, 0x46, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x65, 0x74, 0x54, 0x68, 0x65, 0x69, - 0x66, 0x10, 0x47, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x48, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x75, 0x69, 0x64, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x49, 0x12, - 0x0e, 0x0a, 0x0a, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x4a, 0x12, - 0x11, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x4b, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0x4c, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x10, 0x4d, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x53, 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x10, 0x4e, 0x2a, 0x42, 0x0a, 0x0b, 0x48, - 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, - 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4c, - 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, - 0xf0, 0x02, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, - 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x4f, 0x52, 0x5f, 0x50, 0x57, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x27, - 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x4f, 0x52, 0x5f, 0x50, 0x57, 0x44, 0x5f, - 0x53, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x4e, 0x6f, 0x45, 0x78, 0x73, 0x69, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x07, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x49, - 0x64, 0x5f, 0x4e, 0x6f, 0x74, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x10, 0x09, 0x12, 0x22, - 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x49, 0x64, 0x5f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x10, 0x0a, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, - 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, - 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, 0x44, - 0x10, 0x02, 0x2a, 0x9f, 0x01, 0x0a, 0x0d, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, - 0x4e, 0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x47, 0x55, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x11, - 0x0a, 0x0d, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x43, 0x45, 0x10, - 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, - 0x53, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x47, 0x49, 0x46, 0x54, 0x10, 0x04, 0x12, 0x15, 0x0a, - 0x11, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x47, 0x49, - 0x46, 0x54, 0x10, 0x05, 0x2a, 0x95, 0x02, 0x0a, 0x0a, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, - 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, - 0x53, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, - 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x10, - 0x0a, 0x0c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, - 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x06, - 0x12, 0x14, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x32, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4d, 0x46, 0x4f, - 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x69, - 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x65, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, - 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x0e, 0x2a, 0x50, 0x0a, 0x0a, - 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x43, - 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, - 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x02, 0x12, - 0x0d, 0x0a, 0x09, 0x53, 0x44, 0x4b, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x03, 0x2a, 0xf7, - 0x06, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, - 0x44, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x42, 0x45, 0x43, - 0x4f, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x03, - 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, - 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x10, 0x05, - 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, - 0x44, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x06, 0x12, 0x1d, - 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, - 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, - 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, - 0x58, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x5f, - 0x53, 0x45, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x5f, 0x31, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x45, 0x58, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x5f, 0x32, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x10, 0x0d, 0x12, - 0x15, 0x0a, 0x11, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, - 0x42, 0x4f, 0x4f, 0x4b, 0x10, 0x0e, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x55, 0x50, 0x56, 0x4f, - 0x54, 0x45, 0x10, 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x10, 0x12, 0x1c, - 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, - 0x45, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, - 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x53, 0x48, 0x10, 0x12, 0x12, - 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, - 0x4e, 0x44, 0x5f, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x4e, 0x50, 0x43, 0x10, 0x13, 0x12, - 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, - 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x55, 0x50, 0x56, 0x4f, 0x54, 0x45, 0x10, 0x14, 0x12, 0x1f, 0x0a, - 0x1b, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, - 0x4f, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4d, 0x50, 0x53, 0x48, 0x49, 0x50, 0x10, 0x15, 0x12, 0x15, - 0x0a, 0x11, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x45, 0x41, 0x53, - 0x55, 0x52, 0x45, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x43, 0x43, 0x45, - 0x50, 0x54, 0x10, 0x17, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x57, 0x49, - 0x4e, 0x10, 0x18, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x4c, 0x4f, 0x53, - 0x45, 0x10, 0x19, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x41, 0x52, 0x44, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, - 0x10, 0x1a, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, - 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x10, 0x1b, 0x12, 0x1a, - 0x0a, 0x16, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x45, 0x41, 0x53, - 0x55, 0x52, 0x45, 0x5f, 0x48, 0x45, 0x4c, 0x50, 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, - 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x50, - 0x4f, 0x4e, 0x53, 0x4f, 0x52, 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x47, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x50, 0x4f, 0x4e, 0x53, - 0x4f, 0x52, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x1e, 0x2a, 0x9b, 0x01, 0x0a, 0x0d, 0x43, 0x48, 0x45, - 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, - 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x42, 0x55, 0x42, 0x42, 0x4c, 0x45, - 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x42, - 0x4f, 0x58, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, - 0x5f, 0x51, 0x55, 0x49, 0x43, 0x4b, 0x5f, 0x42, 0x55, 0x59, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, - 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x04, - 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x58, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x45, 0x4e, - 0x54, 0x49, 0x43, 0x45, 0x10, 0x05, 0x2a, 0x34, 0x0a, 0x09, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x43, 0x4e, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x54, 0x42, 0x52, 0x10, 0x02, 0x2a, 0x78, 0x0a, 0x0f, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, - 0x0c, 0x0a, 0x08, 0x4c, 0x45, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, - 0x10, 0x43, 0x41, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x43, 0x4b, 0x5f, 0x45, 0x4e, 0x45, 0x52, 0x47, - 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x43, 0x4b, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x59, 0x42, 0x41, - 0x43, 0x4b, 0x5f, 0x44, 0x41, 0x59, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x16, - 0x0a, 0x12, 0x4c, 0x55, 0x43, 0x4b, 0x59, 0x5f, 0x43, 0x41, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x4e, - 0x49, 0x4e, 0x47, 0x53, 0x10, 0x04, 0x2a, 0x8a, 0x07, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x4c, 0x6f, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, - 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x52, - 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, - 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, - 0x45, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x24, - 0x0a, 0x20, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x55, 0x52, 0x41, - 0x4e, 0x54, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x42, 0x41, - 0x54, 0x48, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, - 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, - 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x41, 0x4b, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x05, 0x12, 0x1f, 0x0a, - 0x1b, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, - 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x41, 0x56, 0x41, 0x54, 0x41, 0x52, 0x10, 0x06, 0x12, 0x25, - 0x0a, 0x21, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, - 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x41, 0x56, 0x41, 0x54, 0x41, 0x52, 0x5f, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x45, 0x4d, - 0x4f, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, 0x4c, - 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, - 0x44, 0x45, 0x43, 0x4f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, - 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, - 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x55, 0x4d, 0x45, 0x10, 0x0a, 0x12, 0x24, - 0x0a, 0x20, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x41, 0x4c, 0x42, - 0x55, 0x4d, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x41, 0x4c, - 0x4c, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x54, - 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x48, - 0x41, 0x4d, 0x50, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x10, - 0x0d, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4d, 0x50, 0x49, 0x4f, 0x4e, 0x53, 0x48, - 0x49, 0x50, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, - 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4c, - 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, - 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x0f, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x43, 0x54, 0x5f, 0x4c, - 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x46, 0x52, 0x49, - 0x45, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4f, 0x50, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, - 0x59, 0x10, 0x10, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x5f, 0x47, 0x41, - 0x4d, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x11, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, - 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x56, - 0x49, 0x53, 0x49, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x5f, - 0x31, 0x10, 0x12, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x54, 0x52, 0x45, - 0x41, 0x53, 0x55, 0x52, 0x45, 0x10, 0x13, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x54, 0x5f, 0x4c, - 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x54, 0x5f, 0x55, 0x50, - 0x56, 0x4f, 0x54, 0x45, 0x10, 0x14, 0x12, 0x2e, 0x0a, 0x2a, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, - 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, - 0x48, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x41, 0x43, 0x48, 0x49, 0x45, 0x56, 0x45, - 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x15, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, - 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, - 0x43, 0x48, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x10, 0x16, - 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, - 0x4e, 0x10, 0x17, 0x2a, 0xa4, 0x01, 0x0a, 0x11, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, - 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x52, 0x49, - 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, - 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x54, - 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, - 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x47, - 0x52, 0x45, 0x45, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x4e, 0x49, 0x50, 0x10, 0x03, 0x12, 0x1b, 0x0a, - 0x17, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x4e, - 0x49, 0x50, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x04, 0x2a, 0x34, 0x0a, 0x1c, 0x46, 0x52, - 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, - 0x45, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, - 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x54, 0x4e, 0x49, 0x50, 0x10, 0x01, - 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} +const file_proto_Gameapi_proto_rawDesc = "" + + "\n" + + "\x13proto/Gameapi.proto\x12\btutorial\"\xb5\x01\n" + + "\tClientReq\x12\x12\n" + + "\x04func\x18\x01 \x01(\tR\x04func\x12\x10\n" + + "\x03cid\x18\x02 \x01(\tR\x03cid\x12\x12\n" + + "\x04info\x18\x03 \x01(\fR\x04info\x12\x1c\n" + + "\tsessionId\x18\x04 \x01(\tR\tsessionId\x12\x1c\n" + + "\tgatewayId\x18\x05 \x01(\tR\tgatewayId\x12\x16\n" + + "\x06userId\x18\x06 \x01(\tR\x06userId\x12\x1a\n" + + "\buserBase\x18\a \x01(\tR\buserBase\"+\n" + + "\x13ReqOfflineReconnect\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"C\n" + + "\x13ResOfflineReconnect\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + + "\x06Result\x18\x02 \x01(\x05R\x06Result\"T\n" + + "\x16ReqBindFacebookAccount\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"t\n" + + "\x16ResBindFacebookAccount\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\x12\x1e\n" + + "\n" + + "ResultCode\x18\x03 \x01(\x05R\n" + + "ResultCode\"Q\n" + + "\x13ReqOnlyBindFacebook\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"q\n" + + "\x13ResOnlyBindFacebook\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\x12\x1e\n" + + "\n" + + "ResultCode\x18\x03 \x01(\x05R\n" + + "ResultCode\"O\n" + + "\x11ReqUnBindFacebook\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"Y\n" + + "\x11ResUnBindFacebook\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\x12$\n" + + "\rBindAccountId\x18\x02 \x01(\tR\rBindAccountId\"@\n" + + "\x0eReqSynGameData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x18\n" + + "\aNewFBId\x18\x02 \x01(\tR\aNewFBId\"F\n" + + "\x0eResSynGameData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + + "\n" + + "ResultCode\x18\x02 \x01(\x05R\n" + + "ResultCode\"\x0e\n" + + "\fForceKickOut\",\n" + + "\x10ResServerVersion\x12\x18\n" + + "\aVersion\x18\x01 \x01(\x05R\aVersion\"\xb3\x01\n" + + "\x11ResChessColorData\x12Z\n" + + "\x0fmChessColorData\x18\x01 \x03(\v20.tutorial.ResChessColorData.MChessColorDataEntryR\x0fmChessColorData\x1aB\n" + + "\x14MChessColorDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"E\n" + + "\tClientRes\x12\x12\n" + + "\x04func\x18\x01 \x01(\tR\x04func\x12\x10\n" + + "\x03cid\x18\x02 \x01(\tR\x03cid\x12\x12\n" + + "\x04info\x18\x03 \x01(\fR\x04info\"x\n" + + "\x12ReqRegisterAccount\x12\x1a\n" + + "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x18\n" + + "\aUserPwd\x18\x02 \x01(\tR\aUserPwd\x12\x14\n" + + "\x05dwUin\x18\x03 \x01(\x05R\x05dwUin\x12\x16\n" + + "\x06Device\x18\x04 \x01(\tR\x06Device\"4\n" + + "\x12ResRegisterAccount\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\"\x96\x01\n" + + "\bReqLogin\x12\x1a\n" + + "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x18\n" + + "\aUserPwd\x18\x02 \x01(\tR\aUserPwd\x12\x12\n" + + "\x04Code\x18\x03 \x01(\tR\x04Code\x12\x16\n" + + "\x06Device\x18\x04 \x01(\tR\x06Device\x12(\n" + + "\x04type\x18\x05 \x01(\x0e2\x14.tutorial.LOGIN_TYPER\x04type\"*\n" + + "\fReqLoginCode\x12\x1a\n" + + "\bTelPhone\x18\x01 \x01(\tR\bTelPhone\"T\n" + + "\fResLoginCode\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x12\n" + + "\x04Code\x18\x03 \x01(\tR\x04Code\"2\n" + + "\fReqId2Verify\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\"T\n" + + "\fResId2Verify\x122\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x8e\x01\n" + + "\bResLogin\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\x12\x14\n" + + "\x05dwUin\x18\x02 \x01(\x03R\x05dwUin\x12\x1a\n" + + "\bUserName\x18\x03 \x01(\tR\bUserName\x12\x1e\n" + + "\n" + + "FaceBookId\x18\x04 \x01(\tR\n" + + "FaceBookId\x12\x10\n" + + "\x03Msg\x18\x05 \x01(\tR\x03Msg\"_\n" + + "\x11ReqChangePassword\x12\x1a\n" + + "\bUserName\x18\x01 \x01(\tR\bUserName\x12\x16\n" + + "\x06OldPwd\x18\x02 \x01(\tR\x06OldPwd\x12\x16\n" + + "\x06NewPwd\x18\x03 \x01(\tR\x06NewPwd\"3\n" + + "\x11ResChangePassword\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\")\n" + + "\x11ReqPlayerBaseInfo\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\x93\x06\n" + + "\x11ResPlayerBaseInfo\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + + "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + + "\x04star\x18\x03 \x01(\x05R\x04star\x12!\n" + + "\frecover_time\x18\x04 \x01(\x05R\vrecoverTime\x12\x18\n" + + "\adiamond\x18\x05 \x01(\x05R\adiamond\x12\x14\n" + + "\x05level\x18\x06 \x01(\x05R\x05level\x12\x10\n" + + "\x03exp\x18\a \x01(\x05R\x03exp\x12$\n" + + "\x0estart_order_id\x18\b \x01(\tR\fstartOrderId\x12\x1d\n" + + "\n" + + "music_code\x18\t \x01(\x05R\tmusicCode\x12\x14\n" + + "\x05guild\x18\n" + + " \x01(\x05R\x05guild\x12*\n" + + "\x11pack_unlock_count\x18\v \x01(\x05R\x0fpackUnlockCount\x12$\n" + + "\x0elast_play_time\x18\f \x01(\x05R\flastPlayTime\x12&\n" + + "\x0eEnergyBuyCount\x18\r \x01(\x05R\x0eEnergyBuyCount\x12\x1b\n" + + "\tuser_name\x18\x0e \x01(\tR\buserName\x12\x1d\n" + + "\n" + + "login_time\x18\x0f \x01(\x05R\tloginTime\x12\x1f\n" + + "\vlogout_time\x18\x10 \x01(\x05R\n" + + "logoutTime\x12&\n" + + "\x0etodayolinetime\x18\x11 \x01(\x05R\x0etodayolinetime\x12&\n" + + "\x0erolecreatetime\x18\x12 \x01(\x05R\x0erolecreatetime\x12\"\n" + + "\fEmitOrderCnt\x18\x13 \x01(\x05R\fEmitOrderCnt\x12\x12\n" + + "\x04NoAd\x18\x14 \x01(\x05R\x04NoAd\x12,\n" + + "\x11ChampshipsGroupID\x18\x15 \x01(\x05R\x11ChampshipsGroupID\x12*\n" + + "\x10LastChampGroupID\x18\x16 \x01(\x05R\x10LastChampGroupID\x12\x1e\n" + + "\n" + + "FaceBookId\x18\x17 \x01(\tR\n" + + "FaceBookId\x12#\n" + + "\rregister_time\x18\x18 \x01(\x05R\fregisterTime\"\x10\n" + + "\x0eReqPlayerAsset\"\x95\x02\n" + + "\x0eResPlayerAsset\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + + "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + + "\x04star\x18\x03 \x01(\x05R\x04star\x12!\n" + + "\frecover_time\x18\x04 \x01(\x05R\vrecoverTime\x12\x18\n" + + "\adiamond\x18\x05 \x01(\x05R\adiamond\x12\x14\n" + + "\x05level\x18\x06 \x01(\x05R\x05level\x12\x10\n" + + "\x03exp\x18\a \x01(\x05R\x03exp\x12\x14\n" + + "\x05Login\x18\b \x01(\x05R\x05Login\x12\x16\n" + + "\x06Logout\x18\t \x01(\x05R\x06Logout\x12\x12\n" + + "\x04PExp\x18\n" + + " \x01(\x05R\x04PExp\x12\x1a\n" + + "\bLoginDay\x18\v \x01(\x05R\bLoginDay\"\xbb\x01\n" + + "\x12UpdateBaseItemInfo\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12O\n" + + "\vmUpdateItem\x18\x02 \x03(\v2-.tutorial.UpdateBaseItemInfo.MUpdateItemEntryR\vmUpdateItem\x1a>\n" + + "\x10MUpdateItemEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"G\n" + + "\x17NotifyRenewBuyEnergyCnt\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + + "\x06CurCnt\x18\x02 \x01(\x05R\x06CurCnt\"#\n" + + "\vReqRemoveAd\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"-\n" + + "\vResRemoveAd\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\"?\n" + + "\x0fNotifyAddEnergy\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + + "\x06addCnt\x18\x02 \x01(\x05R\x06addCnt\"%\n" + + "\rReqServerTime\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"/\n" + + "\rResServerTime\x12\x1e\n" + + "\n" + + "ServerTime\x18\x01 \x01(\x05R\n" + + "ServerTime\"*\n" + + "\x12ReqPlayerChessData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xf3\x01\n" + + "\x12ResPlayerChessData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12L\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2,.tutorial.ResPlayerChessData.MChessDataEntryR\n" + + "mChessData\x12\x1c\n" + + "\tChessList\x18\x03 \x03(\x05R\tChessList\x12\x1c\n" + + "\tChessBuff\x18\x04 \x03(\x05R\tChessBuff\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x87\x02\n" + + "\x12ResPlayerChessInfo\x12\x1c\n" + + "\tChessList\x18\x01 \x03(\x05R\tChessList\x12\x1c\n" + + "\tChessBuff\x18\x02 \x03(\x05R\tChessBuff\x12.\n" + + "\bChessBag\x18\x03 \x01(\v2\x12.tutorial.ChessBagR\bChessBag\x12\x1e\n" + + "\n" + + "RetireEmit\x18\x04 \x03(\tR\n" + + "RetireEmit\x12\x14\n" + + "\x05Honor\x18\x05 \x03(\x05R\x05Honor\x12+\n" + + "\aPartBag\x18\x06 \x01(\v2\x11.tutorial.PartBagR\aPartBag\x12\"\n" + + "\fRetireReward\x18\a \x03(\tR\fRetireReward\")\n" + + "\x17ReqGetChessRetireReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"c\n" + + "\x17ResGetChessRetireReward\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"D\n" + + "\aPartBag\x129\n" + + "\fPartBagGrids\x18\x01 \x03(\v2\x15.tutorial.PartBagGridR\fPartBagGrids\";\n" + + "\vPartBagGrid\x12\x16\n" + + "\x06PartId\x18\x01 \x01(\x05R\x06PartId\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\"\xb5\x01\n" + + "\x0fReqPutPartInBag\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12I\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2).tutorial.ReqPutPartInBag.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"K\n" + + "\x0fResPutPartInBag\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\x90\x01\n" + + "\vChessHandle\x12)\n" + + "\x04type\x18\x01 \x01(\x0e2\x15.tutorial.HANDLE_TYPER\x04type\x12\x12\n" + + "\x04Emit\x18\x02 \x01(\x05R\x04Emit\x12\x18\n" + + "\aChessId\x18\x03 \x01(\x05R\aChessId\x12\x0e\n" + + "\x02Id\x18\x04 \x01(\x05R\x02Id\x12\x18\n" + + "\aActType\x18\x05 \x03(\x05R\aActType\"\xf8\x01\n" + + "\x15UpdatePlayerChessData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12O\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2/.tutorial.UpdatePlayerChessData.MChessDataEntryR\n" + + "mChessData\x129\n" + + "\fmChessHandle\x18\x03 \x03(\v2\x15.tutorial.ChessHandleR\fmChessHandle\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"T\n" + + "\x18ResUpdatePlayerChessData\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb7\x01\n" + + "\x10ReqSeparateChess\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12J\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2*.tutorial.ReqSeparateChess.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + + "\x10ResSeparateChess\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb5\x01\n" + + "\x0fReqUpgradeChess\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12I\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2).tutorial.ReqUpgradeChess.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"K\n" + + "\x0fResUpgradeChess\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xbd\x01\n" + + "\x13ReqGetChessFromBuff\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12M\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2-.tutorial.ReqGetChessFromBuff.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"O\n" + + "\x13ResGetChessFromBuff\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb4\x02\n" + + "\n" + + "ReqChessEx\x12\x1e\n" + + "\n" + + "OldChessId\x18\x01 \x01(\x05R\n" + + "OldChessId\x12\x1e\n" + + "\n" + + "NewChessId\x18\x02 \x01(\x05R\n" + + "NewChessId\x12\x18\n" + + "\aCostDia\x18\x03 \x01(\x05R\aCostDia\x12+\n" + + "\x04Type\x18\x04 \x01(\x0e2\x17.tutorial.CHESS_EX_TYPER\x04Type\x12D\n" + + "\n" + + "mChessData\x18\x05 \x03(\v2$.tutorial.ReqChessEx.MChessDataEntryR\n" + + "mChessData\x12\x1a\n" + + "\bCostStar\x18\x06 \x01(\x05R\bCostStar\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"F\n" + + "\n" + + "ResChessEx\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb3\x01\n" + + "\x0eReqSourceChest\x12\x18\n" + + "\aChestId\x18\x01 \x01(\x05R\aChestId\x12H\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2(.tutorial.ReqSourceChest.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"J\n" + + "\x0eResSourceChest\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\x8f\x02\n" + + "\x12ReqPlayroomOutline\x12\x1e\n" + + "\n" + + "OldChessId\x18\x01 \x01(\x05R\n" + + "OldChessId\x12\x1e\n" + + "\n" + + "NewChessId\x18\x02 \x01(\x05R\n" + + "NewChessId\x12\x18\n" + + "\aCostDia\x18\x03 \x01(\x05R\aCostDia\x12\x12\n" + + "\x04Type\x18\x04 \x01(\x05R\x04Type\x12L\n" + + "\n" + + "mChessData\x18\x05 \x03(\v2,.tutorial.ReqPlayroomOutline.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + + "\x12ResPlayroomOutline\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\x8e\x01\n" + + "\bChessBag\x12<\n" + + "\rChessBagGrids\x18\x01 \x03(\v2\x16.tutorial.ChessBagGridR\rChessBagGrids\x12 \n" + + "\vChessBuyCnt\x18\x02 \x01(\x05R\vChessBuyCnt\x12\"\n" + + "\fChessFreeCnt\x18\x03 \x01(\x05R\fChessFreeCnt\"P\n" + + "\fChessBagGrid\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aChessId\x18\x02 \x01(\x05R\aChessId\x12\x16\n" + + "\x06EmitId\x18\x03 \x01(\x05R\x06EmitId\"\xe5\x01\n" + + "\x10ReqPutChessInBag\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12\x14\n" + + "\x05BagId\x18\x02 \x01(\x05R\x05BagId\x12\x16\n" + + "\x06EmitId\x18\x03 \x01(\x05R\x06EmitId\x12J\n" + + "\n" + + "mChessData\x18\x04 \x03(\v2*.tutorial.ReqPutChessInBag.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + + "\x10ResPutChessInBag\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xb7\x01\n" + + "\x12ReqTakeChessOutBag\x12\x14\n" + + "\x05BagId\x18\x01 \x01(\x05R\x05BagId\x12L\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2,.tutorial.ReqTakeChessOutBag.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + + "\x12ResTakeChessOutBag\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\x14\n" + + "\x12ReqBuyChessBagGrid\"N\n" + + "\x12ResBuyChessBagGrid\x12&\n" + + "\x04code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\",\n" + + "\x14ReqPlayerProfileData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xa2\x02\n" + + "\x14ResPlayerProfileData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + + "\n" + + "ImageFrame\x18\x02 \x01(\x05R\n" + + "ImageFrame\x12\x1c\n" + + "\tImageIcon\x18\x03 \x01(\x05R\tImageIcon\x12 \n" + + "\vDecorateCnt\x18\x04 \x01(\x05R\vDecorateCnt\x12\x1a\n" + + "\bNickName\x18\x05 \x01(\tR\bNickName\x12\x16\n" + + "\x06PicURL\x18\x06 \x01(\tR\x06PicURL\x12 \n" + + "\vUnlockFrame\x18\a \x01(\tR\vUnlockFrame\x12\x1e\n" + + "\n" + + "UnlockIcon\x18\b \x01(\tR\n" + + "UnlockIcon\x12\x1e\n" + + "\n" + + "ActiveTime\x18\t \x01(\x05R\n" + + "ActiveTime\"1\n" + + "\x19ReqPlayerBriefProfileData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xf1\x02\n" + + "\x19ResPlayerBriefProfileData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x1e\n" + + "\n" + + "ImageFrame\x18\x02 \x01(\x05R\n" + + "ImageFrame\x12\x1c\n" + + "\tImageIcon\x18\x03 \x01(\x05R\tImageIcon\x12 \n" + + "\vDecorateCnt\x18\x04 \x01(\x05R\vDecorateCnt\x12\x1a\n" + + "\bNickName\x18\x05 \x01(\tR\bNickName\x12\x16\n" + + "\x06PicURL\x18\x06 \x01(\tR\x06PicURL\x12\x1e\n" + + "\n" + + "ActiveTime\x18\a \x01(\x05R\n" + + "ActiveTime\x12M\n" + + "\bSetEmoji\x18\b \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + + "\rSetEmojiEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"/\n" + + "\x0fReqSetEnergyMul\x12\x1c\n" + + "\tEnergyMul\x18\x01 \x01(\x05R\tEnergyMul\"W\n" + + "\x0fResSetEnergyMul\x122\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"2\n" + + "\aReqLang\x12'\n" + + "\x04Lang\x18\x01 \x01(\x0e2\x13.tutorial.LANG_TYPER\x04Lang\"O\n" + + "\aResLang\x122\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xab\x01\n" + + "\bBaseInfo\x12\x1c\n" + + "\tEnergyMul\x18\x01 \x01(\x05R\tEnergyMul\x12\x1e\n" + + "\n" + + "IsFirstBuy\x18\x02 \x01(\bR\n" + + "IsFirstBuy\x12\x1c\n" + + "\tEnergyBuy\x18\x03 \x01(\x05R\tEnergyBuy\x12\x1a\n" + + "\bEnergyAD\x18\x04 \x01(\x05R\bEnergyAD\x12'\n" + + "\x04Lang\x18\x05 \x01(\x0e2\x13.tutorial.LANG_TYPER\x04Lang\"\r\n" + + "\vReqUserInfo\"\xfa\x03\n" + + "\bUserInfo\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x1a\n" + + "\bNickname\x18\x02 \x01(\tR\bNickname\x12\x16\n" + + "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x12\n" + + "\x04Face\x18\x04 \x01(\x05R\x04Face\x12 \n" + + "\vDecorateCnt\x18\x05 \x01(\x05R\vDecorateCnt\x124\n" + + "\n" + + "AvatarList\x18\x06 \x03(\v2\x14.tutorial.AvatarInfoR\n" + + "AvatarList\x12.\n" + + "\bFaceList\x18\a \x03(\v2\x12.tutorial.FaceInfoR\bFaceList\x12\x14\n" + + "\x05Login\x18\b \x01(\x05R\x05Login\x12\x18\n" + + "\aPetName\x18\t \x01(\tR\aPetName\x121\n" + + "\tEmojiList\x18\n" + + " \x03(\v2\x13.tutorial.EmojiInfoR\tEmojiList\x12<\n" + + "\bSetEmoji\x18\v \x03(\v2 .tutorial.UserInfo.SetEmojiEntryR\bSetEmoji\x12\x14\n" + + "\x05IdNum\x18\f \x01(\tR\x05IdNum\x12\x18\n" + + "\aAddCode\x18\r \x01(\tR\aAddCode\x1a;\n" + + "\rSetEmojiEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\" \n" + + "\n" + + "ReqSetName\x12\x12\n" + + "\x04Name\x18\x01 \x01(\tR\x04Name\"R\n" + + "\n" + + "ResSetName\x122\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"#\n" + + "\rReqSetPetName\x12\x12\n" + + "\x04Name\x18\x01 \x01(\tR\x04Name\"U\n" + + "\rResSetPetName\x122\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\n" + + "ResultCode\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"&\n" + + "\fReqBuyEnergy\x12\x16\n" + + "\x06Energy\x18\x01 \x01(\x05R\x06Energy\"H\n" + + "\fResBuyEnergy\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x12\n" + + "\x10ReqGetEnergyByAD\"L\n" + + "\x10ResGetEnergyByAD\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"0\n" + + "\x14ReqGetHandbookReward\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\"P\n" + + "\x14ResGetHandbookReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"@\n" + + "\fHandbookInfo\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\"Z\n" + + "\bHandbook\x124\n" + + "\tHandbooks\x18\x01 \x03(\v2\x16.tutorial.HandbookInfoR\tHandbooks\x12\x18\n" + + "\aCollect\x18\x02 \x03(\tR\aCollect\"*\n" + + "\x14RegHandbookAllReward\x12\x12\n" + + "\x04Type\x18\x01 \x01(\tR\x04Type\"P\n" + + "\x14ResHandbookAllReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xcd\x01\n" + + "\x0eReqRewardOrder\x12\x18\n" + + "\aOrderId\x18\x01 \x01(\x05R\aOrderId\x12H\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2(.tutorial.ReqRewardOrder.MChessDataEntryR\n" + + "mChessData\x12\x18\n" + + "\aActType\x18\x03 \x03(\x05R\aActType\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"J\n" + + "\x0eResRewardOrder\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x13\n" + + "\x11ReqCreatePetOrder\"'\n" + + "\vReqDelOrder\x12\x18\n" + + "\aOrderId\x18\x01 \x01(\x05R\aOrderId\"G\n" + + "\vResDelOrder\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + + "\x0fReqSellChessNum\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\"#\n" + + "\x0fResSellChessNum\x12\x10\n" + + "\x03Num\x18\x01 \x01(\x05R\x03Num\"o\n" + + "\x05Order\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aChessId\x18\x02 \x03(\x05R\aChessId\x12\x12\n" + + "\x04type\x18\x03 \x01(\x05R\x04type\x12(\n" + + "\x05Items\x18\x04 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"=\n" + + "\fResOrderList\x12-\n" + + "\tOrderList\x18\x01 \x03(\v2\x0f.tutorial.OrderR\tOrderList\"\x99\x01\n" + + "\x0fResDecorateInfo\x12\x16\n" + + "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\x12 \n" + + "\vmFinishList\x18\x02 \x03(\x05R\vmFinishList\x12\x1e\n" + + "\n" + + "RewardArea\x18\x03 \x03(\x05R\n" + + "RewardArea\x12,\n" + + "\x05Parts\x18\x04 \x03(\v2\x16.tutorial.DecoratePartR\x05Parts\"H\n" + + "\fDecoratePart\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + + "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"E\n" + + "\vReqDecorate\x12\x16\n" + + "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\x12\x1e\n" + + "\n" + + "DecorateId\x18\x02 \x01(\x05R\n" + + "DecorateId\"G\n" + + "\vResDecorate\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x10\n" + + "\x0eReqDecorateAll\"J\n" + + "\x0eResDecorateAll\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"'\n" + + "\rReqAreaReward\x12\x16\n" + + "\x06AreaId\x18\x01 \x01(\x05R\x06AreaId\"I\n" + + "\rResAreaReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"<\n" + + "\fReqGmCommand\x12\x18\n" + + "\aCommand\x18\x01 \x01(\tR\aCommand\x12\x12\n" + + "\x04args\x18\x02 \x01(\tR\x04args\",\n" + + "\x04Card\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\"\r\n" + + "\vReqCardInfo\"\xd3\x04\n" + + "\vResCardInfo\x12*\n" + + "\bCardList\x18\x01 \x03(\v2\x0e.tutorial.CardR\bCardList\x12\x16\n" + + "\x06ExStar\x18\x02 \x01(\x05R\x06ExStar\x12\x16\n" + + "\x06Status\x18\x03 \x01(\x05R\x06Status\x12\x1c\n" + + "\tCollectId\x18\x04 \x03(\x05R\tCollectId\x12\x18\n" + + "\aExTimes\x18\x05 \x01(\x05R\aExTimes\x12\x1a\n" + + "\bReqTimes\x18\x06 \x01(\x05R\bReqTimes\x12<\n" + + "\aAllCard\x18\a \x03(\v2\".tutorial.ResCardInfo.AllCardEntryR\aAllCard\x12\x18\n" + + "\aEndTime\x18\b \x01(\x05R\aEndTime\x12\x16\n" + + "\x06ReqUid\x18\t \x03(\x03R\x06ReqUid\x12\x14\n" + + "\x05ExUid\x18\n" + + " \x03(\x03R\x05ExUid\x12\x1c\n" + + "\tGoldTimes\x18\v \x01(\x05R\tGoldTimes\x12\x14\n" + + "\x05Round\x18\f \x01(\x05R\x05Round\x12?\n" + + "\bHandbook\x18\r \x03(\v2#.tutorial.ResCardInfo.HandbookEntryR\bHandbook\x12 \n" + + "\vSeasonFirst\x18\x0e \x01(\bR\vSeasonFirst\x1a:\n" + + "\fAllCardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + + "\rHandbookEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x96\x01\n" + + "\x12ResNotifyCardTimes\x12\x18\n" + + "\aExTimes\x18\x01 \x01(\x05R\aExTimes\x12\x1a\n" + + "\bReqTimes\x18\x02 \x01(\x05R\bReqTimes\x12\x16\n" + + "\x06ReqUid\x18\x03 \x03(\x03R\x06ReqUid\x12\x14\n" + + "\x05ExUid\x18\x04 \x03(\x03R\x05ExUid\x12\x1c\n" + + "\tGoldTimes\x18\x05 \x01(\x05R\tGoldTimes\"\x1a\n" + + "\x18ReqCardSeasonFirstReward\"T\n" + + "\x18ResCardSeasonFirstReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"/\n" + + "\x15ReqCardHandbookReward\x12\x16\n" + + "\x06CardId\x18\x01 \x01(\x05R\x06CardId\"i\n" + + "\x15ResCardHandbookReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x16\n" + + "\x06CardId\x18\x03 \x01(\x05R\x06CardId\"7\n" + + "\rReqMasterCard\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"}\n" + + "\rResMasterCard\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x1a\n" + + "\bMasterId\x18\x03 \x01(\x05R\bMasterId\x12\x16\n" + + "\x06CardId\x18\x04 \x01(\x05R\x06CardId\",\n" + + "\x14ReqCardCollectReward\x12\x14\n" + + "\x05Color\x18\x01 \x01(\x05R\x05Color\"P\n" + + "\x14ResCardCollectReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"!\n" + + "\x0fReqExStarReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + + "\x0fResExStarReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + + "\x13ReqAllCollectReward\"O\n" + + "\x13ResAllCollectReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"7\n" + + "\vReqCardGive\x12\x10\n" + + "\x03Uid\x18\x01 \x03(\x03R\x03Uid\x12\x16\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"G\n" + + "\vResCardGive\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + + "\x10ReqAgreeCardGive\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"\\\n" + + "\x10ResAgreeCardGive\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"#\n" + + "\x11ReqRefuseCardGive\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"]\n" + + "\x11ResRefuseCardGive\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"M\n" + + "\vReqCardSend\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"G\n" + + "\vResCardSend\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"Q\n" + + "\x0fReqCardExchange\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"K\n" + + "\x0fResCardExchange\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"?\n" + + "\x15ReqSelectCardExchange\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\x12\x16\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"a\n" + + "\x15ResSelectCardExchange\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"&\n" + + "\x14ReqAgreeCardExchange\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"v\n" + + "\x14ResAgreeCardExchange\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x14\n" + + "\x05Emoji\x18\x04 \x01(\x05R\x05Emoji\"%\n" + + "\x13ReqRefuseCardSelect\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"_\n" + + "\x13ResRefuseCardSelect\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"'\n" + + "\x15ReqRefuseCardExchange\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"a\n" + + "\x15ResRefuseCardExchange\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"\"\n" + + "\x10ReqGetFriendCard\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"\x8a\x01\n" + + "\x10ResGetFriendCard\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x16\n" + + "\x06CardId\x18\x04 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x05 \x01(\x05R\x05Emoji\"\x10\n" + + "\x0eReqGetGoldCard\"8\n" + + "\x0eResGetGoldCard\x12\x12\n" + + "\x04Four\x18\x01 \x01(\x05R\x04Four\x12\x12\n" + + "\x04Five\x18\x02 \x01(\x05R\x04Five\" \n" + + "\x0eReqGuideReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"J\n" + + "\x0eResGuideReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + + "\x10ReqGuidePlayroom\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"L\n" + + "\x10ResGuidePlayroom\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x85\x01\n" + + "\fResGuildInfo\x12:\n" + + "\x06Reward\x18\x01 \x03(\v2\".tutorial.ResGuildInfo.RewardEntryR\x06Reward\x1a9\n" + + "\vRewardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x85\x01\n" + + "\fResGuideInfo\x12:\n" + + "\x06Reward\x18\x01 \x03(\v2\".tutorial.ResGuideInfo.RewardEntryR\x06Reward\x1a9\n" + + "\vRewardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8e\x01\n" + + "\n" + + "ResItemPop\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + + "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x120\n" + + "\tCardPacks\x18\x03 \x03(\v2\x12.tutorial.CardPackR\tCardPacks\x12\x14\n" + + "\x05Lable\x18\x04 \x01(\tR\x05Lable\",\n" + + "\bItemInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Num\x18\x02 \x01(\x05R\x03Num\".\n" + + "\bCardPack\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Card\x18\x02 \x03(\x05R\x04Card\"\xee\x01\n" + + "\fResGuideTask\x12\"\n" + + "\fActiveReward\x18\x01 \x03(\x05R\fActiveReward\x124\n" + + "\x04Task\x18\x02 \x03(\v2 .tutorial.ResGuideTask.TaskEntryR\x04Task\x12\x16\n" + + "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x1e\n" + + "\n" + + "UnlockTime\x18\x04 \x01(\x05R\n" + + "UnlockTime\x1aL\n" + + "\tTaskEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + + "\x05value\x18\x02 \x01(\v2\x13.tutorial.GuideTaskR\x05value:\x028\x01\"h\n" + + "\tGuideTask\x12\x16\n" + + "\x06Status\x18\x01 \x01(\x05R\x06Status\x123\n" + + "\bProgress\x18\x02 \x01(\v2\x17.tutorial.QuestProgressR\bProgress\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"'\n" + + "\x15ReqGetGuideTaskReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"a\n" + + "\x15ResGetGuideTaskReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\")\n" + + "\x17ReqGetGuideActiveReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"c\n" + + "\x17ResGetGuideActiveReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x8c\x03\n" + + "\fResDailyTask\x12F\n" + + "\n" + + "WeekReward\x18\x01 \x03(\v2&.tutorial.ResDailyTask.WeekRewardEntryR\n" + + "WeekReward\x12C\n" + + "\tDailyTask\x18\x02 \x03(\v2%.tutorial.ResDailyTask.DailyTaskEntryR\tDailyTask\x12\x16\n" + + "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x16\n" + + "\x06DayEnd\x18\x04 \x01(\x05R\x06DayEnd\x12\x18\n" + + "\aWeekEnd\x18\x05 \x01(\x05R\aWeekEnd\x1aR\n" + + "\x0fWeekRewardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + + "\x05value\x18\x02 \x01(\v2\x13.tutorial.DailyWeekR\x05value:\x028\x01\x1aQ\n" + + "\x0eDailyTaskEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12)\n" + + "\x05value\x18\x02 \x01(\v2\x13.tutorial.DailyTaskR\x05value:\x028\x01\"m\n" + + "\tDailyWeek\x12(\n" + + "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x16\n" + + "\x06Status\x18\x02 \x01(\bR\x06Status\x12\x1e\n" + + "\n" + + "NeedActive\x18\x03 \x01(\x05R\n" + + "NeedActive\"\xc0\x01\n" + + "\tDailyTask\x12\x16\n" + + "\x06Status\x18\x01 \x01(\x05R\x06Status\x12\x16\n" + + "\x06UnLock\x18\x02 \x01(\bR\x06UnLock\x123\n" + + "\bProgress\x18\x03 \x01(\v2\x17.tutorial.QuestProgressR\bProgress\x12(\n" + + "\x05Items\x18\x04 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x0e\n" + + "\x02Id\x18\x05 \x01(\x05R\x02Id\x12\x14\n" + + "\x05Index\x18\x06 \x01(\x05R\x05Index\"}\n" + + "\rQuestProgress\x12\x14\n" + + "\x05Label\x18\x01 \x01(\tR\x05Label\x12\x10\n" + + "\x03Num\x18\x02 \x01(\x05R\x03Num\x12\x16\n" + + "\x06Target\x18\x03 \x01(\x05R\x06Target\x12\x16\n" + + "\x06Status\x18\x04 \x01(\bR\x06Status\x12\x14\n" + + "\x05Param\x18\x05 \x01(\x05R\x05Param\"'\n" + + "\x15ReqGetDailyTaskReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"Q\n" + + "\x15ResGetDailyTaskReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"'\n" + + "\x15ReqGetDailyWeekReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"Q\n" + + "\x15ResGetDailyWeekReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x10\n" + + "\x0eReqDailyUnlock\"J\n" + + "\x0eResDailyUnlock\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"S\n" + + "\vResFaceInfo\x12.\n" + + "\bFaceList\x18\x01 \x03(\v2\x12.tutorial.FaceInfoR\bFaceList\x12\x14\n" + + "\x05SetId\x18\x02 \x01(\x05R\x05SetId\"N\n" + + "\bFaceInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\" \n" + + "\n" + + "ReqSetFace\x12\x12\n" + + "\x04Face\x18\x01 \x01(\x05R\x04Face\"F\n" + + "\n" + + "ResSetFace\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"[\n" + + "\rResAvatarInfo\x124\n" + + "\n" + + "AvatarList\x18\x01 \x03(\v2\x14.tutorial.AvatarInfoR\n" + + "AvatarList\x12\x14\n" + + "\x05SetId\x18\x02 \x01(\x05R\x05SetId\"P\n" + + "\n" + + "AvatarInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\"&\n" + + "\fReqSetAvatar\x12\x16\n" + + "\x06Avatar\x18\x01 \x01(\x05R\x06Avatar\"H\n" + + "\fResSetAvatar\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"O\n" + + "\tEmojiInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\"1\n" + + "\vReqSetEmoji\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\"G\n" + + "\vResSetEmoji\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xb9\x01\n" + + "\rResSevenLogin\x12:\n" + + "\n" + + "WeekReward\x18\x01 \x03(\v2\x1a.tutorial.SevenLoginRewardR\n" + + "WeekReward\x12<\n" + + "\vMonthReward\x18\x02 \x03(\v2\x1a.tutorial.SevenLoginRewardR\vMonthReward\x12\x16\n" + + "\x06Active\x18\x03 \x01(\x05R\x06Active\x12\x16\n" + + "\x06IsBack\x18\x04 \x01(\bR\x06IsBack\"\xb8\x01\n" + + "\x10SevenLoginReward\x12(\n" + + "\x05Item1\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Item1\x12(\n" + + "\x05Item2\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Item2\x12(\n" + + "\x05Item3\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Item3\x12\x16\n" + + "\x06Status\x18\x04 \x01(\x05R\x06Status\x12\x0e\n" + + "\x02Id\x18\x05 \x01(\x05R\x02Id\"(\n" + + "\x16ReqGetSevenLoginReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"R\n" + + "\x16ResGetSevenLoginReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"(\n" + + "\x16ReqGetMonthLoginReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"R\n" + + "\x16ResGetMonthLoginReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"E\n" + + "\vResActivity\x126\n" + + "\n" + + "ActiveList\x18\x01 \x03(\v2\x16.tutorial.ActivityInfoR\n" + + "ActiveList\"\xaa\x01\n" + + "\fActivityInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x1c\n" + + "\tStartTime\x18\x03 \x01(\x05R\tStartTime\x12\x18\n" + + "\aEndTime\x18\x04 \x01(\x05R\aEndTime\x12\x16\n" + + "\x06Status\x18\x05 \x01(\x05R\x06Status\x12\x14\n" + + "\x05Title\x18\x06 \x01(\tR\x05Title\x12\x10\n" + + "\x03Red\x18\a \x01(\x05R\x03Red\"#\n" + + "\x11ReqActivityReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"M\n" + + "\x11ResActivityReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + + "\rReqLimitEvent\"\xbd\x01\n" + + "\rResLimitEvent\x12S\n" + + "\x0eLimitEventList\x18\x01 \x03(\v2+.tutorial.ResLimitEvent.LimitEventListEntryR\x0eLimitEventList\x1aW\n" + + "\x13LimitEventListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12*\n" + + "\x05value\x18\x02 \x01(\v2\x14.tutorial.LimitEventR\x05value:\x028\x01\"\xf5\x01\n" + + "\x15ResLimitEventProgress\x12 \n" + + "\vProgressMax\x18\x01 \x01(\x05R\vProgressMax\x12\x1a\n" + + "\bProgress\x18\x02 \x01(\x05R\bProgress\x12[\n" + + "\x0eProgressReward\x18\x03 \x03(\v23.tutorial.ResLimitEventProgress.ProgressRewardEntryR\x0eProgressReward\x1aA\n" + + "\x13ProgressRewardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"%\n" + + "\x13ReqLimitEventReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"O\n" + + "\x13ResLimitEventReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"%\n" + + "\x13ReqSelectLimitEvent\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"O\n" + + "\x13ResSelectLimitEvent\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xf3\x01\n" + + "\n" + + "LimitEvent\x12\x18\n" + + "\aEndTime\x18\x01 \x01(\x05R\aEndTime\x12\x0e\n" + + "\x02Cd\x18\x02 \x01(\x05R\x02Cd\x12\x10\n" + + "\x03mul\x18\x03 \x01(\x02R\x03mul\x12\x1c\n" + + "\tStartTime\x18\x04 \x01(\x05R\tStartTime\x125\n" + + "\x05Param\x18\x05 \x03(\v2\x1f.tutorial.LimitEvent.ParamEntryR\x05Param\x12\x1a\n" + + "\bShowTime\x18\x06 \x01(\x05R\bShowTime\x1a8\n" + + "\n" + + "ParamEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"`\n" + + "\x10LimitEventNotify\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x0e\n" + + "\x02Cd\x18\x04 \x01(\x05R\x02Cd\"\xc1\x01\n" + + "\x15ReqLimitEventLuckyCat\x12\x18\n" + + "\aChessId\x18\x01 \x01(\x05R\aChessId\x12O\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2/.tutorial.ReqLimitEventLuckyCat.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"Q\n" + + "\x15ResLimitEventLuckyCat\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + + "\x13ReqLimitSenceReward\"O\n" + + "\x13ResLimitSenceReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"N\n" + + "\x12ResChessRainReward\x12(\n" + + "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x0e\n" + + "\x02Id\x18\x02 \x01(\x05R\x02Id\"\x14\n" + + "\x12ReqFastProduceInfo\"X\n" + + "\x12ResFastProduceInfo\x12\x16\n" + + "\x06Energy\x18\x01 \x01(\x05R\x06Energy\x12\x10\n" + + "\x03Num\x18\x02 \x01(\x05R\x03Num\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x03R\aEndTime\".\n" + + "\x14ReqFastProduceReward\x12\x16\n" + + "\x06Energy\x18\x01 \x01(\x05R\x06Energy\"|\n" + + "\x14ResFastProduceReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x03R\aEndTime\x12\x10\n" + + "\x03Num\x18\x04 \x01(\x05R\x03Num\"\x13\n" + + "\x11ReqCatTrickReward\"g\n" + + "\x11ResCatTrickReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + + "\aIsClose\x18\x03 \x01(\bR\aIsClose\"#\n" + + "\x0fReqSearchPlayer\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\tR\x03Uid\"T\n" + + "\x0fResSearchPlayer\x12\x12\n" + + "\x04Code\x18\x01 \x01(\x05R\x04Code\x12-\n" + + "\x04List\x18\x02 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\")\n" + + "\x15ReqFriendPlayerSimple\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x93\a\n" + + "\x15ResFriendPlayerSimple\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + + "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x1a\n" + + "\bDecorate\x18\x06 \x01(\x05R\bDecorate\x12\x14\n" + + "\x05login\x18\a \x01(\x05R\x05login\x12\x1a\n" + + "\bloginout\x18\b \x01(\x05R\bloginout\x12\x1a\n" + + "\bFacebook\x18\t \x01(\tR\bFacebook\x12@\n" + + "\x05Emoji\x18\n" + + " \x03(\v2*.tutorial.ResFriendPlayerSimple.EmojiEntryR\x05Emoji\x12\x18\n" + + "\aAddTime\x18\v \x01(\x03R\aAddTime\x12\x1a\n" + + "\bInteract\x18\f \x01(\x03R\bInteract\x12I\n" + + "\bPlayroom\x18\r \x03(\v2-.tutorial.ResFriendPlayerSimple.PlayroomEntryR\bPlayroom\x12I\n" + + "\bDressSet\x18\x0e \x03(\v2-.tutorial.ResFriendPlayerSimple.DressSetEntryR\bDressSet\x12\x16\n" + + "\x06Friend\x18\x0f \x03(\x05R\x06Friend\x12$\n" + + "\x04Last\x18\x10 \x01(\v2\x10.tutorial.ActLogR\x04Last\x12O\n" + + "\n" + + "Physiology\x18\x11 \x03(\v2/.tutorial.ResFriendPlayerSimple.PhysiologyEntryR\n" + + "Physiology\x12\x18\n" + + "\aPetName\x18\x12 \x01(\tR\aPetName\x1a8\n" + + "\n" + + "EmojiEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + + "\rPlayroomEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + + "\rDressSetEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + + "\x0fPhysiologyEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8f\x03\n" + + "\x0fResPlayerSimple\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + + "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x1a\n" + + "\bDecorate\x18\x06 \x01(\x05R\bDecorate\x12\x14\n" + + "\x05login\x18\a \x01(\x05R\x05login\x12\x1a\n" + + "\bloginout\x18\b \x01(\x05R\bloginout\x12\x1a\n" + + "\bFacebook\x18\t \x01(\tR\bFacebook\x12:\n" + + "\x05Emoji\x18\n" + + " \x03(\v2$.tutorial.ResPlayerSimple.EmojiEntryR\x05Emoji\x12\x18\n" + + "\aAddTime\x18\v \x01(\x03R\aAddTime\x12\x1a\n" + + "\bInteract\x18\f \x01(\x03R\bInteract\x1a8\n" + + "\n" + + "EmojiEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"F\n" + + "\x06ActLog\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x14\n" + + "\x05Param\x18\x03 \x01(\tR\x05Param\"\xa1\x01\n" + + "\rResPlayerRank\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + + "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x14\n" + + "\x05score\x18\x06 \x01(\x02R\x05score\x12\x12\n" + + "\x04type\x18\a \x01(\x05R\x04type\"\xa7\x01\n" + + "\fResFriendLog\x121\n" + + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\x12\x14\n" + + "\x05Param\x18\x04 \x01(\tR\x05Param\x12\x0e\n" + + "\x02Id\x18\x05 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Upvote\x18\x06 \x01(\bR\x06Upvote\"q\n" + + "\x0fNotifyFriendLog\x12*\n" + + "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x122\n" + + "\x06Bubble\x18\x02 \x01(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"`\n" + + "\x10FriendBubbleInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12(\n" + + "\x05Items\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"?\n" + + "\x10NotifyFriendCard\x12+\n" + + "\x04Info\x18\x01 \x01(\v2\x17.tutorial.ResFriendCardR\x04Info\"\x91\x02\n" + + "\rResFriendCard\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + + "\x05Level\x18\x05 \x01(\x05R\x05Level\x12\x12\n" + + "\x04Type\x18\x06 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Time\x18\a \x01(\x05R\x04Time\x12\x16\n" + + "\x06CardId\x18\b \x01(\x05R\x06CardId\x12\x1a\n" + + "\bExCardId\x18\t \x01(\x05R\bExCardId\x12\x16\n" + + "\x06Status\x18\n" + + " \x01(\x05R\x06Status\x12\x0e\n" + + "\x02Id\x18\v \x01(\tR\x02Id\x12\x14\n" + + "\x05Emoji\x18\f \x01(\x05R\x05Emoji\"/\n" + + "\x05ReqKv\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"g\n" + + "\x05ResKv\x12'\n" + + "\x02kv\x18\x01 \x03(\v2\x17.tutorial.ResKv.KvEntryR\x02kv\x1a5\n" + + "\aKvEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"%\n" + + "\x0fReqFriendByCode\x12\x12\n" + + "\x04Code\x18\x01 \x01(\tR\x04Code\"~\n" + + "\x0fResFriendByCode\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x121\n" + + "\x06Player\x18\x03 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"\x14\n" + + "\x12ReqFriendRecommend\"C\n" + + "\x12ResFriendRecommend\x12-\n" + + "\x04List\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\"#\n" + + "\x0fReqFriendIgnore\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"K\n" + + "\x0fResFriendIgnore\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + + "\rReqFriendList\"\x9a\x01\n" + + "\rResFriendList\x129\n" + + "\n" + + "FriendList\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\n" + + "FriendList\x12\"\n" + + "\fReqApplyList\x18\x02 \x03(\x03R\fReqApplyList\x12\x10\n" + + "\x03Npc\x18\x03 \x03(\x05R\x03Npc\x12\x18\n" + + "\aSponsor\x18\x04 \x01(\x05R\aSponsor\"!\n" + + "\tReqAddNpc\x12\x14\n" + + "\x05NpcId\x18\x01 \x01(\x05R\x05NpcId\"[\n" + + "\tResAddNpc\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x14\n" + + "\x05NpcId\x18\x03 \x01(\x05R\x05NpcId\"\x10\n" + + "\x0eReqFriendApply\"L\n" + + "\x0eResFriendApply\x12:\n" + + "\tApplyList\x18\x01 \x03(\v2\x1c.tutorial.ResFriendApplyInfoR\tApplyList\"[\n" + + "\x12ResFriendApplyInfo\x121\n" + + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + + "\x04Time\x18\x02 \x01(\x05R\x04Time\"\x12\n" + + "\x10ReqFriendCardMsg\"E\n" + + "\x10ResFriendCardMsg\x121\n" + + "\aMsgList\x18\x01 \x03(\v2\x17.tutorial.ResFriendCardR\aMsgList\"\x12\n" + + "\x10ReqWishApplyList\"N\n" + + "\x10ResWishApplyList\x12:\n" + + "\tApplyList\x18\x01 \x03(\v2\x1c.tutorial.ResFriendApplyInfoR\tApplyList\" \n" + + "\fReqWishApply\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"Z\n" + + "\fResWishApply\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\x13\n" + + "\x11ReqFriendTimeLine\"m\n" + + "\x11ResFriendTimeLine\x12(\n" + + "\x03Log\x18\x01 \x03(\v2\x16.tutorial.ResFriendLogR\x03Log\x12.\n" + + "\x05Reply\x18\x02 \x03(\v2\x18.tutorial.ResFriendReplyR\x05Reply\"\xf3\x01\n" + + "\x0eResFriendReply\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x14\n" + + "\x05Param\x18\x03 \x01(\tR\x05Param\x12\x16\n" + + "\x06Status\x18\x04 \x01(\x05R\x06Status\x12\x18\n" + + "\aAddTime\x18\x05 \x01(\x03R\aAddTime\x12\x18\n" + + "\aEndTime\x18\x06 \x01(\x03R\aEndTime\x121\n" + + "\x06Player\x18\a \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12(\n" + + "\x05Items\x18\b \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"V\n" + + "\x14ReqFriendReplyHandle\x12\x14\n" + + "\x05LogId\x18\x01 \x01(\x05R\x05LogId\x12\x14\n" + + "\x05Param\x18\x02 \x01(\tR\x05Param\x12\x12\n" + + "\x04Type\x18\x03 \x01(\x05R\x04Type\"\xbc\x01\n" + + "\x14ResFriendReplyHandle\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x14\n" + + "\x05LogId\x18\x03 \x01(\x05R\x05LogId\x12\x12\n" + + "\x04Type\x18\x04 \x01(\x05R\x04Type\x12@\n" + + "\aErrType\x18\x05 \x01(\x0e2&.tutorial.FRIEND_REPLY_HANDLE_ERR_TYPER\aErrType\"E\n" + + "\x0fResFriendBubble\x122\n" + + "\x06Bubble\x18\x01 \x03(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"#\n" + + "\x11ReqFriendTLUpvote\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"]\n" + + "\x11ResFriendTLUpvote\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"\"\n" + + "\x10ReqFriendTReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"\\\n" + + "\x10ResFriendTReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"q\n" + + "\x14ResFriendApplyNotify\x121\n" + + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\"q\n" + + "\x14ResFriendReplyNotify\x121\n" + + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\"6\n" + + "\x0eReqApplyFriend\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\"\\\n" + + "\x0eResApplyFriend\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\"\n" + + "\x0eReqAgreeFriend\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x8f\x01\n" + + "\x0eResAgreeFriend\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\x121\n" + + "\x06Player\x18\x04 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"#\n" + + "\x0fReqRefuseFriend\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"]\n" + + "\x0fResRefuseFriend\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\" \n" + + "\fReqDelFriend\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"Z\n" + + "\fResDelFriend\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"\x1d\n" + + "\aReqRank\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\"\xe4\x01\n" + + "\aResRank\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12;\n" + + "\bRankList\x18\x02 \x03(\v2\x1f.tutorial.ResRank.RankListEntryR\bRankList\x12\x16\n" + + "\x06MyRank\x18\x03 \x01(\x05R\x06MyRank\x12\x18\n" + + "\aMyScore\x18\x04 \x01(\x02R\aMyScore\x1aV\n" + + "\rRankListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12/\n" + + "\x05value\x18\x02 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x05value:\x028\x01\"\r\n" + + "\vReqMailList\"\x9f\x01\n" + + "\vResMailList\x12?\n" + + "\bMailList\x18\x01 \x03(\v2#.tutorial.ResMailList.MailListEntryR\bMailList\x1aO\n" + + "\rMailListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + + "\x05value\x18\x02 \x01(\v2\x12.tutorial.MailInfoR\x05value:\x028\x01\"\x8c\x03\n" + + "\bMailInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + + "\x05Title\x18\x02 \x01(\tR\x05Title\x12\x18\n" + + "\aContent\x18\x03 \x01(\tR\aContent\x12\x12\n" + + "\x04Time\x18\x04 \x01(\x05R\x04Time\x12\x16\n" + + "\x06Status\x18\x05 \x01(\x05R\x06Status\x12(\n" + + "\x05Items\x18\x06 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x12\x12\n" + + "\x04Type\x18\a \x01(\x05R\x04Type\x12\x18\n" + + "\aTitleEn\x18\b \x01(\tR\aTitleEn\x12\x1c\n" + + "\tContentEn\x18\t \x01(\tR\tContentEn\x12\x1a\n" + + "\bSubTitle\x18\n" + + " \x01(\tR\bSubTitle\x12\x1e\n" + + "\n" + + "SubTitleEn\x18\v \x01(\tR\n" + + "SubTitleEn\x12\x1c\n" + + "\tTitlePtBr\x18\f \x01(\tR\tTitlePtBr\x12 \n" + + "\vContentPtBr\x18\r \x01(\tR\vContentPtBr\x12\"\n" + + "\fSubTitlePtBr\x18\x0e \x01(\tR\fSubTitlePtBr\"4\n" + + "\n" + + "MailNotify\x12&\n" + + "\x04Info\x18\x01 \x01(\v2\x12.tutorial.MailInfoR\x04Info\"\x1d\n" + + "\vReqReadMail\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"W\n" + + "\vResReadMail\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"\"\n" + + "\x10ReqGetMailReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"\\\n" + + "\x10ResGetMailReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x1f\n" + + "\rReqDeleteMail\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"Y\n" + + "\rResDeleteMail\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"\x85\b\n" + + "\tResCharge\x12\x16\n" + + "\x06Charge\x18\x01 \x01(\x02R\x06Charge\x12\x14\n" + + "\x05Total\x18\x02 \x01(\x05R\x05Total\x12\x14\n" + + "\x05First\x18\x03 \x03(\x05R\x05First\x12F\n" + + "\vSpecialShop\x18\x04 \x03(\v2$.tutorial.ResCharge.SpecialShopEntryR\vSpecialShop\x12\x1a\n" + + "\bFreeShop\x18\x05 \x01(\x05R\bFreeShop\x12@\n" + + "\tChessShop\x18\x06 \x03(\v2\".tutorial.ResCharge.ChessShopEntryR\tChessShop\x121\n" + + "\x04Gift\x18\a \x03(\v2\x1d.tutorial.ResCharge.GiftEntryR\x04Gift\x12\x0e\n" + + "\x02Ad\x18\b \x01(\bR\x02Ad\x12&\n" + + "\x04Wish\x18\t \x01(\v2\x12.tutorial.WishListR\x04Wish\x12$\n" + + "\rSpecialCharge\x18\n" + + " \x01(\x02R\rSpecialCharge\x12,\n" + + "\x11SpecialChargeWeek\x18\v \x01(\x05R\x11SpecialChargeWeek\x12 \n" + + "\vTodayCharge\x18\f \x01(\x02R\vTodayCharge\x12 \n" + + "\vMonthCharge\x18\r \x01(\x02R\vMonthCharge\x12\x1c\n" + + "\tAdEndTime\x18\x0e \x01(\x03R\tAdEndTime\x12O\n" + + "\x0eWeeklyDiscount\x18\x0f \x03(\v2'.tutorial.ResCharge.WeeklyDiscountEntryR\x0eWeeklyDiscount\x12,\n" + + "\x11PetWorkRemainTime\x18\x10 \x01(\x03R\x11PetWorkRemainTime\x12$\n" + + "\rWeeklyEndTime\x18\x11 \x01(\x03R\rWeeklyEndTime\x1aX\n" + + "\x10SpecialShopEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12.\n" + + "\x05value\x18\x02 \x01(\v2\x18.tutorial.ResSpecialShopR\x05value:\x028\x01\x1aT\n" + + "\x0eChessShopEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12,\n" + + "\x05value\x18\x02 \x01(\v2\x16.tutorial.ResChessShopR\x05value:\x028\x01\x1a7\n" + + "\tGiftEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a_\n" + + "\x13WeeklyDiscountEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x122\n" + + "\x05value\x18\x02 \x01(\v2\x1c.tutorial.WeeklyDiscountInfoR\x05value:\x028\x01\"K\n" + + "\rLogoutPetWork\x12\x1a\n" + + "\bWorkTime\x18\x01 \x01(\x03R\bWorkTime\x12\x1e\n" + + "\n" + + "RemainTime\x18\x02 \x01(\x03R\n" + + "RemainTime\"V\n" + + "\x12WeeklyDiscountInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x1a\n" + + "\bDiscount\x18\x03 \x01(\x05R\bDiscount\"B\n" + + "\bWishList\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x10\n" + + "\x03Uid\x18\x03 \x03(\x03R\x03Uid\"0\n" + + "\n" + + "ReqAddWish\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\"F\n" + + "\n" + + "ResAddWish\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + + "\n" + + "ReqGetWish\"F\n" + + "\n" + + "ResGetWish\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\"\n" + + "\x0eReqSendWishBeg\x12\x10\n" + + "\x03Uid\x18\x01 \x03(\x03R\x03Uid\"J\n" + + "\x0eResSendWishBeg\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"<\n" + + "\x0eResSpecialShop\x12\x14\n" + + "\x05Grade\x18\x01 \x01(\x05R\x05Grade\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\"X\n" + + "\fResChessShop\x12\x18\n" + + "\aDiamond\x18\x01 \x01(\x05R\aDiamond\x12\x14\n" + + "\x05Count\x18\x02 \x01(\x05R\x05Count\x12\x18\n" + + "\aChessId\x18\x03 \x01(\x05R\aChessId\"\r\n" + + "\vReqFreeShop\"G\n" + + "\vResFreeShop\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"!\n" + + "\x0fReqBuyChessShop\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + + "\x0fResBuyChessShop\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\xad\x01\n" + + "\x10ReqBuyChessShop2\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12J\n" + + "\n" + + "mChessData\x18\x02 \x03(\v2*.tutorial.ReqBuyChessShop2.MChessDataEntryR\n" + + "mChessData\x1a=\n" + + "\x0fMChessDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"L\n" + + "\x10ResBuyChessShop2\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + + "\x13ReqRefreshChessShop\"O\n" + + "\x13ResRefreshChessShop\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + + "\n" + + "ReqEndless\"\xbf\x01\n" + + "\n" + + "ResEndless\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12G\n" + + "\vEndlessList\x18\x02 \x03(\v2%.tutorial.ResEndless.EndlessListEntryR\vEndlessList\x1aX\n" + + "\x10EndlessListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12.\n" + + "\x05value\x18\x02 \x01(\v2\x18.tutorial.ResEndlessInfoR\x05value:\x028\x01\"j\n" + + "\x0eResEndlessInfo\x12\x1a\n" + + "\bChargeId\x18\x01 \x01(\x05R\bChargeId\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12(\n" + + "\x05Items\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"\x12\n" + + "\x10ReqEndlessReward\"L\n" + + "\x10ResEndlessReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"l\n" + + "\fResPiggyBank\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x18\n" + + "\aDiamond\x18\x02 \x01(\x05R\aDiamond\x12\x14\n" + + "\x05Count\x18\x03 \x01(\x05R\x05Count\x12\x18\n" + + "\aEndTime\x18\x04 \x01(\x05R\aEndTime\"\x14\n" + + "\x12ReqPiggyBankReward\"N\n" + + "\x12ResPiggyBankReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\">\n" + + "\x10ReqChargeReceive\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + + "\aContent\x18\x02 \x01(\tR\aContent\"L\n" + + "\x10ResChargeReceive\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x8a\x01\n" + + "\x10ReqCreateOrderSn\x12\x1a\n" + + "\bChargeId\x18\x01 \x01(\x05R\bChargeId\x12\x1a\n" + + "\bPlatForm\x18\x02 \x01(\tR\bPlatForm\x12\x18\n" + + "\achannel\x18\x03 \x01(\tR\achannel\x12\x12\n" + + "\x04Type\x18\x04 \x01(\x05R\x04Type\x12\x10\n" + + "\x03Uid\x18\x05 \x01(\x03R\x03Uid\",\n" + + "\x10ResCreateOrderSn\x12\x18\n" + + "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\"x\n" + + "\x10ReqShippingOrder\x12\x18\n" + + "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\x12\x1c\n" + + "\tProduceId\x18\x02 \x01(\tR\tProduceId\x12\x14\n" + + "\x05Token\x18\x03 \x01(\tR\x05Token\x12\x16\n" + + "\x06Status\x18\x04 \x01(\x05R\x06Status\"L\n" + + "\x10ResShippingOrder\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0e\n" + + "\fReqChampship\"\xba\x01\n" + + "\fResChampship\x12\x14\n" + + "\x05Score\x18\x01 \x01(\x05R\x05Score\x12\x16\n" + + "\x06Reward\x18\x02 \x01(\x05R\x06Reward\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x16\n" + + "\x06Period\x18\x04 \x01(\x05R\x06Period\x12\x12\n" + + "\x04Rank\x18\x05 \x01(\x05R\x04Rank\x12\x1e\n" + + "\n" + + "RankReward\x18\x06 \x01(\x05R\n" + + "RankReward\x12\x16\n" + + "\x06Status\x18\a \x01(\x05R\x06Status\"\x14\n" + + "\x12ReqChampshipReward\"N\n" + + "\x12ResChampshipReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x18\n" + + "\x16ReqChampshipRankReward\"R\n" + + "\x16ResChampshipRankReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x12\n" + + "\x10ReqChampshipRank\"\xe0\x01\n" + + "\x10ResChampshipRank\x12D\n" + + "\bRankList\x18\x01 \x03(\v2(.tutorial.ResChampshipRank.RankListEntryR\bRankList\x12\x16\n" + + "\x06MyRank\x18\x02 \x01(\x05R\x06MyRank\x12\x18\n" + + "\aMyScore\x18\x03 \x01(\x02R\aMyScore\x1aT\n" + + "\rRankListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + + "\x05value\x18\x02 \x01(\v2\x17.tutorial.ResPlayerRankR\x05value:\x028\x01\"\x15\n" + + "\x13ReqChampshipPreRank\"\xe6\x01\n" + + "\x13ResChampshipPreRank\x12G\n" + + "\bRankList\x18\x01 \x03(\v2+.tutorial.ResChampshipPreRank.RankListEntryR\bRankList\x12\x16\n" + + "\x06MyRank\x18\x02 \x01(\x05R\x06MyRank\x12\x18\n" + + "\aMyScore\x18\x03 \x01(\x02R\aMyScore\x1aT\n" + + "\rRankListEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + + "\x05value\x18\x02 \x01(\v2\x17.tutorial.ResPlayerRankR\x05value:\x028\x01\"\x8f\x03\n" + + "\rResNotifyCard\x125\n" + + "\x04Card\x18\x01 \x03(\v2!.tutorial.ResNotifyCard.CardEntryR\x04Card\x12;\n" + + "\x06Master\x18\x02 \x03(\v2#.tutorial.ResNotifyCard.MasterEntryR\x06Master\x12\x16\n" + + "\x06ExStar\x18\x03 \x01(\x05R\x06ExStar\x12A\n" + + "\bHandbook\x18\x04 \x03(\v2%.tutorial.ResNotifyCard.HandbookEntryR\bHandbook\x1a7\n" + + "\tCardEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a9\n" + + "\vMasterEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + + "\rHandbookEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"%\n" + + "\x11ReqSetFacebookUrl\x12\x10\n" + + "\x03Url\x18\x01 \x01(\tR\x03Url\"M\n" + + "\x11ResSetFacebookUrl\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + + "\x13ReqInviteFriendData\x12\x14\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"K\n" + + "\x13ResInviteFriendData\x12\x18\n" + + "\aIdLists\x18\x01 \x03(\x05R\aIdLists\x12\x1a\n" + + "\bGetIndex\x18\x02 \x01(\x05R\bGetIndex\".\n" + + "\x0eReqSelfInvited\x12\x1c\n" + + "\tInviterId\x18\x01 \x01(\x03R\tInviterId\"0\n" + + "\x0eResSelfInvited\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\"P\n" + + "\x14NotifyInvitedSuccess\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\x12\x18\n" + + "\aIdLists\x18\x02 \x03(\x05R\aIdLists\"0\n" + + "\x12ReqGetInviteReward\x12\x1a\n" + + "\bGetIndex\x18\x01 \x01(\x05R\bGetIndex\"4\n" + + "\x12ResGetInviteReward\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\"(\n" + + "\x16ReqAutoAddInviteFriend\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\"8\n" + + "\x16ResAutoAddInviteFriend\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\")\n" + + "\x17ReqAutoAddInviteFriend2\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"9\n" + + "\x17ResAutoAddInviteFriend2\x12\x1e\n" + + "\n" + + "ResultCode\x18\x01 \x01(\x05R\n" + + "ResultCode\"\v\n" + + "\tReqMining\"\x8f\x02\n" + + "\tResMining\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + + "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x12\x10\n" + + "\x03Gem\x18\x06 \x03(\x05R\x03Gem\x12.\n" + + "\x03Map\x18\a \x03(\v2\x1c.tutorial.ResMining.MapEntryR\x03Map\x12\x16\n" + + "\x06Mining\x18\b \x01(\x05R\x06Mining\x1a6\n" + + "\bMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x8d\x01\n" + + "\rReqMiningTake\x122\n" + + "\x03Map\x18\x01 \x03(\v2 .tutorial.ReqMiningTake.MapEntryR\x03Map\x12\x10\n" + + "\x03Gem\x18\x02 \x01(\x05R\x03Gem\x1a6\n" + + "\bMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"I\n" + + "\rResMiningTake\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + + "\x0fReqMiningReward\"K\n" + + "\x0fResMiningReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\f\n" + + "\n" + + "ReqActPass\"\xce\x01\n" + + "\n" + + "ResActPass\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x14\n" + + "\x05Score\x18\x05 \x01(\x05R\x05Score\x12\x16\n" + + "\x06Reward\x18\x06 \x03(\x05R\x06Reward\x12\x18\n" + + "\aLowPass\x18\a \x01(\bR\aLowPass\x12\x1a\n" + + "\bHighPass\x18\b \x01(\bR\bHighPass\"\x12\n" + + "\x10ReqActPassReward\"n\n" + + "\x10ResActPassReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12 \n" + + "\vRewardLevel\x18\x03 \x03(\x05R\vRewardLevel\"s\n" + + "\tResActRed\x12.\n" + + "\x03Red\x18\x01 \x03(\v2\x1c.tutorial.ResActRed.RedEntryR\x03Red\x1a6\n" + + "\bRedEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"0\n" + + "\fNotifyActRed\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Red\x18\x02 \x01(\x05R\x03Red\"<\n" + + "\x0eActivityNotify\x12*\n" + + "\x04Info\x18\x01 \x01(\v2\x16.tutorial.ActivityInfoR\x04Info\"s\n" + + "\aResItem\x12/\n" + + "\x04Item\x18\x01 \x03(\v2\x1b.tutorial.ResItem.ItemEntryR\x04Item\x1a7\n" + + "\tItemEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"y\n" + + "\n" + + "ItemNotify\x122\n" + + "\x04Item\x18\x01 \x03(\v2\x1e.tutorial.ItemNotify.ItemEntryR\x04Item\x1a7\n" + + "\tItemEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x0f\n" + + "\rReqGuessColor\"\xef\x02\n" + + "\rResGuessColor\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + + "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x122\n" + + "\aMapList\x18\x06 \x03(\v2\x18.tutorial.GuessColorInfoR\aMapList\x125\n" + + "\x04OMap\x18\a \x03(\v2!.tutorial.ResGuessColor.OMapEntryR\x04OMap\x12\x18\n" + + "\aWinTime\x18\b \x01(\x05R\aWinTime\x12.\n" + + "\bOpponent\x18\t \x01(\v2\x12.tutorial.opponentR\bOpponent\x1a7\n" + + "\tOMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"f\n" + + "\bopponent\x12\x12\n" + + "\x04Name\x18\x01 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x02 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x1a\n" + + "\bProgress\x18\x04 \x01(\x05R\bProgress\"\xb3\x01\n" + + "\x11ReqGuessColorTake\x12*\n" + + "\x03Map\x18\x01 \x01(\v2\x18.tutorial.GuessColorInfoR\x03Map\x129\n" + + "\x04OMap\x18\x02 \x03(\v2%.tutorial.ReqGuessColorTake.OMapEntryR\x04OMap\x1a7\n" + + "\tOMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"}\n" + + "\x0eGuessColorInfo\x123\n" + + "\x03Map\x18\x01 \x03(\v2!.tutorial.GuessColorInfo.MapEntryR\x03Map\x1a6\n" + + "\bMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"M\n" + + "\x11ResGuessColorTake\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x15\n" + + "\x13ReqGuessColorReward\"O\n" + + "\x13ResGuessColorReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\t\n" + + "\aReqRace\"\xa7\x02\n" + + "\aResRace\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x12\n" + + "\x04Pass\x18\x05 \x01(\x05R\x04Pass\x12$\n" + + "\rGameStartTime\x18\x06 \x01(\x05R\rGameStartTime\x12 \n" + + "\vGameEndTime\x18\a \x01(\x05R\vGameEndTime\x12\x1a\n" + + "\bProgress\x18\b \x01(\x05R\bProgress\x122\n" + + "\bOpponent\x18\t \x03(\v2\x16.tutorial.raceopponentR\bOpponent\x12\x12\n" + + "\x04Rank\x18\n" + + " \x01(\x05R\x04Rank\"z\n" + + "\fraceopponent\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Face\x18\x02 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x12\n" + + "\x04Name\x18\x04 \x01(\tR\x04Name\x12\x1a\n" + + "\bProgress\x18\x05 \x01(\x05R\bProgress\"\x0e\n" + + "\fReqRaceStart\"H\n" + + "\fResRaceStart\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x0f\n" + + "\rReqRaceReward\"I\n" + + "\rResRaceReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\r\n" + + "\vReqPlayroom\"\xa9\r\n" + + "\vResPlayroom\x12\x16\n" + + "\x06status\x18\x01 \x01(\x05R\x06status\x12(\n" + + "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x122\n" + + "\bOpponent\x18\x03 \x03(\v2\x16.tutorial.RoomOpponentR\bOpponent\x12,\n" + + "\x06Friend\x18\x04 \x03(\v2\x14.tutorial.FriendRoomR\x06Friend\x12?\n" + + "\bPlayroom\x18\x05 \x03(\v2#.tutorial.ResPlayroom.PlayroomEntryR\bPlayroom\x127\n" + + "\acollect\x18\x06 \x03(\v2\x1d.tutorial.PlayroomCollectInfoR\acollect\x123\n" + + "\x04Mood\x18\a \x03(\v2\x1f.tutorial.ResPlayroom.MoodEntryR\x04Mood\x12.\n" + + "\bLoseItem\x18\b \x03(\v2\x12.tutorial.ItemInfoR\bLoseItem\x12\x1c\n" + + "\tStartTime\x18\t \x01(\x05R\tStartTime\x12\x1e\n" + + "\n" + + "WorkStatus\x18\n" + + " \x01(\x05R\n" + + "WorkStatus\x12\x18\n" + + "\aAllMood\x18\v \x01(\x05R\aAllMood\x12&\n" + + "\x04Chip\x18\f \x03(\v2\x12.tutorial.ChipInfoR\x04Chip\x12 \n" + + "\vWorkOutline\x18\r \x01(\x05R\vWorkOutline\x12\x18\n" + + "\aJackpot\x18\x0e \x01(\x05R\aJackpot\x12E\n" + + "\n" + + "Physiology\x18\x0f \x03(\v2%.tutorial.ResPlayroom.PhysiologyEntryR\n" + + "Physiology\x126\n" + + "\x05Dress\x18\x10 \x03(\v2 .tutorial.ResPlayroom.DressEntryR\x05Dress\x12?\n" + + "\bDressSet\x18\x11 \x03(\v2#.tutorial.ResPlayroom.DressSetEntryR\bDressSet\x121\n" + + "\x06PetAir\x18\x12 \x03(\v2\x19.tutorial.PlayroomAirInfoR\x06PetAir\x12\x1c\n" + + "\tPetAirSet\x18\x13 \x01(\x05R\tPetAirSet\x12\x16\n" + + "\x06Upvote\x18\x14 \x01(\x05R\x06Upvote\x12\x1c\n" + + "\tRoomPoint\x18\x15 \x01(\x05R\tRoomPoint\x12\x16\n" + + "\x06Unlock\x18\x16 \x03(\x05R\x06Unlock\x121\n" + + "\tDailyTask\x18\x17 \x03(\v2\x13.tutorial.DailyTaskR\tDailyTask\x12(\n" + + "\x0fDailyTaskReward\x18\x18 \x03(\x05R\x0fDailyTaskReward\x12 \n" + + "\vInteractNum\x18\x19 \x01(\x05R\vInteractNum\x12\x12\n" + + "\x04Kiss\x18\x1a \x01(\x05R\x04Kiss\x12\x18\n" + + "\aRevenge\x18\x1b \x01(\x03R\aRevenge\x12(\n" + + "\x06AdItem\x18\x1c \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x12,\n" + + "\x06Target\x18\x1d \x01(\v2\x14.tutorial.FriendRoomR\x06Target\x12Q\n" + + "\x0eWeeklyDiscount\x18\x1e \x03(\v2).tutorial.ResPlayroom.WeeklyDiscountEntryR\x0eWeeklyDiscount\x1a;\n" + + "\rPlayroomEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a7\n" + + "\tMoodEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + + "\x0fPhysiologyEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1aQ\n" + + "\n" + + "DressEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12-\n" + + "\x05value\x18\x02 \x01(\v2\x17.tutorial.PlayroomDressR\x05value:\x028\x01\x1a;\n" + + "\rDressSetEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a_\n" + + "\x13WeeklyDiscountEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x122\n" + + "\x05value\x18\x02 \x01(\v2\x1c.tutorial.WeeklyDiscountInfoR\x05value:\x028\x01\"q\n" + + "\x12NotifyPlayroomTask\x121\n" + + "\tDailyTask\x18\x01 \x03(\v2\x13.tutorial.DailyTaskR\tDailyTask\x12(\n" + + "\x0fDailyTaskReward\x18\x02 \x03(\x05R\x0fDailyTaskReward\"!\n" + + "\x0fReqPlayroomTask\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"[\n" + + "\x0fResPlayroomTask\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"+\n" + + "\x15ReqPlayroomTaskReward\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\"u\n" + + "\x15ResPlayroomTaskReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x04 \x01(\x05R\x04Type\"#\n" + + "\x11ReqPlayroomUnlock\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"]\n" + + "\x11ResPlayroomUnlock\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"#\n" + + "\x11ReqPlayroomUpvote\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x03R\x02Id\"]\n" + + "\x11ResPlayroomUpvote\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x03R\x02Id\"@\n" + + "\rPlayroomDress\x12/\n" + + "\x04List\x18\x01 \x03(\v2\x1b.tutorial.PlayroomDressInfoR\x04List\"m\n" + + "\x11PlayroomDressInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + + "\x05Label\x18\x04 \x01(\tR\x05Label\"k\n" + + "\x0fPlayroomAirInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + + "\x05Label\x18\x04 \x01(\tR\x05Label\"o\n" + + "\x13PlayroomCollectInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEndTime\x18\x02 \x01(\x03R\aEndTime\x12\x18\n" + + "\aAddTime\x18\x03 \x01(\x03R\aAddTime\x12\x14\n" + + "\x05Label\x18\x04 \x01(\tR\x05Label\"\x9b\x01\n" + + "\x13ReqPlayroomDressSet\x12G\n" + + "\bDressSet\x18\x01 \x03(\v2+.tutorial.ReqPlayroomDressSet.DressSetEntryR\bDressSet\x1a;\n" + + "\rDressSetEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"O\n" + + "\x13ResPlayroomDressSet\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"4\n" + + "\x14ReqPlayroomPetAirSet\x12\x1c\n" + + "\tPetAirSet\x18\x01 \x01(\x05R\tPetAirSet\"P\n" + + "\x14ResPlayroomPetAirSet\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x18\n" + + "\x16ReqPlayroomWrokOutline\"R\n" + + "\x16ResPlayroomWrokOutline\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"6\n" + + "\x12NofiPlayroomStatus\x12 \n" + + "\vWorkOutline\x18\x01 \x01(\x05R\vWorkOutline\"R\n" + + "\x12NotifyPlayroomWork\x12\x1c\n" + + "\tStartTime\x18\x01 \x01(\x05R\tStartTime\x12\x1e\n" + + "\n" + + "WorkStatus\x18\x02 \x01(\x05R\n" + + "WorkStatus\"\x86\x01\n" + + "\x12NotifyPlayroomLose\x12.\n" + + "\bLoseItem\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\bLoseItem\x12&\n" + + "\x04Chip\x18\x02 \x03(\v2\x12.tutorial.ChipInfoR\x04Chip\x12\x18\n" + + "\aRevenge\x18\x03 \x01(\x03R\aRevenge\"6\n" + + "\bChipInfo\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + + "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xda\x02\n" + + "\x12NotifyPlayroomMood\x12\x18\n" + + "\aAllMood\x18\x01 \x01(\x05R\aAllMood\x12:\n" + + "\x04Mood\x18\x02 \x03(\v2&.tutorial.NotifyPlayroomMood.MoodEntryR\x04Mood\x12L\n" + + "\n" + + "Physiology\x18\x03 \x03(\v2,.tutorial.NotifyPlayroomMood.PhysiologyEntryR\n" + + "Physiology\x12(\n" + + "\x06AdItem\x18\x04 \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x1a7\n" + + "\tMoodEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + + "\x0fPhysiologyEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"T\n" + + "\x06AdItem\x12\x14\n" + + "\x05Watch\x18\x01 \x01(\x05R\x05Watch\x12\x1c\n" + + "\tLastWatch\x18\x02 \x01(\x05R\tLastWatch\x12\x16\n" + + "\x06ItemId\x18\x03 \x01(\x05R\x06ItemId\"(\n" + + "\x12NotifyPlayroomKiss\x12\x12\n" + + "\x04Kiss\x18\x01 \x01(\x05R\x04Kiss\"t\n" + + "\n" + + "FriendRoom\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x14\n" + + "\x05Times\x18\x05 \x01(\x05R\x05Times\"|\n" + + "\fRoomOpponent\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x1a\n" + + "\bLastTime\x18\x05 \x01(\x05R\bLastTime\"#\n" + + "\x0fReqPlayroomInfo\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x9f\a\n" + + "\x0fResPlayroomInfo\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12C\n" + + "\bPlayroom\x18\x05 \x03(\v2'.tutorial.ResPlayroomInfo.PlayroomEntryR\bPlayroom\x12\x16\n" + + "\x06GameId\x18\x06 \x01(\x05R\x06GameId\x12:\n" + + "\x05Items\x18\a \x03(\v2$.tutorial.ResPlayroomInfo.ItemsEntryR\x05Items\x12\x16\n" + + "\x06Status\x18\b \x01(\x05R\x06Status\x12\x18\n" + + "\adefense\x18\t \x01(\bR\adefense\x127\n" + + "\x04flip\x18\n" + + " \x03(\v2#.tutorial.ResPlayroomInfo.FlipEntryR\x04flip\x12\x12\n" + + "\x04Chip\x18\v \x01(\x05R\x04Chip\x12\x18\n" + + "\aPetName\x18\f \x01(\tR\aPetName\x12:\n" + + "\x05Emoji\x18\r \x03(\v2$.tutorial.ResPlayroomInfo.EmojiEntryR\x05Emoji\x12\x16\n" + + "\x06Upvote\x18\x0e \x01(\bR\x06Upvote\x12 \n" + + "\vUpvoteCount\x18\x0f \x01(\x05R\vUpvoteCount\x12C\n" + + "\bDressSet\x18\x10 \x03(\v2'.tutorial.ResPlayroomInfo.DressSetEntryR\bDressSet\x12\x12\n" + + "\x04Kiss\x18\x11 \x01(\x05R\x04Kiss\x1a;\n" + + "\rPlayroomEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1aL\n" + + "\n" + + "ItemsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + + "\x05value\x18\x02 \x01(\v2\x12.tutorial.ItemInfoR\x05value:\x028\x01\x1a7\n" + + "\tFlipEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a8\n" + + "\n" + + "EmojiEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a;\n" + + "\rDressSetEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"!\n" + + "\x0fReqPlayroomFlip\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"s\n" + + "\x0fResPlayroomFlip\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\x12\x16\n" + + "\x06CardId\x18\x04 \x01(\x05R\x06CardId\"&\n" + + "\x10ReqPlayroomGuide\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\"L\n" + + "\x10ResPlayroomGuide\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"1\n" + + "\x15ReqPlayroomFlipReward\x12\x18\n" + + "\aEmojiId\x18\x01 \x01(\x05R\aEmojiId\"Q\n" + + "\x15ResPlayroomFlipReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"?\n" + + "\x0fReqPlayroomGame\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x18\n" + + "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xe9\x01\n" + + "\x0fResPlayroomGame\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x12\n" + + "\x04Type\x18\x03 \x01(\x05R\x04Type\x12:\n" + + "\x05Items\x18\x04 \x03(\v2$.tutorial.ResPlayroomGame.ItemsEntryR\x05Items\x1aL\n" + + "\n" + + "ItemsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12(\n" + + "\x05value\x18\x02 \x01(\v2\x12.tutorial.ItemInfoR\x05value:\x028\x01\"K\n" + + "\x19ReqPlayroomGameShowReward\x12\x12\n" + + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" + + "\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" + + "\x19ResPlayroomGameShowReward\x12(\n" + + "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + + "\x13ReqPlayroomInteract\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" + + "\x13ResPlayroomInteract\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12 \n" + + "\vInteractNum\x18\x03 \x01(\x05R\vInteractNum\"\x99\x01\n" + + "\x12ReqPlayroomSetRoom\x12F\n" + + "\bPlayroom\x18\x01 \x03(\v2*.tutorial.ReqPlayroomSetRoom.PlayroomEntryR\bPlayroom\x1a;\n" + + "\rPlayroomEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"N\n" + + "\x12ResPlayroomSetRoom\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"C\n" + + "\x17ReqPlayroomSelectReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"S\n" + + "\x17ResPlayroomSelectReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + + "\x0fReqPlayroomLose\"K\n" + + "\x0fResPlayroomLose\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + + "\x0fReqPlayroomWork\"K\n" + + "\x0fResPlayroomWork\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + + "\x0fReqPlayroomRest\"K\n" + + "\x0fResPlayroomRest\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x11\n" + + "\x0fReqPlayroomDraw\"[\n" + + "\x0fResPlayroomDraw\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"#\n" + + "\x0fReqPlayroomChip\x12\x10\n" + + "\x03Uid\x18\x01 \x03(\x03R\x03Uid\"K\n" + + "\x0fResPlayroomChip\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"$\n" + + "\x12ReqPlayroomBuyItem\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"N\n" + + "\x12ResPlayroomBuyItem\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"3\n" + + "\x0fReqPlayroomShop\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Num\x18\x02 \x01(\x05R\x03Num\"K\n" + + "\x0fResPlayroomShop\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x13\n" + + "\x11ReqFriendTreasure\"\xab\x01\n" + + "\x11ResFriendTreasure\x12\x16\n" + + "\x06Status\x18\x01 \x01(\x05R\x06Status\x12\x12\n" + + "\x04Star\x18\x02 \x01(\x05R\x04Star\x12\x14\n" + + "\x05Shift\x18\x03 \x01(\x05R\x05Shift\x12*\n" + + "\x04List\x18\x04 \x03(\v2\x16.tutorial.TreasureInfoR\x04List\x12\x14\n" + + "\x05List2\x18\x05 \x03(\x05R\x05List2\x12\x12\n" + + "\x04Uids\x18\x06 \x03(\x03R\x04Uids\"\xa6\x01\n" + + "\fTreasureInfo\x12\x10\n" + + "\x03Pos\x18\x01 \x01(\x05R\x03Pos\x12\x12\n" + + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x10\n" + + "\x03Uid\x18\x05 \x01(\x03R\x03Uid\x12\x16\n" + + "\x06Status\x18\x06 \x01(\x05R\x06Status\x12\x1a\n" + + "\bNickName\x18\a \x01(\tR\bNickName\"Z\n" + + "\x16ReqFriendTreasureStart\x12*\n" + + "\x04List\x18\x01 \x03(\v2\x16.tutorial.TreasureInfoR\x04List\x12\x14\n" + + "\x05List2\x18\x02 \x03(\x05R\x05List2\"R\n" + + "\x16ResFriendTreasureStart\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x16\n" + + "\x14ReqFriendTreasureEnd\"P\n" + + "\x14ResFriendTreasureEnd\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\")\n" + + "\x15ReqFriendTreasureFilp\x12\x10\n" + + "\x03Pos\x18\x01 \x01(\x05R\x03Pos\"Q\n" + + "\x15ResFriendTreasureFilp\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"+\n" + + "\x15ResFriendTreasureStar\x12\x12\n" + + "\x04Star\x18\x01 \x01(\x05R\x04Star\"7\n" + + "\vReqKafkaLog\x12\x14\n" + + "\x05Event\x18\x01 \x01(\tR\x05Event\x12\x12\n" + + "\x04Data\x18\x02 \x01(\tR\x04Data\"\x10\n" + + "\x0eReqCollectInfo\"M\n" + + "\x0eResCollectInfo\x12\x0e\n" + + "\x02Id\x18\x01 \x03(\x05R\x02Id\x12+\n" + + "\x05Items\x18\x02 \x03(\v2\x15.tutorial.CollectItemR\x05Items\"G\n" + + "\vCollectItem\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12(\n" + + "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"\x1c\n" + + "\n" + + "ReqCollect\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"F\n" + + "\n" + + "ResCollect\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\v\n" + + "\tReqCatnip\"\xef\x01\n" + + "\tResCatnip\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x120\n" + + "\bGameList\x18\x05 \x03(\v2\x14.tutorial.CatnipGameR\bGameList\x12\x1a\n" + + "\bMultiply\x18\x06 \x01(\x05R\bMultiply\x126\n" + + "\n" + + "FriendList\x18\a \x03(\v2\x16.tutorial.CatnipInviteR\n" + + "FriendList\"\xdb\x01\n" + + "\n" + + "CatnipGame\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x1a\n" + + "\bProgress\x18\x03 \x01(\x05R\bProgress\x12\x16\n" + + "\x06Reward\x18\x04 \x03(\x05R\x06Reward\x123\n" + + "\aPartner\x18\x05 \x01(\v2\x19.tutorial.ResPlayerSimpleR\aPartner\x12\x14\n" + + "\x05Emoji\x18\x06 \x01(\x05R\x05Emoji\x12&\n" + + "\x0eFriendProgress\x18\a \x01(\x05R\x0eFriendProgress\"{\n" + + "\fCatnipInvite\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x12\n" + + "\x04Type\x18\x03 \x01(\x05R\x04Type\x121\n" + + "\x06Player\x18\x04 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\"3\n" + + "\x0fReqCatnipInvite\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"]\n" + + "\x0fResCatnipInvite\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"2\n" + + "\x0eReqCatnipAgree\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"\\\n" + + "\x0eResCatnipAgree\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"3\n" + + "\x0fReqCatnipRefuse\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x10\n" + + "\x03Uid\x18\x02 \x01(\x03R\x03Uid\"]\n" + + "\x0fResCatnipRefuse\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x10\n" + + "\x03Uid\x18\x03 \x01(\x03R\x03Uid\"/\n" + + "\x11ReqCatnipMultiply\x12\x1a\n" + + "\bMultiply\x18\x01 \x01(\x05R\bMultiply\"i\n" + + "\x11ResCatnipMultiply\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x1a\n" + + "\bMultiply\x18\x03 \x01(\x05R\bMultiply\"\x1f\n" + + "\rReqCatnipPlay\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"Y\n" + + "\rResCatnipPlay\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + + "\x02Id\x18\x03 \x01(\x05R\x02Id\"!\n" + + "\x0fReqCatnipReward\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\"K\n" + + "\x0fResCatnipReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\x16\n" + + "\x14ReqCatnipGrandReward\"P\n" + + "\x14ResCatnipGrandReward\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\":\n" + + "\x0eReqCatnipEmoji\x12\x0e\n" + + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x18\n" + + "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"t\n" + + "\x0eResCatnipEmoji\x12&\n" + + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x18\n" + + "\aEmojiId\x18\x03 \x01(\x05R\aEmojiId\x12\x0e\n" + + "\x02Id\x18\x04 \x01(\x05R\x02Id\"2\n" + + "\bAdminReq\x12\x12\n" + + "\x04Func\x18\x01 \x01(\tR\x04Func\x12\x12\n" + + "\x04Info\x18\x02 \x01(\fR\x04Info\"2\n" + + "\bAdminRes\x12\x12\n" + + "\x04Func\x18\x01 \x01(\tR\x04Func\x12\x12\n" + + "\x04Info\x18\x02 \x01(\fR\x04Info\" \n" + + "\fReqAdminInfo\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\"\x15\n" + + "\x13ReqReloadServerMail\"\x0f\n" + + "\rReqServerInfo\"\v\n" + + "\tReqReload\"8\n" + + "\n" + + "ReqAdminGm\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + + "\aCommand\x18\x02 \x01(\tR\aCommand\"K\n" + + "\vReqAdminBan\x12\x10\n" + + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + + "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x16\n" + + "\x06Reason\x18\x03 \x01(\tR\x06Reason\"l\n" + + "\x10ReqAdminShipping\x12\x18\n" + + "\aOrderSn\x18\x01 \x01(\tR\aOrderSn\x12\x16\n" + + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12&\n" + + "\x0eChannelOrderSn\x18\x03 \x01(\tR\x0eChannelOrderSn*\xee\v\n" + + "\x0eITEM_POP_LABEL\x12\f\n" + + "\bPlayroom\x10\x00\x12\r\n" + + "\tPiggyBank\x10\x01\x12\n" + + "\n" + + "\x06Charge\x10\x02\x12\v\n" + + "\aEndless\x10\x03\x12\x0f\n" + + "\vLevUpReward\x10\x04\x12\x0f\n" + + "\vHandleChess\x10\x05\x12\x12\n" + + "\x0eHandbookReward\x10\x06\x12\x0f\n" + + "\vOrderReward\x10\a\x12\x10\n" + + "\fDecorateCost\x10\b\x12\x0f\n" + + "\vDecorateAdd\x10\t\x12\x13\n" + + "\x0fBuyChessBagGrid\x10\n" + + "\x12\v\n" + + "\aChessEx\x10\v\x12\x15\n" + + "\x11CardCollectReward\x10\f\x12\x10\n" + + "\fExStarReward\x10\r\x12\x14\n" + + "\x10AllCollectReward\x10\x0e\x12\x0f\n" + + "\vGuideReward\x10\x0f\x12\x13\n" + + "\x0fDailyTaskReward\x10\x10\x12\x13\n" + + "\x0fDailyWeekReward\x10\x11\x12\r\n" + + "\tBuyEnergy\x10\x12\x12\x19\n" + + "\x15SevenLoginRewardLabel\x10\x13\x12\x14\n" + + "\x10MonthLoginReward\x10\x14\x12\x15\n" + + "\x11FastProduceReward\x10\x15\x12\x14\n" + + "\x10LimitSenceReward\x10\x16\x12\x0e\n" + + "\n" + + "MailReward\x10\x17\x12\f\n" + + "\bFreeShop\x10\x18\x12\r\n" + + "\tChessShop\x10\x19\x12\x14\n" + + "\x10RefreshChessShop\x10\x1a\x12\x11\n" + + "\rEndlessReward\x10\x1b\x12\x13\n" + + "\x0fPiggyBankReward\x10\x1c\x12\x13\n" + + "\x0fChampshipReward\x10\x1d\x12\x14\n" + + "\x10LimitEventReward\x10\x1e\x12\x17\n" + + "\x13ChampshipRankReward\x10\x1f\x12\n" + + "\n" + + "\x06invite\x10 \x12\x14\n" + + "\x10SelectLimitEvent\x10!\x12\x0e\n" + + "\n" + + "MiningTake\x10\"\x12\x10\n" + + "\fMiningReward\x10#\x12\x0e\n" + + "\n" + + "GuessColor\x10$\x12\x14\n" + + "\x10GuessColorReward\x10%\x12\x0e\n" + + "\n" + + "RaceReward\x10&\x12\x10\n" + + "\fPlayroomGame\x10'\x12\x10\n" + + "\fPlayroomDraw\x10(\x12\x10\n" + + "\fPlayroomChip\x10)\x12\x10\n" + + "\fPlayroomFlip\x10*\x12\x16\n" + + "\x12FriendtreasureFilp\x10+\x12\x15\n" + + "\x11FriendtreasureEnd\x10,\x12\x06\n" + + "\x02GM\x10-\x12\x12\n" + + "\x0eFriendtreasure\x10.\x12\x16\n" + + "\x12CardHandbookReward\x10/\x12\x17\n" + + "\x13LimitEventChestRain\x100\x12\x11\n" + + "\rGetEnergyByAD\x101\x12\x0f\n" + + "\vSourceChest\x102\x12\x13\n" + + "\x0fPlayroomBuyItem\x103\x12\x19\n" + + "\x15CardSeasonFirstReward\x104\x12\x16\n" + + "\x12AllCollectRewardHB\x105\x12\x10\n" + + "\fPlayroomShop\x106\x12\x15\n" + + "\x11HandbookAllReward\x107\x12\f\n" + + "\bTLUpvote\x108\x12\v\n" + + "\aCollect\x109\x12\x10\n" + + "\fActivityGift\x10:\x12\x12\n" + + "\x0eActivityReward\x10;\x12\x12\n" + + "\x0eCatTrickReward\x10<\x12\v\n" + + "\aAddWish\x10=\x12\v\n" + + "\aGetWish\x10>\x12\x10\n" + + "\fPlayroomTask\x10?\x12\x16\n" + + "\x12PlayroomTaskReward\x10@\x12\x12\n" + + "\x0ePlayroomUpvote\x10A\x12\x12\n" + + "\x0eDecorateReward\x10B\x12\x10\n" + + "\fCatnipReward\x10C\x12\x15\n" + + "\x11CatnipGrandReward\x10D\x12\x0e\n" + + "\n" + + "CatnipPlay\x10E\x12\x11\n" + + "\rFriendTReward\x10F\x12\f\n" + + "\bPetTheif\x10G\x12\x13\n" + + "\x0fGuideTaskReward\x10H\x12\x15\n" + + "\x11GuideActiveReward\x10I\x12\x0e\n" + + "\n" + + "PassCharge\x10J\x12\x11\n" + + "\rActPassReward\x10K\x12\x15\n" + + "\x11FriendReplyHandle\x10L\x12\x18\n" + + "\x14GetChessRetireReward\x10M\x12\x16\n" + + "\x12ApplyFriendSponsor\x10N*B\n" + + "\vHANDLE_TYPE\x12\a\n" + + "\x03ADD\x10\x00\x12\v\n" + + "\aCOMPOSE\x10\x01\x12\a\n" + + "\x03BUY\x10\x02\x12\b\n" + + "\x04SELL\x10\x03\x12\n" + + "\n" + + "\x06REMOVE\x10\x04*\xf0\x02\n" + + "\bRES_CODE\x12\b\n" + + "\x04FAIL\x10\x00\x12\v\n" + + "\aSUCCESS\x10\x01\x12 \n" + + "\x1cProtocol_Error_Account_Exist\x10\x02\x12'\n" + + "#Protocol_Error_Account_OR_PWD_ERROR\x10\x03\x12'\n" + + "#Protocol_Error_Account_OR_PWD_Short\x10\x04\x12\x1f\n" + + "\x1bProtocol_Error_Account_Fail\x10\x05\x12\"\n" + + "\x1eProtocol_Error_Account_NoExsit\x10\x06\x12%\n" + + "!Protocol_Error_Account_Code_Error\x10\a\x12'\n" + + "#Protocol_Error_Account_Device_Error\x10\b\x12 \n" + + "\x1cProtocol_Error_Id_Not_Verify\x10\t\x12\"\n" + + "\x1eProtocol_Error_Id_Verify_Error\x10\n" + + "*.\n" + + "\tITEM_TYPE\x12\n" + + "\n" + + "\x06ENERGY\x10\x00\x12\b\n" + + "\x04STAR\x10\x01\x12\v\n" + + "\aDIAMOND\x10\x02*\x9f\x01\n" + + "\rACTIVITY_TYPE\x12\x19\n" + + "\x15ACTIVITY_TYPE_DEFAULT\x10\x00\x12\x13\n" + + "\x0fACT_TYPE_MINING\x10\x01\x12\x18\n" + + "\x14ACT_TYPE_GUESS_COLOR\x10\x02\x12\x11\n" + + "\rACT_TYPE_RACE\x10\x03\x12\x1a\n" + + "\x16ACT_TYPE_DISCOUNT_GIFT\x10\x04\x12\x15\n" + + "\x11ACT_TYPE_ADD_GIFT\x10\x05*\x95\x02\n" + + "\n" + + "ORDER_TYPE\x12\x16\n" + + "\x12ORDER_TYPE_DEFAULT\x10\x00\x12\x0f\n" + + "\vCommon_type\x10\x01\x12\x0e\n" + + "\n" + + "Extra_type\x10\x02\x12\x0e\n" + + "\n" + + "Super_type\x10\x03\x12\x10\n" + + "\fPreheat_type\x10\x04\x12\x10\n" + + "\fTrigger_type\x10\x05\x12\x0e\n" + + "\n" + + "Clean_type\x10\x06\x12\x14\n" + + "\x10Clean_Order_type\x10\a\x12\x0f\n" + + "\vClean_type2\x10\b\x12\x10\n" + + "\fCOMFORT_TYPE\x10\t\x12\x0e\n" + + "\n" + + "Guide_type\x10\n" + + "\x12\f\n" + + "\bPet_type\x10\v\x12\x10\n" + + "\fPreview_type\x10\f\x12\x0e\n" + + "\n" + + "Fixed_type\x10\r\x12\x11\n" + + "\rPlayroom_type\x10\x0e*P\n" + + "\n" + + "LOGIN_TYPE\x12\x11\n" + + "\rACCOUNT_LOGIN\x10\x00\x12\x0e\n" + + "\n" + + "CODE_LOGIN\x10\x01\x12\x10\n" + + "\fDEVICE_LOGIN\x10\x02\x12\r\n" + + "\tSDK_LOGIN\x10\x03*\xf7\x06\n" + + "\x0eTIME_LINE_TYPE\x12\v\n" + + "\aDEFAULT\x10\x00\x12\x19\n" + + "\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" + + "\x16LOG_TYPE_FRIEND_BECOME\x10\x02\x12\x19\n" + + "\x15LOG_TYPE_CARD_EX_SEND\x10\x03\x12\x16\n" + + "\x12LOG_TYPE_CARD_SEND\x10\x04\x12\x16\n" + + "\x12LOG_TYPE_CARD_GIVE\x10\x05\x12\x1c\n" + + "\x18LOG_TYPE_CARD_SELECT_GET\x10\x06\x12\x1d\n" + + "\x19LOG_TYPE_CARD_ACCEPT_GIVE\x10\a\x12\x18\n" + + "\x14LOG_TYPE_CARD_EX_GET\x10\b\x12\x1d\n" + + "\x19LOG_TYPE_CARD_SELECT_SEND\x10\t\x12\x1e\n" + + "\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" + + "\x12\x1e\n" + + "\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" + + "\x16LOG_TYPE_FRIEND_DELETE\x10\f\x12\x1b\n" + + "\x17LOG_TYPE_PLAYROOM_VISIT\x10\r\x12\x15\n" + + "\x11LOG_TYPE_HANDBOOK\x10\x0e\x12\x1c\n" + + "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x0f\x12\x18\n" + + "\x14LOG_TYPE_CHARGE_SEND\x10\x10\x12\x1c\n" + + "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x11\x12\x11\n" + + "\rLOG_TYPE_WISH\x10\x12\x12\x1e\n" + + "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x13\x12\x1c\n" + + "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x14\x12\x1f\n" + + "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x15\x12\x15\n" + + "\x11LOG_TYPE_TREASURE\x10\x16\x12\x1d\n" + + "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x17\x12\x1d\n" + + "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x18\x12\x1e\n" + + "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x19\x12\x1d\n" + + "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1a\x12\x1a\n" + + "\x16LOG_TYPE_FRIEND_INVITE\x10\x1b\x12\x1a\n" + + "\x16LOG_TYPE_TREASURE_HELP\x10\x1c\x12\x1b\n" + + "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1d\x12\x1f\n" + + "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10\x1e*\x9b\x01\n" + + "\rCHESS_EX_TYPE\x12\x11\n" + + "\rCHESS_EX_NONE\x10\x00\x12\x13\n" + + "\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" + + "\fCHESS_EX_BOX\x10\x02\x12\x16\n" + + "\x12CHESS_EX_QUICK_BUY\x10\x03\x12\x12\n" + + "\x0eCHESS_EX_EVENT\x10\x04\x12$\n" + + " CHESS_EX_EVENT_LITTLE_APPRENTICE\x10\x05*4\n" + + "\tLANG_TYPE\x12\v\n" + + "\aLANG_CN\x10\x00\x12\v\n" + + "\aLANG_EN\x10\x01\x12\r\n" + + "\tLANG_PTBR\x10\x02*x\n" + + "\x0fLimitEventParam\x12\f\n" + + "\bLEP_NONE\x10\x00\x12\x14\n" + + "\x10CAT_TRICK_ENERGY\x10\x01\x12\x12\n" + + "\x0eCAT_TRICK_TYPE\x10\x02\x12\x15\n" + + "\x11PAYBACK_DAY_COUNT\x10\x03\x12\x16\n" + + "\x12LUCKY_CAT_EARNINGS\x10\x04*\x8a\a\n" + + "\n" + + "ActLogType\x12\x15\n" + + "\x11ACT_LOG_TYPE_NONE\x10\x00\x12\x1c\n" + + "\x18ACT_LOG_TYPE_FIRST_LOGIN\x10\x01\x12\"\n" + + "\x1eACT_LOG_TYPE_COMPLETE_RESTROOM\x10\x02\x12$\n" + + " ACT_LOG_TYPE_COMPLETE_RESTAURANT\x10\x03\x12\"\n" + + "\x1eACT_LOG_TYPE_COMPLETE_BATHROOM\x10\x04\x12#\n" + + "\x1fACT_LOG_TYPE_COMPLETE_CLOAKROOM\x10\x05\x12\x1f\n" + + "\x1bACT_LOG_TYPE_GET_NEW_AVATAR\x10\x06\x12%\n" + + "!ACT_LOG_TYPE_GET_NEW_AVATAR_FRAME\x10\a\x12 \n" + + "\x1cACT_LOG_TYPE_GET_NEW_EMOTION\x10\b\x12#\n" + + "\x1fACT_LOG_TYPE_GET_NEW_DECORATION\x10\t\x12 \n" + + "\x1cACT_LOG_TYPE_GET_NEW_COSTUME\x10\n" + + "\x12$\n" + + " ACT_LOG_TYPE_COMPLETE_CARD_ALBUM\x10\v\x12#\n" + + "\x1fACT_LOG_TYPE_COMPLETE_ALL_CARDS\x10\f\x12&\n" + + "\"ACT_LOG_TYPE_GET_CHAMPIONSHIP_RANK\x10\r\x12'\n" + + "#ACT_LOG_TYPE_GET_CHAMPIONSHIP_PRIZE\x10\x0e\x12+\n" + + "'ACT_LOG_TYPE_GET_LIMITED_ACTIVITY_PRIZE\x10\x0f\x12*\n" + + "&ACT_LOG_TYPE_JOIN_FRIEND_COOP_ACTIVITY\x10\x10\x12%\n" + + "!ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE\x10\x11\x12'\n" + + "#ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE_1\x10\x12\x12\"\n" + + "\x1eACT_LOG_TYPE_OPEN_PET_TREASURE\x10\x13\x12\x1d\n" + + "\x19ACT_LOG_TYPE_VISIT_UPVOTE\x10\x14\x12.\n" + + "*ACT_LOG_TYPE_COMPLETE_HANDBOOK_ACHIEVEMENT\x10\x15\x12(\n" + + "$ACT_LOG_TYPE_COMPLETE_CHAPTER_SCENES\x10\x16\x12!\n" + + "\x1dACT_LOG_TYPE_LOST_USER_RETURN\x10\x17*\xa4\x01\n" + + "\x11FRIEND_REPLY_TYPE\x12\x1a\n" + + "\x16FRIEND_REPLY_TYPE_NONE\x10\x00\x12\x1b\n" + + "\x17FRIEND_REPLY_TYPE_GREET\x10\x01\x12\"\n" + + "\x1eFRIEND_REPLY_TYPE_RETURN_GREET\x10\x02\x12\x15\n" + + "\x11REPLY_TYPE_CATNIP\x10\x03\x12\x1b\n" + + "\x17REPLY_TYPE_CATNIP_ITEMS\x10\x04*4\n" + + "\x1cFRIEND_REPLY_HANDLE_ERR_TYPE\x12\b\n" + + "\x04NONE\x10\x00\x12\n" + + "\n" + + "\x06CATNIP\x10\x01B\bZ\x06../msgb\x06proto3" var ( file_proto_Gameapi_proto_rawDescOnce sync.Once - file_proto_Gameapi_proto_rawDescData = file_proto_Gameapi_proto_rawDesc + file_proto_Gameapi_proto_rawDescData []byte ) func file_proto_Gameapi_proto_rawDescGZIP() []byte { file_proto_Gameapi_proto_rawDescOnce.Do(func() { - file_proto_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_Gameapi_proto_rawDescData) + file_proto_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_Gameapi_proto_rawDesc), len(file_proto_Gameapi_proto_rawDesc))) }) return file_proto_Gameapi_proto_rawDescData } @@ -32197,7 +30746,7 @@ func file_proto_Gameapi_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_proto_Gameapi_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_Gameapi_proto_rawDesc), len(file_proto_Gameapi_proto_rawDesc)), NumEnums: 14, NumMessages: 545, NumExtensions: 0, @@ -32209,7 +30758,6 @@ func file_proto_Gameapi_proto_init() { MessageInfos: file_proto_Gameapi_proto_msgTypes, }.Build() File_proto_Gameapi_proto = out.File - file_proto_Gameapi_proto_rawDesc = nil file_proto_Gameapi_proto_goTypes = nil file_proto_Gameapi_proto_depIdxs = nil } From 5dde9f9f9fa14cebe8eaedf5a6f781f4f62b33af Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:23:25 +0800 Subject: [PATCH 020/104] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/MessageHandler.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index 31143138..2831ec19 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -598,9 +598,13 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { } ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid) + name := "未知玩家" + if ps != nil { + name = ps.Name + } return &proto.ResFriendCard{ Uid: int64(Uid), - Name: ps.Name, + Name: name, Face: int32(ps.Face), Avatar: int32(ps.Avatar), Level: int32(ps.Level), From b8662c3afd45c5961ed3e42dbb95e8a418a80d6d Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:31:24 +0800 Subject: [PATCH 021/104] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/MessageHandler.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index 2831ec19..d8b23fa4 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -598,13 +598,12 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { } ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid) - name := "未知玩家" - if ps != nil { - name = ps.Name + if ps == nil { + return &proto.ResFriendCard{} } return &proto.ResFriendCard{ Uid: int64(Uid), - Name: name, + Name: ps.Name, Face: int32(ps.Face), Avatar: int32(ps.Avatar), Level: int32(ps.Level), From 1520798201977f2ce8321f145e733cc61ed6a216 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 16 Dec 2025 19:47:15 +0800 Subject: [PATCH 022/104] =?UTF-8?q?catnip=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/ActivityFunc.go | 1 + src/server/game/RegisterNetworkFunc.go | 1 + src/server/game/mod/catnip/Catnip.go | 8 ++++++-- src/server/msg/Gameapi.pb.go | 17 +++++++++++++---- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index 6309b2fd..02f9e896 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -337,6 +337,7 @@ func (p *Player) CatnipBackData() { Reward: GoUtil.SliceIntToInt32(v.Reward), Emoji: int32(v.EmojiId), FriendProgress: int32(v.PartnerAdd), + SendEmoji: int32(v.SendEmoji), } if v.Partner != 0 { PlayerData := G_getGameLogic().GetResSimplePlayerByUid(v.Partner) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index d6d0af2d..5531aa04 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -5875,6 +5875,7 @@ func ReqCatnipEmoji(player *Player, buf []byte) error { return fmt.Errorf("activity not active") } GameInfo := CatnipMod.GetGameInfo(int(req.Id)) + CatnipMod.SetSendEmoji(int(req.Id), int(req.EmojiId)) if GameInfo.Partner == 0 { player.SendErrClienRes(&msg.ResCatnipEmoji{ Code: msg.RES_CODE_FAIL, diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index fd60cced..5f2c43de 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -28,8 +28,8 @@ type CatnipGame struct { PartnerAdd int // 伙伴贡献 Reward []int // 已领取阶段奖励 Status int // 0: Not Started, 1: In Progress, 2: Completed - - EmojiId int // 表情ID + SendEmoji int // 发送的表情ID + EmojiId int // 表情ID } const ( @@ -256,3 +256,7 @@ func (c *CatnipMod) GetMultiple() int { func (c *CatnipMod) GetGameInfo(Id int) *CatnipGame { return c.Game[Id] } + +func (c *CatnipMod) SetSendEmoji(Id, EmojiId int) { + c.Game[Id].SendEmoji = EmojiId +} diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 3752240b..090e7854 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -26159,7 +26159,8 @@ type CatnipGame struct { Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; - FriendProgress int32 `protobuf:"varint,7,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; + SendEmoji int32 `protobuf:"varint,7,opt,name=SendEmoji,proto3" json:"SendEmoji,omitempty"` // 发送的表情id + FriendProgress int32 `protobuf:"varint,8,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26236,6 +26237,13 @@ func (x *CatnipGame) GetEmoji() int32 { return 0 } +func (x *CatnipGame) GetSendEmoji() int32 { + if x != nil { + return x.SendEmoji + } + return 0 +} + func (x *CatnipGame) GetFriendProgress() int32 { if x != nil { return x.FriendProgress @@ -29522,7 +29530,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bMultiply\x18\x06 \x01(\x05R\bMultiply\x126\n" + "\n" + "FriendList\x18\a \x03(\v2\x16.tutorial.CatnipInviteR\n" + - "FriendList\"\xdb\x01\n" + + "FriendList\"\xf9\x01\n" + "\n" + "CatnipGame\x12\x0e\n" + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x16\n" + @@ -29530,8 +29538,9 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bProgress\x18\x03 \x01(\x05R\bProgress\x12\x16\n" + "\x06Reward\x18\x04 \x03(\x05R\x06Reward\x123\n" + "\aPartner\x18\x05 \x01(\v2\x19.tutorial.ResPlayerSimpleR\aPartner\x12\x14\n" + - "\x05Emoji\x18\x06 \x01(\x05R\x05Emoji\x12&\n" + - "\x0eFriendProgress\x18\a \x01(\x05R\x0eFriendProgress\"{\n" + + "\x05Emoji\x18\x06 \x01(\x05R\x05Emoji\x12\x1c\n" + + "\tSendEmoji\x18\a \x01(\x05R\tSendEmoji\x12&\n" + + "\x0eFriendProgress\x18\b \x01(\x05R\x0eFriendProgress\"{\n" + "\fCatnipInvite\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + "\x04Time\x18\x02 \x01(\x03R\x04Time\x12\x12\n" + From b1347f48cbe38e66f111a3618a5d5288ba04b064 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 10:20:56 +0800 Subject: [PATCH 023/104] =?UTF-8?q?=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/MessageHandler.go | 13 +++++++++---- src/server/game/mod/friend/Friend.go | 8 +++++--- src/server/msg/Gameapi.pb.go | 14 +++++++------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index d8b23fa4..39aad8fb 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -470,12 +470,17 @@ func (p *Player) handle(m *msg.Msg) error { if CatnipMsg.FriendItems > 0 { Items := catnipCfg.GetItemCost(ActivityId, CatnipMsg.FriendItems) FriendMod := p.PlayMod.getFriendMod() - FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) + ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Player: PlayerSimpleData, - Type: int32(friend.REPLY_TYPE_CATNIP_ITEMS), - Time: int32(m.SendT), + Info: &proto.ResFriendLog{ + Player: PlayerSimpleData, + Param: ReplyInfo.Param, + Type: int32(ReplyInfo.Type), + Id: int32(ReplyInfo.Id), + }, + Type: int32(friend.REPLY_TYPE_CATNIP_ITEMS), + Time: int32(m.SendT), }) } p.CatnipBackData() diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 4fbf7399..244c49a8 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -507,9 +507,9 @@ func (f *FriendMod) GetActLogLast() *ActLogInfo { return f.ActivityLog[len(f.ActivityLog)-1] } -func (f *FriendMod) AddReplyInfo(Uid int, Type int, Param string, EndTime int64, Items []*item.Item) { +func (f *FriendMod) AddReplyInfo(Uid int, Type int, Param string, EndTime int64, Items []*item.Item) *ReplyInfo { f.AutoId++ - f.ReplyList = append(f.ReplyList, &ReplyInfo{ + ReplyInfo := &ReplyInfo{ Id: f.AutoId, Uid: Uid, Type: Type, @@ -518,7 +518,9 @@ func (f *FriendMod) AddReplyInfo(Uid int, Type int, Param string, EndTime int64, AddTime: GoUtil.Now(), EndTime: EndTime, Items: Items, - }) + } + f.ReplyList = append(f.ReplyList, ReplyInfo) + return ReplyInfo } func (f *FriendMod) ReplyFriend(LogId int) *ReplyInfo { diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 090e7854..acdf437d 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -15753,7 +15753,7 @@ func (x *ResFriendApplyNotify) GetTime() int32 { type ResFriendReplyNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields @@ -15790,9 +15790,9 @@ func (*ResFriendReplyNotify) Descriptor() ([]byte, []int) { return file_proto_Gameapi_proto_rawDescGZIP(), []int{259} } -func (x *ResFriendReplyNotify) GetPlayer() *ResPlayerSimple { +func (x *ResFriendReplyNotify) GetInfo() *ResFriendLog { if x != nil { - return x.Player + return x.Info } return nil } @@ -28736,9 +28736,9 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x14ResFriendApplyNotify\x121\n" + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x03 \x01(\x05R\x04Time\"q\n" + - "\x14ResFriendReplyNotify\x121\n" + - "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\"j\n" + + "\x14ResFriendReplyNotify\x12*\n" + + "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + "\x04Time\x18\x03 \x01(\x05R\x04Time\"6\n" + "\x0eReqApplyFriend\x12\x10\n" + @@ -30590,7 +30590,7 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 153: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE 2, // 154: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE 233, // 155: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 233, // 156: tutorial.ResFriendReplyNotify.Player:type_name -> tutorial.ResPlayerSimple + 236, // 156: tutorial.ResFriendReplyNotify.info:type_name -> tutorial.ResFriendLog 2, // 157: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE 2, // 158: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE 233, // 159: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple From 58033e959f2633d50bac573d56cd413c216014ce Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 10:28:33 +0800 Subject: [PATCH 024/104] =?UTF-8?q?=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/MessageHandler.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/server/game/MessageHandler.go b/src/server/game/MessageHandler.go index 39aad8fb..546bac7a 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/MessageHandler.go @@ -416,12 +416,17 @@ func (p *Player) handle(m *msg.Msg) error { } CatnipMod.BeInvited(int(m.From), m.SendT) FriendMod := p.PlayMod.getFriendMod() - FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) + ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Player: PlayerSimpleData, - Type: int32(friend.REPLY_TYPE_CATNIP), - Time: int32(m.SendT), + Info: &proto.ResFriendLog{ + Player: PlayerSimpleData, + Param: ReplyInfo.Param, + Type: int32(ReplyInfo.Type), + Id: int32(ReplyInfo.Id), + }, + Type: int32(friend.REPLY_TYPE_CATNIP), + Time: int32(m.SendT), }) case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() From b29eee3a1a4bcf12ecc17dd99ba83d02b1a9be5e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 10:45:06 +0800 Subject: [PATCH 025/104] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7?= =?UTF-8?q?=E4=BD=9C=E6=88=98=E3=80=91=E8=A1=A5=E5=8F=91=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/ActivityFunc.go | 14 ++++++++++++-- src/server/game/mod/catnip/Catnip.go | 22 ++++++++++++++++++---- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index 02f9e896..e7404c01 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -7,6 +7,7 @@ import ( catnipCfg "server/conf/catnip" guesscolorCfg "server/conf/guessColor" itemCfg "server/conf/item" + languageCfg "server/conf/language" mailCfg "server/conf/mail" miningCfg "server/conf/mining" passCfg "server/conf/pass" @@ -60,9 +61,18 @@ func (p *Player) ActivityLogin() { // 猫草大作战 ActivityId = p.GetActivityId(activity.ACT_TYPE_CATNIP) CatnipMod := p.PlayMod.getCatnipMod() - OldId = CatnipMod.Login(ActivityId) - if OldId != 0 { + OldId, CatnipUnReward := CatnipMod.Login(ActivityId) + if OldId != 0 && len(CatnipUnReward) > 0 { // 清空猫草大作战数据无需发邮件 + MailMod := p.PlayMod.getMailMod() + MailMod.SendMail(&mail.MailStruct{ + Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_title"), + TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_title"), + Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_content"), + ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_content"), + Items: CatnipUnReward, + Type: mail.MAIL_TYPE_NORMAL, + }) } // 通行证 diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index 5f2c43de..eeffce73 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -52,15 +52,16 @@ func (c *CatnipMod) InitData() { } } -func (c *CatnipMod) Login(Id int) int { +func (c *CatnipMod) Login(Id int) (int, []*item.Item) { OldId := c.Id if Id == 0 { c.Id = 0 - return OldId + return OldId, nil } if c.Id == Id { - return 0 + return 0, nil } + Items := c.GetUnGetReward() c.Id = Id c.IsGetGrandReward = false // Reset grand reward status on login c.Game = make(map[int]*CatnipGame) @@ -76,7 +77,7 @@ func (c *CatnipMod) Login(Id int) int { Status: GAME_STATUS_IDLE, // Not started } } - return c.Id + return c.Id, Items } func (c *CatnipMod) ZeroUpdate(Id int) { @@ -260,3 +261,16 @@ func (c *CatnipMod) GetGameInfo(Id int) *CatnipGame { func (c *CatnipMod) SetSendEmoji(Id, EmojiId int) { c.Game[Id].SendEmoji = EmojiId } + +func (c *CatnipMod) GetUnGetReward() []*item.Item { + var rewards []*item.Item + for _, v := range c.Game { + Items, _, _ := c.Reward(v.Id) + rewards = append(rewards, Items...) + } + BigReward, err := c.GrandReward() + if err == nil { + rewards = append(rewards, BigReward...) + } + return rewards +} From eb7cee0292785f3e885c7b177249fde0d89b9324 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:04:35 +0800 Subject: [PATCH 026/104] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=A1=A5=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/ActivityFunc.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index e7404c01..48a10824 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -66,10 +66,10 @@ func (p *Player) ActivityLogin() { // 清空猫草大作战数据无需发邮件 MailMod := p.PlayMod.getMailMod() MailMod.SendMail(&mail.MailStruct{ - Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_title"), - TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_title"), - Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_content"), - ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_content"), + Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"), + TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_title"), + Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_content"), + ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"), Items: CatnipUnReward, Type: mail.MAIL_TYPE_NORMAL, }) From bd6c3380bad2d32e2db630e9b174f639f19caa40 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:47:57 +0800 Subject: [PATCH 027/104] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/benchmark_test.go | 32 ----- src/server/cluster/Cluster.go | 2 +- .../{ClusterFunc.go => cluster_func.go} | 2 +- .../cluster/{Type.go => cluster_type.go} | 0 .../{ActivityCfg.go => activity_cfg.go} | 2 +- .../avatar/{AvatarCfg.go => avatar_cfg.go} | 0 .../conf/base/{BaseCfg.go => base_cfg.go} | 0 .../conf/card/{CardCfg.go => card_cfg.go} | 2 +- .../catnip/{CatnipCfg.go => catnip_cfg.go} | 2 +- .../{ChampshipCfg.go => champship_cfg.go} | 2 +- .../charge/{ChargeCfg.go => charge_cfg.go} | 2 +- .../collect/{CollectCfg.go => collect_cfg.go} | 2 +- .../daily_task_cfg.go} | 0 .../{DecorateCfg.go => decorate_cfg.go} | 0 .../conf/emoji/{emojiCfg.go => emoji_cfg.go} | 2 +- .../endless/{EndlessCfg.go => endless_cfg.go} | 0 .../conf/face/{FaceCfg.go => face_cfg.go} | 0 .../friend/{friendCfg.go => friend_cfg.go} | 0 .../friend_treasure_cfg.go} | 2 +- .../guess_color_cfg.go} | 2 +- .../conf/guide/{guideCfg.go => guide_cfg.go} | 0 .../guide_task_cfg.go} | 2 +- .../guide_task_cfg_test.go} | 0 .../{handbookCfg.go => handbook_cfg.go} | 0 .../invite/{inviteCfg.go => invite_cfg.go} | 0 .../conf/item/{ItemCfg.go => Item_cfg.go} | 0 .../{languageCfg.go => language_cfg.go} | 0 .../limited_time_event_cfg.go} | 2 +- .../conf/mail/{mailCfg.go => mail_cfg.go} | 2 +- .../merge_data_cfg.go} | 2 +- .../mining/{miningCfg.go => mining_cfg.go} | 2 +- .../conf/order/{orderCfg.go => order_cfg.go} | 0 .../conf/pass/{passCfg.go => pass_cfg.go} | 0 .../{playroomCfg.go => playroom_cfg.go} | 2 +- .../conf/race/{raceCfg.go => race_cfg.go} | 0 .../{randnameCfg.go => randname_cfg.go} | 2 +- .../seven_login_cfg.go} | 0 .../start_merge_cfg.go} | 0 .../conf/user/{UserData.go => user_cfg.go} | 0 src/server/db/Mysql.go | 2 +- src/server/game/GameLogic.go | 2 +- .../{ActivityFunc.go => activity_func.go} | 4 +- src/server/game/admin.go | 2 +- src/server/game/{BanMgr.go => ban_mgr.go} | 2 +- .../{ChampshipMgr.go => champship_mgr.go} | 2 +- .../game/{ChargeFunc.go => charge_func.go} | 4 +- .../game/{ClusterMgr.go => cluster_mgr.go} | 0 ...mpensationFunc.go => compensation_func.go} | 0 src/server/game/external.go | 2 +- .../game/{FriendFunc.go => friend_func.go} | 2 +- .../game/{FriendMgr.go => friend_mgr.go} | 2 +- src/server/game/{Type.go => game_type.go} | 2 +- src/server/game/{Gm.go => gm_handler.go} | 4 +- src/server/game/internal/chanrpc.go | 2 +- src/server/game/internal/module.go | 2 +- ...TimeTrigger.go => limited_time_trigger.go} | 4 +- src/server/game/{LogMgr.go => log_mgr.go} | 0 src/server/game/{MailMgr.go => mail_mgr.go} | 2 +- .../{MessageHandler.go => message_handler.go} | 8 +- src/server/game/mod/activity/activity.go | 2 +- .../{activityGift.go => activity_gift.go} | 2 +- src/server/game/mod/avatar/Avatar.go | 2 +- src/server/game/mod/base/Base.go | 2 +- src/server/game/mod/card/Card.go | 2 +- .../mod/card/{CardFunc.go => card_func.go} | 2 +- src/server/game/mod/catnip/Catnip.go | 2 +- src/server/game/mod/champship/Champship.go | 4 +- src/server/game/mod/charge/Charge.go | 4 +- .../charge/{ChargeFunc.go => charge_func.go} | 0 src/server/game/mod/chess/Chess.go | 6 +- src/server/game/mod/collect/Collect.go | 2 +- .../game/mod/compensation/compensation.go | 2 +- .../{dailyTask => daily_task}/DailyFunc.go | 4 +- .../{dailyTask => daily_task}/DailyTask.go | 4 +- src/server/game/mod/decorate/Decorate.go | 4 +- src/server/game/mod/emoji/emoji.go | 2 +- .../{EndlessFunc.go => endless_func.go} | 2 +- src/server/game/mod/face/Face.go | 2 +- src/server/game/mod/friend/Friend.go | 2 +- .../friend_treasure.go} | 4 +- .../guess_color.go} | 4 +- src/server/game/mod/guide/Guide.go | 2 +- .../guideTask.go => guide_task/guide_task.go} | 4 +- src/server/game/mod/handbook/Handbook.go | 2 +- src/server/game/mod/invite/invite.go | 2 +- .../limited_time_event.go} | 6 +- src/server/game/mod/mail/Mail.go | 2 +- src/server/game/mod/order/Order.go | 6 +- .../mod/order/{OrderFunc.go => order_func.go} | 4 +- src/server/game/mod/pass/Pass.go | 2 +- .../piggyBank.go => piggy_bank/piggy_bank.go} | 2 +- src/server/game/mod/playroom/playroom.go | 4 +- src/server/game/mod/quest/Quest.go | 2 +- src/server/game/mod/race/race.go | 2 +- .../seven_login.go} | 4 +- .../seven_login_func.go} | 4 +- .../game/{PlayerBack.go => player_back.go} | 4 +- .../{PlayerBaseMod.go => player_base_mod.go} | 2 +- ...{PlayerChessMod.go => player_chess_mod.go} | 6 +- src/server/game/{Player.go => player_data.go} | 10 +- .../game/{PlayerLog.go => player_log.go} | 0 .../game/{PlayerMod.go => player_mod.go} | 14 +-- src/server/game/{RankMgr.go => rank_mgr.go} | 2 +- ...etworkFunc.go => register_network_func.go} | 12 +- .../game/{ServerMod.go => server_mod.go} | 2 +- .../game/{Trigger.go => trigger_func.go} | 4 +- src/server/game/{UnitTest.go => unit_test.go} | 2 +- src/server/game/{VarMgr.go => var_mgr.go} | 2 +- src/server/game_rpc/admin_server.go | 1 + .../{GoUtil => game_util}/AliyunSmsApi.go | 0 src/server/{GoUtil => game_util}/GoUtil.go | 0 .../aliyun_open_api.go} | 0 src/server/{GoUtil => game_util}/feishu.go | 0 src/server/{GoUtil => game_util}/mapUtil.go | 2 +- src/server/{GoUtil => game_util}/mathUtil.go | 0 src/server/{GoUtil => game_util}/randUtil.go | 0 src/server/{GoUtil => game_util}/sliceUtil.go | 0 src/server/{GoUtil => game_util}/timeUtil.go | 0 .../{configStruct.go => config_struct.go} | 0 src/server/pay/google.go | 109 ------------------ .../pkg/github.com/name5566/leaf/leaf.go | 2 +- 121 files changed, 129 insertions(+), 269 deletions(-) rename src/server/cluster/{ClusterFunc.go => cluster_func.go} (99%) rename src/server/cluster/{Type.go => cluster_type.go} (100%) rename src/server/conf/activity/{ActivityCfg.go => activity_cfg.go} (99%) rename src/server/conf/avatar/{AvatarCfg.go => avatar_cfg.go} (100%) rename src/server/conf/base/{BaseCfg.go => base_cfg.go} (100%) rename src/server/conf/card/{CardCfg.go => card_cfg.go} (99%) rename src/server/conf/catnip/{CatnipCfg.go => catnip_cfg.go} (99%) rename src/server/conf/champship/{ChampshipCfg.go => champship_cfg.go} (98%) rename src/server/conf/charge/{ChargeCfg.go => charge_cfg.go} (99%) rename src/server/conf/collect/{CollectCfg.go => collect_cfg.go} (97%) rename src/server/conf/{dailyTask/DailyTaskCfg.go => daily_task/daily_task_cfg.go} (100%) rename src/server/conf/decorate/{DecorateCfg.go => decorate_cfg.go} (100%) rename src/server/conf/emoji/{emojiCfg.go => emoji_cfg.go} (96%) rename src/server/conf/endless/{EndlessCfg.go => endless_cfg.go} (100%) rename src/server/conf/face/{FaceCfg.go => face_cfg.go} (100%) rename src/server/conf/friend/{friendCfg.go => friend_cfg.go} (100%) rename src/server/conf/{friendTreasure/friendTreasureCfg.go => friend_treasure/friend_treasure_cfg.go} (98%) rename src/server/conf/{guessColor/guessColorCfg..go => guess_color/guess_color_cfg.go} (98%) rename src/server/conf/guide/{guideCfg.go => guide_cfg.go} (100%) rename src/server/conf/{guideTask/GuideTaskCfg.go => guide_task/guide_task_cfg.go} (98%) rename src/server/conf/{guideTask/GuideTaskCfg_test.go => guide_task/guide_task_cfg_test.go} (100%) rename src/server/conf/handbook/{handbookCfg.go => handbook_cfg.go} (100%) rename src/server/conf/invite/{inviteCfg.go => invite_cfg.go} (100%) rename src/server/conf/item/{ItemCfg.go => Item_cfg.go} (100%) rename src/server/conf/language/{languageCfg.go => language_cfg.go} (100%) rename src/server/conf/{limitedTimeEvent/LimitedTimeEventCfg.go => limited_time_event/limited_time_event_cfg.go} (99%) rename src/server/conf/mail/{mailCfg.go => mail_cfg.go} (99%) rename src/server/conf/{mergeData/MergeDataCfg.go => merge_data/merge_data_cfg.go} (99%) rename src/server/conf/mining/{miningCfg.go => mining_cfg.go} (98%) rename src/server/conf/order/{orderCfg.go => order_cfg.go} (100%) rename src/server/conf/pass/{passCfg.go => pass_cfg.go} (100%) rename src/server/conf/playroom/{playroomCfg.go => playroom_cfg.go} (99%) rename src/server/conf/race/{raceCfg.go => race_cfg.go} (100%) rename src/server/conf/randname/{randnameCfg.go => randname_cfg.go} (97%) rename src/server/conf/{sevenLogin/SevenLoginCfg.go => seven_login/seven_login_cfg.go} (100%) rename src/server/conf/{startMerge/StartMergeCfg.go => start_merge/start_merge_cfg.go} (100%) rename src/server/conf/user/{UserData.go => user_cfg.go} (100%) rename src/server/game/{ActivityFunc.go => activity_func.go} (99%) rename src/server/game/{BanMgr.go => ban_mgr.go} (98%) rename src/server/game/{ChampshipMgr.go => champship_mgr.go} (99%) rename src/server/game/{ChargeFunc.go => charge_func.go} (99%) rename src/server/game/{ClusterMgr.go => cluster_mgr.go} (100%) rename src/server/game/{CompensationFunc.go => compensation_func.go} (100%) rename src/server/game/{FriendFunc.go => friend_func.go} (99%) rename src/server/game/{FriendMgr.go => friend_mgr.go} (99%) rename src/server/game/{Type.go => game_type.go} (97%) rename src/server/game/{Gm.go => gm_handler.go} (99%) rename src/server/game/{LimitedTimeTrigger.go => limited_time_trigger.go} (99%) rename src/server/game/{LogMgr.go => log_mgr.go} (100%) rename src/server/game/{MailMgr.go => mail_mgr.go} (98%) rename src/server/game/{MessageHandler.go => message_handler.go} (99%) rename src/server/game/mod/activity/{activityGift.go => activity_gift.go} (93%) rename src/server/game/mod/card/{CardFunc.go => card_func.go} (93%) rename src/server/game/mod/charge/{ChargeFunc.go => charge_func.go} (100%) rename src/server/game/mod/{dailyTask => daily_task}/DailyFunc.go (93%) rename src/server/game/mod/{dailyTask => daily_task}/DailyTask.go (98%) rename src/server/game/mod/endless/{EndlessFunc.go => endless_func.go} (98%) rename src/server/game/mod/{friendTreasure.go/friendTreasure.go => friend_treasure.go/friend_treasure.go} (97%) rename src/server/game/mod/{guessColor/guessColor.go => guess_color/guess_color.go} (97%) rename src/server/game/mod/{guideTask/guideTask.go => guide_task/guide_task.go} (98%) rename src/server/game/mod/{limitedTimeEvent/LimitedTimeEvent.go => limited_time_event/limited_time_event.go} (99%) rename src/server/game/mod/order/{OrderFunc.go => order_func.go} (99%) rename src/server/game/mod/{piggyBank/piggyBank.go => piggy_bank/piggy_bank.go} (98%) rename src/server/game/mod/{sevenLogin/SevenLogin.go => seven_login/seven_login.go} (98%) rename src/server/game/mod/{sevenLogin/SevenLoginFunc.go => seven_login/seven_login_func.go} (98%) rename src/server/game/{PlayerBack.go => player_back.go} (99%) rename src/server/game/{PlayerBaseMod.go => player_base_mod.go} (99%) rename src/server/game/{PlayerChessMod.go => player_chess_mod.go} (99%) rename src/server/game/{Player.go => player_data.go} (99%) rename src/server/game/{PlayerLog.go => player_log.go} (100%) rename src/server/game/{PlayerMod.go => player_mod.go} (97%) rename src/server/game/{RankMgr.go => rank_mgr.go} (99%) rename src/server/game/{RegisterNetworkFunc.go => register_network_func.go} (99%) rename src/server/game/{ServerMod.go => server_mod.go} (99%) rename src/server/game/{Trigger.go => trigger_func.go} (99%) rename src/server/game/{UnitTest.go => unit_test.go} (99%) rename src/server/game/{VarMgr.go => var_mgr.go} (99%) create mode 100644 src/server/game_rpc/admin_server.go rename src/server/{GoUtil => game_util}/AliyunSmsApi.go (100%) rename src/server/{GoUtil => game_util}/GoUtil.go (100%) rename src/server/{GoUtil/AliyunOpenApi.go => game_util/aliyun_open_api.go} (100%) rename src/server/{GoUtil => game_util}/feishu.go (100%) rename src/server/{GoUtil => game_util}/mapUtil.go (97%) rename src/server/{GoUtil => game_util}/mathUtil.go (100%) rename src/server/{GoUtil => game_util}/randUtil.go (100%) rename src/server/{GoUtil => game_util}/sliceUtil.go (100%) rename src/server/{GoUtil => game_util}/timeUtil.go (100%) rename src/server/gamedata/{configStruct.go => config_struct.go} (100%) delete mode 100644 src/server/pay/google.go diff --git a/src/server/benchmark_test.go b/src/server/benchmark_test.go index dfc02b0f..f1c7dc52 100644 --- a/src/server/benchmark_test.go +++ b/src/server/benchmark_test.go @@ -4,9 +4,7 @@ import ( "fmt" "runtime" "server/game" - "server/game/mod/msg" "testing" - "time" ) // func TestBenchInit(t *testing.T) { @@ -20,36 +18,6 @@ import ( // } // } // } -func BenchmarkGame(b *testing.B) { - runtime.GOMAXPROCS(2) - fmt.Print("BenchmarkGame") - f := "wmz00%d" - for i := 0; i < 10000; i++ { - go func() { - UserName := fmt.Sprintf(f, i) - p1 := new(game.Player) - err := p1.InitPlayer(UserName) - if err != nil { - fmt.Println(err) - } - game.G_GameLogicPtr.SetPlayer(p1) - for { - time.Sleep(1 * time.Second) - game.Benchmark(p1) - } - }() - } - go func() { - time.Sleep(20 * time.Second) - game.G_GameLogicPtr.ChampshipMgrSend(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, - }) - }() - for { - time.Sleep(1 * time.Second) - printMemUsage() - } -} func BenchmarkLog(b *testing.B) { runtime.GOMAXPROCS(2) diff --git a/src/server/cluster/Cluster.go b/src/server/cluster/Cluster.go index 254f623a..053909e5 100644 --- a/src/server/cluster/Cluster.go +++ b/src/server/cluster/Cluster.go @@ -3,9 +3,9 @@ package mergeCluster import ( "fmt" "math" - "server/GoUtil" "server/conf" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "server/pkg/github.com/name5566/leaf/network" "sync" diff --git a/src/server/cluster/ClusterFunc.go b/src/server/cluster/cluster_func.go similarity index 99% rename from src/server/cluster/ClusterFunc.go rename to src/server/cluster/cluster_func.go index b610540b..f22ff9d6 100644 --- a/src/server/cluster/ClusterFunc.go +++ b/src/server/cluster/cluster_func.go @@ -2,9 +2,9 @@ package mergeCluster import ( "fmt" - "server/GoUtil" "server/conf" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "server/pkg/github.com/name5566/leaf/network" "time" diff --git a/src/server/cluster/Type.go b/src/server/cluster/cluster_type.go similarity index 100% rename from src/server/cluster/Type.go rename to src/server/cluster/cluster_type.go diff --git a/src/server/conf/activity/ActivityCfg.go b/src/server/conf/activity/activity_cfg.go similarity index 99% rename from src/server/conf/activity/ActivityCfg.go rename to src/server/conf/activity/activity_cfg.go index e09cae97..8ab34b62 100644 --- a/src/server/conf/activity/ActivityCfg.go +++ b/src/server/conf/activity/activity_cfg.go @@ -1,9 +1,9 @@ package activityCfg import ( - "server/GoUtil" languageCfg "server/conf/language" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/msg" "server/pkg/github.com/name5566/leaf/log" diff --git a/src/server/conf/avatar/AvatarCfg.go b/src/server/conf/avatar/avatar_cfg.go similarity index 100% rename from src/server/conf/avatar/AvatarCfg.go rename to src/server/conf/avatar/avatar_cfg.go diff --git a/src/server/conf/base/BaseCfg.go b/src/server/conf/base/base_cfg.go similarity index 100% rename from src/server/conf/base/BaseCfg.go rename to src/server/conf/base/base_cfg.go diff --git a/src/server/conf/card/CardCfg.go b/src/server/conf/card/card_cfg.go similarity index 99% rename from src/server/conf/card/CardCfg.go rename to src/server/conf/card/card_cfg.go index 7849b690..a3f221db 100644 --- a/src/server/conf/card/CardCfg.go +++ b/src/server/conf/card/card_cfg.go @@ -1,8 +1,8 @@ package cardCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "strconv" diff --git a/src/server/conf/catnip/CatnipCfg.go b/src/server/conf/catnip/catnip_cfg.go similarity index 99% rename from src/server/conf/catnip/CatnipCfg.go rename to src/server/conf/catnip/catnip_cfg.go index bdc1742d..d60b89d3 100644 --- a/src/server/conf/catnip/CatnipCfg.go +++ b/src/server/conf/catnip/catnip_cfg.go @@ -1,8 +1,8 @@ package catnipCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/conf/champship/ChampshipCfg.go b/src/server/conf/champship/champship_cfg.go similarity index 98% rename from src/server/conf/champship/ChampshipCfg.go rename to src/server/conf/champship/champship_cfg.go index 82851c52..47211d3f 100644 --- a/src/server/conf/champship/ChampshipCfg.go +++ b/src/server/conf/champship/champship_cfg.go @@ -1,8 +1,8 @@ package champshipCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/conf/charge/ChargeCfg.go b/src/server/conf/charge/charge_cfg.go similarity index 99% rename from src/server/conf/charge/ChargeCfg.go rename to src/server/conf/charge/charge_cfg.go index b9153c61..a86d48c3 100644 --- a/src/server/conf/charge/ChargeCfg.go +++ b/src/server/conf/charge/charge_cfg.go @@ -1,8 +1,8 @@ package chargeCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "sort" "strings" diff --git a/src/server/conf/collect/CollectCfg.go b/src/server/conf/collect/collect_cfg.go similarity index 97% rename from src/server/conf/collect/CollectCfg.go rename to src/server/conf/collect/collect_cfg.go index 35be1bb5..22b8dc3a 100644 --- a/src/server/conf/collect/CollectCfg.go +++ b/src/server/conf/collect/collect_cfg.go @@ -1,8 +1,8 @@ package collectCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/conf/dailyTask/DailyTaskCfg.go b/src/server/conf/daily_task/daily_task_cfg.go similarity index 100% rename from src/server/conf/dailyTask/DailyTaskCfg.go rename to src/server/conf/daily_task/daily_task_cfg.go diff --git a/src/server/conf/decorate/DecorateCfg.go b/src/server/conf/decorate/decorate_cfg.go similarity index 100% rename from src/server/conf/decorate/DecorateCfg.go rename to src/server/conf/decorate/decorate_cfg.go diff --git a/src/server/conf/emoji/emojiCfg.go b/src/server/conf/emoji/emoji_cfg.go similarity index 96% rename from src/server/conf/emoji/emojiCfg.go rename to src/server/conf/emoji/emoji_cfg.go index 5bbc7308..f60995cf 100644 --- a/src/server/conf/emoji/emojiCfg.go +++ b/src/server/conf/emoji/emoji_cfg.go @@ -1,7 +1,7 @@ package emojiCfg import ( - "server/GoUtil" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/conf/endless/EndlessCfg.go b/src/server/conf/endless/endless_cfg.go similarity index 100% rename from src/server/conf/endless/EndlessCfg.go rename to src/server/conf/endless/endless_cfg.go diff --git a/src/server/conf/face/FaceCfg.go b/src/server/conf/face/face_cfg.go similarity index 100% rename from src/server/conf/face/FaceCfg.go rename to src/server/conf/face/face_cfg.go diff --git a/src/server/conf/friend/friendCfg.go b/src/server/conf/friend/friend_cfg.go similarity index 100% rename from src/server/conf/friend/friendCfg.go rename to src/server/conf/friend/friend_cfg.go diff --git a/src/server/conf/friendTreasure/friendTreasureCfg.go b/src/server/conf/friend_treasure/friend_treasure_cfg.go similarity index 98% rename from src/server/conf/friendTreasure/friendTreasureCfg.go rename to src/server/conf/friend_treasure/friend_treasure_cfg.go index 15872a3e..acf1c133 100644 --- a/src/server/conf/friendTreasure/friendTreasureCfg.go +++ b/src/server/conf/friend_treasure/friend_treasure_cfg.go @@ -1,8 +1,8 @@ package friendTreasureCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/conf/guessColor/guessColorCfg..go b/src/server/conf/guess_color/guess_color_cfg.go similarity index 98% rename from src/server/conf/guessColor/guessColorCfg..go rename to src/server/conf/guess_color/guess_color_cfg.go index 932d979a..872622a0 100644 --- a/src/server/conf/guessColor/guessColorCfg..go +++ b/src/server/conf/guess_color/guess_color_cfg.go @@ -1,8 +1,8 @@ package guesscolorCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "strings" ) diff --git a/src/server/conf/guide/guideCfg.go b/src/server/conf/guide/guide_cfg.go similarity index 100% rename from src/server/conf/guide/guideCfg.go rename to src/server/conf/guide/guide_cfg.go diff --git a/src/server/conf/guideTask/GuideTaskCfg.go b/src/server/conf/guide_task/guide_task_cfg.go similarity index 98% rename from src/server/conf/guideTask/GuideTaskCfg.go rename to src/server/conf/guide_task/guide_task_cfg.go index 19a4255a..c0158042 100644 --- a/src/server/conf/guideTask/GuideTaskCfg.go +++ b/src/server/conf/guide_task/guide_task_cfg.go @@ -1,8 +1,8 @@ package GuideTaskCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "strconv" diff --git a/src/server/conf/guideTask/GuideTaskCfg_test.go b/src/server/conf/guide_task/guide_task_cfg_test.go similarity index 100% rename from src/server/conf/guideTask/GuideTaskCfg_test.go rename to src/server/conf/guide_task/guide_task_cfg_test.go diff --git a/src/server/conf/handbook/handbookCfg.go b/src/server/conf/handbook/handbook_cfg.go similarity index 100% rename from src/server/conf/handbook/handbookCfg.go rename to src/server/conf/handbook/handbook_cfg.go diff --git a/src/server/conf/invite/inviteCfg.go b/src/server/conf/invite/invite_cfg.go similarity index 100% rename from src/server/conf/invite/inviteCfg.go rename to src/server/conf/invite/invite_cfg.go diff --git a/src/server/conf/item/ItemCfg.go b/src/server/conf/item/Item_cfg.go similarity index 100% rename from src/server/conf/item/ItemCfg.go rename to src/server/conf/item/Item_cfg.go diff --git a/src/server/conf/language/languageCfg.go b/src/server/conf/language/language_cfg.go similarity index 100% rename from src/server/conf/language/languageCfg.go rename to src/server/conf/language/language_cfg.go diff --git a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go b/src/server/conf/limited_time_event/limited_time_event_cfg.go similarity index 99% rename from src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go rename to src/server/conf/limited_time_event/limited_time_event_cfg.go index 6c4e30b7..99efcf8b 100644 --- a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go +++ b/src/server/conf/limited_time_event/limited_time_event_cfg.go @@ -1,8 +1,8 @@ package limitedTimeEventCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/conf/mail/mailCfg.go b/src/server/conf/mail/mail_cfg.go similarity index 99% rename from src/server/conf/mail/mailCfg.go rename to src/server/conf/mail/mail_cfg.go index 73a11f6c..c237068a 100644 --- a/src/server/conf/mail/mailCfg.go +++ b/src/server/conf/mail/mail_cfg.go @@ -2,9 +2,9 @@ package mailCfg import ( "fmt" - "server/GoUtil" languageCfg "server/conf/language" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/msg" "strings" diff --git a/src/server/conf/mergeData/MergeDataCfg.go b/src/server/conf/merge_data/merge_data_cfg.go similarity index 99% rename from src/server/conf/mergeData/MergeDataCfg.go rename to src/server/conf/merge_data/merge_data_cfg.go index ae3c8220..fa7c00fe 100644 --- a/src/server/conf/mergeData/MergeDataCfg.go +++ b/src/server/conf/merge_data/merge_data_cfg.go @@ -2,8 +2,8 @@ package mergeDataCfg import ( "errors" - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "strconv" diff --git a/src/server/conf/mining/miningCfg.go b/src/server/conf/mining/mining_cfg.go similarity index 98% rename from src/server/conf/mining/miningCfg.go rename to src/server/conf/mining/mining_cfg.go index efb72bfd..c1a90bba 100644 --- a/src/server/conf/mining/miningCfg.go +++ b/src/server/conf/mining/mining_cfg.go @@ -1,8 +1,8 @@ package miningCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "strconv" "strings" diff --git a/src/server/conf/order/orderCfg.go b/src/server/conf/order/order_cfg.go similarity index 100% rename from src/server/conf/order/orderCfg.go rename to src/server/conf/order/order_cfg.go diff --git a/src/server/conf/pass/passCfg.go b/src/server/conf/pass/pass_cfg.go similarity index 100% rename from src/server/conf/pass/passCfg.go rename to src/server/conf/pass/pass_cfg.go diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroom_cfg.go similarity index 99% rename from src/server/conf/playroom/playroomCfg.go rename to src/server/conf/playroom/playroom_cfg.go index 61faae1d..89d30a00 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroom_cfg.go @@ -1,8 +1,8 @@ package playroomCfg import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "strings" diff --git a/src/server/conf/race/raceCfg.go b/src/server/conf/race/race_cfg.go similarity index 100% rename from src/server/conf/race/raceCfg.go rename to src/server/conf/race/race_cfg.go diff --git a/src/server/conf/randname/randnameCfg.go b/src/server/conf/randname/randname_cfg.go similarity index 97% rename from src/server/conf/randname/randnameCfg.go rename to src/server/conf/randname/randname_cfg.go index 0a8a04ec..b0f4cdcf 100644 --- a/src/server/conf/randname/randnameCfg.go +++ b/src/server/conf/randname/randname_cfg.go @@ -1,7 +1,7 @@ package randnameCfg import ( - "server/GoUtil" + GoUtil "server/game_util" "server/gamedata" "strconv" ) diff --git a/src/server/conf/sevenLogin/SevenLoginCfg.go b/src/server/conf/seven_login/seven_login_cfg.go similarity index 100% rename from src/server/conf/sevenLogin/SevenLoginCfg.go rename to src/server/conf/seven_login/seven_login_cfg.go diff --git a/src/server/conf/startMerge/StartMergeCfg.go b/src/server/conf/start_merge/start_merge_cfg.go similarity index 100% rename from src/server/conf/startMerge/StartMergeCfg.go rename to src/server/conf/start_merge/start_merge_cfg.go diff --git a/src/server/conf/user/UserData.go b/src/server/conf/user/user_cfg.go similarity index 100% rename from src/server/conf/user/UserData.go rename to src/server/conf/user/user_cfg.go diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index 43f835ca..9cb4b880 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -3,9 +3,9 @@ package db import ( "fmt" "reflect" - "server/GoUtil" "server/MergeConst" "server/conf" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "strings" "sync" diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 6c6be5b5..a46b8b02 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -6,10 +6,10 @@ import ( "encoding/json" "fmt" "os" - "server/GoUtil" "server/MergeConst" "server/conf" userCfg "server/conf/user" + GoUtil "server/game_util" "strconv" "sync" diff --git a/src/server/game/ActivityFunc.go b/src/server/game/activity_func.go similarity index 99% rename from src/server/game/ActivityFunc.go rename to src/server/game/activity_func.go index 48a10824..a840a5cc 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/activity_func.go @@ -2,10 +2,9 @@ package game import ( "fmt" - "server/GoUtil" activityCfg "server/conf/activity" catnipCfg "server/conf/catnip" - guesscolorCfg "server/conf/guessColor" + guesscolorCfg "server/conf/guess_color" itemCfg "server/conf/item" languageCfg "server/conf/language" mailCfg "server/conf/mail" @@ -15,6 +14,7 @@ import ( "server/game/mod/activity" "server/game/mod/item" "server/game/mod/mail" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/admin.go b/src/server/game/admin.go index ba4a62e1..45361af8 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -4,11 +4,11 @@ import ( "encoding/json" "fmt" "runtime" - "server/GoUtil" "server/MergeConst" "server/conf" "server/db" Msg "server/game/mod/msg" + GoUtil "server/game_util" "server/gamedata" "server/msg" "server/pkg/github.com/name5566/leaf/gate" diff --git a/src/server/game/BanMgr.go b/src/server/game/ban_mgr.go similarity index 98% rename from src/server/game/BanMgr.go rename to src/server/game/ban_mgr.go index f9ab1588..0bc22fb0 100644 --- a/src/server/game/BanMgr.go +++ b/src/server/game/ban_mgr.go @@ -2,7 +2,7 @@ package game import ( "encoding/gob" - "server/GoUtil" + GoUtil "server/game_util" ) type BanMgr struct { diff --git a/src/server/game/ChampshipMgr.go b/src/server/game/champship_mgr.go similarity index 99% rename from src/server/game/ChampshipMgr.go rename to src/server/game/champship_mgr.go index 8b5d029f..2eec44f1 100644 --- a/src/server/game/ChampshipMgr.go +++ b/src/server/game/champship_mgr.go @@ -2,10 +2,10 @@ package game import ( "math" - "server/GoUtil" champshipCfg "server/conf/champship" randnameCfg "server/conf/randname" "server/game/mod/msg" + GoUtil "server/game_util" proto "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/game/ChargeFunc.go b/src/server/game/charge_func.go similarity index 99% rename from src/server/game/ChargeFunc.go rename to src/server/game/charge_func.go index b6223dc9..836a3214 100644 --- a/src/server/game/ChargeFunc.go +++ b/src/server/game/charge_func.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "os/exec" - "server/GoUtil" "server/MergeConst" "server/conf" activityCfg "server/conf/activity" @@ -14,8 +13,9 @@ import ( "server/game/mod/activity" "server/game/mod/item" MsgMod "server/game/mod/msg" - "server/game/mod/piggyBank" + piggyBank "server/game/mod/piggy_bank" "server/game/mod/quest" + GoUtil "server/game_util" proto "server/msg" "server/pkg/github.com/name5566/leaf/log" "strings" diff --git a/src/server/game/ClusterMgr.go b/src/server/game/cluster_mgr.go similarity index 100% rename from src/server/game/ClusterMgr.go rename to src/server/game/cluster_mgr.go diff --git a/src/server/game/CompensationFunc.go b/src/server/game/compensation_func.go similarity index 100% rename from src/server/game/CompensationFunc.go rename to src/server/game/compensation_func.go diff --git a/src/server/game/external.go b/src/server/game/external.go index 4cb6f5fa..8cf8505a 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -3,10 +3,10 @@ package game import ( "fmt" "reflect" - "server/GoUtil" "server/MergeConst" "server/conf" "server/game/internal" + GoUtil "server/game_util" "strings" "time" diff --git a/src/server/game/FriendFunc.go b/src/server/game/friend_func.go similarity index 99% rename from src/server/game/FriendFunc.go rename to src/server/game/friend_func.go index dcc1fe67..5f7afd4a 100644 --- a/src/server/game/FriendFunc.go +++ b/src/server/game/friend_func.go @@ -1,9 +1,9 @@ package game import ( - "server/GoUtil" "server/db" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "sort" ) diff --git a/src/server/game/FriendMgr.go b/src/server/game/friend_mgr.go similarity index 99% rename from src/server/game/FriendMgr.go rename to src/server/game/friend_mgr.go index cde0258d..787a598a 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/friend_mgr.go @@ -3,7 +3,6 @@ package game import ( "encoding/gob" "fmt" - "server/GoUtil" "server/MergeConst" mergeCluster "server/cluster" "server/conf" @@ -11,6 +10,7 @@ import ( "server/game/mod/friend" "server/game/mod/item" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" ) diff --git a/src/server/game/Type.go b/src/server/game/game_type.go similarity index 97% rename from src/server/game/Type.go rename to src/server/game/game_type.go index 55d416d4..f9ac9e07 100644 --- a/src/server/game/Type.go +++ b/src/server/game/game_type.go @@ -3,7 +3,7 @@ package game import ( "encoding/gob" "server/game/mod/friend" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/msg" ) diff --git a/src/server/game/Gm.go b/src/server/game/gm_handler.go similarity index 99% rename from src/server/game/Gm.go rename to src/server/game/gm_handler.go index a5a85253..d6e9c58d 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/gm_handler.go @@ -5,14 +5,13 @@ import ( "encoding/gob" "fmt" "os" - "server/GoUtil" "server/conf" avatarCfg "server/conf/avatar" cardCfg "server/conf/card" chargeCfg "server/conf/charge" emojiCfg "server/conf/emoji" faceCfg "server/conf/face" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" playroomCfg "server/conf/playroom" "server/db" "server/game/mod/activity" @@ -27,6 +26,7 @@ import ( MsgMod "server/game/mod/msg" "server/game/mod/order" "server/game/mod/playroom" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" "strconv" diff --git a/src/server/game/internal/chanrpc.go b/src/server/game/internal/chanrpc.go index 997cb731..9f4f7e1f 100644 --- a/src/server/game/internal/chanrpc.go +++ b/src/server/game/internal/chanrpc.go @@ -1,8 +1,8 @@ package internal import ( - "server/GoUtil" "server/MergeConst" + GoUtil "server/game_util" "sync" "server/pkg/github.com/name5566/leaf/gate" diff --git a/src/server/game/internal/module.go b/src/server/game/internal/module.go index c779ecf1..d5074b39 100644 --- a/src/server/game/internal/module.go +++ b/src/server/game/internal/module.go @@ -1,8 +1,8 @@ package internal import ( - "server/GoUtil" "server/base" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/module" ) diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/limited_time_trigger.go similarity index 99% rename from src/server/game/LimitedTimeTrigger.go rename to src/server/game/limited_time_trigger.go index 6dd6cf8d..0a6c44e7 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/limited_time_trigger.go @@ -3,14 +3,14 @@ package game import ( "fmt" "math" - "server/GoUtil" playroomCfg "server/conf/playroom" userCfg "server/conf/user" "server/game/mod/card" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" MsgMod "server/game/mod/msg" // Ensure this package exists and is correctly referenced "server/game/mod/playroom" + GoUtil "server/game_util" "server/msg" "time" ) diff --git a/src/server/game/LogMgr.go b/src/server/game/log_mgr.go similarity index 100% rename from src/server/game/LogMgr.go rename to src/server/game/log_mgr.go diff --git a/src/server/game/MailMgr.go b/src/server/game/mail_mgr.go similarity index 98% rename from src/server/game/MailMgr.go rename to src/server/game/mail_mgr.go index b8b0ac84..9351876d 100644 --- a/src/server/game/MailMgr.go +++ b/src/server/game/mail_mgr.go @@ -2,10 +2,10 @@ package game import ( "encoding/json" - "server/GoUtil" "server/db" "server/game/mod/item" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "strings" ) diff --git a/src/server/game/MessageHandler.go b/src/server/game/message_handler.go similarity index 99% rename from src/server/game/MessageHandler.go rename to src/server/game/message_handler.go index 546bac7a..74272463 100644 --- a/src/server/game/MessageHandler.go +++ b/src/server/game/message_handler.go @@ -2,15 +2,14 @@ package game import ( "fmt" - "server/GoUtil" mergeCluster "server/cluster" cardCfg "server/conf/card" catnipCfg "server/conf/catnip" decorateCfg "server/conf/decorate" itemCfg "server/conf/item" - limitedTimeEventCfg "server/conf/limitedTimeEvent" + limitedTimeEventCfg "server/conf/limited_time_event" mailCfg "server/conf/mail" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" playroomCfg "server/conf/playroom" userCfg "server/conf/user" @@ -18,11 +17,12 @@ import ( "server/game/mod/card" "server/game/mod/friend" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/mail" "server/game/mod/msg" "server/game/mod/order" "server/game/mod/playroom" + GoUtil "server/game_util" proto "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/game/mod/activity/activity.go b/src/server/game/mod/activity/activity.go index 131a8298..87e0dac0 100644 --- a/src/server/game/mod/activity/activity.go +++ b/src/server/game/mod/activity/activity.go @@ -3,9 +3,9 @@ package activity import ( "encoding/gob" "fmt" - "server/GoUtil" activityCfg "server/conf/activity" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" ) diff --git a/src/server/game/mod/activity/activityGift.go b/src/server/game/mod/activity/activity_gift.go similarity index 93% rename from src/server/game/mod/activity/activityGift.go rename to src/server/game/mod/activity/activity_gift.go index a7874c21..3d0c174b 100644 --- a/src/server/game/mod/activity/activityGift.go +++ b/src/server/game/mod/activity/activity_gift.go @@ -2,9 +2,9 @@ package activity import ( "fmt" - "server/GoUtil" activityCfg "server/conf/activity" "server/game/mod/item" + GoUtil "server/game_util" ) func (a *Activity) Fire(Id int) ([]*item.Item, error) { diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index 9cc72430..34b73c3b 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -2,8 +2,8 @@ package avatar import ( "fmt" - "server/GoUtil" avatarCfg "server/conf/avatar" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 9c155784..5bd68e39 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -2,10 +2,10 @@ package base import ( "fmt" - "server/GoUtil" "server/conf" baseCfg "server/conf/base" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index a83d3ff8..8b9ce43f 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -2,9 +2,9 @@ package card import ( "fmt" - "server/GoUtil" cardCfg "server/conf/card" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" ) diff --git a/src/server/game/mod/card/CardFunc.go b/src/server/game/mod/card/card_func.go similarity index 93% rename from src/server/game/mod/card/CardFunc.go rename to src/server/game/mod/card/card_func.go index 26bf2b50..3cca87f6 100644 --- a/src/server/game/mod/card/CardFunc.go +++ b/src/server/game/mod/card/card_func.go @@ -1,8 +1,8 @@ package card import ( - "server/GoUtil" cardCfg "server/conf/card" + GoUtil "server/game_util" ) func randCard(Round, Star, IsGold int, Except []int) int { diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index eeffce73..347e6dfd 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -2,9 +2,9 @@ package catnip import ( "fmt" - "server/GoUtil" catnipCfg "server/conf/catnip" "server/game/mod/item" + GoUtil "server/game_util" ) type CatnipMod struct { diff --git a/src/server/game/mod/champship/Champship.go b/src/server/game/mod/champship/Champship.go index 83f0366d..0051fd50 100644 --- a/src/server/game/mod/champship/Champship.go +++ b/src/server/game/mod/champship/Champship.go @@ -2,10 +2,10 @@ package champship import ( "fmt" - "server/GoUtil" champshipCfg "server/conf/champship" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 189aaf16..f832fe30 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -3,12 +3,12 @@ package charge import ( "fmt" "math" - "server/GoUtil" chargeCfg "server/conf/charge" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" playroomCfg "server/conf/playroom" "server/game/mod/item" "server/game/mod/order" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" ) diff --git a/src/server/game/mod/charge/ChargeFunc.go b/src/server/game/mod/charge/charge_func.go similarity index 100% rename from src/server/game/mod/charge/ChargeFunc.go rename to src/server/game/mod/charge/charge_func.go diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index e75362da..34ef4093 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -3,11 +3,11 @@ package chess import ( "errors" "fmt" - "server/GoUtil" - mergeDataCfg "server/conf/mergeData" - startMergeCfg "server/conf/startMerge" + mergeDataCfg "server/conf/merge_data" + startMergeCfg "server/conf/start_merge" userCfg "server/conf/user" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" "sort" "strings" diff --git a/src/server/game/mod/collect/Collect.go b/src/server/game/mod/collect/Collect.go index f3fe1fbc..ccf909f4 100644 --- a/src/server/game/mod/collect/Collect.go +++ b/src/server/game/mod/collect/Collect.go @@ -2,9 +2,9 @@ package collect import ( "fmt" - "server/GoUtil" collectCfg "server/conf/collect" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/compensation/compensation.go b/src/server/game/mod/compensation/compensation.go index d51092ca..45f55548 100644 --- a/src/server/game/mod/compensation/compensation.go +++ b/src/server/game/mod/compensation/compensation.go @@ -1,8 +1,8 @@ package compensation import ( - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" ) type Compensation struct { diff --git a/src/server/game/mod/dailyTask/DailyFunc.go b/src/server/game/mod/daily_task/DailyFunc.go similarity index 93% rename from src/server/game/mod/dailyTask/DailyFunc.go rename to src/server/game/mod/daily_task/DailyFunc.go index 05a76b13..aece0b39 100644 --- a/src/server/game/mod/dailyTask/DailyFunc.go +++ b/src/server/game/mod/daily_task/DailyFunc.go @@ -2,9 +2,9 @@ package dailyTask import ( "math" - "server/GoUtil" - dailyTaskCfg "server/conf/dailyTask" + dailyTaskCfg "server/conf/daily_task" "server/game/mod/item" + GoUtil "server/game_util" "sort" ) diff --git a/src/server/game/mod/dailyTask/DailyTask.go b/src/server/game/mod/daily_task/DailyTask.go similarity index 98% rename from src/server/game/mod/dailyTask/DailyTask.go rename to src/server/game/mod/daily_task/DailyTask.go index f4d99c5c..7c0eea47 100644 --- a/src/server/game/mod/dailyTask/DailyTask.go +++ b/src/server/game/mod/daily_task/DailyTask.go @@ -2,10 +2,10 @@ package dailyTask import ( "fmt" - "server/GoUtil" - dailyTaskCfg "server/conf/dailyTask" + dailyTaskCfg "server/conf/daily_task" "server/game/mod/item" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index ed04d977..dcbf187d 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -3,10 +3,10 @@ package decorate import ( "fmt" "math" - "server/GoUtil" decorateCfg "server/conf/decorate" - limitedTimeEventCfg "server/conf/limitedTimeEvent" + limitedTimeEventCfg "server/conf/limited_time_event" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" "sort" ) diff --git a/src/server/game/mod/emoji/emoji.go b/src/server/game/mod/emoji/emoji.go index d8490afa..ef72caf6 100644 --- a/src/server/game/mod/emoji/emoji.go +++ b/src/server/game/mod/emoji/emoji.go @@ -2,8 +2,8 @@ package emoji import ( "fmt" - "server/GoUtil" emojiCfg "server/conf/emoji" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/endless/EndlessFunc.go b/src/server/game/mod/endless/endless_func.go similarity index 98% rename from src/server/game/mod/endless/EndlessFunc.go rename to src/server/game/mod/endless/endless_func.go index 550f4ed5..d59212d7 100644 --- a/src/server/game/mod/endless/EndlessFunc.go +++ b/src/server/game/mod/endless/endless_func.go @@ -1,9 +1,9 @@ package endless import ( - Util "server/GoUtil" endlessCfg "server/conf/endless" "server/game/mod/item" + Util "server/game_util" ) // 初始化奖励 diff --git a/src/server/game/mod/face/Face.go b/src/server/game/mod/face/Face.go index 51264fec..bddd33fc 100644 --- a/src/server/game/mod/face/Face.go +++ b/src/server/game/mod/face/Face.go @@ -2,8 +2,8 @@ package face import ( "fmt" - "server/GoUtil" faceCfg "server/conf/face" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 244c49a8..fe69b2a6 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -2,11 +2,11 @@ package friend import ( "fmt" - "server/GoUtil" cardCfg "server/conf/card" friendCfg "server/conf/friend" "server/game/mod/card" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/friendTreasure.go/friendTreasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go similarity index 97% rename from src/server/game/mod/friendTreasure.go/friendTreasure.go rename to src/server/game/mod/friend_treasure.go/friend_treasure.go index 20aa23cb..e5c07fbb 100644 --- a/src/server/game/mod/friendTreasure.go/friendTreasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -2,9 +2,9 @@ package friendTreasure import ( "fmt" - "server/GoUtil" - friendTreasureCfg "server/conf/friendTreasure" + friendTreasureCfg "server/conf/friend_treasure" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" ) diff --git a/src/server/game/mod/guessColor/guessColor.go b/src/server/game/mod/guess_color/guess_color.go similarity index 97% rename from src/server/game/mod/guessColor/guessColor.go rename to src/server/game/mod/guess_color/guess_color.go index 4c13e32d..ad6be145 100644 --- a/src/server/game/mod/guessColor/guessColor.go +++ b/src/server/game/mod/guess_color/guess_color.go @@ -2,10 +2,10 @@ package guesscolor import ( "fmt" - "server/GoUtil" - guesscolorCfg "server/conf/guessColor" + guesscolorCfg "server/conf/guess_color" randnameCfg "server/conf/randname" "server/game/mod/item" + GoUtil "server/game_util" ) type GuessColorMod struct { diff --git a/src/server/game/mod/guide/Guide.go b/src/server/game/mod/guide/Guide.go index f6b7582a..94333692 100644 --- a/src/server/game/mod/guide/Guide.go +++ b/src/server/game/mod/guide/Guide.go @@ -2,9 +2,9 @@ package guide import ( "fmt" - "server/GoUtil" guidecfg "server/conf/guide" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/guideTask/guideTask.go b/src/server/game/mod/guide_task/guide_task.go similarity index 98% rename from src/server/game/mod/guideTask/guideTask.go rename to src/server/game/mod/guide_task/guide_task.go index 8c525882..41a75462 100644 --- a/src/server/game/mod/guideTask/guideTask.go +++ b/src/server/game/mod/guide_task/guide_task.go @@ -2,10 +2,10 @@ package guideTask import ( "fmt" - "server/GoUtil" - GuideTaskCfg "server/conf/guideTask" + GuideTaskCfg "server/conf/guide_task" "server/game/mod/item" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/handbook/Handbook.go b/src/server/game/mod/handbook/Handbook.go index 25b9edc6..e5a27346 100644 --- a/src/server/game/mod/handbook/Handbook.go +++ b/src/server/game/mod/handbook/Handbook.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" handbookCfg "server/conf/handbook" - startMergeCfg "server/conf/startMerge" + startMergeCfg "server/conf/start_merge" "server/game/mod/item" "server/msg" ) diff --git a/src/server/game/mod/invite/invite.go b/src/server/game/mod/invite/invite.go index 842bbe3e..cec09006 100644 --- a/src/server/game/mod/invite/invite.go +++ b/src/server/game/mod/invite/invite.go @@ -2,9 +2,9 @@ package invite import ( "fmt" - "server/GoUtil" inviteCfg "server/conf/invite" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limited_time_event/limited_time_event.go similarity index 99% rename from src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go rename to src/server/game/mod/limited_time_event/limited_time_event.go index 8bc6f24b..218c8ae3 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -3,10 +3,10 @@ package limitedTimeEvent import ( "fmt" "math" - "server/GoUtil" - limitedTimeEventCfg "server/conf/limitedTimeEvent" - mergeDataCfg "server/conf/mergeData" + limitedTimeEventCfg "server/conf/limited_time_event" + mergeDataCfg "server/conf/merge_data" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/mail/Mail.go b/src/server/game/mod/mail/Mail.go index b1cd2750..53e08245 100644 --- a/src/server/game/mod/mail/Mail.go +++ b/src/server/game/mod/mail/Mail.go @@ -2,8 +2,8 @@ package mail import ( "fmt" - "server/GoUtil" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 24356935..b2247924 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -2,11 +2,11 @@ package order import ( "fmt" - "server/GoUtil" - limitedTimeEventCfg "server/conf/limitedTimeEvent" - mergeDataCfg "server/conf/mergeData" + limitedTimeEventCfg "server/conf/limited_time_event" + mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" "strings" "time" diff --git a/src/server/game/mod/order/OrderFunc.go b/src/server/game/mod/order/order_func.go similarity index 99% rename from src/server/game/mod/order/OrderFunc.go rename to src/server/game/mod/order/order_func.go index 91cabb17..653a4344 100644 --- a/src/server/game/mod/order/OrderFunc.go +++ b/src/server/game/mod/order/order_func.go @@ -3,10 +3,10 @@ package order import ( "log" "math" - "server/GoUtil" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" userCfg "server/conf/user" + GoUtil "server/game_util" "sort" ) diff --git a/src/server/game/mod/pass/Pass.go b/src/server/game/mod/pass/Pass.go index 9109d535..c1c13f8b 100644 --- a/src/server/game/mod/pass/Pass.go +++ b/src/server/game/mod/pass/Pass.go @@ -1,9 +1,9 @@ package pass import ( - "server/GoUtil" passCfg "server/conf/pass" "server/game/mod/item" + GoUtil "server/game_util" ) type PassMod struct { diff --git a/src/server/game/mod/piggyBank/piggyBank.go b/src/server/game/mod/piggy_bank/piggy_bank.go similarity index 98% rename from src/server/game/mod/piggyBank/piggyBank.go rename to src/server/game/mod/piggy_bank/piggy_bank.go index faeac010..db4174ff 100644 --- a/src/server/game/mod/piggyBank/piggyBank.go +++ b/src/server/game/mod/piggy_bank/piggy_bank.go @@ -1,9 +1,9 @@ package piggyBank import ( - "server/GoUtil" chargeCfg "server/conf/charge" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 2883bc5a..2a7b85c9 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -3,11 +3,11 @@ package playroom import ( "fmt" "math" - "server/GoUtil" - limitedTimeEventCfg "server/conf/limitedTimeEvent" + limitedTimeEventCfg "server/conf/limited_time_event" playroomCfg "server/conf/playroom" "server/game/mod/item" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" "sort" ) diff --git a/src/server/game/mod/quest/Quest.go b/src/server/game/mod/quest/Quest.go index 1620dbf0..41a05914 100644 --- a/src/server/game/mod/quest/Quest.go +++ b/src/server/game/mod/quest/Quest.go @@ -2,7 +2,7 @@ package quest import ( "fmt" - "server/GoUtil" + GoUtil "server/game_util" "server/msg" "strconv" "strings" diff --git a/src/server/game/mod/race/race.go b/src/server/game/mod/race/race.go index 9122ae13..2a5b1628 100644 --- a/src/server/game/mod/race/race.go +++ b/src/server/game/mod/race/race.go @@ -3,10 +3,10 @@ package race import ( "fmt" "math/rand" - "server/GoUtil" raceCfg "server/conf/race" randnameCfg "server/conf/randname" "server/game/mod/item" + GoUtil "server/game_util" ) type RaceMod struct { diff --git a/src/server/game/mod/sevenLogin/SevenLogin.go b/src/server/game/mod/seven_login/seven_login.go similarity index 98% rename from src/server/game/mod/sevenLogin/SevenLogin.go rename to src/server/game/mod/seven_login/seven_login.go index 0795678a..eefd54a2 100644 --- a/src/server/game/mod/sevenLogin/SevenLogin.go +++ b/src/server/game/mod/seven_login/seven_login.go @@ -2,9 +2,9 @@ package sevenLogin import ( "fmt" - "server/GoUtil" - sevenLoginCfg "server/conf/sevenLogin" + sevenLoginCfg "server/conf/seven_login" "server/game/mod/item" + GoUtil "server/game_util" "server/msg" ) diff --git a/src/server/game/mod/sevenLogin/SevenLoginFunc.go b/src/server/game/mod/seven_login/seven_login_func.go similarity index 98% rename from src/server/game/mod/sevenLogin/SevenLoginFunc.go rename to src/server/game/mod/seven_login/seven_login_func.go index 2f1257fa..f86a0b6f 100644 --- a/src/server/game/mod/sevenLogin/SevenLoginFunc.go +++ b/src/server/game/mod/seven_login/seven_login_func.go @@ -2,9 +2,9 @@ package sevenLogin import ( "math/rand/v2" - "server/GoUtil" - sevenLoginCfg "server/conf/sevenLogin" + sevenLoginCfg "server/conf/seven_login" "server/game/mod/item" + GoUtil "server/game_util" "server/gamedata" "sort" ) diff --git a/src/server/game/PlayerBack.go b/src/server/game/player_back.go similarity index 99% rename from src/server/game/PlayerBack.go rename to src/server/game/player_back.go index e4fc9bc1..839b5b31 100644 --- a/src/server/game/PlayerBack.go +++ b/src/server/game/player_back.go @@ -1,11 +1,11 @@ package game import ( - "server/GoUtil" chargeCfg "server/conf/charge" playroomCfg "server/conf/playroom" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" + GoUtil "server/game_util" proto "server/msg" ) diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/player_base_mod.go similarity index 99% rename from src/server/game/PlayerBaseMod.go rename to src/server/game/player_base_mod.go index cd994d00..bc236c2a 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/player_base_mod.go @@ -9,7 +9,7 @@ import ( userCfg "server/conf/user" "server/db" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" Msg "server/game/mod/msg" "server/game/mod/order" "server/game/mod/quest" diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/player_chess_mod.go similarity index 99% rename from src/server/game/PlayerChessMod.go rename to src/server/game/player_chess_mod.go index b875d1e0..b78fc485 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/player_chess_mod.go @@ -3,14 +3,14 @@ package game import ( "fmt" "math" - "server/GoUtil" "server/conf" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/order" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/game/Player.go b/src/server/game/player_data.go similarity index 99% rename from src/server/game/Player.go rename to src/server/game/player_data.go index 822e9fed..aa6b369b 100644 --- a/src/server/game/Player.go +++ b/src/server/game/player_data.go @@ -6,14 +6,13 @@ import ( "encoding/json" "errors" "math" - "server/GoUtil" activityCfg "server/conf/activity" cardCfg "server/conf/card" chargeCfg "server/conf/charge" - guesscolorCfg "server/conf/guessColor" + guesscolorCfg "server/conf/guess_color" itemCfg "server/conf/item" - limitedTimeEventCfg "server/conf/limitedTimeEvent" - mergeDataCfg "server/conf/mergeData" + limitedTimeEventCfg "server/conf/limited_time_event" + mergeDataCfg "server/conf/merge_data" miningCfg "server/conf/mining" playroomCfg "server/conf/playroom" "server/db" @@ -21,10 +20,11 @@ import ( "server/game/mod/activity" "server/game/mod/friend" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" MsgMod "server/game/mod/msg" "server/game/mod/playroom" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" telog "server/thinkdata" "strconv" diff --git a/src/server/game/PlayerLog.go b/src/server/game/player_log.go similarity index 100% rename from src/server/game/PlayerLog.go rename to src/server/game/player_log.go diff --git a/src/server/game/PlayerMod.go b/src/server/game/player_mod.go similarity index 97% rename from src/server/game/PlayerMod.go rename to src/server/game/player_mod.go index 939ba214..543b09e6 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/player_mod.go @@ -16,29 +16,29 @@ import ( "server/game/mod/chess" "server/game/mod/collect" "server/game/mod/compensation" - "server/game/mod/dailyTask" + dailyTask "server/game/mod/daily_task" "server/game/mod/decorate" "server/game/mod/emoji" "server/game/mod/endless" "server/game/mod/face" "server/game/mod/friend" - "server/game/mod/friendTreasure.go" - guesscolor "server/game/mod/guessColor" + friendTreasure "server/game/mod/friend_treasure.go" + guesscolor "server/game/mod/guess_color" "server/game/mod/guide" - "server/game/mod/guideTask" + guideTask "server/game/mod/guide_task" "server/game/mod/handbook" "server/game/mod/invite" "server/game/mod/item" "server/game/mod/kv" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/mail" "server/game/mod/mining" "server/game/mod/order" "server/game/mod/pass" - "server/game/mod/piggyBank" + piggyBank "server/game/mod/piggy_bank" "server/game/mod/playroom" "server/game/mod/race" - "server/game/mod/sevenLogin" + sevenLogin "server/game/mod/seven_login" Var "server/game/mod/var" "server/pkg/github.com/name5566/leaf/log" "time" diff --git a/src/server/game/RankMgr.go b/src/server/game/rank_mgr.go similarity index 99% rename from src/server/game/RankMgr.go rename to src/server/game/rank_mgr.go index fc576794..a3bbdbe0 100644 --- a/src/server/game/RankMgr.go +++ b/src/server/game/rank_mgr.go @@ -2,10 +2,10 @@ package game import ( "fmt" - "server/GoUtil" "server/conf" "server/db" "server/game/mod/msg" + GoUtil "server/game_util" "sort" "strconv" ) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/register_network_func.go similarity index 99% rename from src/server/game/RegisterNetworkFunc.go rename to src/server/game/register_network_func.go index 5531aa04..01fbcb90 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/register_network_func.go @@ -4,7 +4,6 @@ import ( "errors" "fmt" "math" - "server/GoUtil" "server/conf" baseCfg "server/conf/base" cardCfg "server/conf/card" @@ -12,10 +11,10 @@ import ( collectCfg "server/conf/collect" decorateCfg "server/conf/decorate" emojiCfg "server/conf/emoji" - GuideTaskCfg "server/conf/guideTask" + GuideTaskCfg "server/conf/guide_task" handbookCfg "server/conf/handbook" - limitedTimeEventCfg "server/conf/limitedTimeEvent" - mergeDataCfg "server/conf/mergeData" + limitedTimeEventCfg "server/conf/limited_time_event" + mergeDataCfg "server/conf/merge_data" miningCfg "server/conf/mining" orderCfg "server/conf/order" playroomCfg "server/conf/playroom" @@ -26,12 +25,13 @@ import ( "server/game/mod/collect" "server/game/mod/friend" "server/game/mod/item" - "server/game/mod/limitedTimeEvent" + limitedTimeEvent "server/game/mod/limited_time_event" MsqMod "server/game/mod/msg" "server/game/mod/order" - "server/game/mod/piggyBank" + piggyBank "server/game/mod/piggy_bank" "server/game/mod/playroom" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" "strconv" diff --git a/src/server/game/ServerMod.go b/src/server/game/server_mod.go similarity index 99% rename from src/server/game/ServerMod.go rename to src/server/game/server_mod.go index 158c5c41..310b5233 100644 --- a/src/server/game/ServerMod.go +++ b/src/server/game/server_mod.go @@ -4,9 +4,9 @@ import ( "context" "database/sql" "fmt" - "server/GoUtil" "server/db" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" "server/pkg/github.com/name5566/leaf/timer" "sync" diff --git a/src/server/game/Trigger.go b/src/server/game/trigger_func.go similarity index 99% rename from src/server/game/Trigger.go rename to src/server/game/trigger_func.go index 4e9b475f..3d271bff 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/trigger_func.go @@ -4,20 +4,20 @@ import ( "encoding/json" "fmt" "math" - "server/GoUtil" "server/MergeConst" "server/conf" champshipCfg "server/conf/champship" chargeCfg "server/conf/charge" languageCfg "server/conf/language" mailCfg "server/conf/mail" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" "server/db" "server/game/mod/chess" "server/game/mod/item" "server/game/mod/mail" "server/game/mod/order" "server/game/mod/quest" + GoUtil "server/game_util" "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" diff --git a/src/server/game/UnitTest.go b/src/server/game/unit_test.go similarity index 99% rename from src/server/game/UnitTest.go rename to src/server/game/unit_test.go index 25662c4a..746caa13 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/unit_test.go @@ -5,7 +5,7 @@ import ( "encoding/gob" "fmt" "math" - mergeDataCfg "server/conf/mergeData" + mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" "server/game/mod/decorate" "server/game/mod/item" diff --git a/src/server/game/VarMgr.go b/src/server/game/var_mgr.go similarity index 99% rename from src/server/game/VarMgr.go rename to src/server/game/var_mgr.go index 70c343f4..a228b5fd 100644 --- a/src/server/game/VarMgr.go +++ b/src/server/game/var_mgr.go @@ -3,9 +3,9 @@ package game import ( "encoding/gob" "fmt" - "server/GoUtil" "server/game/mod/card" "server/game/mod/msg" + GoUtil "server/game_util" "time" ) diff --git a/src/server/game_rpc/admin_server.go b/src/server/game_rpc/admin_server.go new file mode 100644 index 00000000..4930cd7d --- /dev/null +++ b/src/server/game_rpc/admin_server.go @@ -0,0 +1 @@ +package gamerpc diff --git a/src/server/GoUtil/AliyunSmsApi.go b/src/server/game_util/AliyunSmsApi.go similarity index 100% rename from src/server/GoUtil/AliyunSmsApi.go rename to src/server/game_util/AliyunSmsApi.go diff --git a/src/server/GoUtil/GoUtil.go b/src/server/game_util/GoUtil.go similarity index 100% rename from src/server/GoUtil/GoUtil.go rename to src/server/game_util/GoUtil.go diff --git a/src/server/GoUtil/AliyunOpenApi.go b/src/server/game_util/aliyun_open_api.go similarity index 100% rename from src/server/GoUtil/AliyunOpenApi.go rename to src/server/game_util/aliyun_open_api.go diff --git a/src/server/GoUtil/feishu.go b/src/server/game_util/feishu.go similarity index 100% rename from src/server/GoUtil/feishu.go rename to src/server/game_util/feishu.go diff --git a/src/server/GoUtil/mapUtil.go b/src/server/game_util/mapUtil.go similarity index 97% rename from src/server/GoUtil/mapUtil.go rename to src/server/game_util/mapUtil.go index 6025547a..26aa25c8 100644 --- a/src/server/GoUtil/mapUtil.go +++ b/src/server/game_util/mapUtil.go @@ -1,7 +1,7 @@ package GoUtil import ( - dailyTaskCfg "server/conf/dailyTask" + dailyTaskCfg "server/conf/daily_task" "server/game/mod/item" ) diff --git a/src/server/GoUtil/mathUtil.go b/src/server/game_util/mathUtil.go similarity index 100% rename from src/server/GoUtil/mathUtil.go rename to src/server/game_util/mathUtil.go diff --git a/src/server/GoUtil/randUtil.go b/src/server/game_util/randUtil.go similarity index 100% rename from src/server/GoUtil/randUtil.go rename to src/server/game_util/randUtil.go diff --git a/src/server/GoUtil/sliceUtil.go b/src/server/game_util/sliceUtil.go similarity index 100% rename from src/server/GoUtil/sliceUtil.go rename to src/server/game_util/sliceUtil.go diff --git a/src/server/GoUtil/timeUtil.go b/src/server/game_util/timeUtil.go similarity index 100% rename from src/server/GoUtil/timeUtil.go rename to src/server/game_util/timeUtil.go diff --git a/src/server/gamedata/configStruct.go b/src/server/gamedata/config_struct.go similarity index 100% rename from src/server/gamedata/configStruct.go rename to src/server/gamedata/config_struct.go diff --git a/src/server/pay/google.go b/src/server/pay/google.go deleted file mode 100644 index 5eb6a64a..00000000 --- a/src/server/pay/google.go +++ /dev/null @@ -1,109 +0,0 @@ -package pay - -import ( - "crypto/tls" - "encoding/json" - "fmt" - "io" - "net/http" - "net/url" - "time" -) - -var ( - PackageName = "com.DefaultCompany.PetHomeMergeStory" //包名 - GrantType = "refresh_token" - ClientId = "757279522891-nrfqc345ng13d92br5cd579e1k7f2jsj.apps.googleusercontent.com" //客户端id - ClientSecret = "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" //客户端秘钥 - RefreshToken = "1//0ewdqw7P83uNRCgYIARAAGA4SNwF-L9IreCVIYzd-6T5Cz0J-UoAqdbGL7AmB849q_YKy7CbvJIjmvwQelezgs1utmU4nDI4_kWU" //RefreshToken,上面第二步获取的 -) - -const ( - PAY_STATUS_SUCCESS = 1 - PAY_STATUS_FAIL = 0 -) - -type TokenInfo struct { - AccessToken string `json:"access_token"` - ExpiresIn int `json:"expires_in"` - Scope string `json:"scope"` - TokenType string `json:"token_type"` -} - -type OrderInfo struct { - Kind string `json:"kind"` - PurchaseTimeMillis string `json:"purchaseTimeMillis"` // 支付时间, 毫秒 - PurchaseState int `json:"purchaseState"` // 是否付费: 0 已支付, 1 取消 - ConsumptionState int `json:"consumptionState"` // 是否被消费: 0 未消费, 1 已消费 - DeveloperPayload string `json:"developerPayload"` // 开发者透传参数 - OrderId string `json:"orderId"` // 谷歌订单号 - AcknowledgementState int `json:"acknowledgementState"` // 支付类型: 0 测试, 1 真实 -} - -// 获取token凭证 -func PostRefreshToken() (*TokenInfo, error) { - client := &http.Client{ - Timeout: 10 * time.Second, - } - - var resp *http.Response - var err error - for i := 0; i < 3; i++ { // 重试3次 - resp, err = client.PostForm("https://accounts.google.com/o/oauth2/token", url.Values{ - "grant_type": {GrantType}, - "client_id": {ClientId}, - "client_secret": {ClientSecret}, - "refresh_token": {RefreshToken}, - }) - if err == nil { - break - } - fmt.Printf("PostToken attempt %d failed: %v\n", i+1, err) - time.Sleep(2 * time.Second) // 等待2秒后重试 - } - if err != nil { - return nil, fmt.Errorf("PostToken err:%v", err) - } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - if err != nil { - fmt.Println("PostToken body err:", err) - } - fmt.Println("token:", string(body)) - info := new(TokenInfo) - err = json.Unmarshal(body, &info) - if err != nil { - return nil, fmt.Errorf("PostToken Unmarshal err:%v", err) - } - fmt.Println("token info:", info) - return info, nil -} - -// 获取订单信息 -func GetOrder(productId, token, accessToken string) (*OrderInfo, error) { - client := &http.Client{ - Transport: &http.Transport{ - TLSClientConfig: &tls.Config{ - Certificates: []tls.Certificate{}, - }, - }, - } - resp, err := client.Get("https://www.googleapis.com/androidpublisher/v3/applications/" + - PackageName + "/purchases/products/" + productId + "/tokens/" + token + "?access_token=" + accessToken + "") - if err != nil { - return nil, fmt.Errorf("GetOrder err:%v", err) - } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - if err != nil { - fmt.Println("GetOrder body err:", err) - } - fmt.Println("GetOrder:", string(body)) - info := new(OrderInfo) - err = json.Unmarshal(body, &info) - if err != nil { - return nil, fmt.Errorf("GetOrder Unmarshal err:%v", err) - } - fmt.Println("GetOrder info:", info) - return info, nil -} diff --git a/src/server/pkg/github.com/name5566/leaf/leaf.go b/src/server/pkg/github.com/name5566/leaf/leaf.go index fe75877b..b7ad1ac6 100644 --- a/src/server/pkg/github.com/name5566/leaf/leaf.go +++ b/src/server/pkg/github.com/name5566/leaf/leaf.go @@ -3,10 +3,10 @@ package leaf import ( "os" "os/signal" - "server/GoUtil" mergeCluster "server/cluster" sconf "server/conf" "server/game" + GoUtil "server/game_util" "server/gamedata" "server/pkg/github.com/name5566/leaf/cluster" "server/pkg/github.com/name5566/leaf/conf" From d5735710cd7c05b0e4e1b65b5e051a264cab9f64 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 17:04:22 +0800 Subject: [PATCH 028/104] =?UTF-8?q?=E5=8A=A0=E5=A5=BD=E5=8F=8B=E6=89=A3?= =?UTF-8?q?=E5=B9=BF=E5=91=8A=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 01fbcb90..30b48549 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -1886,6 +1886,8 @@ func ReqApplyFriend(player *Player, buf []byte) error { }) return err } + BaseMod := player.PlayMod.getBaseMod() + BaseMod.GetEnergyByAD() err = player.HandleItem(Items, msg.ITEM_POP_LABEL_ApplyFriendSponsor.String()) if err != nil { player.SendErrClienRes(&msg.ResApplyFriend{ @@ -1901,6 +1903,7 @@ func ReqApplyFriend(player *Player, buf []byte) error { To: Uid, SendT: GoUtil.Now(), }) + player.PushClientRes(BaseMod.BackData()) player.TeLog("friend_invite_reward", map[string]interface{}{ "item_list": Items, }) From 6f4366dffc90846fb3978f6c499d3fe7e7aed2e8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 18:13:29 +0800 Subject: [PATCH 029/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index d6e9c58d..74d8c921 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -147,6 +147,9 @@ func ReqGmCommand_(player *Player, Command string) error { player.Charge(ChargeId) case "AddPart": ChessMod := player.PlayMod.getChessMod() + if ChessMod.PartBag.List == nil { + ChessMod.PartBag.List = make(map[int]chess.PartBagGrid) + } ChessMod.PartBag.List[1505] = chess.PartBagGrid{ Num: 10000, PartId: 1505, From 65af33758b4234e0f63e86cfa2b2f4c5fd95f9de Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 19:45:53 +0800 Subject: [PATCH 030/104] =?UTF-8?q?message=20controll=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 36 +++++++++++++++++++++++++++++ src/server/game/server_mod.go | 1 + src/server/game_rpc/admin_server.go | 1 - 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/server/game/message_mgr.go delete mode 100644 src/server/game_rpc/admin_server.go diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go new file mode 100644 index 00000000..3aca0df4 --- /dev/null +++ b/src/server/game/message_mgr.go @@ -0,0 +1,36 @@ +package game + +import ( + "fmt" + "server/game/mod/msg" + "server/pkg/github.com/name5566/leaf/log" +) + +type MessageMgr struct { + *ServerMod +} + +type MessageData struct { + MessageList map[int64][]*msg.Msg +} + +func (m *MessageMgr) MessageMgrInit() { + m.key = MESSAGE_MGR_KEY + m.data = &MessageData{} + // 注册处理函数 + m.init() +} + +type MessageHandlerFunc func(message *msg.Msg) (interface{}, error) + +func (m *MessageMgr) RegisterMessageHandler(hType int, handler MessageHandlerFunc) { + m.RegisterHandler(hType, handler) +} + +func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { + if fun, ok := m.handler[msg.Type]; ok { + return fun.(MessageHandlerFunc)(msg) + } + log.Error("server mod key:%s handle not exist handle type:%d", m.key, msg.Type) + return nil, fmt.Errorf("server mod handler err") +} diff --git a/src/server/game/server_mod.go b/src/server/game/server_mod.go index 310b5233..b76b4479 100644 --- a/src/server/game/server_mod.go +++ b/src/server/game/server_mod.go @@ -21,6 +21,7 @@ const ( CHAMPSHIP_MGR_KEY = "CHAMPSHIP_MGR" BAN_MGR_KEY = "BAN_MGR" PER_SAVE_TIME = 60 + MESSAGE_MGR_KEY = "MESSAGE_MGR" ) type ServerMod struct { diff --git a/src/server/game_rpc/admin_server.go b/src/server/game_rpc/admin_server.go deleted file mode 100644 index 4930cd7d..00000000 --- a/src/server/game_rpc/admin_server.go +++ /dev/null @@ -1 +0,0 @@ -package gamerpc From eaaad55a1096f1cc1b1214c33b67a2558b05dfeb Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 19:48:48 +0800 Subject: [PATCH 031/104] =?UTF-8?q?=E6=A3=8B=E7=9B=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/chess/Chess.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 34ef4093..c5502a94 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -84,6 +84,24 @@ func (cb *ChessBorad) InitData() { cb.ChessBag.List[i] = ChessBagGrid{} } } + if cb.RetireReward == nil { + cb.RetireReward = make(map[string]bool) + } + if cb.PartBag.List == nil { + cb.PartBag.List = make(map[int]PartBagGrid) + } + if cb.ChessMap == nil { + cb.ChessMap = make(map[string]int32) + } + if cb.RetireChessMap == nil { + cb.RetireChessMap = make(map[string][]int) + } + if cb.Retire == nil { + cb.Retire = make(map[string]int) + } + if cb.Honor == nil { + cb.Honor = make(map[int]int) + } } func (cb *ChessBorad) ver() { From f64d18de82f7a66be40c991fff3b69c069966ddc Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 20:11:28 +0800 Subject: [PATCH 032/104] message controller --- src/server/game/message_mgr.go | 15 +++++++++++++++ src/server/game/mod/msg/Msg.go | 21 +++++++++++---------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 3aca0df4..5f7dc0a9 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -2,7 +2,9 @@ package game import ( "fmt" + mergeCluster "server/cluster" "server/game/mod/msg" + GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" ) @@ -34,3 +36,16 @@ func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { log.Error("server mod key:%s handle not exist handle type:%d", m.key, msg.Type) return nil, fmt.Errorf("server mod handler err") } + +func SendMessage(m1 *msg.Msg) error { + if m1.SendT == 0 { + m1.SendT = GoUtil.Now() + } + m := m1.Clone() + err := mergeCluster.SendServerMsg(m, 1) + if err != nil { // 区服不在线 + G_GameLogicPtr.FriendMgrSend(m) + return err + } + return nil +} diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 22415fee..b5bacc71 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -3,16 +3,17 @@ package msg import "server/game/mod/item" type Msg struct { - Type int // 消息类型 - To int // 接收者 - From int // 发送者 - Item []*item.Item // 物品 - SendT int64 // 发送时间 - End int64 // 过期时间 - Extra interface{} //额外信息 - Id int64 - UniKey string // 回调监听唯一键值 - H int //处理类型 + Type int // 消息类型 + To int // 接收者 + From int // 发送者 + Item []*item.Item // 物品 + SendT int64 // 发送时间 + End int64 // 过期时间 + Extra interface{} //额外信息 + Id int64 + UniKey string // 回调监听唯一键值 + H int //处理类型 + HandleType int //处理类型 } var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} From 420f0a2e2c97ae9160ef76eebffc3e218ac26b34 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 10:40:06 +0800 Subject: [PATCH 033/104] 1 --- src/server/game/cluster_mgr.go | 2 +- src/server/game/friend_mgr.go | 8 -------- src/server/game/message_mgr.go | 21 ++++++++++++++++++++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/server/game/cluster_mgr.go b/src/server/game/cluster_mgr.go index 98374e2f..6f70421d 100644 --- a/src/server/game/cluster_mgr.go +++ b/src/server/game/cluster_mgr.go @@ -11,7 +11,7 @@ func ClusterMgrInit() { go func() { for { m := <-mergeCluster.MsgChan - clusterHandlerProcess(m) + MessageHandle(m) } }() diff --git a/src/server/game/friend_mgr.go b/src/server/game/friend_mgr.go index 79ea8061..e44e1083 100644 --- a/src/server/game/friend_mgr.go +++ b/src/server/game/friend_mgr.go @@ -277,11 +277,3 @@ func FriendMgrCall(m *msg.Msg) interface{} { } return G_GameLogicPtr.FriendMgrCall(m.Clone()) } - -func SendMsgToCenter(m *msg.Msg) error { - return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) -} - -func CallMsgToCenter(m *msg.Msg) (interface{}, error) { - return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) -} diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 5f7dc0a9..bd11da46 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -3,6 +3,7 @@ package game import ( "fmt" mergeCluster "server/cluster" + "server/conf" "server/game/mod/msg" GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" @@ -14,6 +15,7 @@ type MessageMgr struct { type MessageData struct { MessageList map[int64][]*msg.Msg + PlayerList map[int64]int } func (m *MessageMgr) MessageMgrInit() { @@ -42,10 +44,27 @@ func SendMessage(m1 *msg.Msg) error { m1.SendT = GoUtil.Now() } m := m1.Clone() - err := mergeCluster.SendServerMsg(m, 1) + err := SendMsgToCenter(m) if err != nil { // 区服不在线 G_GameLogicPtr.FriendMgrSend(m) return err } return nil } + +func MessageHandle(m *msg.Msg) error { + log.Debug("RecvMessage m %v", m) + return nil +} + +func SendMsgToCenter(m *msg.Msg) error { + return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) +} + +func CallMsgToCenter(m *msg.Msg) (interface{}, error) { + return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) +} + +func SendMsgToNode(m *msg.Msg, node int) error { + return mergeCluster.SendServerMsg(m, node) +} From 54dba4b18a7d921e9b4743529ee96fd6746287da Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 11:48:27 +0800 Subject: [PATCH 034/104] 1 --- src/server/game/message_mgr.go | 276 +++++++++++++++++++++++++++++++++ src/server/game/mod/msg/Msg.go | 6 + 2 files changed, 282 insertions(+) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index bd11da46..350a6d37 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -1,16 +1,25 @@ package game import ( + "context" "fmt" + "runtime/debug" mergeCluster "server/cluster" "server/conf" "server/game/mod/msg" GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" + "sync" + "time" ) +// 中间件函数类型 +type MessageMiddleware func(MessageHandlerFunc) MessageHandlerFunc + type MessageMgr struct { *ServerMod + middlewares []MessageMiddleware + workerPool *WorkerPool } type MessageData struct { @@ -18,13 +27,57 @@ type MessageData struct { PlayerList map[int64]int } +// Worker Pool 结构 +type WorkerPool struct { + workers int + taskQueue chan *MessageTask + wg sync.WaitGroup + ctx context.Context + cancel context.CancelFunc + maxQueue int +} + +// 消息任务 +type MessageTask struct { + Msg *msg.Msg + Handler MessageHandlerFunc + Result chan *TaskResult +} + +// 任务结果 +type TaskResult struct { + Data interface{} + Error error +} + func (m *MessageMgr) MessageMgrInit() { m.key = MESSAGE_MGR_KEY m.data = &MessageData{} + m.middlewares = []MessageMiddleware{} + // 初始化 Worker Pool (10个worker, 1000个队列大小) + m.workerPool = NewWorkerPool(10, 1000) + // 注册默认中间件 + m.Use(RecoveryMiddleware()) + m.Use(LoggingMiddleware()) + m.Use(TimeoutMiddleware(5 * time.Second)) // 注册处理函数 m.init() } +// 添加中间件 +func (m *MessageMgr) Use(middleware MessageMiddleware) { + m.middlewares = append(m.middlewares, middleware) +} + +// 应用所有中间件到处理函数 +func (m *MessageMgr) applyMiddlewares(handler MessageHandlerFunc) MessageHandlerFunc { + // 从后往前应用中间件 + for i := len(m.middlewares) - 1; i >= 0; i-- { + handler = m.middlewares[i](handler) + } + return handler +} + type MessageHandlerFunc func(message *msg.Msg) (interface{}, error) func (m *MessageMgr) RegisterMessageHandler(hType int, handler MessageHandlerFunc) { @@ -52,11 +105,220 @@ func SendMessage(m1 *msg.Msg) error { return nil } +// 异步处理消息 (多线程版本) +func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { + if fun, ok := m.handler[message.Type]; ok { + // 应用中间件 + handlerWithMiddleware := m.applyMiddlewares(fun.(MessageHandlerFunc)) + + // 创建任务 + task := &MessageTask{ + Msg: message, + Handler: handlerWithMiddleware, + Result: make(chan *TaskResult, 1), + } + + // 提交到 Worker Pool + if err := m.workerPool.Submit(task); err != nil { + log.Error("Failed to submit message task: %v", err) + return err + } + + // 可以选择等待结果或直接返回 + go func() { + result := <-task.Result + if result.Error != nil { + log.Error("Message handle error: %v", result.Error) + } + }() + + return nil + } + log.Error("server mod key:%s handle not exist handle type:%d", m.key, message.Type) + return fmt.Errorf("server mod handler err") +} + +// 兼容旧版本的函数 func MessageHandle(m *msg.Msg) error { log.Debug("RecvMessage m %v", m) + // 这里可以调用 MessageMgr 的处理方法 + // G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil } +// ==================== Worker Pool 实现 ==================== + +// 创建 Worker Pool +func NewWorkerPool(workers, maxQueue int) *WorkerPool { + ctx, cancel := context.WithCancel(context.Background()) + pool := &WorkerPool{ + workers: workers, + taskQueue: make(chan *MessageTask, maxQueue), + ctx: ctx, + cancel: cancel, + maxQueue: maxQueue, + } + pool.start() + return pool +} + +// 启动 Worker Pool +func (p *WorkerPool) start() { + for i := 0; i < p.workers; i++ { + p.wg.Add(1) + go p.worker(i) + } +} + +// Worker 工作函数 +func (p *WorkerPool) worker(id int) { + defer p.wg.Done() + log.Debug("Worker %d started", id) + + for { + select { + case <-p.ctx.Done(): + log.Debug("Worker %d stopped", id) + return + case task, ok := <-p.taskQueue: + if !ok { + log.Debug("Worker %d: task queue closed", id) + return + } + // 执行任务 + result, err := task.Handler(task.Msg) + // 发送结果 + task.Result <- &TaskResult{ + Data: result, + Error: err, + } + close(task.Result) + } + } +} + +// 提交任务 +func (p *WorkerPool) Submit(task *MessageTask) error { + select { + case <-p.ctx.Done(): + return fmt.Errorf("worker pool is closed") + case p.taskQueue <- task: + return nil + default: + return fmt.Errorf("task queue is full") + } +} + +// 关闭 Worker Pool +func (p *WorkerPool) Shutdown() { + log.Debug("Shutting down worker pool...") + p.cancel() + close(p.taskQueue) + p.wg.Wait() + log.Debug("Worker pool shut down complete") +} + +// ==================== 中间件实现 ==================== + +// 日志中间件 +func LoggingMiddleware() MessageMiddleware { + return func(next MessageHandlerFunc) MessageHandlerFunc { + return func(message *msg.Msg) (interface{}, error) { + start := time.Now() + log.Debug("[Middleware] Processing message type: %d, time: %v", message.Type, start) + + result, err := next(message) + + duration := time.Since(start) + if err != nil { + log.Error("[Middleware] Message type: %d failed, duration: %v, error: %v", message.Type, duration, err) + } else { + log.Debug("[Middleware] Message type: %d success, duration: %v", message.Type, duration) + } + + return result, err + } + } +} + +// 恢复 Panic 中间件 +func RecoveryMiddleware() MessageMiddleware { + return func(next MessageHandlerFunc) MessageHandlerFunc { + return func(message *msg.Msg) (result interface{}, err error) { + defer func() { + if r := recover(); r != nil { + log.Error("[Middleware] Panic recovered: %v\nStack: %s", r, debug.Stack()) + err = fmt.Errorf("panic recovered: %v", r) + } + }() + return next(message) + } + } +} + +// 超时中间件 +func TimeoutMiddleware(timeout time.Duration) MessageMiddleware { + return func(next MessageHandlerFunc) MessageHandlerFunc { + return func(message *msg.Msg) (interface{}, error) { + resultChan := make(chan *TaskResult, 1) + + go func() { + result, err := next(message) + resultChan <- &TaskResult{Data: result, Error: err} + }() + + select { + case result := <-resultChan: + return result.Data, result.Error + case <-time.After(timeout): + log.Error("[Middleware] Message type: %d timeout after %v", message.Type, timeout) + return nil, fmt.Errorf("message handler timeout") + } + } + } +} + +// 重试中间件 +func RetryMiddleware(maxRetries int) MessageMiddleware { + return func(next MessageHandlerFunc) MessageHandlerFunc { + return func(message *msg.Msg) (interface{}, error) { + var result interface{} + var err error + + for i := 0; i <= maxRetries; i++ { + result, err = next(message) + if err == nil { + return result, nil + } + + if i < maxRetries { + log.Debug("[Middleware] Retry %d/%d for message type: %d, error: %v", i+1, maxRetries, message.Type, err) + time.Sleep(time.Millisecond * 100 * time.Duration(i+1)) + } + } + + return result, fmt.Errorf("failed after %d retries: %w", maxRetries, err) + } + } +} + +// 验证中间件 +func ValidationMiddleware() MessageMiddleware { + return func(next MessageHandlerFunc) MessageHandlerFunc { + return func(message *msg.Msg) (interface{}, error) { + // 添加消息验证逻辑 + if message == nil { + return nil, fmt.Errorf("message is nil") + } + if message.Type <= 0 { + return nil, fmt.Errorf("invalid message type: %d", message.Type) + } + + return next(message) + } + } +} + func SendMsgToCenter(m *msg.Msg) error { return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) } @@ -68,3 +330,17 @@ func CallMsgToCenter(m *msg.Msg) (interface{}, error) { func SendMsgToNode(m *msg.Msg, node int) error { return mergeCluster.SendServerMsg(m, node) } + +func SendPlayerMsg(m *msg.Msg) error { + clone := m.Clone() + clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) + clone.HandleType = msg.HANDLE_TYPE_PLAYER_MSG + return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) +} + +func CallPlayerMsg(m *msg.Msg) (interface{}, error) { + clone := m.Clone() + clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) + clone.HandleType = msg.HANDLE_TYPE_PLAYER_MSG + return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) +} diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index c8592553..8e1e4ddb 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -19,6 +19,10 @@ type Msg struct { var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} +const ( + HANDLE_TYPE_PLAYER_MSG = 20001 // 玩家消息 +) + const ( //好友操作 HANDLE_TYPE_APPLY = iota //申请好友 @@ -114,6 +118,8 @@ const ( HANDLE_TYPE_SET_CATNIP_PARTNER // 设置猫薄荷伙伴 HANDLE_TYPE_CATNIP_SEND_EMOJI // 发送猫薄荷表情 HANDLE_TYPE_CHAMPSHIP_MY_RANK // 锦标赛我的排名 + + HANDLE_TYPE_LOGIN // 玩家登录处理 ) const ( From 17ac92f5a1dee3f78b35e32254917d3a08401fea Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 14:50:30 +0800 Subject: [PATCH 035/104] 1 --- src/server/cluster/cluster_func.go | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 2571144d..27eb476f 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -49,18 +49,6 @@ func HandShakeRecv(a *Agent, m *msg.Msg) error { }, }) } - syncMsg := &msg.Msg{ - Type: msg.CLUSTER_FRIEND_SYNC, - To: ServerId, - } - sendGameMsg(syncMsg) - // fmt.Print("现有区服连接:") - // serverAgent.Range(func(key, value interface{}) bool { - // fmt.Print(key) - // fmt.Print(",") - // return true - // }) - // fmt.Println() return nil } From adaf454d3632cbbff8d290224faca98ec11d8450 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 15:59:35 +0800 Subject: [PATCH 036/104] 1 --- src/server/cluster/cluster_func.go | 6 +++ src/server/game/GameLogic.go | 9 ++++ src/server/game/message_mgr.go | 86 ++++++++++++++++++++++++++---- src/server/game/mod/msg/Msg.go | 4 +- 4 files changed, 94 insertions(+), 11 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 27eb476f..751c0443 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -48,6 +48,12 @@ func HandShakeRecv(a *Agent, m *msg.Msg) error { RemoteAddr: m.Extra.(string), }, }) + } else { + syncMsg := &msg.Msg{ + Type: msg.CLUSTER_FRIEND_SYNC, + To: ServerId, + } + sendGameMsg(syncMsg) } return nil } diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index a46b8b02..7b650c7a 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -85,6 +85,7 @@ type GameLogic struct { VarMgr *VarMgr // 变量管理器 BanMgr *BanMgr // 封号管理器 StartTime int64 // 服务器启动时间 + MessageMgr *MessageMgr // 消息管理器 } type ServerInfo struct { @@ -361,6 +362,13 @@ func (ad *GameLogic) CreateMailMgr() { ad.MailMgr.Init() } +func (ad *GameLogic) CreateMessageMgr() { + ad.MessageMgr = &MessageMgr{ + ServerMod: new(ServerMod), + } + ad.MessageMgr.MessageMgrInit() +} + func (ad *GameLogic) MailMgrSend(m *MsgMod.Msg) { ad.MailMgr.Send(m) } @@ -552,6 +560,7 @@ func G_getGameLogic() *GameLogic { G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 G_GameLogicPtr.CreateBanMgr() // 创建封号管理器 + G_GameLogicPtr.CreateMessageMgr() // 创建消息管理器 ClusterMgrInit() //初始化集群 G_GameLogicPtr.StartTime = time.Now().Unix() // G_GameLogicPtr.CreateHttpManager() diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 350a6d37..2fc70250 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -20,11 +20,18 @@ type MessageMgr struct { *ServerMod middlewares []MessageMiddleware workerPool *WorkerPool + handler map[int]MessageHandlerFunc } type MessageData struct { - MessageList map[int64][]*msg.Msg + MessageList map[int64]*MessageList PlayerList map[int64]int + mu sync.Mutex +} + +type MessageList struct { + Messages []*msg.Msg + mu sync.Mutex } // Worker Pool 结构 @@ -52,7 +59,13 @@ type TaskResult struct { func (m *MessageMgr) MessageMgrInit() { m.key = MESSAGE_MGR_KEY - m.data = &MessageData{} + m.data = &MessageData{ + MessageList: make(map[int64]*MessageList), + PlayerList: make(map[int64]int), + } + // 注册处理函数 + m.init() + m.handler = make(map[int]MessageHandlerFunc) m.middlewares = []MessageMiddleware{} // 初始化 Worker Pool (10个worker, 1000个队列大小) m.workerPool = NewWorkerPool(10, 1000) @@ -60,8 +73,61 @@ func (m *MessageMgr) MessageMgrInit() { m.Use(RecoveryMiddleware()) m.Use(LoggingMiddleware()) m.Use(TimeoutMiddleware(5 * time.Second)) - // 注册处理函数 - m.init() + if conf.Server.ServerType == "center" { + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin)) + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer)) + } +} + +// 注册处理器 +func (s *MessageMgr) RegisterHandler(HandlerType int, fun MessageHandlerFunc) { + s.handler[HandlerType] = fun +} + +func getData() *MessageData { + return G_GameLogicPtr.MessageMgr.data.(*MessageData) +} + +func PlayerLogin(data *msg.Msg) (interface{}, error) { + // 关闭 Worker Pool + messageMgrData := getData() + messageMgrData.mu.Lock() + defer messageMgrData.mu.Unlock() + messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) + if _, ok := messageMgrData.MessageList[int64(data.From)]; !ok { + messageMgrData.MessageList[int64(data.From)] = &MessageList{ + Messages: []*msg.Msg{}, + } + } + messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) + return nil, nil +} + +func SendToPlayer(data *msg.Msg) (interface{}, error) { + PlayerId := int64(data.To) + messageMgrData := getData() + // 遍历消息列表,发送消息给在线玩家 + messages, ok := messageMgrData.MessageList[int64(PlayerId)] + if !ok { + messageMgrData.mu.Lock() + messages = &MessageList{ + Messages: []*msg.Msg{}, + } + messageMgrData.MessageList[int64(PlayerId)] = messages + messageMgrData.mu.Unlock() + } + messages.mu.Lock() + defer messages.mu.Unlock() + messages.Messages = append(messages.Messages, data) + if node, ok := messageMgrData.PlayerList[int64(PlayerId)]; ok { + for _, message := range messages.Messages { + err := SendMsgToNode(message, node) + if err != nil { + log.Error("Failed to send message to player %d: %v", PlayerId, err) + } + } + } + return nil, nil } // 添加中间件 @@ -86,7 +152,7 @@ func (m *MessageMgr) RegisterMessageHandler(hType int, handler MessageHandlerFun func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { if fun, ok := m.handler[msg.Type]; ok { - return fun.(MessageHandlerFunc)(msg) + return fun(msg) } log.Error("server mod key:%s handle not exist handle type:%d", m.key, msg.Type) return nil, fmt.Errorf("server mod handler err") @@ -107,9 +173,9 @@ func SendMessage(m1 *msg.Msg) error { // 异步处理消息 (多线程版本) func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { - if fun, ok := m.handler[message.Type]; ok { + if fun, ok := m.handler[message.HandleType]; ok { // 应用中间件 - handlerWithMiddleware := m.applyMiddlewares(fun.(MessageHandlerFunc)) + handlerWithMiddleware := m.applyMiddlewares(fun) // 创建任务 task := &MessageTask{ @@ -142,7 +208,7 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { func MessageHandle(m *msg.Msg) error { log.Debug("RecvMessage m %v", m) // 这里可以调用 MessageMgr 的处理方法 - // G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) + G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil } @@ -334,13 +400,13 @@ func SendMsgToNode(m *msg.Msg, node int) error { func SendPlayerMsg(m *msg.Msg) error { clone := m.Clone() clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) - clone.HandleType = msg.HANDLE_TYPE_PLAYER_MSG + clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) } func CallPlayerMsg(m *msg.Msg) (interface{}, error) { clone := m.Clone() clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) - clone.HandleType = msg.HANDLE_TYPE_PLAYER_MSG + clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 8e1e4ddb..ae3bb7fa 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -20,7 +20,9 @@ var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} const ( - HANDLE_TYPE_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 + HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 ) const ( From dd48b8354cc2829b1328549fa52a0d9e9610973b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 16:33:53 +0800 Subject: [PATCH 037/104] 1 --- src/server/game/message_mgr.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 2fc70250..e14f1684 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -76,6 +76,8 @@ func (m *MessageMgr) MessageMgrInit() { if conf.Server.ServerType == "center" { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin)) m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer)) + } else { + } } From 1feed48e0fe601b344da959e5b60e8f7a53157ca Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 17:17:56 +0800 Subject: [PATCH 038/104] 1 --- src/server/cluster/cluster_func.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 751c0443..d252d431 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -107,6 +107,9 @@ func connectRemote(RemoteAddr string, ConnType int, ConnLabel string) error { } func SendServerMsg(m *msg.Msg, serverId int) error { + if m.UniKey == "" { + m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) + } if v, ok := serverAgent.Load(serverId); ok { data, err := GoUtil.GobMarshal(m) if err != nil { @@ -120,8 +123,9 @@ func SendServerMsg(m *msg.Msg, serverId int) error { } func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { - m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) - + if m.UniKey == "" { + m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) + } // 先注册回调通道,避免发送出去后对方快速返回导致丢失 newChan := make(chan *msg.Msg, 1) registerChanel(m.UniKey, newChan) From bc6320d11dcc863b74f43c4723e7521b0ad84926 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 18 Dec 2025 19:14:38 +0800 Subject: [PATCH 039/104] 1 --- src/server/game/message_mgr.go | 33 ++++++- src/server/game/mod/msg/Msg.go | 1 + src/server/game/player_data.go | 5 +- src/server/msg/Gameapi.pb.go | 158 ++++++++++++++++----------------- 4 files changed, 115 insertions(+), 82 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index e14f1684..239355a5 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -77,7 +77,7 @@ func (m *MessageMgr) MessageMgrInit() { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin)) m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer)) } else { - + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) } } @@ -132,6 +132,24 @@ func SendToPlayer(data *msg.Msg) (interface{}, error) { return nil, nil } +func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { + p := G_GameLogicPtr.GetPlayer(int64(data.To)) + // 不在线 不处理 + if p == nil || p.stop { + // TODO: 模拟消费 + data.HandleType = msg.HANDLE_MOD_COMSUME_MSG + go SendMsgToCenter(data) + return nil, nil + } + p.lock.Lock() + defer p.lock.Unlock() + p.Send(data.Clone()) + // 处理完后发送消费消息 + data.HandleType = msg.HANDLE_MOD_COMSUME_MSG + go SendMsgToCenter(data) + return nil, nil +} + // 添加中间件 func (m *MessageMgr) Use(middleware MessageMiddleware) { m.middlewares = append(m.middlewares, middleware) @@ -209,6 +227,19 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { // 兼容旧版本的函数 func MessageHandle(m *msg.Msg) error { log.Debug("RecvMessage m %v", m) + SendMsgToCenter(&msg.Msg{ + From: 10000, + Extra: conf.Server.ServerID, + HandleType: msg.HANDLE_MOD_PLAYER_LOGIN, + }) + time.Sleep(time.Second) + SendMsgToCenter(&msg.Msg{ + From: 10000, + To: 10000, + Type: msg.HANDLE_TYPE_LOGIN, + Extra: conf.Server.ServerID, + HandleType: msg.HANDLE_MOD_PLAYER_MSG, + }) // 这里可以调用 MessageMgr 的处理方法 G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index ae3bb7fa..2438d245 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -23,6 +23,7 @@ const ( HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 + HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 ) const ( diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index aa6b369b..2baf0277 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -101,12 +101,13 @@ func (p *Player) CallEvent(Duration time.Duration, F func(), Label string) { } // 异步请求 -func (p *Player) Send(m *MsgMod.Msg) { +func (p *Player) Send(m *MsgMod.Msg) error { if m == nil { - return + return nil } p.wg.Add(1) p.msgChan <- m + return nil } func (p *Player) Call(m MsgMod.Msg) { diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index acdf437d..e82fd23d 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -687,25 +687,25 @@ const ( TIME_LINE_TYPE_LOG_TYPE_CARD_SELECT_SEND TIME_LINE_TYPE = 9 // 选择卡牌交换 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_1 TIME_LINE_TYPE = 10 // 卡牌交换成功 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_2 TIME_LINE_TYPE = 11 // 卡牌交换成功 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 12 // 删除好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 13 // 非小猫游戏,他人偷走了玩家的猫币 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 14 // 图鉴收集 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 15 // 图鉴点赞 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 16 // 充值赠送 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 17 // 充值接受 - TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 18 // 心愿单 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 19 // NPC成为好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 20 // playroom点赞 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 21 // 竞标赛排名 - TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 22 // 宠物宝藏 - TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 23 // 收到赠送卡牌 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 24 // 小猫游戏,给小猫成功装箱 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 25 // 小猫游戏,装箱小猫未成功 - TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 26 // 接受卡牌请求 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 27 // 邀请注册 - TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 28 // 宠物宝藏帮助 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 29 // 好友赞助体力 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 30 // 获得好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 14 // 删除好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 赠送充值礼物 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVE TIME_LINE_TYPE = 19 // 收到充值礼物 + TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单请求 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // npc成为好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名 + TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 好友宝藏 + TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功 + TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册 + TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 好友宝藏帮助 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力 ) // Enum value maps for TIME_LINE_TYPE. @@ -723,25 +723,25 @@ var ( 9: "LOG_TYPE_CARD_SELECT_SEND", 10: "LOG_TYPE_CARD_EX_SUCCESS_1", 11: "LOG_TYPE_CARD_EX_SUCCESS_2", - 12: "LOG_TYPE_FRIEND_DELETE", - 13: "LOG_TYPE_PLAYROOM_VISIT", - 14: "LOG_TYPE_HANDBOOK", - 15: "LOG_TYPE_HANDBOOK_UPVOTE", - 16: "LOG_TYPE_CHARGE_SEND", - 17: "LOG_TYPE_CHARGE_RECEIVED", - 18: "LOG_TYPE_WISH", - 19: "LOG_TYPE_FRIEND_BECOME_NPC", - 20: "LOG_TYPE_PLAYROOM_UPVOTE", - 21: "LOG_TYPE_PLAYROOM_CHAMPSHIP", - 22: "LOG_TYPE_TREASURE", - 23: "LOG_TYPE_CARD_SEND_ACCEPT", - 24: "LOG_TYPE_PLAYROOM_CAT_WIN", - 25: "LOG_TYPE_PLAYROOM_CAT_LOSE", - 26: "LOG_TYPE_CARD_GIVE_ACCEPT", - 27: "LOG_TYPE_FRIEND_INVITE", - 28: "LOG_TYPE_TREASURE_HELP", - 29: "LOG_TYPE_FRIEND_SPONSOR", - 30: "LOG_TYPE_FRIEND_SPONSOR_GET", + 14: "LOG_TYPE_FRIEND_DELETE", + 15: "LOG_TYPE_PLAYROOM_VISIT", + 16: "LOG_TYPE_HANDBOOK", + 17: "LOG_TYPE_HANDBOOK_UPVOTE", + 18: "LOG_TYPE_CHARGE_SEND", + 19: "LOG_TYPE_CHARGE_RECEIVE", + 20: "LOG_TYPE_WISH", + 21: "LOG_TYPE_FRIEND_BECOME_NPC", + 22: "LOG_TYPE_PLAYROOM_UPVOTE", + 23: "LOG_TYPE_PLAYROOM_CHAMPSHIP", + 24: "LOG_TYPE_TREASURE", + 25: "LOG_TYPE_CARD_SEND_ACCEPT", + 26: "LOG_TYPE_PLAYROOM_CAT_WIN", + 27: "LOG_TYPE_PLAYROOM_CAT_LOSE", + 28: "LOG_TYPE_CARD_GIVE_ACCEPT", + 29: "LOG_TYPE_FRIEND_INVITE", + 30: "LOG_TYPE_TREASURE_HELP", + 31: "LOG_TYPE_FRIEND_SPONSOR", + 32: "LOG_TYPE_FRIEND_SPONSOR_GET", } TIME_LINE_TYPE_value = map[string]int32{ "DEFAULT": 0, @@ -756,25 +756,25 @@ var ( "LOG_TYPE_CARD_SELECT_SEND": 9, "LOG_TYPE_CARD_EX_SUCCESS_1": 10, "LOG_TYPE_CARD_EX_SUCCESS_2": 11, - "LOG_TYPE_FRIEND_DELETE": 12, - "LOG_TYPE_PLAYROOM_VISIT": 13, - "LOG_TYPE_HANDBOOK": 14, - "LOG_TYPE_HANDBOOK_UPVOTE": 15, - "LOG_TYPE_CHARGE_SEND": 16, - "LOG_TYPE_CHARGE_RECEIVED": 17, - "LOG_TYPE_WISH": 18, - "LOG_TYPE_FRIEND_BECOME_NPC": 19, - "LOG_TYPE_PLAYROOM_UPVOTE": 20, - "LOG_TYPE_PLAYROOM_CHAMPSHIP": 21, - "LOG_TYPE_TREASURE": 22, - "LOG_TYPE_CARD_SEND_ACCEPT": 23, - "LOG_TYPE_PLAYROOM_CAT_WIN": 24, - "LOG_TYPE_PLAYROOM_CAT_LOSE": 25, - "LOG_TYPE_CARD_GIVE_ACCEPT": 26, - "LOG_TYPE_FRIEND_INVITE": 27, - "LOG_TYPE_TREASURE_HELP": 28, - "LOG_TYPE_FRIEND_SPONSOR": 29, - "LOG_TYPE_FRIEND_SPONSOR_GET": 30, + "LOG_TYPE_FRIEND_DELETE": 14, + "LOG_TYPE_PLAYROOM_VISIT": 15, + "LOG_TYPE_HANDBOOK": 16, + "LOG_TYPE_HANDBOOK_UPVOTE": 17, + "LOG_TYPE_CHARGE_SEND": 18, + "LOG_TYPE_CHARGE_RECEIVE": 19, + "LOG_TYPE_WISH": 20, + "LOG_TYPE_FRIEND_BECOME_NPC": 21, + "LOG_TYPE_PLAYROOM_UPVOTE": 22, + "LOG_TYPE_PLAYROOM_CHAMPSHIP": 23, + "LOG_TYPE_TREASURE": 24, + "LOG_TYPE_CARD_SEND_ACCEPT": 25, + "LOG_TYPE_PLAYROOM_CAT_WIN": 26, + "LOG_TYPE_PLAYROOM_CAT_LOSE": 27, + "LOG_TYPE_CARD_GIVE_ACCEPT": 28, + "LOG_TYPE_FRIEND_INVITE": 29, + "LOG_TYPE_TREASURE_HELP": 30, + "LOG_TYPE_FRIEND_SPONSOR": 31, + "LOG_TYPE_FRIEND_SPONSOR_GET": 32, } ) @@ -24168,7 +24168,7 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 { type ResPlayroomGameShowReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 + Items []*ItemInfo `protobuf:"bytes,5,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -29415,7 +29415,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" + "\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" + "\x19ResPlayroomGameShowReward\x12(\n" + - "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + + "\x05Items\x18\x05 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + "\x13ReqPlayroomInteract\x12\x0e\n" + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" + @@ -29769,7 +29769,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "CODE_LOGIN\x10\x01\x12\x10\n" + "\fDEVICE_LOGIN\x10\x02\x12\r\n" + - "\tSDK_LOGIN\x10\x03*\xf7\x06\n" + + "\tSDK_LOGIN\x10\x03*\xf6\x06\n" + "\x0eTIME_LINE_TYPE\x12\v\n" + "\aDEFAULT\x10\x00\x12\x19\n" + "\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" + @@ -29784,25 +29784,25 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" + "\x12\x1e\n" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_DELETE\x10\f\x12\x1b\n" + - "\x17LOG_TYPE_PLAYROOM_VISIT\x10\r\x12\x15\n" + - "\x11LOG_TYPE_HANDBOOK\x10\x0e\x12\x1c\n" + - "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x0f\x12\x18\n" + - "\x14LOG_TYPE_CHARGE_SEND\x10\x10\x12\x1c\n" + - "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x11\x12\x11\n" + - "\rLOG_TYPE_WISH\x10\x12\x12\x1e\n" + - "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x13\x12\x1c\n" + - "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x14\x12\x1f\n" + - "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x15\x12\x15\n" + - "\x11LOG_TYPE_TREASURE\x10\x16\x12\x1d\n" + - "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x17\x12\x1d\n" + - "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x18\x12\x1e\n" + - "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x19\x12\x1d\n" + - "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1a\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_INVITE\x10\x1b\x12\x1a\n" + - "\x16LOG_TYPE_TREASURE_HELP\x10\x1c\x12\x1b\n" + - "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1d\x12\x1f\n" + - "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10\x1e*\x9b\x01\n" + + "\x16LOG_TYPE_FRIEND_DELETE\x10\x0e\x12\x1b\n" + + "\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" + + "\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" + + "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" + + "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1b\n" + + "\x17LOG_TYPE_CHARGE_RECEIVE\x10\x13\x12\x11\n" + + "\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" + + "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" + + "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" + + "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x17\x12\x15\n" + + "\x11LOG_TYPE_TREASURE\x10\x18\x12\x1d\n" + + "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x19\x12\x1d\n" + + "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" + + "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" + + "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" + + "\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" + + "\x16LOG_TYPE_TREASURE_HELP\x10\x1e\x12\x1b\n" + + "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1f\x12\x1f\n" + + "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10 *\x9b\x01\n" + "\rCHESS_EX_TYPE\x12\x11\n" + "\rCHESS_EX_NONE\x10\x00\x12\x13\n" + "\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" + From d3fde0949a936f342d717ea40e856e0d035472b3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 19 Dec 2025 14:18:53 +0800 Subject: [PATCH 040/104] 1 --- src/server/game/message_mgr.go | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 239355a5..41b9d45d 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -74,8 +74,9 @@ func (m *MessageMgr) MessageMgrInit() { m.Use(LoggingMiddleware()) m.Use(TimeoutMiddleware(5 * time.Second)) if conf.Server.ServerType == "center" { - m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin)) - m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer)) + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler)) + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler)) } else { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) } @@ -90,7 +91,7 @@ func getData() *MessageData { return G_GameLogicPtr.MessageMgr.data.(*MessageData) } -func PlayerLogin(data *msg.Msg) (interface{}, error) { +func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool messageMgrData := getData() messageMgrData.mu.Lock() @@ -105,7 +106,26 @@ func PlayerLogin(data *msg.Msg) (interface{}, error) { return nil, nil } -func SendToPlayer(data *msg.Msg) (interface{}, error) { +func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { + messageMgrData := getData() + Message, ok := messageMgrData.MessageList[int64(data.From)] + if !ok { + return nil, nil + } + Message.mu.Lock() + defer Message.mu.Unlock() + for i, msgItem := range Message.Messages { + if msgItem.Id == data.Id { + // 删除消息 + Message.Messages = append(Message.Messages[:i], Message.Messages[i+1:]...) + log.Debug("[Middleware] Comsume message success type: %d, player id: %v", msgItem.Type, msgItem.From) + break + } + } + return nil, nil +} + +func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { PlayerId := int64(data.To) messageMgrData := getData() // 遍历消息列表,发送消息给在线玩家 @@ -432,14 +452,12 @@ func SendMsgToNode(m *msg.Msg, node int) error { func SendPlayerMsg(m *msg.Msg) error { clone := m.Clone() - clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) } func CallPlayerMsg(m *msg.Msg) (interface{}, error) { clone := m.Clone() - clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m)) clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) } From c814fac8bacc3664e9e30a1bc68b594a89a1ff04 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 19 Dec 2025 18:46:22 +0800 Subject: [PATCH 041/104] =?UTF-8?q?=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 2 +- src/server/msg/Gameapi.pb.go | 1269 ++++++++++++++-------------- 2 files changed, 635 insertions(+), 636 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 74272463..fa9bbf6c 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -478,7 +478,7 @@ func (p *Player) handle(m *msg.Msg) error { ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Info: &proto.ResFriendLog{ + Info: &proto.ResFriendReply{ Player: PlayerSimpleData, Param: ReplyInfo.Param, Type: int32(ReplyInfo.Type), diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index acdf437d..26fa474b 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -358,44 +358,44 @@ type RES_CODE int32 const ( RES_CODE_FAIL RES_CODE = 0 RES_CODE_SUCCESS RES_CODE = 1 - RES_CODE_Protocol_Error_Account_Exist RES_CODE = 2 // 账号已存在 - RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 3 // 账号或密码错误 - RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 4 // 账号或密码过短 - RES_CODE_Protocol_Error_Account_Fail RES_CODE = 5 // 账号操作失败 - RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 6 // 账号不存在 - RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 7 // 验证码错误 - RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 8 // 设备号错误 - RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 9 // 未实名认证 - RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 10 // 实名认证失败 + RES_CODE_Protocol_Error_Account_Exist RES_CODE = 100 // 账号已存在 + RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 101 // 账号或密码错误 + RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 102 // 账号或密码过短 + RES_CODE_Protocol_Error_Account_Fail RES_CODE = 103 // 账号操作失败 + RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 104 // 账号不存在 + RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 105 // 验证码错误 + RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 106 // 设备号错误 + RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 107 // 未实名认证 + RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 108 // 实名认证失败 ) // Enum value maps for RES_CODE. var ( RES_CODE_name = map[int32]string{ - 0: "FAIL", - 1: "SUCCESS", - 2: "Protocol_Error_Account_Exist", - 3: "Protocol_Error_Account_OR_PWD_ERROR", - 4: "Protocol_Error_Account_OR_PWD_Short", - 5: "Protocol_Error_Account_Fail", - 6: "Protocol_Error_Account_NoExsit", - 7: "Protocol_Error_Account_Code_Error", - 8: "Protocol_Error_Account_Device_Error", - 9: "Protocol_Error_Id_Not_Verify", - 10: "Protocol_Error_Id_Verify_Error", + 0: "FAIL", + 1: "SUCCESS", + 100: "Protocol_Error_Account_Exist", + 101: "Protocol_Error_Account_OR_PWD_ERROR", + 102: "Protocol_Error_Account_OR_PWD_Short", + 103: "Protocol_Error_Account_Fail", + 104: "Protocol_Error_Account_NoExsit", + 105: "Protocol_Error_Account_Code_Error", + 106: "Protocol_Error_Account_Device_Error", + 107: "Protocol_Error_Id_Not_Verify", + 108: "Protocol_Error_Id_Verify_Error", } RES_CODE_value = map[string]int32{ "FAIL": 0, "SUCCESS": 1, - "Protocol_Error_Account_Exist": 2, - "Protocol_Error_Account_OR_PWD_ERROR": 3, - "Protocol_Error_Account_OR_PWD_Short": 4, - "Protocol_Error_Account_Fail": 5, - "Protocol_Error_Account_NoExsit": 6, - "Protocol_Error_Account_Code_Error": 7, - "Protocol_Error_Account_Device_Error": 8, - "Protocol_Error_Id_Not_Verify": 9, - "Protocol_Error_Id_Verify_Error": 10, + "Protocol_Error_Account_Exist": 100, + "Protocol_Error_Account_OR_PWD_ERROR": 101, + "Protocol_Error_Account_OR_PWD_Short": 102, + "Protocol_Error_Account_Fail": 103, + "Protocol_Error_Account_NoExsit": 104, + "Protocol_Error_Account_Code_Error": 105, + "Protocol_Error_Account_Device_Error": 106, + "Protocol_Error_Id_Not_Verify": 107, + "Protocol_Error_Id_Verify_Error": 108, } ) @@ -687,25 +687,25 @@ const ( TIME_LINE_TYPE_LOG_TYPE_CARD_SELECT_SEND TIME_LINE_TYPE = 9 // 选择卡牌交换 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_1 TIME_LINE_TYPE = 10 // 卡牌交换成功 TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_2 TIME_LINE_TYPE = 11 // 卡牌交换成功 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 12 // 删除好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 13 // 非小猫游戏,他人偷走了玩家的猫币 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 14 // 图鉴收集 - TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 15 // 图鉴点赞 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 16 // 充值赠送 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 17 // 充值接受 - TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 18 // 心愿单 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 19 // NPC成为好友 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 20 // playroom点赞 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 21 // 竞标赛排名 - TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 22 // 宠物宝藏 - TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 23 // 收到赠送卡牌 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 24 // 小猫游戏,给小猫成功装箱 - TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 25 // 小猫游戏,装箱小猫未成功 - TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 26 // 接受卡牌请求 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 27 // 邀请注册 - TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 28 // 宠物宝藏帮助 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 29 // 好友赞助体力 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 30 // 获得好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 14 // 删除好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集 + TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 充值赠送 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 19 // 充值接受 + TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // NPC成为好友 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名 + TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 宠物宝藏 + TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱 + TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功 + TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册 + TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 宠物宝藏帮助 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力 ) // Enum value maps for TIME_LINE_TYPE. @@ -723,25 +723,25 @@ var ( 9: "LOG_TYPE_CARD_SELECT_SEND", 10: "LOG_TYPE_CARD_EX_SUCCESS_1", 11: "LOG_TYPE_CARD_EX_SUCCESS_2", - 12: "LOG_TYPE_FRIEND_DELETE", - 13: "LOG_TYPE_PLAYROOM_VISIT", - 14: "LOG_TYPE_HANDBOOK", - 15: "LOG_TYPE_HANDBOOK_UPVOTE", - 16: "LOG_TYPE_CHARGE_SEND", - 17: "LOG_TYPE_CHARGE_RECEIVED", - 18: "LOG_TYPE_WISH", - 19: "LOG_TYPE_FRIEND_BECOME_NPC", - 20: "LOG_TYPE_PLAYROOM_UPVOTE", - 21: "LOG_TYPE_PLAYROOM_CHAMPSHIP", - 22: "LOG_TYPE_TREASURE", - 23: "LOG_TYPE_CARD_SEND_ACCEPT", - 24: "LOG_TYPE_PLAYROOM_CAT_WIN", - 25: "LOG_TYPE_PLAYROOM_CAT_LOSE", - 26: "LOG_TYPE_CARD_GIVE_ACCEPT", - 27: "LOG_TYPE_FRIEND_INVITE", - 28: "LOG_TYPE_TREASURE_HELP", - 29: "LOG_TYPE_FRIEND_SPONSOR", - 30: "LOG_TYPE_FRIEND_SPONSOR_GET", + 14: "LOG_TYPE_FRIEND_DELETE", + 15: "LOG_TYPE_PLAYROOM_VISIT", + 16: "LOG_TYPE_HANDBOOK", + 17: "LOG_TYPE_HANDBOOK_UPVOTE", + 18: "LOG_TYPE_CHARGE_SEND", + 19: "LOG_TYPE_CHARGE_RECEIVED", + 20: "LOG_TYPE_WISH", + 21: "LOG_TYPE_FRIEND_BECOME_NPC", + 22: "LOG_TYPE_PLAYROOM_UPVOTE", + 23: "LOG_TYPE_PLAYROOM_CHAMPSHIP", + 24: "LOG_TYPE_TREASURE", + 25: "LOG_TYPE_CARD_SEND_ACCEPT", + 26: "LOG_TYPE_PLAYROOM_CAT_WIN", + 27: "LOG_TYPE_PLAYROOM_CAT_LOSE", + 28: "LOG_TYPE_CARD_GIVE_ACCEPT", + 29: "LOG_TYPE_FRIEND_INVITE", + 30: "LOG_TYPE_TREASURE_HELP", + 31: "LOG_TYPE_FRIEND_SPONSOR", + 32: "LOG_TYPE_FRIEND_SPONSOR_GET", } TIME_LINE_TYPE_value = map[string]int32{ "DEFAULT": 0, @@ -756,25 +756,25 @@ var ( "LOG_TYPE_CARD_SELECT_SEND": 9, "LOG_TYPE_CARD_EX_SUCCESS_1": 10, "LOG_TYPE_CARD_EX_SUCCESS_2": 11, - "LOG_TYPE_FRIEND_DELETE": 12, - "LOG_TYPE_PLAYROOM_VISIT": 13, - "LOG_TYPE_HANDBOOK": 14, - "LOG_TYPE_HANDBOOK_UPVOTE": 15, - "LOG_TYPE_CHARGE_SEND": 16, - "LOG_TYPE_CHARGE_RECEIVED": 17, - "LOG_TYPE_WISH": 18, - "LOG_TYPE_FRIEND_BECOME_NPC": 19, - "LOG_TYPE_PLAYROOM_UPVOTE": 20, - "LOG_TYPE_PLAYROOM_CHAMPSHIP": 21, - "LOG_TYPE_TREASURE": 22, - "LOG_TYPE_CARD_SEND_ACCEPT": 23, - "LOG_TYPE_PLAYROOM_CAT_WIN": 24, - "LOG_TYPE_PLAYROOM_CAT_LOSE": 25, - "LOG_TYPE_CARD_GIVE_ACCEPT": 26, - "LOG_TYPE_FRIEND_INVITE": 27, - "LOG_TYPE_TREASURE_HELP": 28, - "LOG_TYPE_FRIEND_SPONSOR": 29, - "LOG_TYPE_FRIEND_SPONSOR_GET": 30, + "LOG_TYPE_FRIEND_DELETE": 14, + "LOG_TYPE_PLAYROOM_VISIT": 15, + "LOG_TYPE_HANDBOOK": 16, + "LOG_TYPE_HANDBOOK_UPVOTE": 17, + "LOG_TYPE_CHARGE_SEND": 18, + "LOG_TYPE_CHARGE_RECEIVED": 19, + "LOG_TYPE_WISH": 20, + "LOG_TYPE_FRIEND_BECOME_NPC": 21, + "LOG_TYPE_PLAYROOM_UPVOTE": 22, + "LOG_TYPE_PLAYROOM_CHAMPSHIP": 23, + "LOG_TYPE_TREASURE": 24, + "LOG_TYPE_CARD_SEND_ACCEPT": 25, + "LOG_TYPE_PLAYROOM_CAT_WIN": 26, + "LOG_TYPE_PLAYROOM_CAT_LOSE": 27, + "LOG_TYPE_CARD_GIVE_ACCEPT": 28, + "LOG_TYPE_FRIEND_INVITE": 29, + "LOG_TYPE_TREASURE_HELP": 30, + "LOG_TYPE_FRIEND_SPONSOR": 31, + "LOG_TYPE_FRIEND_SPONSOR_GET": 32, } ) @@ -1183,7 +1183,7 @@ func (FRIEND_REPLY_HANDLE_ERR_TYPE) EnumDescriptor() ([]byte, []int) { type ClientReq struct { state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID; + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` @@ -1994,7 +1994,7 @@ type ReqRegisterAccount struct { UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2107,9 +2107,9 @@ type ReqLogin struct { state protoimpl.MessageState `protogen:"open.v1"` UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; - Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式; + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 + Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2181,7 +2181,7 @@ func (x *ReqLogin) GetType() LOGIN_TYPE { type ReqLoginCode struct { state protoimpl.MessageState `protogen:"open.v1"` - TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码; + TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2225,9 +2225,9 @@ func (x *ReqLoginCode) GetTelPhone() string { type ResLoginCode struct { state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试; + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败 + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2285,8 +2285,8 @@ func (x *ResLoginCode) GetCode() string { type ReqId2Verify struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码; - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码 + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2337,8 +2337,8 @@ func (x *ReqId2Verify) GetName() string { type ResId2Verify struct { state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败 + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2394,7 +2394,7 @@ type ResLogin struct { DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2467,7 +2467,7 @@ func (x *ResLogin) GetMsg() string { type ReqChangePassword struct { state protoimpl.MessageState `protogen:"open.v1"` UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码; + OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码 NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -2890,8 +2890,8 @@ type ResPlayerAsset struct { Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` - PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验; - LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数; + PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验 + LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3461,8 +3461,8 @@ type ResPlayerChessInfo struct { ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` - PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件; - RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励; + PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件 + RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3548,7 +3548,7 @@ func (x *ResPlayerChessInfo) GetRetireReward() []string { type ReqGetChessRetireReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3594,7 +3594,7 @@ type ResGetChessRetireReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3652,7 +3652,7 @@ func (x *ResGetChessRetireReward) GetId() string { type PartBag struct { state protoimpl.MessageState `protogen:"open.v1"` - PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子; + PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3696,8 +3696,8 @@ func (x *PartBag) GetPartBagGrids() []*PartBagGrid { type PartBagGrid struct { state protoimpl.MessageState `protogen:"open.v1"` - PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量; + PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3748,7 +3748,7 @@ func (x *PartBagGrid) GetCount() int32 { type ReqPutPartInBag struct { state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID; + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -3857,7 +3857,7 @@ type ChessHandle struct { Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` - ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4361,9 +4361,9 @@ type ReqChessEx struct { OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡; + Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星; + CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4603,7 +4603,7 @@ type ReqPlayroomOutline struct { OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4729,9 +4729,9 @@ func (x *ResPlayroomOutline) GetMsg() string { // 棋盘背包 type ChessBag struct { state protoimpl.MessageState `protogen:"open.v1"` - ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子; - ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数; - ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数; + ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子 + ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数 + ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4789,9 +4789,9 @@ func (x *ChessBag) GetChessFreeCnt() int32 { type ChessBagGrid struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID; - ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID; - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID + ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4852,7 +4852,7 @@ type ReqPutChessInBag struct { state protoimpl.MessageState `protogen:"open.v1"` ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5369,7 +5369,7 @@ type ResPlayerBriefProfileData struct { NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` - SetEmoji map[int32]int32 `protobuf:"bytes,8,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5560,7 +5560,7 @@ func (x *ResSetEnergyMul) GetMsg() string { // 设置能量倍数 type ReqLang struct { state protoimpl.MessageState `protogen:"open.v1"` - Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文; + Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5656,11 +5656,11 @@ func (x *ResLang) GetMsg() string { type BaseInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数; - IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店; - EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数; - EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数; - Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文; + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数 + IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店 + EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数 + EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数 + Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5775,12 +5775,12 @@ type UserInfo struct { DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录; - PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; - EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表; - SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; - IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码; - AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码; + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录 + PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 + EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表 + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 + IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码 + AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6103,7 +6103,7 @@ func (x *ResSetPetName) GetMsg() string { // 购买能量 type ReqBuyEnergy struct { state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力; + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6437,7 +6437,7 @@ func (x *HandbookInfo) GetStatus() int32 { type Handbook struct { state protoimpl.MessageState `protogen:"open.v1"` Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` - Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励; + Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6488,7 +6488,7 @@ func (x *Handbook) GetCollect() []string { type RegHandbookAllReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"; + Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C" unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6586,7 +6586,7 @@ type ReqRewardOrder struct { state protoimpl.MessageState `protogen:"open.v1"` OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6921,7 +6921,7 @@ type Order struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7033,8 +7033,8 @@ type ResDecorateInfo struct { state protoimpl.MessageState `protogen:"open.v1"` AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` - RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励; - Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件; + RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励 + Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7100,7 +7100,7 @@ func (x *ResDecorateInfo) GetParts() []*DecoratePart { type DecoratePart struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7583,20 +7583,20 @@ func (*ReqCardInfo) Descriptor() ([]byte, []int) { type ResCardInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表; - ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级; - Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取; - CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励; - ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数; - ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; - EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间; - ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; - Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次; - Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取; - SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励; + CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表 + ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级 + Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取 + CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励 + ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数 + ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 + AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 + EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间 + ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid + ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid + GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 + Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次 + Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取 + SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7731,11 +7731,11 @@ func (x *ResCardInfo) GetSeasonFirst() bool { type ResNotifyCardTimes struct { state protoimpl.MessageState `protogen:"open.v1"` - ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数; - ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; + ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数 + ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 + ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid + ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid + GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8001,8 +8001,8 @@ func (x *ResCardHandbookReward) GetCardId() int32 { // 万能卡兑换 type ReqMasterCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡; - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡 + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8510,7 +8510,7 @@ func (x *ResCardGive) GetMsg() string { // 同意请求卡牌 type ReqAgreeCardGive struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8615,7 +8615,7 @@ func (x *ResAgreeCardGive) GetId() string { // 拒绝请求卡牌 type ReqRefuseCardGive struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8722,7 +8722,7 @@ type ReqCardSend struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8835,7 +8835,7 @@ type ReqCardExchange struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9106,7 +9106,7 @@ type ResAgreeCardExchange struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9430,7 +9430,7 @@ type ResGetFriendCard struct { Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9539,8 +9539,8 @@ func (*ReqGetGoldCard) Descriptor() ([]byte, []int) { type ResGetGoldCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡; - Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡; + Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡 + Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9873,9 +9873,9 @@ func (x *ResGuideInfo) GetReward() map[int32]int32 { type ResItemPop struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具; - CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包; - Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具 + CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包 + Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9992,7 +9992,7 @@ func (x *ItemInfo) GetNum() int32 { type CardPack struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -10045,10 +10045,10 @@ func (x *CardPack) GetCard() []int32 { // 新手任务 type ResGuideTask struct { state protoimpl.MessageState `protogen:"open.v1"` - ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励; - Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间; + ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励 + Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10113,9 +10113,9 @@ func (x *ResGuideTask) GetUnlockTime() int32 { type GuideTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 + Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10173,7 +10173,7 @@ func (x *GuideTask) GetId() int32 { type ReqGetGuideTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10219,7 +10219,7 @@ type ResGetGuideTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10277,7 +10277,7 @@ func (x *ResGetGuideTaskReward) GetId() int32 { type ReqGetGuideActiveReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10323,7 +10323,7 @@ type ResGetGuideActiveReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10382,11 +10382,11 @@ func (x *ResGetGuideActiveReward) GetId() int32 { // 日常任务 type ResDailyTask struct { state protoimpl.MessageState `protogen:"open.v1"` - WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励; - DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳; - WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳; + WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励 + DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳 + WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10458,9 +10458,9 @@ func (x *ResDailyTask) GetWeekEnd() int32 { type DailyWeek struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取; - NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度; + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 + Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取 + NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10518,12 +10518,12 @@ func (x *DailyWeek) GetNeedActive() int32 { type DailyTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁; - Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; - Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 + UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁 + Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id + Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10602,11 +10602,11 @@ func (x *DailyTask) GetIndex() int32 { type QuestProgress struct { state protoimpl.MessageState `protogen:"open.v1"` - Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度; - Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标; - Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成; - Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数; + Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度 + Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标 + Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 + Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11012,9 +11012,9 @@ func (x *ResFaceInfo) GetSetId() int32 { type FaceInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11220,9 +11220,9 @@ func (x *ResAvatarInfo) GetSetId() int32 { type AvatarInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11377,9 +11377,9 @@ func (x *ResSetAvatar) GetMsg() string { // 表情 Emoji type EmojiInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11438,8 +11438,8 @@ func (x *EmojiInfo) GetAddTime() int64 { // 设置表情 type ReqSetEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11543,10 +11543,10 @@ func (x *ResSetEmoji) GetMsg() string { // 七日签到 type ResSevenLogin struct { state protoimpl.MessageState `protogen:"open.v1"` - WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励; - MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回; + WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励 + MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11611,11 +11611,11 @@ func (x *ResSevenLogin) GetIsBack() bool { type SevenLoginReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1; - Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2; - Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id; + Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1 + Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2 + Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3 + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取 + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11926,13 +11926,13 @@ func (x *ResActivity) GetActiveList() []*ActivityInfo { type ActivityInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型; - StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束; - Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题; - Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型 + StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束 + Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题 + Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12019,7 +12019,7 @@ func (x *ActivityInfo) GetRed() int32 { // 领取活动奖励 type ReqActivityReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12153,7 +12153,7 @@ func (*ReqLimitEvent) Descriptor() ([]byte, []int) { type ResLimitEvent struct { state protoimpl.MessageState `protogen:"open.v1"` - LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表; + LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12197,9 +12197,9 @@ func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { type ResLimitEventProgress struct { state protoimpl.MessageState `protogen:"open.v1"` - ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度; - Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度; - ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId; + ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度 + Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度 + ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12449,12 +12449,12 @@ func (x *ResSelectLimitEvent) GetMsg() string { type LimitEvent struct { state protoimpl.MessageState `protogen:"open.v1"` - EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; - Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数; - StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam; - ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间; + EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd + Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数 + StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 + Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam + ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12533,10 +12533,10 @@ func (x *LimitEvent) GetShowTime() int32 { type LimitEventNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12793,8 +12793,8 @@ func (x *ResLimitSenceReward) GetMsg() string { type ResChessRainReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具; - Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id; + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具 + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12881,9 +12881,9 @@ func (*ReqFastProduceInfo) Descriptor() ([]byte, []int) { type ResFastProduceInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数; - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13092,7 +13092,7 @@ type ResCatTrickReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭; + IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13300,14 +13300,14 @@ type ResFriendPlayerSimple struct { Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; - Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表; - Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态; - Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态; + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 + Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表 + Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态 + Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态 PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -13480,9 +13480,9 @@ type ResPlayerSimple struct { Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13669,7 +13669,7 @@ type ResPlayerRank struct { Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` - Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人; + Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13760,7 +13760,7 @@ type ResFriendLog struct { Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` - Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; + Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13840,7 +13840,7 @@ func (x *ResFriendLog) GetUpvote() bool { type NotifyFriendLog struct { state protoimpl.MessageState `protogen:"open.v1"` Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` - Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13891,9 +13891,9 @@ func (x *NotifyFriendLog) GetBubble() *FriendBubbleInfo { type FriendBubbleInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:; - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2: + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14006,7 +14006,7 @@ type ResFriendCard struct { ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14223,7 +14223,7 @@ func (x *ResKv) GetKv() map[int32]string { type ReqFriendByCode struct { state protoimpl.MessageState `protogen:"open.v1"` - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码; + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14269,7 +14269,7 @@ type ResFriendByCode struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; + Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14543,9 +14543,9 @@ func (*ReqFriendList) Descriptor() ([]byte, []int) { type ResFriendList struct { state protoimpl.MessageState `protogen:"open.v1"` FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` - ReqApplyList []int64 `protobuf:"varint,2,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表; - Npc []int32 `protobuf:"varint,3,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表; - Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数; + ReqApplyList []int64 `protobuf:"varint,3,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表 + Npc []int32 `protobuf:"varint,2,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表 + Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15203,14 +15203,14 @@ func (x *ResFriendTimeLine) GetReply() []*ResFriendReply { type ResFriendReply struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼; - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理; - AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //; - Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; - Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼 + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理 + AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // + Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 + Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15303,9 +15303,9 @@ func (x *ResFriendReply) GetItems() []*ItemInfo { type ReqFriendReplyHandle struct { state protoimpl.MessageState `protogen:"open.v1"` - LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; - Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; + LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id + Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15365,7 +15365,7 @@ type ResFriendReplyHandle struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; ErrType FRIEND_REPLY_HANDLE_ERR_TYPE `protobuf:"varint,5,opt,name=ErrType,proto3,enum=tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE" json:"ErrType,omitempty"` // 错误类型; unknownFields protoimpl.UnknownFields @@ -15439,7 +15439,7 @@ func (x *ResFriendReplyHandle) GetErrType() FRIEND_REPLY_HANDLE_ERR_TYPE { type ResFriendBubble struct { state protoimpl.MessageState `protogen:"open.v1"` - Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15753,7 +15753,7 @@ func (x *ResFriendApplyNotify) GetTime() int32 { type ResFriendReplyNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` + Info *ResFriendReply `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields @@ -15790,7 +15790,7 @@ func (*ResFriendReplyNotify) Descriptor() ([]byte, []int) { return file_proto_Gameapi_proto_rawDescGZIP(), []int{259} } -func (x *ResFriendReplyNotify) GetInfo() *ResFriendLog { +func (x *ResFriendReplyNotify) GetInfo() *ResFriendReply { if x != nil { return x.Info } @@ -15815,7 +15815,7 @@ func (x *ResFriendReplyNotify) GetTime() int32 { type ReqApplyFriend struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16250,7 +16250,7 @@ func (x *ResDelFriend) GetUid() int64 { // 玩家榜单 type ReqRank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16294,10 +16294,10 @@ func (x *ReqRank) GetType() int32 { type ResRank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型; - RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型 + RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16443,20 +16443,20 @@ func (x *ResMailList) GetMailList() map[int32]*MailInfo { type MailInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id; - Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题; - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容; - Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除; - Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; - Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件; - TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题; - ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容; - SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题; - SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题; - TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题; - ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容; - SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id + Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题 + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 + Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间 + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除 + Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 + Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件 + TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题 + ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容 + SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题 + SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题 + TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题 + ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容 + SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16950,23 +16950,23 @@ func (x *ResDeleteMail) GetId() int32 { type ResCharge struct { state protoimpl.MessageState `protogen:"open.v1"` - Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额; - Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数; - First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次; - SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包; - FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次; - ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店; - Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量; - Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包; - Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单; - SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额; - SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周; - TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额; - MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额; - AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; - PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间; - WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间; + Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额 + Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数 + First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次 + SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包 + FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次 + ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店 + Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量 + Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包 + Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单 + SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额 + SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周 + TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额 + MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额 + AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间 + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 + PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间 + WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17122,8 +17122,8 @@ func (x *ResCharge) GetWeeklyEndTime() int64 { type LogoutPetWork struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间; - RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间; + WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间 + RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17174,9 +17174,9 @@ func (x *LogoutPetWork) GetRemainTime() int64 { type WeeklyDiscountInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 剩余购买次数; - Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比; + 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"` // 剩余购买次数 + Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17234,9 +17234,9 @@ func (x *WeeklyDiscountInfo) GetDiscount() int32 { type WishList struct { state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 心愿点数; - Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id; + 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"` // 心愿点数 + Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17295,8 +17295,8 @@ func (x *WishList) GetUid() []int64 { // 添加心愿单 type ReqAddWish struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17489,7 +17489,7 @@ func (x *ResGetWish) GetMsg() string { // 发送心愿单请求 type ReqSendWishBeg struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17585,8 +17585,8 @@ func (x *ResSendWishBeg) GetMsg() string { type ResSpecialShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数; + Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位 + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17637,9 +17637,9 @@ func (x *ResSpecialShop) GetCount() int32 { type ResChessShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量; - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id; + Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石 + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量 + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18312,10 +18312,10 @@ func (x *ResEndlessReward) GetMsg() string { type ResPiggyBank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告; - Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石; - Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告 + Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石 + Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数 + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18468,8 +18468,8 @@ func (x *ResPiggyBankReward) GetMsg() string { type ReqChargeReceive struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id + Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18573,10 +18573,10 @@ func (x *ResChargeReceive) GetMsg() string { type ReqCreateOrderSn struct { state protoimpl.MessageState `protogen:"open.v1"` ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test; - Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid; + PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test + Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送 + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18648,7 +18648,7 @@ func (x *ReqCreateOrderSn) GetUid() int64 { type ResCreateOrderSn struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18692,10 +18692,10 @@ func (x *ResCreateOrderSn) GetOrderSn() string { type ReqShippingOrder struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id; - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 + ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19152,9 +19152,9 @@ func (*ReqChampshipRank) Descriptor() ([]byte, []int) { type ResChampshipRank struct { state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19248,9 +19248,9 @@ func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { type ResChampshipPreRank struct { state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19308,10 +19308,10 @@ func (x *ResChampshipPreRank) GetMyScore() float32 { type ResNotifyCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌; - Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; - ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星; - Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴; + Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌 + Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 + ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星 + Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19797,7 +19797,7 @@ func (x *ResGetInviteReward) GetResultCode() int32 { type ReqAutoAddInviteFriend struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid; + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19885,7 +19885,7 @@ func (x *ResAutoAddInviteFriend) GetResultCode() int32 { type ReqAutoAddInviteFriend2 struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id; + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20010,14 +20010,14 @@ func (*ReqMining) Descriptor() ([]byte, []int) { type ResMining struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石; - Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; - Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石 + Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 + Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20110,8 +20110,8 @@ func (x *ResMining) GetMining() int32 { type ReqMiningTake struct { state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; - Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石; + Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 + Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20339,14 +20339,14 @@ func (*ReqActPass) Descriptor() ([]byte, []int) { type ResActPass struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Score int32 `protobuf:"varint,5,opt,name=Score,proto3" json:"Score,omitempty"` // 经验; - Reward []int32 `protobuf:"varint,6,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id; - LowPass bool `protobuf:"varint,7,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证; - HighPass bool `protobuf:"varint,8,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Score int32 `protobuf:"varint,6,opt,name=Score,proto3" json:"Score,omitempty"` // 经验 + Reward []int32 `protobuf:"varint,7,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id + LowPass bool `protobuf:"varint,8,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证 + HighPass bool `protobuf:"varint,9,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20477,7 +20477,7 @@ type ResActPassReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id; + RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20535,7 +20535,7 @@ func (x *ResActPassReward) GetRewardLevel() []int32 { type ResActRed struct { state protoimpl.MessageState `protogen:"open.v1"` - Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点; + Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20721,7 +20721,7 @@ func (x *ResItem) GetItem() map[int32]int32 { type ItemNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量; + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20802,15 +20802,15 @@ func (*ReqGuessColor) Descriptor() ([]byte, []int) { type ResGuessColor struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; - WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数; - Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史 + OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 + WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数 + Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20910,10 +20910,10 @@ func (x *ResGuessColor) GetOpponent() *Opponent { type Opponent struct { state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Progress int32 `protobuf:"varint,4,opt,name=Progress,proto3" json:"Progress,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20979,8 +20979,8 @@ func (x *Opponent) GetProgress() int32 { // 猜颜色 type ReqGuessColorTake struct { state protoimpl.MessageState `protogen:"open.v1"` - Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; + Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史 + OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21031,7 +21031,7 @@ func (x *ReqGuessColorTake) GetOMap() map[int32]int32 { type GuessColorInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史; + Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21252,16 +21252,16 @@ func (*ReqRace) Descriptor() ([]byte, []int) { type ResRace struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间; - GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间; - Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间 + GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间 + Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 + Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 + Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21657,36 +21657,36 @@ func (*ReqPlayroom) Descriptor() ([]byte, []int) { type ResPlayroom struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励; - Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友; - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰; - Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; - LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; - AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线; - Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数; + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态 + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励 + Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 + Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友 + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰 + Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> + LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 + StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 + WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 + AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 + Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线 + Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数 Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳; - DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包; - PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; - Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数; - RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分; - Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id; - DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; - InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; - Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; - Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid; - AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息; - Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; + Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳 + DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包 + PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 + Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数 + RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分 + Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id + DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 + DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 + InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 + Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 + Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid + AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息 + Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间 + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21933,8 +21933,8 @@ func (x *ResPlayroom) GetWeeklyDiscount() map[int32]*WeeklyDiscountInfo { type NotifyPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` - DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 + DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21986,7 +21986,7 @@ func (x *NotifyPlayroomTask) GetDailyTaskReward() []int32 { // 领取任务奖励 type ReqPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22032,7 +22032,7 @@ type ResPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22091,7 +22091,7 @@ func (x *ResPlayroomTask) GetId() int32 { // 领取任务大奖 type ReqPlayroomTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22137,8 +22137,8 @@ type ResPlayroomTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22203,7 +22203,7 @@ func (x *ResPlayroomTaskReward) GetType() int32 { type ReqPlayroomUnlock struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22249,7 +22249,7 @@ type ResPlayroomUnlock struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22307,7 +22307,7 @@ func (x *ResPlayroomUnlock) GetId() int32 { type ReqPlayroomUpvote struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22353,7 +22353,7 @@ type ResPlayroomUpvote struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22411,7 +22411,7 @@ func (x *ResPlayroomUpvote) GetId() int64 { type PlayroomDress struct { state protoimpl.MessageState `protogen:"open.v1"` - List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id; + List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22455,10 +22455,10 @@ func (x *PlayroomDress) GetList() []*PlayroomDressInfo { type PlayroomDressInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22523,10 +22523,10 @@ func (x *PlayroomDressInfo) GetLabel() string { type PlayroomAirInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22591,10 +22591,10 @@ func (x *PlayroomAirInfo) GetLabel() string { type PlayroomCollectInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22659,7 +22659,7 @@ func (x *PlayroomCollectInfo) GetLabel() string { type ReqPlayroomDressSet struct { state protoimpl.MessageState `protogen:"open.v1"` - DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; + DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22755,7 +22755,7 @@ func (x *ResPlayroomDressSet) GetMsg() string { type ReqPlayroomPetAirSet struct { state protoimpl.MessageState `protogen:"open.v1"` - PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; + PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22939,7 +22939,7 @@ func (x *ResPlayroomWrokOutline) GetMsg() string { type NofiPlayroomStatus struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态; + WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22983,8 +22983,8 @@ func (x *NofiPlayroomStatus) GetWorkOutline() int32 { type NotifyPlayroomWork struct { state protoimpl.MessageState `protogen:"open.v1"` - StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; + StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 + WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23035,9 +23035,9 @@ func (x *NotifyPlayroomWork) GetWorkStatus() int32 { type NotifyPlayroomLose struct { state protoimpl.MessageState `protogen:"open.v1"` - LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇; + LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 + Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23095,8 +23095,8 @@ func (x *NotifyPlayroomLose) GetRevenge() int64 { type ChipInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23147,10 +23147,10 @@ func (x *ChipInfo) GetEmojiId() int32 { type NotifyPlayroomMood struct { state protoimpl.MessageState `protogen:"open.v1"` - AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; - Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理>; - AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励; + AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 + Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> + Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理> + AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23215,9 +23215,9 @@ func (x *NotifyPlayroomMood) GetAdItem() []*AdItem { type AdItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数; - LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间; - ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id; + Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数 + LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间 + ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23275,7 +23275,7 @@ func (x *AdItem) GetItemId() int32 { type NotifyPlayroomKiss struct { state protoimpl.MessageState `protogen:"open.v1"` - Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23323,7 +23323,7 @@ type FriendRoom struct { Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数; + Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23399,7 +23399,7 @@ type RoomOpponent struct { Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间; + LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23520,19 +23520,19 @@ type ResPlayroomInfo struct { Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id; - Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; - Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束; - Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御; - Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌>; - Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名; - Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; - UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数; - DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id + Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 + Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束 + Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御 + Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌> + Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名 + Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 + UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数 + DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23689,7 +23689,7 @@ func (x *ResPlayroomInfo) GetKiss() int32 { // 请求翻牌 type ReqPlayroomFlip struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23735,8 +23735,8 @@ type ResPlayroomFlip struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23802,7 +23802,7 @@ func (x *ResPlayroomFlip) GetCardId() int32 { // 引导修改playroom生理值 type ReqPlayroomGuide struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23899,7 +23899,7 @@ func (x *ResPlayroomGuide) GetMsg() string { // 领取游戏奖励 type ReqPlayroomFlipReward struct { state protoimpl.MessageState `protogen:"open.v1"` - EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23995,8 +23995,8 @@ func (x *ResPlayroomFlipReward) GetMsg() string { type ReqPlayroomGame struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果 + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24050,7 +24050,7 @@ type ResPlayroomGame struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` - Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; + Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24116,8 +24116,8 @@ func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo { // 展示游戏结果数据 type ReqPlayroomGameShowReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果; - SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果 + SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24168,7 +24168,7 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 { type ResPlayroomGameShowReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 + Items []*ItemInfo `protobuf:"bytes,5,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24213,8 +24213,8 @@ func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { // 宠物交互 type ReqPlayroomInteract struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24267,7 +24267,7 @@ type ResPlayroomInteract struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; + InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24326,7 +24326,7 @@ func (x *ResPlayroomInteract) GetInteractNum() int32 { // playroom装饰 type ReqPlayroomSetRoom struct { state protoimpl.MessageState `protogen:"open.v1"` - Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; + Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24422,8 +24422,8 @@ func (x *ResPlayroomSetRoom) GetMsg() string { type ReqPlayroomSelectReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24832,7 +24832,7 @@ type ResPlayroomDraw struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24891,7 +24891,7 @@ func (x *ResPlayroomDraw) GetId() int32 { // 消除 纸屑 type ReqPlayroomChip struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数; + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24987,7 +24987,7 @@ func (x *ResPlayroomChip) GetMsg() string { type ReqPlayroomBuyItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25084,8 +25084,8 @@ func (x *ResPlayroomBuyItem) GetMsg() string { // playroom商店 购买 type ReqPlayroomShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25225,12 +25225,12 @@ func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { type ResFriendTreasure struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; - Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位; - List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表; - List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表; - Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 + Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位 + List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表 + List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表 + Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25309,13 +25309,13 @@ func (x *ResFriendTreasure) GetUids() []int64 { type TreasureInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型; - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像; - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid; - Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻; - NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称; + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像 + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框 + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid + Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻 + NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25401,7 +25401,7 @@ func (x *TreasureInfo) GetNickName() string { type ReqFriendTreasureStart struct { state protoimpl.MessageState `protogen:"open.v1"` - List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表 List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -25689,7 +25689,7 @@ func (x *ResFriendTreasureFilp) GetMsg() string { type ResFriendTreasureStar struct { state protoimpl.MessageState `protogen:"open.v1"` - Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; + Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25821,8 +25821,8 @@ func (*ReqCollectInfo) Descriptor() ([]byte, []int) { type ResCollectInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19]; - Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19] + Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25873,8 +25873,8 @@ func (x *ResCollectInfo) GetItems() []*CollectItem { type CollectItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引 + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25925,7 +25925,7 @@ func (x *CollectItem) GetItems() []*ItemInfo { type ReqCollect struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26060,13 +26060,13 @@ func (*ReqCatnip) Descriptor() ([]byte, []int) { type ResCatnip struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表; - Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; - FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表 + Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 + FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26153,12 +26153,12 @@ func (x *ResCatnip) GetFriendList() []*CatnipInvite { // 小游戏信息 type CatnipGame struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; - Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; - Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 + Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3] + Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴 + Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id SendEmoji int32 `protobuf:"varint,7,opt,name=SendEmoji,proto3" json:"SendEmoji,omitempty"` // 发送的表情id FriendProgress int32 `protobuf:"varint,8,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; unknownFields protoimpl.UnknownFields @@ -26253,10 +26253,10 @@ func (x *CatnipGame) GetFriendProgress() int32 { type CatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作; - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间 + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26322,8 +26322,8 @@ func (x *CatnipInvite) GetPlayer() *ResPlayerSimple { // 邀请好友 type ReqCatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26376,7 +26376,7 @@ type ResCatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26435,8 +26435,8 @@ func (x *ResCatnipInvite) GetUid() int64 { // 同意邀请 type ReqCatnipAgree struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26489,7 +26489,7 @@ type ResCatnipAgree struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26547,8 +26547,8 @@ func (x *ResCatnipAgree) GetUid() int64 { type ReqCatnipRefuse struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26601,7 +26601,7 @@ type ResCatnipRefuse struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26660,7 +26660,7 @@ func (x *ResCatnipRefuse) GetUid() int64 { // 设置游戏倍数 type ReqCatnipMultiply struct { state protoimpl.MessageState `protogen:"open.v1"` - Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26706,7 +26706,7 @@ type ResCatnipMultiply struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26765,7 +26765,7 @@ func (x *ResCatnipMultiply) GetMultiply() int32 { // 游戏转盘 type ReqCatnipPlay struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26811,7 +26811,7 @@ type ResCatnipPlay struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26870,7 +26870,7 @@ func (x *ResCatnipPlay) GetId() int32 { // 领取阶段奖励 type ReqCatnipReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27056,8 +27056,8 @@ func (x *ResCatnipGrandReward) GetMsg() string { // 发送表情 type ReqCatnipEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27110,8 +27110,8 @@ type ResCatnipEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27433,8 +27433,8 @@ func (*ReqReload) Descriptor() ([]byte, []int) { type ReqAdminGm struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid + Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27485,9 +27485,9 @@ func (x *ReqAdminGm) GetCommand() string { type ReqAdminBan struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间; - Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间 + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27545,9 +27545,9 @@ func (x *ReqAdminBan) GetReason() string { type ReqAdminShipping struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; - ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 + ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -28000,7 +28000,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "ActiveTime\x18\a \x01(\x05R\n" + "ActiveTime\x12M\n" + - "\bSetEmoji\x18\b \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + + "\bSetEmoji\x18\v \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + "\rSetEmojiEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"/\n" + @@ -28669,8 +28669,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "FriendList\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\n" + "FriendList\x12\"\n" + - "\fReqApplyList\x18\x02 \x03(\x03R\fReqApplyList\x12\x10\n" + - "\x03Npc\x18\x03 \x03(\x05R\x03Npc\x12\x18\n" + + "\fReqApplyList\x18\x03 \x03(\x03R\fReqApplyList\x12\x10\n" + + "\x03Npc\x18\x02 \x03(\x05R\x03Npc\x12\x18\n" + "\aSponsor\x18\x04 \x01(\x05R\aSponsor\"!\n" + "\tReqAddNpc\x12\x14\n" + "\x05NpcId\x18\x01 \x01(\x05R\x05NpcId\"[\n" + @@ -28736,9 +28736,9 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x14ResFriendApplyNotify\x121\n" + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x03 \x01(\x05R\x04Time\"j\n" + - "\x14ResFriendReplyNotify\x12*\n" + - "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\"l\n" + + "\x14ResFriendReplyNotify\x12,\n" + + "\x04info\x18\x01 \x01(\v2\x18.tutorial.ResFriendReplyR\x04info\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + "\x04Time\x18\x03 \x01(\x05R\x04Time\"6\n" + "\x0eReqApplyFriend\x12\x10\n" + @@ -29086,10 +29086,10 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x14\n" + - "\x05Score\x18\x05 \x01(\x05R\x05Score\x12\x16\n" + - "\x06Reward\x18\x06 \x03(\x05R\x06Reward\x12\x18\n" + - "\aLowPass\x18\a \x01(\bR\aLowPass\x12\x1a\n" + - "\bHighPass\x18\b \x01(\bR\bHighPass\"\x12\n" + + "\x05Score\x18\x06 \x01(\x05R\x05Score\x12\x16\n" + + "\x06Reward\x18\a \x03(\x05R\x06Reward\x12\x18\n" + + "\aLowPass\x18\b \x01(\bR\aLowPass\x12\x1a\n" + + "\bHighPass\x18\t \x01(\bR\bHighPass\"\x12\n" + "\x10ReqActPassReward\"n\n" + "\x10ResActPassReward\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + @@ -29131,10 +29131,10 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"f\n" + "\bopponent\x12\x12\n" + - "\x04Name\x18\x01 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x02 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x1a\n" + - "\bProgress\x18\x04 \x01(\x05R\bProgress\"\xb3\x01\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x1a\n" + + "\bProgress\x18\x05 \x01(\x05R\bProgress\"\xb3\x01\n" + "\x11ReqGuessColorTake\x12*\n" + "\x03Map\x18\x01 \x01(\v2\x18.tutorial.GuessColorInfoR\x03Map\x129\n" + "\x04OMap\x18\x02 \x03(\v2%.tutorial.ReqGuessColorTake.OMapEntryR\x04OMap\x1a7\n" + @@ -29415,7 +29415,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" + "\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" + "\x19ResPlayroomGameShowReward\x12(\n" + - "\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + + "\x05Items\x18\x05 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" + "\x13ReqPlayroomInteract\x12\x0e\n" + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" + @@ -29718,16 +29718,15 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bRES_CODE\x12\b\n" + "\x04FAIL\x10\x00\x12\v\n" + "\aSUCCESS\x10\x01\x12 \n" + - "\x1cProtocol_Error_Account_Exist\x10\x02\x12'\n" + - "#Protocol_Error_Account_OR_PWD_ERROR\x10\x03\x12'\n" + - "#Protocol_Error_Account_OR_PWD_Short\x10\x04\x12\x1f\n" + - "\x1bProtocol_Error_Account_Fail\x10\x05\x12\"\n" + - "\x1eProtocol_Error_Account_NoExsit\x10\x06\x12%\n" + - "!Protocol_Error_Account_Code_Error\x10\a\x12'\n" + - "#Protocol_Error_Account_Device_Error\x10\b\x12 \n" + - "\x1cProtocol_Error_Id_Not_Verify\x10\t\x12\"\n" + - "\x1eProtocol_Error_Id_Verify_Error\x10\n" + - "*.\n" + + "\x1cProtocol_Error_Account_Exist\x10d\x12'\n" + + "#Protocol_Error_Account_OR_PWD_ERROR\x10e\x12'\n" + + "#Protocol_Error_Account_OR_PWD_Short\x10f\x12\x1f\n" + + "\x1bProtocol_Error_Account_Fail\x10g\x12\"\n" + + "\x1eProtocol_Error_Account_NoExsit\x10h\x12%\n" + + "!Protocol_Error_Account_Code_Error\x10i\x12'\n" + + "#Protocol_Error_Account_Device_Error\x10j\x12 \n" + + "\x1cProtocol_Error_Id_Not_Verify\x10k\x12\"\n" + + "\x1eProtocol_Error_Id_Verify_Error\x10l*.\n" + "\tITEM_TYPE\x12\n" + "\n" + "\x06ENERGY\x10\x00\x12\b\n" + @@ -29784,25 +29783,25 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" + "\x12\x1e\n" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_DELETE\x10\f\x12\x1b\n" + - "\x17LOG_TYPE_PLAYROOM_VISIT\x10\r\x12\x15\n" + - "\x11LOG_TYPE_HANDBOOK\x10\x0e\x12\x1c\n" + - "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x0f\x12\x18\n" + - "\x14LOG_TYPE_CHARGE_SEND\x10\x10\x12\x1c\n" + - "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x11\x12\x11\n" + - "\rLOG_TYPE_WISH\x10\x12\x12\x1e\n" + - "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x13\x12\x1c\n" + - "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x14\x12\x1f\n" + - "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x15\x12\x15\n" + - "\x11LOG_TYPE_TREASURE\x10\x16\x12\x1d\n" + - "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x17\x12\x1d\n" + - "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x18\x12\x1e\n" + - "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x19\x12\x1d\n" + - "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1a\x12\x1a\n" + - "\x16LOG_TYPE_FRIEND_INVITE\x10\x1b\x12\x1a\n" + - "\x16LOG_TYPE_TREASURE_HELP\x10\x1c\x12\x1b\n" + - "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1d\x12\x1f\n" + - "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10\x1e*\x9b\x01\n" + + "\x16LOG_TYPE_FRIEND_DELETE\x10\x0e\x12\x1b\n" + + "\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" + + "\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" + + "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" + + "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1c\n" + + "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x13\x12\x11\n" + + "\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" + + "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" + + "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" + + "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x17\x12\x15\n" + + "\x11LOG_TYPE_TREASURE\x10\x18\x12\x1d\n" + + "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x19\x12\x1d\n" + + "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" + + "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" + + "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" + + "\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" + + "\x16LOG_TYPE_TREASURE_HELP\x10\x1e\x12\x1b\n" + + "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1f\x12\x1f\n" + + "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10 *\x9b\x01\n" + "\rCHESS_EX_TYPE\x12\x11\n" + "\rCHESS_EX_NONE\x10\x00\x12\x13\n" + "\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" + @@ -30590,7 +30589,7 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 153: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE 2, // 154: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE 233, // 155: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 236, // 156: tutorial.ResFriendReplyNotify.info:type_name -> tutorial.ResFriendLog + 264, // 156: tutorial.ResFriendReplyNotify.info:type_name -> tutorial.ResFriendReply 2, // 157: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE 2, // 158: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE 233, // 159: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple From dd9e934f2d854529cae26182eba61af2a7479568 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 19 Dec 2025 18:47:07 +0800 Subject: [PATCH 042/104] =?UTF-8?q?=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index fa9bbf6c..13254d2b 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -419,7 +419,7 @@ func (p *Player) handle(m *msg.Msg) error { ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Info: &proto.ResFriendLog{ + Info: &proto.ResFriendReply{ Player: PlayerSimpleData, Param: ReplyInfo.Param, Type: int32(ReplyInfo.Type), From d16e2b3e256b636838e8fe500d3876636f7b6a72 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 22 Dec 2025 16:06:08 +0800 Subject: [PATCH 043/104] 1 --- src/server/cluster/cluster_func.go | 4 ++-- src/server/game/game_type.go | 2 ++ src/server/game/message_mgr.go | 27 +++++++++++++++++++++++++-- src/server/game/mod/msg/Msg.go | 10 ++++++---- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index d252d431..eca8db02 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -27,14 +27,14 @@ func HandShake(a *Agent) { log.Debug("HandShake GobMarshal err %v", err) return } - // log.Debug("握手 server id :%d", conf.Server.ServerID) + log.Debug("握手 server id :%d", conf.Server.ServerID) a.WriteMsg(data) } // 握手回调 func HandShakeRecv(a *Agent, m *msg.Msg) error { ServerId := m.From - // log.Debug("收到握手回复 ServerId %v", ServerId) + log.Debug("收到握手回复 ServerId %v", ServerId) a.ServerId = ServerId serverAgent.Store(ServerId, a) diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index 47e1f73a..fcbae002 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -5,6 +5,7 @@ import ( "server/game/mod/friend" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/msg" + "sync" ) type PlayerSimpleData struct { @@ -49,6 +50,7 @@ type VarUserData struct { Upvote int Chip int Kiss int + mu sync.Mutex } type VarExpireData struct { diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 41b9d45d..0abca11b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -75,6 +75,7 @@ func (m *MessageMgr) MessageMgrInit() { m.Use(TimeoutMiddleware(5 * time.Second)) if conf.Server.ServerType == "center" { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler)) + m.RegisterHandler(msg.HANDLE_MDO_PLAYER_LOGOUT, MessageHandlerFunc(PlayerLogoutHandler)) m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler)) } else { @@ -102,13 +103,35 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { Messages: []*msg.Msg{}, } } - messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) + log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) + node := data.Extra.(int) + messageMgrData.PlayerList[int64(data.From)] = node + + // 发送离线消息 + messages := messageMgrData.MessageList[int64(data.From)] + messages.mu.Lock() + defer messages.mu.Unlock() + for _, message := range messages.Messages { + err := SendMsgToNode(message, node) + if err != nil { + log.Error("Failed to send message to player %d: %v", data.From, err) + } + } + return nil, nil +} + +func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { + messageMgrData := getData() + messageMgrData.mu.Lock() + defer messageMgrData.mu.Unlock() + delete(messageMgrData.PlayerList, int64(data.From)) + log.Debug("[Middleware] Player logout success player id: %v", data.From) return nil, nil } func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { messageMgrData := getData() - Message, ok := messageMgrData.MessageList[int64(data.From)] + Message, ok := messageMgrData.MessageList[int64(data.To)] if !ok { return nil, nil } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 2438d245..0e77e043 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -20,10 +20,12 @@ var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} const ( - HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 - HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 - HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 - HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 + HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 + HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 + HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 + HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 + HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 ) const ( From 408bd4df5bb4a6b27a6584dd5920974fa746c962 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 22 Dec 2025 16:10:03 +0800 Subject: [PATCH 044/104] 2 --- src/server/cluster/cluster_func.go | 29 ++-- src/server/game/GameLogic.go | 28 ---- src/server/game/activity_func.go | 11 -- src/server/game/friend_mgr.go | 62 -------- src/server/game/game_type.go | 13 +- src/server/game/message_handler.go | 47 ++----- src/server/game/message_mgr.go | 168 +++++++++++++++------- src/server/game/mod/msg/Msg.go | 27 +++- src/server/game/player_data.go | 12 +- src/server/game/register_network_func.go | 35 ++--- src/server/game/var.go | 73 ++++++++++ src/server/game/var_mgr.go | 172 +++++++++++++++-------- src/server/game_util/GoUtil.go | 4 + 13 files changed, 397 insertions(+), 284 deletions(-) create mode 100644 src/server/game/var.go diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index eca8db02..5a157b40 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -50,8 +50,9 @@ func HandShakeRecv(a *Agent, m *msg.Msg) error { }) } else { syncMsg := &msg.Msg{ - Type: msg.CLUSTER_FRIEND_SYNC, - To: ServerId, + Type: msg.CLUSTER_FRIEND_SYNC, + To: ServerId, + HandleType: msg.HANDLE_MOD_CLUSTER_SYNC, } sendGameMsg(syncMsg) } @@ -96,7 +97,7 @@ func connectRemote(RemoteAddr string, ConnType int, ConnLabel string) error { client.NewAgent = newAgent client.ConnType = ConnType client.ConnLabel = ConnLabel - client.ConnectInterval = time.Duration(time.Minute * 5) + client.ConnectInterval = time.Duration(time.Minute * 1) if ConnType == ClusterCenterId { // 中心服断开重连 client.AutoReconnect = true } @@ -126,23 +127,21 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { if m.UniKey == "" { m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m)) } + v, ok := serverAgent.Load(serverId) + // 之后再发送消息 + if !ok { + return nil, fmt.Errorf("server %d not online", serverId) + } // 先注册回调通道,避免发送出去后对方快速返回导致丢失 newChan := make(chan *msg.Msg, 1) registerChanel(m.UniKey, newChan) defer unregisterChanel(m.UniKey) - - // 之后再发送消息 - if v, ok := serverAgent.Load(serverId); ok { - data, err := GoUtil.GobMarshal(m) - if err != nil { - log.Debug("CallServerMsg GobMarshal err %v", err) - return nil, err - } - v.(network.Agent).WriteMsg(data) - } else { - return nil, fmt.Errorf("server %d not online", serverId) + data, err := GoUtil.GobMarshal(m) + if err != nil { + log.Debug("CallServerMsg GobMarshal err %v", err) + return nil, err } - + v.(network.Agent).WriteMsg(data) // 等待返回(直接接收一次) timeout := time.After(15 * time.Second) select { diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 7b650c7a..c9ced423 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -286,33 +286,6 @@ func (ad *GameLogic) SetUserData(Uid int, Op int, Data interface{}) { }) } -func (ad *GameLogic) SetDataSync(Uid int, Op int, Data interface{}) error { - _, err := ad.VarMgr.Call(&MsgMod.Msg{ - From: Uid, - To: Uid, - Type: MsgMod.HANDLE_TYPE_VAR_EXPIRE_SET, - SendT: GoUtil.Now(), - Extra: VarOpration{Type: Op, Data: Data}, - }) - return err -} - -func (ad *GameLogic) SetCatnipPartner(Uid int, GameId int, PartnerUid int, EndT int64) error { - _, err := ad.VarMgr.Call(&MsgMod.Msg{ - From: Uid, - To: Uid, - Type: MsgMod.HANDLE_TYPE_SET_CATNIP_PARTNER, - SendT: GoUtil.Now(), - End: EndT, - Extra: map[string]interface{}{ - "uid": Uid, - "game_id": GameId, - "partner_uid": PartnerUid, - }, - }) - return err -} - func (ad *GameLogic) GetUserData(Uid int) *VarUserData { result, err := ad.FriendMgr.Call(&MsgMod.Msg{ From: Uid, @@ -665,7 +638,6 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) er if ok { Timer.Stop() } - player.SyncFriendMsg() log.Debug("player %d 重连", player.M_DwUin) return nil } diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index a840a5cc..18a9d579 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -417,14 +417,3 @@ func (p *Player) CatnipBackData() { } p.PushClientRes(res) } - -// 设置猫草大作战游戏锁 -func (p *Player) SetCatnipGameLock(Uid int, GameId int) error { - ActivityInfo := p.GetActivityInfoById(activity.ACT_TYPE_CATNIP) - return G_GameLogicPtr.SetDataSync(int(p.M_DwUin), VAR_OP_CATNIP_LOCK, CatnipLock{ - Uid: int(p.M_DwUin), - Partner: Uid, - GameId: GameId, - End: int(ActivityInfo.EndT), // 锁 - }) -} diff --git a/src/server/game/friend_mgr.go b/src/server/game/friend_mgr.go index e44e1083..feced6e3 100644 --- a/src/server/game/friend_mgr.go +++ b/src/server/game/friend_mgr.go @@ -45,7 +45,6 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_APPLY, f.sendToPlayer) f.RegisterHandler(msg.HADNLE_TYPE_AGREE, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_DEL, f.sendToPlayer) - f.RegisterHandler(msg.HANDLE_TYPE_SYNC, f.sync) f.RegisterHandler(msg.HANDLE_TYPE_REFUSE, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_INVITE_ADD_FRIEND, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_INVITE_FRIEND, f.sendToPlayer) @@ -90,8 +89,6 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_GET, f.GetVarUserData) f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_SET, f.SetVarUserData) - f.RegisterHandler(msg.HANDLE_TYPE_VAR_EXPIRE_SET, f.SetExpireVarData) - f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_LOGIN, f.SendMsgToCenter) f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, f.SendMsgToCenter) } @@ -175,34 +172,6 @@ func (f *FriendMgr) SetVarUserData(m *msg.Msg) (interface{}, error) { }, nil } -func (f *FriendMgr) SetExpireVarData(m *msg.Msg) (interface{}, error) { - VarOp := m.Extra.(VarOpration) - switch VarOp.Type { - case VAR_OP_CATNIP_LOCK: - data := VarOp.Data.(CatnipLock) - MyKey := GoUtil.GetCatnipLockKey(data.Uid, data.GameId) - OtherKey := GoUtil.GetCatnipLockKey(data.Partner, data.GameId) - ExpireData := G_GameLogicPtr.VarMgr.GetExpireVar(OtherKey) - if _, ok := ExpireData.D.(*CatnipLock); ok { - return nil, fmt.Errorf("catnip lock already exists for %d in game %d", data.Uid, data.GameId) - } - G_GameLogicPtr.VarMgr.SetExpireVar(MyKey, &VarExpireData{ - T: int64(data.End + 24*3600), // 设置过期时间 - D: &data, - }) - G_GameLogicPtr.VarMgr.SetExpireVar(OtherKey, &VarExpireData{ - T: int64(data.End + 24*3600), // 设置过期时间 - D: &CatnipLock{ - Uid: data.Partner, - Partner: data.Uid, - GameId: data.GameId, - End: data.End, - }, - }) - } - return nil, nil -} - // 发送消息给玩家 func sendToPlayer(m *msg.Msg) error { p := G_GameLogicPtr.GetPlayer(int64(m.To)) @@ -222,24 +191,6 @@ func sendToPlayerOnline(m *msg.Msg) error { return nil } -func FriendMgrSend(m1 *msg.Msg) error { - if m1.SendT == 0 { - m1.SendT = GoUtil.Now() - } - m := m1.Clone() - ToServer := GoUtil.GetServerIdByUid(m.To) - if ToServer != conf.Server.ServerID { - err := mergeCluster.SendServerMsg(m, ToServer) - if err != nil { // 区服不在线 - G_GameLogicPtr.FriendMgrSend(m) - return err - } - return nil - } - G_GameLogicPtr.FriendMgrSend(m) - return nil -} - // 集群好友消息同步 func ClusterFriendSync(m *msg.Msg) error { if v, ok := G_GameLogicPtr.FriendMgr.getData().ClusterMsg[m.To]; ok { @@ -264,16 +215,3 @@ func (f *FriendMgr) SendMsgToCenter(m *msg.Msg) (interface{}, error) { func (f *FriendMgr) CallMsgToCenter(m *msg.Msg) (interface{}, error) { return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) } - -func FriendMgrCall(m *msg.Msg) interface{} { - ToServer := GoUtil.GetServerIdByUid(m.To) - if ToServer != conf.Server.ServerID { - r, err := mergeCluster.CallServerMsg(m, ToServer) - if err != nil { // 区服不在线 - log.Debug("FriendMgrCall err %v", err) - return nil - } - return r - } - return G_GameLogicPtr.FriendMgrCall(m.Clone()) -} diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index fcbae002..69b10613 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -54,8 +54,17 @@ type VarUserData struct { } type VarExpireData struct { - D interface{} - T int64 + D interface{} + T int64 // 过期时间戳 + U int64 // 最后更新时间 + mu sync.Mutex +} + +type CatnipPartner struct { + Uid int + Partner int + GameId int + EndTime int64 } const ( diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 74272463..0aa35ac0 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -509,38 +509,6 @@ func (p *Player) handle(m *msg.Msg) error { return nil } -// 同步好友请求 -func (p *Player) SyncFriendMsg() { - MsgList := G_GameLogicPtr.FriendMgrCall(&msg.Msg{Type: msg.HANDLE_TYPE_SYNC, From: int(p.M_DwUin)}) - FriendMod := p.PlayMod.getFriendMod() - MsgId := FriendMod.GetSyncId() - if MsgList == nil { - return - } - ml := MsgList.([]*msg.Msg) - if len(ml) == 0 { - return - } - sort.Slice(ml, func(i, j int) bool { - return ml[i].Id < ml[j].Id - }) - maxId := int64(0) - for _, v := range ml { - maxId = max(maxId, v.Id) - if v.H == 1 { - continue - } - if v.Id > 0 && v.Id <= MsgId { - continue - } - log.Debug("uid : %d, handle friend msg : %v", p.M_DwUin, v) - p.handle(v) - v.H = 1 - } - FriendMod.SetSyncId(maxId) - p.PlayMod.save() -} - func SyncMailMsg(p *Player) { ServerMailList := G_GameLogicPtr.MailMgr.Sync(int(p.M_DwUin), p.GetPlayerBaseMod().GetRegisterTime()) MailMod := p.PlayMod.getMailMod() @@ -1302,3 +1270,18 @@ func (player *Player) IsWeeklyDiscount() bool { LimitEventMod := player.PlayMod.getLimitedTimeEventMod() return ChargeMod.IsWeeklyDiscountDay() || LimitEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_DAY_SALE) } + +func (p *Player) SetCatnipPartner(GameId, Partner int, EndTime int64) error { + _, err := SendMsgToCenterSync(&msg.Msg{ + From: int(p.M_DwUin), + To: int(p.M_DwUin), + Type: msg.HANDLE_MOD_CATNIP_PARTNER, + Extra: CatnipPartner{ + GameId: GameId, + Partner: Partner, + EndTime: EndTime, + Uid: int(p.M_DwUin), + }, + }) + return err +} diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 0abca11b..368737a0 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -78,8 +78,10 @@ func (m *MessageMgr) MessageMgrInit() { m.RegisterHandler(msg.HANDLE_MDO_PLAYER_LOGOUT, MessageHandlerFunc(PlayerLogoutHandler)) m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_VAR_SET, MessageHandlerFunc(SetVarDataHandler)) } else { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CLUSTER_SYNC, MessageHandlerFunc(ClusterSyncHandler)) } } @@ -88,13 +90,48 @@ func (s *MessageMgr) RegisterHandler(HandlerType int, fun MessageHandlerFunc) { s.handler[HandlerType] = fun } -func getData() *MessageData { +func getMessageData() *MessageData { return G_GameLogicPtr.MessageMgr.data.(*MessageData) } +// ----------------------------------- 处理函数实现 --------------------------- +func CatnipPartnerHandler(data *msg.Msg) (interface{}, error) { + m, ok := data.Extra.(*CatnipPartner) + if !ok { + return nil, fmt.Errorf("invalid catnip partner data") + } + return G_GameLogicPtr.VarMgr.HandleCatnipPartner(m.Uid, m.Partner, m.GameId, m.EndTime) + +} + +// 节点连接时,同步消息 +func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { + // 遍历所有玩家,发送登录消息 + G_GameLogicPtr.M_Players.Range(func(k, v interface{}) bool { + SendMsgToCenterAsync(&msg.Msg{ + From: int(v.(*Player).M_DwUin), + HandleType: msg.HANDLE_MOD_PLAYER_LOGIN, + Extra: conf.Server.ServerID, + }) + return true + }) + // 发送暂存区消息 + messageMgrData := getMessageData() + messageMgrData.mu.Lock() + defer messageMgrData.mu.Unlock() + TempMessageList := messageMgrData.MessageList + messageMgrData.MessageList = make(map[int64]*MessageList) + for PlayerId, Message := range TempMessageList { + for _, msgItem := range Message.Messages { + go SendMsgToNodeAsync(msgItem, messageMgrData.PlayerList[PlayerId]) + } + } + return nil, nil +} + func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool - messageMgrData := getData() + messageMgrData := getMessageData() messageMgrData.mu.Lock() defer messageMgrData.mu.Unlock() messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) @@ -112,16 +149,13 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { messages.mu.Lock() defer messages.mu.Unlock() for _, message := range messages.Messages { - err := SendMsgToNode(message, node) - if err != nil { - log.Error("Failed to send message to player %d: %v", data.From, err) - } + go sendMessageAsync(message, node) } return nil, nil } func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { - messageMgrData := getData() + messageMgrData := getMessageData() messageMgrData.mu.Lock() defer messageMgrData.mu.Unlock() delete(messageMgrData.PlayerList, int64(data.From)) @@ -130,8 +164,8 @@ func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { } func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { - messageMgrData := getData() - Message, ok := messageMgrData.MessageList[int64(data.To)] + messageMgrData := getMessageData() + Message, ok := messageMgrData.MessageList[int64(data.From)] if !ok { return nil, nil } @@ -150,7 +184,7 @@ func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { PlayerId := int64(data.To) - messageMgrData := getData() + messageMgrData := getMessageData() // 遍历消息列表,发送消息给在线玩家 messages, ok := messageMgrData.MessageList[int64(PlayerId)] if !ok { @@ -166,10 +200,7 @@ func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { messages.Messages = append(messages.Messages, data) if node, ok := messageMgrData.PlayerList[int64(PlayerId)]; ok { for _, message := range messages.Messages { - err := SendMsgToNode(message, node) - if err != nil { - log.Error("Failed to send message to player %d: %v", PlayerId, err) - } + go SendMsgToNodeAsync(message, node) } } return nil, nil @@ -179,9 +210,6 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { p := G_GameLogicPtr.GetPlayer(int64(data.To)) // 不在线 不处理 if p == nil || p.stop { - // TODO: 模拟消费 - data.HandleType = msg.HANDLE_MOD_COMSUME_MSG - go SendMsgToCenter(data) return nil, nil } p.lock.Lock() @@ -189,7 +217,7 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { p.Send(data.Clone()) // 处理完后发送消费消息 data.HandleType = msg.HANDLE_MOD_COMSUME_MSG - go SendMsgToCenter(data) + go SendMsgToCenterAsync(data) return nil, nil } @@ -221,19 +249,6 @@ func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { return nil, fmt.Errorf("server mod handler err") } -func SendMessage(m1 *msg.Msg) error { - if m1.SendT == 0 { - m1.SendT = GoUtil.Now() - } - m := m1.Clone() - err := SendMsgToCenter(m) - if err != nil { // 区服不在线 - G_GameLogicPtr.FriendMgrSend(m) - return err - } - return nil -} - // 异步处理消息 (多线程版本) func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { if fun, ok := m.handler[message.HandleType]; ok { @@ -270,19 +285,6 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { // 兼容旧版本的函数 func MessageHandle(m *msg.Msg) error { log.Debug("RecvMessage m %v", m) - SendMsgToCenter(&msg.Msg{ - From: 10000, - Extra: conf.Server.ServerID, - HandleType: msg.HANDLE_MOD_PLAYER_LOGIN, - }) - time.Sleep(time.Second) - SendMsgToCenter(&msg.Msg{ - From: 10000, - To: 10000, - Type: msg.HANDLE_TYPE_LOGIN, - Extra: conf.Server.ServerID, - HandleType: msg.HANDLE_MOD_PLAYER_MSG, - }) // 这里可以调用 MessageMgr 的处理方法 G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil @@ -461,26 +463,84 @@ func ValidationMiddleware() MessageMiddleware { } } -func SendMsgToCenter(m *msg.Msg) error { - return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) +// ----------------------------------- 发送消息相关函数 --------------------------- +func SendMsgToCenterAsync(m *msg.Msg) { + go sendMessageAsync(m, conf.Server.CenterNode) } -func CallMsgToCenter(m *msg.Msg) (interface{}, error) { - return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) +func SendMsgToCenterSync(m *msg.Msg) (*msg.Msg, error) { + return sendMessageSync(m, conf.Server.CenterNode) } -func SendMsgToNode(m *msg.Msg, node int) error { - return mergeCluster.SendServerMsg(m, node) +func SendMsgToNodeAsync(m *msg.Msg, node int) { + go sendMessageAsync(m, node) } -func SendPlayerMsg(m *msg.Msg) error { +func SendMsgToNodeSync(m *msg.Msg, node int) (*msg.Msg, error) { + return sendMessageSync(m, node) +} + +func SendPlayerMsgAsync(m *msg.Msg) error { + if m.SendT == 0 { + m.SendT = GoUtil.Now() + } clone := m.Clone() clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG - return mergeCluster.SendServerMsg(m, conf.Server.CenterNode) + SendMsgToCenterAsync(clone) + return nil } -func CallPlayerMsg(m *msg.Msg) (interface{}, error) { +func SendPlayerMsgSync(m *msg.Msg) (interface{}, error) { clone := m.Clone() clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG - return mergeCluster.CallServerMsg(m, conf.Server.CenterNode) + return SendMsgToCenterSync(clone) +} + +func FriendMgrSend(m1 *msg.Msg) error { + SendPlayerMsgAsync(m1) + return nil +} + +// 异步发送消息到指定节点 节点不在线则保存消息 +func sendMessageAsync(m *msg.Msg, node int) error { + err := mergeCluster.SendServerMsg(m, node) + if err != nil { + saveMessage(m) + return err + } + return nil +} + +// 同步消息到指定节点 节点不在线则保存消息 +func sendMessageSync(m *msg.Msg, node int) (*msg.Msg, error) { + msg, err := mergeCluster.CallServerMsg(m, node) + if err != nil { + saveMessage(m) + return nil, err + } + return msg, nil +} + +// 保存消息到本地 +func saveMessage(m *msg.Msg) error { + data := getMessageData() + data.mu.Lock() + defer data.mu.Unlock() + if _, ok := data.MessageList[int64(m.To)]; !ok { + data.MessageList[int64(m.To)] = &MessageList{ + Messages: []*msg.Msg{}, + } + } + data.MessageList[int64(m.To)].mu.Lock() + defer data.MessageList[int64(m.To)].mu.Unlock() + data.MessageList[int64(m.To)].Messages = append(data.MessageList[int64(m.To)].Messages, m) + return nil +} + +func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { + return SendMsgToCenterSync(&msg.Msg{ + From: int(PlayerId), + HandleType: msg.HANDLE_MOD_VAR_GET, + Extra: Key, + }) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 0e77e043..533172d4 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -16,16 +16,31 @@ type Msg struct { HandleType int //处理类型 } +type VarData struct { + Key string + Value interface{} + SetType int // 操作类型 0 设置 1 增加 2 减少 3 覆盖 +} + +const ( + VAR_OP_ADD = 1 + VAR_OP_SUB = 2 + VAR_OP_SET = 3 +) + var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} const ( - HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 - HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 - HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 - HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 - HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 - HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 + HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 + HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 + HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 + HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 + HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 + HANDLE_MOD_VAR_GET = 20007 // 获取变量 + HANDLE_MOD_VAR_SET = 20008 // 设置变量 + HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 ) const ( diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 2baf0277..6901c65f 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "math" + "server/conf" activityCfg "server/conf/activity" cardCfg "server/conf/card" chargeCfg "server/conf/charge" @@ -253,7 +254,6 @@ func (p *Player) InitPlayer(UserName string) error { p.NoonUpdate(nil) p.Login() p.OrderShip() - p.SyncFriendMsg() p.UpdateUserInfo() // fix bug ChargeMod := p.PlayMod.getChargeMod() @@ -452,11 +452,16 @@ func (p *Player) ClearData() { log.Debug("ClearData BeginTx failed:", err) return } + Uid := int(p.M_DwUin) p.PlayerBaseMod.ClearData() p.PlayMod.ClearData(p) tx.Commit() p.Stop() G_GameLogicPtr.DelPlayer(p) + SendMsgToCenterAsync(&MsgMod.Msg{ + From: Uid, + HandleType: MsgMod.HANDLE_MDO_PLAYER_LOGOUT, + }) } func (p *Player) AutoSaveData() { @@ -864,6 +869,11 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { // 登录返回数据 func (p *Player) LoginBackData() { + SendMsgToCenterAsync(&MsgMod.Msg{ + From: int(p.M_DwUin), + HandleType: MsgMod.HANDLE_MOD_PLAYER_LOGIN, + Extra: conf.Server.ServerID, + }) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) p.PushClientRes(p.PlayMod.mod_list.Handbook.BackData()) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 30b48549..adf30f16 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -60,6 +60,7 @@ func ReqPlayerBaseInfofunction(player *Player, buf []byte) error { } func ReqPlayerBriefProfileDataFunc(player *Player, buf []byte) error { + return nil detail := &msg.ReqPlayerBriefProfileData{} err := proto.Unmarshal(buf, detail) if err != nil { @@ -1785,15 +1786,14 @@ func ReqLimitSenceReward(player *Player, buf []byte) error { } func ReqGetGoldCard(player *Player, buf []byte) error { - data := G_GameLogicPtr.VarMgr.GetVar(VAR_GOLD_CARD) - if data == nil { + gold := player.GetGoldCard() + if gold == nil { player.SendErrClienRes(&msg.ResGetGoldCard{ Four: 0, Five: 0, }) return fmt.Errorf("not exist") } - gold := data.(*VarGoldCard) player.PushClientRes(&msg.ResGetGoldCard{ Four: int32(gold.Four), Five: int32(gold.Five), @@ -1870,13 +1870,13 @@ func ReqApplyFriend(player *Player, buf []byte) error { }) return fmt.Errorf("already friend") } - if FriendMod.AddSendApply(Uid) { - player.SendErrClienRes(&msg.ResApplyFriend{ - Code: msg.RES_CODE_FAIL, - Msg: "already apply", - }) - return fmt.Errorf("already apply") - } + // if FriendMod.AddSendApply(Uid) { + // player.SendErrClienRes(&msg.ResApplyFriend{ + // Code: msg.RES_CODE_FAIL, + // Msg: "already apply", + // }) + // return fmt.Errorf("already apply") + // } if req.Type == 1 { Items, err := FriendMod.GetSponsorReward() if err != nil { @@ -3943,7 +3943,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) { player.GetPetThiefReward(Target) } - G_GameLogicPtr.SetUserData(Target, VAR_OP_CHIP, 1) + player.AddPlayroomChip(int(req.Id)) player.TeLog("finish_mini_game", map[string]interface{}{ "mini_game_type": PlayroomMod.GetGameId(), "is_chip": true, @@ -4083,8 +4083,9 @@ func ReqPlayroomChip(player *Player, buf []byte) error { player.TeLog("remove_chip", map[string]interface{}{ "remove_chip_number": ChipNum, }) - - G_GameLogicPtr.SetUserData(int(player.M_DwUin), VAR_OP_CHIP_SET, len(PlayroomMod.ChipList)) + for range ChipNum { + player.SubPlayroomChip(int(player.M_DwUin)) + } player.PlayMod.save() player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomChip{ @@ -4258,8 +4259,8 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_PLAYROOM_KISS, SendT: GoUtil.Now(), }) - G_GameLogicPtr.SetUserData(int(req.Id), VAR_OP_UPVOTE, 1) - G_GameLogicPtr.SetUserData(int(req.Id), VAR_OP_KISS, 1) + player.AddPlayroomUpvote(int(req.Id)) + player.SetPlayroomKiss(int(req.Id)) player.TeLog("visit_like", map[string]interface{}{ "user_id": req.Id, }) @@ -5449,7 +5450,7 @@ func ReqCatnipAgree(player *Player, buf []byte) error { }) return err } - err = G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), int(req.Id), int(req.Uid), ActivityInfo.EndT) + err = player.SetCatnipPartner(int(req.Id), int(req.Uid), ActivityInfo.EndT) if err != nil { player.SendErrClienRes(&msg.ResCatnipAgree{ Code: msg.RES_CODE_FAIL, @@ -5769,7 +5770,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { case friend.REPLY_TYPE_CATNIP: // 猫草大作战同意邀请 GameId := GoUtil.Int(ReplyInfo.Param) activityInfo := player.GetActivityInfo(player.GetActivityId(activity.ACT_TYPE_CATNIP)) - err := G_GameLogicPtr.SetCatnipPartner(int(player.M_DwUin), GameId, ReplyInfo.Uid, activityInfo.EndT) + err := player.SetCatnipPartner(GameId, ReplyInfo.Uid, activityInfo.EndT) if err == nil { CatnipMod := player.PlayMod.getCatnipMod() ActivityId := player.GetActivityId(activity.ACT_TYPE_MINING) diff --git a/src/server/game/var.go b/src/server/game/var.go new file mode 100644 index 00000000..13445ef2 --- /dev/null +++ b/src/server/game/var.go @@ -0,0 +1,73 @@ +package game + +import ( + "server/game/mod/msg" + GoUtil "server/game_util" + "server/pkg/github.com/name5566/leaf/log" +) + +const ( + VAR_KEY_FRIEND_MSG = "friend_msg" // 好友消息 + VAR_GOLD_CARD = "gold_card" + VAR_PLAYROOM_UPVOTE = "playroom_upvote" + VAR_PLAYROOM_CHIP = "playroom_chip" + VAR_PLAYROOM_KISS = "playroom_kiss" + VAR_USER_DATA = "user_data" +) + +func (p *Player) GetVarData(key string) interface{} { + data, err := GetUserData(p.M_DwUin, key) + if err != nil { + log.Error("GetVarData err : %s", err) + return nil + } + return data.Extra +} + +func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { + SendMsgToCenterAsync(&msg.Msg{ + From: int(p.M_DwUin), + HandleType: msg.HANDLE_MOD_VAR_SET, + Extra: &msg.VarData{ + Key: key, + Value: value, + SetType: opType, + }, + }) +} + +func (p *Player) SetVarDataAsync(key string, value interface{}) { + p.OpVarDataAsync(key, value, msg.VAR_OP_SET) +} + +func (p *Player) AddVarDataAsync(key string) { + p.OpVarDataAsync(key, nil, msg.VAR_OP_ADD) +} + +func (p *Player) SubVarDataAsync(key string) { + p.OpVarDataAsync(key, nil, msg.VAR_OP_SUB) +} + +func (p *Player) AddPlayroomUpvote(PlayerId int) { + p.AddVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_UPVOTE)) +} + +func (p *Player) AddPlayroomChip(PlayerId int) { + p.AddVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_CHIP)) +} + +func (p *Player) SubPlayroomChip(PlayerId int) { + p.SubVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_CHIP)) +} + +func (p *Player) SetPlayroomKiss(PlayerId int) { + p.SetVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_KISS), 1) +} + +func (p *Player) GetGoldCard() *VarGoldCard { + data := p.GetVarData(VAR_GOLD_CARD) + if data == nil { + return &VarGoldCard{} + } + return data.(*VarGoldCard) +} diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index a228b5fd..5d45337e 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -6,6 +6,8 @@ import ( "server/game/mod/card" "server/game/mod/msg" GoUtil "server/game_util" + "strings" + "sync" "time" ) @@ -14,18 +16,14 @@ type VarMgr struct { } type VarData struct { - Var map[string]interface{} + Var map[string]*VarExpireData VarExpire map[string]*VarExpireData UserVar map[string]*VarUserData ZeroTime int64 + Version int64 + mu sync.Mutex } -const ( - VAR_GOLD_CARD = "gold_card" - VAR_PLAYROOM_UPVOTE = "playroom_upvote" - VAR_USER_DATA = "user_data" -) - const ( VAR_OP_UPVOTE = 1 VAR_OP_CHIP = 2 @@ -38,12 +36,14 @@ func (f *VarMgr) Init() { gob.Register(&VarGoldCard{}) f.key = VAR_MGR_KEY f.data = &VarData{ - Var: map[string]interface{}{}, + Var: map[string]*VarExpireData{}, } // 注册处理函数 f.init() + // 版本更新 重构 + f.version() if f.data.(*VarData).Var == nil { - f.data.(*VarData).Var = make(map[string]interface{}) + f.data.(*VarData).Var = make(map[string]*VarExpireData) } if f.data.(*VarData).UserVar == nil { f.data.(*VarData).UserVar = make(map[string]*VarUserData) @@ -52,23 +52,37 @@ func (f *VarMgr) Init() { f.data.(*VarData).VarExpire = make(map[string]*VarExpireData) } if f.getData().ZeroTime == GoUtil.ZeroTimestamp() { - f.ZeroUpdate(&msg.Msg{}) + f.ZeroUpdate() } - f.RegisterHandler(msg.SERVER_ZERO_UPDATE, f.ZeroUpdate) - f.RegisterHandler(msg.HANDLE_TYPE_SET_CATNIP_PARTNER, f.SetCatnipPartner) f.mDispatr.AfterFunc(time.Duration(GoUtil.NextZeroTimestampDuration())*time.Second, func() { - f.Send(&msg.Msg{ - Type: msg.SERVER_ZERO_UPDATE, - }) + f.ZeroUpdate() }) } -func (f *VarMgr) SetGlobalData(m *msg.Msg) (interface{}, error) { - return nil, nil +func (f *VarMgr) version() { + switch v := f.getData().Version; v { + case 0: + // future version update + data := f.getData() + data.mu.Lock() + defer data.mu.Unlock() + // set to next version + for k, v := range data.UserVar { + if v != nil { + uidStr := strings.Split(k, "_")[2] + uid := GoUtil.Int(uidStr) + f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_UPVOTE), v.Upvote) + f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_CHIP), v.Chip) + f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_KISS), v.Kiss) + delete(data.UserVar, k) + } + } + f.getData().Version = 1 + } } -func (f *VarMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { +func (f *VarMgr) ZeroUpdate() { f.getData().ZeroTime = GoUtil.ZeroTimestamp() // 随机生成两个金卡 Card1, Card2 := card.RankGoldCard() @@ -76,53 +90,44 @@ func (f *VarMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { Four: Card1, Five: Card2, }) - for k, v := range f.getData().VarExpire { + for k, v := range f.getData().Var { if v.T < GoUtil.ZeroTimestamp() { - delete(f.getData().VarExpire, k) + delete(f.getData().Var, k) } } + f.mDispatr.AfterFunc(time.Duration(GoUtil.NextZeroTimestampDuration())*time.Second, func() { + f.ZeroUpdate() + }) +} + +func (f *VarMgr) HandleCatnipPartner(Uid, Partner, GameId int, EndTime int64) (interface{}, error) { + myKey := fmt.Sprintf("catnip_partner_%d", Uid) + key := fmt.Sprintf("catnip_partner_%d", Partner) + OtherPartnerInfo := f.GetExpireVar(key) + MyPartnerInfo := f.GetExpireVar(myKey) + MyOfPartnerList := GoUtil.IntSlice(MyPartnerInfo.D) + OtherOfPartnerList := GoUtil.IntSlice(OtherPartnerInfo.D) + if len(MyOfPartnerList) > 4 || len(OtherOfPartnerList) > 4 { + return nil, fmt.Errorf("catnip partner already full for uid %d in game %d", Partner, GameId) + } + f.SetVar(key, &VarExpireData{ + D: append(OtherOfPartnerList, Uid), + T: EndTime, + }) + f.SetVar(myKey, &VarExpireData{ + D: append(MyOfPartnerList, Partner), + T: EndTime, + }) return nil, nil } -func (f *VarMgr) SetCatnipPartner(m *msg.Msg) (interface{}, error) { - if Param, ok := m.Extra.(map[string]interface{}); ok { - MyUid := GoUtil.Int(Param["uid"]) - CatnipGameId := GoUtil.Int(Param["game_id"]) - CatnipPartnerId := GoUtil.Int(Param["partner_uid"]) - myKey := fmt.Sprintf("catnip_partner_%d", MyUid) - key := fmt.Sprintf("catnip_partner_%d", CatnipPartnerId) - OtherPartnerInfo := f.GetExpireVar(key) - MyPartnerInfo := f.GetExpireVar(myKey) - MyOfPartnerList := GoUtil.IntSlice(MyPartnerInfo.D) - OtherOfPartnerList := GoUtil.IntSlice(OtherPartnerInfo.D) - if len(MyOfPartnerList) > 4 || len(OtherOfPartnerList) > 4 { - return nil, fmt.Errorf("catnip partner already full for uid %d in game %d", CatnipPartnerId, CatnipGameId) - } - f.SetExpireVar(key, &VarExpireData{ - D: append(OtherOfPartnerList, MyUid), - T: m.End, - }) - f.SetExpireVar(myKey, &VarExpireData{ - D: append(MyOfPartnerList, CatnipPartnerId), - T: m.End, - }) - return nil, nil - } - return nil, fmt.Errorf("invalid parameters for setting catnip partner") -} - func (f *VarMgr) SetVar(key string, value interface{}) { - f.getData().Var[key] = value -} - -func (f *VarMgr) GetVar(key string) interface{} { - return f.getData().Var[key] -} - -func (f *VarMgr) SetExpireVar(key string, value *VarExpireData) { - f.getData().VarExpire[key] = value + f.getData().Var[key] = &VarExpireData{ + D: value, + } } +// TODO: 弃用 func (f *VarMgr) GetExpireVar(key string) *VarExpireData { if v, ok := f.getData().VarExpire[key]; ok { return v @@ -132,10 +137,12 @@ func (f *VarMgr) GetExpireVar(key string) *VarExpireData { return data } +// TODO: 弃用 func (f *VarMgr) SetUserVar(key string, value *VarUserData) { f.getData().UserVar[key] = value } +// TODO: 弃用 func (f *VarMgr) GetUserVar(key string) *VarUserData { if v, ok := f.getData().UserVar[key]; ok { return v @@ -152,3 +159,56 @@ func (f *VarMgr) DelVar(key string) { func (f *VarMgr) getData() *VarData { return f.data.(*VarData) } + +func getVarData() *VarData { + return G_GameLogicPtr.VarMgr.getData() +} + +func SetVarDataHandler(m *msg.Msg) (interface{}, error) { + data := getVarData() + data.mu.Lock() + defer data.mu.Unlock() + if v, ok := m.Extra.(*msg.VarData); ok { + ved, ok := data.Var[v.Key] + if !ok { + ved = &VarExpireData{} + } + switch v.SetType { + case msg.VAR_OP_SET: + ved.D = v.Value + case msg.VAR_OP_ADD: + if num, ok := ved.D.(int); ok { + ved.D = num + 1 + } else { + ved.D = 1 + } + case msg.VAR_OP_SUB: + if num, ok := ved.D.(int); ok { + if num > 0 { + ved.D = num - 1 + } else { + ved.D = 0 + } + } else { + ved.D = 0 + } + } + ved.U = time.Now().Unix() + if m.End > 0 { + ved.T = m.End + } + data.Var[v.Key] = ved + } + return nil, nil +} + +func GetVarDataHandler(m *msg.Msg) (interface{}, error) { + data := getVarData() + if v, ok := m.Extra.(*msg.VarData); ok { + if varData, ok := data.Var[v.Key]; ok { + return varData.D, nil + } + return nil, fmt.Errorf("var data not found for key %s", v.Key) + } + return nil, fmt.Errorf("invalid parameters for getting var data") +} diff --git a/src/server/game_util/GoUtil.go b/src/server/game_util/GoUtil.go index b5ca11dd..197f81e1 100644 --- a/src/server/game_util/GoUtil.go +++ b/src/server/game_util/GoUtil.go @@ -304,6 +304,10 @@ func GetUserKey(Uid int64) string { return fmt.Sprintf("user_data_%d", Uid) } +func GetUserVarKey(Uid int, key string) string { + return fmt.Sprintf("%s_%d", key, Uid) +} + func GetCatnipLockKey(Uid, GameId int) string { return fmt.Sprintf("catnip_lock_%d_%d", Uid, GameId) } From 3b02cd1241bd0623f7becd2cc2eb64796e929f4e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 22 Dec 2025 16:45:11 +0800 Subject: [PATCH 045/104] 2 --- src/server/game/activity_func.go | 34 +++++++++--------- src/server/game/friend_mgr.go | 35 ------------------ src/server/game/var.go | 10 ++++++ src/server/game/var_mgr.go | 61 +++++++++++++------------------- 4 files changed, 51 insertions(+), 89 deletions(-) diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 18a9d579..78937420 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -1,7 +1,6 @@ package game import ( - "fmt" activityCfg "server/conf/activity" catnipCfg "server/conf/catnip" guesscolorCfg "server/conf/guess_color" @@ -360,34 +359,33 @@ func (p *Player) CatnipBackData() { } tmpData := make(map[int]*msg.CatnipInvite) InviteList := make([]*msg.CatnipInvite, 0) - for Uid, Info := range CatnipMod.InviteList { - tmpData[Uid] = &msg.CatnipInvite{ - Uid: int64(Uid), - Time: Info.Time, + for uid, info := range CatnipMod.InviteList { + tmpData[uid] = &msg.CatnipInvite{ + Uid: int64(uid), + Time: info.Time, Type: 1, } } - for Uid, Info := range CatnipMod.BeInvitedList { - tmpData[Uid] = &msg.CatnipInvite{ - Uid: int64(Uid), - Time: Info.Time, + for uid, info := range CatnipMod.BeInvitedList { + tmpData[uid] = &msg.CatnipInvite{ + Uid: int64(uid), + Time: info.Time, Type: 2, } } - for Uid := range FriendMod.NewFriendList { - key := fmt.Sprintf("catnip_partner_%d", Uid) - Var := G_GameLogicPtr.VarMgr.GetExpireVar(key) - if len(GoUtil.IntSlice(Var.D)) >= 4 { - tmpData[Uid] = &msg.CatnipInvite{ - Uid: int64(Uid), + for uid := range FriendMod.NewFriendList { + partnerList := p.GetCatnipPartner(uid) + if len(GoUtil.IntSlice(partnerList)) >= 4 { + tmpData[uid] = &msg.CatnipInvite{ + Uid: int64(uid), Type: 3, } continue } - if _, ok := tmpData[Uid]; !ok { - tmpData[Uid] = &msg.CatnipInvite{ - Uid: int64(Uid), + if _, ok := tmpData[uid]; !ok { + tmpData[uid] = &msg.CatnipInvite{ + Uid: int64(uid), Type: 0, } } diff --git a/src/server/game/friend_mgr.go b/src/server/game/friend_mgr.go index feced6e3..bb2b84d4 100644 --- a/src/server/game/friend_mgr.go +++ b/src/server/game/friend_mgr.go @@ -3,7 +3,6 @@ package game import ( "encoding/gob" "fmt" - "server/MergeConst" mergeCluster "server/cluster" "server/conf" "server/game/mod/card" @@ -86,9 +85,6 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_PLAYROOM_KISS, f.sendToPlayerOnline) f.RegisterHandler(msg.HANDLE_TYPE_PLAYROOM_GAME, f.sendToPlayer) - f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_GET, f.GetVarUserData) - f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_SET, f.SetVarUserData) - f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_LOGIN, f.SendMsgToCenter) f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, f.SendMsgToCenter) } @@ -141,37 +137,6 @@ func (f *FriendMgr) sync(m *msg.Msg) (interface{}, error) { return data, nil } -func (f *FriendMgr) GetVarUserData(m *msg.Msg) (interface{}, error) { - Key := GoUtil.GetUserKey(int64(m.To)) - data := G_GameLogicPtr.VarMgr.GetUserVar(Key) - if data == nil { - data = &VarUserData{ - Upvote: 0, - } - } - return data, nil -} - -func (f *FriendMgr) SetVarUserData(m *msg.Msg) (interface{}, error) { - VarOp := m.Extra.(VarOpration) - Key := GoUtil.GetUserKey(int64(m.To)) - data := G_GameLogicPtr.VarMgr.GetUserVar(Key) - switch VarOp.Type { - case VAR_OP_UPVOTE: - data.Upvote++ - case VAR_OP_CHIP: - data.Chip += VarOp.Data.(int) - case VAR_OP_CHIP_SET: - data.Chip = VarOp.Data.(int) - case VAR_OP_KISS: - data.Kiss = VarOp.Data.(int) - } - return &VarOpration{ - Data: data, - Code: MergeConst.SUCCESS, - }, nil -} - // 发送消息给玩家 func sendToPlayer(m *msg.Msg) error { p := G_GameLogicPtr.GetPlayer(int64(m.To)) diff --git a/src/server/game/var.go b/src/server/game/var.go index 13445ef2..a2edefb1 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -13,6 +13,7 @@ const ( VAR_PLAYROOM_CHIP = "playroom_chip" VAR_PLAYROOM_KISS = "playroom_kiss" VAR_USER_DATA = "user_data" + VAR_CATNIP_PARTNER = "catnip_partner" ) func (p *Player) GetVarData(key string) interface{} { @@ -71,3 +72,12 @@ func (p *Player) GetGoldCard() *VarGoldCard { } return data.(*VarGoldCard) } + +func (p *Player) GetCatnipPartner(Uid int) []int { + data, err := GetUserData(p.M_DwUin, VAR_CATNIP_PARTNER) + if err != nil { + log.Error("GetVarData err : %s", err) + return nil + } + return GoUtil.IntSlice(data.Extra) +} diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 5d45337e..25a6f253 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -16,12 +16,14 @@ type VarMgr struct { } type VarData struct { - Var map[string]*VarExpireData + Var map[string]interface{} VarExpire map[string]*VarExpireData UserVar map[string]*VarUserData - ZeroTime int64 - Version int64 - mu sync.Mutex + + NewVar map[string]*VarExpireData + ZeroTime int64 + Version int64 + mu sync.Mutex } const ( @@ -36,14 +38,14 @@ func (f *VarMgr) Init() { gob.Register(&VarGoldCard{}) f.key = VAR_MGR_KEY f.data = &VarData{ - Var: map[string]*VarExpireData{}, + NewVar: map[string]*VarExpireData{}, } // 注册处理函数 f.init() // 版本更新 重构 f.version() - if f.data.(*VarData).Var == nil { - f.data.(*VarData).Var = make(map[string]*VarExpireData) + if f.data.(*VarData).NewVar == nil { + f.data.(*VarData).NewVar = make(map[string]*VarExpireData) } if f.data.(*VarData).UserVar == nil { f.data.(*VarData).UserVar = make(map[string]*VarUserData) @@ -90,7 +92,7 @@ func (f *VarMgr) ZeroUpdate() { Four: Card1, Five: Card2, }) - for k, v := range f.getData().Var { + for k, v := range f.getData().NewVar { if v.T < GoUtil.ZeroTimestamp() { delete(f.getData().Var, k) } @@ -101,20 +103,23 @@ func (f *VarMgr) ZeroUpdate() { } func (f *VarMgr) HandleCatnipPartner(Uid, Partner, GameId int, EndTime int64) (interface{}, error) { - myKey := fmt.Sprintf("catnip_partner_%d", Uid) - key := fmt.Sprintf("catnip_partner_%d", Partner) - OtherPartnerInfo := f.GetExpireVar(key) - MyPartnerInfo := f.GetExpireVar(myKey) + data := f.getData() + data.mu.Lock() + defer data.mu.Unlock() + MyKey := GoUtil.GetUserVarKey(Uid, VAR_CATNIP_PARTNER) + Partnerkey := GoUtil.GetUserVarKey(Partner, VAR_CATNIP_PARTNER) + OtherPartnerInfo := f.GetVar(MyKey) + MyPartnerInfo := f.GetVar(Partnerkey) MyOfPartnerList := GoUtil.IntSlice(MyPartnerInfo.D) OtherOfPartnerList := GoUtil.IntSlice(OtherPartnerInfo.D) if len(MyOfPartnerList) > 4 || len(OtherOfPartnerList) > 4 { return nil, fmt.Errorf("catnip partner already full for uid %d in game %d", Partner, GameId) } - f.SetVar(key, &VarExpireData{ + f.SetVar(Partnerkey, &VarExpireData{ D: append(OtherOfPartnerList, Uid), T: EndTime, }) - f.SetVar(myKey, &VarExpireData{ + f.SetVar(MyKey, &VarExpireData{ D: append(MyOfPartnerList, Partner), T: EndTime, }) @@ -122,33 +127,17 @@ func (f *VarMgr) HandleCatnipPartner(Uid, Partner, GameId int, EndTime int64) (i } func (f *VarMgr) SetVar(key string, value interface{}) { - f.getData().Var[key] = &VarExpireData{ + f.getData().NewVar[key] = &VarExpireData{ D: value, } } -// TODO: 弃用 -func (f *VarMgr) GetExpireVar(key string) *VarExpireData { - if v, ok := f.getData().VarExpire[key]; ok { +func (f *VarMgr) GetVar(key string) *VarExpireData { + if v, ok := f.getData().NewVar[key]; ok { return v } data := &VarExpireData{} - f.getData().VarExpire[key] = data - return data -} - -// TODO: 弃用 -func (f *VarMgr) SetUserVar(key string, value *VarUserData) { - f.getData().UserVar[key] = value -} - -// TODO: 弃用 -func (f *VarMgr) GetUserVar(key string) *VarUserData { - if v, ok := f.getData().UserVar[key]; ok { - return v - } - data := &VarUserData{} - f.getData().UserVar[key] = data + f.getData().NewVar[key] = data return data } @@ -169,7 +158,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { data.mu.Lock() defer data.mu.Unlock() if v, ok := m.Extra.(*msg.VarData); ok { - ved, ok := data.Var[v.Key] + ved, ok := data.NewVar[v.Key] if !ok { ved = &VarExpireData{} } @@ -205,7 +194,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { func GetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() if v, ok := m.Extra.(*msg.VarData); ok { - if varData, ok := data.Var[v.Key]; ok { + if varData, ok := data.NewVar[v.Key]; ok { return varData.D, nil } return nil, fmt.Errorf("var data not found for key %s", v.Key) From 728656d23b59959fa689ecd483c4abd75e54836d Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 22 Dec 2025 17:28:50 +0800 Subject: [PATCH 046/104] 2 --- src/server/game/message_mgr.go | 6 +- src/server/game/mod/msg/Msg.go | 2 + src/server/game/var.go | 10 +-- src/server/game/var_mgr.go | 113 +++++++++++++++++++++++++++++---- src/server/game_util/GoUtil.go | 8 --- 5 files changed, 111 insertions(+), 28 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 368737a0..1ebdead8 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -79,6 +79,10 @@ func (m *MessageMgr) MessageMgrInit() { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_VAR_SET, MessageHandlerFunc(SetVarDataHandler)) + m.RegisterHandler(msg.HANDLE_MOD_VAR_GET, MessageHandlerFunc(GetVarDataHandler)) + m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_SET, MessageHandlerFunc(SetUserVarDataHandler)) + m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_GET, MessageHandlerFunc(GetUserVarDataHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CATNIP_PARTNER, MessageHandlerFunc(CatnipPartnerHandler)) } else { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_CLUSTER_SYNC, MessageHandlerFunc(ClusterSyncHandler)) @@ -540,7 +544,7 @@ func saveMessage(m *msg.Msg) error { func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { return SendMsgToCenterSync(&msg.Msg{ From: int(PlayerId), - HandleType: msg.HANDLE_MOD_VAR_GET, + HandleType: msg.HANDLE_MOD_USER_VAR_GET, Extra: Key, }) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 533172d4..79831422 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -41,6 +41,8 @@ const ( HANDLE_MOD_VAR_GET = 20007 // 获取变量 HANDLE_MOD_VAR_SET = 20008 // 设置变量 HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 + HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量 + HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量 ) const ( diff --git a/src/server/game/var.go b/src/server/game/var.go index a2edefb1..0726e3b7 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -28,7 +28,7 @@ func (p *Player) GetVarData(key string) interface{} { func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{ From: int(p.M_DwUin), - HandleType: msg.HANDLE_MOD_VAR_SET, + HandleType: msg.HANDLE_MOD_USER_VAR_SET, Extra: &msg.VarData{ Key: key, Value: value, @@ -50,19 +50,19 @@ func (p *Player) SubVarDataAsync(key string) { } func (p *Player) AddPlayroomUpvote(PlayerId int) { - p.AddVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_UPVOTE)) + p.AddVarDataAsync(VAR_PLAYROOM_UPVOTE) } func (p *Player) AddPlayroomChip(PlayerId int) { - p.AddVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_CHIP)) + p.AddVarDataAsync(VAR_PLAYROOM_CHIP) } func (p *Player) SubPlayroomChip(PlayerId int) { - p.SubVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_CHIP)) + p.SubVarDataAsync(VAR_PLAYROOM_CHIP) } func (p *Player) SetPlayroomKiss(PlayerId int) { - p.SetVarDataAsync(GoUtil.GetUserVarKey(PlayerId, VAR_PLAYROOM_KISS), 1) + p.SetVarDataAsync(VAR_PLAYROOM_KISS, 1) } func (p *Player) GetGoldCard() *VarGoldCard { diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 25a6f253..82f5eccb 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -20,10 +20,11 @@ type VarData struct { VarExpire map[string]*VarExpireData UserVar map[string]*VarUserData - NewVar map[string]*VarExpireData - ZeroTime int64 - Version int64 - mu sync.Mutex + NewVar map[string]*VarExpireData + NewUseVar map[int]map[string]*VarExpireData + ZeroTime int64 + Version int64 + mu sync.Mutex } const ( @@ -38,7 +39,8 @@ func (f *VarMgr) Init() { gob.Register(&VarGoldCard{}) f.key = VAR_MGR_KEY f.data = &VarData{ - NewVar: map[string]*VarExpireData{}, + NewVar: map[string]*VarExpireData{}, + NewUseVar: map[int]map[string]*VarExpireData{}, } // 注册处理函数 f.init() @@ -74,9 +76,9 @@ func (f *VarMgr) version() { if v != nil { uidStr := strings.Split(k, "_")[2] uid := GoUtil.Int(uidStr) - f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_UPVOTE), v.Upvote) - f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_CHIP), v.Chip) - f.SetVar(GoUtil.GetUserVarKey(uid, VAR_PLAYROOM_KISS), v.Kiss) + f.SetUserVar(uid, VAR_PLAYROOM_UPVOTE, v.Upvote) + f.SetUserVar(uid, VAR_PLAYROOM_CHIP, v.Chip) + f.SetUserVar(uid, VAR_PLAYROOM_KISS, v.Kiss) delete(data.UserVar, k) } } @@ -106,26 +108,53 @@ func (f *VarMgr) HandleCatnipPartner(Uid, Partner, GameId int, EndTime int64) (i data := f.getData() data.mu.Lock() defer data.mu.Unlock() - MyKey := GoUtil.GetUserVarKey(Uid, VAR_CATNIP_PARTNER) - Partnerkey := GoUtil.GetUserVarKey(Partner, VAR_CATNIP_PARTNER) - OtherPartnerInfo := f.GetVar(MyKey) - MyPartnerInfo := f.GetVar(Partnerkey) + + OtherPartnerInfo := f.GetUserVar(Uid, VAR_CATNIP_PARTNER) + MyPartnerInfo := f.GetUserVar(Partner, VAR_CATNIP_PARTNER) MyOfPartnerList := GoUtil.IntSlice(MyPartnerInfo.D) OtherOfPartnerList := GoUtil.IntSlice(OtherPartnerInfo.D) if len(MyOfPartnerList) > 4 || len(OtherOfPartnerList) > 4 { return nil, fmt.Errorf("catnip partner already full for uid %d in game %d", Partner, GameId) } - f.SetVar(Partnerkey, &VarExpireData{ + f.SetUserVar(Partner, VAR_CATNIP_PARTNER, &VarExpireData{ D: append(OtherOfPartnerList, Uid), T: EndTime, }) - f.SetVar(MyKey, &VarExpireData{ + f.SetUserVar(Uid, VAR_CATNIP_PARTNER, &VarExpireData{ D: append(MyOfPartnerList, Partner), T: EndTime, }) return nil, nil } +func (f *VarMgr) SetUserVar(uid int, key string, value interface{}) { + varData := f.getData().NewUseVar[uid] + if varData == nil { + varData = make(map[string]*VarExpireData) + f.getData().NewUseVar[uid] = varData + } + ved, ok := varData[key] + if !ok { + ved = &VarExpireData{} + } + ved.D = value + varData[key] = ved +} + +func (f *VarMgr) GetUserVar(uid int, key string) *VarExpireData { + varData := f.getData().NewUseVar[uid] + if varData == nil { + varData = make(map[string]*VarExpireData) + f.getData().NewUseVar[uid] = varData + } + ved, ok := varData[key] + if !ok { + ved = &VarExpireData{} + varData[key] = ved + } + return ved +} + func (f *VarMgr) SetVar(key string, value interface{}) { f.getData().NewVar[key] = &VarExpireData{ D: value, @@ -191,6 +220,62 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { return nil, nil } +func GetUserVarDataHandler(m *msg.Msg) (interface{}, error) { + data := getVarData() + if v, ok := m.Extra.(*msg.VarData); ok { + if varData, ok := data.NewUseVar[m.From]; ok { + if userVar, ok := varData[v.Key]; ok { + return userVar, nil + } + } + return nil, fmt.Errorf("var data not found for key %s", v.Key) + } + return nil, fmt.Errorf("invalid parameters for getting var data") +} + +func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { + data := getVarData() + data.mu.Lock() + defer data.mu.Unlock() + if v, ok := m.Extra.(*msg.VarData); ok { + varData := data.NewUseVar[m.From] + if varData == nil { + varData = make(map[string]*VarExpireData) + data.NewUseVar[m.From] = varData + } + ved, ok := varData[v.Key] + if !ok { + ved = &VarExpireData{} + } + switch v.SetType { + case msg.VAR_OP_SET: + ved.D = v.Value + case msg.VAR_OP_ADD: + if num, ok := ved.D.(int); ok { + ved.D = num + 1 + } else { + ved.D = 1 + } + case msg.VAR_OP_SUB: + if num, ok := ved.D.(int); ok { + if num > 0 { + ved.D = num - 1 + } else { + ved.D = 0 + } + } else { + ved.D = 0 + } + } + ved.U = time.Now().Unix() + if m.End > 0 { + ved.T = m.End + } + data.Var[v.Key] = ved + } + return nil, nil +} + func GetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() if v, ok := m.Extra.(*msg.VarData); ok { diff --git a/src/server/game_util/GoUtil.go b/src/server/game_util/GoUtil.go index 197f81e1..a57553fa 100644 --- a/src/server/game_util/GoUtil.go +++ b/src/server/game_util/GoUtil.go @@ -300,14 +300,6 @@ func UniKey(seed string) string { return fmt.Sprintf("%x", hash.Sum(nil)) } -func GetUserKey(Uid int64) string { - return fmt.Sprintf("user_data_%d", Uid) -} - -func GetUserVarKey(Uid int, key string) string { - return fmt.Sprintf("%s_%d", key, Uid) -} - func GetCatnipLockKey(Uid, GameId int) string { return fmt.Sprintf("catnip_lock_%d_%d", Uid, GameId) } From 574b9f49a11f4712454363b5ce0510b06f3f1e84 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 11:45:43 +0800 Subject: [PATCH 047/104] 3 --- src/server/cluster/cluster_func.go | 11 ++---- src/server/game/GameLogic.go | 13 ------- src/server/game/message_mgr.go | 31 +++++++++++++-- src/server/game/mod/msg/Msg.go | 23 +++++------ src/server/game/player_back.go | 13 +++---- src/server/game/var.go | 61 +++++++++++++++++++++++++++++- src/server/game/var_mgr.go | 6 +-- 7 files changed, 110 insertions(+), 48 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 5a157b40..5108b1eb 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -143,12 +143,13 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { } v.(network.Agent).WriteMsg(data) // 等待返回(直接接收一次) - timeout := time.After(15 * time.Second) + timeout := time.After(5 * time.Second) select { case backm := <-newChan: if backm == nil { return nil, fmt.Errorf("server %d not response", serverId) } + log.Debug("CallServerMsg reply %v", backm) return backm, nil case <-timeout: return nil, fmt.Errorf("timeout waiting for server %d response", serverId) @@ -169,13 +170,7 @@ func SendMsgAll(m *msg.Msg) { func processMsg(a *Agent, m *msg.Msg) error { var err error - // 先处理同步回调 - if m.UniKey != "" { - if chanel, ok := CallbackChan[m.UniKey]; ok { - chanel <- m - return nil - } - } + if fun, ok := FuncMap[m.Type]; ok { err = fun(a, m) } else { diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index c9ced423..397bbd13 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -286,19 +286,6 @@ func (ad *GameLogic) SetUserData(Uid int, Op int, Data interface{}) { }) } -func (ad *GameLogic) GetUserData(Uid int) *VarUserData { - result, err := ad.FriendMgr.Call(&MsgMod.Msg{ - From: Uid, - To: Uid, - Type: MsgMod.HANDLE_TYPE_VAR_USER_GET, - SendT: GoUtil.Now(), - }) - if err != nil { - return &VarUserData{} - } - return result.(*VarUserData) -} - func (ad *GameLogic) FriendMgrCall(m *MsgMod.Msg) interface{} { result, err := ad.FriendMgr.Call(m) if err != nil { diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 1ebdead8..0c880d47 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -2,6 +2,7 @@ package game import ( "context" + "encoding/gob" "fmt" "runtime/debug" mergeCluster "server/cluster" @@ -63,6 +64,7 @@ func (m *MessageMgr) MessageMgrInit() { MessageList: make(map[int64]*MessageList), PlayerList: make(map[int64]int), } + gob.Register(msg.VarData{}) // 注册处理函数 m.init() m.handler = make(map[int]MessageHandlerFunc) @@ -85,6 +87,7 @@ func (m *MessageMgr) MessageMgrInit() { m.RegisterHandler(msg.HANDLE_MOD_CATNIP_PARTNER, MessageHandlerFunc(CatnipPartnerHandler)) } else { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_REPLY_PLAYER_MSG, MessageHandlerFunc(PlayerReplyMsgHandler)) m.RegisterHandler(msg.HANDLE_MOD_CLUSTER_SYNC, MessageHandlerFunc(ClusterSyncHandler)) } } @@ -220,8 +223,21 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { defer p.lock.Unlock() p.Send(data.Clone()) // 处理完后发送消费消息 - data.HandleType = msg.HANDLE_MOD_COMSUME_MSG - go SendMsgToCenterAsync(data) + if data.HandleType == msg.HANDLE_MOD_PLAYER_MSG { + data.HandleType = msg.HANDLE_MOD_COMSUME_MSG + go SendMsgToCenterAsync(data) + } + return nil, nil +} + +func PlayerReplyMsgHandler(data *msg.Msg) (interface{}, error) { + // 先处理同步回调 + if data.UniKey != "" { + if chanel, ok := mergeCluster.CallbackChan[data.UniKey]; ok { + log.Debug("reply message ") + chanel <- data + } + } return nil, nil } @@ -518,7 +534,7 @@ func sendMessageAsync(m *msg.Msg, node int) error { // 同步消息到指定节点 节点不在线则保存消息 func sendMessageSync(m *msg.Msg, node int) (*msg.Msg, error) { msg, err := mergeCluster.CallServerMsg(m, node) - if err != nil { + if err != nil && conf.Server.ServerType == "center" { saveMessage(m) return nil, err } @@ -545,6 +561,13 @@ func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { return SendMsgToCenterSync(&msg.Msg{ From: int(PlayerId), HandleType: msg.HANDLE_MOD_USER_VAR_GET, - Extra: Key, + Extra: msg.VarData{Key: Key}, + }) +} + +func GetServerData(Key string) (*msg.Msg, error) { + return SendMsgToCenterSync(&msg.Msg{ + HandleType: msg.HANDLE_MOD_VAR_GET, + Extra: msg.VarData{Key: Key}, }) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 79831422..d8dd02cc 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -32,17 +32,18 @@ var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} const ( - HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 - HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 - HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 - HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 - HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 - HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 - HANDLE_MOD_VAR_GET = 20007 // 获取变量 - HANDLE_MOD_VAR_SET = 20008 // 设置变量 - HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 - HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量 - HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量 + HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 + HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 + HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 + HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 + HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 + HANDLE_MOD_VAR_GET = 20007 // 获取变量 + HANDLE_MOD_VAR_SET = 20008 // 设置变量 + HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 + HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量 + HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量 + HANDLE_MOD_REPLY_PLAYER_MSG = 20012 // 回复玩家消息 ) const ( diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 839b5b31..906ba679 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -113,7 +113,6 @@ func (p *Player) PlayroomBackData() { ItemId: int32(k), }) } - data := G_GameLogicPtr.GetUserData(int(p.M_DwUin)) r.Dress = Dress r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet()) @@ -156,7 +155,7 @@ func (p *Player) PlayroomBackData() { r.Unlock = PlayroomMod.GetUnlockIds() r.DailyTaskReward = GoUtil.IntToInt32(PlayroomMod.DailyTaskReward) r.DailyTask = PlayroomMod.BackDataTask() - r.Kiss = int32(data.Kiss) + r.Kiss = int32(p.GetPlayroomKiss()) r.Revenge = PlayroomMod.RevengeUid r.InteractNum = int32(PlayroomMod.InteractNum) r.AdItem = AdWatch @@ -195,18 +194,16 @@ func (p *Player) PlayroomVisit(Uid int) { r.Upvote = GoUtil.InArray(Uid, PlayroomMod.UpvoteList) r.Items = Items r.Status = int32(PlayroomMod.GameStatus) - data := G_GameLogicPtr.GetUserData(Uid) - r.UpvoteCount = int32(data.Upvote) - r.Chip = int32(data.Chip) - r.Kiss = int32(data.Kiss) + r.UpvoteCount = int32(p.GetPlayroomUpvote()) + r.Chip = int32(p.GetPlayroomChip()) + r.Kiss = int32(p.GetPlayroomKiss()) r.DressSet = GoUtil.MapIntToInt32(PlayerData.DressSet) p.PushClientRes(r) } func (p *Player) NotifyPlayroomKiss() { - data := G_GameLogicPtr.GetUserData(int(p.M_DwUin)) m := &proto.NotifyPlayroomKiss{ - Kiss: int32(data.Kiss), + Kiss: int32(p.GetPlayroomKiss()), } p.PushClientRes(m) } diff --git a/src/server/game/var.go b/src/server/game/var.go index 0726e3b7..a747f019 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -25,11 +25,20 @@ func (p *Player) GetVarData(key string) interface{} { return data.Extra } +func GetServerVarData(key string) interface{} { + data, err := GetServerData(key) + if err != nil { + log.Error("GetServerVarData err : %s", err) + return nil + } + return data.Extra +} + func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{ From: int(p.M_DwUin), HandleType: msg.HANDLE_MOD_USER_VAR_SET, - Extra: &msg.VarData{ + Extra: msg.VarData{ Key: key, Value: value, SetType: opType, @@ -37,6 +46,32 @@ func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { }) } +func (p *Player) OpVarDataSync(key string, value interface{}, opType int) (*msg.Msg, error) { + return SendMsgToCenterSync(&msg.Msg{ + From: int(p.M_DwUin), + HandleType: msg.HANDLE_MOD_USER_VAR_SET, + Extra: msg.VarData{ + Key: key, + Value: value, + SetType: opType, + }, + }) +} + +func (p *Player) OpServerVarDataAsync(key string, Value interface{}, opType int) { + SendMsgToCenterSync(&msg.Msg{ + HandleType: msg.HANDLE_MOD_VAR_SET, + Extra: msg.VarData{Key: key, Value: Value, SetType: opType}, + }) +} + +func (p *Player) OpServerVarDataSync(key string, Value interface{}, opType int) (*msg.Msg, error) { + return SendMsgToCenterSync(&msg.Msg{ + HandleType: msg.HANDLE_MOD_VAR_SET, + Extra: msg.VarData{Key: key, Value: Value, SetType: opType}, + }) +} + func (p *Player) SetVarDataAsync(key string, value interface{}) { p.OpVarDataAsync(key, value, msg.VAR_OP_SET) } @@ -61,10 +96,34 @@ func (p *Player) SubPlayroomChip(PlayerId int) { p.SubVarDataAsync(VAR_PLAYROOM_CHIP) } +func (p *Player) GetPlayroomUpvote() int { + data := p.GetVarData(VAR_PLAYROOM_UPVOTE) + if data == nil { + return 0 + } + return data.(int) +} + +func (p *Player) GetPlayroomChip() int { + data := p.GetVarData(VAR_PLAYROOM_CHIP) + if data == nil { + return 0 + } + return data.(int) +} + func (p *Player) SetPlayroomKiss(PlayerId int) { p.SetVarDataAsync(VAR_PLAYROOM_KISS, 1) } +func (p *Player) GetPlayroomKiss() int { + data := p.GetVarData(VAR_PLAYROOM_KISS) + if data == nil { + return 0 + } + return data.(int) +} + func (p *Player) GetGoldCard() *VarGoldCard { data := p.GetVarData(VAR_GOLD_CARD) if data == nil { diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 82f5eccb..9d4fb38b 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -186,7 +186,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() data.mu.Lock() defer data.mu.Unlock() - if v, ok := m.Extra.(*msg.VarData); ok { + if v, ok := m.Extra.(msg.VarData); ok { ved, ok := data.NewVar[v.Key] if !ok { ved = &VarExpireData{} @@ -237,7 +237,7 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() data.mu.Lock() defer data.mu.Unlock() - if v, ok := m.Extra.(*msg.VarData); ok { + if v, ok := m.Extra.(msg.VarData); ok { varData := data.NewUseVar[m.From] if varData == nil { varData = make(map[string]*VarExpireData) @@ -278,7 +278,7 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { func GetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() - if v, ok := m.Extra.(*msg.VarData); ok { + if v, ok := m.Extra.(msg.VarData); ok { if varData, ok := data.NewVar[v.Key]; ok { return varData.D, nil } From 28de534bd44ad657d0a996822e5df4b8b5f27331 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 11:52:20 +0800 Subject: [PATCH 048/104] 3 --- src/server/game/message_mgr.go | 11 +++++++++++ src/server/game/var_mgr.go | 22 ++++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 0c880d47..f2f4ec25 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -108,7 +108,18 @@ func CatnipPartnerHandler(data *msg.Msg) (interface{}, error) { return nil, fmt.Errorf("invalid catnip partner data") } return G_GameLogicPtr.VarMgr.HandleCatnipPartner(m.Uid, m.Partner, m.GameId, m.EndTime) +} +func ReplyPlayerMsgSync(m *msg.Msg, reply interface{}) (interface{}, error) { + clone := m.Clone() + clone.To = m.From + clone.HandleType = msg.HANDLE_MOD_REPLY_PLAYER_MSG + clone.Extra = reply + messageMgrData := getMessageData() + if node, ok := messageMgrData.PlayerList[int64(m.From)]; ok { + go SendMsgToNodeAsync(clone, node) + } + return nil, nil } // 节点连接时,同步消息 diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 9d4fb38b..a765998c 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -222,13 +222,16 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { func GetUserVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() + userVar := &VarExpireData{} if v, ok := m.Extra.(*msg.VarData); ok { if varData, ok := data.NewUseVar[m.From]; ok { - if userVar, ok := varData[v.Key]; ok { - return userVar, nil - } + userVar, _ = varData[v.Key] } - return nil, fmt.Errorf("var data not found for key %s", v.Key) + if userVar == nil { + userVar = &VarExpireData{} + } + ReplyPlayerMsgSync(m, userVar.D) + return userVar, nil } return nil, fmt.Errorf("invalid parameters for getting var data") } @@ -278,11 +281,14 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { func GetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() - if v, ok := m.Extra.(msg.VarData); ok { - if varData, ok := data.NewVar[v.Key]; ok { - return varData.D, nil + varData := &VarExpireData{} + if v, ok := m.Extra.(*msg.VarData); ok { + varData, _ = data.NewVar[v.Key] + if varData == nil { + varData = &VarExpireData{} } - return nil, fmt.Errorf("var data not found for key %s", v.Key) + ReplyPlayerMsgSync(m, varData.D) + return varData, nil } return nil, fmt.Errorf("invalid parameters for getting var data") } From 9dfa8843491d6b4fa617dfa625e1ff6d92f86ab1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:17:32 +0800 Subject: [PATCH 049/104] 4 --- src/server/game/GameLogic.go | 22 ---------------------- src/server/game/charge_func.go | 2 +- src/server/game/game_type.go | 2 +- src/server/game/gm_handler.go | 2 +- src/server/game/register_network_func.go | 20 +++++++++----------- src/server/game/var.go | 7 +++++-- src/server/game/var_mgr.go | 4 ++-- 7 files changed, 19 insertions(+), 40 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 397bbd13..01c9d06a 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -272,28 +272,6 @@ func (ad *GameLogic) CreateFriendMgr() { ad.FriendMgr.Init() } -func (ad *GameLogic) FriendMgrSend(m *MsgMod.Msg) { - ad.FriendMgr.Send(m) -} - -func (ad *GameLogic) SetUserData(Uid int, Op int, Data interface{}) { - ad.FriendMgr.Send(&MsgMod.Msg{ - From: Uid, - To: Uid, - Type: MsgMod.HANDLE_TYPE_VAR_USER_SET, - SendT: GoUtil.Now(), - Extra: VarOpration{Type: Op, Data: Data}, - }) -} - -func (ad *GameLogic) FriendMgrCall(m *MsgMod.Msg) interface{} { - result, err := ad.FriendMgr.Call(m) - if err != nil { - return nil - } - return result -} - // 排行榜管理器 func (ad *GameLogic) CreateRankMgr() { ad.RankMgr = &RankMgr{ diff --git a/src/server/game/charge_func.go b/src/server/game/charge_func.go index 836a3214..f4d3c568 100644 --- a/src/server/game/charge_func.go +++ b/src/server/game/charge_func.go @@ -35,7 +35,7 @@ func (p *Player) Charge(ChargeId int) { } func (p *Player) SendCharge(d *ChargeExtra) { - G_GameLogicPtr.FriendMgrSend(&MsgMod.Msg{ + FriendMgrSend(&MsgMod.Msg{ From: int(p.M_DwUin), Type: MsgMod.HANDLE_TYPE_SEND_CHARGE, To: int(d.Uid), diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index 69b10613..85b47723 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -119,7 +119,7 @@ func init() { gob.Register(&VarUserData{}) gob.Register(&ActivityInfo{}) gob.Register(&ChargeExtra{}) - gob.Register(&GameResult{}) + gob.Register(GameResult{}) gob.Register(CatnipMsg{}) gob.Register(&CatnipLock{}) gob.Register(CRank{}) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 74d8c921..115a0cde 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -46,7 +46,7 @@ func ReqGmCommand_(player *Player, Command string) error { // log.Error("ReqGmCommand panic: %v", err) // } // }() - if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" && conf.Server.GameName != "Merge_Pet_Local" { + if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" && conf.Server.GameName != "Merge_Pet_Local" && conf.Server.GameName != "pet_home_local" { return fmt.Errorf("Player %d ReqGmCommand not support in game %s, command %s", player.M_DwUin, conf.Server.GameName, Command) } player.TeLog("gm", map[string]interface{}{ diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index adf30f16..34a11a0d 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -60,7 +60,6 @@ func ReqPlayerBaseInfofunction(player *Player, buf []byte) error { } func ReqPlayerBriefProfileDataFunc(player *Player, buf []byte) error { - return nil detail := &msg.ReqPlayerBriefProfileData{} err := proto.Unmarshal(buf, detail) if err != nil { @@ -3279,7 +3278,7 @@ func ReqSelfInvited(player *Player, buf []byte) error { if err != nil { return err } - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND, From: int(player.M_DwUin), To: int(req.InviterId), @@ -3346,7 +3345,7 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error { player.PushClientRes(&msg.ResAutoAddInviteFriend{ ResultCode: 1, }) - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: Uid, Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, @@ -3390,7 +3389,7 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error { player.PushClientRes(&msg.ResAutoAddInviteFriend2{ ResultCode: 1, }) - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: Uid, Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, @@ -3790,7 +3789,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { return err } if GoUtil.InArray(int(req.Id), playroomCfg.GetInteractIdBath()) { - G_GameLogicPtr.SetUserData(int(req.Id), VAR_OP_KISS, 0) + player.SetPlayroomKiss(0) } PExp := playroomCfg.GetInteractPExp(int(req.Id)) _, err = player.GetPlayerBaseMod().AddExp(player, 0, PExp) @@ -3804,7 +3803,6 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { PlayroomMod.AddInteractNum(BaseMod.GetLevel()) player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_INTERACT, A: []interface{}{int(req.Id)}}) player.PlayMod.save() - G_GameLogicPtr.SetUserData(int(player.M_DwUin), VAR_OP_KISS, 0) player.LimitedTimePlayroomTrigger_(PType) player.NotifyPlayroomKiss() player.TeLog("playroom_interact", map[string]interface{}{ @@ -3868,7 +3866,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { }) return err } - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: Target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, @@ -3928,7 +3926,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { }) return fmt.Errorf("no game or target") } - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: Target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, @@ -4157,7 +4155,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { }) return err } - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: Target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, @@ -4260,7 +4258,7 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error { SendT: GoUtil.Now(), }) player.AddPlayroomUpvote(int(req.Id)) - player.SetPlayroomKiss(int(req.Id)) + player.SetPlayroomKiss(1) player.TeLog("visit_like", map[string]interface{}{ "user_id": req.Id, }) @@ -4622,7 +4620,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error { if v.Status == 1 { ItemNum = FriendItemNum } - G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), To: int(v.Uid), Type: MsqMod.FRIEND_TREASURE_HANDLE, diff --git a/src/server/game/var.go b/src/server/game/var.go index a747f019..d33b04a6 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -22,6 +22,9 @@ func (p *Player) GetVarData(key string) interface{} { log.Error("GetVarData err : %s", err) return nil } + if data == nil { + return nil + } return data.Extra } @@ -112,8 +115,8 @@ func (p *Player) GetPlayroomChip() int { return data.(int) } -func (p *Player) SetPlayroomKiss(PlayerId int) { - p.SetVarDataAsync(VAR_PLAYROOM_KISS, 1) +func (p *Player) SetPlayroomKiss(Kiss int) { + p.SetVarDataAsync(VAR_PLAYROOM_KISS, Kiss) } func (p *Player) GetPlayroomKiss() int { diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index a765998c..a112e3f7 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -223,7 +223,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { func GetUserVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() userVar := &VarExpireData{} - if v, ok := m.Extra.(*msg.VarData); ok { + if v, ok := m.Extra.(msg.VarData); ok { if varData, ok := data.NewUseVar[m.From]; ok { userVar, _ = varData[v.Key] } @@ -282,7 +282,7 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { func GetVarDataHandler(m *msg.Msg) (interface{}, error) { data := getVarData() varData := &VarExpireData{} - if v, ok := m.Extra.(*msg.VarData); ok { + if v, ok := m.Extra.(msg.VarData); ok { varData, _ = data.NewVar[v.Key] if varData == nil { varData = &VarExpireData{} From 0e8697556372f8a8127120b48e7a097d6fd1c6f5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:19:03 +0800 Subject: [PATCH 050/104] 4 --- src/server/game/game_type.go | 1 - src/server/game/message_mgr.go | 5 +++-- src/server/game/var_mgr.go | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index 85b47723..db6f40e2 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -119,7 +119,6 @@ func init() { gob.Register(&VarUserData{}) gob.Register(&ActivityInfo{}) gob.Register(&ChargeExtra{}) - gob.Register(GameResult{}) gob.Register(CatnipMsg{}) gob.Register(&CatnipLock{}) gob.Register(CRank{}) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index f2f4ec25..9c560a9e 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -65,6 +65,7 @@ func (m *MessageMgr) MessageMgrInit() { PlayerList: make(map[int64]int), } gob.Register(msg.VarData{}) + gob.Register(GameResult{}) // 注册处理函数 m.init() m.handler = make(map[int]MessageHandlerFunc) @@ -183,14 +184,14 @@ func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { messageMgrData := getMessageData() - Message, ok := messageMgrData.MessageList[int64(data.From)] + Message, ok := messageMgrData.MessageList[int64(data.To)] if !ok { return nil, nil } Message.mu.Lock() defer Message.mu.Unlock() for i, msgItem := range Message.Messages { - if msgItem.Id == data.Id { + if msgItem.UniKey == data.UniKey { // 删除消息 Message.Messages = append(Message.Messages[:i], Message.Messages[i+1:]...) log.Debug("[Middleware] Comsume message success type: %d, player id: %v", msgItem.Type, msgItem.From) diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index a112e3f7..deb2d655 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -37,6 +37,7 @@ const ( func (f *VarMgr) Init() { gob.Register(&VarGoldCard{}) + gob.Register(&VarExpireData{}) f.key = VAR_MGR_KEY f.data = &VarData{ NewVar: map[string]*VarExpireData{}, From 50c6c07140cc130f2503c54b38ffbf4fe1912ec5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:16:01 +0800 Subject: [PATCH 051/104] 5 --- src/server/game/GameLogic.go | 7 ++--- src/server/game/champship_mgr.go | 5 ++-- src/server/game/message_handler.go | 2 +- src/server/game/message_mgr.go | 41 +++++++++++++++++++++++------- src/server/game/mod/msg/Msg.go | 26 ++++++++++--------- 5 files changed, 51 insertions(+), 30 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 01c9d06a..98b6f46c 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -935,11 +935,8 @@ func (ad *GameLogic) GetStartTime() int64 { } func NotifyPlayer(Uid int, m *MsgMod.Msg) { - p := G_GameLogicPtr.GetPlayer(int64(Uid)) - if p == nil || p.stop { - return - } - p.Send(m) + m.To = Uid + CenterPlayerMsgHandler(m) } func Destroy() { diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index 2eec44f1..e245fc8d 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -115,9 +115,8 @@ func (c *ChampshipMgr) Init() { } func (c *ChampshipMgr) NotifyAll(m *msg.Msg) (interface{}, error) { - G_GameLogicPtr.NotifyAll(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, - }) + m.HandleType = msg.HANDLE_MOD_PLAYER_MSG + NotifyAllPlayerMsg(m) return nil, nil } diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 0aa35ac0..0c21aa20 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -704,7 +704,7 @@ func NotifyChampshipResult(Uid, Rank int) { SendT: GoUtil.Now(), Extra: []int{Rank, GoUtil.GetServerOpenDay()}, } - FriendMgrSend(Msg) + CenterPlayerMsgHandler(Msg) } } diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 9c560a9e..9d077517 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -76,6 +76,24 @@ func (m *MessageMgr) MessageMgrInit() { m.Use(RecoveryMiddleware()) m.Use(LoggingMiddleware()) m.Use(TimeoutMiddleware(5 * time.Second)) + m.NodeRegister() + m.CenterRegister() +} + +// 注册处理器 +func (s *MessageMgr) RegisterHandler(HandlerType int, fun MessageHandlerFunc) { + s.handler[HandlerType] = fun +} + +func (m *MessageMgr) NodeRegister() { + if conf.Server.ServerType == "node" { + m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_REPLY_PLAYER_MSG, MessageHandlerFunc(PlayerReplyMsgHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CLUSTER_SYNC, MessageHandlerFunc(ClusterSyncHandler)) + } +} + +func (m *MessageMgr) CenterRegister() { if conf.Server.ServerType == "center" { m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler)) m.RegisterHandler(msg.HANDLE_MDO_PLAYER_LOGOUT, MessageHandlerFunc(PlayerLogoutHandler)) @@ -86,23 +104,28 @@ func (m *MessageMgr) MessageMgrInit() { m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_SET, MessageHandlerFunc(SetUserVarDataHandler)) m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_GET, MessageHandlerFunc(GetUserVarDataHandler)) m.RegisterHandler(msg.HANDLE_MOD_CATNIP_PARTNER, MessageHandlerFunc(CatnipPartnerHandler)) - } else { - m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler)) - m.RegisterHandler(msg.HANDLE_MOD_REPLY_PLAYER_MSG, MessageHandlerFunc(PlayerReplyMsgHandler)) - m.RegisterHandler(msg.HANDLE_MOD_CLUSTER_SYNC, MessageHandlerFunc(ClusterSyncHandler)) + m.RegisterHandler(msg.HANDLE_MDO_CHAMPSHIP_INRANK, MessageHandlerFunc(ChampshipInRankHandler)) } } -// 注册处理器 -func (s *MessageMgr) RegisterHandler(HandlerType int, fun MessageHandlerFunc) { - s.handler[HandlerType] = fun -} - func getMessageData() *MessageData { return G_GameLogicPtr.MessageMgr.data.(*MessageData) } // ----------------------------------- 处理函数实现 --------------------------- +func NotifyAllPlayerMsg(m *msg.Msg) { + messageMgrData := getMessageData() + for PlayerId, node := range messageMgrData.PlayerList { + m.To = int(PlayerId) + go SendMsgToNodeAsync(m, node) + } +} + +func ChampshipInRankHandler(data *msg.Msg) (interface{}, error) { + G_GameLogicPtr.ChampshipMgr.inRank(data) + return nil, nil +} + func CatnipPartnerHandler(data *msg.Msg) (interface{}, error) { m, ok := data.Extra.(*CatnipPartner) if !ok { diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index d8dd02cc..70892f83 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -32,18 +32,20 @@ var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE} var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE} const ( - HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 - HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 - HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 - HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 - HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 - HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 - HANDLE_MOD_VAR_GET = 20007 // 获取变量 - HANDLE_MOD_VAR_SET = 20008 // 设置变量 - HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 - HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量 - HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量 - HANDLE_MOD_REPLY_PLAYER_MSG = 20012 // 回复玩家消息 + HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 + HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 + HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 + HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息 + HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息 + HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息 + HANDLE_MOD_VAR_GET = 20007 // 获取变量 + HANDLE_MOD_VAR_SET = 20008 // 设置变量 + HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴 + HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量 + HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量 + HANDLE_MOD_REPLY_PLAYER_MSG = 20012 // 回复玩家消息 + HANDLE_MDO_CHAMPSHIP_INRANK = 20013 // 锦标赛入榜 + HANDLE_MOD_CHAMPSHIP_RANK_INFO = 20014 // 锦标赛排名信息 ) const ( From 98fcc02e380c88e9014a3c54d6d8453c508ffa89 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:16:43 +0800 Subject: [PATCH 052/104] 5 --- src/server/game/champship_mgr.go | 37 +++++++++++--------------------- src/server/game/player_data.go | 3 ++- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index e245fc8d..7e1ba330 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -81,36 +81,28 @@ func (c *ChampshipMgr) Init() { } // 注册处理函数 c.init() - c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_GROUP, c.group) c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, c.inRank) c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_AI, c.ai) - c.RegisterHandler(msg.SERVER_ZERO_UPDATE, c.ZeroUpdate) c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY2, c.NotifyAll) Now := GoUtil.Now() ZeroTime := GoUtil.ZeroTimestamp() if c.getData().ZeroTime != ZeroTime { - c.ZeroUpdate(&msg.Msg{}) + c.ZeroUpdate() } Remain := Now - ZeroTime Remain1 := 1800 - Remain%1800 c.mDispatr.AfterFunc(time.Duration(Remain1)*time.Second, func() { // 30分钟后重新分组 - c.Send(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, - }) + c.group() }) c.mDispatr.AfterFunc(time.Duration(60)*time.Second, func() { - c.Send(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_AI, - }) + c.ai() }) c.mDispatr.AfterFunc(time.Duration(GoUtil.NextZeroTimestampDuration())*time.Second, func() { - c.Send(&msg.Msg{ - Type: msg.SERVER_ZERO_UPDATE, - }) + c.ZeroUpdate() }) } @@ -120,13 +112,14 @@ func (c *ChampshipMgr) NotifyAll(m *msg.Msg) (interface{}, error) { return nil, nil } -func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { +func (c *ChampshipMgr) ZeroUpdate() (interface{}, error) { log.Debug("ChampshipMgr ZeroUpdate") c.getData().ZeroTime = GoUtil.ZeroTimestamp() c.getData().PreRank = c.getData().Rank c.getData().PreRobot = c.getData().Robot c.getData().PreGroupInfo = c.getData().GroupInfo - + c.getData().AutoId = 0 + c.getData().RobotId = 1 c.getData().Robot = make(map[int]*ChampshipRobot, 0) c.getData().Rank = make(map[int][]*ChampshipRank, 0) c.getData().GroupInfo = make(map[int]int, 0) @@ -138,9 +131,7 @@ func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { }) c.NotifyPlayer() c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { - c.Send(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY2, - }) + c.ZeroUpdate() }) return nil, nil } @@ -157,7 +148,7 @@ func (c *ChampshipMgr) NotifyPlayer() { } } -func (c *ChampshipMgr) ai(m *msg.Msg) (interface{}, error) { +func (c *ChampshipMgr) ai() (interface{}, error) { ChampshipData := c.getData() Now := GoUtil.Now() for k, v := range ChampshipData.Rank { @@ -204,9 +195,7 @@ func (c *ChampshipMgr) ai(m *msg.Msg) (interface{}, error) { ChampshipData.Rank[k] = v } c.mDispatr.AfterFunc(time.Duration(60)*time.Second, func() { - c.Send(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_AI, - }) + c.ai() }) return nil, nil } @@ -319,11 +308,9 @@ func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank { } // 分组 -func (c *ChampshipMgr) group(m *msg.Msg) (interface{}, error) { +func (c *ChampshipMgr) group() (interface{}, error) { c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { // 30分钟后重新分组 - c.Send(&msg.Msg{ - Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, - }) + c.group() }) Now := GoUtil.Now() Zero := GoUtil.ZeroTimestamp() diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 6901c65f..03c9cb89 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1024,8 +1024,9 @@ func (p *Player) HandleInChampshipRank() { H: ChampshipMod.GetH(), N: ChampshipMod.GetN(), }, + HandleType: MsgMod.HANDLE_MDO_CHAMPSHIP_INRANK, } - G_GameLogicPtr.ChampshipMgrSend(m) + SendMsgToCenterAsync(m) } func (p *Player) AddLog(Uid int, Type int, Param string, Time int64) { From 2c33c24d42246bb756068b280df35f0687f983bd Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:21:59 +0800 Subject: [PATCH 053/104] 5 --- src/server/game/champship_mgr.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index 7e1ba330..574a685b 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -81,10 +81,6 @@ func (c *ChampshipMgr) Init() { } // 注册处理函数 c.init() - c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, c.inRank) - c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_AI, c.ai) - c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY2, c.NotifyAll) - Now := GoUtil.Now() ZeroTime := GoUtil.ZeroTimestamp() if c.getData().ZeroTime != ZeroTime { From 0036ff96c773e749be491c5db606c0fbe7d138c0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:41:52 +0800 Subject: [PATCH 054/104] 5 --- src/server/game/GameLogic.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 98b6f46c..d077785f 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -492,14 +492,16 @@ func G_getGameLogic() *GameLogic { G_GameLogicPtr.InitActivity() // 初始化活动 G_GameLogicPtr.GetVersion() // 获取版本号 G_GameLogicPtr.CreateLogManager() //加载日志管理器 - G_GameLogicPtr.CreateFriendMgr() //创建好友管理器 - G_GameLogicPtr.CreateRankMgr() //创建排行榜管理器 - G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 - G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 - G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 - G_GameLogicPtr.CreateBanMgr() // 创建封号管理器 - G_GameLogicPtr.CreateMessageMgr() // 创建消息管理器 - ClusterMgrInit() //初始化集群 + if conf.Server.ServerType == "center" { + G_GameLogicPtr.CreateFriendMgr() //创建好友管理器 + G_GameLogicPtr.CreateRankMgr() //创建排行榜管理器 + G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 + G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 + G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 + G_GameLogicPtr.CreateBanMgr() // 创建封号管理器 + } + G_GameLogicPtr.CreateMessageMgr() // 创建消息管理器 + ClusterMgrInit() //初始化集群 G_GameLogicPtr.StartTime = time.Now().Unix() // G_GameLogicPtr.CreateHttpManager() } From c0f02217c122c1914cb3c27c09c9493f01321c5e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 10:27:56 +0800 Subject: [PATCH 055/104] 6 --- src/server/db/Mysql.go | 23 +- src/server/db/SqlStruct.go | 2 +- src/server/game/GameLogic.go | 45 +- src/server/game/admin.go | 6 +- src/server/game/ban_mgr.go | 69 -- src/server/game/cluster_mgr.go | 8 - src/server/game/friend_mgr.go | 6 - src/server/game/game_type.go | 3 + src/server/game/message_handler.go | 4 +- src/server/game/mod/msg/Msg.go | 2 + src/server/game/player_back.go | 13 +- src/server/game/player_base_mod.go | 26 +- src/server/game/register_network_func.go | 37 +- src/server/game/var.go | 3 + src/server/msg/Gameapi.pb.go | 1147 +++++++++++----------- 15 files changed, 653 insertions(+), 741 deletions(-) delete mode 100644 src/server/game/ban_mgr.go diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index 9cb4b880..ea38de75 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -16,13 +16,6 @@ import ( "github.com/jmoiron/sqlx" ) -type user struct { - Id int `db:"user_id"` - Sex int `db:"sex"` - UserName string `db:"username"` - Email string `db:"email"` -} - var SqlDb *sqlx.DB var sqlDbMu sync.Mutex @@ -271,6 +264,22 @@ func GetPlayerBaseInfoFromDbByName(name string) *ResPlayerBaseInfo { return &res } +func GetPlayerBan(name string) int64 { + sqlStr := "SELECT ban FROM t_player_baseinfo WHERE user_name = ?" + var ban int64 + if err := SqlDb.Get(&ban, sqlStr, name); err != nil { + log.Debug("table: %s, sql :%s, exec failed, err:%v\n", "PlayerBaseInfo", sqlStr, err) + return 0 + } + return ban +} + +func UpdatePlayerBan(uid int64, ban int64) error { + sqlStr := "UPDATE t_player_baseinfo SET ban = ? WHERE dwUin = ?" + _, err := SqlDb.Exec(sqlStr, ban, uid) + return err +} + func UpdatePlayerBaseInfoName(oldName, newName string) error { sqlStr := "UPDATE t_player_baseinfo SET user_name = ? WHERE user_name = ?" _, err := SqlDb.Exec(sqlStr, newName, oldName) diff --git a/src/server/db/SqlStruct.go b/src/server/db/SqlStruct.go index ecfe8238..4191e033 100644 --- a/src/server/db/SqlStruct.go +++ b/src/server/db/SqlStruct.go @@ -37,7 +37,7 @@ type ResPlayerBaseInfo struct { Guild int32 `db:"guild"` PackUnlockCount int32 `db:"pack_unlock_count"` LastPlayTime int32 `db:"last_play_time"` - EnergyBuyCount int32 `db:"EnergyBuyCount"` + Ban int64 `db:"ban"` UserName string `db:"user_name"` NickName string `db:"nick_name"` LoginTime int32 `db:"login_time"` diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index d077785f..7be14116 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -83,7 +83,6 @@ type GameLogic struct { MailMgr *MailMgr // 邮件管理器 ChampshipMgr *ChampshipMgr // 锦标赛管理器 VarMgr *VarMgr // 变量管理器 - BanMgr *BanMgr // 封号管理器 StartTime int64 // 服务器启动时间 MessageMgr *MessageMgr // 消息管理器 } @@ -193,7 +192,6 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool { playerInfo.MusicCode = 1 playerInfo.Guild = 1 playerInfo.PackUnlockCount = 5 - playerInfo.EnergyBuyCount = 0 playerInfo.UserName = ad.Db_AccountInfo.UserName playerInfo.LoginTime = (int32)(time.Now().Unix()) playerInfo.LogoutTime = 0 @@ -359,26 +357,6 @@ func (ad *GameLogic) VarMgrCall(m *MsgMod.Msg) interface{} { return result } -// 封号管理器 -func (ad *GameLogic) CreateBanMgr() { - ad.BanMgr = &BanMgr{ - ServerMod: new(ServerMod), - } - ad.BanMgr.Init() -} - -func (ad *GameLogic) BanMgrSend(m *MsgMod.Msg) { - ad.BanMgr.Send(m) -} - -func (ad *GameLogic) BanMgrCall(m *MsgMod.Msg) interface{} { - result, err := ad.BanMgr.Call(m) - if err != nil { - return nil - } - return result -} - func (ad *GameLogic) GetSimplePlayerByUid(Id int) *PlayerSimpleData { if Id == 0 { return nil @@ -494,12 +472,11 @@ func G_getGameLogic() *GameLogic { G_GameLogicPtr.CreateLogManager() //加载日志管理器 if conf.Server.ServerType == "center" { G_GameLogicPtr.CreateFriendMgr() //创建好友管理器 - G_GameLogicPtr.CreateRankMgr() //创建排行榜管理器 - G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 - G_GameLogicPtr.CreateBanMgr() // 创建封号管理器 } + G_GameLogicPtr.CreateRankMgr() //创建排行榜管理器 + G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 G_GameLogicPtr.CreateMessageMgr() // 创建消息管理器 ClusterMgrInit() //初始化集群 G_GameLogicPtr.StartTime = time.Now().Unix() @@ -676,15 +653,14 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqId2Verify", ReqId2Verify) // 身份证验证 // 玩家 RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo) - RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字 - RegisterMsgProcessFunc("ReqLang", ReqLang) // 设置语言 - RegisterMsgProcessFunc("ReqSetPetName", ReqSetPetName) // 设置宠物名字 - RegisterMsgProcessFunc("ReqSetFacebookUrl", ReqSetFacebookUrl) // 设置facebook地址 - RegisterMsgProcessFunc("ReqPlayerBaseInfo", ReqPlayerBaseInfofunction) // 请求玩家基本信息 - RegisterMsgProcessFunc("UpdateBaseItemInfo", UpdateBaseItemInfofunction) // 保存引导 - RegisterMsgProcessFunc("ReqKv", ReqKv) // 保存客户端数据 - RegisterMsgProcessFunc("ReqGetEnergyByAD", ReqGetEnergyByAD) // 看广告获取能量 - RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) // 购买能量 + RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字 + RegisterMsgProcessFunc("ReqLang", ReqLang) // 设置语言 + RegisterMsgProcessFunc("ReqSetPetName", ReqSetPetName) // 设置宠物名字 + RegisterMsgProcessFunc("ReqSetFacebookUrl", ReqSetFacebookUrl) // 设置facebook地址 + RegisterMsgProcessFunc("ReqPlayerBaseInfo", ReqPlayerBaseInfofunction) // 请求玩家基本信息 + RegisterMsgProcessFunc("ReqKv", ReqKv) // 保存客户端数据 + RegisterMsgProcessFunc("ReqGetEnergyByAD", ReqGetEnergyByAD) // 看广告获取能量 + RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) // 购买能量 // #region 棋盘 RegisterMsgProcessFunc("ReqPlayerChessData", ReqPlayerChessDataFunc) RegisterMsgProcessFunc("UpdatePlayerChessData", UpdatePlayerChessDataFunc) // 更新棋盘数据 @@ -954,7 +930,6 @@ func Destroy() { G_GameLogicPtr.ChampshipMgr.SaveData() G_GameLogicPtr.MailMgr.SaveData() G_GameLogicPtr.VarMgr.SaveData() - G_GameLogicPtr.BanMgr.SaveData() G_GameLogicPtr.MLogManager.Close() } log.Debug("服务器下线完成") diff --git a/src/server/game/admin.go b/src/server/game/admin.go index 45361af8..657fd57f 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -100,7 +100,7 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg return } - if G_GameLogicPtr.BanMgr.IsBanned(playerbaseinfo.DwUin) { + if playerbaseinfo.Ban > GoUtil.Now() || playerbaseinfo.Ban == -1 { ResLogin = &msg.ResLogin{ ResultCode: MergeConst.Protocol_Error_Account_Ban, DwUin: 0, @@ -176,7 +176,7 @@ func AdminPlayerInfo(args []interface{}) error { res["Cumulative"] = player.PlayMod.getBaseMod().Cumulative res["RegisterTime"] = player.GetPlayerBaseMod().GetRegisterTime() res["TodayCumulative"] = player.PlayMod.getBaseMod().TodayCumulative - res["Ban"] = G_GameLogicPtr.BanMgr.GetBanInfo(player.M_DwUin).EndTime + res["Ban"] = db.GetPlayerBan(player.PlayMod.getBaseMod().Account) if online { res["Cumulative"] = int64(player.PlayMod.getBaseMod().Cumulative) + GoUtil.Now() - int64(player.PlayMod.getBaseMod().LoginTime) res["TodayCumulative"] = int64(player.PlayMod.getBaseMod().TodayCumulative) + GoUtil.Now() - int64(player.PlayMod.getBaseMod().LoginTime) @@ -283,7 +283,7 @@ func ReqAdminBan(args []interface{}) error { res := make(map[string]interface{}) res["Code"] = 0 res["Msg"] = "ok" - G_GameLogicPtr.BanMgr.BanUser(req.Uid, int64(req.Time), req.Reason) + db.UpdatePlayerBan(req.Uid, int64(req.Time)) AdminPlayerBack(a, res) return nil } diff --git a/src/server/game/ban_mgr.go b/src/server/game/ban_mgr.go deleted file mode 100644 index 0bc22fb0..00000000 --- a/src/server/game/ban_mgr.go +++ /dev/null @@ -1,69 +0,0 @@ -package game - -import ( - "encoding/gob" - GoUtil "server/game_util" -) - -type BanMgr struct { - *ServerMod -} - -type BanData struct { - NewBanList map[int64]*BanInfo // 新增的封禁列表 -} - -type BanInfo struct { - UserId int64 // 玩家ID - EndTime int64 // 封禁结束时间,0表示永久封禁 - Reason string // 封禁原因 -} - -func (f *BanMgr) Init() { - gob.Register(&BanData{}) - f.key = BAN_MGR_KEY - f.data = &BanData{ - NewBanList: make(map[int64]*BanInfo), - } - // 注册处理函数 - f.init() - if f.data.(*BanData).NewBanList == nil { - f.data.(*BanData).NewBanList = make(map[int64]*BanInfo) - } -} - -func (f *BanMgr) IsBanned(userId int64) bool { - if f.data.(*BanData).NewBanList == nil { - return false - } - Info, banned := f.data.(*BanData).NewBanList[userId] - if !banned { - return false - } - return Info.EndTime > GoUtil.Now() || Info.EndTime == -1 // 如果EndTime为0,表示永久封禁 -} - -func (f *BanMgr) GetBanInfo(userId int64) *BanInfo { - if f.data.(*BanData).NewBanList == nil { - return &BanInfo{} - } - Info, banned := f.data.(*BanData).NewBanList[userId] - if !banned { - return &BanInfo{} - } - return Info -} - -func (f *BanMgr) BanUser(userId int64, endTime int64, reason string) { - f.data.(*BanData).NewBanList[userId] = &BanInfo{ - UserId: userId, - EndTime: endTime, - Reason: reason, - } - f.SaveData() -} - -func (f *BanMgr) UnbanUser(userId int64) { - delete(f.data.(*BanData).NewBanList, userId) - f.SaveData() -} diff --git a/src/server/game/cluster_mgr.go b/src/server/game/cluster_mgr.go index 6f70421d..d3272ac6 100644 --- a/src/server/game/cluster_mgr.go +++ b/src/server/game/cluster_mgr.go @@ -17,14 +17,6 @@ func ClusterMgrInit() { } -func clusterHandlerProcess(m *msg.Msg) { - if fun, ok := clusterHandler[m.Type]; ok { - fun(m) - } else { - FriendMgrSend(m) - } -} - func RegisterClusterHandler(t int, fun func(*msg.Msg) error) { clusterHandler[t] = fun } diff --git a/src/server/game/friend_mgr.go b/src/server/game/friend_mgr.go index bb2b84d4..912a1992 100644 --- a/src/server/game/friend_mgr.go +++ b/src/server/game/friend_mgr.go @@ -131,12 +131,6 @@ func (f *FriendMgr) sendToPlayerOnline(m *msg.Msg) (interface{}, error) { return nil, nil } -// 同步信息 -func (f *FriendMgr) sync(m *msg.Msg) (interface{}, error) { - data := f.getData().List[m.From] - return data, nil -} - // 发送消息给玩家 func sendToPlayer(m *msg.Msg) error { p := G_GameLogicPtr.GetPlayer(int64(m.To)) diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index db6f40e2..23171816 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -5,6 +5,7 @@ import ( "server/game/mod/friend" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/msg" + proto "server/msg" "sync" ) @@ -122,4 +123,6 @@ func init() { gob.Register(CatnipMsg{}) gob.Register(&CatnipLock{}) gob.Register(CRank{}) + gob.Register(&proto.ResChampshipRank{}) + gob.Register(&proto.ResChampshipPreRank{}) } diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 0c21aa20..18fc979d 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -419,7 +419,7 @@ func (p *Player) handle(m *msg.Msg) error { ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Info: &proto.ResFriendLog{ + Info: &proto.ResFriendReply{ Player: PlayerSimpleData, Param: ReplyInfo.Param, Type: int32(ReplyInfo.Type), @@ -478,7 +478,7 @@ func (p *Player) handle(m *msg.Msg) error { ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ - Info: &proto.ResFriendLog{ + Info: &proto.ResFriendReply{ Player: PlayerSimpleData, Param: ReplyInfo.Param, Type: int32(ReplyInfo.Type), diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 70892f83..ed3ffd8a 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -46,6 +46,8 @@ const ( HANDLE_MOD_REPLY_PLAYER_MSG = 20012 // 回复玩家消息 HANDLE_MDO_CHAMPSHIP_INRANK = 20013 // 锦标赛入榜 HANDLE_MOD_CHAMPSHIP_RANK_INFO = 20014 // 锦标赛排名信息 + HANDLE_MOD_CHAMPSHIP_RANK_LIST = 20015 // 锦标赛排行榜 + HANDLE_MOD_CHAMPSHIP_PRE_RANK = 20016 // 锦标赛上期排名 ) const ( diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 906ba679..6cf5c34b 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -5,6 +5,7 @@ import ( playroomCfg "server/conf/playroom" "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" + "server/game/mod/msg" GoUtil "server/game_util" proto "server/msg" ) @@ -294,8 +295,16 @@ func (p *Player) ChargeBackData() { func (p *Player) BackChampship() { ChampshipMod := p.PlayMod.getChampshipMod() - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(p.M_DwUin)) - MyPreRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(int(p.M_DwUin)) + MyRank := 0 + MyPreRank := 0 + res, _ := SendMsgToCenterSync(&msg.Msg{ + From: int(p.M_DwUin), + HandleType: msg.HANDLE_MOD_CHAMPSHIP_RANK_INFO, + }) + if res != nil { + MyRank = res.Extra.([]int)[0] + MyPreRank = res.Extra.([]int)[1] + } p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank)) } diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index bc236c2a..ce9ed427 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -43,7 +43,7 @@ func (p *PlayerBaseData) BackUp() msg.ResPlayerBaseInfo { Guild: p.Data.Guild, PackUnlockCount: p.Data.PackUnlockCount, LastPlayTime: p.Data.LastPlayTime, - EnergyBuyCount: p.Data.EnergyBuyCount, + Ban: p.Data.Ban, LoginTime: p.Data.LoginTime, UserName: p.Data.UserName, LogoutTime: p.Data.LogoutTime, @@ -70,7 +70,7 @@ func (p *PlayerBaseData) Recover(old *PlayerBaseData) *PlayerBaseData { Guild: p.Data.Guild, PackUnlockCount: p.Data.PackUnlockCount, LastPlayTime: p.Data.LastPlayTime, - EnergyBuyCount: p.Data.EnergyBuyCount, + Ban: p.Data.Ban, LoginTime: p.Data.LoginTime, UserName: p.Data.UserName, LogoutTime: p.Data.LogoutTime, @@ -104,7 +104,7 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { p.Data.Guild = sqlStruck.Guild p.Data.PackUnlockCount = sqlStruck.PackUnlockCount p.Data.LastPlayTime = sqlStruck.LastPlayTime - p.Data.EnergyBuyCount = sqlStruck.EnergyBuyCount + p.Data.Ban = sqlStruck.Ban p.Data.UserName = sqlStruck.UserName p.Data.LogoutTime = sqlStruck.LogoutTime p.Data.Todayolinetime = sqlStruck.Todayolinetime @@ -132,7 +132,7 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { sqlStruck.Guild = p.Data.Guild sqlStruck.PackUnlockCount = p.Data.PackUnlockCount sqlStruck.LastPlayTime = p.Data.LastPlayTime - sqlStruck.EnergyBuyCount = p.Data.EnergyBuyCount + sqlStruck.Ban = int64(p.Data.Ban) sqlStruck.LoginTime = int32(BaseMod.LoginTime) sqlStruck.UserName = p.Data.UserName sqlStruck.LogoutTime = int32(BaseMod.LogoutTime) @@ -163,22 +163,6 @@ func (p *PlayerBaseData) GetMaxEnergy() int { } // 更新游戏道具 -func (p *PlayerBaseData) UpdateBaseItemInfo(update *msg.UpdateBaseItemInfo) { - for k, v := range update.MUpdateItem { - switch k { - case 4: - p.Data.EnergyBuyCount = v - case 8: - p.Data.Guild = v - case 9: - p.Data.PackUnlockCount = v - case 10: - p.Data.EmitOrderCnt = v - case 11: - p.Data.LastPlayTime = v - } - } -} func (p *PlayerBaseData) ReqRemoveAd(player *Player, buf []byte) { req := &msg.ReqRemoveAd{} @@ -654,7 +638,7 @@ func (p *PlayerBaseData) GetDataByUid(Uid interface{}) bool { p.Data.Guild = sqlStruck.Guild p.Data.PackUnlockCount = sqlStruck.PackUnlockCount p.Data.LastPlayTime = sqlStruck.LastPlayTime - p.Data.EnergyBuyCount = sqlStruck.EnergyBuyCount + p.Data.Ban = sqlStruck.Ban p.Data.LoginTime = sqlStruck.LoginTime p.Data.UserName = sqlStruck.UserName p.Data.LogoutTime = sqlStruck.LogoutTime diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 34a11a0d..4f1c0e49 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -119,17 +119,6 @@ func ReqRemoveAdFunc(player *Player, buf []byte) error { return nil } -// 更新玩家物品 -func UpdateBaseItemInfofunction(player *Player, buf []byte) error { - detail := &msg.UpdateBaseItemInfo{} - err := proto.Unmarshal(buf, detail) - if err != nil { - return err - } - player.PlayerBaseMod.UpdateBaseItemInfo(detail) - return nil -} - // 请求玩家棋盘信息 func ReqPlayerChessDataFunc(player *Player, buf []byte) error { detail := &msg.ReqPlayerChessData{} @@ -2575,7 +2564,18 @@ func ReqChampshipRank(player *Player, buf []byte) error { if err != nil { return err } - m := G_GameLogicPtr.ChampshipMgr.GetRankMsg(int(player.M_DwUin)) + res, err := SendMsgToCenterSync(&MsqMod.Msg{ + From: int(player.M_DwUin), + HandleType: MsqMod.HANDLE_MOD_CHAMPSHIP_RANK_LIST, + }) + if err != nil { + return err + } + if res == nil { + player.PushClientRes(&msg.ResChampshipRank{}) + return nil + } + m := res.Extra.(*msg.ResChampshipRank) player.PushClientRes(m) return nil } @@ -2586,7 +2586,18 @@ func ReqChampshipPreRank(player *Player, buf []byte) error { if err != nil { return err } - m := G_GameLogicPtr.ChampshipMgr.GetPreRankMsg(int(player.M_DwUin)) + res, err := SendMsgToCenterSync(&MsqMod.Msg{ + From: int(player.M_DwUin), + HandleType: MsqMod.HANDLE_MOD_CHAMPSHIP_PRE_RANK, + }) + if err != nil { + return err + } + if res == nil { + player.PushClientRes(&msg.ResChampshipPreRank{}) + return nil + } + m := res.Extra.(*msg.ResChampshipPreRank) player.PushClientRes(m) return nil } diff --git a/src/server/game/var.go b/src/server/game/var.go index d33b04a6..a9702673 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -141,5 +141,8 @@ func (p *Player) GetCatnipPartner(Uid int) []int { log.Error("GetVarData err : %s", err) return nil } + if data == nil { + return nil + } return GoUtil.IntSlice(data.Extra) } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index e82fd23d..c0f9515b 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -358,44 +358,44 @@ type RES_CODE int32 const ( RES_CODE_FAIL RES_CODE = 0 RES_CODE_SUCCESS RES_CODE = 1 - RES_CODE_Protocol_Error_Account_Exist RES_CODE = 2 // 账号已存在 - RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 3 // 账号或密码错误 - RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 4 // 账号或密码过短 - RES_CODE_Protocol_Error_Account_Fail RES_CODE = 5 // 账号操作失败 - RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 6 // 账号不存在 - RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 7 // 验证码错误 - RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 8 // 设备号错误 - RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 9 // 未实名认证 - RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 10 // 实名认证失败 + RES_CODE_Protocol_Error_Account_Exist RES_CODE = 100 // 账号已存在 + RES_CODE_Protocol_Error_Account_OR_PWD_ERROR RES_CODE = 101 // 账号或密码错误 + RES_CODE_Protocol_Error_Account_OR_PWD_Short RES_CODE = 102 // 账号或密码过短 + RES_CODE_Protocol_Error_Account_Fail RES_CODE = 103 // 账号操作失败 + RES_CODE_Protocol_Error_Account_NoExsit RES_CODE = 104 // 账号不存在 + RES_CODE_Protocol_Error_Account_Code_Error RES_CODE = 105 // 验证码错误 + RES_CODE_Protocol_Error_Account_Device_Error RES_CODE = 106 // 设备号错误 + RES_CODE_Protocol_Error_Id_Not_Verify RES_CODE = 107 // 未实名认证 + RES_CODE_Protocol_Error_Id_Verify_Error RES_CODE = 108 // 实名认证失败 ) // Enum value maps for RES_CODE. var ( RES_CODE_name = map[int32]string{ - 0: "FAIL", - 1: "SUCCESS", - 2: "Protocol_Error_Account_Exist", - 3: "Protocol_Error_Account_OR_PWD_ERROR", - 4: "Protocol_Error_Account_OR_PWD_Short", - 5: "Protocol_Error_Account_Fail", - 6: "Protocol_Error_Account_NoExsit", - 7: "Protocol_Error_Account_Code_Error", - 8: "Protocol_Error_Account_Device_Error", - 9: "Protocol_Error_Id_Not_Verify", - 10: "Protocol_Error_Id_Verify_Error", + 0: "FAIL", + 1: "SUCCESS", + 100: "Protocol_Error_Account_Exist", + 101: "Protocol_Error_Account_OR_PWD_ERROR", + 102: "Protocol_Error_Account_OR_PWD_Short", + 103: "Protocol_Error_Account_Fail", + 104: "Protocol_Error_Account_NoExsit", + 105: "Protocol_Error_Account_Code_Error", + 106: "Protocol_Error_Account_Device_Error", + 107: "Protocol_Error_Id_Not_Verify", + 108: "Protocol_Error_Id_Verify_Error", } RES_CODE_value = map[string]int32{ "FAIL": 0, "SUCCESS": 1, - "Protocol_Error_Account_Exist": 2, - "Protocol_Error_Account_OR_PWD_ERROR": 3, - "Protocol_Error_Account_OR_PWD_Short": 4, - "Protocol_Error_Account_Fail": 5, - "Protocol_Error_Account_NoExsit": 6, - "Protocol_Error_Account_Code_Error": 7, - "Protocol_Error_Account_Device_Error": 8, - "Protocol_Error_Id_Not_Verify": 9, - "Protocol_Error_Id_Verify_Error": 10, + "Protocol_Error_Account_Exist": 100, + "Protocol_Error_Account_OR_PWD_ERROR": 101, + "Protocol_Error_Account_OR_PWD_Short": 102, + "Protocol_Error_Account_Fail": 103, + "Protocol_Error_Account_NoExsit": 104, + "Protocol_Error_Account_Code_Error": 105, + "Protocol_Error_Account_Device_Error": 106, + "Protocol_Error_Id_Not_Verify": 107, + "Protocol_Error_Id_Verify_Error": 108, } ) @@ -691,19 +691,19 @@ const ( TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币 TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集 TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 赠送充值礼物 - TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVE TIME_LINE_TYPE = 19 // 收到充值礼物 - TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单请求 - TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // npc成为好友 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 充值赠送 + TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 19 // 充值接受 + TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单 + TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // NPC成为好友 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名 - TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 好友宝藏 + TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 宠物宝藏 TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功 TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求 TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册 - TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 好友宝藏帮助 + TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 宠物宝藏帮助 TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力 TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力 ) @@ -728,7 +728,7 @@ var ( 16: "LOG_TYPE_HANDBOOK", 17: "LOG_TYPE_HANDBOOK_UPVOTE", 18: "LOG_TYPE_CHARGE_SEND", - 19: "LOG_TYPE_CHARGE_RECEIVE", + 19: "LOG_TYPE_CHARGE_RECEIVED", 20: "LOG_TYPE_WISH", 21: "LOG_TYPE_FRIEND_BECOME_NPC", 22: "LOG_TYPE_PLAYROOM_UPVOTE", @@ -761,7 +761,7 @@ var ( "LOG_TYPE_HANDBOOK": 16, "LOG_TYPE_HANDBOOK_UPVOTE": 17, "LOG_TYPE_CHARGE_SEND": 18, - "LOG_TYPE_CHARGE_RECEIVE": 19, + "LOG_TYPE_CHARGE_RECEIVED": 19, "LOG_TYPE_WISH": 20, "LOG_TYPE_FRIEND_BECOME_NPC": 21, "LOG_TYPE_PLAYROOM_UPVOTE": 22, @@ -1183,7 +1183,7 @@ func (FRIEND_REPLY_HANDLE_ERR_TYPE) EnumDescriptor() ([]byte, []int) { type ClientReq struct { state protoimpl.MessageState `protogen:"open.v1"` - Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID; + Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` @@ -1994,7 +1994,7 @@ type ReqRegisterAccount struct { UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2107,9 +2107,9 @@ type ReqLogin struct { state protoimpl.MessageState `protogen:"open.v1"` UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码; - Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识; - Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式; + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 + Device string `protobuf:"bytes,4,opt,name=Device,proto3" json:"Device,omitempty"` // 设备标识 + Type LOGIN_TYPE `protobuf:"varint,5,opt,name=type,proto3,enum=tutorial.LOGIN_TYPE" json:"type,omitempty"` // 登录方式 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2181,7 +2181,7 @@ func (x *ReqLogin) GetType() LOGIN_TYPE { type ReqLoginCode struct { state protoimpl.MessageState `protogen:"open.v1"` - TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码; + TelPhone string `protobuf:"bytes,1,opt,name=TelPhone,proto3" json:"TelPhone,omitempty"` // 手机号码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2225,9 +2225,9 @@ func (x *ReqLoginCode) GetTelPhone() string { type ResLoginCode struct { state protoimpl.MessageState `protogen:"open.v1"` - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; - Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试; + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` // 0 成功 其他失败 + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 + Code string `protobuf:"bytes,3,opt,name=Code,proto3" json:"Code,omitempty"` // 验证码 TODO 测试 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2285,8 +2285,8 @@ func (x *ResLoginCode) GetCode() string { type ReqId2Verify struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码; - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 身份证号码 + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 姓名 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2337,8 +2337,8 @@ func (x *ReqId2Verify) GetName() string { type ResId2Verify struct { state protoimpl.MessageState `protogen:"open.v1"` - ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败; - Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` // 0 成功 其他失败 + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2394,7 +2394,7 @@ type ResLogin struct { DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` - Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息; + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` // 错误信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2467,7 +2467,7 @@ func (x *ResLogin) GetMsg() string { type ReqChangePassword struct { state protoimpl.MessageState `protogen:"open.v1"` UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码; + OldPwd string `protobuf:"bytes,2,opt,name=OldPwd,proto3" json:"OldPwd,omitempty"` // -1表示不校验旧密码 NewPwd string `protobuf:"bytes,3,opt,name=NewPwd,proto3" json:"NewPwd,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -2628,7 +2628,7 @@ type ResPlayerBaseInfo struct { Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` - EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` + Ban int64 `protobuf:"varint,13,opt,name=ban,proto3" json:"ban,omitempty"` UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` @@ -2758,9 +2758,9 @@ func (x *ResPlayerBaseInfo) GetLastPlayTime() int32 { return 0 } -func (x *ResPlayerBaseInfo) GetEnergyBuyCount() int32 { +func (x *ResPlayerBaseInfo) GetBan() int64 { if x != nil { - return x.EnergyBuyCount + return x.Ban } return 0 } @@ -2890,8 +2890,8 @@ type ResPlayerAsset struct { Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` - PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验; - LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数; + PExp int32 `protobuf:"varint,10,opt,name=PExp,proto3" json:"PExp,omitempty"` // 玩家经验 + LoginDay int32 `protobuf:"varint,11,opt,name=LoginDay,proto3" json:"LoginDay,omitempty"` // 登录天数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3461,8 +3461,8 @@ type ResPlayerChessInfo struct { ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` - PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件; - RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励; + PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件 + RetireReward []string `protobuf:"bytes,7,rep,name=RetireReward,proto3" json:"RetireReward,omitempty"` // 退役奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3548,7 +3548,7 @@ func (x *ResPlayerChessInfo) GetRetireReward() []string { type ReqGetChessRetireReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3594,7 +3594,7 @@ type ResGetChessRetireReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=code,proto3,enum=tutorial.RES_CODE" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C...; + Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` // 发射器系列ID:A、B、C... unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3652,7 +3652,7 @@ func (x *ResGetChessRetireReward) GetId() string { type PartBag struct { state protoimpl.MessageState `protogen:"open.v1"` - PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子; + PartBagGrids []*PartBagGrid `protobuf:"bytes,1,rep,name=PartBagGrids,proto3" json:"PartBagGrids,omitempty"` //已解锁零件背包格子 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3696,8 +3696,8 @@ func (x *PartBag) GetPartBagGrids() []*PartBagGrid { type PartBagGrid struct { state protoimpl.MessageState `protogen:"open.v1"` - PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量; + PartId int32 `protobuf:"varint,1,opt,name=PartId,proto3" json:"PartId,omitempty"` //零件ID + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3748,7 +3748,7 @@ func (x *PartBagGrid) GetCount() int32 { type ReqPutPartInBag struct { state protoimpl.MessageState `protogen:"open.v1"` - ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID; + ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //零件ID MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -3857,7 +3857,7 @@ type ChessHandle struct { Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` - ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4361,9 +4361,9 @@ type ReqChessEx struct { OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡; + Type CHESS_EX_TYPE `protobuf:"varint,4,opt,name=Type,proto3,enum=tutorial.CHESS_EX_TYPE" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 限时事件气泡 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星; + CostStar int32 `protobuf:"varint,6,opt,name=CostStar,proto3" json:"CostStar,omitempty"` // 消耗星星 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4603,7 +4603,7 @@ type ReqPlayroomOutline struct { OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线; + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4729,9 +4729,9 @@ func (x *ResPlayroomOutline) GetMsg() string { // 棋盘背包 type ChessBag struct { state protoimpl.MessageState `protogen:"open.v1"` - ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子; - ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数; - ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数; + ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子 + ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数 + ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4789,9 +4789,9 @@ func (x *ChessBag) GetChessFreeCnt() int32 { type ChessBagGrid struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID; - ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID; - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID + ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4852,7 +4852,7 @@ type ReqPutChessInBag struct { state protoimpl.MessageState `protogen:"open.v1"` ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` - EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID; + EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5369,7 +5369,7 @@ type ResPlayerBriefProfileData struct { NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` - SetEmoji map[int32]int32 `protobuf:"bytes,8,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5560,7 +5560,7 @@ func (x *ResSetEnergyMul) GetMsg() string { // 设置能量倍数 type ReqLang struct { state protoimpl.MessageState `protogen:"open.v1"` - Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文; + Lang LANG_TYPE `protobuf:"varint,1,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 0 中文 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5656,11 +5656,11 @@ func (x *ResLang) GetMsg() string { type BaseInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数; - IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店; - EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数; - EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数; - Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文; + EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数 + IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店 + EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数 + EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数 + Lang LANG_TYPE `protobuf:"varint,5,opt,name=Lang,proto3,enum=tutorial.LANG_TYPE" json:"Lang,omitempty"` // 语言 1 英文 2 中文 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5775,12 +5775,12 @@ type UserInfo struct { DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` - Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录; - PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; - EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表; - SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像; - IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码; - AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码; + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录 + PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 + EmojiList []*EmojiInfo `protobuf:"bytes,10,rep,name=EmojiList,proto3" json:"EmojiList,omitempty"` // 表情列表 + SetEmoji map[int32]int32 `protobuf:"bytes,11,rep,name=SetEmoji,proto3" json:"SetEmoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 已设置的头像 + IdNum string `protobuf:"bytes,12,opt,name=IdNum,proto3" json:"IdNum,omitempty"` // 身份证号码 + AddCode string `protobuf:"bytes,13,opt,name=AddCode,proto3" json:"AddCode,omitempty"` // 邀请码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6103,7 +6103,7 @@ func (x *ResSetPetName) GetMsg() string { // 购买能量 type ReqBuyEnergy struct { state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力; + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6437,7 +6437,7 @@ func (x *HandbookInfo) GetStatus() int32 { type Handbook struct { state protoimpl.MessageState `protogen:"open.v1"` Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` - Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励; + Collect []string `protobuf:"bytes,2,rep,name=Collect,proto3" json:"Collect,omitempty"` // 全收集奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6488,7 +6488,7 @@ func (x *Handbook) GetCollect() []string { type RegHandbookAllReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C"; + Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` // "棋子系列 A B C" unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6586,7 +6586,7 @@ type ReqRewardOrder struct { state protoimpl.MessageState `protogen:"open.v1"` OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型; + ActType []int32 `protobuf:"varint,3,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6921,7 +6921,7 @@ type Order struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7033,8 +7033,8 @@ type ResDecorateInfo struct { state protoimpl.MessageState `protogen:"open.v1"` AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` - RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励; - Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件; + RewardArea []int32 `protobuf:"varint,3,rep,packed,name=RewardArea,proto3" json:"RewardArea,omitempty"` // 已领取区域奖励 + Parts []*DecoratePart `protobuf:"bytes,4,rep,name=Parts,proto3" json:"Parts,omitempty"` // 零件 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7100,7 +7100,7 @@ func (x *ResDecorateInfo) GetParts() []*DecoratePart { type DecoratePart struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 零件 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7583,20 +7583,20 @@ func (*ReqCardInfo) Descriptor() ([]byte, []int) { type ResCardInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表; - ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级; - Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取; - CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励; - ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数; - ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; - EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间; - ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; - Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次; - Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取; - SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励; + CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表 + ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级 + Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取 + CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励 + ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数 + ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 + AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 + EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间 + ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid + ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid + GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 + Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次 + Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 CardId => Status 1:已解锁 2:已领取 + SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7731,11 +7731,11 @@ func (x *ResCardInfo) GetSeasonFirst() bool { type ResNotifyCardTimes struct { state protoimpl.MessageState `protogen:"open.v1"` - ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数; - ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数; - ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid; - ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid; - GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数; + ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数 + ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 + ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid + ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid + GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8001,8 +8001,8 @@ func (x *ResCardHandbookReward) GetCardId() int32 { // 万能卡兑换 type ReqMasterCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡; - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡 + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8510,7 +8510,7 @@ func (x *ResCardGive) GetMsg() string { // 同意请求卡牌 type ReqAgreeCardGive struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8615,7 +8615,7 @@ func (x *ResAgreeCardGive) GetId() string { // 拒绝请求卡牌 type ReqRefuseCardGive struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id; + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8722,7 +8722,7 @@ type ReqCardSend struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8835,7 +8835,7 @@ type ReqCardExchange struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9106,7 +9106,7 @@ type ResAgreeCardExchange struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9430,7 +9430,7 @@ type ResGetFriendCard struct { Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` - Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9539,8 +9539,8 @@ func (*ReqGetGoldCard) Descriptor() ([]byte, []int) { type ResGetGoldCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡; - Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡; + Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡 + Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9873,9 +9873,9 @@ func (x *ResGuideInfo) GetReward() map[int32]int32 { type ResItemPop struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具; - CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包; - Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签; + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具 + CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包 + Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9992,7 +9992,7 @@ func (x *ItemInfo) GetNum() int32 { type CardPack struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -10045,10 +10045,10 @@ func (x *CardPack) GetCard() []int32 { // 新手任务 type ResGuideTask struct { state protoimpl.MessageState `protogen:"open.v1"` - ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励; - Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间; + ActiveReward []int32 `protobuf:"varint,1,rep,packed,name=ActiveReward,proto3" json:"ActiveReward,omitempty"` //已领取活跃度奖励 + Task map[int32]*GuideTask `protobuf:"bytes,2,rep,name=Task,proto3" json:"Task,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + UnlockTime int32 `protobuf:"varint,4,opt,name=UnlockTime,proto3" json:"UnlockTime,omitempty"` // 功能解锁时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10113,9 +10113,9 @@ func (x *ResGuideTask) GetUnlockTime() int32 { type GuideTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 + Progress *QuestProgress `protobuf:"bytes,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` //任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10173,7 +10173,7 @@ func (x *GuideTask) GetId() int32 { type ReqGetGuideTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10219,7 +10219,7 @@ type ResGetGuideTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10277,7 +10277,7 @@ func (x *ResGetGuideTaskReward) GetId() int32 { type ReqGetGuideActiveReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10323,7 +10323,7 @@ type ResGetGuideActiveReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 进度奖励id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10382,11 +10382,11 @@ func (x *ResGetGuideActiveReward) GetId() int32 { // 日常任务 type ResDailyTask struct { state protoimpl.MessageState `protogen:"open.v1"` - WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励; - DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳; - WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳; + WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //周奖励 + DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //任务进度 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳 + WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10458,9 +10458,9 @@ func (x *ResDailyTask) GetWeekEnd() int32 { type DailyWeek struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取; - NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度; + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 + Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取 + NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10518,12 +10518,12 @@ func (x *DailyWeek) GetNeedActive() int32 { type DailyTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取; - UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁; - Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度; - Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id; - Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 + UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁 + Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 + Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //任务id + Index int32 `protobuf:"varint,6,opt,name=Index,proto3" json:"Index,omitempty"` //任务索引 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10602,11 +10602,11 @@ func (x *DailyTask) GetIndex() int32 { type QuestProgress struct { state protoimpl.MessageState `protogen:"open.v1"` - Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度; - Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标; - Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成; - Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数; + Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度 + Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标 + Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 + Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11012,9 +11012,9 @@ func (x *ResFaceInfo) GetSetId() int32 { type FaceInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11220,9 +11220,9 @@ func (x *ResAvatarInfo) GetSetId() int32 { type AvatarInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 头像框id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11377,9 +11377,9 @@ func (x *ResSetAvatar) GetMsg() string { // 表情 Emoji type EmojiInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11438,8 +11438,8 @@ func (x *EmojiInfo) GetAddTime() int64 { // 设置表情 type ReqSetEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 表情Id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 表情类型 Greeting = 0, Happy = 1, Taunt = 2, Fail = 3 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11543,10 +11543,10 @@ func (x *ResSetEmoji) GetMsg() string { // 七日签到 type ResSevenLogin struct { state protoimpl.MessageState `protogen:"open.v1"` - WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励; - MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励; - Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度; - IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回; + WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励 + MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励 + Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 + IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11611,11 +11611,11 @@ func (x *ResSevenLogin) GetIsBack() bool { type SevenLoginReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1; - Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2; - Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取; - Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id; + Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1 + Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2 + Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3 + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取 + Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -11926,13 +11926,13 @@ func (x *ResActivity) GetActiveList() []*ActivityInfo { type ActivityInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型; - StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束; - Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题; - Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型 + StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束 + Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题 + Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12019,7 +12019,7 @@ func (x *ActivityInfo) GetRed() int32 { // 领取活动奖励 type ReqActivityReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //活动id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12153,7 +12153,7 @@ func (*ReqLimitEvent) Descriptor() ([]byte, []int) { type ResLimitEvent struct { state protoimpl.MessageState `protogen:"open.v1"` - LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表; + LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //限时事件列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12197,9 +12197,9 @@ func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { type ResLimitEventProgress struct { state protoimpl.MessageState `protogen:"open.v1"` - ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度; - Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度; - ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId; + ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度 + Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度 + ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //奖励 可以选择的奖励 Id =》 RewardId unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12449,12 +12449,12 @@ func (x *ResSelectLimitEvent) GetMsg() string { type LimitEvent struct { state protoimpl.MessageState `protogen:"open.v1"` - EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; - Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数; - StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间; - Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam; - ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间; + EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd + Mul float32 `protobuf:"fixed32,3,opt,name=mul,proto3" json:"mul,omitempty"` //倍数 + StartTime int32 `protobuf:"varint,4,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 + Param map[string]int32 `protobuf:"bytes,5,rep,name=Param,proto3" json:"Param,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` //key 为枚举 LimitEventParam + ShowTime int32 `protobuf:"varint,6,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` //显示时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12533,10 +12533,10 @@ func (x *LimitEvent) GetShowTime() int32 { type LimitEventNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间; - Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 + Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12793,8 +12793,8 @@ func (x *ResLimitSenceReward) GetMsg() string { type ResChessRainReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具; - Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id; + Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具 + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12881,9 +12881,9 @@ func (*ReqFastProduceInfo) Descriptor() ([]byte, []int) { type ResFastProduceInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数; - EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; + Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 快手能量 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 快手次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13092,7 +13092,7 @@ type ResCatTrickReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭; + IsClose bool `protobuf:"varint,3,opt,name=IsClose,proto3" json:"IsClose,omitempty"` // 是否关闭 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13300,14 +13300,14 @@ type ResFriendPlayerSimple struct { Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; - Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表; - Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态; - Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态; + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 + Playroom map[int32]int32 `protobuf:"bytes,13,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + DressSet map[int32]int32 `protobuf:"bytes,14,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + Friend []int32 `protobuf:"varint,15,rep,packed,name=Friend,proto3" json:"Friend,omitempty"` // 好友列表 + Last *ActLog `protobuf:"bytes,16,opt,name=Last,proto3" json:"Last,omitempty"` // 最后一次动态 + Physiology map[int32]int32 `protobuf:"bytes,17,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理状态 位置 =》 状态 PetName string `protobuf:"bytes,18,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字; unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -13480,9 +13480,9 @@ type ResPlayerSimple struct { Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` - Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间; + Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13669,7 +13669,7 @@ type ResPlayerRank struct { Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` - Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人; + Type int32 `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"` // 排行类型 0:玩家 2:机器人 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13760,7 +13760,7 @@ type ResFriendLog struct { Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` - Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; + Upvote bool `protobuf:"varint,6,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13840,7 +13840,7 @@ func (x *ResFriendLog) GetUpvote() bool { type NotifyFriendLog struct { state protoimpl.MessageState `protogen:"open.v1"` Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` - Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + Bubble *FriendBubbleInfo `protobuf:"bytes,2,opt,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13891,9 +13891,9 @@ func (x *NotifyFriendLog) GetBubble() *FriendBubbleInfo { type FriendBubbleInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:; - Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2: + Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14006,7 +14006,7 @@ type ResFriendCard struct { ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` - Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id; + Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14223,7 +14223,7 @@ func (x *ResKv) GetKv() map[int32]string { type ReqFriendByCode struct { state protoimpl.MessageState `protogen:"open.v1"` - Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码; + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14269,7 +14269,7 @@ type ResFriendByCode struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; + Player *ResPlayerSimple `protobuf:"bytes,3,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -14543,9 +14543,9 @@ func (*ReqFriendList) Descriptor() ([]byte, []int) { type ResFriendList struct { state protoimpl.MessageState `protogen:"open.v1"` FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` - ReqApplyList []int64 `protobuf:"varint,2,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表; - Npc []int32 `protobuf:"varint,3,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表; - Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数; + ReqApplyList []int64 `protobuf:"varint,3,rep,packed,name=ReqApplyList,proto3" json:"ReqApplyList,omitempty"` // 已申请好友列表 + Npc []int32 `protobuf:"varint,2,rep,packed,name=Npc,proto3" json:"Npc,omitempty"` // npc列表 + Sponsor int32 `protobuf:"varint,4,opt,name=Sponsor,proto3" json:"Sponsor,omitempty"` // 今日赞助次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15203,14 +15203,14 @@ func (x *ResFriendTimeLine) GetReply() []*ResFriendReply { type ResFriendReply struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼; - Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理; - AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //; - Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息; - Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 回复id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:打招呼 2:被打招呼 + Param string `protobuf:"bytes,3,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0:未处理 1:已处理 + AddTime int64 `protobuf:"varint,5,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + EndTime int64 `protobuf:"varint,6,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // + Player *ResPlayerSimple `protobuf:"bytes,7,opt,name=Player,proto3" json:"Player,omitempty"` // 玩家信息 + Items []*ItemInfo `protobuf:"bytes,8,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15303,9 +15303,9 @@ func (x *ResFriendReply) GetItems() []*ItemInfo { type ReqFriendReplyHandle struct { state protoimpl.MessageState `protogen:"open.v1"` - LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; - Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; + LogId int32 `protobuf:"varint,1,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id + Param string `protobuf:"bytes,2,opt,name=Param,proto3" json:"Param,omitempty"` // 回复内容 + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15365,7 +15365,7 @@ type ResFriendReplyHandle struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id; + LogId int32 `protobuf:"varint,3,opt,name=LogId,proto3" json:"LogId,omitempty"` // 时间线id Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 回复类型 1:处理 2:删除 3:查看; ErrType FRIEND_REPLY_HANDLE_ERR_TYPE `protobuf:"varint,5,opt,name=ErrType,proto3,enum=tutorial.FRIEND_REPLY_HANDLE_ERR_TYPE" json:"ErrType,omitempty"` // 错误类型; unknownFields protoimpl.UnknownFields @@ -15439,7 +15439,7 @@ func (x *ResFriendReplyHandle) GetErrType() FRIEND_REPLY_HANDLE_ERR_TYPE { type ResFriendBubble struct { state protoimpl.MessageState `protogen:"open.v1"` - Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡; + Bubble []*FriendBubbleInfo `protobuf:"bytes,1,rep,name=Bubble,proto3" json:"Bubble,omitempty"` // 气泡 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -15753,7 +15753,7 @@ func (x *ResFriendApplyNotify) GetTime() int32 { type ResFriendReplyNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` + Info *ResFriendReply `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:打招呼 2:被打招呼; Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` unknownFields protoimpl.UnknownFields @@ -15790,7 +15790,7 @@ func (*ResFriendReplyNotify) Descriptor() ([]byte, []int) { return file_proto_Gameapi_proto_rawDescGZIP(), []int{259} } -func (x *ResFriendReplyNotify) GetInfo() *ResFriendLog { +func (x *ResFriendReplyNotify) GetInfo() *ResFriendReply { if x != nil { return x.Info } @@ -15815,7 +15815,7 @@ func (x *ResFriendReplyNotify) GetTime() int32 { type ReqApplyFriend struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求; + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0:普通请求 1:赞助请求 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16250,7 +16250,7 @@ func (x *ResDelFriend) GetUid() int64 { // 玩家榜单 type ReqRank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16294,10 +16294,10 @@ func (x *ReqRank) GetType() int32 { type ResRank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型; - RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型 + RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16443,20 +16443,20 @@ func (x *ResMailList) GetMailList() map[int32]*MailInfo { type MailInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id; - Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题; - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容; - Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间; - Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除; - Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励; - Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件; - TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题; - ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容; - SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题; - SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题; - TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题; - ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容; - SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id + Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题 + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 + Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间 + Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除 + Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 + Type int32 `protobuf:"varint,7,opt,name=Type,proto3" json:"Type,omitempty"` //邮件类型 1普通邮件 2节日邮件 3 礼包邮件 + TitleEn string `protobuf:"bytes,8,opt,name=TitleEn,proto3" json:"TitleEn,omitempty"` // 英文标题 + ContentEn string `protobuf:"bytes,9,opt,name=ContentEn,proto3" json:"ContentEn,omitempty"` // 英文内容 + SubTitle string `protobuf:"bytes,10,opt,name=SubTitle,proto3" json:"SubTitle,omitempty"` // 子标题 + SubTitleEn string `protobuf:"bytes,11,opt,name=SubTitleEn,proto3" json:"SubTitleEn,omitempty"` // 英文子标题 + TitlePtBr string `protobuf:"bytes,12,opt,name=TitlePtBr,proto3" json:"TitlePtBr,omitempty"` // 葡萄牙标题 + ContentPtBr string `protobuf:"bytes,13,opt,name=ContentPtBr,proto3" json:"ContentPtBr,omitempty"` // 葡萄牙内容 + SubTitlePtBr string `protobuf:"bytes,14,opt,name=SubTitlePtBr,proto3" json:"SubTitlePtBr,omitempty"` // 葡萄牙子标题 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -16950,23 +16950,23 @@ func (x *ResDeleteMail) GetId() int32 { type ResCharge struct { state protoimpl.MessageState `protogen:"open.v1"` - Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额; - Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数; - First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次; - SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包; - FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次; - ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店; - Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量; - Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包; - Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单; - SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额; - SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周; - TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额; - MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额; - AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; - PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间; - WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间; + Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额 + Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数 + First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次 + SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 特惠礼包 + FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次 + ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 棋子商店 + Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 礼包 礼包id =》 礼包数量 + Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包 + Wish *WishList `protobuf:"bytes,9,opt,name=Wish,proto3" json:"Wish,omitempty"` // 心愿单 + SpecialCharge float32 `protobuf:"fixed32,10,opt,name=SpecialCharge,proto3" json:"SpecialCharge,omitempty"` // 特35天最大充值金额 + SpecialChargeWeek int32 `protobuf:"varint,11,opt,name=SpecialChargeWeek,proto3" json:"SpecialChargeWeek,omitempty"` // 距离现在多少周 + TodayCharge float32 `protobuf:"fixed32,12,opt,name=TodayCharge,proto3" json:"TodayCharge,omitempty"` // 今日充值金额 + MonthCharge float32 `protobuf:"fixed32,13,opt,name=MonthCharge,proto3" json:"MonthCharge,omitempty"` // 本月充值金额 + AdEndTime int64 `protobuf:"varint,14,opt,name=AdEndTime,proto3" json:"AdEndTime,omitempty"` // 广告礼包结束时间 + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,15,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 + PetWorkRemainTime int64 `protobuf:"varint,16,opt,name=PetWorkRemainTime,proto3" json:"PetWorkRemainTime,omitempty"` // 剩余时间 + WeeklyEndTime int64 `protobuf:"varint,17,opt,name=WeeklyEndTime,proto3" json:"WeeklyEndTime,omitempty"` // 每周优惠结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17122,8 +17122,8 @@ func (x *ResCharge) GetWeeklyEndTime() int64 { type LogoutPetWork struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间; - RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间; + WorkTime int64 `protobuf:"varint,1,opt,name=WorkTime,proto3" json:"WorkTime,omitempty"` // 工作时间 + RemainTime int64 `protobuf:"varint,2,opt,name=RemainTime,proto3" json:"RemainTime,omitempty"` // 剩余时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17174,9 +17174,9 @@ func (x *LogoutPetWork) GetRemainTime() int64 { type WeeklyDiscountInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 剩余购买次数; - Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比; + 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"` // 剩余购买次数 + Discount int32 `protobuf:"varint,3,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣百分比 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17234,9 +17234,9 @@ func (x *WeeklyDiscountInfo) GetDiscount() int32 { type WishList struct { state protoimpl.MessageState `protogen:"open.v1"` - 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"` // 心愿点数; - Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id; + 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"` // 心愿点数 + Uid []int64 `protobuf:"varint,3,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 今日已发送玩家id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17295,8 +17295,8 @@ func (x *WishList) GetUid() []int64 { // 添加心愿单 type ReqAddWish struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 物品类型 1 playroom商店 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17489,7 +17489,7 @@ func (x *ResGetWish) GetMsg() string { // 发送心愿单请求 type ReqSendWishBeg struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17585,8 +17585,8 @@ func (x *ResSendWishBeg) GetMsg() string { type ResSpecialShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数; + Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位 + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -17637,9 +17637,9 @@ func (x *ResSpecialShop) GetCount() int32 { type ResChessShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石; - Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量; - ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id; + Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石 + Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量 + ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18312,10 +18312,10 @@ func (x *ResEndlessReward) GetMsg() string { type ResPiggyBank struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告; - Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石; - Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数; - EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告 + Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石 + Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数 + EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18468,8 +18468,8 @@ func (x *ResPiggyBankReward) GetMsg() string { type ReqChargeReceive struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id + Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 回复邮件内容 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18573,10 +18573,10 @@ func (x *ResChargeReceive) GetMsg() string { type ReqCreateOrderSn struct { state protoimpl.MessageState `protogen:"open.v1"` ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` - PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test; - Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid; + PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test + Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 订单类型 1:充值 2赠送 + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // 赠送的uid unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18648,7 +18648,7 @@ func (x *ReqCreateOrderSn) GetUid() int64 { type ResCreateOrderSn struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -18692,10 +18692,10 @@ func (x *ResCreateOrderSn) GetOrderSn() string { type ReqShippingOrder struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id; - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token; - Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 + ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token + Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19152,9 +19152,9 @@ func (*ReqChampshipRank) Descriptor() ([]byte, []int) { type ResChampshipRank struct { state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19248,9 +19248,9 @@ func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { type ResChampshipPreRank struct { state protoimpl.MessageState `protogen:"open.v1"` - RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据; - MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行; - MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分; + RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 榜单数据 + MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 + MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19308,10 +19308,10 @@ func (x *ResChampshipPreRank) GetMyScore() float32 { type ResNotifyCard struct { state protoimpl.MessageState `protogen:"open.v1"` - Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌; - Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌; - ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星; - Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴; + Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 卡牌 + Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 万能卡牌 + ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星 + Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 图鉴 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19797,7 +19797,7 @@ func (x *ResGetInviteReward) GetResultCode() int32 { type ReqAutoAddInviteFriend struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid; + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19885,7 +19885,7 @@ func (x *ResAutoAddInviteFriend) GetResultCode() int32 { type ReqAutoAddInviteFriend2 struct { state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id; + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20010,14 +20010,14 @@ func (*ReqMining) Descriptor() ([]byte, []int) { type ResMining struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石; - Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; - Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石 + Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 + Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20110,8 +20110,8 @@ func (x *ResMining) GetMining() int32 { type ReqMiningTake struct { state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图; - Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石; + Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 地图 + Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20339,14 +20339,14 @@ func (*ReqActPass) Descriptor() ([]byte, []int) { type ResActPass struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Score int32 `protobuf:"varint,5,opt,name=Score,proto3" json:"Score,omitempty"` // 经验; - Reward []int32 `protobuf:"varint,6,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id; - LowPass bool `protobuf:"varint,7,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证; - HighPass bool `protobuf:"varint,8,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Score int32 `protobuf:"varint,6,opt,name=Score,proto3" json:"Score,omitempty"` // 经验 + Reward []int32 `protobuf:"varint,7,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 奖励 已领取的奖励 Id + LowPass bool `protobuf:"varint,8,opt,name=LowPass,proto3" json:"LowPass,omitempty"` // 是否购买低级通行证 + HighPass bool `protobuf:"varint,9,opt,name=HighPass,proto3" json:"HighPass,omitempty"` // 是否购买高级通行证 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20477,7 +20477,7 @@ type ResActPassReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id; + RewardLevel []int32 `protobuf:"varint,3,rep,packed,name=RewardLevel,proto3" json:"RewardLevel,omitempty"` // 已领取的奖励 Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20535,7 +20535,7 @@ func (x *ResActPassReward) GetRewardLevel() []int32 { type ResActRed struct { state protoimpl.MessageState `protogen:"open.v1"` - Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点; + Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 活动红点 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20721,7 +20721,7 @@ func (x *ResItem) GetItem() map[int32]int32 { type ItemNotify struct { state protoimpl.MessageState `protogen:"open.v1"` - Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量; + Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 道具id =》 变化的数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20802,15 +20802,15 @@ func (*ReqGuessColor) Descriptor() ([]byte, []int) { type ResGuessColor struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; - WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数; - Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + MapList []*GuessColorInfo `protobuf:"bytes,6,rep,name=MapList,proto3" json:"MapList,omitempty"` // 我的错误历史 + OMap map[int32]int32 `protobuf:"bytes,7,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 + WinTime int32 `protobuf:"varint,8,opt,name=WinTime,proto3" json:"WinTime,omitempty"` // 赢的次数 + Opponent *Opponent `protobuf:"bytes,9,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20910,10 +20910,10 @@ func (x *ResGuessColor) GetOpponent() *Opponent { type Opponent struct { state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - Face int32 `protobuf:"varint,2,opt,name=Face,proto3" json:"Face,omitempty"` - Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Progress int32 `protobuf:"varint,4,opt,name=Progress,proto3" json:"Progress,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20979,8 +20979,8 @@ func (x *Opponent) GetProgress() int32 { // 猜颜色 type ReqGuessColorTake struct { state protoimpl.MessageState `protogen:"open.v1"` - Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史; - OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度; + Map *GuessColorInfo `protobuf:"bytes,1,opt,name=Map,proto3" json:"Map,omitempty"` // 我的错误历史 + OMap map[int32]int32 `protobuf:"bytes,2,rep,name=OMap,proto3" json:"OMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 对手完成进度 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21031,7 +21031,7 @@ func (x *ReqGuessColorTake) GetOMap() map[int32]int32 { type GuessColorInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史; + Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 我的错误历史 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21252,16 +21252,16 @@ func (*ReqRace) Descriptor() ([]byte, []int) { type ResRace struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡; - GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间; - GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间; - Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 + GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间 + GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间 + Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 + Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 + Rank int32 `protobuf:"varint,10,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21657,36 +21657,36 @@ func (*ReqPlayroom) Descriptor() ([]byte, []int) { type ResPlayroom struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励; - Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手; - Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友; - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰; - Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; - LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; - AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线; - Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数; + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态 + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励 + Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 + Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友 + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + Collect []*PlayroomCollectInfo `protobuf:"bytes,6,rep,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰 + Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> + LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 + StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 + WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 + AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 + Chip []*ChipInfo `protobuf:"bytes,12,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线 + Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数 Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳; - DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包; - PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; - Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数; - RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分; - Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id; - DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; - InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; - Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; - Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid; - AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息; - Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间; - WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数; + Dress map[int32]*PlayroomDress `protobuf:"bytes,16,rep,name=Dress,proto3" json:"Dress,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 服装仓库 位置 =》 服装id 位置ID: 1 帽子 2 眼镜 3 上衣 4 裤子 5 鞋子 6 连体 7 胡子 8 脸 9 美瞳 + DressSet map[int32]int32 `protobuf:"bytes,17,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + PetAir []*PlayroomAirInfo `protobuf:"bytes,18,rep,name=PetAir,proto3" json:"PetAir,omitempty"` // 宠物背包 + PetAirSet int32 `protobuf:"varint,19,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 + Upvote int32 `protobuf:"varint,20,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 点赞次数 + RoomPoint int32 `protobuf:"varint,21,opt,name=RoomPoint,proto3" json:"RoomPoint,omitempty"` // 房间积分 + Unlock []int32 `protobuf:"varint,22,rep,packed,name=Unlock,proto3" json:"Unlock,omitempty"` // 解锁的房间id + DailyTask []*DailyTask `protobuf:"bytes,23,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 + DailyTaskReward []int32 `protobuf:"varint,24,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 + InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 + Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 + Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid + AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息 + Target *FriendRoom `protobuf:"bytes,29,opt,name=Target,proto3" json:"Target,omitempty"` // 目标房间 + WeeklyDiscount map[int32]*WeeklyDiscountInfo `protobuf:"bytes,30,rep,name=WeeklyDiscount,proto3" json:"WeeklyDiscount,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 每周优惠 id -> 限购次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21933,8 +21933,8 @@ func (x *ResPlayroom) GetWeeklyDiscount() map[int32]*WeeklyDiscountInfo { type NotifyPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` - DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务; - DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励; + DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 + DailyTaskReward []int32 `protobuf:"varint,2,rep,packed,name=DailyTaskReward,proto3" json:"DailyTaskReward,omitempty"` // 任务大奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -21986,7 +21986,7 @@ func (x *NotifyPlayroomTask) GetDailyTaskReward() []int32 { // 领取任务奖励 type ReqPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22032,7 +22032,7 @@ type ResPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22091,7 +22091,7 @@ func (x *ResPlayroomTask) GetId() int32 { // 领取任务大奖 type ReqPlayroomTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22137,8 +22137,8 @@ type ResPlayroomTaskReward struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id; - Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id + Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` // 领奖类型 1 2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22203,7 +22203,7 @@ func (x *ResPlayroomTaskReward) GetType() int32 { type ReqPlayroomUnlock struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22249,7 +22249,7 @@ type ResPlayroomUnlock struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 房间id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22307,7 +22307,7 @@ func (x *ResPlayroomUnlock) GetId() int32 { type ReqPlayroomUpvote struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22353,7 +22353,7 @@ type ResPlayroomUpvote struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id; + Id int64 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 对手id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22411,7 +22411,7 @@ func (x *ResPlayroomUpvote) GetId() int64 { type PlayroomDress struct { state protoimpl.MessageState `protogen:"open.v1"` - List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id; + List []*PlayroomDressInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 服装仓库 位置 =》 服装id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22455,10 +22455,10 @@ func (x *PlayroomDress) GetList() []*PlayroomDressInfo { type PlayroomDressInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22523,10 +22523,10 @@ func (x *PlayroomDressInfo) GetLabel() string { type PlayroomAirInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22591,10 +22591,10 @@ func (x *PlayroomAirInfo) GetLabel() string { type PlayroomCollectInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id; - EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间; - Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 服装id + EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + AddTime int64 `protobuf:"varint,3,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Label string `protobuf:"bytes,4,opt,name=Label,proto3" json:"Label,omitempty"` // 标签 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22659,7 +22659,7 @@ func (x *PlayroomCollectInfo) GetLabel() string { type ReqPlayroomDressSet struct { state protoimpl.MessageState `protogen:"open.v1"` - DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; + DressSet map[int32]int32 `protobuf:"bytes,1,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22755,7 +22755,7 @@ func (x *ResPlayroomDressSet) GetMsg() string { type ReqPlayroomPetAirSet struct { state protoimpl.MessageState `protogen:"open.v1"` - PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置; + PetAirSet int32 `protobuf:"varint,1,opt,name=PetAirSet,proto3" json:"PetAirSet,omitempty"` // 宠物背包设置 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22939,7 +22939,7 @@ func (x *ResPlayroomWrokOutline) GetMsg() string { type NofiPlayroomStatus struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态; + WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -22983,8 +22983,8 @@ func (x *NofiPlayroomStatus) GetWorkOutline() int32 { type NotifyPlayroomWork struct { state protoimpl.MessageState `protogen:"open.v1"` - StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间; - WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中; + StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 + WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23035,9 +23035,9 @@ func (x *NotifyPlayroomWork) GetWorkStatus() int32 { type NotifyPlayroomLose struct { state protoimpl.MessageState `protogen:"open.v1"` - LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具; - Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇; + LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 + Chip []*ChipInfo `protobuf:"bytes,2,rep,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + Revenge int64 `protobuf:"varint,3,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23095,8 +23095,8 @@ func (x *NotifyPlayroomLose) GetRevenge() int64 { type ChipInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 玩家id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23147,10 +23147,10 @@ func (x *ChipInfo) GetEmojiId() int32 { type NotifyPlayroomMood struct { state protoimpl.MessageState `protogen:"open.v1"` - AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情; - Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情>; - Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理>; - AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励; + AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 + Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> + Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理> + AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23215,9 +23215,9 @@ func (x *NotifyPlayroomMood) GetAdItem() []*AdItem { type AdItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数; - LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间; - ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id; + Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数 + LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间 + ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23275,7 +23275,7 @@ func (x *AdItem) GetItemId() int32 { type NotifyPlayroomKiss struct { state protoimpl.MessageState `protogen:"open.v1"` - Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23323,7 +23323,7 @@ type FriendRoom struct { Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数; + Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23399,7 +23399,7 @@ type RoomOpponent struct { Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间; + LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23520,19 +23520,19 @@ type ResPlayroomInfo struct { Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` - Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; - GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id; - Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; - Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束; - Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御; - Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌>; - Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片; - PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名; - Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情; - Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞; - UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数; - DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id; - Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数; + Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id + GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id + Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 + Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束 + Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御 + Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 翻牌 <位置, 牌> + Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 + PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名 + Emoji map[int32]int32 `protobuf:"bytes,13,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 + Upvote bool `protobuf:"varint,14,opt,name=Upvote,proto3" json:"Upvote,omitempty"` // 是否点赞 + UpvoteCount int32 `protobuf:"varint,15,opt,name=UpvoteCount,proto3" json:"UpvoteCount,omitempty"` // 点赞次数 + DressSet map[int32]int32 `protobuf:"bytes,16,rep,name=DressSet,proto3" json:"DressSet,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 服装装饰 位置 =》 服装id + Kiss int32 `protobuf:"varint,17,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23689,7 +23689,7 @@ func (x *ResPlayroomInfo) GetKiss() int32 { // 请求翻牌 type ReqPlayroomFlip struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23735,8 +23735,8 @@ type ResPlayroomFlip struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置; - CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 + CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23802,7 +23802,7 @@ func (x *ResPlayroomFlip) GetCardId() int32 { // 引导修改playroom生理值 type ReqPlayroomGuide struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23899,7 +23899,7 @@ func (x *ResPlayroomGuide) GetMsg() string { // 领取游戏奖励 type ReqPlayroomFlipReward struct { state protoimpl.MessageState `protogen:"open.v1"` - EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + EmojiId int32 `protobuf:"varint,1,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -23995,8 +23995,8 @@ func (x *ResPlayroomFlipReward) GetMsg() string { type ReqPlayroomGame struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 游戏结果 + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24050,7 +24050,7 @@ type ResPlayroomGame struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` - Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励; + Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 游戏奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24116,8 +24116,8 @@ func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo { // 展示游戏结果数据 type ReqPlayroomGameShowReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果; - SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id; + Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` //游戏结果 + SelectId int32 `protobuf:"varint,2,opt,name=SelectId,proto3" json:"SelectId,omitempty"` // 选择id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24213,8 +24213,8 @@ func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { // 宠物交互 type ReqPlayroomInteract struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24267,7 +24267,7 @@ type ResPlayroomInteract struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数; + InteractNum int32 `protobuf:"varint,3,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24326,7 +24326,7 @@ func (x *ResPlayroomInteract) GetInteractNum() int32 { // playroom装饰 type ReqPlayroomSetRoom struct { state protoimpl.MessageState `protogen:"open.v1"` - Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id; + Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 空间装饰 位置 =》 装饰id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24422,8 +24422,8 @@ func (x *ResPlayroomSetRoom) GetMsg() string { type ReqPlayroomSelectReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24832,7 +24832,7 @@ type ResPlayroomDraw struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24891,7 +24891,7 @@ func (x *ResPlayroomDraw) GetId() int32 { // 消除 纸屑 type ReqPlayroomChip struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数; + Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` // 要消除的层数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -24987,7 +24987,7 @@ func (x *ResPlayroomChip) GetMsg() string { type ReqPlayroomBuyItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25084,8 +25084,8 @@ func (x *ResPlayroomBuyItem) GetMsg() string { // playroom商店 购买 type ReqPlayroomShop struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id; - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商店id + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` // 购买数量 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25225,12 +25225,12 @@ func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { type ResFriendTreasure struct { state protoimpl.MessageState `protogen:"open.v1"` - Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; - Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位; - List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表; - List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表; - Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表; + Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 + Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位 + List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表 + List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // 今日已翻玩家列表 + Uids []int64 `protobuf:"varint,6,rep,packed,name=Uids,proto3" json:"Uids,omitempty"` // 今日已翻位置列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25309,13 +25309,13 @@ func (x *ResFriendTreasure) GetUids() []int64 { type TreasureInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置; - Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型; - Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像; - Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框; - Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid; - Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻; - NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称; + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 + Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 + Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像 + Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框 + Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid + Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻 + NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25401,7 +25401,7 @@ func (x *TreasureInfo) GetNickName() string { type ReqFriendTreasureStart struct { state protoimpl.MessageState `protogen:"open.v1"` - List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表; + List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表 List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -25689,7 +25689,7 @@ func (x *ResFriendTreasureFilp) GetMsg() string { type ResFriendTreasureStar struct { state protoimpl.MessageState `protogen:"open.v1"` - Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级; + Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25821,8 +25821,8 @@ func (*ReqCollectInfo) Descriptor() ([]byte, []int) { type ResCollectInfo struct { state protoimpl.MessageState `protogen:"open.v1"` - Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19]; - Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + Id []int32 `protobuf:"varint,1,rep,packed,name=Id,proto3" json:"Id,omitempty"` // [1,10,19] + Items []*CollectItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25873,8 +25873,8 @@ func (x *ResCollectInfo) GetItems() []*CollectItem { type CollectItem struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引; - Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 索引 + Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 领奖道具 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -25925,7 +25925,7 @@ func (x *CollectItem) GetItems() []*ItemInfo { type ReqCollect struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领奖id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26060,13 +26060,13 @@ func (*ReqCatnip) Descriptor() ([]byte, []int) { type ResCatnip struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间; - Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板; - GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表; - Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; - FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 + Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 + GameList []*CatnipGame `protobuf:"bytes,5,rep,name=GameList,proto3" json:"GameList,omitempty"` // 小游戏列表 + Multiply int32 `protobuf:"varint,6,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 + FriendList []*CatnipInvite `protobuf:"bytes,7,rep,name=FriendList,proto3" json:"FriendList,omitempty"` // 好友列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26153,12 +26153,12 @@ func (x *ResCatnip) GetFriendList() []*CatnipInvite { // 小游戏信息 type CatnipGame struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束; - Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度; - Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3]; - Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴; - Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 + Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 + Reward []int32 `protobuf:"varint,4,rep,packed,name=Reward,proto3" json:"Reward,omitempty"` // 已领取进度奖励列表 [1,2,3] + Partner *ResPlayerSimple `protobuf:"bytes,5,opt,name=Partner,proto3" json:"Partner,omitempty"` // 伙伴 + Emoji int32 `protobuf:"varint,6,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情id SendEmoji int32 `protobuf:"varint,7,opt,name=SendEmoji,proto3" json:"SendEmoji,omitempty"` // 发送的表情id FriendProgress int32 `protobuf:"varint,8,opt,name=FriendProgress,proto3" json:"FriendProgress,omitempty"` // 好友进度; unknownFields protoimpl.UnknownFields @@ -26253,10 +26253,10 @@ func (x *CatnipGame) GetFriendProgress() int32 { type CatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间; - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 4 已合作; - Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 邀请时间 + Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 状态 0 可以邀请,1 已邀请 2 被邀请 3 已满员 + Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` // 好友信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26322,8 +26322,8 @@ func (x *CatnipInvite) GetPlayer() *ResPlayerSimple { // 邀请好友 type ReqCatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26376,7 +26376,7 @@ type ResCatnipInvite struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26435,8 +26435,8 @@ func (x *ResCatnipInvite) GetUid() int64 { // 同意邀请 type ReqCatnipAgree struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26489,7 +26489,7 @@ type ResCatnipAgree struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26547,8 +26547,8 @@ func (x *ResCatnipAgree) GetUid() int64 { type ReqCatnipRefuse struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id; - Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 游戏id + Uid int64 `protobuf:"varint,2,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26601,7 +26601,7 @@ type ResCatnipRefuse struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id; + Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26660,7 +26660,7 @@ func (x *ResCatnipRefuse) GetUid() int64 { // 设置游戏倍数 type ReqCatnipMultiply struct { state protoimpl.MessageState `protogen:"open.v1"` - Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + Multiply int32 `protobuf:"varint,1,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26706,7 +26706,7 @@ type ResCatnipMultiply struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数; + Multiply int32 `protobuf:"varint,3,opt,name=Multiply,proto3" json:"Multiply,omitempty"` // 倍数 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26765,7 +26765,7 @@ func (x *ResCatnipMultiply) GetMultiply() int32 { // 游戏转盘 type ReqCatnipPlay struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26811,7 +26811,7 @@ type ResCatnipPlay struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id; + Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草转盘id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -26870,7 +26870,7 @@ func (x *ResCatnipPlay) GetId() int32 { // 领取阶段奖励 type ReqCatnipReward struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27056,8 +27056,8 @@ func (x *ResCatnipGrandReward) GetMsg() string { // 发送表情 type ReqCatnipEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; - EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id + EmojiId int32 `protobuf:"varint,2,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27110,8 +27110,8 @@ type ResCatnipEmoji struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` - EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id; - Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id; + EmojiId int32 `protobuf:"varint,3,opt,name=EmojiId,proto3" json:"EmojiId,omitempty"` // 表情id + Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 猫草id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27433,8 +27433,8 @@ func (*ReqReload) Descriptor() ([]byte, []int) { type ReqAdminGm struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid + Command string `protobuf:"bytes,2,opt,name=Command,proto3" json:"Command,omitempty"` // 命令 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27485,9 +27485,9 @@ func (x *ReqAdminGm) GetCommand() string { type ReqAdminBan struct { state protoimpl.MessageState `protogen:"open.v1"` - Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid; - Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间; - Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因; + Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // uid + Time int64 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` // 禁止时间 + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` // 禁止原因 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27545,9 +27545,9 @@ func (x *ReqAdminBan) GetReason() string { type ReqAdminShipping struct { state protoimpl.MessageState `protogen:"open.v1"` - OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号; - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败; - ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号; + OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 + ChannelOrderSn string `protobuf:"bytes,3,opt,name=ChannelOrderSn,proto3" json:"ChannelOrderSn,omitempty"` // 渠道订单号 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -27717,7 +27717,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "ResultCode\x18\x01 \x01(\x05R\n" + "ResultCode\")\n" + "\x11ReqPlayerBaseInfo\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\x93\x06\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xfd\x05\n" + "\x11ResPlayerBaseInfo\x12\x14\n" + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + @@ -27732,8 +27732,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x05guild\x18\n" + " \x01(\x05R\x05guild\x12*\n" + "\x11pack_unlock_count\x18\v \x01(\x05R\x0fpackUnlockCount\x12$\n" + - "\x0elast_play_time\x18\f \x01(\x05R\flastPlayTime\x12&\n" + - "\x0eEnergyBuyCount\x18\r \x01(\x05R\x0eEnergyBuyCount\x12\x1b\n" + + "\x0elast_play_time\x18\f \x01(\x05R\flastPlayTime\x12\x10\n" + + "\x03ban\x18\r \x01(\x03R\x03ban\x12\x1b\n" + "\tuser_name\x18\x0e \x01(\tR\buserName\x12\x1d\n" + "\n" + "login_time\x18\x0f \x01(\x05R\tloginTime\x12\x1f\n" + @@ -28000,7 +28000,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "ActiveTime\x18\a \x01(\x05R\n" + "ActiveTime\x12M\n" + - "\bSetEmoji\x18\b \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + + "\bSetEmoji\x18\v \x03(\v21.tutorial.ResPlayerBriefProfileData.SetEmojiEntryR\bSetEmoji\x1a;\n" + "\rSetEmojiEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"/\n" + @@ -28669,8 +28669,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "FriendList\x18\x01 \x03(\v2\x19.tutorial.ResPlayerSimpleR\n" + "FriendList\x12\"\n" + - "\fReqApplyList\x18\x02 \x03(\x03R\fReqApplyList\x12\x10\n" + - "\x03Npc\x18\x03 \x03(\x05R\x03Npc\x12\x18\n" + + "\fReqApplyList\x18\x03 \x03(\x03R\fReqApplyList\x12\x10\n" + + "\x03Npc\x18\x02 \x03(\x05R\x03Npc\x12\x18\n" + "\aSponsor\x18\x04 \x01(\x05R\aSponsor\"!\n" + "\tReqAddNpc\x12\x14\n" + "\x05NpcId\x18\x01 \x01(\x05R\x05NpcId\"[\n" + @@ -28736,9 +28736,9 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x14ResFriendApplyNotify\x121\n" + "\x06Player\x18\x01 \x01(\v2\x19.tutorial.ResPlayerSimpleR\x06Player\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + - "\x04Time\x18\x03 \x01(\x05R\x04Time\"j\n" + - "\x14ResFriendReplyNotify\x12*\n" + - "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x12\x12\n" + + "\x04Time\x18\x03 \x01(\x05R\x04Time\"l\n" + + "\x14ResFriendReplyNotify\x12,\n" + + "\x04info\x18\x01 \x01(\v2\x18.tutorial.ResFriendReplyR\x04info\x12\x12\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\x12\x12\n" + "\x04Time\x18\x03 \x01(\x05R\x04Time\"6\n" + "\x0eReqApplyFriend\x12\x10\n" + @@ -29086,10 +29086,10 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x06Status\x18\x02 \x01(\x05R\x06Status\x12\x18\n" + "\aEndTime\x18\x03 \x01(\x05R\aEndTime\x12\x1a\n" + "\bTemplate\x18\x04 \x01(\x05R\bTemplate\x12\x14\n" + - "\x05Score\x18\x05 \x01(\x05R\x05Score\x12\x16\n" + - "\x06Reward\x18\x06 \x03(\x05R\x06Reward\x12\x18\n" + - "\aLowPass\x18\a \x01(\bR\aLowPass\x12\x1a\n" + - "\bHighPass\x18\b \x01(\bR\bHighPass\"\x12\n" + + "\x05Score\x18\x06 \x01(\x05R\x05Score\x12\x16\n" + + "\x06Reward\x18\a \x03(\x05R\x06Reward\x12\x18\n" + + "\aLowPass\x18\b \x01(\bR\aLowPass\x12\x1a\n" + + "\bHighPass\x18\t \x01(\bR\bHighPass\"\x12\n" + "\x10ReqActPassReward\"n\n" + "\x10ResActPassReward\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + @@ -29131,10 +29131,10 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"f\n" + "\bopponent\x12\x12\n" + - "\x04Name\x18\x01 \x01(\tR\x04Name\x12\x12\n" + - "\x04Face\x18\x02 \x01(\x05R\x04Face\x12\x16\n" + - "\x06Avatar\x18\x03 \x01(\x05R\x06Avatar\x12\x1a\n" + - "\bProgress\x18\x04 \x01(\x05R\bProgress\"\xb3\x01\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + + "\x04Face\x18\x03 \x01(\x05R\x04Face\x12\x16\n" + + "\x06Avatar\x18\x04 \x01(\x05R\x06Avatar\x12\x1a\n" + + "\bProgress\x18\x05 \x01(\x05R\bProgress\"\xb3\x01\n" + "\x11ReqGuessColorTake\x12*\n" + "\x03Map\x18\x01 \x01(\v2\x18.tutorial.GuessColorInfoR\x03Map\x129\n" + "\x04OMap\x18\x02 \x03(\v2%.tutorial.ReqGuessColorTake.OMapEntryR\x04OMap\x1a7\n" + @@ -29718,16 +29718,15 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bRES_CODE\x12\b\n" + "\x04FAIL\x10\x00\x12\v\n" + "\aSUCCESS\x10\x01\x12 \n" + - "\x1cProtocol_Error_Account_Exist\x10\x02\x12'\n" + - "#Protocol_Error_Account_OR_PWD_ERROR\x10\x03\x12'\n" + - "#Protocol_Error_Account_OR_PWD_Short\x10\x04\x12\x1f\n" + - "\x1bProtocol_Error_Account_Fail\x10\x05\x12\"\n" + - "\x1eProtocol_Error_Account_NoExsit\x10\x06\x12%\n" + - "!Protocol_Error_Account_Code_Error\x10\a\x12'\n" + - "#Protocol_Error_Account_Device_Error\x10\b\x12 \n" + - "\x1cProtocol_Error_Id_Not_Verify\x10\t\x12\"\n" + - "\x1eProtocol_Error_Id_Verify_Error\x10\n" + - "*.\n" + + "\x1cProtocol_Error_Account_Exist\x10d\x12'\n" + + "#Protocol_Error_Account_OR_PWD_ERROR\x10e\x12'\n" + + "#Protocol_Error_Account_OR_PWD_Short\x10f\x12\x1f\n" + + "\x1bProtocol_Error_Account_Fail\x10g\x12\"\n" + + "\x1eProtocol_Error_Account_NoExsit\x10h\x12%\n" + + "!Protocol_Error_Account_Code_Error\x10i\x12'\n" + + "#Protocol_Error_Account_Device_Error\x10j\x12 \n" + + "\x1cProtocol_Error_Id_Not_Verify\x10k\x12\"\n" + + "\x1eProtocol_Error_Id_Verify_Error\x10l*.\n" + "\tITEM_TYPE\x12\n" + "\n" + "\x06ENERGY\x10\x00\x12\b\n" + @@ -29769,7 +29768,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "CODE_LOGIN\x10\x01\x12\x10\n" + "\fDEVICE_LOGIN\x10\x02\x12\r\n" + - "\tSDK_LOGIN\x10\x03*\xf6\x06\n" + + "\tSDK_LOGIN\x10\x03*\xf7\x06\n" + "\x0eTIME_LINE_TYPE\x12\v\n" + "\aDEFAULT\x10\x00\x12\x19\n" + "\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" + @@ -29788,8 +29787,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" + "\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" + "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" + - "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1b\n" + - "\x17LOG_TYPE_CHARGE_RECEIVE\x10\x13\x12\x11\n" + + "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1c\n" + + "\x18LOG_TYPE_CHARGE_RECEIVED\x10\x13\x12\x11\n" + "\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" + "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" + "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" + @@ -30590,7 +30589,7 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 153: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE 2, // 154: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE 233, // 155: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 236, // 156: tutorial.ResFriendReplyNotify.info:type_name -> tutorial.ResFriendLog + 264, // 156: tutorial.ResFriendReplyNotify.info:type_name -> tutorial.ResFriendReply 2, // 157: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE 2, // 158: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE 233, // 159: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple From b25a10f2fee582e6887420a19a223d0fbd8ae4ee Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 10:28:38 +0800 Subject: [PATCH 056/104] 6 --- src/server/game/GameLogic.go | 1 + src/server/game/champship_mgr.go | 2 ++ src/server/game/message_mgr.go | 32 +++++++++++++++++++++++++++----- src/server/game/mod/msg/Msg.go | 15 +++++++++++++++ src/server/game/var_mgr.go | 4 ++-- 5 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 7be14116..426a7c9d 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -914,6 +914,7 @@ func (ad *GameLogic) GetStartTime() int64 { func NotifyPlayer(Uid int, m *MsgMod.Msg) { m.To = Uid + m.HandleType = MsgMod.HANDLE_MOD_PLAYER_MSG CenterPlayerMsgHandler(m) } diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index 574a685b..03f765a1 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -249,6 +249,8 @@ func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank { RankList: RL, } } + +// TODO 待优化 func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank { ChampshipData := c.getData() GroupId := ChampshipData.GroupInfo[Uid] diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 9d077517..845096cf 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -105,6 +105,9 @@ func (m *MessageMgr) CenterRegister() { m.RegisterHandler(msg.HANDLE_MOD_USER_VAR_GET, MessageHandlerFunc(GetUserVarDataHandler)) m.RegisterHandler(msg.HANDLE_MOD_CATNIP_PARTNER, MessageHandlerFunc(CatnipPartnerHandler)) m.RegisterHandler(msg.HANDLE_MDO_CHAMPSHIP_INRANK, MessageHandlerFunc(ChampshipInRankHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_RANK_INFO, MessageHandlerFunc(ChampshipRankInfoHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_RANK_LIST, MessageHandlerFunc(ChampshipRankListHandler)) + m.RegisterHandler(msg.HANDLE_MOD_CHAMPSHIP_PRE_RANK, MessageHandlerFunc(ChampshipRankPreHandler)) } } @@ -113,6 +116,28 @@ func getMessageData() *MessageData { } // ----------------------------------- 处理函数实现 --------------------------- +func ChampshipRankPreHandler(data *msg.Msg) (interface{}, error) { + PlayerId := data.From + PreRankMsg := G_GameLogicPtr.ChampshipMgr.GetPreRankMsg(PlayerId) + ReplyPlayerMsgASync(data, PreRankMsg) + return nil, nil +} + +func ChampshipRankListHandler(data *msg.Msg) (interface{}, error) { + PlayerId := data.From + RankMsg := G_GameLogicPtr.ChampshipMgr.GetRankMsg(PlayerId) + ReplyPlayerMsgASync(data, RankMsg) + return nil, nil +} + +func ChampshipRankInfoHandler(data *msg.Msg) (interface{}, error) { + PlayerId := data.From + MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(PlayerId) + MyPreRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(PlayerId) + ReplyPlayerMsgASync(data, []int{MyRank, MyPreRank}) + return nil, nil +} + func NotifyAllPlayerMsg(m *msg.Msg) { messageMgrData := getMessageData() for PlayerId, node := range messageMgrData.PlayerList { @@ -134,11 +159,8 @@ func CatnipPartnerHandler(data *msg.Msg) (interface{}, error) { return G_GameLogicPtr.VarMgr.HandleCatnipPartner(m.Uid, m.Partner, m.GameId, m.EndTime) } -func ReplyPlayerMsgSync(m *msg.Msg, reply interface{}) (interface{}, error) { - clone := m.Clone() - clone.To = m.From - clone.HandleType = msg.HANDLE_MOD_REPLY_PLAYER_MSG - clone.Extra = reply +func ReplyPlayerMsgASync(m *msg.Msg, reply interface{}) (interface{}, error) { + clone := m.Reply(reply) messageMgrData := getMessageData() if node, ok := messageMgrData.PlayerList[int64(m.From)]; ok { go SendMsgToNodeAsync(clone, node) diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index ed3ffd8a..02c7077b 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -174,6 +174,21 @@ func (m *Msg) Clone() *Msg { } } +func (m *Msg) Reply(data interface{}) *Msg { + return &Msg{ + Type: m.Type, + To: m.From, + Item: m.Item, + SendT: m.SendT, + End: m.End, + Extra: data, + Id: m.Id, + H: m.H, + UniKey: m.UniKey, + HandleType: HANDLE_MOD_REPLY_PLAYER_MSG, + } +} + func Handle(fun func(Msg) error, m Msg) error { return fun(m) } diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index deb2d655..1df2c8ca 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -231,7 +231,7 @@ func GetUserVarDataHandler(m *msg.Msg) (interface{}, error) { if userVar == nil { userVar = &VarExpireData{} } - ReplyPlayerMsgSync(m, userVar.D) + ReplyPlayerMsgASync(m, userVar.D) return userVar, nil } return nil, fmt.Errorf("invalid parameters for getting var data") @@ -288,7 +288,7 @@ func GetVarDataHandler(m *msg.Msg) (interface{}, error) { if varData == nil { varData = &VarExpireData{} } - ReplyPlayerMsgSync(m, varData.D) + ReplyPlayerMsgASync(m, varData.D) return varData, nil } return nil, fmt.Errorf("invalid parameters for getting var data") From 68c8cfe6209421d8341a679590433688ad923ec0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 11:49:29 +0800 Subject: [PATCH 057/104] 6 --- src/server/game/champship_mgr.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index 03f765a1..d54fbed9 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -102,9 +102,11 @@ func (c *ChampshipMgr) Init() { }) } -func (c *ChampshipMgr) NotifyAll(m *msg.Msg) (interface{}, error) { - m.HandleType = msg.HANDLE_MOD_PLAYER_MSG - NotifyAllPlayerMsg(m) +func (c *ChampshipMgr) NotifyAll() (interface{}, error) { + NotifyAllPlayerMsg(&msg.Msg{ + Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, + HandleType: msg.HANDLE_MOD_PLAYER_MSG, + }) return nil, nil } @@ -121,13 +123,11 @@ func (c *ChampshipMgr) ZeroUpdate() (interface{}, error) { c.getData().GroupInfo = make(map[int]int, 0) c.update = true c.mDispatr.AfterFunc(time.Duration(GoUtil.NextZeroTimestampDuration())*time.Second, func() { - c.Send(&msg.Msg{ - Type: msg.SERVER_ZERO_UPDATE, - }) + c.ZeroUpdate() }) c.NotifyPlayer() c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { - c.ZeroUpdate() + c.NotifyAll() }) return nil, nil } From 7e58fd3f4b3fdf3e23d4b023fe75e1956f3f7573 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 11:50:23 +0800 Subject: [PATCH 058/104] 6 --- src/server/db/Redis.go | 11 ++++++++ src/server/game/player_data.go | 2 +- src/server/game/var.go | 46 +++++++++++++++++++++++++++++----- src/server/game/var_mgr.go | 5 ++++ src/server/game_util/GoUtil.go | 4 +++ 5 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/server/db/Redis.go b/src/server/db/Redis.go index f8f59896..bc5ab33d 100644 --- a/src/server/db/Redis.go +++ b/src/server/db/Redis.go @@ -164,6 +164,17 @@ func RedisGetKey(key string) (string, error) { return val, nil } +func RedisGetKeyBytes(key string) ([]byte, error) { + if RdbRead == nil { + return nil, nil + } + val, err := RdbRead.Get(ctx, key).Bytes() + if err != nil { + return nil, err + } + return val, nil +} + func RedisDelKey(key string) { if RdbWrite == nil { log.Debug("redis write client is nil") diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 03c9cb89..28cc71c8 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -986,7 +986,7 @@ func (p *Player) UpdateUserInfo() { //TODO 存储到redis 在新版本中将优化成gob进行压缩 value, _ := json.Marshal(simple) - IdStr := strconv.Itoa(int(p.M_DwUin)) + IdStr := GoUtil.String(p.M_DwUin) go db.RedisSetKeyBytes(IdStr, value, 0) } diff --git a/src/server/game/var.go b/src/server/game/var.go index a9702673..61046939 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -1,6 +1,8 @@ package game import ( + "fmt" + "server/db" "server/game/mod/msg" GoUtil "server/game_util" "server/pkg/github.com/name5566/leaf/log" @@ -17,15 +19,27 @@ const ( ) func (p *Player) GetVarData(key string) interface{} { - data, err := GetUserData(p.M_DwUin, key) + cache := &VarExpireData{} + err := LoadCacheVarData(key, cache) if err != nil { log.Error("GetVarData err : %s", err) return nil } - if data == nil { + return cache.D +} + +func (p *Player) GetUserVarData(key string) interface{} { + cache := map[string]*VarExpireData{} + err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), cache) + if err != nil { + log.Error("GetVarData err : %s", err) return nil } - return data.Extra + data, ok := cache[key] + if !ok { + return nil + } + return data.D } func GetServerVarData(key string) interface{} { @@ -100,7 +114,7 @@ func (p *Player) SubPlayroomChip(PlayerId int) { } func (p *Player) GetPlayroomUpvote() int { - data := p.GetVarData(VAR_PLAYROOM_UPVOTE) + data := p.GetUserVarData(VAR_PLAYROOM_UPVOTE) if data == nil { return 0 } @@ -108,7 +122,7 @@ func (p *Player) GetPlayroomUpvote() int { } func (p *Player) GetPlayroomChip() int { - data := p.GetVarData(VAR_PLAYROOM_CHIP) + data := p.GetUserVarData(VAR_PLAYROOM_CHIP) if data == nil { return 0 } @@ -120,7 +134,7 @@ func (p *Player) SetPlayroomKiss(Kiss int) { } func (p *Player) GetPlayroomKiss() int { - data := p.GetVarData(VAR_PLAYROOM_KISS) + data := p.GetUserVarData(VAR_PLAYROOM_KISS) if data == nil { return 0 } @@ -146,3 +160,23 @@ func (p *Player) GetCatnipPartner(Uid int) []int { } return GoUtil.IntSlice(data.Extra) } + +func SaveCacheVarData(key string, value interface{}) { + data, err := GoUtil.GobMarshal(value) + if err != nil { + log.Error("SaveCacheVarData GobMarshal err : %s", err) + return + } + db.RedisSetKeyBytes(key, data, 0) +} + +func LoadCacheVarData(key string, value interface{}) error { + data, err := db.RedisGetKeyBytes(key) + if err != nil { + return err + } + if data == nil { + return fmt.Errorf("no data") + } + return GoUtil.GobUnmarshal(data, value) +} diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 1df2c8ca..0bc9f9f1 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -140,6 +140,7 @@ func (f *VarMgr) SetUserVar(uid int, key string, value interface{}) { } ved.D = value varData[key] = ved + SaveCacheVarData(GoUtil.GetVarKey(uid), varData) } func (f *VarMgr) GetUserVar(uid int, key string) *VarExpireData { @@ -160,6 +161,7 @@ func (f *VarMgr) SetVar(key string, value interface{}) { f.getData().NewVar[key] = &VarExpireData{ D: value, } + SaveCacheVarData(key, f.getData().NewVar[key]) } func (f *VarMgr) GetVar(key string) *VarExpireData { @@ -217,6 +219,7 @@ func SetVarDataHandler(m *msg.Msg) (interface{}, error) { ved.T = m.End } data.Var[v.Key] = ved + SaveCacheVarData(v.Key, ved) } return nil, nil } @@ -277,6 +280,8 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) { } data.Var[v.Key] = ved } + // 保存到缓存中 + SaveCacheVarData(GoUtil.GetVarKey(m.From), data.NewUseVar[m.From]) return nil, nil } diff --git a/src/server/game_util/GoUtil.go b/src/server/game_util/GoUtil.go index a57553fa..fde503f6 100644 --- a/src/server/game_util/GoUtil.go +++ b/src/server/game_util/GoUtil.go @@ -531,3 +531,7 @@ func GetISOCodeByIP(ip string) (string, error) { } return GetISOCodeByCountry(country) } + +func GetVarKey(Uid int) string { + return fmt.Sprintf("var_%d", Uid) +} From e884b20e32ded8d0549173b24d181e2933a760a5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 14:30:37 +0800 Subject: [PATCH 059/104] 7 --- src/server/game/var_mgr.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/var_mgr.go b/src/server/game/var_mgr.go index 0bc9f9f1..e2d2b309 100644 --- a/src/server/game/var_mgr.go +++ b/src/server/game/var_mgr.go @@ -140,6 +140,7 @@ func (f *VarMgr) SetUserVar(uid int, key string, value interface{}) { } ved.D = value varData[key] = ved + f.getData().NewUseVar[uid] = varData SaveCacheVarData(GoUtil.GetVarKey(uid), varData) } From 30eab6db4bde3708a517bb302216599d9f65b80e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 14:31:29 +0800 Subject: [PATCH 060/104] 7 --- src/server/game/game_type.go | 6 ++++++ src/server/game/gm_handler.go | 1 + src/server/game/message_mgr.go | 12 ++++++------ src/server/game/mod/friend/Friend.go | 5 +++++ src/server/game/var.go | 22 +++++++++++----------- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index 23171816..df0a844c 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -2,7 +2,9 @@ package game import ( "encoding/gob" + "server/game/mod/card" "server/game/mod/friend" + "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/msg" proto "server/msg" @@ -125,4 +127,8 @@ func init() { gob.Register(CRank{}) gob.Register(&proto.ResChampshipRank{}) gob.Register(&proto.ResChampshipPreRank{}) + gob.Register(card.CardInfo{}) + gob.Register(item.Item{}) + gob.Register([]*item.Item{}) // 注册 []*item.Item 类型 + gob.Register(friend.ReplyInfo{}) } diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 115a0cde..8f6f457c 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -513,6 +513,7 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod.Uid = player.M_DwUin BaseMod.NickName = player.PlayMod.getBaseMod().NickName BaseMod.LoginTime = GoUtil.Now() + BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) // deep copy p1.PlayMod.mod_list to avoid sharing internal pointers var modCopy PlayerModList var buf bytes.Buffer diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 845096cf..f2da29e9 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -622,9 +622,9 @@ func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { }) } -func GetServerData(Key string) (*msg.Msg, error) { - return SendMsgToCenterSync(&msg.Msg{ - HandleType: msg.HANDLE_MOD_VAR_GET, - Extra: msg.VarData{Key: Key}, - }) -} +// func GetServerData(Key string) (*msg.Msg, error) { +// return SendMsgToCenterSync(&msg.Msg{ +// HandleType: msg.HANDLE_MOD_VAR_GET, +// Extra: msg.VarData{Key: Key}, +// }) +// } diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index fe69b2a6..2bb2c8f5 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -219,6 +219,11 @@ func (f *FriendMod) SetNpc(id int) error { if !friendCfg.IsNpcFriend(id) { return fmt.Errorf("not npc friend") } + for _, v := range f.Npc { + if v == id { + return fmt.Errorf("npc already exist") + } + } f.Npc = append(f.Npc, id) return nil } diff --git a/src/server/game/var.go b/src/server/game/var.go index 61046939..72b51563 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -22,7 +22,7 @@ func (p *Player) GetVarData(key string) interface{} { cache := &VarExpireData{} err := LoadCacheVarData(key, cache) if err != nil { - log.Error("GetVarData err : %s", err) + log.Error("GetVarData err : %s, key: %s", err, key) return nil } return cache.D @@ -30,9 +30,9 @@ func (p *Player) GetVarData(key string) interface{} { func (p *Player) GetUserVarData(key string) interface{} { cache := map[string]*VarExpireData{} - err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), cache) + err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), &cache) if err != nil { - log.Error("GetVarData err : %s", err) + log.Error("GetUserVarData err : %s, key: %s", err, key) return nil } data, ok := cache[key] @@ -42,14 +42,14 @@ func (p *Player) GetUserVarData(key string) interface{} { return data.D } -func GetServerVarData(key string) interface{} { - data, err := GetServerData(key) - if err != nil { - log.Error("GetServerVarData err : %s", err) - return nil - } - return data.Extra -} +// func GetServerVarData(key string) interface{} { +// data, err := GetServerData(key) +// if err != nil { +// log.Error("GetServerVarData err : %s", err) +// return nil +// } +// return data.Extra +// } func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{ From ef1125b75d764696c91c4c3cf82da2e50cc65df6 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 15:04:20 +0800 Subject: [PATCH 061/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 8f6f457c..e57ed313 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -393,13 +393,8 @@ func ReqGmCommand_(player *Player, Command string) error { } player.PushClientRes(CardMod.NotifyCard()) case "resetRankUser": - O := G_GameLogicPtr.RankMgr.getAllRank(RANK_TYPE_USER) - for _, v := range O { - Uid := strconv.Itoa(v.Uid) - TimeSort := fmt.Sprintf("0.%d", RANK_TIME_SORT-GoUtil.Now()) - TimeSortF, _ := strconv.ParseFloat(TimeSort, 64) - db.RedisZAdd(RANK_USER, Uid, v.Score+TimeSortF) - } + db.RedisDelKey(RANK_USER) + db.RedisDelKey(fmt.Sprintf("%s_%s", RANK_COUNTRY_USER, conf.Server.CountryCode)) case "addFriendStar": FriendTreasureMod := player.PlayMod.getFriendTreasureMod() FriendTreasureMod.AddStar(200) From a9e07f103aa1e97446533a0eba1acc400fae7ab5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 15:13:26 +0800 Subject: [PATCH 062/104] =?UTF-8?q?uid=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 2 +- src/server/game/register_network_func.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 426a7c9d..114c5c40 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -179,7 +179,7 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool { return false } - insertId = insertId + int64(conf.Server.ServerID*100000) + int64(conf.Server.AppID*100000000) + insertId = insertId + int64(100000) + int64(conf.Server.AppID*100000000) playerInfo := &db.ResPlayerBaseInfo{} playerInfo.DwUin = int64(insertId) playerInfo.Energy = int32(userCfg.GetInitEnergy()) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 4f1c0e49..0f124dd8 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -5319,7 +5319,7 @@ func ReqFriendByCode(player *Player, buf []byte) error { }) return fmt.Errorf("code is invalid") } - Uid := int64(CodeNum) + int64(conf.Server.ServerID*100000) + int64(conf.Server.AppID*100000000) + Uid := int64(CodeNum) + int64(100000) + int64(conf.Server.AppID*100000000) if Uid == player.M_DwUin { player.SendErrClienRes(&msg.ResFriendByCode{ Code: msg.RES_CODE_FAIL, From 5768776e564b852e6a77089a37da1e2f54724cf2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 17:05:39 +0800 Subject: [PATCH 063/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index f2da29e9..2be9a055 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -185,9 +185,9 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { defer messageMgrData.mu.Unlock() TempMessageList := messageMgrData.MessageList messageMgrData.MessageList = make(map[int64]*MessageList) - for PlayerId, Message := range TempMessageList { + for _, Message := range TempMessageList { for _, msgItem := range Message.Messages { - go SendMsgToNodeAsync(msgItem, messageMgrData.PlayerList[PlayerId]) + SendMsgToCenterAsync(msgItem) } } return nil, nil @@ -263,9 +263,7 @@ func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { defer messages.mu.Unlock() messages.Messages = append(messages.Messages, data) if node, ok := messageMgrData.PlayerList[int64(PlayerId)]; ok { - for _, message := range messages.Messages { - go SendMsgToNodeAsync(message, node) - } + go SendMsgToNodeAsync(data, node) } return nil, nil } From d123fc93d5e058e9213bbf76074002cf14455f08 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 24 Dec 2025 17:17:57 +0800 Subject: [PATCH 064/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 4 ++++ src/server/game/player_data.go | 1 + 2 files changed, 5 insertions(+) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 2be9a055..a147a1bb 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -326,6 +326,10 @@ func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { // 异步处理消息 (多线程版本) func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { + if message.End != 0 && message.End < GoUtil.Now() { + log.Debug("message had expired type:%d,to:%d", message.Type, message.To) + return nil + } if fun, ok := m.handler[message.HandleType]; ok { // 应用中间件 handlerWithMiddleware := m.applyMiddlewares(fun) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 28cc71c8..6cd9be96 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1024,6 +1024,7 @@ func (p *Player) HandleInChampshipRank() { H: ChampshipMod.GetH(), N: ChampshipMod.GetN(), }, + End: GoUtil.ZeroTimestamp() + 86400, // 第二天零点删除 HandleType: MsgMod.HANDLE_MDO_CHAMPSHIP_INRANK, } SendMsgToCenterAsync(m) From e21aac1c08af8b6c2935810812b41110d8580e21 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 09:52:06 +0800 Subject: [PATCH 065/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/conf.go | 2 +- src/server/game/message_mgr.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index 38545475..c41461f0 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -10,7 +10,7 @@ var ( LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf - PendingWriteNum = 2000 + PendingWriteNum = 65536 MaxMsgLen uint32 = 65536 // 16KB HTTPTimeout = 10 * time.Second LenMsgLen = 2 diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index a147a1bb..84c3925b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -59,7 +59,7 @@ type TaskResult struct { } func (m *MessageMgr) MessageMgrInit() { - m.key = MESSAGE_MGR_KEY + m.key = MESSAGE_MGR_KEY + fmt.Sprintf("_%d", conf.Server.ServerID) m.data = &MessageData{ MessageList: make(map[int64]*MessageList), PlayerList: make(map[int64]int), From 9ec87776f0d84cc31d14f40b7511eba201cb9948 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 10:00:48 +0800 Subject: [PATCH 066/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 165 +++++++++++++++++++++++++++++---- 1 file changed, 148 insertions(+), 17 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 84c3925b..b126dab7 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -37,12 +37,17 @@ type MessageList struct { // Worker Pool 结构 type WorkerPool struct { - workers int - taskQueue chan *MessageTask - wg sync.WaitGroup - ctx context.Context - cancel context.CancelFunc - maxQueue int + workers int + minWorkers int + maxWorkers int + taskQueue chan *MessageTask + wg sync.WaitGroup + ctx context.Context + cancel context.CancelFunc + maxQueue int + mu sync.Mutex + workerCancels []context.CancelFunc + monitorTick *time.Ticker } // 消息任务 @@ -374,35 +379,58 @@ func MessageHandle(m *msg.Msg) error { // 创建 Worker Pool func NewWorkerPool(workers, maxQueue int) *WorkerPool { ctx, cancel := context.WithCancel(context.Background()) + if workers <= 0 { + workers = 1 + } pool := &WorkerPool{ - workers: workers, - taskQueue: make(chan *MessageTask, maxQueue), - ctx: ctx, - cancel: cancel, - maxQueue: maxQueue, + workers: 0, + minWorkers: workers, + maxWorkers: workers * 4, + taskQueue: make(chan *MessageTask, maxQueue), + ctx: ctx, + cancel: cancel, + maxQueue: maxQueue, } pool.start() + // 启动监控协程,负责动态扩缩容 + pool.monitorTick = time.NewTicker(500 * time.Millisecond) + go pool.monitor() return pool } // 启动 Worker Pool func (p *WorkerPool) start() { - for i := 0; i < p.workers; i++ { - p.wg.Add(1) - go p.worker(i) + // 启动最小数量的 worker + for i := 0; i < p.minWorkers; i++ { + p.spawnWorker() } } -// Worker 工作函数 -func (p *WorkerPool) worker(id int) { +// spawnWorker 启动一个 worker,使用独立的 cancelable context +func (p *WorkerPool) spawnWorker() { + p.mu.Lock() + defer p.mu.Unlock() + childCtx, childCancel := context.WithCancel(p.ctx) + p.workerCancels = append(p.workerCancels, childCancel) + id := len(p.workerCancels) + p.wg.Add(1) + p.workers++ + go p.worker(childCtx, id) +} + +// Worker 工作函数,监听其子上下文以便单独停止 +func (p *WorkerPool) worker(ctx context.Context, id int) { defer p.wg.Done() log.Debug("Worker %d started", id) for { select { - case <-p.ctx.Done(): + case <-ctx.Done(): log.Debug("Worker %d stopped", id) return + case <-p.ctx.Done(): + log.Debug("Worker %d pool closed", id) + return case task, ok := <-p.taskQueue: if !ok { log.Debug("Worker %d: task queue closed", id) @@ -426,6 +454,24 @@ func (p *WorkerPool) Submit(task *MessageTask) error { case <-p.ctx.Done(): return fmt.Errorf("worker pool is closed") case p.taskQueue <- task: + // 如果队列接近满时,尝试扩容少量 worker + queued := len(p.taskQueue) + capQ := cap(p.taskQueue) + if capQ > 0 && queued > capQ*3/4 { + go func() { + p.mu.Lock() + deficit := p.maxWorkers - p.workers + p.mu.Unlock() + if deficit > 0 { + // 最多扩容 2 个以避免剧烈波动 + add := 2 + if deficit < add { + add = deficit + } + p.ScaleUp(add) + } + }() + } return nil default: return fmt.Errorf("task queue is full") @@ -435,12 +481,97 @@ func (p *WorkerPool) Submit(task *MessageTask) error { // 关闭 Worker Pool func (p *WorkerPool) Shutdown() { log.Debug("Shutting down worker pool...") + // 停止监控 + if p.monitorTick != nil { + p.monitorTick.Stop() + } + // 取消根 context,会让所有子 worker 退出 p.cancel() + // 关闭任务通道,释放阻塞的接收者 close(p.taskQueue) + // 等待所有 worker 退出 p.wg.Wait() log.Debug("Worker pool shut down complete") } +// ScaleUp 按数量增加 worker +func (p *WorkerPool) ScaleUp(n int) { + if n <= 0 { + return + } + p.mu.Lock() + can := p.maxWorkers - p.workers + if can <= 0 { + p.mu.Unlock() + return + } + if n > can { + n = can + } + p.mu.Unlock() + + for i := 0; i < n; i++ { + p.spawnWorker() + } +} + +// ScaleDown 按数量减少 worker +func (p *WorkerPool) ScaleDown(n int) { + if n <= 0 { + return + } + p.mu.Lock() + for i := 0; i < n && len(p.workerCancels) > 0 && p.workers > p.minWorkers; i++ { + last := len(p.workerCancels) - 1 + cancel := p.workerCancels[last] + // 从 slice 中移除 + p.workerCancels = p.workerCancels[:last] + p.workers-- + // 调用 cancel 让对应 worker 退出 + cancel() + } + p.mu.Unlock() +} + +// monitor 周期性检查队列长度并做扩缩容 +func (p *WorkerPool) monitor() { + for { + select { + case <-p.ctx.Done(): + return + case <-p.monitorTick.C: + queued := len(p.taskQueue) + capQ := cap(p.taskQueue) + if capQ == 0 { + continue + } + // 扩容条件 + if queued > capQ*3/4 { + p.mu.Lock() + deficit := p.maxWorkers - p.workers + p.mu.Unlock() + if deficit > 0 { + add := 1 + if deficit >= 2 { + add = 2 + } + p.ScaleUp(add) + } + } + // 缩容条件 + if queued < capQ/4 { + p.mu.Lock() + extra := p.workers - p.minWorkers + p.mu.Unlock() + if extra > 0 { + // 每次缩一个,避免抖动 + p.ScaleDown(1) + } + } + } + } +} + // ==================== 中间件实现 ==================== // 日志中间件 From 0f4cae323e988fdc3c0e0ac348e5ac05d6199717 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 10:57:20 +0800 Subject: [PATCH 067/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/benchmark_test.go | 20 ++++++++++ src/server/game/message_mgr.go | 71 +++++++++++++++++++--------------- 2 files changed, 60 insertions(+), 31 deletions(-) diff --git a/src/server/benchmark_test.go b/src/server/benchmark_test.go index f1c7dc52..dbb7cdb9 100644 --- a/src/server/benchmark_test.go +++ b/src/server/benchmark_test.go @@ -4,6 +4,7 @@ import ( "fmt" "runtime" "server/game" + "server/game/mod/msg" "testing" ) @@ -19,6 +20,25 @@ import ( // } // } +/* +* +cluster 消息处理基准测试 + + 36716 34961 ns/op 1690 B/op 38 allocs/op +*/ +func BenchmarkClusterMsg(b *testing.B) { + game.ClusterMgrInit() + runtime.GOMAXPROCS(8) + game.G_getGameLogic() + for i := 0; i < b.N; i++ { + m := &msg.Msg{ + HandleType: msg.HANDLE_MOD_PLAYER_LOGIN, + Extra: 0, + } + game.MessageHandle(m) + } +} + func BenchmarkLog(b *testing.B) { runtime.GOMAXPROCS(2) t := game.G_getGameLogic() diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index b126dab7..98dfedc6 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -76,7 +76,7 @@ func (m *MessageMgr) MessageMgrInit() { m.handler = make(map[int]MessageHandlerFunc) m.middlewares = []MessageMiddleware{} // 初始化 Worker Pool (10个worker, 1000个队列大小) - m.workerPool = NewWorkerPool(10, 1000) + m.workerPool = NewWorkerPool(50, 10000) // 注册默认中间件 m.Use(RecoveryMiddleware()) m.Use(LoggingMiddleware()) @@ -187,9 +187,9 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { // 发送暂存区消息 messageMgrData := getMessageData() messageMgrData.mu.Lock() - defer messageMgrData.mu.Unlock() TempMessageList := messageMgrData.MessageList messageMgrData.MessageList = make(map[int64]*MessageList) + messageMgrData.mu.Unlock() for _, Message := range TempMessageList { for _, msgItem := range Message.Messages { SendMsgToCenterAsync(msgItem) @@ -202,13 +202,17 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool messageMgrData := getMessageData() messageMgrData.mu.Lock() - defer messageMgrData.mu.Unlock() messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) if _, ok := messageMgrData.MessageList[int64(data.From)]; !ok { messageMgrData.MessageList[int64(data.From)] = &MessageList{ Messages: []*msg.Msg{}, } } + messageMgrData.mu.Unlock() + + // 对玩家消息列表加锁 + messageMgrData.MessageList[int64(data.From)].mu.Lock() + defer messageMgrData.MessageList[int64(data.From)].mu.Unlock() log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) node := data.Extra.(int) messageMgrData.PlayerList[int64(data.From)] = node @@ -225,8 +229,6 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { messageMgrData := getMessageData() - messageMgrData.mu.Lock() - defer messageMgrData.mu.Unlock() delete(messageMgrData.PlayerList, int64(data.From)) log.Debug("[Middleware] Player logout success player id: %v", data.From) return nil, nil @@ -279,8 +281,6 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { if p == nil || p.stop { return nil, nil } - p.lock.Lock() - defer p.lock.Unlock() p.Send(data.Clone()) // 处理完后发送消费消息 if data.HandleType == msg.HANDLE_MOD_PLAYER_MSG { @@ -385,7 +385,7 @@ func NewWorkerPool(workers, maxQueue int) *WorkerPool { pool := &WorkerPool{ workers: 0, minWorkers: workers, - maxWorkers: workers * 4, + maxWorkers: workers * 40, taskQueue: make(chan *MessageTask, maxQueue), ctx: ctx, cancel: cancel, @@ -450,31 +450,40 @@ func (p *WorkerPool) worker(ctx context.Context, id int) { // 提交任务 func (p *WorkerPool) Submit(task *MessageTask) error { - select { - case <-p.ctx.Done(): - return fmt.Errorf("worker pool is closed") - case p.taskQueue <- task: - // 如果队列接近满时,尝试扩容少量 worker - queued := len(p.taskQueue) - capQ := cap(p.taskQueue) - if capQ > 0 && queued > capQ*3/4 { - go func() { - p.mu.Lock() - deficit := p.maxWorkers - p.workers - p.mu.Unlock() - if deficit > 0 { - // 最多扩容 2 个以避免剧烈波动 - add := 2 - if deficit < add { - add = deficit + // 当队列已满时,等待并重试入队,直到成功或 pool 关闭 + for { + select { + case <-p.ctx.Done(): + return fmt.Errorf("worker pool is closed") + case p.taskQueue <- task: + // 如果队列接近满时,尝试扩容少量 worker + queued := len(p.taskQueue) + capQ := cap(p.taskQueue) + if capQ > 0 && queued > capQ*3/4 { + go func() { + p.mu.Lock() + deficit := p.maxWorkers - p.workers + p.mu.Unlock() + if deficit > 0 { + // 最多扩容 2 个以避免剧烈波动 + add := 2 + if deficit < add { + add = deficit + } + p.ScaleUp(add) } - p.ScaleUp(add) - } - }() + }() + } + return nil + default: + // 队列已满,短暂等待后重试 + select { + case <-p.ctx.Done(): + return fmt.Errorf("worker pool is closed") + case <-time.After(50 * time.Millisecond): + // 重试 + } } - return nil - default: - return fmt.Errorf("task queue is full") } } From 857923f2686b3210c202ce2fee52df712f9ee9c7 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 11:11:55 +0800 Subject: [PATCH 068/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/README.MD | 16 ++++++++++++++++ src/server/conf/conf.go | 4 ++-- src/server/game/gm_handler.go | 8 ++++---- src/server/game/player_back.go | 7 ++++++- src/server/game/register_network_func.go | 10 +++++----- 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 src/server/README.MD diff --git a/src/server/README.MD b/src/server/README.MD new file mode 100644 index 00000000..42588485 --- /dev/null +++ b/src/server/README.MD @@ -0,0 +1,16 @@ +## 命名规范 + + +- **清晰优先**:名称应准确表达含义,避免歧义。 +- **导出规则**:导出标识符首字母大写,未导出首字母小写。 +- **包名**:小写单词,简短且描述职责(如 `store`、`auth`)。 +- **文件名**:小写(可下划线分隔),测试文件以 `_test.go` 结尾。 +- **函数/变量/类型**:驼峰命名;导出使用 PascalCase(例如 `UserService`、`CreateUser`)。 +- **接口**:以行为命名,常用 `-er` 结尾(如 `Reader`、`Store`),避免 `I` 前缀。 +- **缩写**:统一大小写(例如导出使用 `ID`、`URL`;未导出使用 `id`、`url`)。 +- **错误**:包级错误使用 `Err` 前缀(如 `ErrNotFound`)。 +- **Context 与并发**:统一使用 `ctx` 作 `context.Context`,通道命名要有语义(如 `done`, `jobs`)。 +- **构造函数/选项**:使用 `NewType` 与 `WithXxx` 约定,避免多个布尔参数。 + + + diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index c41461f0..b66d324d 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -10,8 +10,8 @@ var ( LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf - PendingWriteNum = 65536 - MaxMsgLen uint32 = 65536 // 16KB + PendingWriteNum = 1 << 20 // 1M + MaxMsgLen uint32 = 65536 // 16KB HTTPTimeout = 10 * time.Second LenMsgLen = 2 LittleEndian = false diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index e57ed313..8f31db9a 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -151,19 +151,19 @@ func ReqGmCommand_(player *Player, Command string) error { ChessMod.PartBag.List = make(map[int]chess.PartBagGrid) } ChessMod.PartBag.List[1505] = chess.PartBagGrid{ - Num: 10000, + Num: 100, PartId: 1505, } ChessMod.PartBag.List[1515] = chess.PartBagGrid{ - Num: 10000, + Num: 100, PartId: 1515, } ChessMod.PartBag.List[1525] = chess.PartBagGrid{ - Num: 10000, + Num: 100, PartId: 1525, } ChessMod.PartBag.List[1535] = chess.PartBagGrid{ - Num: 10000, + Num: 100, PartId: 1535, } case "AllFace": diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 6cf5c34b..2dbcbfc7 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -295,6 +295,11 @@ func (p *Player) ChargeBackData() { func (p *Player) BackChampship() { ChampshipMod := p.PlayMod.getChampshipMod() + MyRank, MyPreRank := p.GetChampshipRank() + p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank)) +} + +func (p *Player) GetChampshipRank() (int, int) { MyRank := 0 MyPreRank := 0 res, _ := SendMsgToCenterSync(&msg.Msg{ @@ -305,7 +310,7 @@ func (p *Player) BackChampship() { MyRank = res.Extra.([]int)[0] MyPreRank = res.Extra.([]int)[1] } - p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank)) + return MyRank, MyPreRank } // 返回好友信息 diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 0f124dd8..26dee3cc 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3148,9 +3148,9 @@ func ReqFriendTReward(player *Player, buf []byte) error { } func ReqChampshipRankReward(player *Player, buf []byte) error { - MyLastRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(int(player.M_DwUin)) + _, myPreRank := player.GetChampshipRank() ChampshipMod := player.PlayMod.getChampshipMod() - itemList, err := ChampshipMod.GetRankReward(MyLastRank) + itemList, err := ChampshipMod.GetRankReward(myPreRank) if err != nil { player.SendErrClienRes(&msg.ResChampshipRankReward{ Code: msg.RES_CODE_FAIL, @@ -3166,9 +3166,9 @@ func ReqChampshipRankReward(player *Player, buf []byte) error { }) return err } - if MyLastRank <= 5 { + if myPreRank <= 5 { FriendMod := player.PlayMod.getFriendMod() - FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_CHAMPIONSHIP_RANK, GoUtil.String(MyLastRank)) + FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_CHAMPIONSHIP_RANK, GoUtil.String(myPreRank)) } player.PlayMod.save() player.BackChampship() @@ -3177,7 +3177,7 @@ func ReqChampshipRankReward(player *Player, buf []byte) error { }) player.TeLog("championship_reward", map[string]interface{}{ "season_id": GoUtil.ZeroTimestamp() - 86400, - "champship_step_id": MyLastRank, + "champship_step_id": myPreRank, "reward_type": "rank", "item_list": itemList, "champship_score": ChampshipMod.Score, From d7a1eededbc1d5d8f4575f2042e3b5dbbdc71328 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 12:08:53 +0800 Subject: [PATCH 069/104] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/admin.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/game/admin.go b/src/server/game/admin.go index 657fd57f..c0e026f3 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -226,7 +226,12 @@ func ReqServerInfo(args []interface{}) error { // 3. 获取 CPU 使用率(一秒内采样) cpuPercent, err := cpu.Percent(time.Second, false) if err == nil && len(cpuPercent) > 0 { - res["CPU"] = fmt.Sprintf("%.2f%%", cpuPercent[0]) + res["CPU"] = cpuPercent[0] + } + if vmStat != nil { + res["FreeMem"] = vmStat.Available / (1024 * 1024) + } else { + res["FreeMem"] = 0 } res["Version"] = conf.Server.Version AdminPlayerBack(a, res) From e3661d11b50f879a5b7e761f39e2bd73c4c952db Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 14:46:03 +0800 Subject: [PATCH 070/104] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/db/SqlStruct.go | 2 +- src/server/game/GameLogic.go | 6 +++--- src/server/game/player_base_mod.go | 11 ++++++----- src/server/msg/Gameapi.pb.go | 12 ++++++------ 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/server/db/SqlStruct.go b/src/server/db/SqlStruct.go index 4191e033..4d0ece3a 100644 --- a/src/server/db/SqlStruct.go +++ b/src/server/db/SqlStruct.go @@ -42,7 +42,7 @@ type ResPlayerBaseInfo struct { NickName string `db:"nick_name"` LoginTime int32 `db:"login_time"` LogoutTime int32 `db:"logout_time"` - Todayolinetime int32 `db:"todayolinetime"` + Node int32 `db:"node"` Rolecreatetime int32 `db:"rolecreatetime"` EmitOrderCnt int32 `db:"EmitOrderCnt"` DailyRenewTime int32 `db:"DailyRenewTime"` diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 114c5c40..64b1f6a0 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -195,7 +195,7 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool { playerInfo.UserName = ad.Db_AccountInfo.UserName playerInfo.LoginTime = (int32)(time.Now().Unix()) playerInfo.LogoutTime = 0 - playerInfo.Todayolinetime = 0 + playerInfo.Node = int32(conf.Server.ServerID) playerInfo.Rolecreatetime = (int32)(time.Now().Unix()) playerInfo.FaceBookId = "" db.FormatAllMemInsertDb(playerInfo, "t_player_baseinfo") @@ -533,12 +533,12 @@ func (ad *GameLogic) ClearData(args []interface{}) { if player != nil && player.M_DwUin != 0 { player.agent = nil log.Debug("player %d 断开连接", player.M_DwUin) - player.CallEvent(300*time.Second, func() { + player.CallEvent(120*time.Second, func() { player.lock.Lock() defer player.lock.Unlock() if player.agent == nil { player.ClearData() - log.Debug("player %d 延迟300s关闭", player.M_DwUin) + log.Debug("player %d 延迟120s关闭", player.M_DwUin) } }, "LateClose") } diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index ce9ed427..6764bc2d 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -5,6 +5,7 @@ import ( "database/sql" "errors" "server/MergeConst" + "server/conf" baseCfg "server/conf/base" userCfg "server/conf/user" "server/db" @@ -47,7 +48,7 @@ func (p *PlayerBaseData) BackUp() msg.ResPlayerBaseInfo { LoginTime: p.Data.LoginTime, UserName: p.Data.UserName, LogoutTime: p.Data.LogoutTime, - Todayolinetime: p.Data.Todayolinetime, + Node: p.Data.Node, Rolecreatetime: p.Data.Rolecreatetime, LastChampGroupID: p.Data.LastChampGroupID, ChampshipsGroupID: p.Data.ChampshipsGroupID, @@ -74,7 +75,7 @@ func (p *PlayerBaseData) Recover(old *PlayerBaseData) *PlayerBaseData { LoginTime: p.Data.LoginTime, UserName: p.Data.UserName, LogoutTime: p.Data.LogoutTime, - Todayolinetime: p.Data.Todayolinetime, + Node: p.Data.Node, Rolecreatetime: p.Data.Rolecreatetime, LastChampGroupID: p.Data.LastChampGroupID, ChampshipsGroupID: p.Data.ChampshipsGroupID, @@ -107,7 +108,7 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { p.Data.Ban = sqlStruck.Ban p.Data.UserName = sqlStruck.UserName p.Data.LogoutTime = sqlStruck.LogoutTime - p.Data.Todayolinetime = sqlStruck.Todayolinetime + p.Data.Node = int32(conf.Server.ServerID) p.Data.Rolecreatetime = sqlStruck.Rolecreatetime p.Data.LastChampGroupID = sqlStruck.LastChampGroupID p.Data.ChampshipsGroupID = sqlStruck.ChampshipsGroupID @@ -136,7 +137,7 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { sqlStruck.LoginTime = int32(BaseMod.LoginTime) sqlStruck.UserName = p.Data.UserName sqlStruck.LogoutTime = int32(BaseMod.LogoutTime) - sqlStruck.Todayolinetime = p.Data.Todayolinetime + sqlStruck.Node = p.Data.Node sqlStruck.Rolecreatetime = p.Data.Rolecreatetime sqlStruck.NoAd = p.Data.NoAd sqlStruck.ChampshipsGroupID = p.Data.ChampshipsGroupID @@ -642,7 +643,7 @@ func (p *PlayerBaseData) GetDataByUid(Uid interface{}) bool { p.Data.LoginTime = sqlStruck.LoginTime p.Data.UserName = sqlStruck.UserName p.Data.LogoutTime = sqlStruck.LogoutTime - p.Data.Todayolinetime = sqlStruck.Todayolinetime + p.Data.Node = sqlStruck.Node p.Data.Rolecreatetime = sqlStruck.Rolecreatetime p.Data.LastChampGroupID = sqlStruck.LastChampGroupID p.Data.ChampshipsGroupID = sqlStruck.ChampshipsGroupID diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index c0f9515b..204a295f 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -2632,7 +2632,7 @@ type ResPlayerBaseInfo struct { UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` - Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` + Node int32 `protobuf:"varint,17,opt,name=node,proto3" json:"node,omitempty"` Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` @@ -2786,9 +2786,9 @@ func (x *ResPlayerBaseInfo) GetLogoutTime() int32 { return 0 } -func (x *ResPlayerBaseInfo) GetTodayolinetime() int32 { +func (x *ResPlayerBaseInfo) GetNode() int32 { if x != nil { - return x.Todayolinetime + return x.Node } return 0 } @@ -27717,7 +27717,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "ResultCode\x18\x01 \x01(\x05R\n" + "ResultCode\")\n" + "\x11ReqPlayerBaseInfo\x12\x14\n" + - "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xfd\x05\n" + + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\"\xe9\x05\n" + "\x11ResPlayerBaseInfo\x12\x14\n" + "\x05dwUin\x18\x01 \x01(\x03R\x05dwUin\x12\x16\n" + "\x06energy\x18\x02 \x01(\x05R\x06energy\x12\x12\n" + @@ -27738,8 +27738,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "login_time\x18\x0f \x01(\x05R\tloginTime\x12\x1f\n" + "\vlogout_time\x18\x10 \x01(\x05R\n" + - "logoutTime\x12&\n" + - "\x0etodayolinetime\x18\x11 \x01(\x05R\x0etodayolinetime\x12&\n" + + "logoutTime\x12\x12\n" + + "\x04node\x18\x11 \x01(\x05R\x04node\x12&\n" + "\x0erolecreatetime\x18\x12 \x01(\x05R\x0erolecreatetime\x12\"\n" + "\fEmitOrderCnt\x18\x13 \x01(\x05R\fEmitOrderCnt\x12\x12\n" + "\x04NoAd\x18\x14 \x01(\x05R\x04NoAd\x12,\n" + From 2b8ce93ab15dcd9a9ad15f3080d1431bc8436511 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 14:48:26 +0800 Subject: [PATCH 071/104] =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_base_mod.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index 6764bc2d..6cd94576 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -423,6 +423,7 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { func (p *PlayerBaseData) ClearData() bool { p.Data.LogoutTime = int32(time.Now().Unix()) + p.Data.Node = 0 p.SaveDataFromDB("") return true } From 462f60a5da2d78827809c113fb48d7cfadef97bc Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 15:25:20 +0800 Subject: [PATCH 072/104] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 8f31db9a..02aeff29 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -433,6 +433,7 @@ func ReqGmCommand_(player *Player, Command string) error { DecorateMod.FinishList[i] = struct{}{} } DecorateMod.Progress = S + player.PushClientRes(DecorateMod.BackData()) case "resetCardSeasonFirst": CardMod := player.PlayMod.getCardMod() CardMod.SeasonFirst = false From 8ed0cf8889af2bac73914cc414e42bbfa044add6 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 15:27:10 +0800 Subject: [PATCH 073/104] =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + src/server/conf/server.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 66d65180..398fa56f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ src/server/goroutine.prof src/server/heap_after.pb.gz src/server/test/logs/* src/server/test/teLog/* +src/server/*.exe* diff --git a/src/server/conf/server.json b/src/server/conf/server.json index d77d57cb..782ff82b 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -14,7 +14,7 @@ "AppPath": "./app", "TELOGDIR" : "./teLog/", - "GameName": "Merge_Pet_Local", + "GameName": "pet_home_local", "ServerType":"node", @@ -26,7 +26,7 @@ "GameConfPath": "D:/Github/pet_home_server/src/server/gamedata/config/", "ListenAddr":":9001", - "CenterAddr": "127.0.0.1:9000", + "CenterAddr": "127.0.0.1:7000", "RemoteAddr":"127.0.0.1:9001", "RedisAddr":"127.0.0.1", From a387920c1f921b602afcb65b2c1fe4e0ad5d790b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 16:34:33 +0800 Subject: [PATCH 074/104] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/middleware/kafka/kafka.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/middleware/kafka/kafka.go b/src/server/middleware/kafka/kafka.go index d0f995e1..db7af4e7 100644 --- a/src/server/middleware/kafka/kafka.go +++ b/src/server/middleware/kafka/kafka.go @@ -36,7 +36,7 @@ func SendMsg(key, value []byte) error { Value: value, }) if err != nil { - log.Debug("WriteMessages err: %v", err) + //log.Debug("WriteMessages err: %v", err) } return err } From a7bbfc3d59182dbc1bac1bc98c7b8fc70844435c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 17:58:41 +0800 Subject: [PATCH 075/104] =?UTF-8?q?log=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/log_mgr.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/server/game/log_mgr.go b/src/server/game/log_mgr.go index 0f216af1..e333826d 100644 --- a/src/server/game/log_mgr.go +++ b/src/server/game/log_mgr.go @@ -197,6 +197,15 @@ func (L *LogMgr) InitManager() { } func (L *LogMgr) AddLog(logs *Log) { + // 复制结构体和 Param map,避免并发修改导致 json.Marshal 时 panic + copyLog := *logs + if logs.Param != nil { + newParam := make(map[string]interface{}, len(logs.Param)) + for k, v := range logs.Param { + newParam[k] = v + } + copyLog.Param = newParam + } // 如果已经开始关闭,直接丢弃 L.Lock.Lock() if L.closing { From 09a48aa1ed8a10e4c59d33567a66b224c71af36b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 18:12:03 +0800 Subject: [PATCH 076/104] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_base_mod.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index 6cd94576..0f092636 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -5,7 +5,6 @@ import ( "database/sql" "errors" "server/MergeConst" - "server/conf" baseCfg "server/conf/base" userCfg "server/conf/user" "server/db" @@ -108,7 +107,7 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { p.Data.Ban = sqlStruck.Ban p.Data.UserName = sqlStruck.UserName p.Data.LogoutTime = sqlStruck.LogoutTime - p.Data.Node = int32(conf.Server.ServerID) + p.Data.Node = sqlStruck.Node p.Data.Rolecreatetime = sqlStruck.Rolecreatetime p.Data.LastChampGroupID = sqlStruck.LastChampGroupID p.Data.ChampshipsGroupID = sqlStruck.ChampshipsGroupID From caff1b207a3e887c5522e21f5e1f899f235b3950 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 25 Dec 2025 18:21:54 +0800 Subject: [PATCH 077/104] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_base_mod.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index 0f092636..40fa17a7 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -5,6 +5,7 @@ import ( "database/sql" "errors" "server/MergeConst" + "server/conf" baseCfg "server/conf/base" userCfg "server/conf/user" "server/db" @@ -136,7 +137,7 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { sqlStruck.LoginTime = int32(BaseMod.LoginTime) sqlStruck.UserName = p.Data.UserName sqlStruck.LogoutTime = int32(BaseMod.LogoutTime) - sqlStruck.Node = p.Data.Node + sqlStruck.Node = int32(conf.Server.ServerID) sqlStruck.Rolecreatetime = p.Data.Rolecreatetime sqlStruck.NoAd = p.Data.NoAd sqlStruck.ChampshipsGroupID = p.Data.ChampshipsGroupID From f962718717ba3bc3352714dc3b2935efe247bd5a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 10:14:53 +0800 Subject: [PATCH 078/104] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_base_mod.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index 40fa17a7..0f092636 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -5,7 +5,6 @@ import ( "database/sql" "errors" "server/MergeConst" - "server/conf" baseCfg "server/conf/base" userCfg "server/conf/user" "server/db" @@ -137,7 +136,7 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { sqlStruck.LoginTime = int32(BaseMod.LoginTime) sqlStruck.UserName = p.Data.UserName sqlStruck.LogoutTime = int32(BaseMod.LogoutTime) - sqlStruck.Node = int32(conf.Server.ServerID) + sqlStruck.Node = p.Data.Node sqlStruck.Rolecreatetime = p.Data.Rolecreatetime sqlStruck.NoAd = p.Data.NoAd sqlStruck.ChampshipsGroupID = p.Data.ChampshipsGroupID From b6a3b6f0bea497fd100f2b492f7cd5451c11865f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:25:46 +0800 Subject: [PATCH 079/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E7=BD=AEGM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/db/Mysql.go | 11 +++++++++++ src/server/game/gm_handler.go | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index ea38de75..fecbf2de 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -306,6 +306,17 @@ func GetAccountInfoFromDb(name string) *Db_Account { return &res } +func ResetAccountData(oldName, newName string) error { + sqlStr := "UPDATE t_account SET user_name = ? WHERE user_name = ?" + _, err := SqlDb.Exec(sqlStr, newName, oldName) + if err != nil { + return err + } + sqlStr = "UPDATE t_player_baseinfo SET user_name = ? WHERE user_name = ?" + _, err = SqlDb.Exec(sqlStr, newName, oldName) + return err +} + func UpdateAccountInfoToDb(account *Db_Account) (err error) { _, err = SqlDb.Exec("UPDATE t_account SET user_password = ? WHERE user_name = ?", account.UserPassword, account.UserName) return diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 02aeff29..608be704 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -31,6 +31,7 @@ import ( "server/pkg/github.com/name5566/leaf/log" "strconv" "strings" + "time" "google.golang.org/protobuf/proto" ) @@ -547,6 +548,13 @@ func ReqGmCommand_(player *Player, Command string) error { PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.WeeklyDiscount = make(map[int]int) player.PlayroomBackData() + case "resetPlayer": + de := time.Now().Format("2006-01-02 15:04:05") + BaseMod := player.PlayMod.getBaseMod() + account := BaseMod.Account + newAccount := fmt.Sprintf("%s_reset_%s", account, de) + db.ResetAccountData(account, newAccount) + player.PushAndSendClienRes(&msg.ForceKickOut{}) case "resetCode": BaseMod := player.PlayMod.getBaseMod() BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) From eb3e1e376ee6480e8f2db1a1422a39d33a0f1c74 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:40:38 +0800 Subject: [PATCH 080/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E7=BD=AEGM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 608be704..7c096204 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -553,7 +553,11 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod := player.PlayMod.getBaseMod() account := BaseMod.Account newAccount := fmt.Sprintf("%s_reset_%s", account, de) - db.ResetAccountData(account, newAccount) + err := db.ResetAccountData(account, newAccount) + if err != nil { + log.Error("resetPlayer err:%s", err.Error()) + return err + } player.PushAndSendClienRes(&msg.ForceKickOut{}) case "resetCode": BaseMod := player.PlayMod.getBaseMod() From dd142fceaaede659349d4fee6452f74595ea3147 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:43:58 +0800 Subject: [PATCH 081/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E7=BD=AEGM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 7c096204..15e2ca4c 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -558,6 +558,7 @@ func ReqGmCommand_(player *Player, Command string) error { log.Error("resetPlayer err:%s", err.Error()) return err } + BaseMod.Account = newAccount player.PushAndSendClienRes(&msg.ForceKickOut{}) case "resetCode": BaseMod := player.PlayMod.getBaseMod() From f99ece75316721e6a522fc6224623d2f1993c119 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:56:35 +0800 Subject: [PATCH 082/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E7=BD=AEGM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 15e2ca4c..1818b0d6 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -509,6 +509,7 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod := p1.PlayMod.getBaseMod() BaseMod.Uid = player.M_DwUin BaseMod.NickName = player.PlayMod.getBaseMod().NickName + BaseMod.Account = player.PlayMod.getBaseMod().Account BaseMod.LoginTime = GoUtil.Now() BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) // deep copy p1.PlayMod.mod_list to avoid sharing internal pointers @@ -558,6 +559,7 @@ func ReqGmCommand_(player *Player, Command string) error { log.Error("resetPlayer err:%s", err.Error()) return err } + log.Debug("player reset: old account: %s; new account %s", account, newAccount) BaseMod.Account = newAccount player.PushAndSendClienRes(&msg.ForceKickOut{}) case "resetCode": From 07935149a708d64cf2fad9e9a7c16074d874b3be Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 26 Dec 2025 16:02:57 +0800 Subject: [PATCH 083/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=87=8D=E7=BD=AEGM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 1 + src/server/game/player_mod.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 1818b0d6..dd0f622e 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -561,6 +561,7 @@ func ReqGmCommand_(player *Player, Command string) error { } log.Debug("player reset: old account: %s; new account %s", account, newAccount) BaseMod.Account = newAccount + player.GetPlayerBaseMod().Data.UserName = newAccount player.PushAndSendClienRes(&msg.ForceKickOut{}) case "resetCode": BaseMod := player.PlayMod.getBaseMod() diff --git a/src/server/game/player_mod.go b/src/server/game/player_mod.go index 543b09e6..ad73eff0 100644 --- a/src/server/game/player_mod.go +++ b/src/server/game/player_mod.go @@ -170,10 +170,9 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) { is_update = true } BaseMod := &p.ModList.Base + PlayerBaseMod := player.GetPlayerBaseMod() if BaseMod.Uid == 0 { - PlayerBaseMod := player.GetPlayerBaseMod() BaseMod.Uid = PlayerBaseMod.Data.DwUin - BaseMod.SetAccount(PlayerBaseMod.Data.UserName) BaseMod.SetLevel(1) BaseMod.SetExp(0) BaseMod.SetEnergy(userCfg.GetInitEnergy()) @@ -183,6 +182,7 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) { BaseMod.FackBookId = PlayerBaseMod.Data.FaceBookId is_update = true } + BaseMod.SetAccount(PlayerBaseMod.Data.UserName) Ip := p.GetPlayer().GetIp() p.ModList.Handbook.InitData() p.ModList.Order.InitData() From 2ca9f004bd872f71434cdc9d4c97e87c7b0fd9e9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 11:48:50 +0800 Subject: [PATCH 084/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 98dfedc6..f6d431dc 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -588,15 +588,15 @@ func LoggingMiddleware() MessageMiddleware { return func(next MessageHandlerFunc) MessageHandlerFunc { return func(message *msg.Msg) (interface{}, error) { start := time.Now() - log.Debug("[Middleware] Processing message type: %d, time: %v", message.Type, start) + log.Debug("[Middleware] Processing message : %v, time: %v", message, start) result, err := next(message) duration := time.Since(start) if err != nil { - log.Error("[Middleware] Message type: %d failed, duration: %v, error: %v", message.Type, duration, err) + log.Error("[Middleware] Message : %v failed, duration: %v, error: %v", message, duration, err) } else { - log.Debug("[Middleware] Message type: %d success, duration: %v", message.Type, duration) + log.Debug("[Middleware] Message : %v success, duration: %v", message, duration) } return result, err @@ -634,7 +634,7 @@ func TimeoutMiddleware(timeout time.Duration) MessageMiddleware { case result := <-resultChan: return result.Data, result.Error case <-time.After(timeout): - log.Error("[Middleware] Message type: %d timeout after %v", message.Type, timeout) + log.Error("[Middleware] Message : %v timeout after %v", message, timeout) return nil, fmt.Errorf("message handler timeout") } } @@ -655,7 +655,7 @@ func RetryMiddleware(maxRetries int) MessageMiddleware { } if i < maxRetries { - log.Debug("[Middleware] Retry %d/%d for message type: %d, error: %v", i+1, maxRetries, message.Type, err) + log.Debug("[Middleware] Retry %d/%d for message : %v, error: %v", i+1, maxRetries, message, err) time.Sleep(time.Millisecond * 100 * time.Duration(i+1)) } } From cf11a71f034248129ad62923459f30e193b07ac3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 12:08:29 +0800 Subject: [PATCH 085/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index f6d431dc..c0752752 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -210,17 +210,16 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { } messageMgrData.mu.Unlock() - // 对玩家消息列表加锁 - messageMgrData.MessageList[int64(data.From)].mu.Lock() - defer messageMgrData.MessageList[int64(data.From)].mu.Unlock() log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) node := data.Extra.(int) messageMgrData.PlayerList[int64(data.From)] = node - // 发送离线消息 + // 对玩家消息列表加锁 messages := messageMgrData.MessageList[int64(data.From)] messages.mu.Lock() - defer messages.mu.Unlock() + defer messages.mu.Lock() + // 发送离线消息 + log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len(messages.Messages)) for _, message := range messages.Messages { go sendMessageAsync(message, node) } From 4cf882ecd26272ad689f4388663d01d083eea315 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 12:17:41 +0800 Subject: [PATCH 086/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index c0752752..82aacc66 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -201,28 +201,28 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool messageMgrData := getMessageData() + messageMgrData.mu.Lock() - messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) + node := data.Extra.(int) + messageMgrData.PlayerList[int64(data.From)] = node if _, ok := messageMgrData.MessageList[int64(data.From)]; !ok { messageMgrData.MessageList[int64(data.From)] = &MessageList{ Messages: []*msg.Msg{}, } } messageMgrData.mu.Unlock() - log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) - node := data.Extra.(int) - messageMgrData.PlayerList[int64(data.From)] = node // 对玩家消息列表加锁 messages := messageMgrData.MessageList[int64(data.From)] messages.mu.Lock() defer messages.mu.Lock() // 发送离线消息 - log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len(messages.Messages)) + len := len(messages.Messages) for _, message := range messages.Messages { go sendMessageAsync(message, node) } + log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len) return nil, nil } From f5fef796198fde4e2bd0d4d520db61e64e23f7de Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:03:27 +0800 Subject: [PATCH 087/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 69 ++++++++++++++-------------------- 1 file changed, 29 insertions(+), 40 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 82aacc66..50fb737b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -14,6 +14,8 @@ import ( "time" ) +var id = 1 + // 中间件函数类型 type MessageMiddleware func(MessageHandlerFunc) MessageHandlerFunc @@ -55,6 +57,7 @@ type MessageTask struct { Msg *msg.Msg Handler MessageHandlerFunc Result chan *TaskResult + id int } // 任务结果 @@ -200,23 +203,12 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool - messageMgrData := getMessageData() - - messageMgrData.mu.Lock() node := data.Extra.(int) - messageMgrData.PlayerList[int64(data.From)] = node - if _, ok := messageMgrData.MessageList[int64(data.From)]; !ok { - messageMgrData.MessageList[int64(data.From)] = &MessageList{ - Messages: []*msg.Msg{}, - } - } - messageMgrData.mu.Unlock() log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) - // 对玩家消息列表加锁 - messages := messageMgrData.MessageList[int64(data.From)] + messages := getMessge(int64(data.From)) messages.mu.Lock() - defer messages.mu.Lock() + defer messages.mu.Unlock() // 发送离线消息 len := len(messages.Messages) for _, message := range messages.Messages { @@ -234,17 +226,13 @@ func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) { } func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) { - messageMgrData := getMessageData() - Message, ok := messageMgrData.MessageList[int64(data.To)] - if !ok { - return nil, nil - } - Message.mu.Lock() - defer Message.mu.Unlock() - for i, msgItem := range Message.Messages { + messages := getMessge(int64(data.From)) + messages.mu.Lock() + defer messages.mu.Unlock() + for i, msgItem := range messages.Messages { if msgItem.UniKey == data.UniKey { // 删除消息 - Message.Messages = append(Message.Messages[:i], Message.Messages[i+1:]...) + messages.Messages = append(messages.Messages[:i], messages.Messages[i+1:]...) log.Debug("[Middleware] Comsume message success type: %d, player id: %v", msgItem.Type, msgItem.From) break } @@ -256,15 +244,7 @@ func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { PlayerId := int64(data.To) messageMgrData := getMessageData() // 遍历消息列表,发送消息给在线玩家 - messages, ok := messageMgrData.MessageList[int64(PlayerId)] - if !ok { - messageMgrData.mu.Lock() - messages = &MessageList{ - Messages: []*msg.Msg{}, - } - messageMgrData.MessageList[int64(PlayerId)] = messages - messageMgrData.mu.Unlock() - } + messages := getMessge(PlayerId) messages.mu.Lock() defer messages.mu.Unlock() messages.Messages = append(messages.Messages, data) @@ -300,6 +280,18 @@ func PlayerReplyMsgHandler(data *msg.Msg) (interface{}, error) { return nil, nil } +func getMessge(PlayerId int64) *MessageList { + messageMgrData := getMessageData() + messageMgrData.mu.Lock() + defer messageMgrData.mu.Unlock() + if _, ok := messageMgrData.MessageList[int64(PlayerId)]; !ok { + messageMgrData.MessageList[int64(PlayerId)] = &MessageList{ + Messages: []*msg.Msg{}, + } + } + return messageMgrData.MessageList[int64(PlayerId)] +} + // 添加中间件 func (m *MessageMgr) Use(middleware MessageMiddleware) { m.middlewares = append(m.middlewares, middleware) @@ -337,9 +329,10 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { if fun, ok := m.handler[message.HandleType]; ok { // 应用中间件 handlerWithMiddleware := m.applyMiddlewares(fun) - + id++ // 创建任务 task := &MessageTask{ + id: id, Msg: message, Handler: handlerWithMiddleware, Result: make(chan *TaskResult, 1), @@ -744,14 +737,10 @@ func saveMessage(m *msg.Msg) error { data := getMessageData() data.mu.Lock() defer data.mu.Unlock() - if _, ok := data.MessageList[int64(m.To)]; !ok { - data.MessageList[int64(m.To)] = &MessageList{ - Messages: []*msg.Msg{}, - } - } - data.MessageList[int64(m.To)].mu.Lock() - defer data.MessageList[int64(m.To)].mu.Unlock() - data.MessageList[int64(m.To)].Messages = append(data.MessageList[int64(m.To)].Messages, m) + messages := getMessge(int64(m.To)) + messages.mu.Lock() + defer messages.mu.Unlock() + messages.Messages = append(messages.Messages, m) return nil } From 42d59026fd48f6685e3771be2e2a05f5af5855cd Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:39:48 +0800 Subject: [PATCH 088/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 66 +++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 50fb737b..27e4987d 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -19,6 +19,12 @@ var id = 1 // 中间件函数类型 type MessageMiddleware func(MessageHandlerFunc) MessageHandlerFunc +var save_msg_type = []int{ + msg.HANDLE_MOD_PLAYER_MSG, + msg.HANDLE_MDO_CHAMPSHIP_INRANK, + msg.HANDLE_MOD_USER_VAR_SET, +} + type MessageMgr struct { *ServerMod middlewares []MessageMiddleware @@ -150,7 +156,7 @@ func NotifyAllPlayerMsg(m *msg.Msg) { messageMgrData := getMessageData() for PlayerId, node := range messageMgrData.PlayerList { m.To = int(PlayerId) - go SendMsgToNodeAsync(m, node) + SendMsgToNodeAsync(m, node) } } @@ -171,7 +177,7 @@ func ReplyPlayerMsgASync(m *msg.Msg, reply interface{}) (interface{}, error) { clone := m.Reply(reply) messageMgrData := getMessageData() if node, ok := messageMgrData.PlayerList[int64(m.From)]; ok { - go SendMsgToNodeAsync(clone, node) + SendMsgToNodeAsync(clone, node) } return nil, nil } @@ -212,7 +218,7 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 发送离线消息 len := len(messages.Messages) for _, message := range messages.Messages { - go sendMessageAsync(message, node) + SendMsgToNodeAsync(message, node) } log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len) return nil, nil @@ -249,7 +255,7 @@ func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) { defer messages.mu.Unlock() messages.Messages = append(messages.Messages, data) if node, ok := messageMgrData.PlayerList[int64(PlayerId)]; ok { - go SendMsgToNodeAsync(data, node) + SendMsgToNodeAsync(data, node) } return nil, nil } @@ -264,7 +270,7 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) { // 处理完后发送消费消息 if data.HandleType == msg.HANDLE_MOD_PLAYER_MSG { data.HandleType = msg.HANDLE_MOD_COMSUME_MSG - go SendMsgToCenterAsync(data) + SendMsgToCenterAsync(data) } return nil, nil } @@ -280,18 +286,6 @@ func PlayerReplyMsgHandler(data *msg.Msg) (interface{}, error) { return nil, nil } -func getMessge(PlayerId int64) *MessageList { - messageMgrData := getMessageData() - messageMgrData.mu.Lock() - defer messageMgrData.mu.Unlock() - if _, ok := messageMgrData.MessageList[int64(PlayerId)]; !ok { - messageMgrData.MessageList[int64(PlayerId)] = &MessageList{ - Messages: []*msg.Msg{}, - } - } - return messageMgrData.MessageList[int64(PlayerId)] -} - // 添加中间件 func (m *MessageMgr) Use(middleware MessageMiddleware) { m.middlewares = append(m.middlewares, middleware) @@ -715,20 +709,22 @@ func FriendMgrSend(m1 *msg.Msg) error { // 异步发送消息到指定节点 节点不在线则保存消息 func sendMessageAsync(m *msg.Msg, node int) error { err := mergeCluster.SendServerMsg(m, node) - if err != nil { + if err != nil && GoUtil.InArray(m.HandleType, save_msg_type) { saveMessage(m) return err } + deleteMessage(m) return nil } // 同步消息到指定节点 节点不在线则保存消息 func sendMessageSync(m *msg.Msg, node int) (*msg.Msg, error) { msg, err := mergeCluster.CallServerMsg(m, node) - if err != nil && conf.Server.ServerType == "center" { + if err != nil && conf.Server.ServerType == "center" && GoUtil.InArray(m.HandleType, save_msg_type) { saveMessage(m) return nil, err } + deleteMessage(m) return msg, nil } @@ -752,9 +748,29 @@ func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { }) } -// func GetServerData(Key string) (*msg.Msg, error) { -// return SendMsgToCenterSync(&msg.Msg{ -// HandleType: msg.HANDLE_MOD_VAR_GET, -// Extra: msg.VarData{Key: Key}, -// }) -// } +func getMessge(PlayerId int64) *MessageList { + messageMgrData := getMessageData() + messageMgrData.mu.Lock() + defer messageMgrData.mu.Unlock() + if _, ok := messageMgrData.MessageList[int64(PlayerId)]; !ok { + messageMgrData.MessageList[int64(PlayerId)] = &MessageList{ + Messages: []*msg.Msg{}, + } + } + return messageMgrData.MessageList[int64(PlayerId)] +} + +func deleteMessage(m *msg.Msg) error { + messages := getMessge(int64(m.To)) + messages.mu.Lock() + defer messages.mu.Unlock() + for i, msgItem := range messages.Messages { + if msgItem.UniKey == m.UniKey { + // 删除消息 + messages.Messages = append(messages.Messages[:i], messages.Messages[i+1:]...) + log.Debug("[Middleware] send message success; message: %v, player id: %v", msgItem, msgItem.From) + break + } + } + return nil +} From 83568e3c231e0f0c1b1ff6397781ff489975854b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:51:36 +0800 Subject: [PATCH 089/104] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/admin.go | 2 ++ src/server/game/mod_factory.go | 14 ++++++++++++++ src/server/game/player_data.go | 6 ------ src/server/test/order_test.go | 22 ++++++++++++++++++++++ 4 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 src/server/game/mod_factory.go create mode 100644 src/server/test/order_test.go diff --git a/src/server/game/admin.go b/src/server/game/admin.go index c0e026f3..923193f2 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -230,7 +230,9 @@ func ReqServerInfo(args []interface{}) error { } if vmStat != nil { res["FreeMem"] = vmStat.Available / (1024 * 1024) + res["UsageMem"] = vmStat.Used / (1024 * 1024) } else { + res["UsageMem"] = 0 res["FreeMem"] = 0 } res["Version"] = conf.Server.Version diff --git a/src/server/game/mod_factory.go b/src/server/game/mod_factory.go new file mode 100644 index 00000000..4d9187e6 --- /dev/null +++ b/src/server/game/mod_factory.go @@ -0,0 +1,14 @@ +package game + +import ( + "server/game/mod/chess" + "server/game/mod/decorate" +) + +func (p *Player) GetChessMod() *chess.ChessBorad { + return p.PlayMod.getChessMod() +} + +func (p *Player) GetDecorateMod() *decorate.Decorate { + return p.PlayMod.getDecorateMod() +} diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 6cd9be96..8a150400 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -6,7 +6,6 @@ import ( "encoding/json" "errors" "math" - "server/conf" activityCfg "server/conf/activity" cardCfg "server/conf/card" chargeCfg "server/conf/charge" @@ -869,11 +868,6 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { // 登录返回数据 func (p *Player) LoginBackData() { - SendMsgToCenterAsync(&MsgMod.Msg{ - From: int(p.M_DwUin), - HandleType: MsgMod.HANDLE_MOD_PLAYER_LOGIN, - Extra: conf.Server.ServerID, - }) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) p.PushClientRes(p.PlayMod.mod_list.Handbook.BackData()) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go new file mode 100644 index 00000000..456bc06d --- /dev/null +++ b/src/server/test/order_test.go @@ -0,0 +1,22 @@ +package test + +import ( + "fmt" + orderCfg "server/conf/order" + "server/game" + "server/game/mod/order" + "testing" +) + +func TestOrderStart(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("test") + game.G_GameLogicPtr.SetPlayer(p1) + ChessMod := p1.GetChessMod() + DecorateMod := p1.GetDecorateMod() + merge_id := []int{64, 249} + order_facotry := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) + star := order.GetOrderStar(merge_id, ChessMod.GetStarEmitList()) + star = int(float64(star)*float64(order_facotry)/1000+0.5) * 10 + fmt.Printf("star is %d", star) +} From 5c0ea843a02cad31933531ffdb8c9280bd0e96e0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:55:19 +0800 Subject: [PATCH 090/104] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/admin.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server/game/admin.go b/src/server/game/admin.go index 923193f2..b1eb58ee 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -219,15 +219,16 @@ func ReqServerInfo(args []interface{}) error { runtime.ReadMemStats(&m) res["TotalAlloc"] = fmt.Sprintf("%dM", m.TotalAlloc/(1024*1024)) // 2. 获取系统内存使用信息 - vmStat, err := mem.VirtualMemory() - if err == nil { - res["Sys"] = fmt.Sprintf("%.2f%%", vmStat.UsedPercent) - } + vmStat, _ := mem.VirtualMemory() // 3. 获取 CPU 使用率(一秒内采样) cpuPercent, err := cpu.Percent(time.Second, false) if err == nil && len(cpuPercent) > 0 { res["CPU"] = cpuPercent[0] } + res["Alloc"] = fmt.Sprintf("%dM", m.Alloc/(1024*1024)) + res["Sys"] = m.Sys / (1024 * 1024) + res["NumGC"] = m.NumGC + res["NumGoroutine"] = runtime.NumGoroutine() if vmStat != nil { res["FreeMem"] = vmStat.Available / (1024 * 1024) res["UsageMem"] = vmStat.Used / (1024 * 1024) From 2b5f0e099face20be8e680b4ca3954c5a6947849 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 16:35:59 +0800 Subject: [PATCH 091/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/cluster_func.go | 3 ++- src/server/game/message_mgr.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 5108b1eb..5f6d63d8 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -74,7 +74,7 @@ func ClusterJoin(a *Agent, m *msg.Msg) error { return nil } log.Debug("ClusterJoin ServerId %v", clusterJoin.ServerId) - connectRemote(clusterJoin.RemoteAddr, clusterJoin.ServerId, "server") + //connectRemote(clusterJoin.RemoteAddr, clusterJoin.ServerId, "server") return nil } @@ -104,6 +104,7 @@ func connectRemote(RemoteAddr string, ConnType int, ConnLabel string) error { client.Start() Center = client clients = append(clients, client) + log.Debug("connet remote to addr:%s", RemoteAddr) return nil } diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 27e4987d..10158eed 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -379,7 +379,7 @@ func NewWorkerPool(workers, maxQueue int) *WorkerPool { } pool.start() // 启动监控协程,负责动态扩缩容 - pool.monitorTick = time.NewTicker(500 * time.Millisecond) + pool.monitorTick = time.NewTicker(3000 * time.Millisecond) go pool.monitor() return pool } From d326a8c4cfc6831e9bc9af82389cbbe037baca2e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 16:43:07 +0800 Subject: [PATCH 092/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/Cluster.go | 2 +- src/server/cluster/cluster_func.go | 2 +- src/server/conf/conf.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/cluster/Cluster.go b/src/server/cluster/Cluster.go index 053909e5..400125eb 100644 --- a/src/server/cluster/Cluster.go +++ b/src/server/cluster/Cluster.go @@ -30,7 +30,7 @@ func Init() { server = new(network.TCPServer) server.Addr = conf.Server.ListenAddr server.MaxConnNum = int(math.MaxInt32) - server.PendingWriteNum = conf.PendingWriteNum + server.PendingWriteNum = 1 << 20 server.LenMsgLen = 4 server.MaxMsgLen = 4096 server.NewAgent = newServerAgent diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index 5f6d63d8..fdba8540 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -91,7 +91,7 @@ func connectRemote(RemoteAddr string, ConnType int, ConnLabel string) error { client := new(network.TCPClient) client.Addr = RemoteAddr client.ConnNum = 1 - client.PendingWriteNum = conf.PendingWriteNum + client.PendingWriteNum = 1 << 20 client.LenMsgLen = 4 client.MaxMsgLen = 4096 client.NewAgent = newAgent diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index b66d324d..eac00ff8 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -10,8 +10,8 @@ var ( LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf - PendingWriteNum = 1 << 20 // 1M - MaxMsgLen uint32 = 65536 // 16KB + PendingWriteNum = 65536 // 1M + MaxMsgLen uint32 = 65536 // 16KB HTTPTimeout = 10 * time.Second LenMsgLen = 2 LittleEndian = false From 59a8d692b1416e92d9efdf2442a483f839877824 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 16:45:37 +0800 Subject: [PATCH 093/104] =?UTF-8?q?=E7=9B=91=E6=8E=A7=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/main.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/main.go b/src/server/main.go index 0617485d..92ba76e1 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "net/http" _ "net/http/pprof" "runtime/debug" @@ -27,7 +28,8 @@ func main() { // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" - _ = http.ListenAndServe("127.0.0.1:6060", nil) + port := 6060 + conf.Server.ServerID + _ = http.ListenAndServe(fmt.Sprintf("127.0.0.1:%d", port), nil) }() leaf.Run( From ed7ec40d34d18c4e58f89f7b20da06a616eb0948 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 30 Dec 2025 18:33:06 +0800 Subject: [PATCH 094/104] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 10158eed..d43ddb1c 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -198,7 +198,8 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { messageMgrData.mu.Lock() TempMessageList := messageMgrData.MessageList messageMgrData.MessageList = make(map[int64]*MessageList) - messageMgrData.mu.Unlock() + defer messageMgrData.mu.Unlock() + log.Debug("[Middleware] Cluster sync send temp message len: %d", len(TempMessageList)) for _, Message := range TempMessageList { for _, msgItem := range Message.Messages { SendMsgToCenterAsync(msgItem) From 4b471ad95df6f2b7bffad5b0842fb0bc3904d1d9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 12:01:15 +0800 Subject: [PATCH 095/104] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pkg/github.com/name5566/leaf/network/tcp_server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/pkg/github.com/name5566/leaf/network/tcp_server.go b/src/server/pkg/github.com/name5566/leaf/network/tcp_server.go index 42b15f86..2b25178b 100644 --- a/src/server/pkg/github.com/name5566/leaf/network/tcp_server.go +++ b/src/server/pkg/github.com/name5566/leaf/network/tcp_server.go @@ -2,6 +2,7 @@ package network import ( "net" + "server/conf" "server/pkg/github.com/name5566/leaf/log" "sync" "time" @@ -83,7 +84,9 @@ func (server *TCPServer) run() { return } tempDelay = 0 - + if conf.Server.ServerType == "center" { + log.Debug("accept connection from %v", conn.RemoteAddr()) + } server.mutexConns.Lock() if len(server.conns) >= server.MaxConnNum { server.mutexConns.Unlock() From 0a53f88af7eee0b58fdd8e71a97b19c45d78495a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 14:02:26 +0800 Subject: [PATCH 096/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/Cluster.go | 2 +- src/server/cluster/cluster_func.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/cluster/Cluster.go b/src/server/cluster/Cluster.go index 400125eb..e6a12c53 100644 --- a/src/server/cluster/Cluster.go +++ b/src/server/cluster/Cluster.go @@ -30,7 +30,7 @@ func Init() { server = new(network.TCPServer) server.Addr = conf.Server.ListenAddr server.MaxConnNum = int(math.MaxInt32) - server.PendingWriteNum = 1 << 20 + server.PendingWriteNum = 1 << 14 server.LenMsgLen = 4 server.MaxMsgLen = 4096 server.NewAgent = newServerAgent diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index fdba8540..d02bdce9 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -91,7 +91,7 @@ func connectRemote(RemoteAddr string, ConnType int, ConnLabel string) error { client := new(network.TCPClient) client.Addr = RemoteAddr client.ConnNum = 1 - client.PendingWriteNum = 1 << 20 + client.PendingWriteNum = 1 << 14 client.LenMsgLen = 4 client.MaxMsgLen = 4096 client.NewAgent = newAgent From 98c187869b386300822ca6afa1f4d71a265a4222 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 14:47:21 +0800 Subject: [PATCH 097/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 8a150400..6cd9be96 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "math" + "server/conf" activityCfg "server/conf/activity" cardCfg "server/conf/card" chargeCfg "server/conf/charge" @@ -868,6 +869,11 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { // 登录返回数据 func (p *Player) LoginBackData() { + SendMsgToCenterAsync(&MsgMod.Msg{ + From: int(p.M_DwUin), + HandleType: MsgMod.HANDLE_MOD_PLAYER_LOGIN, + Extra: conf.Server.ServerID, + }) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) p.PushClientRes(p.PlayMod.mod_list.Handbook.BackData()) p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) From 60725fca2a9f8cbb65660c0b727dfe25a7a8ea6c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 14:47:50 +0800 Subject: [PATCH 098/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index d43ddb1c..5f71f61b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -211,6 +211,8 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool node := data.Extra.(int) + messageMgrData := getMessageData() + messageMgrData.PlayerList[int64(data.From)] = node log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) // 对玩家消息列表加锁 messages := getMessge(int64(data.From)) From 9ac20a99b654c4a7bc82cc82f74ce43a168e8ea6 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 15:06:40 +0800 Subject: [PATCH 099/104] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 1 + src/server/game/player_data.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 5f71f61b..19948823 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -224,6 +224,7 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { SendMsgToNodeAsync(message, node) } log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len) + ReplyPlayerMsgASync(data, nil) return nil, nil } diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 6cd9be96..a8228145 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -869,7 +869,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { // 登录返回数据 func (p *Player) LoginBackData() { - SendMsgToCenterAsync(&MsgMod.Msg{ + SendMsgToCenterSync(&MsgMod.Msg{ From: int(p.M_DwUin), HandleType: MsgMod.HANDLE_MOD_PLAYER_LOGIN, Extra: conf.Server.ServerID, From 4f9d0471968470a336547a9b6b855b94215ccc4c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 31 Dec 2025 15:29:04 +0800 Subject: [PATCH 100/104] =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/conf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index eac00ff8..d60d8cac 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -10,7 +10,7 @@ var ( LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf - PendingWriteNum = 65536 // 1M + PendingWriteNum = 64 // 客户端链接的写入消息队列长度 MaxMsgLen uint32 = 65536 // 16KB HTTPTimeout = 10 * time.Second LenMsgLen = 2 From dceed4be1e2aefc72fb437951ea275445f615ad4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 29 Dec 2025 17:26:34 +0800 Subject: [PATCH 101/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index dd0f622e..c87b4f3d 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -22,6 +22,7 @@ import ( "server/game/mod/emoji" "server/game/mod/face" "server/game/mod/friend" + "server/game/mod/handbook" "server/game/mod/item" MsgMod "server/game/mod/msg" "server/game/mod/order" @@ -279,6 +280,12 @@ func ReqGmCommand_(player *Player, Command string) error { for _, v := range mergeDataCfg.GetAllId() { HandbookMod.SetHandbook(v) } + case "handbookReward": + HandbookMod := player.PlayMod.getHandbookMod() + for _, v := range mergeDataCfg.GetAllId() { + HandbookMod.BookList[v] = handbook.STATUS_REWARD + } + player.PushClientRes(HandbookMod.BackData()) case "deleteOrder": Id, _ := strconv.Atoi(arg[1]) OrderMod := player.PlayMod.getOrderMod() From 608d7d4168b4e91ceed6751f227e91e265d59d06 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 29 Dec 2025 17:30:57 +0800 Subject: [PATCH 102/104] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index c87b4f3d..97017f87 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -279,6 +279,7 @@ func ReqGmCommand_(player *Player, Command string) error { HandbookMod := player.PlayMod.getHandbookMod() for _, v := range mergeDataCfg.GetAllId() { HandbookMod.SetHandbook(v) + HandbookMod.BookList[v] = handbook.STATUS_REWARD } case "handbookReward": HandbookMod := player.PlayMod.getHandbookMod() @@ -398,6 +399,7 @@ func ReqGmCommand_(player *Player, Command string) error { CardList := cardCfg.GetAllCardId(CardMod.Round) for _, v := range CardList { player.AddCard(v) + CardMod.Handbook[v] = card.HANDBOOK_STATUS_GET } player.PushClientRes(CardMod.NotifyCard()) case "resetRankUser": From cf8b5f9c2331a87059a9072a20aeb84b7db1c086 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Sun, 4 Jan 2026 12:08:36 +0800 Subject: [PATCH 103/104] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/conf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/conf/conf.go b/src/server/conf/conf.go index d60d8cac..0da14e78 100644 --- a/src/server/conf/conf.go +++ b/src/server/conf/conf.go @@ -10,7 +10,7 @@ var ( LogFlag = log.LstdFlags | log.Lmicroseconds // gate conf - PendingWriteNum = 64 // 客户端链接的写入消息队列长度 + PendingWriteNum = 2000 // 客户端链接的写入消息队列长度 MaxMsgLen uint32 = 65536 // 16KB HTTPTimeout = 10 * time.Second LenMsgLen = 2 From 739a3286747a7d2e9fa916c890a444f1d19f73b2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:42:59 +0800 Subject: [PATCH 104/104] =?UTF-8?q?=E6=A3=8B=E5=AD=90=E5=87=BA=E5=94=AE?= =?UTF-8?q?=E4=B9=9F=E4=BC=9A=E5=A2=9E=E5=8A=A0=E6=B4=BB=E5=8A=A8=E4=BB=A3?= =?UTF-8?q?=E5=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_chess_mod.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/player_chess_mod.go b/src/server/game/player_chess_mod.go index b78fc485..4ebefa4b 100644 --- a/src/server/game/player_chess_mod.go +++ b/src/server/game/player_chess_mod.go @@ -262,6 +262,9 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa "get_star_num": get_star_num, }) itemList = item.Merge(itemList, items) + // 获取活动道具 + ActItem := player.GetActivityItem(GoUtil.Int32ToInt(v.ActType)) + itemList = item.Merge(itemList, ActItem) case msg.HANDLE_TYPE_REMOVE: //移除棋子 ChessMod.RemoveChess(ChessId) }