diff --git a/bin/json/game_battleready.json b/bin/json/game_battleready.json index 656f16157..8b6e155b5 100644 --- a/bin/json/game_battleready.json +++ b/bin/json/game_battleready.json @@ -170,7 +170,7 @@ "HeroCount": 5, "readyScene": "scenesfight_role_interface_02", "battleScenes": [ - "scenesfight_03_02" + "scenesfight_07" ], "DefaultHero": 0, "DisableHero": [], diff --git a/bin/json/game_dispatch_task.json b/bin/json/game_dispatch_task.json index 0eb375407..175116a81 100644 --- a/bin/json/game_dispatch_task.json +++ b/bin/json/game_dispatch_task.json @@ -8,7 +8,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 102, + "tasktime": 63, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -56,7 +56,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 64, + "tasktime": 131, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -104,7 +104,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 88, + "tasktime": 64, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -152,7 +152,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 128, + "tasktime": 170, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -200,7 +200,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 135, + "tasktime": 169, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -248,7 +248,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 133, + "tasktime": 112, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -296,7 +296,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 102, + "tasktime": 89, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -344,7 +344,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 178, + "tasktime": 115, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -392,7 +392,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 123, + "tasktime": 91, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -440,7 +440,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 140, + "tasktime": 119, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -488,7 +488,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 128, + "tasktime": 71, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -536,7 +536,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 152, + "tasktime": 156, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -584,7 +584,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 110, + "tasktime": 96, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -632,7 +632,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 82, + "tasktime": 160, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -680,7 +680,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 173, + "tasktime": 175, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -728,7 +728,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 167, + "tasktime": 163, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -776,7 +776,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 95, + "tasktime": 63, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -824,7 +824,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 180, + "tasktime": 135, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -872,7 +872,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 152, + "tasktime": 60, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -920,7 +920,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 126, + "tasktime": 148, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -968,7 +968,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 93, + "tasktime": 101, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1016,7 +1016,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 93, + "tasktime": 61, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -1064,7 +1064,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 145, + "tasktime": 129, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -1112,7 +1112,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 129, + "tasktime": 154, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -1160,7 +1160,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 141, + "tasktime": 87, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1208,7 +1208,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 96, + "tasktime": 157, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -1256,7 +1256,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 159, + "tasktime": 147, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -1304,7 +1304,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 106, + "tasktime": 62, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -1352,7 +1352,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 83, + "tasktime": 163, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1400,7 +1400,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 133, + "tasktime": 114, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -1448,7 +1448,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 167, + "tasktime": 148, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -1496,7 +1496,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 118, + "tasktime": 83, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -1544,7 +1544,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 159, + "tasktime": 88, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1592,7 +1592,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 94, + "tasktime": 85, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -1640,7 +1640,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 152, + "tasktime": 153, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -1688,7 +1688,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 138, + "tasktime": 169, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -1736,7 +1736,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 154, + "tasktime": 119, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1784,7 +1784,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 162, + "tasktime": 171, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -1832,7 +1832,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 113, + "tasktime": 166, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -1880,7 +1880,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 107, + "tasktime": 128, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -1928,7 +1928,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 172, + "tasktime": 162, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -1976,7 +1976,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 171, + "tasktime": 117, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2024,7 +2024,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 121, + "tasktime": 106, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -2072,7 +2072,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 120, + "tasktime": 162, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -2120,7 +2120,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 137, + "tasktime": 81, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -2168,7 +2168,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 116, + "tasktime": 64, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2216,7 +2216,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 145, + "tasktime": 113, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -2264,7 +2264,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 101, + "tasktime": 71, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -2312,7 +2312,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 117, + "tasktime": 75, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -2360,7 +2360,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 102, + "tasktime": 157, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2408,7 +2408,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 62, + "tasktime": 97, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -2456,7 +2456,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 75, + "tasktime": 148, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -2504,7 +2504,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 67, + "tasktime": 129, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -2552,7 +2552,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 140, + "tasktime": 144, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2600,7 +2600,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 174, + "tasktime": 169, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -2648,7 +2648,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 110, + "tasktime": 112, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -2696,7 +2696,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 72, + "tasktime": 173, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -2744,7 +2744,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 167, + "tasktime": 133, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2792,7 +2792,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 95, + "tasktime": 127, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -2840,7 +2840,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 86, + "tasktime": 98, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -2888,7 +2888,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 163, + "tasktime": 169, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -2936,7 +2936,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 117, + "tasktime": 82, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -2984,7 +2984,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 139, + "tasktime": 79, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -3032,7 +3032,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 128, + "tasktime": 164, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -3080,7 +3080,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 174, + "tasktime": 95, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -3128,7 +3128,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 116, + "tasktime": 84, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -3176,7 +3176,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 115, + "tasktime": 176, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -3224,7 +3224,7 @@ }, "icon": "xmwg_rw_pt5", "taskcd": 200, - "tasktime": 116, + "tasktime": 129, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -3272,7 +3272,7 @@ }, "icon": "xmwg_rw_pt6", "taskcd": 200, - "tasktime": 111, + "tasktime": 141, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -3320,7 +3320,7 @@ }, "icon": "xmwg_rw_pt7", "taskcd": 200, - "tasktime": 91, + "tasktime": 169, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" @@ -3368,7 +3368,7 @@ }, "icon": "xmwg_rw_pt1", "taskcd": 200, - "tasktime": 80, + "tasktime": 163, "tasktxt": { "key": "Entrustment details of Tiger", "text": "这是属于悍娇虎的专属委托" @@ -3416,7 +3416,7 @@ }, "icon": "xmwg_rw_pt2", "taskcd": 200, - "tasktime": 157, + "tasktime": 141, "tasktxt": { "key": "Entrustment details of Shifu", "text": "这是属于师父的专属委托" @@ -3464,7 +3464,7 @@ }, "icon": "xmwg_rw_pt3", "taskcd": 200, - "tasktime": 155, + "tasktime": 156, "tasktxt": { "key": "Entrustment details of Po", "text": "这是属于阿宝的专属委托" @@ -3512,7 +3512,7 @@ }, "icon": "xmwg_rw_pt4", "taskcd": 200, - "tasktime": 102, + "tasktime": 75, "tasktxt": { "key": "Entrustment details of Bobi", "text": "这是属于波比的专属委托" diff --git a/bin/json/game_global.json b/bin/json/game_global.json index 341dccbf4..078637909 100644 --- a/bin/json/game_global.json +++ b/bin/json/game_global.json @@ -660,6 +660,7 @@ "puzzlePromptNum": 5, "Daily_Tips": 3, "Daily_Num": 2, - "Week_Num": 2 + "Week_Num": 2, + "fitnessModelId": "25001" } ] \ No newline at end of file diff --git a/bin/json/game_lottery.json b/bin/json/game_lottery.json index d5bad4b39..a4592901a 100644 --- a/bin/json/game_lottery.json +++ b/bin/json/game_lottery.json @@ -44,7 +44,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -68,7 +68,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -92,7 +92,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -116,7 +116,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -124,10 +124,10 @@ "lotteryid": 40001001, "description": "随机蓝色英雄", "type": 0, - "groupwt": 0, - "groupid": 1001, - "subtype": 0, - "groupnum": 0, + "groupwt": 500, + "groupid": 1002, + "subtype": 2, + "groupnum": 1, "itemid": { "a": "item", "t": "132005", @@ -140,7 +140,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -149,7 +149,7 @@ "description": "随机蓝色英雄", "type": 0, "groupwt": 0, - "groupid": 1001, + "groupid": 1002, "subtype": 0, "groupnum": 0, "itemid": { @@ -164,7 +164,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -173,7 +173,7 @@ "description": "随机蓝色英雄", "type": 0, "groupwt": 0, - "groupid": 1001, + "groupid": 1002, "subtype": 0, "groupnum": 0, "itemid": { @@ -188,7 +188,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -197,7 +197,7 @@ "description": "随机蓝色英雄", "type": 0, "groupwt": 0, - "groupid": 1001, + "groupid": 1002, "subtype": 0, "groupnum": 0, "itemid": { @@ -212,7 +212,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { @@ -221,7 +221,7 @@ "description": "随机蓝色英雄", "type": 0, "groupwt": 0, - "groupid": 1001, + "groupid": 1002, "subtype": 0, "groupnum": 0, "itemid": { @@ -236,7 +236,7 @@ "VIPmin": 0, "VIPmax": 15, "playerlvmin": 0, - "playerlvmax": 240, + "playerlvmax": 0, "notice": 0 }, { diff --git a/bin/json/game_model.json b/bin/json/game_model.json index 2f68152d9..caeee1b96 100644 --- a/bin/json/game_model.json +++ b/bin/json/game_model.json @@ -2601,9 +2601,9 @@ }, { "id": "55006", - "preson": "11021", - "presonshow": "11021_exhibition", - "presonstory": "11021", + "preson": "55006", + "presonshow": "55006_exhibition", + "presonstory": "55006", "presondraw": "", "height": 1, "weight": 1, diff --git a/bin/json/game_pandamastj.json b/bin/json/game_pandamastj.json index b85c116e2..4f4c069df 100644 --- a/bin/json/game_pandamastj.json +++ b/bin/json/game_pandamastj.json @@ -102,7 +102,7 @@ }, "content_text": { "key": "tujian_6", - "text": "图鉴信息描述" + "text": "食人鱼一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_13002", "atlas_score": 105 @@ -120,7 +120,7 @@ }, "content_text": { "key": "tujian_7", - "text": "图鉴信息描述" + "text": "闪闪一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_13001", "atlas_score": 120 @@ -138,7 +138,7 @@ }, "content_text": { "key": "tujian_8", - "text": "图鉴信息描述" + "text": "蛇先生一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_44002", "atlas_score": 135 @@ -156,7 +156,7 @@ }, "content_text": { "key": "tujian_9", - "text": "图鉴信息描述" + "text": "金猴一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_24005", "atlas_score": 150 @@ -174,7 +174,7 @@ }, "content_text": { "key": "tujian_10", - "text": "图鉴信息描述" + "text": "鹤大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_14005", "atlas_score": 165 @@ -192,7 +192,7 @@ }, "content_text": { "key": "tujian_11", - "text": "图鉴信息描述" + "text": "悍娇虎一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_44006", "atlas_score": 180 @@ -210,7 +210,7 @@ }, "content_text": { "key": "tujian_12", - "text": "图鉴信息描述" + "text": "盖一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_43001", "atlas_score": 195 @@ -228,7 +228,7 @@ }, "content_text": { "key": "tujian_13", - "text": "图鉴信息描述" + "text": "希卡普一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_35002", "atlas_score": 210 @@ -246,7 +246,7 @@ }, "content_text": { "key": "tujian_14", - "text": "图鉴信息描述" + "text": "穿靴猫一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_45004", "atlas_score": 225 @@ -264,7 +264,7 @@ }, "content_text": { "key": "tujian_15", - "text": "图鉴信息描述" + "text": "师父一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_35001", "atlas_score": 240 @@ -282,7 +282,7 @@ }, "content_text": { "key": "tujian_16", - "text": "图鉴信息描述" + "text": "阿宝一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_25001", "atlas_score": 255 @@ -300,7 +300,7 @@ }, "content_text": { "key": "tujian_17", - "text": "图鉴信息描述" + "text": "乌龟大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" }, "icon": "ytx_js_45001", "atlas_score": 270 @@ -318,7 +318,7 @@ }, "content_text": { "key": "tujian_18", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_ss", "atlas_score": 285 @@ -336,7 +336,7 @@ }, "content_text": { "key": "tujian_19", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_kz", "atlas_score": 300 @@ -354,7 +354,7 @@ }, "content_text": { "key": "tujian_20", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_pj", "atlas_score": 315 @@ -372,7 +372,7 @@ }, "content_text": { "key": "tujian_21", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_bdw", "atlas_score": 330 @@ -390,7 +390,7 @@ }, "content_text": { "key": "tujian_22", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_pc", "atlas_score": 345 @@ -408,7 +408,7 @@ }, "content_text": { "key": "tujian_23", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_tl", "atlas_score": 360 @@ -426,7 +426,7 @@ }, "content_text": { "key": "tujian_24", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_dh", "atlas_score": 375 @@ -444,7 +444,7 @@ }, "content_text": { "key": "tujian_25", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_tj01", "atlas_score": 390 @@ -462,7 +462,7 @@ }, "content_text": { "key": "tujian_26", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_zl", "atlas_score": 405 @@ -480,7 +480,7 @@ }, "content_text": { "key": "tujian_27", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_mp", "atlas_score": 420 @@ -498,7 +498,7 @@ }, "content_text": { "key": "tujian_28", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_sjg", "atlas_score": 435 @@ -516,7 +516,7 @@ }, "content_text": { "key": "tujian_29", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_yd", "atlas_score": 450 @@ -534,7 +534,7 @@ }, "content_text": { "key": "tujian_30", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_hl", "atlas_score": 465 @@ -552,7 +552,7 @@ }, "content_text": { "key": "tujian_31", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_fb", "atlas_score": 480 @@ -570,7 +570,7 @@ }, "content_text": { "key": "tujian_32", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_mxl", "atlas_score": 495 @@ -588,7 +588,7 @@ }, "content_text": { "key": "tujian_33", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_ct", "atlas_score": 510 @@ -606,7 +606,7 @@ }, "content_text": { "key": "tujian_34", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_kqms", "atlas_score": 525 @@ -624,7 +624,7 @@ }, "content_text": { "key": "tujian_35", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_ph", "atlas_score": 540 @@ -642,7 +642,7 @@ }, "content_text": { "key": "tujian_36", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_th", "atlas_score": 555 @@ -660,7 +660,7 @@ }, "content_text": { "key": "tujian_37", - "text": "图鉴信息描述" + "text": "能够显著提高使用者的身体素质" }, "icon": "wg_icon_tj", "atlas_score": 570 diff --git a/bin/json/game_potions.json b/bin/json/game_potions.json index 8162713e7..22f482a13 100644 --- a/bin/json/game_potions.json +++ b/bin/json/game_potions.json @@ -23,26 +23,26 @@ { "Id": "120001", "weight": 500, - "score": 1, + "score": 5, "effectType": 1 }, { "Id": "120002", "weight": 200, - "score": 5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120003", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120004", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -55,21 +55,21 @@ "standard_yield": [ { "a": "item", - "t": "100001", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100001", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100001", + "t": "100006", "n": 7 } ] @@ -96,8 +96,8 @@ { "Id": "120001", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120002", @@ -108,14 +108,14 @@ { "Id": "120003", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120004", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -128,21 +128,21 @@ "standard_yield": [ { "a": "item", - "t": "100002", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100002", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100002", + "t": "100006", "n": 7 } ] @@ -169,26 +169,26 @@ { "Id": "120001", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120002", "weight": 200, - "score": -5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120003", "weight": 200, "score": 5, - "effectType": 2 + "effectType": 1 }, { "Id": "120004", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -201,21 +201,21 @@ "standard_yield": [ { "a": "item", - "t": "100003", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100003", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100003", + "t": "100006", "n": 7 } ] @@ -242,26 +242,26 @@ { "Id": "120001", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120002", "weight": 200, - "score": -5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120003", "weight": 200, - "score": 5, + "score": -1, "effectType": 2 }, { "Id": "120004", "weight": 100, - "score": 10, - "effectType": 3 + "score": 5, + "effectType": 1 } ], "material": [ @@ -274,21 +274,21 @@ "standard_yield": [ { "a": "item", - "t": "100004", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100004", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100004", + "t": "100006", "n": 7 } ] @@ -315,26 +315,26 @@ { "Id": "120005", "weight": 500, - "score": 1, + "score": 5, "effectType": 1 }, { "Id": "120006", "weight": 200, - "score": -5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120007", "weight": 200, - "score": 5, + "score": -1, "effectType": 2 }, { "Id": "120008", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -347,21 +347,21 @@ "standard_yield": [ { "a": "item", - "t": "100005", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100005", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100005", + "t": "100006", "n": 7 } ] @@ -388,26 +388,26 @@ { "Id": "120005", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120006", "weight": 200, - "score": -5, + "score": 5, "effectType": 1 }, { "Id": "120007", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120008", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -461,26 +461,26 @@ { "Id": "120005", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120006", "weight": 200, - "score": 5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120007", "weight": 200, "score": 5, - "effectType": 2 + "effectType": 1 }, { "Id": "120008", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -493,21 +493,21 @@ "standard_yield": [ { "a": "item", - "t": "100007", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100007", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100007", + "t": "100006", "n": 7 } ] @@ -534,26 +534,26 @@ { "Id": "120005", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120006", "weight": 200, - "score": 5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120007", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120008", "weight": 100, - "score": 10, - "effectType": 3 + "score": 5, + "effectType": 1 } ], "material": [ @@ -566,21 +566,21 @@ "standard_yield": [ { "a": "item", - "t": "100008", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100008", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100008", + "t": "100006", "n": 7 } ] @@ -607,26 +607,26 @@ { "Id": "120009", "weight": 500, - "score": 1, + "score": 5, "effectType": 1 }, { "Id": "120101", "weight": 200, - "score": 5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120102", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120103", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -639,21 +639,21 @@ "standard_yield": [ { "a": "item", - "t": "100009", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100009", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100009", + "t": "100006", "n": 7 } ] @@ -680,26 +680,26 @@ { "Id": "120009", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120101", "weight": 200, "score": 5, - "effectType": 1 + "effectType": 2 }, { "Id": "120102", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120103", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -712,21 +712,21 @@ "standard_yield": [ { "a": "item", - "t": "100010", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100010", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100010", + "t": "100006", "n": 7 } ] @@ -753,14 +753,14 @@ { "Id": "120009", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120101", "weight": 200, - "score": -5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120102", @@ -771,8 +771,8 @@ { "Id": "120103", "weight": 100, - "score": 10, - "effectType": 3 + "score": -1, + "effectType": 2 } ], "material": [ @@ -785,21 +785,21 @@ "standard_yield": [ { "a": "item", - "t": "100011", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100011", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100011", + "t": "100006", "n": 7 } ] @@ -826,26 +826,26 @@ { "Id": "120009", "weight": 500, - "score": 1, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120101", "weight": 200, - "score": 5, - "effectType": 1 + "score": -1, + "effectType": 2 }, { "Id": "120102", "weight": 200, - "score": -5, + "score": -1, "effectType": 2 }, { "Id": "120103", "weight": 100, - "score": 10, - "effectType": 3 + "score": 5, + "effectType": 2 } ], "material": [ @@ -858,21 +858,21 @@ "standard_yield": [ { "a": "item", - "t": "100012", + "t": "100006", "n": 3 } ], "low_yield": [ { "a": "item", - "t": "100012", + "t": "100006", "n": 1 } ], "high_yield": [ { "a": "item", - "t": "100012", + "t": "100006", "n": 7 } ] diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json index c1e1b4c07..7abfa7022 100644 --- a/bin/json/game_skillafteratk.json +++ b/bin/json/game_skillafteratk.json @@ -14002,7 +14002,7 @@ "Where": [], "Order": "", "Limit": 10, - "ExecuteCnt": 2, + "ExecuteCnt": 3, "Type": 1, "Argu": [ 1, @@ -28793,5 +28793,149 @@ "DpsCondition": "", "RevisiCondition": "", "RevisiParams": [] + }, + { + "Id": 211021111, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 1, + "Argu": [ + 1, + 4, + 1000 + ], + "FollowSK": [ + 211021112 + ], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, + { + "Id": 211021112, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 3, + "Argu": [ + 390001007, + 1000, + 1, + 2 + ], + "FollowSK": [], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, + { + "Id": 211021211, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 1, + "Argu": [ + 1, + 4, + 1200 + ], + "FollowSK": [ + 211021212 + ], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, + { + "Id": 211021212, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 3, + "Argu": [ + 390001105, + 1000, + 1, + 2 + ], + "FollowSK": [], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, + { + "Id": 211021311, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 1, + "Argu": [ + 1, + 4, + 2000 + ], + "FollowSK": [ + 211021312 + ], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, + { + "Id": 211021312, + "EmitPR": 1000, + "From": 2, + "Where": [], + "Order": "", + "Limit": 10, + "ExecuteCnt": 1, + "Type": 29, + "Argu": [ + 200 + ], + "FollowSK": [], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] } ] \ No newline at end of file diff --git a/bin/json/game_skillatk.json b/bin/json/game_skillatk.json index 38816b473..78443fa21 100644 --- a/bin/json/game_skillatk.json +++ b/bin/json/game_skillatk.json @@ -15200,5 +15200,89 @@ }, "buffid": [], "map": "" + }, + { + "id": 111021111, + "level": 1, + "MaxLV": 1, + "UnavailablePlayTypes": [], + "Name": { + "key": "skillname_111021111", + "text": "悲痛之爪" + }, + "ico": "jn_44002_1", + "CorrectPos": 0, + "IsMelee": 0, + "act": "Skill_1", + "Type": 1, + "CD": 0, + "Target": 2, + "ChildSkill": { + "Id": [ + 211021111 + ] + }, + "Desc": { + "key": "skill_1110211111", + "text": "巨怪对全体敌方造成一次AOE伤害,并附带2回合防御下降" + }, + "buffid": [], + "map": "" + }, + { + "id": 111021211, + "level": 1, + "MaxLV": 1, + "UnavailablePlayTypes": [], + "Name": { + "key": "skillname_111021211", + "text": "愤怒一击" + }, + "ico": "jn_44002_2", + "CorrectPos": 0, + "IsMelee": 0, + "act": "Skill_2", + "Type": 1, + "CD": 2, + "Target": 2, + "ChildSkill": { + "Id": [ + 211021211 + ] + }, + "Desc": { + "key": "skill_1110212111", + "text": "巨怪对全体敌方造成一次震击,并附带2回合眩晕" + }, + "buffid": [], + "map": "" + }, + { + "id": 111021311, + "level": 1, + "MaxLV": 1, + "UnavailablePlayTypes": [], + "Name": { + "key": "skillname_111021311", + "text": "死灵射线" + }, + "ico": "jn_44002_3", + "CorrectPos": 0, + "IsMelee": 0, + "act": "Skill_3", + "Type": 1, + "CD": 5, + "Target": 2, + "ChildSkill": { + "Id": [ + 211021311 + ] + }, + "Desc": { + "key": "skill_1110213111", + "text": "巨怪对全体敌方发出死灵射线,并恢复造成伤害20%的血量" + }, + "buffid": [], + "map": "" } ] \ No newline at end of file diff --git a/bin/json/game_smithystovev1.json b/bin/json/game_smithystovev1.json index 6210140f1..97b35805a 100644 --- a/bin/json/game_smithystovev1.json +++ b/bin/json/game_smithystovev1.json @@ -11,7 +11,7 @@ } ], "title_text": { - "key": "1", + "key": "newsmithy_stove_title_text1", "text": "冶炼炉lv.1" } }, @@ -27,7 +27,7 @@ } ], "title_text": { - "key": "2", + "key": "newsmithy_stove_title_text2", "text": "冶炼炉lv.2" } }, @@ -43,7 +43,7 @@ } ], "title_text": { - "key": "3", + "key": "newsmithy_stove_title_text3", "text": "冶炼炉lv.3" } }, @@ -59,7 +59,7 @@ } ], "title_text": { - "key": "4", + "key": "newsmithy_stove_title_text4", "text": "冶炼炉lv.4" } }, @@ -75,7 +75,7 @@ } ], "title_text": { - "key": "5", + "key": "newsmithy_stove_title_text5", "text": "冶炼炉lv.5" } }, @@ -91,7 +91,7 @@ } ], "title_text": { - "key": "6", + "key": "newsmithy_stove_title_text6", "text": "冶炼炉lv.6" } }, @@ -107,7 +107,7 @@ } ], "title_text": { - "key": "7", + "key": "newsmithy_stove_title_text7", "text": "冶炼炉lv.7" } }, @@ -123,7 +123,7 @@ } ], "title_text": { - "key": "8", + "key": "newsmithy_stove_title_text8", "text": "冶炼炉lv.8" } }, @@ -139,7 +139,7 @@ } ], "title_text": { - "key": "9", + "key": "newsmithy_stove_title_text9", "text": "冶炼炉lv.9" } }, @@ -155,7 +155,7 @@ } ], "title_text": { - "key": "10", + "key": "newsmithy_stove_title_text10", "text": "冶炼炉lv.10" } } diff --git a/comm/core.go b/comm/core.go index 28766795c..95b10b121 100644 --- a/comm/core.go +++ b/comm/core.go @@ -108,6 +108,17 @@ func GetRandW(sz []int32) int32 { return 0 } +func GetRandNum(min, max int32) int32 { + if max < min { + return 0 + } + if max == min { + return min + } + n, _ := rand.Int(rand.Reader, big.NewInt(int64(max-min))) + return int32(n.Int64()) + min +} + ///通过uid获取用户所在区服 func UidToSTag(uid string) (stag string, err error) { s := strings.SplitN(uid, "_", 2) diff --git a/comm/imodule.go b/comm/imodule.go index 1d8bc5dd8..e70d68a58 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -425,6 +425,8 @@ type ( //实时Pvp IPvp interface { + //查询战斗数 + QueryBattle(id string) (battle *pb.DBPvpBattle, err error) //创建实时Pvp CreatePvp(red, blue *pb.PvpUserInfo, ptype pb.PvpType) (battleId string, code pb.ErrorCode) //推送战斗输出指令 diff --git a/modules/comp_configure.go b/modules/comp_configure.go index 8f32696d4..171ac96ea 100644 --- a/modules/comp_configure.go +++ b/modules/comp_configure.go @@ -28,6 +28,8 @@ const ( game_vip = "game_vip.json" game_equip = "game_equip.json" //装备信息表 + + game_lottery = "game_lottery.json" ) ///配置管理基础组件 @@ -36,6 +38,20 @@ type MCompConfigure struct { hlock sync.RWMutex _dropMap map[int32][]*cfg.GameDropData // 掉落表 key 是DiropId _sign map[int32]*cfg.GameSignData + + _group map[int64][]int32 // key 小组ID value cid + + // 类型为1 的数据 该大组中的小组为权重掉落,必定从N个小组中随机出1个小组 + _lotteryType1 map[int32][]int32 // key 大组ID value cid + // 类型为2 的数据 有多个小组ID + _lotteryType2 map[int32][]int32 // key 大组ID value 小组ID + // 小组类型为1 + _groupType1 map[int64][]int32 //value cid + // 小组类型为2 + _groupType2 map[int64][]int32 //value cid + Btype map[int32]int32 + Stype map[int64]int32 // subtype + SNum map[int64]int32 // 小组产出数量 } //组件初始化接口 @@ -52,13 +68,210 @@ func (this *MCompConfigure) Init(service core.IService, module core.IModule, com //err = this.LoadConfigure(game_sign, cfg.NewGameSign) err = this.LoadConfigure(game_item, cfg.NewGameItem) err = this.LoadConfigure(game_vip, cfg.NewGameVip) + err = this.LoadConfigure(game_lottery, cfg.NewGameLottery) this._dropMap = make(map[int32][]*cfg.GameDropData, 0) this._sign = make(map[int32]*cfg.GameSignData, 0) configure.RegisterConfigure(game_drop, cfg.NewGameDrop, this.LoadDropData) configure.RegisterConfigure(game_sign, cfg.NewGameSign, this.LoadSignData) + this._group = make(map[int64][]int32, 0) + this._lotteryType1 = make(map[int32][]int32, 0) + this._lotteryType2 = make(map[int32][]int32, 0) + this._groupType1 = make(map[int64][]int32, 0) + this._groupType2 = make(map[int64][]int32, 0) + this.Btype = make(map[int32]int32, 0) + this.Stype = make(map[int64]int32, 0) + this.SNum = make(map[int64]int32, 0) + configure.RegisterConfigure(game_lottery, cfg.NewGameLottery, this.LoadGroupData) + return } + +func (this *MCompConfigure) LoadGroupData() { + if v, err := this.GetConfigure(game_lottery); err == nil { + if configure, ok := v.(*cfg.GameLottery); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + this._group = make(map[int64][]int32, 0) + this._lotteryType1 = make(map[int32][]int32, 0) + this._lotteryType2 = make(map[int32][]int32, 0) + this._groupType1 = make(map[int64][]int32, 0) + this._groupType2 = make(map[int64][]int32, 0) + this.Btype = make(map[int32]int32, 0) + this.Stype = make(map[int64]int32, 0) + this.SNum = make(map[int64]int32, 0) + for _, value := range configure.GetDataList() { + key := int64(value.Lotteryid)<<31 + int64(value.Groupid) + this._group[key] = append(this._group[key], value.Id) + + if _, ok := this.Btype[value.Lotteryid]; !ok { + this.Btype[value.Lotteryid] = value.Type + } + + if _, ok := this.Stype[key]; !ok { + this.Stype[key] = value.Subtype + } + if _, ok := this.SNum[key]; !ok { + this.SNum[key] = value.Groupnum + } + if this.Btype[value.Lotteryid] == 1 { + this._lotteryType1[value.Lotteryid] = append(this._lotteryType1[value.Lotteryid], value.Id) + } else if this.Btype[value.Lotteryid] == 2 { + this._lotteryType2[value.Lotteryid] = append(this._lotteryType2[value.Lotteryid], value.Id) + } + + if this.Stype[key] == 1 { // 小组ID为1 + this._groupType1[key] = append(this._groupType1[key], value.Id) + } else if this.Stype[key] == 2 { + this._groupType2[key] = append(this._groupType2[key], value.Id) + } + } + return + } + } else { + log.Errorf("get LoadGroupData conf err:%v", err) + } + return +} + +// 实际掉落逻辑 (传入 掉落组ID vip等级 玩家等级 返回获得的道具) +func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) { + + if _, ok := this._lotteryType1[lotteryId]; !ok { + if _, ok := this._lotteryType2[lotteryId]; !ok { + fmt.Printf("not found config lotterId:%d", lotteryId) + return + } + } + // 优先校验大组ID 的类型 + if this.Btype[lotteryId] == 1 { // 该大组中的小组为权重掉落,必定从N个小组中随机出1个小组 + var ( + szW []int32 // 权重数组 + szID []int32 // 小组ID 数组 + groupID int32 + gourp map[int32]int32 // key 小组ID value 权重 + ) + + gourp = make(map[int32]int32, 0) + // 随机小组id + for _, v := range this._lotteryType1[lotteryId] { + if _data := this.GetLotterConfById(v); _data != nil { + if (_data.Playerlvmax == 0 || _data.Playerlvmin <= lv && lv <= _data.Playerlvmax) && (_data.VIPmax == 0 || _data.VIPmin <= vipLv && vipLv <= _data.VIPmax) { // 过滤等级等条件 + if _, ok := gourp[_data.Groupid]; !ok { + gourp[_data.Groupid] = _data.Groupwt // 小组ID 权重赋值 + szW = append(szW, _data.Groupwt) + szID = append(szID, _data.Groupid) + } + } + } + } + + groupID = szID[comm.GetRandW(szW)] // 获得小组ID + fmt.Printf("获得小组ID :%d", groupID) + key := int64(lotteryId)<<31 + int64(groupID) + // 小组ID 类型判断 + if this.Stype[key] == 1 { // 该小组的道具为权重掉落,必定从N个道具中随机出1个道具 + for i := 0; i < int(this.SNum[key]); i++ { + szW = make([]int32, 0) + szID = make([]int32, 0) + gourp = make(map[int32]int32, 0) + for _, v := range this._groupType1[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _, ok := gourp[_data.Groupid]; !ok { + szW = append(szW, _data.Itemwt) + szID = append(szID, _data.Id) + } + } + } + index := comm.GetRandW(szW) + _data := this.GetLotterConfById(szID[index]) + fmt.Printf("获得最终的道具 :%d", _data.Id) + count := comm.GetRandNum(_data.Min, _data.Max+1) + // 随机获得的数量 + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, + }) + } + return + } else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) + for _, v := range this._groupType2[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max+1) + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, // 小组产出数量 + }) + } + } + } + return + } + } else if this.Btype[lotteryId] == 2 { // 该大组中的小组为概率掉落,每个小组都会随机一次是否会掉落(单位为千分比) + // 每个小组id 都随机取一次 + var szGroupID []int32 // 获得的权重数组 + gourp := make(map[int32]*cfg.GameLotteryData, 0) // key 小组ID value 权重 + for _, v := range this._lotteryType2[lotteryId] { + if _data := this.GetLotterConfById(v); _data != nil { + if (_data.Playerlvmax == 0 || _data.Playerlvmin <= lv && lv <= _data.Playerlvmax) && (_data.VIPmax == 0 || _data.VIPmin <= vipLv && vipLv <= _data.VIPmax) { // 过滤等级等条件 + if _, ok := gourp[_data.Groupid]; !ok { + gourp[_data.Groupid] = _data // 小组ID 权重赋值 + } + } + } + } + // 类型为2 可能会同时获得多个组id + for k, v := range gourp { + if v.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 + szGroupID = append(szGroupID, k) + key := int64(lotteryId)<<31 + int64(k) + if this.Stype[key] == 1 { // 随机一组数据 + for i := 0; i < int(this.SNum[key]); i++ { + szW := make([]int32, 0) + szID := make([]int32, 0) + gourp := make(map[int32]int32, 0) + for _, v := range this._groupType1[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _, ok := gourp[_data.Groupid]; !ok { + szW = append(szW, _data.Itemwt) + szID = append(szID, _data.Id) + } + } + } + index := comm.GetRandW(szW) + _data := this.GetLotterConfById(szID[index]) + fmt.Printf("获得最终的道具 :%d", _data.Id) + count := comm.GetRandNum(_data.Min, _data.Max+1) + // 随机获得的数量 + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, + }) + } + } else if this.Stype[key] == 2 { + for _, v := range this._groupType2[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max+1) + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, // 小组产出数量 + }) + } + } + } + } + } + } + } + return +} + func (this *MCompConfigure) LoadConfigure(name string, fn interface{}) (err error) { return configure.RegisterConfigure(name, fn, nil) } @@ -396,3 +609,12 @@ func (this *MCompConfigure) GetAllEquipmentConfigure() (configure []*cfg.GameEqu } return } + +func (this *MCompConfigure) GetLotterConfById(id int32) (data *cfg.GameLotteryData) { + if v, err := this.GetConfigure(game_lottery); err == nil { + if configure, ok := v.(*cfg.GameLottery); ok { + return configure.Get(id) + } + } + return +} diff --git a/modules/items/api_getlist.go b/modules/items/api_getlist.go index e15951b91..874dc9ef2 100644 --- a/modules/items/api_getlist.go +++ b/modules/items/api_getlist.go @@ -57,6 +57,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ItemsGetlistReq) } } } + } session.SendMsg(string(this.module.GetType()), "getlist", &pb.ItemsGetlistResp{Grids: items}) return diff --git a/modules/items/core.go b/modules/items/core.go index ea4fd157a..d38ec6039 100644 --- a/modules/items/core.go +++ b/modules/items/core.go @@ -20,10 +20,11 @@ const ( ) var ( - ItemNotEnoughError = errors.New("item not enough!") //物品不足 - NoFoundGirdError = errors.New("no found gvrid!") //未找到格子 - PackGridNumUpper = errors.New("grid amount upper!") //背包格子达到上限 - GirdAmountUpper = errors.New("grid amount upper!") //格子容量达到上限 + NoFoundItemConfig = errors.New("no found itemconfig!") //道具配置未找到 + ItemNotEnoughError = errors.New("item not enough!") //物品不足 + NoFoundGirdError = errors.New("no found gvrid!") //未找到格子 + PackGridNumUpper = errors.New("grid amount upper!") //背包格子达到上限 + GirdAmountUpper = errors.New("grid amount upper!") //格子容量达到上限 ) //随机权重宝箱 diff --git a/modules/items/modelitems.go b/modules/items/modelitems.go index d7ae75bcc..1b517bda3 100644 --- a/modules/items/modelitems.go +++ b/modules/items/modelitems.go @@ -228,7 +228,9 @@ func (this *ModelItemsComp) AddItemToUserPack(uId string, itemId string, addnum return } change = make([]*pb.DB_UserItemData, 0) - add, update, del, leftnum = this.addItemToUserPack(uId, itmes, itemId, addnum) + if add, update, del, leftnum, err = this.addItemToUserPack(uId, itmes, itemId, addnum); err != nil { + return + } if leftnum < 0 { err = ItemNotEnoughError return @@ -275,7 +277,9 @@ func (this *ModelItemsComp) AddItemsToUserPack(uId string, items map[string]int3 } change = make([]*pb.DB_UserItemData, 0) for k, v := range items { - add, update, del, leftnum = this.addItemToUserPack(uId, itmes, k, v) + if add, update, del, leftnum, err = this.addItemToUserPack(uId, itmes, k, v); err != nil { + return + } if leftnum < 0 { err = ItemNotEnoughError return @@ -352,9 +356,8 @@ func (this *ModelItemsComp) AddItemToUserPackByGrid(uId string, gridid string, a } ///添加移除物品到用户背包 -func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserItemData, itemId string, addnum int32) (add, update, del []*pb.DB_UserItemData, leftnum int64) { +func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserItemData, itemId string, addnum int32) (add, update, del []*pb.DB_UserItemData, leftnum int64, err error) { var ( - err error conf *cfg.GameItemData num int64 isNew bool @@ -364,6 +367,7 @@ func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserIte } if conf, err = this.module.configure.GetItemConfigure(itemId); err != nil { this.module.Errorln(err) + err = NoFoundItemConfig return } if conf.UpperLimit == 0 { diff --git a/modules/items/module.go b/modules/items/module.go index 29bb9ebdd..24f77f1f0 100644 --- a/modules/items/module.go +++ b/modules/items/module.go @@ -148,6 +148,8 @@ func (this *Items) AddItems(session comm.IUserSession, items map[string]int32, b code = pb.ErrorCode_ItemsNoEnough } else if err == PackGridNumUpper { code = pb.ErrorCode_ItemsGridNumUpper + } else if err == NoFoundItemConfig { + code = pb.ErrorCode_ConfigNoFound } else { code = pb.ErrorCode_Unknown } @@ -192,7 +194,6 @@ func (this *Items) RecoverTicket(session comm.IUserSession) (code pb.ErrorCode) //Evens-------------------------------------------------------------------------------------------------------------------------------- //推送道具变化消息 func (this *Items) itemsChangePush(session comm.IUserSession, items []*pb.DB_UserItemData) (err error) { - session.SendMsg(string(this.GetType()), "change", &pb.ItemsChangePush{Grids: items}) return } diff --git a/modules/modulebase.go b/modules/modulebase.go index 1d7b62cf7..2375d7cda 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -202,7 +202,6 @@ func (this *ModuleBase) SendMsgToUsers(mainType, subType string, msg proto.Messa data, _ := anypb.New(msg) for k, v := range gateways { for k1, v1 := range v { - ctx, _ := context.WithTimeout(context.Background(), time.Second*5) // if _, err = this.service.AcrossClusterRpcGo(ctx, k, fmt.Sprintf("%s/%s", comm.Service_Gateway, k1), string(comm.Rpc_GatewaySendBatchMsg), &pb.BatchMessageReq{ UserSessionIds: v1, diff --git a/modules/practice/api_accept.go b/modules/practice/api_accept.go index d500798ab..051afb29a 100644 --- a/modules/practice/api_accept.go +++ b/modules/practice/api_accept.go @@ -86,10 +86,12 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq this.module.modelQiecuo.Change(session.GetUserId(), map[string]interface{}{ "status": 1, "member": redRecord.Member, + "battid": redRecord.Battid, }) this.module.modelQiecuo.Change(req.Uid, map[string]interface{}{ "status": 1, "member": redRecord.Member, + "battid": redRecord.Battid, }) if err := session.SendMsg(string(this.module.GetType()), "accept", &pb.FriendAcceptResp{ @@ -100,8 +102,7 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq } this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", - &pb.FriendQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 2}, req.Uid) + &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 2}, req.Uid) return } - diff --git a/modules/practice/api_qiecuo.go b/modules/practice/api_qiecuo.go index e6b508afc..6ad376a2a 100644 --- a/modules/practice/api_qiecuo.go +++ b/modules/practice/api_qiecuo.go @@ -2,6 +2,7 @@ package practice import ( "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "time" @@ -26,15 +27,10 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq result *pb.DBPracticeQiecuoRecord fresult *pb.DBPracticeQiecuoRecord user *pb.DBUser + battle *pb.DBPvpBattle keep bool ) - //目标是否在线 - if !this.module.ModuleUser.IsOnline(req.Fid) { - code = pb.ErrorCode_UserOffline - return - } - //切磋请求处理 if result, err = this.module.modelQiecuo.queryQiecuo(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError @@ -44,8 +40,32 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq code = pb.ErrorCode_DBError return } + if result.Status == 1 || fresult.Status == 1 { //已经在战斗中了 - code = pb.ErrorCode_PracticeQiecuoing + if result.Battid == fresult.Battid { //两个人正在战斗中 + if battle, err = this.module.pvp.QueryBattle(result.Battid); err != nil { + this.module.Error("查询pvp数据失败!", log.Field{Key: "id", Value: result.Battid}, log.Field{Key: "err", Value: err.Error()}) + code = pb.ErrorCode_SystemError + return + } + if err = session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{Fid: req.Fid, Isbattle: true, Battle: battle}); err != nil { + code = pb.ErrorCode_SystemError + return + } + return + } else { + if result.Status == 1 { + code = pb.ErrorCode_PracticeYouQiecuoing + return + } else { + code = pb.ErrorCode_PracticeTargetQiecuoing + return + } + } + } + //目标是否在线 + if !this.module.ModuleUser.IsOnline(req.Fid) { + code = pb.ErrorCode_UserOffline return } diff --git a/modules/practice/api_refuse.go b/modules/practice/api_refuse.go index da425f251..09da43116 100644 --- a/modules/practice/api_refuse.go +++ b/modules/practice/api_refuse.go @@ -69,6 +69,6 @@ func (this *apiComp) Refuse(session comm.IUserSession, req *pb.PracticeRefuseReq } this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", - &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 3}, req.Uid) + &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), Name: "", NotifyType: 3}, req.Uid) return } diff --git a/modules/pvp/api_incmd.go b/modules/pvp/api_incmd.go index f93d5cbd1..38ead601b 100644 --- a/modules/pvp/api_incmd.go +++ b/modules/pvp/api_incmd.go @@ -20,8 +20,14 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (code battle *BattleItem side int32 ok bool + cd pb.ErrorCode ) - if code = this.InCmdCheck(session, req); code != pb.ErrorCode_Success { + + defer func() { + session.SendMsg(string(this.module.GetType()), "incmd", &pb.PvpInCmdResp{Code: cd, Battleid: req.Battleid, Cmd: req.Cmd}) + }() + + if cd = this.InCmdCheck(session, req); cd != pb.ErrorCode_Success { return } this.module.lock.RLock() @@ -46,11 +52,11 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (code return } //技能释放指令 - if code = this.module.battle.InCmdBattle(&pb.BattleInCmdReq{ + if cd = this.module.battle.InCmdBattle(&pb.BattleInCmdReq{ Battleid: req.Battleid, Side: side, In: req.Cmd, - }); code != pb.ErrorCode_Success { + }); cd != pb.ErrorCode_Success { return } else { if battle.operatetimer != nil { @@ -58,9 +64,9 @@ func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (code } } } else { - code = pb.ErrorCode_BattleInCmdFailed + cd = pb.ErrorCode_BattleInCmdFailed return } - session.SendMsg(string(this.module.GetType()), "incmd", &pb.PvpInCmdResp{Battleid: req.Battleid, Cmd: req.Cmd}) + return } diff --git a/modules/pvp/api_loadcomplete.go b/modules/pvp/api_loadcomplete.go new file mode 100644 index 000000000..6a5ac0d36 --- /dev/null +++ b/modules/pvp/api_loadcomplete.go @@ -0,0 +1,53 @@ +package pvp + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +//参数校验 +func (this *apiComp) LoadCompleteCheck(session comm.IUserSession, req *pb.PvpLoadCompleteReq) (code pb.ErrorCode) { + return +} + +///设置战斗阵型 +func (this *apiComp) LoadComplete(session comm.IUserSession, req *pb.PvpLoadCompleteReq) (code pb.ErrorCode, data proto.Message) { + var ( + battle *BattleItem + err error + side int32 + ok bool + ) + if code = this.LoadCompleteCheck(session, req); code != pb.ErrorCode_Success { + return + } + this.module.lock.RLock() + battle, ok = this.module.battles[req.Battleid] + this.module.lock.RUnlock() + if ok { + if session.GetUserId() == battle.Red.Uid { + side = 1 + if err = this.module.SendMsgToSession(string(comm.ModulePvp), "loadcompletenotice", &pb.PvpLoadCompleteNoticePush{ + Battleid: battle.Id, + Side: side, + }, battle.BlueSession); err != nil { + this.module.Errorln(err) + } + } else { + side = 2 + if err = this.module.SendMsgToSession(string(comm.ModulePvp), "loadcompletenotice", &pb.PvpLoadCompleteNoticePush{ + Battleid: battle.Id, + Side: side, + }, battle.RedSession); err != nil { + this.module.Errorln(err) + } + } + } else { + code = pb.ErrorCode_BattleNoKeep + return + } + session.SendMsg(string(this.module.GetType()), "into", &pb.PvpLoadCompleteResp{Battleid: req.Battleid, Issucc: true}) + return +} diff --git a/modules/pvp/modelPvp.go b/modules/pvp/modelPvp.go index 547093d41..93f9dfed0 100644 --- a/modules/pvp/modelPvp.go +++ b/modules/pvp/modelPvp.go @@ -39,6 +39,18 @@ func (this *modelPvpComp) querypvps() (result []*pb.DBPvpBattle, err error) { return } +//查询用户重置数据 +func (this *modelPvpComp) querypvp(id string) (result *pb.DBPvpBattle, err error) { + result = &pb.DBPvpBattle{} + if err = this.GetListObj("", id, result); err != nil && err != mgo.MongodbNil { + this.module.Errorf("err:%v", err) + } + if err == mgo.MongodbNil { + err = nil + } + return +} + //记录战斗信息 func (this *modelPvpComp) addpvp(battle *pb.DBPvpBattle) (err error) { if err = this.AddList("", battle.Id, battle, db.SetDBMgoLog(false)); err != nil { diff --git a/modules/pvp/module.go b/modules/pvp/module.go index 69dd68a1c..f7e1515a0 100644 --- a/modules/pvp/module.go +++ b/modules/pvp/module.go @@ -74,6 +74,11 @@ func (this *Pvp) OnInstallComp() { this.modelPvpComp = this.RegisterComp(new(modelPvpComp)).(*modelPvpComp) } +func (this *Pvp) QueryBattle(id string) (battle *pb.DBPvpBattle, err error) { + battle, err = this.modelPvpComp.querypvp(id) + return +} + //创建Pvp func (this *Pvp) CreatePvp(red, blue *pb.PvpUserInfo, ptype pb.PvpType) (battleId string, code pb.ErrorCode) { this.Debug("CreatePvp", log.Field{Key: "ptype", Value: ptype.String()}, log.Field{Key: "red", Value: red.String()}, log.Field{Key: "blue", Value: blue.String()}) @@ -184,6 +189,7 @@ func (this *Pvp) PvpOutCmdPush(out *pb.PvpOutCmdPush) { func (this *Pvp) PvpFinishPush(out *pb.BattleFinishPush) { var ( battle *BattleItem + err error ok bool ) this.lock.RLock() @@ -199,6 +205,13 @@ func (this *Pvp) PvpFinishPush(out *pb.BattleFinishPush) { break } this.modelPvpComp.delpvp(out.Battleid) + this.PutUserSession(battle.RedSession) + this.PutUserSession(battle.BlueSession) + if err = this.SendMsgToUsers(string(comm.ModulePvp), "finish", &pb.PvpFinishPush{ + Battleid: battle.Id, + }, battle.Red.Uid, battle.Blue.Uid); err != nil { + this.Errorln(err) + } } } diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go index 9585f3b0d..f26306c76 100644 --- a/modules/smithy/api_forgeequip.go +++ b/modules/smithy/api_forgeequip.go @@ -65,12 +65,12 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq } // 校验是不是装备定制打造 if req.SuiteId != 0 { - // 检查消耗 - if code = this.module.CheckRes(session, []*cfg.Gameatn{reelcfg.CustomizedCos1}); code != pb.ErrorCode_Success { - return - } - costRes = append(costRes, reelcfg.CustomizedCos1) if req.Position == -1 { + if code = this.module.CheckRes(session, []*cfg.Gameatn{reelcfg.CustomizedCos1}); code != pb.ErrorCode_Success { + return + } + costRes = append(costRes, reelcfg.CustomizedCos1) + } else { if code = this.module.CheckRes(session, []*cfg.Gameatn{reelcfg.CustomizedCos2}); code != pb.ErrorCode_Success { return } @@ -87,7 +87,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq t := this.module.modelStove.CheckTemperature(req.ReelId, stove.Data[req.ReelId].Lv) needTemperatureCos = reelcfg.TemperatureCos * (1000 - t) / 1000 // 千分比 - if req.Lava > 0 { // 是否是熔岩打造 + if req.Lava > 0 { // 熔岩打造 exemption := this.module.configure.GetGlobalConf().ExemptionTemperatureCos // 预计消耗温度 gloabNum := this.module.configure.GetGlobalConf().ExemptionTemperatureCosNum if needTemperatureCos > req.Lava*gloabNum { diff --git a/modules/smithy/api_rise.go b/modules/smithy/api_rise.go index a70210449..f80aaf14b 100644 --- a/modules/smithy/api_rise.go +++ b/modules/smithy/api_rise.go @@ -53,6 +53,12 @@ func (this *apiComp) Rise(session comm.IUserSession, req *pb.SmithyRiseReq) (cod } stove.Temperature += req.Count * raise_temperatureNum update := make(map[string]interface{}, 0) + + if stove.RecoveTime != 0 && stove.Temperature >= conf.MaxTemperature { + stove.RecoveTime = 0 + update["recoveTime"] = stove.RecoveTime + } + update["temperature"] = stove.Temperature this.module.modelStove.updateSmithyStove(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "rise", &pb.SmithyRiseResp{Data: stove}) diff --git a/modules/smithy/api_stoveup.go b/modules/smithy/api_stoveup.go index 10ed8e6e5..db8a60005 100644 --- a/modules/smithy/api_stoveup.go +++ b/modules/smithy/api_stoveup.go @@ -3,6 +3,7 @@ package smithy import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" "google.golang.org/protobuf/proto" ) @@ -39,7 +40,11 @@ func (this *apiComp) StoveUp(session comm.IUserSession, req *pb.SmithyStoveUpReq } stove.Lv += 1 update := make(map[string]interface{}) - //update["temperature"] = stove.Temperature + if stove.RecoveTime == 0 { + stove.RecoveTime = configure.Now().Unix() + update["recoveTime"] = stove.RecoveTime + } + update["lv"] = stove.Lv this.module.modelStove.updateSmithyStove(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "stoveup", &pb.SmithyStoveUpResp{Data: stove}) diff --git a/modules/smithy/model_stove.go b/modules/smithy/model_stove.go index 78e02abeb..847bceac9 100644 --- a/modules/smithy/model_stove.go +++ b/modules/smithy/model_stove.go @@ -124,25 +124,23 @@ func (this *modelStove) CheckForgeConsume(reelId int32, lv int32) (atn []*cfg.Ga // 计算恢复进度 func (this *modelStove) calculationRecoveryT(uid string, stove *pb.DBStove) { - - conf := this.module.configure.GetSmithyStoveConf(stove.Lv) - if conf == nil { - return - } - if stove.Temperature < conf.MaxTemperature { - update := make(map[string]interface{}) - // 小于最高温度就开始恢复 - addT := (configure.Now().Unix() - stove.RecoveTime) / int64(conf.TemperatureRecovery) - stove.Temperature += int32(addT) - if stove.Temperature > conf.MaxTemperature { - stove.Temperature = conf.MaxTemperature - stove.RecoveTime = 0 - } else { - stove.RecoveTime += addT * int64(conf.TemperatureRecovery) + if conf := this.module.configure.GetSmithyStoveConf(stove.Lv); conf != nil { + if stove.Temperature < conf.MaxTemperature { + // 小于最高温度就开始恢复 + if addT := (configure.Now().Unix() - stove.RecoveTime) / int64(conf.TemperatureRecovery); addT > 0 { + stove.Temperature += int32(addT) + if stove.Temperature > conf.MaxTemperature { + stove.Temperature = conf.MaxTemperature + stove.RecoveTime = 0 + } else { + stove.RecoveTime += addT * int64(conf.TemperatureRecovery) + } + update := make(map[string]interface{}) + update["temperature"] = stove.Temperature + update["recoveTime"] = stove.RecoveTime + this.module.modelStove.updateSmithyStove(uid, update) + } } - update["temperature"] = stove.Temperature - update["recoveTime"] = stove.RecoveTime - this.module.modelStove.updateSmithyStove(uid, update) } } diff --git a/pb/practice_msg.pb.go b/pb/practice_msg.pb.go index 08a80b472..e0640e67f 100644 --- a/pb/practice_msg.pb.go +++ b/pb/practice_msg.pb.go @@ -1557,7 +1557,9 @@ type PracticeQiecuoResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` + Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` + Isbattle bool `protobuf:"varint,2,opt,name=isbattle,proto3" json:"isbattle"` + Battle *DBPvpBattle `protobuf:"bytes,3,opt,name=battle,proto3" json:"battle"` } func (x *PracticeQiecuoResp) Reset() { @@ -1599,6 +1601,20 @@ func (x *PracticeQiecuoResp) GetFid() string { return "" } +func (x *PracticeQiecuoResp) GetIsbattle() bool { + if x != nil { + return x.Isbattle + } + return false +} + +func (x *PracticeQiecuoResp) GetBattle() *DBPvpBattle { + if x != nil { + return x.Battle + } + return nil +} + //接受切磋 type PracticeAcceptReq struct { state protoimpl.MessageState @@ -2149,191 +2165,196 @@ var file_practice_practice_msg_proto_rawDesc = []byte{ 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x10, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, - 0x3d, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6d, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x2b, - 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x16, - 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, - 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, - 0x1a, 0x49, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x29, 0x0a, 0x11, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, + 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x70, 0x76, 0x70, 0x2f, 0x70, 0x76, 0x70, 0x5f, 0x64, 0x62, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x10, 0x50, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x22, 0x2a, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3b, 0x0a, - 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x6d, 0x0a, 0x13, 0x50, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x41, 0x0a, 0x14, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, - 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x22, 0x6b, 0x0a, 0x0f, - 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x55, 0x0a, 0x10, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, - 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, - 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, - 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12, 0x40, 0x0a, - 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x1a, - 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x6f, 0x22, 0x3d, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6d, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x2b, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x22, 0x9d, 0x01, + 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x1a, 0x49, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 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, 0xd9, 0x01, 0x0a, - 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, - 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06, - 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, - 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, - 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, - 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x50, - 0x75, 0x73, 0x68, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, - 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0x42, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0xbd, 0x01, 0x0a, - 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x29, 0x0a, + 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, + 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, + 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x2a, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x3b, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x6d, 0x0a, 0x13, + 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x41, 0x0a, 0x14, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, + 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x22, 0x6b, + 0x0a, 0x0f, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a, + 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x55, 0x0a, 0x10, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, + 0x61, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, + 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12, - 0x3e, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x1a, - 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0x3f, 0x0a, 0x13, - 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, - 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x40, 0x0a, - 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x40, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, + 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, + 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, + 0x6b, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0xd9, + 0x01, 0x0a, 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70, + 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x12, 0x29, + 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, + 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x08, 0x6b, 0x6e, 0x61, + 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x1a, 0x3b, 0x0a, + 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0x42, 0x0a, 0x12, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0xbd, + 0x01, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, + 0x72, 0x12, 0x3e, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, + 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, + 0x6b, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0x3f, + 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, - 0x24, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4a, 0x58, 0x49, 0x74, 0x65, - 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, - 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x55, 0x0a, 0x13, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e, - 0x75, 0x6d, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, - 0x6d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x22, 0x58, 0x0a, 0x16, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x22, 0x31, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, - 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x22, 0x30, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x16, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x25, 0x0a, - 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, - 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x66, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, - 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x22, 0x25, 0x0a, 0x11, - 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, - 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, - 0x63, 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, - 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x60, 0x0a, 0x18, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x75, - 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, - 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x44, 0x0a, 0x1b, + 0x40, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, + 0x6f, 0x22, 0x24, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4a, 0x58, 0x49, + 0x74, 0x65, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x55, 0x0a, + 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x6e, 0x75, 0x6d, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, + 0x47, 0x79, 0x6d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x22, 0x58, 0x0a, + 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73, + 0x74, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x22, 0x31, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x22, 0x30, 0x0a, 0x16, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x15, + 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x30, 0x0a, + 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, + 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, + 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, + 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x06, 0x62, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x42, 0x50, + 0x76, 0x70, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, + 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x60, 0x0a, 0x18, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, - 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x06, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, - 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, - 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, - 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, - 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, + 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x44, 0x0a, 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, + 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, + 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16, + 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, + 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2398,10 +2419,11 @@ var file_practice_practice_msg_proto_goTypes = []interface{}{ nil, // 45: PracticeReceiveResp.KnapsackEntry (*DBPracticeRoom)(nil), // 46: DBPracticeRoom (*DBPracticePillar)(nil), // 47: DBPracticePillar - (*BattleFormation)(nil), // 48: BattleFormation - (ErrorCode)(0), // 49: ErrorCode - (*BattleInfo)(nil), // 50: BattleInfo - (*BattleReport)(nil), // 51: BattleReport + (*DBPvpBattle)(nil), // 48: DBPvpBattle + (*BattleFormation)(nil), // 49: BattleFormation + (ErrorCode)(0), // 50: ErrorCode + (*BattleInfo)(nil), // 51: BattleInfo + (*BattleReport)(nil), // 52: BattleReport } var file_practice_practice_msg_proto_depIdxs = []int32{ 46, // 0: PracticeInfoResp.info:type_name -> DBPracticeRoom @@ -2416,16 +2438,17 @@ var file_practice_practice_msg_proto_depIdxs = []int32{ 44, // 9: PracticeBeExpulsionPush.knapsack:type_name -> PracticeBeExpulsionPush.KnapsackEntry 47, // 10: PracticeReceiveResp.pillar:type_name -> DBPracticePillar 45, // 11: PracticeReceiveResp.knapsack:type_name -> PracticeReceiveResp.KnapsackEntry - 48, // 12: PracticeNPCBattkleReq.formation:type_name -> BattleFormation - 49, // 13: PracticeNPCBattkleResp.code:type_name -> ErrorCode - 50, // 14: PracticeNPCBattkleResp.info:type_name -> BattleInfo - 51, // 15: PracticeNPCBattkleFinishReq.report:type_name -> BattleReport - 46, // 16: PracticeFriendRommResp.InfosEntry.value:type_name -> DBPracticeRoom - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 48, // 12: PracticeQiecuoResp.battle:type_name -> DBPvpBattle + 49, // 13: PracticeNPCBattkleReq.formation:type_name -> BattleFormation + 50, // 14: PracticeNPCBattkleResp.code:type_name -> ErrorCode + 51, // 15: PracticeNPCBattkleResp.info:type_name -> BattleInfo + 52, // 16: PracticeNPCBattkleFinishReq.report:type_name -> BattleReport + 46, // 17: PracticeFriendRommResp.InfosEntry.value:type_name -> DBPracticeRoom + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_practice_practice_msg_proto_init() } @@ -2436,6 +2459,7 @@ func file_practice_practice_msg_proto_init() { file_errorcode_proto_init() file_practice_practice_db_proto_init() file_battle_battle_msg_proto_init() + file_pvp_pvp_db_proto_init() if !protoimpl.UnsafeEnabled { file_practice_practice_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PracticeInfoReq); i { diff --git a/pb/pvp_msg.pb.go b/pb/pvp_msg.pb.go index f4da18d74..4a7e81c9b 100644 --- a/pb/pvp_msg.pb.go +++ b/pb/pvp_msg.pb.go @@ -299,6 +299,166 @@ func (x *PvpReadyPush) GetCountdown() int32 { return 0 } +//加载完毕请求 +type PvpLoadCompleteReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid string `protobuf:"bytes,1,opt,name=battleid,proto3" json:"battleid"` //战斗id +} + +func (x *PvpLoadCompleteReq) Reset() { + *x = PvpLoadCompleteReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PvpLoadCompleteReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PvpLoadCompleteReq) ProtoMessage() {} + +func (x *PvpLoadCompleteReq) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PvpLoadCompleteReq.ProtoReflect.Descriptor instead. +func (*PvpLoadCompleteReq) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{5} +} + +func (x *PvpLoadCompleteReq) GetBattleid() string { + if x != nil { + return x.Battleid + } + return "" +} + +//加载完毕请求 +type PvpLoadCompleteResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid string `protobuf:"bytes,1,opt,name=battleid,proto3" json:"battleid"` //战斗id + Issucc bool `protobuf:"varint,2,opt,name=issucc,proto3" json:"issucc"` +} + +func (x *PvpLoadCompleteResp) Reset() { + *x = PvpLoadCompleteResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PvpLoadCompleteResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PvpLoadCompleteResp) ProtoMessage() {} + +func (x *PvpLoadCompleteResp) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PvpLoadCompleteResp.ProtoReflect.Descriptor instead. +func (*PvpLoadCompleteResp) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{6} +} + +func (x *PvpLoadCompleteResp) GetBattleid() string { + if x != nil { + return x.Battleid + } + return "" +} + +func (x *PvpLoadCompleteResp) GetIssucc() bool { + if x != nil { + return x.Issucc + } + return false +} + +//加载完毕 通知 +type PvpLoadCompleteNoticePush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid string `protobuf:"bytes,1,opt,name=battleid,proto3" json:"battleid"` //战斗id + Side int32 `protobuf:"varint,2,opt,name=side,proto3" json:"side"` +} + +func (x *PvpLoadCompleteNoticePush) Reset() { + *x = PvpLoadCompleteNoticePush{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PvpLoadCompleteNoticePush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PvpLoadCompleteNoticePush) ProtoMessage() {} + +func (x *PvpLoadCompleteNoticePush) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PvpLoadCompleteNoticePush.ProtoReflect.Descriptor instead. +func (*PvpLoadCompleteNoticePush) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{7} +} + +func (x *PvpLoadCompleteNoticePush) GetBattleid() string { + if x != nil { + return x.Battleid + } + return "" +} + +func (x *PvpLoadCompleteNoticePush) GetSide() int32 { + if x != nil { + return x.Side + } + return 0 +} + //Pvp 战斗准备推送 type PvpCancelPush struct { state protoimpl.MessageState @@ -312,7 +472,7 @@ type PvpCancelPush struct { func (x *PvpCancelPush) Reset() { *x = PvpCancelPush{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[5] + mi := &file_pvp_pvp_msg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -325,7 +485,7 @@ func (x *PvpCancelPush) String() string { func (*PvpCancelPush) ProtoMessage() {} func (x *PvpCancelPush) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[5] + mi := &file_pvp_pvp_msg_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -338,7 +498,7 @@ func (x *PvpCancelPush) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpCancelPush.ProtoReflect.Descriptor instead. func (*PvpCancelPush) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{5} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{8} } func (x *PvpCancelPush) GetServicePath() string { @@ -366,7 +526,7 @@ type PvpActiveCancelReq struct { func (x *PvpActiveCancelReq) Reset() { *x = PvpActiveCancelReq{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[6] + mi := &file_pvp_pvp_msg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -379,7 +539,7 @@ func (x *PvpActiveCancelReq) String() string { func (*PvpActiveCancelReq) ProtoMessage() {} func (x *PvpActiveCancelReq) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[6] + mi := &file_pvp_pvp_msg_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -392,7 +552,7 @@ func (x *PvpActiveCancelReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpActiveCancelReq.ProtoReflect.Descriptor instead. func (*PvpActiveCancelReq) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{6} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{9} } func (x *PvpActiveCancelReq) GetBattleid() string { @@ -413,7 +573,7 @@ type PvpActiveCancelResp struct { func (x *PvpActiveCancelResp) Reset() { *x = PvpActiveCancelResp{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[7] + mi := &file_pvp_pvp_msg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -426,7 +586,7 @@ func (x *PvpActiveCancelResp) String() string { func (*PvpActiveCancelResp) ProtoMessage() {} func (x *PvpActiveCancelResp) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[7] + mi := &file_pvp_pvp_msg_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -439,7 +599,7 @@ func (x *PvpActiveCancelResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpActiveCancelResp.ProtoReflect.Descriptor instead. func (*PvpActiveCancelResp) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{7} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{10} } func (x *PvpActiveCancelResp) GetIssucc() bool { @@ -462,7 +622,7 @@ type PvpFormationReq struct { func (x *PvpFormationReq) Reset() { *x = PvpFormationReq{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[8] + mi := &file_pvp_pvp_msg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -475,7 +635,7 @@ func (x *PvpFormationReq) String() string { func (*PvpFormationReq) ProtoMessage() {} func (x *PvpFormationReq) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[8] + mi := &file_pvp_pvp_msg_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -488,7 +648,7 @@ func (x *PvpFormationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpFormationReq.ProtoReflect.Descriptor instead. func (*PvpFormationReq) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{8} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{11} } func (x *PvpFormationReq) GetBattleid() string { @@ -517,7 +677,7 @@ type PvpFormationResp struct { func (x *PvpFormationResp) Reset() { *x = PvpFormationResp{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[9] + mi := &file_pvp_pvp_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -530,7 +690,7 @@ func (x *PvpFormationResp) String() string { func (*PvpFormationResp) ProtoMessage() {} func (x *PvpFormationResp) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[9] + mi := &file_pvp_pvp_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -543,7 +703,7 @@ func (x *PvpFormationResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpFormationResp.ProtoReflect.Descriptor instead. func (*PvpFormationResp) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{9} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{12} } func (x *PvpFormationResp) GetIssucc() bool { @@ -566,7 +726,7 @@ type PvpStartPush struct { func (x *PvpStartPush) Reset() { *x = PvpStartPush{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[10] + mi := &file_pvp_pvp_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -579,7 +739,7 @@ func (x *PvpStartPush) String() string { func (*PvpStartPush) ProtoMessage() {} func (x *PvpStartPush) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[10] + mi := &file_pvp_pvp_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -592,7 +752,7 @@ func (x *PvpStartPush) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpStartPush.ProtoReflect.Descriptor instead. func (*PvpStartPush) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{10} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{13} } func (x *PvpStartPush) GetCode() ErrorCode { @@ -622,7 +782,7 @@ type PvpOutCmdPush struct { func (x *PvpOutCmdPush) Reset() { *x = PvpOutCmdPush{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[11] + mi := &file_pvp_pvp_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -635,7 +795,7 @@ func (x *PvpOutCmdPush) String() string { func (*PvpOutCmdPush) ProtoMessage() {} func (x *PvpOutCmdPush) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[11] + mi := &file_pvp_pvp_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -648,7 +808,7 @@ func (x *PvpOutCmdPush) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpOutCmdPush.ProtoReflect.Descriptor instead. func (*PvpOutCmdPush) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{11} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{14} } func (x *PvpOutCmdPush) GetBattleid() string { @@ -678,7 +838,7 @@ type PvpInCmdReq struct { func (x *PvpInCmdReq) Reset() { *x = PvpInCmdReq{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[12] + mi := &file_pvp_pvp_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -691,7 +851,7 @@ func (x *PvpInCmdReq) String() string { func (*PvpInCmdReq) ProtoMessage() {} func (x *PvpInCmdReq) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[12] + mi := &file_pvp_pvp_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -704,7 +864,7 @@ func (x *PvpInCmdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpInCmdReq.ProtoReflect.Descriptor instead. func (*PvpInCmdReq) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{12} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{15} } func (x *PvpInCmdReq) GetBattleid() string { @@ -735,7 +895,7 @@ type PvpInCmdResp struct { func (x *PvpInCmdResp) Reset() { *x = PvpInCmdResp{} if protoimpl.UnsafeEnabled { - mi := &file_pvp_pvp_msg_proto_msgTypes[13] + mi := &file_pvp_pvp_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -748,7 +908,7 @@ func (x *PvpInCmdResp) String() string { func (*PvpInCmdResp) ProtoMessage() {} func (x *PvpInCmdResp) ProtoReflect() protoreflect.Message { - mi := &file_pvp_pvp_msg_proto_msgTypes[13] + mi := &file_pvp_pvp_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -761,7 +921,7 @@ func (x *PvpInCmdResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PvpInCmdResp.ProtoReflect.Descriptor instead. func (*PvpInCmdResp) Descriptor() ([]byte, []int) { - return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{13} + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{16} } func (x *PvpInCmdResp) GetCode() ErrorCode { @@ -785,6 +945,54 @@ func (x *PvpInCmdResp) GetCmd() *BattleCmd { return nil } +//实时Pvp 战斗结束推送 +type PvpFinishPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid string `protobuf:"bytes,1,opt,name=battleid,proto3" json:"battleid"` +} + +func (x *PvpFinishPush) Reset() { + *x = PvpFinishPush{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PvpFinishPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PvpFinishPush) ProtoMessage() {} + +func (x *PvpFinishPush) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PvpFinishPush.ProtoReflect.Descriptor instead. +func (*PvpFinishPush) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{17} +} + +func (x *PvpFinishPush) GetBattleid() string { + if x != nil { + return x.Battleid + } + return "" +} + var File_pvp_pvp_msg_proto protoreflect.FileDescriptor var file_pvp_pvp_msg_proto_rawDesc = []byte{ @@ -817,49 +1025,64 @@ var file_pvp_pvp_msg_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x50, 0x76, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x4d, 0x0a, 0x0d, 0x50, 0x76, 0x70, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x12, 0x50, 0x76, 0x70, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, - 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x13, 0x50, 0x76, 0x70, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x5d, 0x0a, 0x0f, 0x50, 0x76, 0x70, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2a, 0x0a, 0x10, 0x50, 0x76, 0x70, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, - 0x75, 0x63, 0x63, 0x22, 0x4f, 0x0a, 0x0c, 0x50, 0x76, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, - 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x49, 0x0a, 0x0d, 0x50, 0x76, 0x70, 0x4f, 0x75, 0x74, 0x43, 0x6d, - 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, - 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, - 0x47, 0x0a, 0x0b, 0x50, 0x76, 0x70, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, + 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x30, 0x0a, 0x12, 0x50, 0x76, 0x70, 0x4c, + 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, 0x6d, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0x68, 0x0a, 0x0c, 0x50, 0x76, 0x70, 0x49, - 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x13, 0x50, 0x76, + 0x70, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x4b, 0x0a, 0x19, 0x50, 0x76, 0x70, 0x4c, 0x6f, 0x61, 0x64, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, + 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, + 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x0d, 0x50, 0x76, 0x70, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, + 0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, + 0x64, 0x22, 0x30, 0x0a, 0x12, 0x50, 0x76, 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x13, 0x50, 0x76, 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, + 0x63, 0x63, 0x22, 0x5d, 0x0a, 0x0f, 0x50, 0x76, 0x70, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, + 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x2a, 0x0a, 0x10, 0x50, 0x76, 0x70, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x4f, 0x0a, + 0x0c, 0x50, 0x76, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x49, + 0x0a, 0x0d, 0x50, 0x76, 0x70, 0x4f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, + 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, + 0x6d, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x50, 0x76, 0x70, + 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, - 0x6d, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6d, 0x64, 0x22, 0x68, 0x0a, 0x0c, 0x50, 0x76, 0x70, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0x2b, 0x0a, 0x0d, + 0x50, 0x76, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a, + 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -874,43 +1097,47 @@ func file_pvp_pvp_msg_proto_rawDescGZIP() []byte { return file_pvp_pvp_msg_proto_rawDescData } -var file_pvp_pvp_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pvp_pvp_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_pvp_pvp_msg_proto_goTypes = []interface{}{ - (*PvpListReq)(nil), // 0: PvpListReq - (*PvpListResp)(nil), // 1: PvpListResp - (*PvpIntoReq)(nil), // 2: PvpIntoReq - (*PvpIntoResp)(nil), // 3: PvpIntoResp - (*PvpReadyPush)(nil), // 4: PvpReadyPush - (*PvpCancelPush)(nil), // 5: PvpCancelPush - (*PvpActiveCancelReq)(nil), // 6: PvpActiveCancelReq - (*PvpActiveCancelResp)(nil), // 7: PvpActiveCancelResp - (*PvpFormationReq)(nil), // 8: PvpFormationReq - (*PvpFormationResp)(nil), // 9: PvpFormationResp - (*PvpStartPush)(nil), // 10: PvpStartPush - (*PvpOutCmdPush)(nil), // 11: PvpOutCmdPush - (*PvpInCmdReq)(nil), // 12: PvpInCmdReq - (*PvpInCmdResp)(nil), // 13: PvpInCmdResp - (*DBPvpBattle)(nil), // 14: DBPvpBattle - (ErrorCode)(0), // 15: ErrorCode - (*BattleStateInfo)(nil), // 16: BattleStateInfo - (*PvpUserInfo)(nil), // 17: PvpUserInfo - (*BattleFormation)(nil), // 18: BattleFormation - (*BattleInfo)(nil), // 19: BattleInfo - (*BattleCmd)(nil), // 20: BattleCmd + (*PvpListReq)(nil), // 0: PvpListReq + (*PvpListResp)(nil), // 1: PvpListResp + (*PvpIntoReq)(nil), // 2: PvpIntoReq + (*PvpIntoResp)(nil), // 3: PvpIntoResp + (*PvpReadyPush)(nil), // 4: PvpReadyPush + (*PvpLoadCompleteReq)(nil), // 5: PvpLoadCompleteReq + (*PvpLoadCompleteResp)(nil), // 6: PvpLoadCompleteResp + (*PvpLoadCompleteNoticePush)(nil), // 7: PvpLoadCompleteNoticePush + (*PvpCancelPush)(nil), // 8: PvpCancelPush + (*PvpActiveCancelReq)(nil), // 9: PvpActiveCancelReq + (*PvpActiveCancelResp)(nil), // 10: PvpActiveCancelResp + (*PvpFormationReq)(nil), // 11: PvpFormationReq + (*PvpFormationResp)(nil), // 12: PvpFormationResp + (*PvpStartPush)(nil), // 13: PvpStartPush + (*PvpOutCmdPush)(nil), // 14: PvpOutCmdPush + (*PvpInCmdReq)(nil), // 15: PvpInCmdReq + (*PvpInCmdResp)(nil), // 16: PvpInCmdResp + (*PvpFinishPush)(nil), // 17: PvpFinishPush + (*DBPvpBattle)(nil), // 18: DBPvpBattle + (ErrorCode)(0), // 19: ErrorCode + (*BattleStateInfo)(nil), // 20: BattleStateInfo + (*PvpUserInfo)(nil), // 21: PvpUserInfo + (*BattleFormation)(nil), // 22: BattleFormation + (*BattleInfo)(nil), // 23: BattleInfo + (*BattleCmd)(nil), // 24: BattleCmd } var file_pvp_pvp_msg_proto_depIdxs = []int32{ - 14, // 0: PvpListResp.list:type_name -> DBPvpBattle - 15, // 1: PvpIntoResp.code:type_name -> ErrorCode - 16, // 2: PvpIntoResp.info:type_name -> BattleStateInfo - 17, // 3: PvpReadyPush.red:type_name -> PvpUserInfo - 17, // 4: PvpReadyPush.blue:type_name -> PvpUserInfo - 18, // 5: PvpFormationReq.formation:type_name -> BattleFormation - 15, // 6: PvpStartPush.code:type_name -> ErrorCode - 19, // 7: PvpStartPush.info:type_name -> BattleInfo - 20, // 8: PvpOutCmdPush.cmd:type_name -> BattleCmd - 20, // 9: PvpInCmdReq.cmd:type_name -> BattleCmd - 15, // 10: PvpInCmdResp.code:type_name -> ErrorCode - 20, // 11: PvpInCmdResp.cmd:type_name -> BattleCmd + 18, // 0: PvpListResp.list:type_name -> DBPvpBattle + 19, // 1: PvpIntoResp.code:type_name -> ErrorCode + 20, // 2: PvpIntoResp.info:type_name -> BattleStateInfo + 21, // 3: PvpReadyPush.red:type_name -> PvpUserInfo + 21, // 4: PvpReadyPush.blue:type_name -> PvpUserInfo + 22, // 5: PvpFormationReq.formation:type_name -> BattleFormation + 19, // 6: PvpStartPush.code:type_name -> ErrorCode + 23, // 7: PvpStartPush.info:type_name -> BattleInfo + 24, // 8: PvpOutCmdPush.cmd:type_name -> BattleCmd + 24, // 9: PvpInCmdReq.cmd:type_name -> BattleCmd + 19, // 10: PvpInCmdResp.code:type_name -> ErrorCode + 24, // 11: PvpInCmdResp.cmd:type_name -> BattleCmd 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name @@ -988,7 +1215,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpCancelPush); i { + switch v := v.(*PvpLoadCompleteReq); i { case 0: return &v.state case 1: @@ -1000,7 +1227,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpActiveCancelReq); i { + switch v := v.(*PvpLoadCompleteResp); i { case 0: return &v.state case 1: @@ -1012,7 +1239,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpActiveCancelResp); i { + switch v := v.(*PvpLoadCompleteNoticePush); i { case 0: return &v.state case 1: @@ -1024,7 +1251,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpFormationReq); i { + switch v := v.(*PvpCancelPush); i { case 0: return &v.state case 1: @@ -1036,7 +1263,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpFormationResp); i { + switch v := v.(*PvpActiveCancelReq); i { case 0: return &v.state case 1: @@ -1048,7 +1275,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpStartPush); i { + switch v := v.(*PvpActiveCancelResp); i { case 0: return &v.state case 1: @@ -1060,7 +1287,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpOutCmdPush); i { + switch v := v.(*PvpFormationReq); i { case 0: return &v.state case 1: @@ -1072,7 +1299,7 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PvpInCmdReq); i { + switch v := v.(*PvpFormationResp); i { case 0: return &v.state case 1: @@ -1084,6 +1311,42 @@ func file_pvp_pvp_msg_proto_init() { } } file_pvp_pvp_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PvpStartPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pvp_pvp_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PvpOutCmdPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pvp_pvp_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PvpInCmdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pvp_pvp_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PvpInCmdResp); i { case 0: return &v.state @@ -1095,6 +1358,18 @@ func file_pvp_pvp_msg_proto_init() { return nil } } + file_pvp_pvp_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PvpFinishPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1102,7 +1377,7 @@ func file_pvp_pvp_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pvp_pvp_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go index f01baa1eb..ab5138859 100644 --- a/sys/configure/structs/Tables.go +++ b/sys/configure/structs/Tables.go @@ -75,7 +75,6 @@ type Tables struct { HuntingOpenTime *GameHuntingOpenTime HuntingLineup *GameHuntingLineup MonsterFormat *GameMonsterFormat - Link *GameLink GetResource *GameGetResource VikingBossSkill *GameVikingBossSkill LibraryFetter *GameLibraryFetter @@ -572,12 +571,6 @@ func NewTables(loader JsonLoader) (*Tables, error) { if tables.MonsterFormat, err = NewGameMonsterFormat(buf) ; err != nil { return nil, err } - if buf, err = loader("game_link") ; err != nil { - return nil, err - } - if tables.Link, err = NewGameLink(buf) ; err != nil { - return nil, err - } if buf, err = loader("game_getresource") ; err != nil { return nil, err } diff --git a/sys/configure/structs/game.globalData.go b/sys/configure/structs/game.globalData.go index 0aae368df..6a1fd496f 100644 --- a/sys/configure/structs/game.globalData.go +++ b/sys/configure/structs/game.globalData.go @@ -202,6 +202,7 @@ type GameGlobalData struct { DailyTips int32 DailyNum int32 WeekNum int32 + FitnessModelId string } const TypeId_GameGlobalData = 477542761 @@ -818,6 +819,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Daily_Tips"].(float64); !_ok_ { err = errors.New("Daily_Tips error"); return }; _v.DailyTips = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Daily_Num"].(float64); !_ok_ { err = errors.New("Daily_Num error"); return }; _v.DailyNum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Week_Num"].(float64); !_ok_ { err = errors.New("Week_Num error"); return }; _v.WeekNum = int32(_tempNum_) } + { var _ok_ bool; if _v.FitnessModelId, _ok_ = _buf["fitnessModelId"].(string); !_ok_ { err = errors.New("fitnessModelId error"); return } } return }