From e23e35def8bf29736c1e4c3ed56781f51ed94773 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 11 Jul 2024 17:23:32 +0800 Subject: [PATCH] update --- data/DB_GameItem.dat | Bin 9047 -> 9259 bytes data/DB_GameItem.json | 329 ++++++++----- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Skin.dat | 3 + data/DB_Skin.json | 22 + data/DB_SkinLevel.dat | 19 + data/DB_SkinLevel.json | 126 +++++ data/DB_Task.dat | Bin 2441 -> 5299 bytes data/DB_Task.json | 254 +++++++++- protocol/player/player.pb.go | 4 +- protocol/player/player.proto | 4 +- protocol/server/pbdata.pb.go | 876 +++++++++++++++++++++++---------- protocol/server/pbdata.proto | 56 ++- protocol/tienlen/tienlen.proto | 2 +- xlsx/DB_GameItem.xlsx | Bin 24062 -> 24480 bytes xlsx/DB_Skin.xlsx | Bin 0 -> 10927 bytes xlsx/DB_SkinLevel.xlsx | Bin 0 -> 9914 bytes xlsx/DB_Task.xlsx | Bin 21841 -> 22462 bytes 18 files changed, 1288 insertions(+), 407 deletions(-) create mode 100644 data/DB_Skin.dat create mode 100644 data/DB_Skin.json create mode 100644 data/DB_SkinLevel.dat create mode 100644 data/DB_SkinLevel.json create mode 100644 xlsx/DB_Skin.xlsx create mode 100644 xlsx/DB_SkinLevel.xlsx diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 65207bc56a9b240e48931b534645b810c1c634f3..7ad9b15309322920b4d762af537f323c53e93a1f 100644 GIT binary patch delta 723 zcmccaw%TLED<)AvaDXSFHE7#JrTids)zD9K* zZ6}+EL)0!5vz^>4E({g7pZrK%1kSdQK(PCuY>8A(cvw#kl113FLRJNCKbIUrJV6c-_WO~Q^J2@Q=S%0kY-oJGtY3;IUwevm;IUwd^H5X_v=oe-#2HHXZV~RXA diff --git a/data/DB_Skin.dat b/data/DB_Skin.dat new file mode 100644 index 0000000..927fddc --- /dev/null +++ b/data/DB_Skin.dat @@ -0,0 +1,3 @@ + +-mango icon_300001" 活力芒果*mg_01 +7mango icon_300002" 财神送福*mg_060: \ No newline at end of file diff --git a/data/DB_Skin.json b/data/DB_Skin.json new file mode 100644 index 0000000..62a681c --- /dev/null +++ b/data/DB_Skin.json @@ -0,0 +1,22 @@ +{ + "Arr": [ + { + "Id": 300001, + "Model": "mango", + "SkinPic": "icon_300001", + "SkinName": "活力芒果", + "SkinType": "mg_01" + }, + { + "Id": 300002, + "Model": "mango", + "SkinPic": "icon_300002", + "SkinName": "财神送福", + "SkinType": "mg_06", + "UnlockType": 1, + "UnlockItem": { + "300000": 1 + } + } + ] +} \ No newline at end of file diff --git a/data/DB_SkinLevel.dat b/data/DB_SkinLevel.dat new file mode 100644 index 0000000..91eb892 --- /dev/null +++ b/data/DB_SkinLevel.dat @@ -0,0 +1,19 @@ + + +" +" +" +" +" + +" + " + +" + " + " + " +" + " + +" \ No newline at end of file diff --git a/data/DB_SkinLevel.json b/data/DB_SkinLevel.json new file mode 100644 index 0000000..944abdb --- /dev/null +++ b/data/DB_SkinLevel.json @@ -0,0 +1,126 @@ +{ + "Arr": [ + { + "Id": 1, + "SkinId": 300001, + "Level": 1 + }, + { + "Id": 2, + "SkinId": 300001, + "Level": 2, + "UpItem": { + "300001": 20 + } + }, + { + "Id": 3, + "SkinId": 300001, + "Level": 3, + "UpItem": { + "300001": 21 + } + }, + { + "Id": 4, + "SkinId": 300001, + "Level": 4, + "UpItem": { + "300001": 22 + } + }, + { + "Id": 5, + "SkinId": 300001, + "Level": 5, + "UpItem": { + "300001": 23 + } + }, + { + "Id": 6, + "SkinId": 300001, + "Level": 6, + "UpItem": { + "300001": 24 + } + }, + { + "Id": 7, + "SkinId": 300002, + "Level": 1 + }, + { + "Id": 8, + "SkinId": 300002, + "Level": 2, + "UpItem": { + "300002": 20 + } + }, + { + "Id": 9, + "SkinId": 300002, + "Level": 3, + "UpItem": { + "300002": 21 + } + }, + { + "Id": 10, + "SkinId": 300002, + "Level": 4, + "UpItem": { + "300002": 22 + } + }, + { + "Id": 11, + "SkinId": 300002, + "Level": 5, + "UpItem": { + "300002": 23 + } + }, + { + "Id": 12, + "SkinId": 300002, + "Level": 6, + "UpItem": { + "300002": 24 + } + }, + { + "Id": 13, + "SkinId": 300002, + "Level": 7, + "UpItem": { + "300002": 25 + } + }, + { + "Id": 14, + "SkinId": 300002, + "Level": 8, + "UpItem": { + "300002": 26 + } + }, + { + "Id": 15, + "SkinId": 300002, + "Level": 9, + "UpItem": { + "300002": 27 + } + }, + { + "Id": 16, + "SkinId": 300002, + "Level": 10, + "UpItem": { + "300002": 28 + } + } + ] +} \ No newline at end of file diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 2747ac48e4e276acd5894390e6a1456343c0dabc..9358f5bb5f267119d1a07838cebbbacb50e35570 100644 GIT binary patch literal 5299 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 diff --git a/data/DB_Task.json b/data/DB_Task.json index bb12f6d..e427618 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -3,6 +3,8 @@ { "Id": 1, "Order": 1, + "Name": "每日任务", + "Des": "充值任意金额", "ActivityType": 1, "TaskType": 7, "TargetTimes": 1, @@ -19,6 +21,8 @@ { "Id": 2, "Order": 2, + "Name": "每日任务", + "Des": "购买一次金币", "ActivityType": 1, "TaskType": 2, "TargetTimes": 1, @@ -35,6 +39,8 @@ { "Id": 3, "Order": 3, + "Name": "每日任务", + "Des": "每日登录游戏", "ActivityType": 1, "TaskType": 3, "TargetTimes": 1, @@ -47,6 +53,8 @@ { "Id": 4, "Order": 4, + "Name": "每日任务", + "Des": "任意玩法对局胜利1次", "ActivityType": 1, "TaskType": 4, "TargetTimes": 1, @@ -60,6 +68,8 @@ { "Id": 5, "Order": 5, + "Name": "每日任务", + "Des": "任意玩法对局10次", "ActivityType": 1, "TaskType": 5, "TargetTimes": 10, @@ -73,6 +83,8 @@ { "Id": 6, "Order": 6, + "Name": "每日任务", + "Des": "在排位赛中对局一次", "ActivityType": 1, "TaskType": 6, "TargetTimes": 1, @@ -86,6 +98,7 @@ { "Id": 7, "Order": 1, + "Name": "周活跃任务", "ActivityType": 2, "TaskType": 14, "TargetTimes": 200, @@ -97,6 +110,7 @@ { "Id": 8, "Order": 2, + "Name": "周活跃任务", "ActivityType": 2, "TaskType": 14, "TargetTimes": 300, @@ -108,6 +122,7 @@ { "Id": 9, "Order": 3, + "Name": "周活跃任务", "ActivityType": 2, "TaskType": 14, "TargetTimes": 400, @@ -119,6 +134,7 @@ { "Id": 10, "Order": 4, + "Name": "周活跃任务", "ActivityType": 2, "TaskType": 14, "TargetTimes": 500, @@ -130,6 +146,7 @@ { "Id": 11, "Order": 5, + "Name": "周活跃任务", "ActivityType": 2, "TaskType": 14, "TargetTimes": 600, @@ -141,6 +158,8 @@ { "Id": 12, "Order": 1, + "Name": "新手任务", + "Des": "绑定邀请人", "ActivityType": 3, "TaskType": 10, "TargetTimes": 1, @@ -153,6 +172,8 @@ { "Id": 13, "Order": 2, + "Name": "新手任务", + "Des": "游玩Tienlen10次", "ActivityType": 3, "TaskType": 5, "TargetTimes": 10, @@ -166,6 +187,8 @@ { "Id": 14, "Order": 3, + "Name": "新手任务", + "Des": "累计获取10M金币", "ActivityType": 3, "TaskType": 11, "TargetTimes": 10000000, @@ -177,6 +200,8 @@ { "Id": 15, "Order": 4, + "Name": "新手任务", + "Des": "Tienlen获胜10次", "ActivityType": 3, "TaskType": 4, "TargetTimes": 10, @@ -190,6 +215,8 @@ { "Id": 16, "Order": 5, + "Name": "新手任务", + "Des": "成功邀请3人", "ActivityType": 3, "TaskType": 16, "TargetTimes": 3, @@ -202,6 +229,8 @@ { "Id": 21, "Order": 6, + "Name": "新手任务", + "Des": "被邀请人累计充值0.1$", "ActivityType": 3, "TaskType": 18, "TargetTimes": 10, @@ -214,6 +243,8 @@ { "Id": 22, "Order": 7, + "Name": "新手任务", + "Des": "成功邀请5人", "ActivityType": 3, "TaskType": 16, "TargetTimes": 5, @@ -226,6 +257,8 @@ { "Id": 23, "Order": 8, + "Name": "新手任务", + "Des": "成功邀请10人", "ActivityType": 3, "TaskType": 16, "TargetTimes": 10, @@ -238,6 +271,8 @@ { "Id": 24, "Order": 9, + "Name": "新手任务", + "Des": "被邀请人累计充值1$", "ActivityType": 3, "TaskType": 18, "TargetTimes": 100, @@ -250,6 +285,8 @@ { "Id": 25, "Order": 10, + "Name": "新手任务", + "Des": "被邀请人累计充值5$", "ActivityType": 3, "TaskType": 18, "TargetTimes": 500, @@ -262,6 +299,8 @@ { "Id": 26, "Order": 11, + "Name": "新手任务", + "Des": "被邀请人累计充值10$", "ActivityType": 3, "TaskType": 18, "TargetTimes": 1000, @@ -274,6 +313,8 @@ { "Id": 17, "Order": 1, + "Name": "邀请任务", + "Des": "邀请积分达到10000", "ActivityType": 4, "TaskType": 13, "TargetTimes": 10000, @@ -286,6 +327,8 @@ { "Id": 18, "Order": 2, + "Name": "邀请任务", + "Des": "邀请积分达到50000", "ActivityType": 4, "TaskType": 13, "TargetTimes": 50000, @@ -298,6 +341,8 @@ { "Id": 19, "Order": 3, + "Name": "邀请任务", + "Des": "邀请积分达到200000", "ActivityType": 4, "TaskType": 13, "TargetTimes": 200000, @@ -310,6 +355,8 @@ { "Id": 20, "Order": 4, + "Name": "邀请任务", + "Des": "邀请积分达到1000000", "ActivityType": 4, "TaskType": 13, "TargetTimes": 1000000, @@ -322,6 +369,8 @@ { "Id": 10001, "Order": 1, + "Name": "成就", + "Des": "累计获取100M金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 100000000, @@ -335,6 +384,8 @@ { "Id": 10002, "Order": 7, + "Name": "成就", + "Des": "累计获取1B金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 1000000000, @@ -348,6 +399,8 @@ { "Id": 10003, "Order": 13, + "Name": "成就", + "Des": "累计获取10B金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 10000000000, @@ -361,6 +414,8 @@ { "Id": 10004, "Order": 19, + "Name": "成就", + "Des": "累计获取100B金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 100000000000, @@ -374,6 +429,8 @@ { "Id": 10005, "Order": 25, + "Name": "成就", + "Des": "累计获取500B金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 500000000000, @@ -387,6 +444,8 @@ { "Id": 10006, "Order": 31, + "Name": "成就", + "Des": "累计获取1000B金币", "ActivityType": 5, "TaskType": 11, "TargetTimes": 1000000000000, @@ -400,6 +459,8 @@ { "Id": 20001, "Order": 2, + "Name": "成就", + "Des": "游玩Tienlen100次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 100, @@ -413,6 +474,8 @@ { "Id": 20002, "Order": 8, + "Name": "成就", + "Des": "游玩Tienlen1000次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 1000, @@ -426,6 +489,8 @@ { "Id": 20003, "Order": 14, + "Name": "成就", + "Des": "游玩Tienlen5000次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 5000, @@ -439,6 +504,8 @@ { "Id": 20004, "Order": 20, + "Name": "成就", + "Des": "游玩Tienlen10000次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 10000, @@ -452,6 +519,8 @@ { "Id": 20005, "Order": 26, + "Name": "成就", + "Des": "游玩Tienlen50000次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 50000, @@ -465,6 +534,8 @@ { "Id": 20006, "Order": 32, + "Name": "成就", + "Des": "游玩Tienlen100000次", "ActivityType": 5, "TaskType": 5, "TargetTimes": 100000, @@ -478,6 +549,8 @@ { "Id": 30001, "Order": 3, + "Name": "成就", + "Des": "Tienlen获胜100次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 100, @@ -491,6 +564,8 @@ { "Id": 30002, "Order": 9, + "Name": "成就", + "Des": "Tienlen获胜1000次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 1000, @@ -504,6 +579,8 @@ { "Id": 30003, "Order": 15, + "Name": "成就", + "Des": "Tienlen获胜5000次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 5000, @@ -517,6 +594,8 @@ { "Id": 30004, "Order": 21, + "Name": "成就", + "Des": "Tienlen获胜10000次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 10000, @@ -530,6 +609,8 @@ { "Id": 30005, "Order": 27, + "Name": "成就", + "Des": "Tienlen获胜50000次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 50000, @@ -543,6 +624,8 @@ { "Id": 30006, "Order": 33, + "Name": "成就", + "Des": "Tienlen获胜100000次", "ActivityType": 5, "TaskType": 4, "TargetTimes": 100000, @@ -556,6 +639,8 @@ { "Id": 40001, "Order": 4, + "Name": "成就", + "Des": "在排位赛中对局100次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 100, @@ -569,6 +654,8 @@ { "Id": 40002, "Order": 10, + "Name": "成就", + "Des": "在排位赛中对局1000次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 1000, @@ -582,6 +669,8 @@ { "Id": 40003, "Order": 16, + "Name": "成就", + "Des": "在排位赛中对局5000次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 5000, @@ -595,6 +684,8 @@ { "Id": 40004, "Order": 22, + "Name": "成就", + "Des": "在排位赛中对局10000次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 10000, @@ -608,6 +699,8 @@ { "Id": 40005, "Order": 28, + "Name": "成就", + "Des": "在排位赛中对局50000次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 50000, @@ -621,6 +714,8 @@ { "Id": 40006, "Order": 34, + "Name": "成就", + "Des": "在排位赛中对局100000次", "ActivityType": 5, "TaskType": 6, "TargetTimes": 100000, @@ -634,6 +729,8 @@ { "Id": 50001, "Order": 5, + "Name": "成就", + "Des": "累积充值$0.1", "ActivityType": 5, "TaskType": 7, "TargetTimes": 10, @@ -650,6 +747,8 @@ { "Id": 50002, "Order": 11, + "Name": "成就", + "Des": "累积充值$1", "ActivityType": 5, "TaskType": 7, "TargetTimes": 100, @@ -666,6 +765,8 @@ { "Id": 50003, "Order": 17, + "Name": "成就", + "Des": "累积充值$10", "ActivityType": 5, "TaskType": 7, "TargetTimes": 1000, @@ -682,6 +783,8 @@ { "Id": 50004, "Order": 23, + "Name": "成就", + "Des": "累积充值$100", "ActivityType": 5, "TaskType": 7, "TargetTimes": 10000, @@ -698,6 +801,8 @@ { "Id": 50005, "Order": 29, + "Name": "成就", + "Des": "累积充值$500", "ActivityType": 5, "TaskType": 7, "TargetTimes": 50000, @@ -714,6 +819,8 @@ { "Id": 50006, "Order": 35, + "Name": "成就", + "Des": "累积充值$1000", "ActivityType": 5, "TaskType": 7, "TargetTimes": 100000, @@ -730,6 +837,8 @@ { "Id": 60001, "Order": 6, + "Name": "成就", + "Des": "累积登录10天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 10, @@ -742,6 +851,8 @@ { "Id": 60002, "Order": 12, + "Name": "成就", + "Des": "累积登录20天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 20, @@ -754,6 +865,8 @@ { "Id": 60003, "Order": 18, + "Name": "成就", + "Des": "累积登录50天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 50, @@ -766,6 +879,8 @@ { "Id": 60004, "Order": 24, + "Name": "成就", + "Des": "累积登录100天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 100, @@ -778,6 +893,8 @@ { "Id": 60005, "Order": 30, + "Name": "成就", + "Des": "累积登录500天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 500, @@ -790,6 +907,8 @@ { "Id": 60006, "Order": 36, + "Name": "成就", + "Des": "累积登录1000天", "ActivityType": 5, "TaskType": 15, "TargetTimes": 1000, @@ -802,6 +921,8 @@ { "Id": 11001, "Order": 1, + "Name": "通行证", + "Des": "领取转盘签到奖励", "ActivityType": 6, "TaskType": 17, "TargetTimes": 1, @@ -813,21 +934,21 @@ { "Id": 11002, "Order": 2, + "Name": "通行证", + "Des": "在线时长60分钟", "ActivityType": 6, "TaskType": 21, "TargetTimes": 3600, "FinishTimes": 1, "Award": { "100011": 20 - }, - "Position": [ - 1, - 1 - ] + } }, { "Id": 11003, "Order": 3, + "Name": "通行证", + "Des": "购买任意金币1次", "ActivityType": 6, "TaskType": 2, "TargetTimes": 1, @@ -843,6 +964,8 @@ { "Id": 11004, "Order": 4, + "Name": "通行证", + "Des": "购买任意存钱罐1次", "ActivityType": 6, "TaskType": 22, "TargetTimes": 1, @@ -854,6 +977,8 @@ { "Id": 11005, "Order": 5, + "Name": "通行证", + "Des": "参与大众场对局获得胜利3次", "ActivityType": 6, "TaskType": 23, "TargetTimes": 3, @@ -866,6 +991,8 @@ { "Id": 11006, "Order": 6, + "Name": "通行证", + "Des": "参与排位赛获得胜利3次", "ActivityType": 6, "TaskType": 30, "TargetTimes": 3, @@ -878,6 +1005,8 @@ { "Id": 11007, "Order": 7, + "Name": "通行证", + "Des": "邀请好友进行私人桌对局1次", "ActivityType": 6, "TaskType": 24, "TargetTimes": 1, @@ -890,6 +1019,8 @@ { "Id": 11008, "Order": 8, + "Name": "通行证", + "Des": "成功参与比赛场3次", "ActivityType": 6, "TaskType": 25, "TargetTimes": 3, @@ -902,6 +1033,8 @@ { "Id": 11009, "Order": 9, + "Name": "通行证", + "Des": "比赛场获得前十名1次", "ActivityType": 6, "TaskType": 26, "TargetTimes": 1, @@ -914,21 +1047,21 @@ { "Id": 11010, "Order": 10, + "Name": "通行证", + "Des": "今日累计消耗100钻石", "ActivityType": 6, "TaskType": 27, "TargetTimes": 100, "FinishTimes": 1, "Award": { "100011": 80 - }, - "Position": [ - 1, - 1 - ] + } }, { "Id": 11011, "Order": 11, + "Name": "通行证", + "Des": "充值任意金额", "ActivityType": 6, "TaskType": 7, "TargetTimes": 1, @@ -940,6 +1073,107 @@ 1, 1 ] + }, + { + "Id": 12001, + "Order": 1, + "Name": "通行证", + "Des": "累计领取转盘签到奖励7天", + "ActivityType": 7, + "TaskType": 17, + "TargetTimes": 7, + "FinishTimes": 1, + "Award": { + "100011": 50 + } + }, + { + "Id": 12002, + "Order": 2, + "Name": "通行证", + "Des": "购买进阶典藏通行证", + "ActivityType": 7, + "TaskType": 31, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "100011": 50 + } + }, + { + "Id": 12003, + "Order": 3, + "Name": "通行证", + "Des": "累计充值$9.99", + "ActivityType": 7, + "TaskType": 7, + "TargetTimes": 999, + "FinishTimes": 1, + "Award": { + "100011": 50 + }, + "Position": [ + 1, + 1 + ] + }, + { + "Id": 12004, + "Order": 4, + "Name": "通行证", + "Des": "累计充值$19.99", + "ActivityType": 7, + "TaskType": 7, + "TargetTimes": 1999, + "FinishTimes": 1, + "Award": { + "100011": 100 + }, + "Position": [ + 1, + 1 + ] + }, + { + "Id": 12005, + "Order": 5, + "Name": "通行证", + "Des": "累计赚取10B金币", + "ActivityType": 7, + "TaskType": 11, + "TargetTimes": 10000000000, + "FinishTimes": 1, + "Award": { + "100011": 50 + }, + "GameType": 1 + }, + { + "Id": 12006, + "Order": 6, + "Name": "通行证", + "Des": "成功参加任意比赛20次", + "ActivityType": 7, + "TaskType": 25, + "TargetTimes": 20, + "FinishTimes": 1, + "Award": { + "100011": 50 + }, + "GameType": 1 + }, + { + "Id": 12007, + "Order": 7, + "Name": "通行证", + "Des": "累计在线时长1200分钟", + "ActivityType": 7, + "TaskType": 21, + "TargetTimes": 72000, + "FinishTimes": 1, + "Award": { + "100011": 50 + } } ] } \ No newline at end of file diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index d9b8509..a5e9bd6 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -9453,7 +9453,7 @@ type CSExchangeChannel struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 0所有 1:兑换 2:v卡掉落 + Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 0所有 1:兑换 2:v卡掉落 ... 跟后台确认 } func (x *CSExchangeChannel) Reset() { @@ -9501,7 +9501,7 @@ type ChannelSwitch struct { unknownFields protoimpl.UnknownFields OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 - Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 4:钻石抽奖 + Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 ... 跟后台确认 } func (x *ChannelSwitch) Reset() { diff --git a/protocol/player/player.proto b/protocol/player/player.proto index d282b63..1d713b0 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -1197,12 +1197,12 @@ message SCPigBankCoin { // PACKET_CSExchangeChannel message CSExchangeChannel{ - int32 Tp = 1; // 开关类型 0所有 1:兑换 2:v卡掉落 + int32 Tp = 1; // 开关类型 0所有 1:兑换 2:v卡掉落 ... 跟后台确认 } message ChannelSwitch { repeated string OnChannelName = 1; // 开启渠道 - int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 4:钻石抽奖 + int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 ... 跟后台确认 } // PACKET_SCExchangeChannel diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 4932017..a21d5c0 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -9349,6 +9349,266 @@ func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { return nil } +type DB_Skin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Model string `protobuf:"bytes,2,opt,name=Model,proto3" json:"Model,omitempty"` + SkinPic string `protobuf:"bytes,3,opt,name=SkinPic,proto3" json:"SkinPic,omitempty"` + SkinName string `protobuf:"bytes,4,opt,name=SkinName,proto3" json:"SkinName,omitempty"` + SkinType string `protobuf:"bytes,5,opt,name=SkinType,proto3" json:"SkinType,omitempty"` + UnlockType int32 `protobuf:"varint,6,opt,name=UnlockType,proto3" json:"UnlockType,omitempty"` + UnlockItem map[int64]int64 `protobuf:"bytes,7,rep,name=UnlockItem,proto3" json:"UnlockItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *DB_Skin) Reset() { + *x = DB_Skin{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_Skin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_Skin) ProtoMessage() {} + +func (x *DB_Skin) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_Skin.ProtoReflect.Descriptor instead. +func (*DB_Skin) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{122} +} + +func (x *DB_Skin) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_Skin) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *DB_Skin) GetSkinPic() string { + if x != nil { + return x.SkinPic + } + return "" +} + +func (x *DB_Skin) GetSkinName() string { + if x != nil { + return x.SkinName + } + return "" +} + +func (x *DB_Skin) GetSkinType() string { + if x != nil { + return x.SkinType + } + return "" +} + +func (x *DB_Skin) GetUnlockType() int32 { + if x != nil { + return x.UnlockType + } + return 0 +} + +func (x *DB_Skin) GetUnlockItem() map[int64]int64 { + if x != nil { + return x.UnlockItem + } + return nil +} + +type DB_SkinArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_Skin `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_SkinArray) Reset() { + *x = DB_SkinArray{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_SkinArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_SkinArray) ProtoMessage() {} + +func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_SkinArray.ProtoReflect.Descriptor instead. +func (*DB_SkinArray) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{123} +} + +func (x *DB_SkinArray) GetArr() []*DB_Skin { + if x != nil { + return x.Arr + } + return nil +} + +type DB_SkinLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SkinId int32 `protobuf:"varint,2,opt,name=SkinId,proto3" json:"SkinId,omitempty"` + Level int32 `protobuf:"varint,3,opt,name=Level,proto3" json:"Level,omitempty"` + UpItem map[int64]int64 `protobuf:"bytes,4,rep,name=UpItem,proto3" json:"UpItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *DB_SkinLevel) Reset() { + *x = DB_SkinLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_SkinLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_SkinLevel) ProtoMessage() {} + +func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_SkinLevel.ProtoReflect.Descriptor instead. +func (*DB_SkinLevel) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{124} +} + +func (x *DB_SkinLevel) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_SkinLevel) GetSkinId() int32 { + if x != nil { + return x.SkinId + } + return 0 +} + +func (x *DB_SkinLevel) GetLevel() int32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *DB_SkinLevel) GetUpItem() map[int64]int64 { + if x != nil { + return x.UpItem + } + return nil +} + +type DB_SkinLevelArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_SkinLevel `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_SkinLevelArray) Reset() { + *x = DB_SkinLevelArray{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_SkinLevelArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_SkinLevelArray) ProtoMessage() {} + +func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_SkinLevelArray.ProtoReflect.Descriptor instead. +func (*DB_SkinLevelArray) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{125} +} + +func (x *DB_SkinLevelArray) GetArr() []*DB_SkinLevel { + if x != nil { + return x.Arr + } + return nil +} + type DB_SlotRateWeight struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9375,7 +9635,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9388,7 +9648,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[122] + mi := &file_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9401,7 +9661,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{122} + return file_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -9527,7 +9787,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9540,7 +9800,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[123] + mi := &file_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9553,7 +9813,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{123} + return file_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -9578,7 +9838,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9591,7 +9851,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[124] + mi := &file_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9604,7 +9864,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{124} + return file_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_SystemChance) GetId() int32 { @@ -9653,7 +9913,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9666,7 +9926,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[125] + mi := &file_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9679,7 +9939,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{125} + return file_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -9696,19 +9956,21 @@ type DB_Task struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Order int32 `protobuf:"varint,2,opt,name=Order,proto3" json:"Order,omitempty"` - ActivityType int32 `protobuf:"varint,3,opt,name=ActivityType,proto3" json:"ActivityType,omitempty"` - TaskType int32 `protobuf:"varint,4,opt,name=TaskType,proto3" json:"TaskType,omitempty"` - TargetTimes int64 `protobuf:"varint,5,opt,name=TargetTimes,proto3" json:"TargetTimes,omitempty"` - FinishTimes int64 `protobuf:"varint,6,opt,name=FinishTimes,proto3" json:"FinishTimes,omitempty"` - Award map[int64]int64 `protobuf:"bytes,7,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - GameType int32 `protobuf:"varint,8,opt,name=GameType,proto3" json:"GameType,omitempty"` - Position []int32 `protobuf:"varint,9,rep,packed,name=Position,proto3" json:"Position,omitempty"` + Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` + Des string `protobuf:"bytes,4,opt,name=Des,proto3" json:"Des,omitempty"` + ActivityType int32 `protobuf:"varint,5,opt,name=ActivityType,proto3" json:"ActivityType,omitempty"` + TaskType int32 `protobuf:"varint,6,opt,name=TaskType,proto3" json:"TaskType,omitempty"` + TargetTimes int64 `protobuf:"varint,7,opt,name=TargetTimes,proto3" json:"TargetTimes,omitempty"` + FinishTimes int64 `protobuf:"varint,8,opt,name=FinishTimes,proto3" json:"FinishTimes,omitempty"` + Award map[int64]int64 `protobuf:"bytes,9,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + GameType int32 `protobuf:"varint,10,opt,name=GameType,proto3" json:"GameType,omitempty"` + Position []int32 `protobuf:"varint,11,rep,packed,name=Position,proto3" json:"Position,omitempty"` } func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9721,7 +9983,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[126] + mi := &file_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9734,7 +9996,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{126} + return file_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_Task) GetId() int32 { @@ -9751,6 +10013,20 @@ func (x *DB_Task) GetOrder() int32 { return 0 } +func (x *DB_Task) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DB_Task) GetDes() string { + if x != nil { + return x.Des + } + return "" +} + func (x *DB_Task) GetActivityType() int32 { if x != nil { return x.ActivityType @@ -9811,7 +10087,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9824,7 +10100,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[127] + mi := &file_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9837,7 +10113,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{127} + return file_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -9864,7 +10140,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9877,7 +10153,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[128] + mi := &file_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9890,7 +10166,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{128} + return file_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -9953,7 +10229,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9966,7 +10242,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[129] + mi := &file_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9979,7 +10255,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{129} + return file_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -10002,7 +10278,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10015,7 +10291,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[130] + mi := &file_pbdata_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10028,7 +10304,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{130} + return file_pbdata_proto_rawDescGZIP(), []int{134} } func (x *DB_Tips) GetId() int32 { @@ -10063,7 +10339,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10076,7 +10352,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[131] + mi := &file_pbdata_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10089,7 +10365,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{131} + return file_pbdata_proto_rawDescGZIP(), []int{135} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -10128,7 +10404,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[132] + mi := &file_pbdata_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10141,7 +10417,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[132] + mi := &file_pbdata_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10154,7 +10430,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{132} + return file_pbdata_proto_rawDescGZIP(), []int{136} } func (x *DB_VIP) GetId() int32 { @@ -10301,7 +10577,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_pbdata_proto_msgTypes[133] + mi := &file_pbdata_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10314,7 +10590,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_pbdata_proto_msgTypes[133] + mi := &file_pbdata_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10327,7 +10603,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_pbdata_proto_rawDescGZIP(), []int{133} + return file_pbdata_proto_rawDescGZIP(), []int{137} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11550,159 +11826,199 @@ var file_pbdata_proto_rawDesc = []byte{ 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, - 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, - 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, - 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, - 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, - 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, - 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, - 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, - 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, - 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, - 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, - 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, - 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, - 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, - 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, - 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, - 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, - 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa1, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, + 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, + 0x50, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, + 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, + 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, + 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xc1, 0x01, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, + 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, + 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, + 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, + 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, + 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, + 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, + 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, + 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, + 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, + 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, + 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, + 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, + 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, + 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, + 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, - 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, - 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, - 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, - 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, - 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, - 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, - 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, - 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, - 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, + 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, + 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, + 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, + 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, + 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, + 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, + 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, + 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, + 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, + 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -11717,7 +12033,7 @@ func file_pbdata_proto_rawDescGZIP() []byte { return file_pbdata_proto_rawDescData } -var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 144) +var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 150) var file_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -11841,28 +12157,34 @@ var file_pbdata_proto_goTypes = []interface{}{ (*DB_RankRewardArray)(nil), // 119: server.DB_RankRewardArray (*DB_Sensitive_Words)(nil), // 120: server.DB_Sensitive_Words (*DB_Sensitive_WordsArray)(nil), // 121: server.DB_Sensitive_WordsArray - (*DB_SlotRateWeight)(nil), // 122: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 123: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 124: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 125: server.DB_SystemChanceArray - (*DB_Task)(nil), // 126: server.DB_Task - (*DB_TaskArray)(nil), // 127: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 128: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 129: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 130: server.DB_Tips - (*DB_TipsArray)(nil), // 131: server.DB_TipsArray - (*DB_VIP)(nil), // 132: server.DB_VIP - (*DB_VIPArray)(nil), // 133: server.DB_VIPArray - nil, // 134: server.DB_CollectBox.ItemIDEntry - nil, // 135: server.DB_GiftBox.ItemIDEntry - nil, // 136: server.DB_GiftCard.RewardsEntry - nil, // 137: server.DB_GiftCard.DayRewardsEntry - nil, // 138: server.DB_PetSkill.ItemConsumEntry - nil, // 139: server.DB_PropExchange.CostEntry - nil, // 140: server.DB_PropExchange.GainEntry - nil, // 141: server.DB_Task.AwardEntry - nil, // 142: server.DB_VIP.Privilege7Entry - nil, // 143: server.DB_VIP.AwardEntry + (*DB_Skin)(nil), // 122: server.DB_Skin + (*DB_SkinArray)(nil), // 123: server.DB_SkinArray + (*DB_SkinLevel)(nil), // 124: server.DB_SkinLevel + (*DB_SkinLevelArray)(nil), // 125: server.DB_SkinLevelArray + (*DB_SlotRateWeight)(nil), // 126: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 127: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 128: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 129: server.DB_SystemChanceArray + (*DB_Task)(nil), // 130: server.DB_Task + (*DB_TaskArray)(nil), // 131: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 132: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 133: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 134: server.DB_Tips + (*DB_TipsArray)(nil), // 135: server.DB_TipsArray + (*DB_VIP)(nil), // 136: server.DB_VIP + (*DB_VIPArray)(nil), // 137: server.DB_VIPArray + nil, // 138: server.DB_CollectBox.ItemIDEntry + nil, // 139: server.DB_GiftBox.ItemIDEntry + nil, // 140: server.DB_GiftCard.RewardsEntry + nil, // 141: server.DB_GiftCard.DayRewardsEntry + nil, // 142: server.DB_PetSkill.ItemConsumEntry + nil, // 143: server.DB_PropExchange.CostEntry + nil, // 144: server.DB_PropExchange.GainEntry + nil, // 145: server.DB_Skin.UnlockItemEntry + nil, // 146: server.DB_SkinLevel.UpItemEntry + nil, // 147: server.DB_Task.AwardEntry + nil, // 148: server.DB_VIP.Privilege7Entry + nil, // 149: server.DB_VIP.AwardEntry } var file_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -11877,7 +12199,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 134, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 138, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -11902,10 +12224,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 34: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 35: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 36: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 135, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 139, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 38: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 136, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 137, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 140, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 141, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 41: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 42: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 43: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -11918,7 +12240,7 @@ var file_pbdata_proto_depIdxs = []int32{ 92, // 50: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer 96, // 52: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow - 138, // 53: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 142, // 53: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry 98, // 54: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill 100, // 55: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery 102, // 56: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond @@ -11926,27 +12248,31 @@ var file_pbdata_proto_depIdxs = []int32{ 106, // 58: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp 108, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType 110, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 139, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 140, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 143, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 144, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry 112, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange 114, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle 116, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel 118, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward 120, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 122, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 124, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 141, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 126, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 128, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 130, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 142, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 143, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 132, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 145, // 68: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry + 122, // 69: server.DB_SkinArray.Arr:type_name -> server.DB_Skin + 146, // 70: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry + 124, // 71: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel + 126, // 72: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 128, // 73: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 147, // 74: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 130, // 75: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 132, // 76: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 134, // 77: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 148, // 78: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 149, // 79: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 136, // 80: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 81, // [81:81] is the sub-list for method output_type + 81, // [81:81] is the sub-list for method input_type + 81, // [81:81] is the sub-list for extension type_name + 81, // [81:81] is the sub-list for extension extendee + 0, // [0:81] is the sub-list for field type_name } func init() { file_pbdata_proto_init() } @@ -13420,7 +13746,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeight); i { + switch v := v.(*DB_Skin); i { case 0: return &v.state case 1: @@ -13432,7 +13758,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeightArray); i { + switch v := v.(*DB_SkinArray); i { case 0: return &v.state case 1: @@ -13444,7 +13770,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChance); i { + switch v := v.(*DB_SkinLevel); i { case 0: return &v.state case 1: @@ -13456,7 +13782,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChanceArray); i { + switch v := v.(*DB_SkinLevelArray); i { case 0: return &v.state case 1: @@ -13468,7 +13794,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Task); i { + switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state case 1: @@ -13480,7 +13806,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TaskArray); i { + switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state case 1: @@ -13492,7 +13818,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMapping); i { + switch v := v.(*DB_SystemChance); i { case 0: return &v.state case 1: @@ -13504,7 +13830,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state case 1: @@ -13516,7 +13842,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Tips); i { + switch v := v.(*DB_Task); i { case 0: return &v.state case 1: @@ -13528,7 +13854,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TipsArray); i { + switch v := v.(*DB_TaskArray); i { case 0: return &v.state case 1: @@ -13540,7 +13866,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIP); i { + switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state case 1: @@ -13552,6 +13878,54 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_Tips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_TipsArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -13570,7 +13944,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 144, + NumMessages: 150, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 027f549..48b07df 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1513,6 +1513,44 @@ message DB_Sensitive_WordsArray { repeated DB_Sensitive_Words Arr = 1; } +message DB_Skin { + + int32 Id = 1; + + string Model = 2; + + string SkinPic = 3; + + string SkinName = 4; + + string SkinType = 5; + + int32 UnlockType = 6; + + map UnlockItem = 7; + +} + +message DB_SkinArray { + repeated DB_Skin Arr = 1; +} + +message DB_SkinLevel { + + int32 Id = 1; + + int32 SkinId = 2; + + int32 Level = 3; + + map UpItem = 4; + +} + +message DB_SkinLevelArray { + repeated DB_SkinLevel Arr = 1; +} + message DB_SlotRateWeight { int32 Id = 1; @@ -1577,19 +1615,23 @@ message DB_Task { int32 Order = 2; - int32 ActivityType = 3; + string Name = 3; - int32 TaskType = 4; + string Des = 4; - int64 TargetTimes = 5; + int32 ActivityType = 5; - int64 FinishTimes = 6; + int32 TaskType = 6; - map Award = 7; + int64 TargetTimes = 7; - int32 GameType = 8; + int64 FinishTimes = 8; - repeated int32 Position = 9; + map Award = 9; + + int32 GameType = 10; + + repeated int32 Position = 11; } diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index cf7a141..8dd5023 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -64,7 +64,7 @@ message TienLenPlayerData { int64 Level = 27; //玩家等级 int64 Exp = 28; //玩家经验 int64 PigBankCoin = 29; //存钱罐金币 - repeated PetSkillInfo SkillInfo = 30;//宠物技能信息 + repeated PetSkillInfo SkillInfo = 30;//宠物技能信息 } //宠物技能 diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index 0151116d257a8286ed03b5c627b5668a8d15b94f..bc6a7ec7a5483091776296437ea01d58700fcabe 100644 GIT binary patch delta 16779 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 literal 0 HcmV?d00001 diff --git a/xlsx/DB_SkinLevel.xlsx b/xlsx/DB_SkinLevel.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3aa22b72303930265baada6a90edf71e71b27017 GIT binary patch literal 9914 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 Dm`V^i literal 0 HcmV?d00001 diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 46c4eaea1705050bc5fa30e3991014bc7993afba..0e939502c74e7a0002a8607ab0aa3a5947e9a214 100644 GIT binary patch delta 13013 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 DZ%=~t delta 12396 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 EAHZOgR{#J2