diff --git a/bin/json/game_buzkashifm.json b/bin/json/game_buzkashifm.json new file mode 100644 index 000000000..682df8df7 --- /dev/null +++ b/bin/json/game_buzkashifm.json @@ -0,0 +1,102 @@ +[ + { + "num": 1, + "type": 1, + "stime": "碰撞障碍时", + "broadcast": { + "key": "itemname_30001", + "text": "这招太狠了,希望没有人受伤" + }, + "icon": "" + }, + { + "num": 2, + "type": 1, + "stime": "碰撞障碍时", + "broadcast": { + "key": "itemname_30001", + "text": "这招太狠了,希望没有人受伤" + }, + "icon": "" + }, + { + "num": 3, + "type": 2, + "stime": "闪避障碍时", + "broadcast": { + "key": "itemname_30002", + "text": "大放异彩!" + }, + "icon": "" + }, + { + "num": 4, + "type": 3, + "stime": "射门成功", + "broadcast": { + "key": "itemname_30003", + "text": "完美的配合!" + }, + "icon": "" + }, + { + "num": 5, + "type": 4, + "stime": "射门失败", + "broadcast": { + "key": "itemname_30004", + "text": "这招太狠了,希望没有人受伤" + }, + "icon": "" + }, + { + "num": 6, + "type": 5, + "stime": "使用药剂", + "broadcast": { + "key": "itemname_30005", + "text": "大放异彩!" + }, + "icon": "" + }, + { + "num": 7, + "type": 6, + "stime": "团队冲刺", + "broadcast": { + "key": "itemname_50001", + "text": "完美的配合!" + }, + "icon": "" + }, + { + "num": 8, + "type": 7, + "stime": "死亡", + "broadcast": { + "key": "itemname_50001", + "text": "这招太狠了,希望没有人受伤" + }, + "icon": "" + }, + { + "num": 9, + "type": 8, + "stime": "使用道具", + "broadcast": { + "key": "itemname_50001", + "text": "大放异彩!" + }, + "icon": "" + }, + { + "num": 10, + "type": 9, + "stime": "射门时", + "broadcast": { + "key": "itemname_50001", + "text": "完美的配合!" + }, + "icon": "" + } +] \ No newline at end of file diff --git a/bin/json/game_buzkashigrade.json b/bin/json/game_buzkashigrade.json new file mode 100644 index 000000000..5777e7c27 --- /dev/null +++ b/bin/json/game_buzkashigrade.json @@ -0,0 +1,22 @@ +[ + { + "num": 1, + "distance": "1", + "value": 8 + }, + { + "num": 2, + "distance": "2", + "value": 6 + }, + { + "num": 3, + "distance": "3", + "value": 4 + }, + { + "num": 4, + "distance": "4", + "value": 2 + } +] \ No newline at end of file diff --git a/bin/json/game_buzkashilv.json b/bin/json/game_buzkashilv.json new file mode 100644 index 000000000..ca7f65a7c --- /dev/null +++ b/bin/json/game_buzkashilv.json @@ -0,0 +1,32 @@ +[ + { + "num": 1, + "score": "c", + "value": 10 + }, + { + "num": 2, + "score": "b", + "value": 20 + }, + { + "num": 3, + "score": "a", + "value": 50 + }, + { + "num": 4, + "score": "s", + "value": 80 + }, + { + "num": 5, + "score": "ss", + "value": 100 + }, + { + "num": 6, + "score": "sss", + "value": 120 + } +] \ No newline at end of file diff --git a/bin/json/game_buzkashimount.json b/bin/json/game_buzkashimount.json new file mode 100644 index 000000000..351d3ecac --- /dev/null +++ b/bin/json/game_buzkashimount.json @@ -0,0 +1,38 @@ +[ + { + "num": "20030001", + "stime": 100, + "etime": 120, + "hp": 7, + "model": "", + "point": "", + "moderate": 0, + "sprint": 0, + "acceleration": 0, + "deceleration": 0 + }, + { + "num": "20030002", + "stime": 100, + "etime": 120, + "hp": 5, + "model": "", + "point": "", + "moderate": 0, + "sprint": 0, + "acceleration": 0, + "deceleration": 0 + }, + { + "num": "20030003", + "stime": 100, + "etime": 120, + "hp": 5, + "model": "", + "point": "", + "moderate": 0, + "sprint": 0, + "acceleration": 0, + "deceleration": 0 + } +] \ No newline at end of file diff --git a/bin/json/game_buzkashiopen.json b/bin/json/game_buzkashiopen.json new file mode 100644 index 000000000..cac0a1795 --- /dev/null +++ b/bin/json/game_buzkashiopen.json @@ -0,0 +1,170 @@ +[ + { + "num": 1, + "shtime": 0, + "smtime": 30, + "ehtime": 0, + "emtime": 50 + }, + { + "num": 2, + "shtime": 1, + "smtime": 30, + "ehtime": 1, + "emtime": 50 + }, + { + "num": 3, + "shtime": 2, + "smtime": 30, + "ehtime": 2, + "emtime": 50 + }, + { + "num": 4, + "shtime": 3, + "smtime": 30, + "ehtime": 3, + "emtime": 50 + }, + { + "num": 5, + "shtime": 4, + "smtime": 30, + "ehtime": 4, + "emtime": 50 + }, + { + "num": 6, + "shtime": 5, + "smtime": 30, + "ehtime": 5, + "emtime": 50 + }, + { + "num": 7, + "shtime": 6, + "smtime": 30, + "ehtime": 6, + "emtime": 50 + }, + { + "num": 8, + "shtime": 7, + "smtime": 30, + "ehtime": 7, + "emtime": 50 + }, + { + "num": 9, + "shtime": 8, + "smtime": 30, + "ehtime": 8, + "emtime": 50 + }, + { + "num": 10, + "shtime": 9, + "smtime": 30, + "ehtime": 9, + "emtime": 50 + }, + { + "num": 11, + "shtime": 10, + "smtime": 30, + "ehtime": 10, + "emtime": 50 + }, + { + "num": 12, + "shtime": 11, + "smtime": 30, + "ehtime": 11, + "emtime": 50 + }, + { + "num": 13, + "shtime": 12, + "smtime": 30, + "ehtime": 12, + "emtime": 50 + }, + { + "num": 14, + "shtime": 13, + "smtime": 30, + "ehtime": 13, + "emtime": 50 + }, + { + "num": 15, + "shtime": 14, + "smtime": 30, + "ehtime": 14, + "emtime": 50 + }, + { + "num": 16, + "shtime": 15, + "smtime": 30, + "ehtime": 15, + "emtime": 50 + }, + { + "num": 17, + "shtime": 16, + "smtime": 30, + "ehtime": 16, + "emtime": 50 + }, + { + "num": 18, + "shtime": 17, + "smtime": 30, + "ehtime": 17, + "emtime": 50 + }, + { + "num": 19, + "shtime": 18, + "smtime": 30, + "ehtime": 18, + "emtime": 50 + }, + { + "num": 20, + "shtime": 19, + "smtime": 30, + "ehtime": 19, + "emtime": 50 + }, + { + "num": 21, + "shtime": 20, + "smtime": 30, + "ehtime": 20, + "emtime": 50 + }, + { + "num": 22, + "shtime": 21, + "smtime": 30, + "ehtime": 21, + "emtime": 50 + }, + { + "num": 23, + "shtime": 22, + "smtime": 30, + "ehtime": 22, + "emtime": 50 + }, + { + "num": 24, + "shtime": 23, + "smtime": 30, + "ehtime": 23, + "emtime": 50 + } +] \ No newline at end of file diff --git a/bin/json/game_buzkashireward.json b/bin/json/game_buzkashireward.json new file mode 100644 index 000000000..856a5fe9c --- /dev/null +++ b/bin/json/game_buzkashireward.json @@ -0,0 +1,67 @@ +[ + { + "key": 1, + "schedule": 20, + "reword": [ + { + "a": "attr", + "t": "diamond", + "n": 5 + } + ] + }, + { + "key": 2, + "schedule": 40, + "reword": [ + { + "a": "attr", + "t": "gold", + "n": 10000 + } + ] + }, + { + "key": 3, + "schedule": 60, + "reword": [ + { + "a": "attr", + "t": "diamond", + "n": 10 + } + ] + }, + { + "key": 4, + "schedule": 80, + "reword": [ + { + "a": "attr", + "t": "diamond", + "n": 10 + }, + { + "a": "attr", + "t": "gold", + "n": 20000 + } + ] + }, + { + "key": 5, + "schedule": 100, + "reword": [ + { + "a": "item", + "t": "30001", + "n": 1 + }, + { + "a": "attr", + "t": "gold", + "n": 50000 + } + ] + } +] \ No newline at end of file diff --git a/bin/json/game_global.json b/bin/json/game_global.json index edd6f3ae3..9df88bd2f 100644 --- a/bin/json/game_global.json +++ b/bin/json/game_global.json @@ -716,6 +716,7 @@ "n": 1000 } ], +<<<<<<< HEAD "buzkashi_resurrection": 10, "favorability_attenuation": [ { @@ -731,5 +732,8 @@ "v": 500 } ] +======= + "buzkashi_resurrection": 10 +>>>>>>> 2ff92487cf513d980124f84c7fe3db1e6bb88e31 } ] \ No newline at end of file diff --git a/bin/json/game_model.json b/bin/json/game_model.json index caeee1b96..f2faeb998 100644 --- a/bin/json/game_model.json +++ b/bin/json/game_model.json @@ -22,6 +22,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -47,6 +57,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -72,6 +92,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -97,6 +127,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -122,6 +162,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -147,6 +197,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -172,6 +232,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -197,6 +267,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -222,6 +302,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -247,6 +337,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -272,6 +372,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -297,6 +407,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -322,6 +442,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -347,6 +477,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -372,6 +512,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -397,6 +547,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -422,6 +582,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -447,6 +617,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -472,6 +652,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -497,6 +687,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -522,6 +722,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -547,6 +757,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -572,6 +792,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -597,6 +827,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -622,6 +862,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -647,6 +897,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -672,6 +932,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -697,6 +967,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -722,6 +1002,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -747,6 +1037,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -772,6 +1072,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -797,6 +1107,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -822,6 +1142,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -847,6 +1177,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -872,6 +1212,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -897,6 +1247,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -922,6 +1282,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -947,6 +1317,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -972,6 +1352,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -997,6 +1387,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1022,6 +1422,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1047,6 +1457,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1072,6 +1492,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1097,6 +1527,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1122,6 +1562,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1147,6 +1597,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1172,6 +1632,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1197,6 +1667,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1222,6 +1702,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1247,6 +1737,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1272,6 +1772,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1297,6 +1807,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1322,6 +1842,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1347,6 +1877,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1372,6 +1912,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1397,6 +1947,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1422,6 +1982,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1447,6 +2017,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1472,6 +2052,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1497,6 +2087,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1522,6 +2122,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1547,6 +2157,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1572,6 +2192,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1597,6 +2227,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1622,6 +2262,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1647,6 +2297,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1672,6 +2332,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1697,6 +2367,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1722,6 +2402,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1747,6 +2437,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1772,6 +2472,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1797,6 +2507,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1822,6 +2542,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1847,6 +2577,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1872,6 +2612,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1897,6 +2647,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1922,6 +2682,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1947,6 +2717,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1972,6 +2752,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -1997,6 +2787,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2022,6 +2822,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2047,6 +2857,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2072,6 +2892,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2097,6 +2927,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2122,6 +2962,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2147,6 +2997,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2172,6 +3032,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2197,6 +3067,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2222,6 +3102,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2247,6 +3137,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2272,6 +3172,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2297,6 +3207,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2322,6 +3242,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2347,6 +3277,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2372,6 +3312,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2397,6 +3347,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2422,6 +3382,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2447,6 +3417,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2472,6 +3452,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2497,6 +3487,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2522,6 +3522,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2547,6 +3557,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2572,6 +3592,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2597,6 +3627,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2622,6 +3662,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2647,6 +3697,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2672,6 +3732,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2697,6 +3767,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2722,6 +3802,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2747,6 +3837,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2772,6 +3872,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2797,6 +3907,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2822,6 +3942,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2847,6 +3977,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2872,6 +4012,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2897,6 +4047,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2922,6 +4082,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2947,6 +4117,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2972,6 +4152,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -2997,6 +4187,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } }, { @@ -3022,6 +4222,16 @@ "x": 0, "y": 180, "z": 0 + }, + "boxPos": { + "x": 0, + "y": 0.5, + "z": 0 + }, + "boxSize": { + "x": 1, + "y": 1, + "z": 1 } } ] \ No newline at end of file diff --git a/bin/json/game_navigation.json b/bin/json/game_navigation.json new file mode 100644 index 000000000..6f4374553 --- /dev/null +++ b/bin/json/game_navigation.json @@ -0,0 +1,377 @@ +[ + { + "Id": 1, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_1", + "text": "充值" + }, + "npcName": "功能入口-充值", + "functionicon": "" + }, + { + "Id": 2, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_2", + "text": "商人" + }, + "npcName": "功能入口-商人", + "functionicon": "" + }, + { + "Id": 3, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_3", + "text": "任务" + }, + "npcName": "功能入口-任务", + "functionicon": "" + }, + { + "Id": 4, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_4", + "text": "公告" + }, + "npcName": "功能入口-公告", + "functionicon": "" + }, + { + "Id": 5, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_5", + "text": "邮件" + }, + "npcName": "功能入口-邮件", + "functionicon": "" + }, + { + "Id": 6, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_6", + "text": "主线关卡" + }, + "npcName": "功能入口-主线", + "functionicon": "" + }, + { + "Id": 7, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_7", + "text": "维京远征" + }, + "npcName": "功能入口-维京远征", + "functionicon": "" + }, + { + "Id": 8, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_8", + "text": "捕羊大赛" + }, + "npcName": "功能入口-捕羊大赛", + "functionicon": "" + }, + { + "Id": 9, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_9", + "text": "狩猎" + }, + "npcName": "功能入口-狩猎", + "functionicon": "" + }, + { + "Id": 10, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_10", + "text": "旧时光" + }, + "npcName": "功能入口-剧情副本", + "functionicon": "" + }, + { + "Id": 11, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_11", + "text": "竞技场" + }, + "npcName": "功能入口-竞技场", + "functionicon": "" + }, + { + "Id": 12, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_12", + "text": "招募" + }, + "npcName": "功能入口-招募", + "functionicon": "" + }, + { + "Id": 13, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_13", + "text": "签到" + }, + "npcName": "功能入口-签到", + "functionicon": "" + }, + { + "Id": 14, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_14", + "text": "魔药" + }, + "npcName": "功能入口-魔药", + "functionicon": "" + }, + { + "Id": 15, + "scene": "GameMain", + "scenename": { + "key": "navigationscenename_1", + "text": "中轴城" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_15", + "text": "烹饪" + }, + "npcName": "功能入口-烹饪", + "functionicon": "" + }, + { + "Id": 16, + "scene": "SmithyScene", + "scenename": { + "key": "navigationscenename_2", + "text": "铁匠铺" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_16", + "text": "打造" + }, + "npcName": "打造", + "functionicon": "" + }, + { + "Id": 17, + "scene": "SmithyScene", + "scenename": { + "key": "navigationscenename_2", + "text": "铁匠铺" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_17", + "text": "锻造炉" + }, + "npcName": "锻造炉", + "functionicon": "" + }, + { + "Id": 18, + "scene": "SmithyScene", + "scenename": { + "key": "navigationscenename_2", + "text": "铁匠铺" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_18", + "text": "手册台" + }, + "npcName": "手册台", + "functionicon": "" + }, + { + "Id": 19, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_19", + "text": "总教习" + }, + "npcName": "总教习", + "functionicon": "" + }, + { + "Id": 20, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_20", + "text": "阿宝" + }, + "npcName": "阿宝", + "functionicon": "" + }, + { + "Id": 21, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_21", + "text": "告示板" + }, + "npcName": "告示板", + "functionicon": "" + }, + { + "Id": 22, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_22", + "text": "木桩1" + }, + "npcName": "木桩1", + "functionicon": "" + }, + { + "Id": 23, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_23", + "text": "木桩2" + }, + "npcName": "木桩2", + "functionicon": "" + }, + { + "Id": 24, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_24", + "text": "木桩3" + }, + "npcName": "木桩3", + "functionicon": "" + }, + { + "Id": 25, + "scene": "WuGuanScene", + "scenename": { + "key": "navigationscenename_3", + "text": "熊猫武馆" + }, + "sceneicon": "", + "functionname": { + "key": "navigation_functionname_25", + "text": "木桩4" + }, + "npcName": "木桩4", + "functionicon": "" + } +] \ No newline at end of file diff --git a/bin/json/game_skillatk.json b/bin/json/game_skillatk.json index fd7602430..8013080e0 100644 --- a/bin/json/game_skillatk.json +++ b/bin/json/game_skillatk.json @@ -52,7 +52,9 @@ "key": "skill_1250041111", "text": "对敌方1个目标造成3次攻击力30%的伤害,有40%概率为自身附加2回合【免疫】状态" }, - "buffid": [], + "buffid": [ + 390001111 + ], "map": "" }, { @@ -222,7 +224,9 @@ "key": "skill_1250042111", "text": "清除我方所有减益状态,并平均分配我方生命值,为我方全体附加2回合【攻击提升】状态" }, - "buffid": [], + "buffid": [ + 390001001 + ], "map": "" }, { @@ -310,7 +314,9 @@ "key": "skill_1250043111", "text": "进入2回合【喜悦】状态,使我方全体收到伤害降低25%,且在每个队友行动前,为其驱散1个减益状态并回复其最大生命值20%的生命,效果持续期间自身无法行动" }, - "buffid": [], + "buffid": [ + 390001208 + ], "map": "" }, { @@ -479,7 +485,9 @@ "key": "skill_1350021111", "text": "攻击一个敌方2次,伤害分别为自身攻击力30%和80%,每次向目标转嫁自身1个减益;转嫁成功时有50%的概率为目标附加1回合【眩晕】。" }, - "buffid": [], + "buffid": [ + 390001105 + ], "map": "" }, { @@ -1046,7 +1054,9 @@ "key": "skill_1240031111", "text": "对敌方1个目标造成攻击力110%的伤害,并有70%的概率附加1回合【睡眠】状态。" }, - "buffid": [], + "buffid": [ + 390001118 + ], "map": "" }, { @@ -1191,7 +1201,9 @@ "key": "skill_1240032111", "text": "为我方全体各净化1个减益状态,并附加2回合【速度提升】。" }, - "buffid": [], + "buffid": [ + 390001003 + ], "map": "" }, { @@ -1250,7 +1262,9 @@ "key": "skill_1240033111", "text": "对敌方全体造成攻击力80%的伤害,使敌方目标各减少30%行动值,并有100%概率附加1回合【睡眠】状态。" }, - "buffid": [], + "buffid": [ + 390001118 + ], "map": "" }, { @@ -1428,7 +1442,10 @@ "key": "skill_9240034111", "text": "为我方全体各净化1个减益状态,并附加2回合【速度提升】和1回合【防御提升】状态。" }, - "buffid": [], + "buffid": [ + 390001003, + 390001002 + ], "map": "" }, { @@ -1514,7 +1531,9 @@ "key": "skill_1340061111", "text": "对敌方1个目标造成2次攻击力50%的伤害,有60%概率为目标附加2回合【速度下降】" }, - "buffid": [], + "buffid": [ + 390001008 + ], "map": "" }, { @@ -1794,7 +1813,10 @@ "key": "skill_1340063111", "text": "攻击敌方全体,伤害为自身攻击力100%,90%概率为目标附加2回合【速度下降】和1回合【冰冻】" }, - "buffid": [], + "buffid": [ + 390001008, + 390001106 + ], "map": "" }, { @@ -1934,7 +1956,9 @@ "key": "skill_9340064111", "text": "攻击全体敌方,伤害为自身攻击力70%,70%概率降低目标30%行动值;目标有【速度下降】时,降低行动值翻倍。" }, - "buffid": [], + "buffid": [ + 390001008 + ], "map": "" }, { @@ -2102,7 +2126,9 @@ "key": "skill_1250011111", "text": "对敌方1个目标造成2次攻击力30%及防御力50%的伤害,有50%概率为目标附加2回合【攻击下降】" }, - "buffid": [], + "buffid": [ + 390001006 + ], "map": "" }, { @@ -2243,7 +2269,9 @@ "key": "skill_1250012111", "text": "回合结束时获得1回合【玄御】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。" }, - "buffid": [], + "buffid": [ + 390001210 + ], "map": "" }, { @@ -2529,7 +2557,10 @@ "key": "skill_1250013111", "text": "攻击1个敌方,伤害为自身攻击力80%及防御力100%,为自身附加2回合【防御提升】和【免疫】。" }, - "buffid": [], + "buffid": [ + 390001002, + 390001111 + ], "map": "" }, { @@ -2678,7 +2709,9 @@ "key": "skill_9250014111", "text": "回合结束时获得1回合【玄御】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。任一技能暴击时减少此技能1回合冷却。" }, - "buffid": [], + "buffid": [ + 390001210 + ], "map": "" }, { @@ -2990,7 +3023,10 @@ "key": "skill_1440052111", "text": "攻击1个敌方4次,每次伤害为自身攻击力45%,每次有30%概率为目标附加1回合【眩晕】。" }, - "buffid": [], + "buffid": [ + 390001105, + 390001105 + ], "map": "" }, { @@ -3465,7 +3501,11 @@ "key": "skill_1350011111", "text": "攻击1个敌方,伤害为自身攻击力100%,攻击溅射随机2个敌方,伤害为自身攻击力70%。攻击前随机获得一种神力,持续1回合;神力包含【气】、【劲】、【法】。" }, - "buffid": [], + "buffid": [ + 390001119, + 390001120, + 390001121 + ], "map": "" }, { @@ -3791,7 +3831,11 @@ "key": "skill_1350013111", "text": "攻击全体敌方2次,每次伤害为自身攻击50%。攻击前获得全部神力,持续2回合;神力包含【气】、【劲】、【法】。" }, - "buffid": [], + "buffid": [ + 390001119, + 390001120, + 390001121 + ], "map": "" }, { @@ -3915,7 +3959,9 @@ "key": "skill_9350014111", "text": "攻击1个敌方,伤害为自身攻击力170%。为自身附加2回合【护盾】,护盾量为自身最大生命值10%。吸收所有神力恢复自身生命,每个神力提供自身最大生命值10%恢复量、最大生命值5%护盾量和10%额外伤害。" }, - "buffid": [], + "buffid": [ + 390001112 + ], "map": "" }, { @@ -4093,7 +4139,9 @@ "key": "skill_1240041111", "text": "攻击1个敌方,伤害为自身攻击力100%,60%概率为目标附加2回合【禁疗】" }, - "buffid": [], + "buffid": [ + 390001107 + ], "map": "" }, { @@ -4263,7 +4311,10 @@ "key": "skill_1240043111", "text": "攻击全体敌方,伤害为自身攻击力100%,为目标附加2回合【速度下降】和【中毒】。" }, - "buffid": [], + "buffid": [ + 390001008, + 390001401 + ], "map": "" }, { @@ -4471,7 +4522,9 @@ "key": "skill_9240044111", "text": "攻击时为目标附加2回合【中毒】。附加【中毒】成功时,额外附加1回合【中毒】;每回合对每个目标仅触发1次。" }, - "buffid": [], + "buffid": [ + 390001401 + ], "map": "" }, { @@ -4727,7 +4780,10 @@ "key": "skill_1440063111", "text": "驱散敌方1个目标的全部增益效果,随后对其造成攻击力230%的伤害,同时自身受到此伤害30%的效果附加伤害,但是自身不会因为该伤害死亡。自身获得【攻击提升】【暴击提升】效果,持续3回合" }, - "buffid": [], + "buffid": [ + 390001001, + 390001004 + ], "map": "" }, { @@ -4923,7 +4979,10 @@ "key": "skill_9440064111", "text": "驱散敌方1个目标的全部增益效果,随后对其造成攻击力270%的伤害,同时自身受到此伤害30%的效果附加伤害,但是自身不会因为该伤害死亡。成功击杀敌人时,自身获得【攻击提升】【暴击提升】效果,持续3回合" }, - "buffid": [], + "buffid": [ + 390001001, + 390001004 + ], "map": "" }, { @@ -5335,7 +5394,9 @@ "key": "skill_1150053111", "text": "提升全体友方20%行动值。治疗全体友方,治疗量为目标最大生命值35%。净化全体友方各1个减益,为无减益的目标附加1回合【免疫】。" }, - "buffid": [], + "buffid": [ + 390001111 + ], "map": "" }, { @@ -6521,7 +6582,9 @@ "key": "skill_1140071111", "text": "攻击1个敌方,伤害为自身攻击力30%及防御力50%,50%概率为目标附加2回合【防御下降】。" }, - "buffid": [], + "buffid": [ + 390001007 + ], "map": "" }, { @@ -6690,7 +6753,9 @@ "key": "skill_1140072111", "text": "受到致命伤害时,为自身附加1回合【对峙】,重置旋风霹雳舞冷却,目标防御比自身低时,自身伤害提升;每1%差值提供1%额外伤害,不超过40%。" }, - "buffid": [], + "buffid": [ + 390001104 + ], "map": "" }, { @@ -6779,7 +6844,9 @@ "key": "skill_1140073111", "text": "攻击全体敌方,伤害为自身防御力80%,30%概率为目标附加1回合【挑衅】;目标防御比自身低时,概率翻倍。" }, - "buffid": [], + "buffid": [ + 390001110 + ], "map": "" }, { @@ -7131,7 +7198,10 @@ "key": "skill_1140032111", "text": "攻击1个敌方,伤害为自身攻击150%,80%概率为目标附加2回合【速度下降】。暴击时为自身附加2回合【速度提升】。每点速度提供攻击0.33%。" }, - "buffid": [], + "buffid": [ + 390001008, + 390001003 + ], "map": "" }, { @@ -7471,7 +7541,9 @@ "key": "skill_1450032111", "text": "自身死亡时,以15%最大生命值的状态复活全部已阵亡的队友,并为我方全体施加其最大生命值50%的【护盾】,持续1回合。随后提升我方全体目标50%的行动值。该被动效果一场战斗仅能触发一次" }, - "buffid": [], + "buffid": [ + 390001112 + ], "map": "" }, { @@ -7501,7 +7573,9 @@ "key": "skill_1450033111", "text": "净化己方全部减益状态,并为己方全体目标回复35%最大生命值的生命,随后施加1回合【免疫】效果" }, - "buffid": [], + "buffid": [ + 390001111 + ], "map": "" }, { @@ -7586,7 +7660,9 @@ "key": "skill_1530013111", "text": "对敌方全体发起3段攻击,每段攻击可造成攻击力的伤害,并附加3回合【速度下降】状态。" }, - "buffid": [], + "buffid": [ + 390001008 + ], "map": "" }, { @@ -7759,7 +7835,9 @@ "key": "skill_1510022111", "text": "对敌方一个目标发起攻击,造成攻击力120%的伤害。并有50%概率附加2回合【防御下降】状态。" }, - "buffid": [], + "buffid": [ + 390001007 + ], "map": "" }, { @@ -7815,7 +7893,9 @@ "key": "skill_1510032111", "text": "对敌方一个目标发起攻击,造成攻击力120%的伤害。并有25%概率附加1回合【眩晕】状态。" }, - "buffid": [], + "buffid": [ + 390001105 + ], "map": "" }, { @@ -7928,7 +8008,7 @@ "text": "对敌方1个目标发起攻击,造成攻击力180%的伤害,并附加2回合【攻击下降】状态。" }, "buffid": [], - "map": "" + "map": "390001006" }, { "id": 113003011, @@ -8421,7 +8501,9 @@ "key": "skill_1140011111", "text": "史图依克对敌方1个目标造成攻击力30%以及防御力65%的伤害,并有60%概率附加2回合【防御下降】效果。" }, - "buffid": [], + "buffid": [ + 390001007 + ], "map": "" }, { @@ -8450,7 +8532,9 @@ "key": "skill_1140012111", "text": "史图依克每次受到攻击时,自身获得1层【酋长之怒】,每层可提升自身10%的基础防御力和5%的效果抵抗,最多可叠加10层。自身获得10层【酋长之怒】时将立即获得回合" }, - "buffid": [], + "buffid": [ + 390001202 + ], "map": "" }, { @@ -8481,7 +8565,10 @@ "key": "skill_1140013111", "text": "史图依克对敌方1个目标造成攻击力80%以及防御力120%的伤害,并【挑衅】1名敌人2回合。若有10层【酋长之怒】,伤害提升50%。恢复自身生命,每层【酋长之怒】提供自身最大生命值4%恢复量;之后消耗全部【酋长之怒】" }, - "buffid": [], + "buffid": [ + 390001202, + 390001110 + ], "map": "" }, { @@ -8538,7 +8625,9 @@ "key": "skill_1240081111", "text": "暴芙那特对敌方1个目标造成2次自身攻击力60%的伤害,并有40%概率附加2回合【烙印】效果。若某英雄在场,则本次攻击额外附加目标最大生命值5%的伤害,但最高无法超过自身攻击力的60%。" }, - "buffid": [], + "buffid": [ + 390001101 + ], "map": "" }, { @@ -8567,7 +8656,9 @@ "key": "skill_1240082111", "text": "暴芙那特对敌方全体造成2次自身攻击力45%的伤害,并有40%概率附加2回合【速度下降】效果。若某英雄在场,则本次攻击额外造成两段伤害并附加同样效果" }, - "buffid": [], + "buffid": [ + 390001008 + ], "map": "" }, { @@ -8597,7 +8688,10 @@ "key": "skill_1240083111", "text": "暴芙那特先为自身施加2回合【暴击提升】效果,之后对敌方1个目标造成3次自身攻击力80%的伤害,并附加2回合【防御下降】效果" }, - "buffid": [], + "buffid": [ + 390001004, + 390001007 + ], "map": "" }, { @@ -8652,7 +8746,7 @@ }, "Desc": { "key": "skill_1340081111", - "text": "悍夫那特对敌方一个目标造成1次自身攻击力100%的伤害,并有40%概率鸡腿目标10%行动值。若某英雄在场,则本次攻击额外随机攻击2个目标,造成同样伤害和效果" + "text": "悍夫那特对敌方一个目标造成1次自身攻击力100%的伤害,并有40%概率击退目标10%行动值。若某英雄在场,则本次攻击额外随机攻击2个目标,造成同样伤害和效果" }, "buffid": [], "map": "" @@ -9111,7 +9205,10 @@ "key": "skill_1350062111", "text": "平先生为我方全体附加2回合【攻击提升】和【速度提升】效果。" }, - "buffid": [], + "buffid": [ + 390001001, + 390001003 + ], "map": "" }, { @@ -9310,7 +9407,9 @@ "key": "skill_1240051111", "text": "金猴对敌方1个目标造成攻击力120%的伤害,并有70%概率对自身附加2回合【速度提升】" }, - "buffid": [], + "buffid": [ + 390001003 + ], "map": "" }, { @@ -9338,7 +9437,9 @@ "key": "skill_1240052111", "text": "金猴净化1名队友所有减益状态,并为其标记2回合【不败金身】" }, - "buffid": [], + "buffid": [ + 390001215 + ], "map": "" }, { @@ -9368,7 +9469,9 @@ "key": "skill_1240053111", "text": "金猴对敌方全体造成攻击力120%的伤害,并附加2回合【速度下降】状态;同时能减少敌方全体30%行动值,并重置2技能的冷却时间" }, - "buffid": [], + "buffid": [ + 390001008 + ], "map": "" }, { @@ -10047,7 +10150,9 @@ "key": "skill_1340071111", "text": "菲奥娜对敌方1个目标造成2次攻击力60%的伤害,若发生暴击,则为自身附加1回合【免疫】状态" }, - "buffid": [], + "buffid": [ + 390001111 + ], "map": "" }, { @@ -10077,7 +10182,9 @@ "key": "skill_1340072111", "text": "菲奥娜对敌方1个目标发起3连击,共造成攻击力200%的伤害,每次攻击有60%概率驱散目标1个增益状态;若驱散成功,则对目标附加2回合【攻击下降】状态" }, - "buffid": [], + "buffid": [ + 390001006 + ], "map": "" }, { @@ -10106,7 +10213,9 @@ "key": "skill_1340073111", "text": "菲奥娜对敌方1个目标造成攻击力280%的伤害,并为自身附加2回合生命值上限35%的【护盾】;若发生暴击,则次数伤害提升30%,并额外提升50%【护盾】" }, - "buffid": [], + "buffid": [ + 390001112 + ], "map": "" }, { @@ -10134,7 +10243,9 @@ "key": "skill_1430061111", "text": "布里奇特对敌方1个目标造成攻击力130%的伤害,并有70%概率为目标附加2回合【攻击下降】状态" }, - "buffid": [], + "buffid": [ + 390001006 + ], "map": "" }, { @@ -15169,7 +15280,9 @@ "key": "skill_1440022111", "text": "蛇先生我方全体回复各自最大生命在10%的生命和自身攻击力80%的生命,并附加1回合【复苏】状态。" }, - "buffid": [], + "buffid": [ + 390001127 + ], "map": "" }, { @@ -15197,7 +15310,9 @@ "key": "skill_1440023111", "text": "蛇先生己方全体提升25%行动值,并施加【伪装】。己方每个【伪装】的触发,都会为自身提升20%的行动值。" }, - "buffid": [], + "buffid": [ + 390001436 + ], "map": "" }, { diff --git a/bin/json/game_skillbuff.json b/bin/json/game_skillbuff.json index c59822aad..91c368613 100644 --- a/bin/json/game_skillbuff.json +++ b/bin/json/game_skillbuff.json @@ -3179,7 +3179,7 @@ "Id": 390001436, "Name": { "key": "skill_buff_390001436", - "text": "伪装(减伤)" + "text": "伪装" }, "Desc": { "key": "skill_buffdes_390001436", diff --git a/cmd/v2/ui/protocol.go b/cmd/v2/ui/protocol.go index f0542ac83..8669d31e6 100644 --- a/cmd/v2/ui/protocol.go +++ b/cmd/v2/ui/protocol.go @@ -124,6 +124,8 @@ var ( ff(comm.ModuleSmithy, "customer"): &formview.SmithyView{}, //武馆派遣 ff(comm.ModuleDispatch, "dispatch"): &formview.DispatchView{}, + //声望 + ff(comm.ModuleReputation, "reputation"): &formview.ReputationView{}, } ) @@ -153,6 +155,7 @@ var ( string(comm.ModuleReddot), string(comm.ModuleSmithy), string(comm.ModuleDispatch), + string(comm.ModuleReputation), }, "gm": {ff(comm.ModuleGM, "cmd")}, "sys": { @@ -257,6 +260,9 @@ var ( "dispatch": { ff(comm.ModuleDispatch, "dispatch"), }, + "reputation": { + ff(comm.ModuleReputation, "reputation"), + }, } ) @@ -915,6 +921,19 @@ var ( SubType: "dispatch", Enabled: true, }, + // reputation + string(comm.ModuleReputation): { + NavLabel: "声望", + MainType: string(comm.ModuleReputation), + Enabled: true, + }, + ff(comm.ModuleReputation, "reputation"): { + NavLabel: "声望管理", + Desc: "声望管理", + MainType: string(comm.ModuleReputation), + SubType: "reputation", + Enabled: true, + }, } ) diff --git a/cmd/v2/ui/views/dispatch.go b/cmd/v2/ui/views/dispatch.go index a7860b0df..8e8545a5a 100644 --- a/cmd/v2/ui/views/dispatch.go +++ b/cmd/v2/ui/views/dispatch.go @@ -135,8 +135,8 @@ func (d *DispatchView) CreateView(t *model.TestCase) fyne.CanvasObject { paiWin := dialog.NewCustom("派遣", "关闭", form, d.w) paiWin.Resize(fyne.NewSize(600, 300)) paiWin.Show() - }) + //周奖励领取 weekReceiveBtn := widget.NewButton("周奖励", func() { if err := service.GetPttService().SendToClient( diff --git a/cmd/v2/ui/views/reputation.go b/cmd/v2/ui/views/reputation.go new file mode 100644 index 000000000..ca3d13f44 --- /dev/null +++ b/cmd/v2/ui/views/reputation.go @@ -0,0 +1,89 @@ +package formview + +import ( + "go_dreamfactory/cmd/v2/lib/common" + "go_dreamfactory/cmd/v2/model" + "go_dreamfactory/cmd/v2/service" + "go_dreamfactory/pb" + + "fyne.io/fyne/v2" + "fyne.io/fyne/v2/container" + "fyne.io/fyne/v2/dialog" + "fyne.io/fyne/v2/widget" + "github.com/sirupsen/logrus" + "github.com/spf13/cast" +) + +type ReputationView struct { + BaseformView + itemList *common.ItemList + flag bool +} + +func (d *ReputationView) CreateView(t *model.TestCase) fyne.CanvasObject { + d.itemList = common.NewItemList() + + d.itemList.ItemList = d.itemList.CreateList() + + swBtn := widget.NewButton("声望升级", func() { + //阵营 + zy := widget.NewEntry() + //好感度 + fv := widget.NewEntry() + + form := widget.NewForm( + widget.NewFormItem("阵营ID", zy), + widget.NewFormItem("好感度", fv), + ) + + form.OnSubmit = func() { + if err := service.GetPttService().SendToClient( + t.MainType, + "talenttest", + &pb.ReputationTalenttestReq{ + RaceType: cast.ToInt32(zy), + FriendValue: cast.ToInt32(fv), + }, + ); err != nil { + logrus.Error(err) + return + } + } + + paiWin := dialog.NewCustom("升级", "关闭", form, d.w) + paiWin.Resize(fyne.NewSize(600, 300)) + paiWin.Show() + }) + + upgradeBtn := widget.NewButton("天赋升级", func() { + nodeId := widget.NewEntry() + form := widget.NewForm( + widget.NewFormItem("节点ID", nodeId), + ) + + form.OnSubmit = func() { + if err := service.GetPttService().SendToClient( + t.MainType, + "upgrade", + &pb.ReputationUpgradeReq{ + NodeId: cast.ToInt32(nodeId.Text), + }, + ); err != nil { + logrus.Error(err) + return + } + } + + paiWin := dialog.NewCustom("升级", "关闭", form, d.w) + paiWin.Resize(fyne.NewSize(600, 300)) + paiWin.Show() + }) + + resetBtn := widget.NewButton("重置", func() { + + }) + + topBtns := container.NewHBox(swBtn, upgradeBtn, resetBtn) + c := container.NewBorder(topBtns, nil, nil, nil, d.itemList.ItemList) + return c +} diff --git a/comm/const.go b/comm/const.go index e6d41847e..d0d97b589 100644 --- a/comm/const.go +++ b/comm/const.go @@ -313,9 +313,14 @@ const ( //Rpc // RPC 通知来了邮件 Rpc_Mail core.Rpc_Key = "Rpc_Mail" + //PVP 离线托管 + RPC_PVPTrusteeship core.Rpc_Key = "RPC_PVPTrusteeship" + //捕羊大赛加入匹配请求 - RPC_ParkourJoinMatch core.Rpc_Key = "RPC_ParkourJoinMatch" - RPC_ParkourMatchSucc core.Rpc_Key = "RPC_ParkourMatchSucc" + RPC_ParkourJoinMatch core.Rpc_Key = "RPC_ParkourJoinMatch" //加入匹配 + RPC_ParkourCancelMatch core.Rpc_Key = "RPC_ParkourCancelMatch" //取消匹配 + RPC_ParkourMatchSucc core.Rpc_Key = "RPC_ParkourMatchSucc" //匹配成功 + RPC_ParkourTrusteeship core.Rpc_Key = "RPC_ParkourTrusteeship" //捕羊大赛托管 ) // 事件类型定义处 @@ -378,6 +383,10 @@ const ( ArenaCoin = "arenacoin" //竞技场币 ResPs = "ps" // 体力 Moongold = "moongold" //纯净月髓 + Talent1 = "talent1" //阵营1天赋点 + Talent2 = "talent2" //阵营2天赋点 + Talent3 = "talent3" //阵营3天赋点 + Talent4 = "talent4" //阵营4天赋点 ) const ( Gold int32 = 1 //金币 diff --git a/comm/imodule.go b/comm/imodule.go index c30c3bd2e..042bf0c4f 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -381,7 +381,7 @@ type ( // TaskcondNotify(session IUserSession, condId int32) error TaskCondFinishNotify(session IUserSession, condId int32) error // bingo所有任务 - BingoAllTask(session IUserSession) error + // BingoAllTask(session IUserSession) error // bingo任务 BingoJumpTask(session IUserSession, groupId, rtaskId int32) error // 查询我的世界任务 @@ -470,4 +470,9 @@ type ( GetGlobalConf() *cfg.GameGlobalData GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn) } + + IReputation interface { + // 声望升级 返回声望等级 + Upgrade(session IUserSession, raceType int32, fv int32) (lv int32) + } ) diff --git a/modules/gm/module.go b/modules/gm/module.go index 1301d8231..9db98e660 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -69,7 +69,7 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC this.Debugf("create CMD :%s", cmd) // 打印个日志方便查询 datas := strings.Split(keys[1], ",") if len(datas) == 3 && (datas[0] == comm.AttrType || datas[0] == comm.ItemType || - datas[0] == comm.HeroType || datas[0] == comm.EquipmentType || datas[0] == comm.VipType || datas[0] == comm.AtlasType || datas[0] == comm.PandaType) { + datas[0] == comm.HeroType || datas[0] == comm.EquipmentType || datas[0] == comm.VipType || datas[0] == comm.AtlasType || datas[0] == comm.PandaType || datas[0] == comm.MountsType) { num, err := strconv.Atoi(datas[2]) if err != nil { code = pb.ErrorCode_ReqParameterError @@ -285,20 +285,7 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "0", Value: datas[1]}, ) - } else if len(datas) == 1 && (datas[0] == "alltask") { // 完成所有世界任务 - module, err := this.service.GetModule(comm.ModuleWorldtask) - if err != nil { - return - } - if wt, ok := module.(comm.IWorldtask); ok { - if err = wt.BingoAllTask(session); err != nil { - this.Error("bingo 世界任务", - log.Field{Key: "param", Value: datas}, - log.Field{Key: "err", Value: err.Error()}) - } - } - - } else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务 + } else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务 module, err := this.service.GetModule(comm.ModuleGrowtask) if err != nil { return diff --git a/modules/items/api_getlist.go b/modules/items/api_getlist.go index 3bf0566d0..686692758 100644 --- a/modules/items/api_getlist.go +++ b/modules/items/api_getlist.go @@ -18,6 +18,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ItemsGetlistReq) err error items []*pb.DB_UserItemData nt int64 + temp []*pb.DB_UserItemData grids []*pb.DB_UserItemData modifys []*pb.DB_UserItemData dels []*pb.DB_UserItemData @@ -39,6 +40,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ItemsGetlistReq) return } else { // tempgrids = this.module.configure.GetPackItemByType(items, req.IType) + temp = make([]*pb.DB_UserItemData, 0, len(items)) modifys = make([]*pb.DB_UserItemData, 0, len(items)) dels = make([]*pb.DB_UserItemData, 0, len(items)) grids = make([]*pb.DB_UserItemData, 0, len(items)) @@ -53,10 +55,11 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ItemsGetlistReq) temp.IsNewItem = false modifys = append(modifys, &temp) } + temp = append(temp, v) } } } - session.SendMsg(string(this.module.GetType()), "getlist", &pb.ItemsGetlistResp{Grids: items}) + session.SendMsg(string(this.module.GetType()), "getlist", &pb.ItemsGetlistResp{Grids: temp}) return } diff --git a/modules/items/module.go b/modules/items/module.go index 24f77f1f0..1feb3e1ee 100644 --- a/modules/items/module.go +++ b/modules/items/module.go @@ -8,7 +8,6 @@ import ( "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/event" - "go_dreamfactory/lego/sys/log" ) /* @@ -64,9 +63,7 @@ func (this *Items) OnInstallComp() { //Event------------------------------------------------------------------------------------------------------------ func (this *Items) EventUserOffline(uid, sessionid string) { - if err := this.modelItems.BatchDelLists(uid); err != nil { - this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) - } + this.modelItems.BatchDelLists(uid) } //IItems------------------------------------------------------------------------------------------------------------------------------- diff --git a/modules/parkour/ai.go b/modules/parkour/ai.go new file mode 100644 index 000000000..15fd16a6f --- /dev/null +++ b/modules/parkour/ai.go @@ -0,0 +1,220 @@ +package parkour + +import ( + "fmt" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/core/cbase" + "go_dreamfactory/lego/sys/timewheel" + "go_dreamfactory/pb" + "math/rand" + "sync" + "time" +) + +/* +AI 逻辑组件 +*/ +type aiComp struct { + cbase.ModuleCompBase + service core.IService + module *Parkour + lock sync.RWMutex + ais map[string][]*AI + handleS []AIHandleType + handleSS []AIHandleType + handleSSS []AIHandleType +} + +//组件初始化接口 +func (this *aiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + this.ModuleCompBase.Init(service, module, comp, options) + this.module = module.(*Parkour) + this.service = service + this.ais = make(map[string][]*AI) + this.handleS = make([]AIHandleType, 100) + this.handleSS = make([]AIHandleType, 100) + this.handleSSS = make([]AIHandleType, 100) + this.inithandle() + return +} + +func (this *aiComp) Start() (err error) { + err = this.ModuleCompBase.Start() + timewheel.AddCron(time.Second*3, this.aihandle) + return +} + +func (this *aiComp) inithandle() { + var index int32 + //AILevelS + for i := 0; i < 40; i++ { //失败躲避次数 40 + this.handleS[index] = AIHandle_Avoid0 + index++ + } + for i := 0; i < 10; i++ { //成功躲避次数 10 + this.handleS[index] = AIHandle_Avoid1 + index++ + } + for i := 0; i < 5; i++ { //完美躲避次数 5 + this.handleS[index] = AIHandle_Avoid2 + index++ + } + for i := 0; i < 7; i++ { //射门失败次数 5 + this.handleS[index] = AIHandle_Shots0 + index++ + } + for i := 0; i < 3; i++ { //射门成功次数 3 + this.handleS[index] = AIHandle_Shots1 + index++ + } + index = 0 + //AILevelSS + for i := 0; i < 30; i++ { //失败躲避次数 30 + this.handleSS[index] = AIHandle_Avoid0 + index++ + } + for i := 0; i < 20; i++ { //成功躲避次数 20 + this.handleSS[index] = AIHandle_Avoid1 + index++ + } + for i := 0; i < 10; i++ { //完美躲避次数 10 + this.handleSS[index] = AIHandle_Avoid2 + index++ + } + for i := 0; i < 5; i++ { //射门失败次数 5 + this.handleSS[index] = AIHandle_Shots0 + index++ + } + for i := 0; i < 5; i++ { //射门成功次数 5 + this.handleSS[index] = AIHandle_Shots1 + index++ + } + + index = 0 + //AILevelSSS + for i := 0; i < 10; i++ { //失败躲避次数 10 + this.handleSSS[index] = AIHandle_Avoid0 + index++ + } + for i := 0; i < 30; i++ { //成功躲避次数 30 + this.handleSSS[index] = AIHandle_Avoid1 + index++ + } + for i := 0; i < 15; i++ { //完美躲避次数 15 + this.handleSSS[index] = AIHandle_Avoid2 + index++ + } + for i := 0; i < 2; i++ { //射门失败次数 2 + this.handleSSS[index] = AIHandle_Shots0 + index++ + } + for i := 0; i < 8; i++ { //射门成功次数 8 + this.handleSSS[index] = AIHandle_Shots1 + index++ + } +} + +//创建战斗ai +func (this *aiComp) createAi(battleid string, users []*pb.DBRaceMember) (err error) { + var ( + ok bool + ais []*AI + r *rand.Rand = rand.New(rand.NewSource(time.Now().Unix())) + ) + if battleid == "" || users == nil || len(users) == 0 { + err = fmt.Errorf("battleid:%s users:%v parameter exceptions", battleid, users) + return + } + + this.lock.RLock() + _, ok = this.ais[battleid] + this.lock.RUnlock() + if ok { + err = fmt.Errorf("battle:%s already exists", battleid) + return + } + ais = make([]*AI, len(users)) + for i, v := range users { + ais[i] = &AI{ + BattleId: battleid, + UId: v.Uid, + AILevel: AILevelS, + Handle: make([]AIHandleType, 100), + LastTime: time.Now(), + } + switch ais[i].AILevel { + case AILevelS: + ais[i].Interval = time.Second*10 + time.Second*time.Duration(rand.Int31n(5)) + for ii, vv := range r.Perm(len(this.handleS)) { + ais[i].Handle[ii] = this.handleS[vv] + } + break + case AILevelSS: + ais[i].Interval = time.Second*7 + time.Second*time.Duration(rand.Int31n(5)) + for ii, vv := range r.Perm(len(this.handleSS)) { + ais[i].Handle[ii] = this.handleSS[vv] + } + break + case AILevelSSS: + ais[i].Interval = time.Second*5 + time.Second*time.Duration(rand.Int31n(3)) + for ii, vv := range r.Perm(len(this.handleSSS)) { + ais[i].Handle[ii] = this.handleSSS[vv] + } + break + } + } + this.lock.Lock() + this.ais[battleid] = ais + this.lock.Unlock() + return +} + +//移除AI +func (this *aiComp) removeAi(battleid string) { + this.lock.Lock() + delete(this.ais, battleid) + this.lock.Unlock() +} + +//ai自动化 +func (this *aiComp) aihandle(task *timewheel.Task, args ...interface{}) { + var ( + ok bool + ais map[string][]*AI = make(map[string][]*AI) + ) + this.lock.RLock() + if len(this.ais) > 0 { + ok = true + for k, v := range this.ais { + ais[k] = v + } + } + this.lock.RUnlock() + if ok { + for id, member := range ais { + for _, ai := range member { + if time.Now().Sub(ai.LastTime) > ai.Interval { + switch ai.Handle[ai.CurrIndex] { + case AIHandle_Avoid0: //躲避障碍 失败 + go this.module.avoid(id, ai.UId, -1) + break + case AIHandle_Avoid1: //躲避障碍 成功 + go this.module.avoid(id, ai.UId, 3) + break + case AIHandle_Avoid2: //躲避障碍 完美 + go this.module.avoid(id, ai.UId, 1) + break + case AIHandle_Shots0: //射门 失败 + break + case AIHandle_Shots1: //射门 成功 + go this.module.shot(id, ai.UId) + break + } + ai.LastTime = time.Now() + ai.CurrIndex++ + ai.CurrIndex = ai.CurrIndex % int32(len(ai.Handle)) + } + } + } + } +} diff --git a/modules/parkour/api_Info.go b/modules/parkour/api_Info.go new file mode 100644 index 000000000..830853973 --- /dev/null +++ b/modules/parkour/api_Info.go @@ -0,0 +1,37 @@ +package parkour + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +//参数校验 +func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.ParkourInfoReq) (code pb.ErrorCode) { + return +} + +///匹配请求 +func (this *apiComp) Info(session comm.IUserSession, req *pb.ParkourInfoReq) (code pb.ErrorCode, data *pb.ErrorData) { + var ( + isopen bool + info *pb.DBParkour + recommend []*pb.DBRaceMember + err error + ) + if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success { + return + } + isopen = this.module.configure.isopen() + if isopen { + if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + if recommend, err = this.module.parkourComp.getrusers(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + } + session.SendMsg(string(this.module.GetType()), "info", &pb.ParkourInfoResp{Isopen: isopen, Info: info, Recommend: recommend}) + return +} diff --git a/modules/parkour/api_avoid.go b/modules/parkour/api_avoid.go index dd1811d38..8b6add009 100644 --- a/modules/parkour/api_avoid.go +++ b/modules/parkour/api_avoid.go @@ -10,7 +10,7 @@ func (this *apiComp) AvoidCheck(session comm.IUserSession, req *pb.ParkourAvoidR return } -///匹配请求 +///游戏 func (this *apiComp) Avoid(session comm.IUserSession, req *pb.ParkourAvoidReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( ok bool diff --git a/modules/parkour/api_changemts.go b/modules/parkour/api_changemts.go new file mode 100644 index 000000000..433060b03 --- /dev/null +++ b/modules/parkour/api_changemts.go @@ -0,0 +1,82 @@ +package parkour + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" +) + +//参数校验 +func (this *apiComp) ChangeMtsCheck(session comm.IUserSession, req *pb.ParkourChangeMtsReq) (code pb.ErrorCode) { + return +} + +///游戏 +func (this *apiComp) ChangeMts(session comm.IUserSession, req *pb.ParkourChangeMtsReq) (code pb.ErrorCode, data *pb.ErrorData) { + var ( + info *pb.DBParkour + team *pb.DBParkour + mount *cfg.GameBuzkashiMountData + err error + ) + if code = this.ChangeMtsCheck(session, req); code != pb.ErrorCode_Success { + return + } + if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + if _, ok := info.Mounts[req.Mtsid]; !ok { + code = pb.ErrorCode_ReqParameterError + return + } + info.Dfmount = req.Mtsid + if info.Captainid != "" { + if mount, err = this.module.configure.getGameBuzkashiMount(info.Dfmount); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } + if info.Captainid == session.GetUserId() { + for _, v := range info.Member { + if v.Uid == session.GetUserId() { + v.Mount = info.Dfmount + v.Hp = mount.Hp + } + } + if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ + "dfmount": info.Dfmount, + "member": info.Member, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + } else { + if team, err = this.module.parkourComp.queryinfo(info.Captainid); err != nil { + code = pb.ErrorCode_DBError + return + } + for _, v := range team.Member { + if v.Uid == session.GetUserId() { + v.Mount = info.Dfmount + v.Hp = mount.Hp + } + } + if err = this.module.parkourComp.Change(team.Captainid, map[string]interface{}{ + "member": team.Member, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + } + } else { + if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ + "dfmount": info.Dfmount, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + } + + session.SendMsg(string(this.module.GetType()), "changemts", &pb.ParkourChangeMtsResp{Issucc: true, Mtsid: req.Mtsid}) + return +} diff --git a/modules/parkour/api_invite.go b/modules/parkour/api_invite.go index cb4cad900..a10ab4340 100644 --- a/modules/parkour/api_invite.go +++ b/modules/parkour/api_invite.go @@ -4,62 +4,114 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" "time" ) //参数校验 func (this *apiComp) InviteCheck(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode) { + if req.Uid == session.GetUserId() { + code = pb.ErrorCode_ReqParameterError + } return } ///邀请组队 func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( - tean *pb.DBParkour - tuser *pb.DBUser - ok bool - err error + info *pb.DBParkour + tinfo *pb.DBParkour + tuser *pb.DBUser + mount *cfg.GameBuzkashiMountData + member *pb.DBRaceMember + users []string + ok bool + err error ) if code = this.InviteCheck(session, req); code != pb.ErrorCode_Success { return } - if tean, err = this.module.teamComp.queryteam(session.GetUserId()); err != nil { + if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError return } - if len(tean.Member) > 3 { + if info.Captainid != "" && info.Captainid != session.GetUserId() { //自己不是队长 无权邀请他人 + code = pb.ErrorCode_ParkourInviteNoPermissions + return + } + if len(info.Member) > 3 { code = pb.ErrorCode_ReqParameterError return } + if tuser = this.module.ModuleUser.GetUser(session.GetUserId()); tuser == nil { + code = pb.ErrorCode_SystemError + return + } + if mount, err = this.module.configure.getGameBuzkashiMount(info.Dfmount); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } + ok = false + for _, v := range info.Member { + if v.Uid == session.GetUserId() { + ok = true + } + } + if !ok { + info.Member = append(info.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Mount: info.Dfmount, Hp: mount.Hp}) + } + + if tinfo, err = this.module.parkourComp.queryinfo(req.Uid); err != nil { + code = pb.ErrorCode_DBError + return + } if tuser = this.module.ModuleUser.GetUser(req.Uid); tuser == nil { code = pb.ErrorCode_SystemError return } + if mount, err = this.module.configure.getGameBuzkashiMount(tinfo.Dfmount); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } + //目标是否在线 if !this.module.ModuleUser.IsOnline(req.Uid) { - tean.Member = append(tean.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Isai: true}) + member = &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Mount: tinfo.Dfmount, Hp: mount.Hp, Isai: true} + info.Member = append(info.Member, member) + users = make([]string, len(info.Member)) + for i, v := range info.Member { + users[i] = v.Uid + } + this.module.SendMsgToUsers(string(this.module.GetType()), "teamjoinnotice", + &pb.ParkourTeamJoinNoticePush{Member: member}, users...) + this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage", + &pb.ParkourTeamChanagePush{Team: info}, users...) } else { + if tinfo.Captainid != "" { + code = pb.ErrorCode_ParkourTargetTeamed + return + } ok = false - for _, v := range tean.Invite { + for _, v := range info.Invite { if v.Uid == req.Uid { v.Expired = configure.Now().Add(time.Second * 10).Unix() ok = true } } if !ok { - tean.Invite = append(tean.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name}) + info.Invite = append(info.Invite, &pb.DBRaceInvite{Uid: tuser.Uid, Name: tuser.Name, Avatar: tuser.Avatar, Expired: configure.Now().Add(time.Second * 10).Unix()}) } this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice", - &pb.ParkourInviteNoticePush{Team: tean, State: 1}, req.Uid) + &pb.ParkourInviteNoticePush{Team: info, State: 1}, req.Uid) } - if err = this.module.teamComp.Change(session.GetUserId(), map[string]interface{}{ - "invite": tean.Invite, - "member": tean.Member, + if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ + "invite": info.Invite, + "member": info.Member, }); err != nil { code = pb.ErrorCode_DBError return } - session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteResp{Issucc: true, Team: tean}) + session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteResp{Issucc: true, Team: info}) return } diff --git a/modules/parkour/api_invitehandle.go b/modules/parkour/api_invitehandle.go index c4c8cf07d..004d2edab 100644 --- a/modules/parkour/api_invitehandle.go +++ b/modules/parkour/api_invitehandle.go @@ -4,6 +4,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" "time" ) @@ -15,43 +16,69 @@ func (this *apiComp) InviteHandleCheck(session comm.IUserSession, req *pb.Parkou ///邀请组队 func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInviteHandleReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( + info *pb.DBParkour tean *pb.DBParkour invite *pb.DBRaceInvite member *pb.DBRaceMember + mount *cfg.GameBuzkashiMountData users []string ok bool + index int32 err error ) if code = this.InviteHandleCheck(session, req); code != pb.ErrorCode_Success { return } - if tean, err = this.module.teamComp.queryteam(req.Captainid); err != nil { + if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError return } - if len(tean.Member) > 3 { + + if tean, err = this.module.parkourComp.queryinfo(req.Captainid); err != nil { + code = pb.ErrorCode_DBError + return + } + if len(tean.Member) >= 3 { code = pb.ErrorCode_ParkourMemberFull return } if req.State == 1 { ok = false - for _, v := range tean.Invite { - if v.Uid == session.GetUserId() && configure.Now().Before(time.Unix(v.Expired, 0)) { //邀请未过期 + for i, v := range tean.Invite { + if v.Uid == session.GetUserId() && !configure.Now().Before(time.Unix(v.Expired, 0)) { //邀请未过期 invite = v + index = int32(i) ok = true } } if !ok { code = pb.ErrorCode_ParkourInviteOverdue + return } + tean.Invite = append(tean.Invite[0:index], tean.Invite[index+1:]...) users = make([]string, len(tean.Member)) for i, v := range tean.Member { users[i] = v.Uid } - member = &pb.DBRaceMember{Uid: invite.Uid, Name: invite.Name} + if mount, err = this.module.configure.getGameBuzkashiMount(info.Dfmount); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } + member = &pb.DBRaceMember{Uid: invite.Uid, Name: invite.Name, Avatar: invite.Avatar, Mount: info.Dfmount, Hp: mount.Hp} + tean.Captainid = tean.Uid + tean.State = pb.RaceTeamState_teaming tean.Member = append(tean.Member, member) - if err = this.module.teamComp.Change(tean.Captainid, map[string]interface{}{ - "member": tean.Member, + if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ + "captainid": tean.Captainid, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + if err = this.module.parkourComp.Change(tean.Captainid, map[string]interface{}{ + "state": tean.State, + "invite": tean.Invite, + "captainid": tean.Captainid, + "member": tean.Member, }); err != nil { code = pb.ErrorCode_DBError return diff --git a/modules/parkour/api_quitteam.go b/modules/parkour/api_quitteam.go index 5cbaaea93..1e3c49163 100644 --- a/modules/parkour/api_quitteam.go +++ b/modules/parkour/api_quitteam.go @@ -22,7 +22,7 @@ func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeam if code = this.QuitTeamCheck(session, req); code != pb.ErrorCode_Success { return } - if tean, err = this.module.teamComp.queryteam(req.Captainid); err != nil { + if tean, err = this.module.parkourComp.queryinfo(req.Captainid); err != nil { code = pb.ErrorCode_DBError return } @@ -39,7 +39,13 @@ func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeam code = pb.ErrorCode_ReqParameterError return } - if err = this.module.teamComp.Change(req.Captainid, map[string]interface{}{ + if err = this.module.parkourComp.Change(session.GetUserId(), map[string]interface{}{ + "captainid": session.GetUserId(), + }); err != nil { + code = pb.ErrorCode_DBError + return + } + if err = this.module.parkourComp.Change(req.Captainid, map[string]interface{}{ "member": tean.Member, }); err != nil { code = pb.ErrorCode_DBError diff --git a/modules/parkour/api_racematch.go b/modules/parkour/api_racematch.go index 9e4c2a2a4..18400c836 100644 --- a/modules/parkour/api_racematch.go +++ b/modules/parkour/api_racematch.go @@ -7,26 +7,52 @@ import ( //参数校验 func (this *apiComp) RaceMatchCheck(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode) { + if session.GetUserId() != req.Captainid { + code = pb.ErrorCode_ReqParameterError + } return } ///匹配请求 func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode, data *pb.ErrorData) { var ( - team *pb.DBParkour - err error + team *pb.DBParkour + users []string + err error ) if code = this.RaceMatchCheck(session, req); code != pb.ErrorCode_Success { return } - if team, err = this.module.teamComp.queryteam(session.GetUserId()); err != nil { + if team, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { code = pb.ErrorCode_DBError return } + if team.Captainid != session.GetUserId() { + code = pb.ErrorCode_ReqParameterError + return + } + if err = this.module.match(team); err != nil { code = pb.ErrorCode_DBError return } + + users = make([]string, len(team.Member)) + for i, v := range team.Member { + if !v.Isai { + users[i] = v.Uid + if err = this.module.parkourComp.Change(v.Uid, map[string]interface{}{ + "state": pb.RaceTeamState_matching, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + } + + } + this.module.SendMsgToUsers(string(this.module.GetType()), "racematchstart", + &pb.ParkourRaceMatchStartPush{Team: team}, users...) + session.SendMsg(string(this.module.GetType()), "racematch", &pb.ParkourRaceMatchResp{}) return } diff --git a/modules/parkour/api_racematchcancel.go b/modules/parkour/api_racematchcancel.go new file mode 100644 index 000000000..cf0110ca0 --- /dev/null +++ b/modules/parkour/api_racematchcancel.go @@ -0,0 +1,56 @@ +package parkour + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +//参数校验 +func (this *apiComp) RaceMatchCancelCheck(session comm.IUserSession, req *pb.ParkourRaceMatchCancelReq) (code pb.ErrorCode) { + if session.GetUserId() != req.Captainid { + code = pb.ErrorCode_ReqParameterError + } + return +} + +///匹配请求 +func (this *apiComp) RaceMatchCancel(session comm.IUserSession, req *pb.ParkourRaceMatchCancelReq) (code pb.ErrorCode, data *pb.ErrorData) { + var ( + team *pb.DBParkour + users []string + err error + ) + if code = this.RaceMatchCancelCheck(session, req); code != pb.ErrorCode_Success { + return + } + if team, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + if team.Captainid != session.GetUserId() { + code = pb.ErrorCode_ReqParameterError + return + } + + if err = this.module.match(team); err != nil { + code = pb.ErrorCode_DBError + return + } + users = make([]string, len(team.Member)) + for i, v := range team.Member { + if !v.Isai { + users[i] = v.Uid + if err = this.module.parkourComp.Change(v.Uid, map[string]interface{}{ + "state": pb.RaceTeamState_matching, + }); err != nil { + code = pb.ErrorCode_DBError + return + } + } + } + this.module.SendMsgToUsers(string(this.module.GetType()), "racematchstart", + &pb.ParkourRaceMatchCancelPush{Team: team}, users...) + + session.SendMsg(string(this.module.GetType()), "racematch", &pb.ParkourRaceMatchResp{}) + return +} diff --git a/modules/parkour/configure.go b/modules/parkour/configure.go index 919f2ef97..1488b9cab 100644 --- a/modules/parkour/configure.go +++ b/modules/parkour/configure.go @@ -1,11 +1,20 @@ package parkour import ( + "fmt" "go_dreamfactory/lego/core" "go_dreamfactory/modules" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" ) -const () +const ( + game_buzkashiopen = "game_buzkashiopen.json" + game_buzkashigrade = "game_buzkashigrade.json" + game_buzkashilv = "game_buzkashilv.json" + game_buzkashimount = "game_buzkashimount.json" + game_buzkashireward = "game_buzkashireward.json" +) ///背包配置管理组件 type configureComp struct { @@ -17,6 +26,57 @@ type configureComp struct { func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { this.MCompConfigure.Init(service, module, comp, options) this.module = module.(*Parkour) - + this.LoadConfigure(game_buzkashiopen, cfg.NewGamebuzkashiOpen) + this.LoadConfigure(game_buzkashigrade, cfg.NewGameBuzkashiGrade) + this.LoadConfigure(game_buzkashilv, cfg.NewGameBuzkashiLv) + this.LoadConfigure(game_buzkashimount, cfg.NewGameBuzkashiMount) + this.LoadConfigure(game_buzkashireward, cfg.NewGameBuzkashiReward) + return +} + +//查询开启表 +func (this *configureComp) isopen() (open bool) { + var ( + v interface{} + config *cfg.GamebuzkashiOpen + currtime string = configure.Now().Format("15:04") + err error + ok bool + ) + if v, err = this.GetConfigure(game_buzkashiopen); err != nil { + this.module.Errorln(err) + return + } else { + if config, ok = v.(*cfg.GamebuzkashiOpen); !ok { + err = fmt.Errorf("config type err:%T", v) + return + } else { + for _, v := range config.GetDataList() { + if currtime >= fmt.Sprintf("%d:%d", v.Shtime, v.Smtime) && currtime < fmt.Sprintf("%d:%d", v.Ehtime, v.Emtime) { + open = true + return + } + } + } + } + return +} + +//查询坐骑表 +func (this *configureComp) getGameBuzkashiMount(id string) (configure *cfg.GameBuzkashiMountData, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_buzkashimount); err != nil { + this.module.Errorln(err) + return + } else { + if configure, ok = v.(*cfg.GameBuzkashiMount).GetDataMap()[id]; !ok { + err = fmt.Errorf("not found:%s ", id) + this.module.Errorln(err) + return + } + } return } diff --git a/modules/parkour/core.go b/modules/parkour/core.go index ee7f9d908..14bd1f929 100644 --- a/modules/parkour/core.go +++ b/modules/parkour/core.go @@ -5,15 +5,55 @@ import ( "go_dreamfactory/lego/sys/timewheel" "go_dreamfactory/pb" "sync" + "time" ) +type Recommend struct { + parkour *pb.DBParkour + user *pb.DBUser + member *pb.DBRaceMember +} + ///捕羊大赛对象 type RaceItem struct { - Id string //战斗id - lock sync.Mutex //战斗锁 防止计时器和消息同时操作对象 - RedMember []*pb.DBRaceMember //红方成员 - RedSession []comm.IUserSession //红方会话 - BuleMember []*pb.DBRaceMember //蓝方成员 - BuleSession []comm.IUserSession //蓝方会话 - overtimer *timewheel.Task //准备倒计时定时器 + Id string //战斗id + lock sync.Mutex //战斗锁 防止计时器和消息同时操作对象 + RedMember []*pb.DBRaceMember //红方成员 + RedScore int32 //红方分值 + RedEnergy int32 //红方能量 + BuleMember []*pb.DBRaceMember //蓝方成员 + Session map[string]comm.IUserSession + BuleScore int32 //蓝方分值 + BuleEnergy int32 //蓝方能量 + overtimer *timewheel.Task //准备倒计时定时器 +} + +type AILevel int32 + +const ( + AILevelS AILevel = iota + AILevelSS + AILevelSSS +) + +type AIHandleType int32 + +const ( + AIHandle_Null AIHandleType = iota //空操作 + AIHandle_Avoid0 //躲避障碍 失败 + AIHandle_Avoid1 //躲避障碍 成功 + AIHandle_Avoid2 //躲避障碍 完美 + AIHandle_Shots0 //射门 失败 + AIHandle_Shots1 //射门 成功 +) + +//捕羊大赛AI对象 +type AI struct { + BattleId string //战场id + UId string //用户id + AILevel AILevel //AI级别 + Handle []AIHandleType //操作列表 + CurrIndex int32 //当前执行下标 + LastTime time.Time //上一次操作时间 + Interval time.Duration //最小操作时间 } diff --git a/modules/parkour/model_parkour.go b/modules/parkour/model_parkour.go index b8f1b65b8..2b89fca98 100644 --- a/modules/parkour/model_parkour.go +++ b/modules/parkour/model_parkour.go @@ -1,23 +1,35 @@ package parkour import ( + "context" "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" + "math/rand" + "sync" + "time" + "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/x/bsonx" ) ///竞速数据模块 type ModelParkourComp struct { modules.MCompModel - module *Parkour + module *Parkour + refresh time.Time //上一次刷新时间 + lock sync.RWMutex + users []*Recommend //推荐用户信息 } //组件初始化接口 @@ -32,7 +44,99 @@ func (this *ModelParkourComp) Init(service core.IService, module core.IModule, c return } -func (this *ModelParkourComp) queryteam(uid string) (result *pb.DBParkour, err error) { +func (this *ModelParkourComp) Start() (err error) { + err = this.MCompModel.Start() + go this.refreshlist() + return +} + +//获取推荐用户 +func (this *ModelParkourComp) getrusers(uid string) (recommend []*pb.DBRaceMember, err error) { + var ( + users []*Recommend + mount *cfg.GameBuzkashiMountData + ondata bool + ) + this.lock.RLock() + if len(this.users) == 0 { + ondata = true + } + this.lock.RUnlock() + if ondata { //没有数据 重新获取 + this.refreshlist() + } + this.lock.RLock() + users = make([]*Recommend, 0, len(this.users)) + for _, v := range this.users { + if v.parkour.Uid != uid { + users = append(users, v) + } + } + this.lock.RUnlock() + var num int = 6 + if len(users) < 6 { + num = len(users) + } + recommend = make([]*pb.DBRaceMember, num) + r := rand.New(rand.NewSource(configure.Now().Unix())) + for i, v := range r.Perm(num) { + if users[v].member == nil { + if users[v].user = this.module.ModuleUser.GetUser(users[v].parkour.Uid); users[v].user == nil { + continue + } + if mount, err = this.module.configure.getGameBuzkashiMount(users[v].parkour.Dfmount); err != nil { + continue + } + users[v].member = &pb.DBRaceMember{ + Uid: users[v].user.Uid, + Name: users[v].user.Name, + Avatar: users[v].user.Avatar, + Lv: users[v].user.Lv, + Mount: users[v].parkour.Dfmount, + Hp: mount.Hp, + } + } + recommend[i] = users[v].member + } + return +} + +//刷新推荐列表 +func (this *ModelParkourComp) refreshlist() { + var ( + users []*Recommend + c *mongo.Cursor + err error + ) + + if c, err = this.DB.Find(core.SqlTable(this.TableName), bson.M{"captainid": ""}, options.Find().SetSort(bson.D{{"integral", -1}}).SetSkip(0).SetLimit(100)); err != nil { + this.module.Errorln(err) + return + } else { + result := make([]*pb.DBParkour, 0, c.RemainingBatchLength()) + for c.Next(context.Background()) { + tmp := &pb.DBParkour{} + if err = c.Decode(tmp); err != nil { + log.Errorln(err) + } else { + result = append(result, tmp) + } + } + users = make([]*Recommend, len(result)) + for i, v := range result { + users[i] = &Recommend{ + parkour: v, + user: nil, + } + } + + this.lock.Lock() + this.users = users + this.lock.Unlock() + } +} + +func (this *ModelParkourComp) queryinfo(uid string) (result *pb.DBParkour, err error) { result = &pb.DBParkour{} if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { this.module.Errorln(err) @@ -45,12 +149,12 @@ func (this *ModelParkourComp) queryteam(uid string) (result *pb.DBParkour, err e return } result = &pb.DBParkour{ - Id: primitive.NewObjectID().Hex(), - Captainid: uid, - State: pb.RaceTeamState_teaming, - Mounts: make(map[string]int32), - Invite: make([]*pb.DBRaceInvite, 0), - Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, + Id: primitive.NewObjectID().Hex(), + Uid: uid, + State: pb.RaceTeamState_teaming, + Mounts: make(map[string]int32), + Invite: make([]*pb.DBRaceInvite, 0), + Member: []*pb.DBRaceMember{}, } if err = this.Add(uid, result); err != nil { this.module.Errorln(err) @@ -61,7 +165,7 @@ func (this *ModelParkourComp) queryteam(uid string) (result *pb.DBParkour, err e return } -func (this *ModelParkourComp) queryteams(uids []string) (results []*pb.DBParkour, err error) { +func (this *ModelParkourComp) queryinfos(uids []string) (results []*pb.DBParkour, err error) { results = make([]*pb.DBParkour, 0) var ( onfound []string @@ -79,12 +183,12 @@ func (this *ModelParkourComp) queryteams(uids []string) (results []*pb.DBParkour return } temp := &pb.DBParkour{ - Id: primitive.NewObjectID().Hex(), - Captainid: v, - State: pb.RaceTeamState_teaming, - Mounts: make(map[string]int32), - Invite: make([]*pb.DBRaceInvite, 0), - Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, + Id: primitive.NewObjectID().Hex(), + Uid: v, + State: pb.RaceTeamState_teaming, + Mounts: make(map[string]int32), + Invite: make([]*pb.DBRaceInvite, 0), + Member: []*pb.DBRaceMember{}, } newdata[v] = temp } @@ -117,16 +221,21 @@ func (this *ModelParkourComp) addUserMounts(uid string, mounts map[string]int32) return } result = &pb.DBParkour{ - Id: primitive.NewObjectID().Hex(), - Captainid: uid, - State: pb.RaceTeamState_teaming, - Invite: make([]*pb.DBRaceInvite, 0), - Mounts: make(map[string]int32), - Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, + Id: primitive.NewObjectID().Hex(), + Uid: uid, + State: pb.RaceTeamState_teaming, + Invite: make([]*pb.DBRaceInvite, 0), + Mounts: make(map[string]int32), + Member: []*pb.DBRaceMember{}, } + for k, _ := range mounts { result.Mounts[k] = 0 + if result.Dfmount == "" { + result.Dfmount = k + } } + if err = model.Add(uid, result); err != nil { this.module.Errorf("err:%v", err) } @@ -141,11 +250,14 @@ func (this *ModelParkourComp) addUserMounts(uid string, mounts map[string]int32) } } else { - if result, err = this.queryteam(uid); err != nil { + if result, err = this.queryinfo(uid); err != nil { this.module.Errorln(err) } for k, _ := range mounts { result.Mounts[k] = 0 + if result.Dfmount == "" { + result.Dfmount = k + } } this.Change(uid, map[string]interface{}{ "mounts": result.Mounts, diff --git a/modules/parkour/model_race.go b/modules/parkour/model_race.go index 03354fcde..b38810c24 100644 --- a/modules/parkour/model_race.go +++ b/modules/parkour/model_race.go @@ -3,6 +3,7 @@ package parkour import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" "go_dreamfactory/sys/db" @@ -37,3 +38,15 @@ func (this *ModelRaceComp) delrace(id string) (err error) { } return } + +//查询用户重置数据 +func (this *ModelRaceComp) queryraces() (result []*pb.DBRace, err error) { + result = make([]*pb.DBRace, 0) + if err = this.GetList("", &result); err != nil && err != mgo.MongodbNil { + this.module.Errorf("err:%v", err) + } + if err == mgo.MongodbNil { + err = nil + } + return +} diff --git a/modules/parkour/model_team.go b/modules/parkour/model_team.go deleted file mode 100644 index d5fa0df56..000000000 --- a/modules/parkour/model_team.go +++ /dev/null @@ -1,96 +0,0 @@ -package parkour - -import ( - "fmt" - "go_dreamfactory/comm" - "go_dreamfactory/lego/core" - "go_dreamfactory/lego/sys/mgo" - "go_dreamfactory/modules" - "go_dreamfactory/pb" - - "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/x/bsonx" -) - -///竞速数据模块 -type ModelTeamComp struct { - modules.MCompModel - module *Parkour -} - -//组件初始化接口 -func (this *ModelTeamComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) { - this.TableName = comm.TableParkourTeam - this.MCompModel.Init(service, module, comp, opt) - this.module = module.(*Parkour) - //创建uid索引 - this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ - Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, - }) - return -} - -func (this *ModelTeamComp) queryteam(uid string) (result *pb.DBParkour, err error) { - result = &pb.DBParkour{} - if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { - this.module.Errorln(err) - return - } - if err == mgo.MongodbNil { - var tuser *pb.DBUser - if tuser = this.module.ModuleUser.GetUser(uid); tuser == nil { - err = fmt.Errorf("no found udata:%s", uid) - return - } - result = &pb.DBParkour{ - Id: primitive.NewObjectID().Hex(), - Captainid: uid, - State: pb.RaceTeamState_teaming, - Mounts: make(map[string]int32), - Invite: make([]*pb.DBRaceInvite, 0), - Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, - } - if err = this.Add(uid, result); err != nil { - this.module.Errorln(err) - return - } - } - err = nil - return -} - -func (this *ModelTeamComp) queryteams(uids []string) (results []*pb.DBParkour, err error) { - results = make([]*pb.DBParkour, 0) - var ( - onfound []string - newdata map[string]interface{} = make(map[string]interface{}) - ) - if onfound, err = this.Gets(uids, &results); err != nil { - this.module.Errorln(err) - return - } - if len(onfound) > 0 { - for _, v := range onfound { - var tuser *pb.DBUser - if tuser = this.module.ModuleUser.GetUser(v); tuser == nil { - err = fmt.Errorf("no found udata:%s", v) - return - } - temp := &pb.DBParkour{ - Id: primitive.NewObjectID().Hex(), - Captainid: v, - State: pb.RaceTeamState_teaming, - Mounts: make(map[string]int32), - Invite: make([]*pb.DBRaceInvite, 0), - Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, - } - newdata[v] = temp - } - if err = this.Adds(newdata); err != nil { - this.module.Errorln(err) - return - } - } - return -} diff --git a/modules/parkour/module.go b/modules/parkour/module.go index a9b5a81c5..6d43e274b 100644 --- a/modules/parkour/module.go +++ b/modules/parkour/module.go @@ -6,6 +6,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/timewheel" "go_dreamfactory/modules" @@ -30,8 +31,8 @@ type Parkour struct { modules.ModuleBase service base.IRPCXService api *apiComp + ai *aiComp configure *configureComp - teamComp *ModelTeamComp parkourComp *ModelParkourComp raceComp *ModelRaceComp lock sync.RWMutex @@ -54,6 +55,7 @@ func (this *Parkour) Init(service core.IService, module core.IModule, options co func (this *Parkour) Start() (err error) { err = this.ModuleBase.Start() this.service.RegisterFunctionName(string(comm.RPC_ParkourMatchSucc), this.createbattle) + event.RegisterGO(comm.EventUserOffline, this.useroffline) return } @@ -61,9 +63,10 @@ func (this *Parkour) Start() (err error) { func (this *Parkour) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api = this.RegisterComp(new(apiComp)).(*apiComp) + this.ai = this.RegisterComp(new(aiComp)).(*aiComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) - this.teamComp = this.RegisterComp(new(ModelTeamComp)).(*ModelTeamComp) this.parkourComp = this.RegisterComp(new(ModelParkourComp)).(*ModelParkourComp) + this.raceComp = this.RegisterComp(new(ModelRaceComp)).(*ModelRaceComp) } //添加坐骑资源 @@ -84,8 +87,9 @@ func (this *Parkour) AddMounts(session comm.IUserSession, mounts map[string]int3 //匹配 func (this *Parkour) match(team *pb.DBParkour) (err error) { + ctx, _ := context.WithTimeout(context.Background(), time.Second*5) err = this.service.RpcCall( - context.Background(), + ctx, comm.Service_Mainte, string(comm.RPC_ParkourJoinMatch), &pb.RPCParkourJoinMatchReq{Captainid: team.Captainid, Member: team.Member}, @@ -103,8 +107,6 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu race *pb.DBRace battle *RaceItem sessions []comm.IUserSession = make([]comm.IUserSession, 0) - teams []*pb.DBParkour - users []string = make([]string, 0) ) this.Debug("createbattle", log.Field{Key: "req", Value: req.String()}) @@ -115,43 +117,49 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu Bulemember: req.Bule, } battle = &RaceItem{ - Id: race.Id, - RedSession: make([]comm.IUserSession, 0), - BuleSession: make([]comm.IUserSession, 0), - overtimer: timewheel.Add(time.Minute*3, this.overtimer, race.Id), + Id: race.Id, + Session: make(map[string]comm.IUserSession), + overtimer: timewheel.Add(time.Minute*3, this.overtimer, race.Id), } for _, v := range req.Red { - users = append(users, v.Uid) - session, online := this.GetUserSession(v.Uid) - v.Isoff = !online - if online { - battle.RedSession = append(battle.RedSession, session) + v.Hp = 6 + if !v.Isai { //非AI + session, online := this.GetUserSession(v.Uid) + v.Isoff = !online + if online { + battle.Session[v.Uid] = session + } + } else { + v.Ready = true } + } battle.RedMember = req.Red for _, v := range req.Bule { - users = append(users, v.Uid) - session, online := this.GetUserSession(v.Uid) - v.Isoff = !online - if online { - battle.BuleSession = append(battle.BuleSession, session) + v.Hp = 6 + if !v.Isai { //非AI + session, online := this.GetUserSession(v.Uid) + v.Isoff = !online + if online { + battle.Session[v.Uid] = session + } + } else { + v.Ready = true } } + for _, v := range battle.Session { + sessions = append(sessions, v) + } + battle.BuleMember = req.Bule - if teams, err = this.teamComp.queryteams(users); err != nil { - return - } - for _, v := range teams { - v.State = pb.RaceTeamState_raceing - } if err = this.raceComp.addrace(race); err != nil { return } this.lock.Lock() this.battles[race.Id] = battle this.lock.Unlock() - if err = this.SendMsgToSession(string(comm.ModulePvp), "racematchsucc", &pb.ParkourRaceMatchSuccPush{ + if err = this.SendMsgToSession(string(this.GetType()), "racematchsucc", &pb.ParkourRaceMatchSuccPush{ Race: race, }, sessions...); err != nil { this.Errorln(err) @@ -164,6 +172,7 @@ func (this *Parkour) startbattle(id string) { var ( battle *RaceItem ok bool + member []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0) sessions []comm.IUserSession = make([]comm.IUserSession, 0) err error ) @@ -171,9 +180,25 @@ func (this *Parkour) startbattle(id string) { battle, ok = this.battles[id] this.lock.RUnlock() if ok { - sessions = append(sessions, battle.RedSession...) - sessions = append(sessions, battle.BuleSession...) - if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{ + for _, v := range battle.RedMember { + if v.Isai { + member = append(member, v) + } + } + for _, v := range battle.BuleMember { + if v.Isai { + member = append(member, v) + } + } + if err = this.ai.createAi(battle.Id, member); err != nil { + this.Errorln(err) + return + } + for _, v := range battle.Session { + sessions = append(sessions, v) + } + + if err = this.SendMsgToSession(string(this.GetType()), "racestart", &pb.ParkourRaceStartPush{ Countdown: 3, }, sessions...); err != nil { this.Errorln(err) @@ -185,6 +210,7 @@ func (this *Parkour) shot(id string, uid string) { this.Debug("shot", log.Field{Key: "id", Value: id}) var ( battle *RaceItem + side int32 ok bool sessions []comm.IUserSession = make([]comm.IUserSession, 0) err error @@ -193,10 +219,34 @@ func (this *Parkour) shot(id string, uid string) { battle, ok = this.battles[id] this.lock.RUnlock() if ok { - sessions = append(sessions, battle.RedSession...) - sessions = append(sessions, battle.BuleSession...) - if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{ - Countdown: 3, + for _, v := range battle.RedMember { + if v.Uid == uid { + ok = true + side = 1 + } + } + if !ok { + for _, v := range battle.BuleMember { + if v.Uid == uid { + ok = true + side = 2 + } + } + } + if side == 1 { + battle.RedScore += 3 + } else { + battle.BuleScore += 3 + } + for _, v := range battle.Session { + sessions = append(sessions, v) + } + + if err = this.SendMsgToSession(string(this.GetType()), "scorechanage", &pb.ParkourScoreChanagePush{ + Redscore: battle.RedScore, + Redenergy: battle.RedEnergy, + Bluescore: battle.BuleScore, + Blueenergy: battle.BuleEnergy, }, sessions...); err != nil { this.Errorln(err) } @@ -208,6 +258,8 @@ func (this *Parkour) avoid(id string, uid string, dis int32) { var ( battle *RaceItem ok bool + side int32 + member *pb.DBRaceMember sessions []comm.IUserSession = make([]comm.IUserSession, 0) err error ) @@ -215,10 +267,56 @@ func (this *Parkour) avoid(id string, uid string, dis int32) { battle, ok = this.battles[id] this.lock.RUnlock() if ok { - sessions = append(sessions, battle.RedSession...) - sessions = append(sessions, battle.BuleSession...) - if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{ - Countdown: 3, + ok = false + for _, v := range battle.RedMember { + if v.Uid == uid { + member = v + ok = true + side = 1 + } + } + if !ok { + for _, v := range battle.BuleMember { + if v.Uid == uid { + member = v + ok = true + side = 2 + } + } + } + if !ok { + this.Error("躲避障碍物逻辑异常 未找到玩家!", log.Field{Key: "battleid", Value: id}, log.Field{Key: "uid", Value: uid}) + return + } + + for _, v := range battle.Session { + sessions = append(sessions, v) + } + + if dis < 0 { + member.Hp-- + if member.Hp < 0 { + // timewheel.Add(time.Second*10, this.resurrectiontimer, battle.Id, member.Uid) + } + } else { + if side == 1 { + battle.RedEnergy += 3 + } else { + battle.BuleEnergy += 3 + } + if err = this.SendMsgToSession(string(this.GetType()), "playerhpchanage", &pb.ParkourScoreChanagePush{ + Redscore: battle.RedScore, + Redenergy: battle.RedEnergy, + Bluescore: battle.BuleScore, + Blueenergy: battle.BuleEnergy, + }, sessions...); err != nil { + this.Errorln(err) + } + } + + if err = this.SendMsgToSession(string(this.GetType()), "playerhpchanage", &pb.ParkourPlayerHPChanagePush{ + Uid: uid, + Hp: member.Hp, }, sessions...); err != nil { this.Errorln(err) } @@ -231,6 +329,7 @@ func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) { var ( battle *RaceItem ok bool + side int32 sessions []comm.IUserSession = make([]comm.IUserSession, 0) err error ) @@ -243,15 +342,299 @@ func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) { delete(this.battles, id) this.lock.Unlock() this.raceComp.delrace(id) - sessions = append(sessions, battle.RedSession...) - sessions = append(sessions, battle.BuleSession...) - if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceOverPush{ - Race: &pb.DBRace{ - Id: battle.Id, - }, + this.ai.removeAi(id) + if battle.RedScore > battle.BuleScore { + side = 1 + } else { + side = 2 + } + for _, v := range battle.Session { + sessions = append(sessions, v) + } + + if err = this.SendMsgToSession(string(this.GetType()), "raceover", &pb.ParkourRaceOverPush{ + Winside: side, }, sessions...); err != nil { this.Errorln(err) return } + + for _, v := range battle.RedMember { + if !v.Isai { + if err = this.parkourComp.Change(v.Uid, map[string]interface{}{ + "captainid": "", + "state": 0, + "invite": []*pb.DBRaceInvite{}, + "member": []*pb.DBRaceMember{}, + }); err != nil { + this.Errorln(err) + return + } + } + } + for _, v := range battle.BuleMember { + if !v.Isai { + if err = this.parkourComp.Change(v.Uid, map[string]interface{}{ + "captainid": "", + "state": 0, + "invite": []*pb.DBRaceInvite{}, + "member": []*pb.DBRaceMember{}, + }); err != nil { + this.Errorln(err) + return + } + } + } + + } +} + +//用户离线处理 +func (this *Parkour) useroffline(uid, sessionid string) { + var ( + info *pb.DBParkour + + team *pb.DBParkour + member *pb.DBRaceMember + users []string + index int32 + err error + ) + if info, err = this.parkourComp.queryinfo(uid); err != nil { + this.Error("用户离线!", log.Field{Key: "err", Value: err.Error()}) + return + } + if info.State == pb.RaceTeamState_teaming { + if info.Captainid == uid { + info.Invite = info.Invite[:0] + info.Member = info.Member[:0] + if err = this.parkourComp.Change(uid, map[string]interface{}{ + "captainid": "", + "state": 0, + "Invite": info.Invite, + "member": info.Member, + }); err != nil { + this.Error("用户离线! 处理数据", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) + return + } + users = make([]string, 0) + for _, v := range info.Member { + if v.Uid != uid && !v.Isai { + users = append(users, v.Uid) + if err = this.parkourComp.Change(v.Uid, map[string]interface{}{ + "captainid": "", + "state": 0, + }); err != nil { + this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.Uid}, log.Field{Key: "err", Value: err.Error()}) + return + } + } + } + if len(users) > 0 { + if err = this.SendMsgToUsers(string(comm.ModulePvp), "teamdisbandnotice", &pb.ParkourTeamDisbandNoticePush{}, users...); err != nil { + this.Errorln(err) + } + } + } else { + if team, err = this.parkourComp.queryinfo(info.Captainid); err != nil { + this.Error("用户离线!", log.Field{Key: "Captainid", Value: info.Captainid}, log.Field{Key: "err", Value: err.Error()}) + return + } + users = make([]string, 0) + for i, v := range team.Member { + if v.Uid == uid { + index = int32(i) + member = v + continue + } + if v.Uid != uid && !v.Isai { + users = append(users, v.Uid) + } + } + team.Member = append(team.Member[0:index], team.Member[index+1:]...) + if err = this.parkourComp.Change(team.Uid, map[string]interface{}{ + "member": team.Member, + }); err != nil { + this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: team.Uid}, log.Field{Key: "err", Value: err.Error()}) + return + } + if len(users) > 0 { + this.SendMsgToUsers(string(this.GetType()), "teamquitnotice", + &pb.ParkourTeamQuitNoticePush{Member: member}, users...) + + this.SendMsgToUsers(string(this.GetType()), "teamchanage", + &pb.ParkourTeamChanagePush{Team: team}, users...) + } + + } + } else if info.State == pb.RaceTeamState_matching { + if info.Captainid == uid { + err = this.service.RpcCall( + context.Background(), + comm.Service_Mainte, + string(comm.RPC_ParkourCancelMatch), + &pb.RPCParkourCancelMatchReq{Captainid: info.Captainid}, + &pb.RPCParkourCancelMatchResp{}) + if err != nil { + this.Errorln(err) + return + } + if err = this.parkourComp.Change(uid, map[string]interface{}{ + "captainid": "", + "state": 0, + "Invite": info.Invite, + "member": info.Member, + }); err != nil { + this.Error("用户离线! 处理数据", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) + return + } + users = make([]string, 0) + for _, v := range info.Member { + if v.Uid != uid && !v.Isai { + users = append(users, v.Uid) + if err = this.parkourComp.Change(v.Uid, map[string]interface{}{ + "captainid": "", + "state": 0, + }); err != nil { + this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.Uid}, log.Field{Key: "err", Value: err.Error()}) + return + } + } + } + if len(users) > 0 { + if err = this.SendMsgToUsers(string(comm.ModulePvp), "teamdisbandnotice", &pb.ParkourTeamDisbandNoticePush{}, users...); err != nil { + this.Errorln(err) + } + } + } + } else if info.State == pb.RaceTeamState_raceing { + var ( + lockpath string = fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()) + result []*pb.DBRace + ) + if result, err = this.raceComp.queryraces(); err != nil { + this.Errorln(err) + return + } + for _, v := range result { + for _, v1 := range v.Redmember { + if !v1.Isai && v1.Uid == uid { + if lockpath == v.ServicePath { + this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil) + return + } else { + ctx, _ := context.WithTimeout(context.Background(), time.Second*5) + _, err = this.service.RpcGo( + ctx, + comm.Service_Mainte, + string(comm.RPC_ParkourJoinMatch), + &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, + nil) + if err != nil { + this.Errorln(err) + return + } + return + } + } + } + for _, v1 := range v.Bulemember { + if !v1.Isai && v1.Uid == uid { + if lockpath == v.ServicePath { + this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil) + return + } else { + ctx, _ := context.WithTimeout(context.Background(), time.Second*5) + _, err = this.service.RpcGo( + ctx, + comm.Service_Mainte, + string(comm.RPC_ParkourJoinMatch), + &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, + nil) + if err != nil { + this.Errorln(err) + return + } + return + } + } + } + } + } +} + +//托管 +func (this *Parkour) trusteeship(ctx context.Context, req *pb.RPC_ParkourTrusteeshipReq, resp *pb.RPC_ParkourTrusteeshipResp) (err error) { + var ( + battle *RaceItem + ok bool + ) + + this.lock.RLock() + battle, ok = this.battles[req.Battleid] + this.lock.RUnlock() + if ok { + battle.lock.Lock() + for _, v := range battle.BuleMember { + if v.Uid == v.Uid { + v.Isoff = true + } + } + for _, v := range battle.RedMember { + if v.Uid == v.Uid { + v.Isoff = true + } + } + delete(battle.Session, req.Uid) + battle.lock.Unlock() + } + return +} + +func (this *Parkour) resurrectiontimer(task *timewheel.Task, args ...interface{}) { + var ( + battleid string + uid string + battle *RaceItem + member *pb.DBRaceMember + sessions []comm.IUserSession = make([]comm.IUserSession, 0) + ok bool + err error + ) + + battleid = args[0].(string) + uid = args[1].(string) + this.lock.RLock() + battle, ok = this.battles[battleid] + this.lock.RUnlock() + if ok { + ok = false + for _, v := range battle.RedMember { + if v.Uid == uid { + member = v + ok = true + } + } + if !ok { + for _, v := range battle.BuleMember { + if v.Uid == uid { + member = v + ok = true + } + } + } + + if ok { + member.Hp = 2 + for _, v := range battle.Session { + sessions = append(sessions, v) + } + if err = this.SendMsgToSession(string(this.GetType()), "playerhpchanage", &pb.ParkourPlayerHPChanagePush{ + Uid: uid, + Hp: member.Hp, + }, sessions...); err != nil { + this.Errorln(err) + } + } } } diff --git a/modules/parkour/parkour_test.go b/modules/parkour/parkour_test.go new file mode 100644 index 000000000..4deda17f3 --- /dev/null +++ b/modules/parkour/parkour_test.go @@ -0,0 +1,18 @@ +package parkour_test + +import ( + "fmt" + "testing" + "time" +) + +func Test_Time(t *testing.T) { + currt := time.Now().Format("15:04") + fmt.Printf(currt) + if currt > "13:10" && currt < "16:30" { + fmt.Printf("true") + } else { + fmt.Printf("false") + } + +} diff --git a/modules/practice/api_npcbattklefinish.go b/modules/practice/api_npcbattklefinish.go index 3f0678e7c..a33a4cebb 100644 --- a/modules/practice/api_npcbattklefinish.go +++ b/modules/practice/api_npcbattklefinish.go @@ -34,7 +34,7 @@ func (this *apiComp) NPCBattkleFinish(session comm.IUserSession, req *pb.Practic } if req.Report.WinSide == 1 { - room.Npcstate = 2 + room.Npcstate = 3 if conf, err = this.module.configure.getDispatchBattleData(room.Currnpc); err != nil { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/practice/api_npcdialog.go b/modules/practice/api_npcdialog.go index fc5ed60e6..5a3a9835f 100644 --- a/modules/practice/api_npcdialog.go +++ b/modules/practice/api_npcdialog.go @@ -3,7 +3,6 @@ package practice import ( "go_dreamfactory/comm" "go_dreamfactory/pb" - "go_dreamfactory/sys/configure" ) //参数校验 @@ -14,32 +13,32 @@ func (this *apiComp) NPCDialogCheck(session comm.IUserSession, req *pb.PracticeN ///npc 此协议废弃 不用 func (this *apiComp) NPCDialog(session comm.IUserSession, req *pb.PracticeNPCDialogReq) (code pb.ErrorCode, data *pb.ErrorData) { - var ( - err error - room *pb.DBPracticeRoom - // conf *cfg.GameDispatch_BattleData - ) - if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { - code = pb.ErrorCode_DBError - return - } - if room.Npcstate != 2 { - code = pb.ErrorCode_ReqParameterError - return - } - // if conf, err = this.module.configure.getDispatchBattleData(room.Currnpc); err != nil { - // code = pb.ErrorCode_ConfigNoFound + // var ( + // err error + // room *pb.DBPracticeRoom + // // conf *cfg.GameDispatch_BattleData + // ) + // if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { + // code = pb.ErrorCode_DBError // return // } - // if code = this.module.DispenseRes(session, conf.StoryAward, true); code != pb.ErrorCode_Success { + // if room.Npcstate != 2 { + // code = pb.ErrorCode_ReqParameterError // return // } - room.Npcstate = 3 - room.Refresh = configure.Now().Unix() - this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{ - "npcstate": room.Npcstate, - "refresh": room.Refresh, - }) + // // if conf, err = this.module.configure.getDispatchBattleData(room.Currnpc); err != nil { + // // code = pb.ErrorCode_ConfigNoFound + // // return + // // } + // // if code = this.module.DispenseRes(session, conf.StoryAward, true); code != pb.ErrorCode_Success { + // // return + // // } + // room.Npcstate = 3 + // room.Refresh = configure.Now().Unix() + // this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{ + // "npcstate": room.Npcstate, + // "refresh": room.Refresh, + // }) session.SendMsg(string(this.module.GetType()), "npcdialog", &pb.PracticeNPCDialogResp{Issucc: true}) return } diff --git a/modules/practice/modelPandata.go b/modules/practice/modelPandata.go index 7cde7fa19..9fc7c1b5c 100644 --- a/modules/practice/modelPandata.go +++ b/modules/practice/modelPandata.go @@ -7,6 +7,7 @@ import ( "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" "go.mongodb.org/mongo-driver/bson/primitive" @@ -51,6 +52,8 @@ func (this *modelPandata) queryUserMartialhall(uid string) (result *pb.DBPractic Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1}, Statuers: make([]*pb.DBPracticeStatuer, 0), + Npcstate: 3, + Refresh: configure.Now().Unix(), } if err = this.refreshnpc(result); err != nil { this.module.Errorln(err) @@ -90,11 +93,13 @@ func (this *modelPandata) queryrooms(uids []string) (results []*pb.DBPracticeRoo Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 2, Lv: 1}, Statuers: make([]*pb.DBPracticeStatuer, 0), + Npcstate: 3, + Refresh: configure.Now().Unix(), } - if err = this.refreshnpc(temp); err != nil { - this.module.Errorln(err) - continue - } + // if err = this.refreshnpc(temp); err != nil { + // this.module.Errorln(err) + // continue + // } go this.module.atlas.CheckActivatePandaAtlasCollect(v, "100001") newdata[v] = temp } diff --git a/modules/practice/module.go b/modules/practice/module.go index 71767bd3a..824a0e5da 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -136,6 +136,8 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32 Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1}, Statuers: make([]*pb.DBPracticeStatuer, 0), + Npcstate: 3, + Refresh: configure.Now().Unix(), } id = make([]string, 0) for k, _ := range items { @@ -143,10 +145,10 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32 id = append(id, k) this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), k) } - if err = this.modelPandata.refreshnpc(room); err != nil { - this.Errorln(err) - return - } + // if err = this.modelPandata.refreshnpc(room); err != nil { + // this.Errorln(err) + // return + // } if err = model.Add(session.GetUserId(), room); err != nil { this.Errorln(err) return @@ -413,7 +415,7 @@ func (this *Practice) CleanUpNpc(uid string) { } result.Refresh = configure.Now().Unix() - this.modelPandata.Change(uid, map[string]interface{}{ // 同步状态即可 + model.Change(uid, map[string]interface{}{ // 同步状态即可 "npcstate": 3, "refresh": result.Refresh, }) diff --git a/modules/pvp/module.go b/modules/pvp/module.go index f7e1515a0..39706d9ec 100644 --- a/modules/pvp/module.go +++ b/modules/pvp/module.go @@ -1,6 +1,7 @@ package pvp import ( + "context" "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/base" @@ -399,39 +400,86 @@ func (this *Pvp) userlogin(session comm.IUserSession) { //用户离线处理 func (this *Pvp) useroffline(uid, sessionid string) { var ( - side int32 - data []byte - code pb.ErrorCode + result []*pb.DBPvpBattle + lockpath string = fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()) + service map[string][]string = make(map[string][]string) + err error ) - this.lock.RLock() - for _, v := range this.battles { + if result, err = this.modelPvpComp.querypvps(); err != nil { + this.Errorln(err) + return + } + for _, v := range result { if v.Red.Uid == uid || v.Blue.Uid == uid { - if uid == v.Red.Uid { - side = 1 - v.RedOffline = true - } else { - side = 2 - v.BlueOffline = true + if service[v.ServicePath] == nil { + service[v.ServicePath] = make([]string, 0) } + service[v.ServicePath] = append(service[v.ServicePath], v.Id) + } + } - if v.curroperate.Side == side { - if v.operatetimer != nil { - timewheel.Remove(v.operatetimer) + for k, v := range service { + if k == lockpath { //在当前服务器上 + this.trusteeship(context.Background(), &pb.RPC_PVPTrusteeshipReq{Battleid: v, Uid: uid}, nil) + } else { //在别的服务器上 + ctx, _ := context.WithTimeout(context.Background(), time.Second*5) + _, err = this.service.RpcGo( + ctx, + comm.Service_Mainte, + string(comm.RPC_ParkourJoinMatch), + &pb.RPC_PVPTrusteeshipReq{Battleid: v, Uid: uid}, + nil) + if err != nil { + this.Errorln(err) + return + } + } + } + +} + +//托管 +func (this *Pvp) trusteeship(ctx context.Context, req *pb.RPC_PVPTrusteeshipReq, resp *pb.RPC_PVPTrusteeshipResp) (err error) { + var ( + battle *BattleItem + ok bool + side int32 + data []byte + code pb.ErrorCode + ) + for _, bid := range req.Battleid { + this.lock.RLock() + battle, ok = this.battles[bid] + this.lock.RUnlock() + if ok { + if battle.Red.Uid == req.Uid || battle.Blue.Uid == req.Uid { + if req.Uid == battle.Red.Uid { + side = 1 + battle.RedOffline = true + } else { + side = 2 + battle.BlueOffline = true } - v.curroperate.Auto = true - data, _ = proto.Marshal(v.curroperate) - if code = this.battle.InCmdBattle(&pb.BattleInCmdReq{ - Battleid: v.Id, - Side: v.curroperate.Side, - In: &pb.BattleCmd{ - Cmdtype: "ComWaitInputSkill", - Value: data, - }, - }); code != pb.ErrorCode_Success { - return + + if battle.curroperate.Side == side { + if battle.operatetimer != nil { + timewheel.Remove(battle.operatetimer) + } + battle.curroperate.Auto = true + data, _ = proto.Marshal(battle.curroperate) + if code = this.battle.InCmdBattle(&pb.BattleInCmdReq{ + Battleid: battle.Id, + Side: battle.curroperate.Side, + In: &pb.BattleCmd{ + Cmdtype: "ComWaitInputSkill", + Value: data, + }, + }); code != pb.ErrorCode_Success { + return + } } } } } - this.lock.RUnlock() + return } diff --git a/modules/reputation/api.go b/modules/reputation/api.go new file mode 100644 index 000000000..2fb9d966d --- /dev/null +++ b/modules/reputation/api.go @@ -0,0 +1,20 @@ +package reputation + +import ( + "go_dreamfactory/lego/base" + "go_dreamfactory/lego/core" + "go_dreamfactory/modules" +) + +type apiComp struct { + modules.MCompGate + service base.IRPCXService + module *Reputation +} + +func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + _ = this.MCompGate.Init(service, module, comp, options) + this.service = service.(base.IRPCXService) + this.module = module.(*Reputation) + return +} diff --git a/modules/reputation/api_getattrs.go b/modules/reputation/api_getattrs.go new file mode 100644 index 000000000..106c80125 --- /dev/null +++ b/modules/reputation/api_getattrs.go @@ -0,0 +1,33 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 获取阵营天赋属性 +func (this *apiComp) GetattrsCheck(session comm.IUserSession, req *pb.ReputationTalentReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Getattrs(session comm.IUserSession, req *pb.ReputationTalentReq) (code pb.ErrorCode, data *pb.ErrorData) { + + uid := session.GetUserId() + rsp := &pb.ReputationTalentResp{} + + reputation := this.module.modelReputation.getDBReputation(uid) + if reputation == nil { + code = pb.ErrorCode_DataNotFound + return + } + + for _, v := range reputation.Camps { + rsp.Camp = v + } + + rsp.AttrGlobal = this.module.modelReputation.mergeAttrs(reputation.Camps) + + session.SendMsg(string(this.module.GetType()), "getattrs", rsp) + + return +} diff --git a/modules/reputation/api_reset.go b/modules/reputation/api_reset.go new file mode 100644 index 000000000..695ae2ba8 --- /dev/null +++ b/modules/reputation/api_reset.go @@ -0,0 +1,40 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +func (this *apiComp) ResetCheck(session comm.IUserSession, req *pb.ReputationTalentresetReq) (code pb.ErrorCode) { + if req.RaceType < 1 && req.RaceType > 4 { + code = pb.ErrorCode_ReqParameterError + } + return +} + +func (this *apiComp) Reset(session comm.IUserSession, req *pb.ReputationTalentresetReq) (code pb.ErrorCode, data *pb.ErrorData) { + uid := session.GetUserId() + reputation := this.module.modelReputation.getDBReputation(uid) + if reputation == nil { + code = pb.ErrorCode_DataNotFound + return + } + + if v, ok := reputation.Camps[req.RaceType]; ok { + v.Nodes = []*pb.TalentNode{} + } + + update := map[string]interface{}{ + "camps": reputation.Camps, + } + + if err := this.module.modelReputation.Change(uid, update); err != nil { + code = pb.ErrorCode_DBError + return + } + + rsp := &pb.ReputationTalentresetResp{} + + session.SendMsg(string(this.module.GetType()), "reset", rsp) + return +} diff --git a/modules/reputation/api_talenttest.go b/modules/reputation/api_talenttest.go new file mode 100644 index 000000000..0ee964a23 --- /dev/null +++ b/modules/reputation/api_talenttest.go @@ -0,0 +1,20 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/pb" +) + +func (this *apiComp) TalenttestCheck(session comm.IUserSession, req *pb.ReputationTalenttestReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Talenttest(session comm.IUserSession, req *pb.ReputationTalenttestReq) (code pb.ErrorCode, data *pb.ErrorData) { + rsp := &pb.ReputationTalenttestResp{} + lv := this.module.Upgrade(session, req.RaceType, req.FriendValue) + this.module.Debug("声望等级", log.Field{Key: "lv", Value: lv}) + + session.SendMsg(string(this.module.GetType()), "talenttest", rsp) + return +} diff --git a/modules/reputation/api_upgrade.go b/modules/reputation/api_upgrade.go new file mode 100644 index 000000000..08842738e --- /dev/null +++ b/modules/reputation/api_upgrade.go @@ -0,0 +1,70 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 天赋树升级 +func (this *apiComp) UpgradeCheck(session comm.IUserSession, req *pb.ReputationUpgradeReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.ReputationUpgradeReq) (code pb.ErrorCode, data *pb.ErrorData) { + // + uid := session.GetUserId() + rsp := &pb.ReputationUpgradeResp{} + + talentCfg := this.module.configure.getTalentNodeCfg(req.NodeId) + if talentCfg == nil { + code = pb.ErrorCode_ConfigNoFound + return + } + + reputation := this.module.modelReputation.getDBReputation(uid) + if reputation == nil { + code = pb.ErrorCode_DataNotFound + return + } + + camp, ok := reputation.Camps[talentCfg.Type] + if !ok { + reputation.Camps[talentCfg.Type] = &pb.Camp{} + } + + if code = this.module.CheckRes(session, talentCfg.IconCos); code != pb.ErrorCode_Success { + return + } + + if camp != nil { + if len(camp.Nodes) == 0 { + camp.Nodes = append(camp.Nodes, &pb.TalentNode{ + Nid: req.NodeId, + }) + } else { + for _, v := range camp.Nodes { + //判断是否满级 + if req.NodeId == v.Nid && v.Status == 2 { + code = pb.ErrorCode_ReputationTalentFull + return + } else if req.NodeId == v.Nid { + //消耗 + if c := this.module.ConsumeRes(session, talentCfg.IconCos, true); c == pb.ErrorCode_Success { + v.Status = 1 + camp.CampAttr = this.module.modelReputation.computeAttr(camp.CampAttr, talentCfg.Attribute) + + } + break + } + } + } + update := map[string]interface{}{ + "camps": reputation.Camps, + } + this.module.modelReputation.updateDBReputation(uid, update) + } + + session.SendMsg(string(this.module.GetType()), "upgrade", rsp) + + return +} diff --git a/modules/reputation/configure.go b/modules/reputation/configure.go new file mode 100644 index 000000000..9daf6f6d4 --- /dev/null +++ b/modules/reputation/configure.go @@ -0,0 +1,69 @@ +package reputation + +import ( + "fmt" + "go_dreamfactory/lego/core" + "go_dreamfactory/modules" + cfg "go_dreamfactory/sys/configure/structs" +) + +const ( + gameTalent = "game_talent.json" + gameCampLv = "game_camplv.json" +) + +type configureComp struct { + modules.MCompConfigure +} + +func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + err = this.MCompConfigure.Init(service, module, comp, options) + err = this.LoadMultiConfigure(map[string]interface{}{ + gameTalent: cfg.NewGameTalent, + gameCampLv: cfg.NewGameCampLv, + }) + return +} + +// 天赋树配置 +func (this *configureComp) getTalentCfg() (data *cfg.GameTalent, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(gameTalent); err != nil { + return + } else { + if data, ok = v.(*cfg.GameTalent); !ok { + err = fmt.Errorf("%T is *cfg.GameTalent", v) + return + } + } + return +} + +func (this *configureComp) getTalentNodeCfg(id int32) (data *cfg.GameTalentData) { + gt, err := this.getTalentCfg() + if err != nil { + return + } + + data, _ = gt.GetDataMap()[id] + return +} + +func (this *configureComp) getCampLvCfg() (data *cfg.GameCampLv, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(gameCampLv); err != nil { + return + } else { + if data, ok = v.(*cfg.GameCampLv); !ok { + err = fmt.Errorf("%T is *cfg.GameCampLv", v) + return + } + } + return +} diff --git a/modules/reputation/model_reputation.go b/modules/reputation/model_reputation.go new file mode 100644 index 000000000..14ddcf557 --- /dev/null +++ b/modules/reputation/model_reputation.go @@ -0,0 +1,94 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/modules" + "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" + + "go.mongodb.org/mongo-driver/mongo" +) + +type ModelReputation struct { + modules.MCompModel + moduleReputation *Reputation + service core.IService +} + +func (this *ModelReputation) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + err = this.MCompModel.Init(service, module, comp, options) + this.TableName = comm.TableReputation + this.moduleReputation = module.(*Reputation) + this.service = service + return +} + +func(this *ModelReputation) initCamp(reputation *pb.DBReputation){ + if reputation!=nil && reputation.Camps == nil{ + reputation.Camps = make(map[int32]*pb.Camp) + + } +} + +// 获取玩家声望数据 +func (this *ModelReputation) getDBReputation(uid string) *pb.DBReputation { + reputation := &pb.DBReputation{} + if err := this.Get(uid, reputation); err != nil { + if err == mongo.ErrNoDocuments { + reputation.Uid = uid + reputation.Camps = make(map[int32]*pb.Camp) + if err2 := this.Add(uid, reputation); err2 == nil { + return reputation + } + } + this.moduleReputation.Error("getDBReputation", + log.Field{Key: "uid", Value: uid}, + log.Field{Key: "err", Value: err}) + } + return reputation +} + +// 更新声望数据 +func (this *ModelReputation) updateDBReputation(uid string, data map[string]interface{}) { + if err := this.Change(uid, data); err != nil { + this.moduleReputation.Error("updateDBReputation", + log.Field{Key: "uid", Value: uid}, + log.Field{Key: "err", Value: err}) + } +} + +// 阵营属性 +func (this *ModelReputation) computeAttr(attr *pb.CampAttr, cfgs []*cfg.Gameatr) *pb.CampAttr { + if attr == nil { + attr = &pb.CampAttr{} + } + for _, v := range cfgs { + switch v.A { + case comm.Hp: + attr.Hp += v.N + case comm.Atk: + attr.Attack += v.N + case comm.Def: + attr.Defense += v.N + case comm.HpPro: + attr.HpPer += v.N + } + } + return attr +} + +// 合计所有阵营的属性 +func (this *ModelReputation) mergeAttrs(camps map[int32]*pb.Camp) *pb.CampAttr { + totalAttr := &pb.CampAttr{} + for _, v := range camps { + if v.CampAttr != nil { + totalAttr.Hp += v.CampAttr.Hp + totalAttr.Attack += v.CampAttr.Attack + totalAttr.Defense += v.CampAttr.Defense + totalAttr.HpPer += v.CampAttr.HpPer + } + } + return totalAttr +} diff --git a/modules/reputation/module.go b/modules/reputation/module.go new file mode 100644 index 000000000..32eee42a6 --- /dev/null +++ b/modules/reputation/module.go @@ -0,0 +1,113 @@ +package reputation + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/base" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/modules" + cfg "go_dreamfactory/sys/configure/structs" +) + +var _ comm.IReputation = (*Reputation)(nil) + +type Reputation struct { + modules.ModuleBase + api *apiComp + service base.IRPCXService + configure *configureComp + modelReputation *ModelReputation +} + +func NewModule() core.IModule { + return &Reputation{} +} + +func (this *Reputation) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { + err = this.ModuleBase.Init(service, module, options) + this.service = service.(base.IRPCXService) + return +} + +func (this *Reputation) OnInstallComp() { + this.ModuleBase.OnInstallComp() + this.api = this.RegisterComp(new(apiComp)).(*apiComp) + this.configure = this.RegisterComp(new(configureComp)).(*configureComp) + this.modelReputation = this.RegisterComp(new(ModelReputation)).(*ModelReputation) +} + +func (this *Reputation) GetType() core.M_Modules { + return comm.ModuleReputation +} + +func (this *Reputation) Start() (err error) { + err = this.ModuleBase.Start() + + return +} + +// 获取阵营最大等级 +// raceType 阵营类型 +func (this *Reputation) getCampLvMax(raceType int32) (maxLv int32) { + campLvConf, err := this.configure.getCampLvCfg() + if err != nil { + return + } + arr := campLvConf.GetDataList() + n := len(arr) + if n > 0 { + maxLv = arr[n-1].ReputationLv + } else { + maxLv = -1 + } + return +} + +// 声望升级 +// raceType 阵营 fv 阵营好感度累计值 +func (this *Reputation) Upgrade(session comm.IUserSession, raceType int32, fv int32) (lv int32) { + uid := session.GetUserId() + reputation := this.modelReputation.getDBReputation(uid) + if reputation == nil { + return + } + + c, ok := reputation.Camps[raceType] + if !ok { + this.Error("阵营不存在", + log.Field{Key: "uid", Value: uid}, + log.Field{Key: "raceType", Value: raceType}) + return + } + + maxLv := this.getCampLvMax(raceType) + + if c.ReputationLv == maxLv { + this.Debug("已达到声望最大等级", + log.Field{Key: "uid", Value: uid}, + log.Field{Key: "maxLv", Value: c.ReputationLv}) + return c.ReputationLv + } + + campLvConf, err := this.configure.getCampLvCfg() + if err != nil { + return + } + + for _, conf := range campLvConf.GetDataList() { + if conf.RaceType == raceType && conf.ReputationLv == c.ReputationLv { + if fv >= conf.ReputationExp { + //更新等级 + c.ReputationLv = c.ReputationLv + 1 + update := map[string]interface{}{ + "camps": reputation.Camps, + } + this.modelReputation.updateDBReputation(uid, update) + //发放天赋点奖励 + this.DispenseRes(session, []*cfg.Gameatn{conf.Reward}, false) + break + } + } + } + return +} diff --git a/modules/timer/module.go b/modules/timer/module.go index be54b2341..fe1340958 100644 --- a/modules/timer/module.go +++ b/modules/timer/module.go @@ -6,6 +6,8 @@ import ( "go_dreamfactory/lego/core" "go_dreamfactory/lego/core/cbase" "go_dreamfactory/lego/sys/log" + "go_dreamfactory/sys/db" + "time" ) /* @@ -25,8 +27,9 @@ type Timer struct { service base.IRPCXService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口 chat *ChatComp //俩天系统定时任务 //season *SeasonPagoda - forum *ForumComp - arena *ArenaComp + forum *ForumComp + arena *ArenaComp + parkour *ParkourComp } //模块名 @@ -58,6 +61,29 @@ func (this *Timer) OnInstallComp() { this.chat = this.RegisterComp(new(ChatComp)).(*ChatComp) //this.season = this.RegisterComp(new(SeasonPagoda)).(*SeasonPagoda) this.arena = this.RegisterComp(new(ArenaComp)).(*ArenaComp) + this.parkour = this.RegisterComp(new(ParkourComp)).(*ParkourComp) +} + +//跨服对象获取数据操作对象 +func (this *Timer) getDBModelByUid(uid, tableName string) (model *db.DBModel, err error) { + var ( + stag string + conn *db.DBConn + ) + if stag, err = comm.UidToSTag(uid); err != nil { + return + } + if stag == this.service.GetTag() { + if conn, err = db.Local(); err != nil { + return + } + } else { + if conn, err = db.ServerDBConn(stag); err != nil { + return + } + } + model = db.NewDBModel(tableName, time.Hour, conn) + return } //日志 diff --git a/modules/timer/parkour.go b/modules/timer/parkour.go index 91bc463e2..3a479595a 100644 --- a/modules/timer/parkour.go +++ b/modules/timer/parkour.go @@ -12,6 +12,11 @@ import ( "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/cron" + "go_dreamfactory/lego/sys/log" + + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" ) /* @@ -21,6 +26,9 @@ type ParkourComp struct { modules.MCompConfigure service base.IRPCXService module *Timer + refresh time.Time //上一次刷新时间 + ulock sync.RWMutex + users []*pb.DBRaceMember //推荐用户信息 lock sync.RWMutex teams map[string][]*pb.DBRaceMember total int32 @@ -39,10 +47,54 @@ func (this *ParkourComp) Init(service core.IService, module core.IModule, comp c func (this *ParkourComp) Start() (err error) { err = this.MCompConfigure.Start() if db.IsCross() { + this.refreshlist() this.service.RegisterFunctionName(string(comm.RPC_ParkourJoinMatch), this.join) - if _, err = cron.AddFunc("0 59 23 ? * SAT", this.timer); err != nil { + this.service.RegisterFunctionName(string(comm.RPC_ParkourCancelMatch), this.cancel) + if _, err = cron.AddFunc("5 * * * * ?", this.timer); err != nil { this.module.Errorf("cron.AddFunc err:%v", err) } + if _, err = cron.AddFunc("1 1 * * * ?", this.refreshlist); err != nil { + this.module.Errorf("cron.AddFunc err:%v", err) + } + } + return +} + +//刷新推荐列表 +func (this *ParkourComp) refreshlist() { + var ( + c *mongo.Cursor + conn *db.DBConn + err error + ) + if conn, err = db.Local(); err != nil { + return + } + if c, err = conn.Mgo.Find(core.SqlTable(comm.TableParkour), bson.M{}, options.Find().SetSort(bson.D{{"integral", -1}}).SetSkip(0).SetLimit(100)); err != nil { + this.module.Errorln(err) + return + } else { + result := make([]*pb.DBParkour, 0, c.RemainingBatchLength()) + for c.Next(context.Background()) { + tmp := &pb.DBParkour{} + if err = c.Decode(tmp); err != nil { + log.Errorln(err) + } else { + result = append(result, tmp) + } + } + this.ulock.Lock() + this.users = this.users[:0] + for _, v := range result { + this.users = append(this.users, &pb.DBRaceMember{ + Uid: v.Uid, + Mount: v.Dfmount, + Hp: 6, + Isai: true, + }) + } + + this.ulock.Unlock() } return } @@ -135,7 +187,228 @@ func (this *ParkourComp) join(ctx context.Context, req *pb.RPCParkourJoinMatchRe return } +//加入匹配中 +func (this *ParkourComp) cancel(ctx context.Context, req *pb.RPCParkourCancelMatchReq, resp *pb.RPCParkourCancelMatchResp) (err error) { + this.lock.Lock() + delete(this.teams, req.Captainid) + this.lock.Unlock() + return +} + //定时匹配处理 func (this *ParkourComp) timer() { + if this.total == 0 { + return + } + this.ulock.RLock() + this.ulock.RUnlock() + this.lock.Lock() + defer this.lock.Unlock() + var ( + ok bool + err error + users []*pb.DBRaceMember + teams1 []string = make([]string, 0) + teams2 []string = make([]string, 0) + teams3 []string = make([]string, 0) + left int32 = this.total + red []string = make([]string, 0) + rednum int = 0 + reduser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0) + bule []string = make([]string, 0) + bulenum int = 0 + buleuser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0) + order bool = false + ) + for k, v := range this.teams { + if len(v) == 1 { + teams1 = append(teams1, k) + } else if len(v) == 2 { + teams2 = append(teams2, k) + } else { + teams3 = append(teams3, k) + } + } + this.ulock.Lock() + users = make([]*pb.DBRaceMember, 0, len(this.users)) + for _, v1 := range this.users { + ok = false + for _, v := range this.teams { + for _, v2 := range v { + if v1.Uid == v2.Uid { + ok = true + } + } + } + if !ok { //过滤掉已存在的人员 + users = append(users, v1) + } + } + this.ulock.Unlock() + if len(users)+int(this.total) < 6 { //人员不足 + return + } + + var fn = func() { + if order { + //找红队 + if rednum <= 0 && len(teams3) > 0 { + red = append(red, teams3[0]) + teams3 = teams3[1:] + rednum = 3 + left -= 3 + } else if rednum <= 1 && len(teams2) > 0 { + red = append(red, teams2[0]) + teams2 = teams2[1:] + rednum = 2 + left -= 2 + } else if rednum <= 2 && len(teams1) > 0 { + red = append(red, teams1[0]) + teams1 = teams1[1:] + rednum = 1 + left -= 1 + } + + //找蓝队 + if bulenum <= 0 && len(teams3) > 0 { + bule = append(bule, teams3[0]) + teams3 = teams3[1:] + bulenum = 3 + left -= 3 + } else if bulenum <= 1 && len(teams2) > 0 { + bule = append(bule, teams2[0]) + teams2 = teams2[1:] + bulenum = 2 + left -= 2 + } else if bulenum <= 2 && len(teams1) > 0 { + bule = append(bule, teams1[0]) + teams1 = teams1[1:] + bulenum = 1 + left -= 1 + } + } else { + //找蓝队 + if bulenum <= 0 && len(teams3) > 0 { + bule = append(bule, teams3[0]) + teams3 = teams3[1:] + bulenum = 3 + left -= 3 + } else if bulenum <= 1 && len(teams2) > 0 { + bule = append(bule, teams2[0]) + teams2 = teams2[1:] + bulenum = 2 + left -= 2 + } else if bulenum <= 2 && len(teams1) > 0 { + bule = append(bule, teams1[0]) + teams1 = teams1[1:] + bulenum = 1 + left -= 1 + } + //找红队 + if rednum <= 0 && len(teams3) > 0 { + red = append(red, teams3[0]) + teams3 = teams3[1:] + rednum = 3 + left -= 3 + } else if rednum <= 1 && len(teams2) > 0 { + red = append(red, teams2[0]) + teams2 = teams2[1:] + rednum = 2 + left -= 2 + } else if rednum <= 2 && len(teams1) > 0 { + red = append(red, teams1[0]) + teams1 = teams1[1:] + rednum = 1 + left -= 1 + } + + } + order = !order + } + fn() + if (rednum < 3 || bulenum < 3) && left > 0 { + _lt := left + fn() + if left < _lt { + fn() //做多执行三次即可 + } + } + for _, v := range red { + reduser = append(reduser, this.teams[v]...) + } + for _, v := range bule { + buleuser = append(reduser, this.teams[v]...) + } + + if len(users)+rednum+bulenum < 6 { + return + } + + //补充人员 + if len(reduser) < 3 { + reduser = append(reduser, users[0:(3-len(reduser))]...) + users = users[(3 - len(reduser)):] + for _, v := range reduser[rednum:3] { + if v.Name == "" { //同步用户数据 + if user, err := this.getuser(v.Uid); err != nil { + this.module.Errorln(err) + return + } else { + v.Name = user.Name + v.Avatar = user.Avatar + } + } + } + } + if len(buleuser) < 3 { + buleuser = append(buleuser, users[0:(3-len(buleuser))]...) + users = users[(3 - len(buleuser)):] + for _, v := range buleuser[bulenum:3] { + if v.Name == "" { //同步用户数据 + if user, err := this.getuser(v.Uid); err != nil { + this.module.Errorln(err) + return + } else { + v.Name = user.Name + v.Avatar = user.Avatar + } + } + } + } + + ctx, _ := context.WithTimeout(context.Background(), time.Second*2) + if err = this.service.RpcCall(ctx, + comm.Service_Worker, + string(comm.RPC_ParkourMatchSucc), + &pb.RPCParkourMatchSuccReq{Red: reduser, Bule: buleuser}, + &pb.RPCParkourMatchSuccResp{}, + ); err != nil { + this.module.Errorln(err) + return + } + + for _, v := range red { + delete(this.teams, v) + } + for _, v := range bule { + delete(this.teams, v) + } + this.total -= int32(rednum) + this.total -= int32(bulenum) +} + +// 从远程库查询用户 +func (this *ParkourComp) getuser(uid string) (user *pb.DBUser, err error) { + var ( + model *db.DBModel + ) + if model, err = this.module.getDBModelByUid(uid, comm.TableUser); err != nil { + return + } + user = &pb.DBUser{} + if err = model.Get(uid, user); err != nil { + this.module.Errorln(err) + } + return } diff --git a/modules/user/model_user.go b/modules/user/model_user.go index 48f667e8a..c15118d2a 100644 --- a/modules/user/model_user.go +++ b/modules/user/model_user.go @@ -42,6 +42,10 @@ func (this *ModelUser) Init(service core.IService, module core.IModule, comp cor this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ Keys: bsonx.Doc{{Key: "name", Value: bsonx.Int32(1)}}, }) + + this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ + Keys: bsonx.Doc{{Key: "logintime", Value: bsonx.Int32(1)}}, + }) return } diff --git a/modules/user/module.go b/modules/user/module.go index c920bcac8..33eb6e04c 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -353,6 +353,14 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int64) { return int64(userEx.FriendPoint) case comm.Moongold: return int64(user.Moongold) + case comm.Talent1: + return int64(user.Talent1) + case comm.Talent2: + return int64(user.Talent2) + case comm.Talent3: + return int64(user.Talent3) + case comm.Talent4: + return int64(user.Talent4) } return } @@ -488,6 +496,38 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha return } change.Ps += add + case comm.Talent1: + if add < 0 { + if user.Talent1+add < 0 { + code = pb.ErrorCode_UserTalent1NoEnough + return + } + } + change.Talent1 += add + case comm.Talent2: + if add < 0 { + if user.Talent2+add < 0 { + code = pb.ErrorCode_UserTalent2NoEnough + return + } + } + change.Talent2 += add + case comm.Talent3: + if add < 0 { + if user.Talent3+add < 0 { + code = pb.ErrorCode_UserTalent3NoEnough + return + } + } + change.Talent3 += add + case comm.Talent4: + if add < 0 { + if user.Talent4+add < 0 { + code = pb.ErrorCode_UserTalent4NoEnough + return + } + } + change.Talent4 += add default: err = errors.New(fmt.Sprintf("%s no supported", attr)) return @@ -502,6 +542,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha comm.StarCoin: change.Starcoin, comm.ResPs: change.Ps, comm.Moongold: change.Moongold, + comm.Talent1: change.Talent1, } //user ex diff --git a/modules/worldtask/api_completetask.go b/modules/worldtask/api_completetask.go index b4ab3fdff..dd339c9b0 100644 --- a/modules/worldtask/api_completetask.go +++ b/modules/worldtask/api_completetask.go @@ -41,6 +41,7 @@ func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskC return } + myWorldtask.Uid = uid wt := myWorldtask.CurrentTask[req.GroupId] if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil { iwt, ok := m.(comm.IRtask) @@ -77,5 +78,10 @@ func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskC session.SendMsg(string(this.module.GetType()), "completecondi", rsp) + //结束任务 + if curTaskConf.DeliverNpc == 0 { + this.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf) + this.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf) + } return } diff --git a/modules/worldtask/module.go b/modules/worldtask/module.go index f88021989..811293ce2 100644 --- a/modules/worldtask/module.go +++ b/modules/worldtask/module.go @@ -72,7 +72,7 @@ func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId in if v == condId { //校验任务是否是当前任务 if task, ok := userTask.CurrentTask[c.Group]; ok { - if task.NpcStatus == 1 && c.Key == task.TaskId{ + if task.NpcStatus == 1 && c.Key == task.TaskId { finishedTaskIds[c.Group] = c.Key groupId = c.Group taskId = c.Key @@ -141,81 +141,72 @@ func (this *Worldtask) GetMyWorldtask(uid string) *pb.DBWorldtask { return wt } -func (this *Worldtask) BingoAllTask(session comm.IUserSession) error { - // uid := session.GetUserId() - // mytask := &pb.DBWorldtask{Uid: uid} - - // tasklist := this.worldtaskConf.GetDataList() - - // for _, conf := range tasklist { - // //世界任务配置 - // wt := &pb.Worldtask{ - // TaskId: conf.Key, - // TaskType: conf.Des, - // } - // mytask.TaskList = append(mytask.TaskList, wt) - // } - - // if err := this.modelWorldtask.Add(uid, mytask); err != nil { - // return err - // } - - // rsp := &pb.WorldtaskFinishIdsPush{ - // TaskList: mytask.TaskList, - // } - - return nil //session.SendMsg(string(this.GetType()), "finishids", rsp) -} - // bingo世界任务跳跃 支持回退 func (this *Worldtask) BingoJumpTask(session comm.IUserSession, groupId, taskId int32) error { - // uid := session.GetUserId() - // mytask, err := this.modelWorldtask.getWorldtask(uid) - // if err != nil { - // return err - // } - // mytask.Uid = uid - // // 更新数据 - // update := map[string]interface{}{} + uid := session.GetUserId() - // taskConf := this.worldtaskConf.GetDataMap()[taskId] - // if taskConf == nil { - // return fmt.Errorf("taskId: %v config is nil", taskId) - // } + mytask, err := this.modelWorldtask.getWorldtask(uid) + if err != nil { + return err + } - // //重置taskList - // mytask.TaskList = []*pb.Worldtask{} + if mytask == nil { + mytask = &pb.DBWorldtask{} + mytask.Uid = uid + if err := this.modelWorldtask.Add(uid, mytask); err != nil { + this.Error("添加世界任务失败", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err}) + return err + } + } - // //遍历 - // if taskConf.Ontxe != 0 && taskConf.IdAfter != 0 { - // for _, v := range this.worldtaskConf.GetDataList() { - // if v.Group == groupId && v.Key <= taskId { - // wt := &pb.Worldtask{ - // TaskId: v.Key, - // TaskType: v.Des, - // } - // mytask.TaskList = append(mytask.TaskList, wt) - // } + if _, ok := utils.Findx(mytask.TaskList, taskId); ok { + this.Error("GM 任务已完成", log.Field{Key: "taskId", Value: taskId}) + return comm.NewCustomError(pb.ErrorCode_WorldtaskFinihed) + } - // } - // } else { - // wt := &pb.Worldtask{ - // TaskId: taskId, - // TaskType: taskConf.Des, - // } - // mytask.TaskList = append(mytask.TaskList, wt) - // } - // update = map[string]interface{}{ - // "taskList": mytask.TaskList, - // } + taskConf := this.worldtaskConf.GetDataMap()[taskId] + if taskConf == nil { + return comm.NewCustomError(pb.ErrorCode_ConfigNoFound) + } - // if err := this.modelWorldtask.Change(uid, update); err != nil { - // return err - // } + //重置taskList + mytask.TaskList = []int32{} - // rsp := &pb.WorldtaskFinishIdsPush{ - // TaskList: mytask.TaskList, - // } + //遍历 + if taskConf.Ontxe != 0 && taskConf.IdAfter != 0 { + for _, v := range this.worldtaskConf.GetDataList() { + if v.Group == groupId && v.Key <= taskId && v.Des == 2 { //只做主线的des=2 + mytask.TaskList = append(mytask.TaskList, v.Key) + } + } + } else { + mytask.TaskList = append(mytask.TaskList, taskId) + } - return nil //session.SendMsg(string(this.GetType()), "finishids", rsp) + update := map[string]interface{}{ + "taskList": mytask.TaskList, + } + + //当前任务 + nextTaskIds := this.modelWorldtask.findNextTasks(taskId) + + if mytask.CurrentTask == nil { + mytask.CurrentTask = make(map[int32]*pb.Worldtask) + } + + if len(nextTaskIds) == 1 { + mytask.CurrentTask[groupId] = &pb.Worldtask{ + TaskId: nextTaskIds[0], + TaskType: 2, //设置主线类型 + } + update["currentTask"] = mytask.CurrentTask + } + + if err := this.modelWorldtask.Change(uid, update); err != nil { + return err + } + + rsp := &pb.WorldtaskFinishIdsPush{} + + return session.SendMsg(string(this.GetType()), "finishids", rsp) } diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index 318787427..dcce3f80c 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -77,6 +77,10 @@ const ( ErrorCode_UserSign ErrorCode = 1022 //签到状态不对 ErrorCode_OpenCondErr ErrorCode = 1023 //功能开启条件未达到 ErrorCode_OpenCondActivate ErrorCode = 1024 //功能开启条件已激活 + ErrorCode_UserTalent1NoEnough ErrorCode = 1025 //阵营1天赋点 + ErrorCode_UserTalent2NoEnough ErrorCode = 1026 //阵营2天赋点 + ErrorCode_UserTalent3NoEnough ErrorCode = 1027 //阵营3天赋点 + ErrorCode_UserTalent4NoEnough ErrorCode = 1028 //阵营4天赋点 // friend ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己 ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量 @@ -366,8 +370,12 @@ const ( ErrorCode_PracticeYouQiecuoing ErrorCode = 4305 //你有切磋未完成 ErrorCode_PracticeTargetQiecuoing ErrorCode = 4306 //目标正在切磋中 //parkour - ErrorCode_ParkourMemberFull ErrorCode = 4401 //队伍成员已满 - ErrorCode_ParkourInviteOverdue ErrorCode = 4402 //邀请已过期 + ErrorCode_ParkourMemberFull ErrorCode = 4401 //队伍成员已满 + ErrorCode_ParkourInviteOverdue ErrorCode = 4402 //邀请已过期 + ErrorCode_ParkourInviteNoPermissions ErrorCode = 4403 //无权邀请 + ErrorCode_ParkourTargetTeamed ErrorCode = 4404 //目标已组队 + //reputation + ErrorCode_ReputationTalentFull ErrorCode = 4501 //天赋满级 ) // Enum value maps for ErrorCode. @@ -425,6 +433,10 @@ var ( 1022: "UserSign", 1023: "OpenCondErr", 1024: "OpenCondActivate", + 1025: "UserTalent1NoEnough", + 1026: "UserTalent2NoEnough", + 1027: "UserTalent3NoEnough", + 1028: "UserTalent4NoEnough", 1100: "FriendNotSelf", 1101: "FriendSelfMax", 1102: "FriendTargetMax", @@ -683,6 +695,9 @@ var ( 4306: "PracticeTargetQiecuoing", 4401: "ParkourMemberFull", 4402: "ParkourInviteOverdue", + 4403: "ParkourInviteNoPermissions", + 4404: "ParkourTargetTeamed", + 4501: "ReputationTalentFull", } ErrorCode_value = map[string]int32{ "Success": 0, @@ -737,6 +752,10 @@ var ( "UserSign": 1022, "OpenCondErr": 1023, "OpenCondActivate": 1024, + "UserTalent1NoEnough": 1025, + "UserTalent2NoEnough": 1026, + "UserTalent3NoEnough": 1027, + "UserTalent4NoEnough": 1028, "FriendNotSelf": 1100, "FriendSelfMax": 1101, "FriendTargetMax": 1102, @@ -995,6 +1014,9 @@ var ( "PracticeTargetQiecuoing": 4306, "ParkourMemberFull": 4401, "ParkourInviteOverdue": 4402, + "ParkourInviteNoPermissions": 4403, + "ParkourTargetTeamed": 4404, + "ReputationTalentFull": 4501, } ) @@ -1029,7 +1051,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0xc2, 0x38, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xa8, 0x38, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, @@ -1095,163 +1117,171 @@ var file_errorcode_proto_rawDesc = []byte{ 0x08, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xfe, 0x07, 0x12, 0x10, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x10, 0xff, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x10, 0x80, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, - 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, - 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, - 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, - 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, - 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, - 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, - 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, - 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, - 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, - 0x12, 0x18, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, - 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0xdd, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x10, 0xde, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, - 0xdf, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, - 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xe0, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6b, - 0x10, 0xe1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x63, - 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xe2, 0x08, 0x12, 0x12, - 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, - 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, - 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19, 0x0a, 0x14, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5, 0x09, 0x12, - 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x75, 0x79, 0x50, 0x73, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xb6, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, - 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, - 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, - 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, - 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, - 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, - 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, - 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, - 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, - 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, - 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, - 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, - 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, - 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, - 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, - 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, - 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, - 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, - 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, - 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, - 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, - 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, - 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, - 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, - 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xac, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, - 0x65, 0x72, 0x6f, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xad, 0x0a, - 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x10, 0xae, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x10, 0xf9, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x73, 0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, - 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, - 0xfb, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x53, - 0x75, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xfc, 0x0a, 0x12, - 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, - 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, - 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, - 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, - 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x14, - 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x10, 0xe2, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, - 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, - 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, - 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, - 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, - 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, - 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, - 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, - 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, - 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, - 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, - 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, - 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, - 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, - 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, - 0x10, 0xf0, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, - 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, - 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, - 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, - 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, - 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, - 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x1a, 0x0a, - 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, - 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd4, 0x0f, 0x12, 0x1d, 0x0a, 0x18, 0x4d, 0x61, 0x72, - 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4e, 0x6f, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xd5, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, - 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, - 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, - 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, - 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, - 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, - 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, - 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, - 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, - 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, - 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, + 0x74, 0x65, 0x10, 0x80, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x31, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x81, 0x08, 0x12, + 0x18, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x4e, 0x6f, + 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x82, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, + 0x10, 0x83, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x6c, 0x65, 0x6e, + 0x74, 0x34, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x84, 0x08, 0x12, 0x12, 0x0a, + 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, + 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, + 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, + 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, + 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, + 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, + 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, + 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, + 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, + 0xdd, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, + 0x75, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x10, 0xde, 0x08, 0x12, 0x1a, + 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x4e, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xdf, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xe0, 0x08, + 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6b, 0x10, 0xe1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, + 0x75, 0x67, 0x68, 0x10, 0xe2, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, + 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, + 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, + 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, + 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, + 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, + 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x42, 0x75, 0x79, 0x50, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, + 0xb6, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, + 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, + 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, + 0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, + 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, + 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, + 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, + 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, + 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, + 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, + 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, + 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, + 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, + 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, + 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, + 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, + 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, + 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, + 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, + 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, + 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, + 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, + 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, + 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, + 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, + 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x10, 0xac, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x76, 0x4e, 0x6f, 0x45, + 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xad, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, + 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0xae, 0x0a, 0x12, 0x1e, 0x0a, + 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, + 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, + 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xfc, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, + 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, + 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, + 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, 0x61, 0x72, 0x10, 0xe2, 0x0b, 0x12, + 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, + 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, + 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, + 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, + 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, + 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, + 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, + 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, + 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, + 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, + 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, + 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, + 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, + 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, + 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, + 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x61, 0x67, 0x6f, + 0x64, 0x61, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xf0, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, + 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd4, + 0x0f, 0x12, 0x1d, 0x0a, 0x18, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, + 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4e, 0x6f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xd5, 0x0f, + 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, + 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, + 0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, + 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, + 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, + 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, + 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, + 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, + 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, + 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, + 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, + 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, + 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, + 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, + 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, @@ -1299,190 +1329,188 @@ var file_errorcode_proto_rawDesc = []byte{ 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xf6, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x10, 0xf7, 0x15, 0x12, 0x18, 0x0a, 0x13, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, - 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xf8, 0x15, 0x12, 0x1b, - 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xd6, 0x16, 0x12, 0x17, 0x0a, - 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x10, 0xd7, 0x16, 0x12, 0x16, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd8, 0x16, 0x12, 0x12, - 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x10, - 0xd9, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x70, 0x73, - 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, - 0xda, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x4b, 0x65, - 0x65, 0x70, 0x10, 0xdb, 0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, - 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, - 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xba, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, - 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, - 0x68, 0x74, 0x10, 0xbc, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x4e, 0x6f, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xbd, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, - 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, - 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x67, 0x72, 0x65, - 0x65, 0x10, 0xc0, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, - 0x65, 0x66, 0x75, 0x73, 0x65, 0x10, 0xc1, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0xc2, 0x17, 0x12, - 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x4e, 0x6f, 0x44, 0x69, 0x73, 0x73, 0x10, 0xc3, 0x17, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xc4, - 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x10, 0xc5, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x75, 0x73, 0x65, 0x10, 0xc6, 0x17, 0x12, 0x10, 0x0a, 0x0b, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xc7, 0x17, 0x12, 0x12, - 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, - 0xc8, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc9, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xca, 0x17, 0x12, 0x17, 0x0a, - 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x10, 0xcb, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x10, 0xcc, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xcd, 0x17, - 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xce, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xcf, - 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, - 0x6e, 0x67, 0x54, 0x6f, 0x10, 0xd1, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x10, 0xd2, 0x17, 0x12, 0x1a, 0x0a, 0x15, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, - 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd3, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0xd4, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, - 0xd5, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, - 0x74, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xd6, 0x17, 0x12, - 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x64, 0x10, 0xd7, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xd8, 0x17, 0x12, 0x19, 0x0a, - 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0xd9, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0xda, 0x17, 0x12, 0x17, - 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, - 0x68, 0x10, 0xdc, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4e, 0x6f, 0x69, 0x6e, 0x69, 0x74, 0x10, 0xdd, 0x17, 0x12, 0x15, - 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, - 0x6e, 0x64, 0x10, 0xde, 0x17, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, - 0x54, 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xdf, 0x17, 0x12, 0x17, 0x0a, - 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0xe0, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, - 0xe1, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xe2, 0x17, 0x12, 0x15, 0x0a, 0x10, - 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, - 0x10, 0x9d, 0x18, 0x12, 0x19, 0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, - 0x0a, 0x12, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, - 0x49, 0x6e, 0x43, 0x64, 0x10, 0x9f, 0x18, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, - 0x12, 0x0a, 0x0d, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x10, 0x82, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, - 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, - 0x0a, 0x10, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x10, 0x84, 0x19, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, - 0x79, 0x4d, 0x61, 0x78, 0x10, 0xe5, 0x19, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, - 0x53, 0x65, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x10, 0xe6, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, - 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0xe7, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, - 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe8, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, - 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x10, 0xe9, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x4e, 0x6f, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12, - 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, - 0x43, 0x44, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0xad, 0x1b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, - 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56, - 0x69, 0x70, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c, - 0x56, 0x69, 0x70, 0x47, 0x69, 0x66, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12, - 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, - 0xb1, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77, - 0x74, 0x61, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, - 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, - 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, - 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, - 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, - 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, - 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, - 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, - 0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, - 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, - 0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, - 0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, - 0x12, 0x1b, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x4e, 0x6f, 0x73, 0x61, 0x6d, 0x65, 0x10, 0xdf, 0x1d, 0x12, 0x1f, 0x0a, - 0x1a, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xe0, 0x1d, 0x12, 0x1d, - 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xe1, 0x1d, 0x12, 0x17, 0x0a, - 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x10, 0xe2, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, - 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, - 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x65, 0x6c, 0x10, 0x85, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x10, 0x86, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, - 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x87, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x10, 0x88, 0x20, 0x12, 0x20, 0x0a, 0x1b, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x70, 0x4e, 0x6f, 0x45, 0x6e, - 0x6f, 0x75, 0x67, 0x68, 0x10, 0x89, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x79, 0x4d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, - 0x8a, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x61, 0x63, 0x6b, - 0x4c, 0x61, 0x76, 0x61, 0x10, 0x8b, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x8c, 0x20, 0x12, 0x16, - 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4c, 0x61, 0x63, - 0x6b, 0x4c, 0x76, 0x10, 0x8d, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x8e, - 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x8f, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x74, 0x6c, 0x61, 0x73, - 0x10, 0x90, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x10, 0x91, 0x20, 0x12, - 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, - 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0x94, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x10, 0xe9, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x46, 0x72, 0x65, 0x65, 0x10, 0xea, 0x20, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x69, - 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, - 0x6f, 0x75, 0x67, 0x68, 0x10, 0xeb, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, - 0xec, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xed, 0x20, 0x12, 0x17, 0x0a, 0x12, - 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4d, - 0x61, 0x78, 0x10, 0xee, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xef, 0x20, 0x12, 0x19, - 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf0, 0x20, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xcd, - 0x21, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, - 0x74, 0x10, 0xce, 0x21, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x10, 0xcf, 0x21, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, - 0x61, 0x72, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xd0, 0x21, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x59, 0x6f, 0x75, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, - 0x6e, 0x67, 0x10, 0xd1, 0x21, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, - 0x10, 0xd2, 0x21, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0xb1, 0x22, 0x12, 0x19, 0x0a, 0x14, 0x50, - 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x64, 0x75, 0x65, 0x10, 0xb2, 0x22, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x10, 0xf7, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, + 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, + 0x10, 0xd6, 0x16, 0x12, 0x17, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd7, 0x16, 0x12, 0x16, 0x0a, 0x11, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x10, 0xd8, 0x16, 0x12, 0x12, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x4f, 0x66, 0x66, 0x10, 0xd9, 0x16, 0x12, 0x1e, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x43, 0x61, 0x70, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xda, 0x16, 0x12, 0x11, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x4e, 0x6f, 0x4b, 0x65, 0x65, 0x70, 0x10, 0xdb, 0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17, + 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, + 0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xba, 0x17, + 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0xbc, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xbd, 0x17, + 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, + 0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, + 0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 0x10, 0xc0, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x10, 0xc1, 0x17, 0x12, 0x15, + 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x10, 0xc2, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x44, 0x69, 0x73, 0x73, 0x10, 0xc3, 0x17, 0x12, + 0x16, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xc4, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xc5, 0x17, 0x12, 0x14, 0x0a, 0x0f, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x75, 0x73, 0x65, 0x10, + 0xc6, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x10, 0xc7, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xc8, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc9, 0x17, 0x12, 0x14, 0x0a, + 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x78, + 0x10, 0xca, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, + 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xcb, 0x17, 0x12, 0x1c, 0x0a, 0x17, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xcc, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0xcd, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xce, + 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x10, 0xcf, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x6f, 0x10, 0xd1, 0x17, 0x12, 0x13, 0x0a, + 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x10, + 0xd2, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, + 0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd3, 0x17, 0x12, 0x1a, + 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd4, 0x17, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x45, + 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd5, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, 0x74, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x10, 0xd6, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, + 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0xd7, 0x17, 0x12, 0x15, 0x0a, 0x10, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x10, 0xd8, 0x17, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, + 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0xd9, 0x17, 0x12, 0x14, + 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x10, 0xda, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, + 0x6f, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x17, 0x12, 0x1b, 0x0a, + 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4e, + 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xdc, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4e, 0x6f, 0x69, 0x6e, 0x69, + 0x74, 0x10, 0xdd, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x64, 0x10, 0xde, 0x17, 0x12, 0x16, 0x0a, 0x11, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x10, 0xdf, 0x17, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, + 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe0, 0x17, 0x12, 0x1a, 0x0a, 0x15, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xe1, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0xe2, 0x17, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, 0x10, 0x9d, 0x18, 0x12, 0x19, 0x0a, 0x14, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, + 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, 0x49, 0x6e, 0x43, 0x64, 0x10, 0x9f, 0x18, 0x12, 0x16, 0x0a, + 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x4c, 0x65, 0x61, + 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, + 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0x82, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x84, 0x19, 0x12, 0x10, 0x0a, 0x0b, 0x54, + 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xe5, 0x19, 0x12, 0x11, 0x0a, + 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x10, 0xe6, 0x19, + 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x6c, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe7, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, + 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe8, 0x19, + 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, + 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, + 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x43, 0x44, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, + 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xad, 0x1b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, + 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56, 0x69, 0x70, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x47, 0x69, 0x66, 0x74, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x42, 0x75, 0x79, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, 0xb1, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, + 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, + 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, + 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, + 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, + 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, + 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, + 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, + 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, + 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, + 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, + 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1b, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, + 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4e, 0x6f, 0x73, 0x61, 0x6d, 0x65, + 0x10, 0xdf, 0x1d, 0x12, 0x1f, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, + 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x10, 0xe0, 0x1d, 0x12, 0x1d, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, + 0x6b, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0xe1, 0x1d, 0x12, 0x17, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, + 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x10, 0xe2, 0x1d, 0x12, 0x1e, 0x0a, 0x19, + 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, + 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x12, 0x11, 0x0a, + 0x0c, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x65, 0x6c, 0x10, 0x85, 0x20, + 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x54, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x86, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x87, + 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x88, 0x20, 0x12, 0x20, 0x0a, 0x1b, 0x53, + 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x45, 0x71, 0x75, + 0x69, 0x70, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x89, 0x20, 0x12, 0x19, 0x0a, + 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x8a, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x79, 0x4c, 0x61, 0x63, 0x6b, 0x4c, 0x61, 0x76, 0x61, 0x10, 0x8b, 0x20, 0x12, 0x15, 0x0a, + 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x4c, + 0x76, 0x10, 0x8c, 0x20, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x41, 0x74, + 0x6c, 0x61, 0x73, 0x4c, 0x61, 0x63, 0x6b, 0x4c, 0x76, 0x10, 0x8d, 0x20, 0x12, 0x19, 0x0a, 0x14, + 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x10, 0x8e, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, + 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x8f, 0x20, + 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x41, 0x74, 0x6c, 0x61, 0x73, 0x10, 0x90, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x53, 0x6d, 0x69, + 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x74, 0x6c, + 0x61, 0x73, 0x10, 0x91, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, + 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20, 0x12, + 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, + 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x41, 0x74, 0x6c, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0x94, 0x20, 0x12, + 0x1a, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, + 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xe9, 0x20, 0x12, 0x13, 0x0a, 0x0e, 0x44, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x46, 0x72, 0x65, 0x65, 0x10, 0xea, 0x20, + 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xeb, 0x20, 0x12, 0x19, 0x0a, + 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xec, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, + 0xed, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x4d, 0x61, 0x78, 0x10, 0xee, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x44, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x10, 0xef, 0x20, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, + 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf0, 0x20, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, + 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xcd, 0x21, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x10, 0xce, 0x21, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x4f, 0x75, 0x74, 0x10, 0xcf, 0x21, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xd0, 0x21, + 0x12, 0x19, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x59, 0x6f, 0x75, 0x51, + 0x69, 0x65, 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xd1, 0x21, 0x12, 0x1c, 0x0a, 0x17, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x69, 0x65, + 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xd2, 0x21, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0xb1, + 0x22, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x64, 0x75, 0x65, 0x10, 0xb2, 0x22, 0x42, 0x06, 0x5a, 0x04, + 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/parkour_db.pb.go b/pb/parkour_db.pb.go index 3506a730a..ba17532d7 100644 --- a/pb/parkour_db.pb.go +++ b/pb/parkour_db.pb.go @@ -70,22 +70,25 @@ func (RaceType) EnumDescriptor() ([]byte, []int) { type RaceTeamState int32 const ( - RaceTeamState_teaming RaceTeamState = 0 //组队中 - RaceTeamState_matching RaceTeamState = 1 //匹配中 - RaceTeamState_raceing RaceTeamState = 2 //比赛中 + RaceTeamState_resting RaceTeamState = 0 //休息中 + RaceTeamState_teaming RaceTeamState = 1 //组队中 + RaceTeamState_matching RaceTeamState = 2 //匹配中 + RaceTeamState_raceing RaceTeamState = 3 //比赛中 ) // Enum value maps for RaceTeamState. var ( RaceTeamState_name = map[int32]string{ - 0: "teaming", - 1: "matching", - 2: "raceing", + 0: "resting", + 1: "teaming", + 2: "matching", + 3: "raceing", } RaceTeamState_value = map[string]int32{ - "teaming": 0, - "matching": 1, - "raceing": 2, + "resting": 0, + "teaming": 1, + "matching": 2, + "raceing": 3, } ) @@ -124,12 +127,14 @@ type DBRaceMember struct { Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称 - Mount string `protobuf:"bytes,3,opt,name=mount,proto3" json:"mount"` //上阵坐骑 - Hp int32 `protobuf:"varint,4,opt,name=hp,proto3" json:"hp"` //初始血量 - Innermost int32 `protobuf:"varint,5,opt,name=innermost,proto3" json:"innermost"` //里程数 - Ready bool `protobuf:"varint,6,opt,name=ready,proto3" json:"ready"` //是否准备 - Isai bool `protobuf:"varint,7,opt,name=isai,proto3" json:"isai"` //是否是ai - Isoff bool `protobuf:"varint,8,opt,name=isoff,proto3" json:"isoff"` //是否离线 + Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar"` //用户头像 + Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv"` //等级 + Mount string `protobuf:"bytes,5,opt,name=mount,proto3" json:"mount"` //上阵坐骑 + Hp int32 `protobuf:"varint,6,opt,name=hp,proto3" json:"hp"` //初始血量 + Innermost int32 `protobuf:"varint,7,opt,name=innermost,proto3" json:"innermost"` //里程数 + Ready bool `protobuf:"varint,8,opt,name=ready,proto3" json:"ready"` //是否准备 + Isai bool `protobuf:"varint,9,opt,name=isai,proto3" json:"isai"` //是否是ai + Isoff bool `protobuf:"varint,10,opt,name=isoff,proto3" json:"isoff"` //是否离线 } func (x *DBRaceMember) Reset() { @@ -178,6 +183,20 @@ func (x *DBRaceMember) GetName() string { return "" } +func (x *DBRaceMember) GetAvatar() string { + if x != nil { + return x.Avatar + } + return "" +} + +func (x *DBRaceMember) GetLv() int32 { + if x != nil { + return x.Lv + } + return 0 +} + func (x *DBRaceMember) GetMount() string { if x != nil { return x.Mount @@ -227,7 +246,9 @@ type DBRaceInvite struct { Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称 - Expired int64 `protobuf:"varint,3,opt,name=expired,proto3" json:"expired"` //过期时间 + Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar"` //用户头像 + Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv"` //等级 + Expired int64 `protobuf:"varint,5,opt,name=expired,proto3" json:"expired"` //过期时间 } func (x *DBRaceInvite) Reset() { @@ -276,6 +297,20 @@ func (x *DBRaceInvite) GetName() string { return "" } +func (x *DBRaceInvite) GetAvatar() string { + if x != nil { + return x.Avatar + } + return "" +} + +func (x *DBRaceInvite) GetLv() int32 { + if x != nil { + return x.Lv + } + return 0 +} + func (x *DBRaceInvite) GetExpired() int64 { if x != nil { return x.Expired @@ -289,13 +324,16 @@ type DBParkour struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 队伍id - Mounts map[string]int32 `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑列表 - Dfmount string `protobuf:"bytes,3,opt,name=dfmount,proto3" json:"dfmount"` //默认坐骑 - State RaceTeamState `protobuf:"varint,4,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态 - Captainid string `protobuf:"bytes,5,opt,name=captainid,proto3" json:"captainid"` //队长id - Invite []*DBRaceInvite `protobuf:"bytes,6,rep,name=invite,proto3" json:"invite"` //邀请列表 - Member []*DBRaceMember `protobuf:"bytes,7,rep,name=member,proto3" json:"member"` //成员列表 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 队伍id + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //用户id + Mounts map[string]int32 `protobuf:"bytes,3,rep,name=mounts,proto3" json:"mounts" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑列表 + Dfmount string `protobuf:"bytes,4,opt,name=dfmount,proto3" json:"dfmount"` //默认坐骑 + State RaceTeamState `protobuf:"varint,5,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态 + Currbattid string `protobuf:"bytes,6,opt,name=currbattid,proto3" json:"currbattid"` //当前战斗id + Integral int32 `protobuf:"varint,7,opt,name=integral,proto3" json:"integral"` //积分 + Captainid string `protobuf:"bytes,8,opt,name=captainid,proto3" json:"captainid"` //队长id 当前所在队伍 + Invite []*DBRaceInvite `protobuf:"bytes,9,rep,name=invite,proto3" json:"invite"` //邀请列表 + Member []*DBRaceMember `protobuf:"bytes,10,rep,name=member,proto3" json:"member"` //成员列表 } func (x *DBParkour) Reset() { @@ -337,6 +375,13 @@ func (x *DBParkour) GetId() string { return "" } +func (x *DBParkour) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + func (x *DBParkour) GetMounts() map[string]int32 { if x != nil { return x.Mounts @@ -355,7 +400,21 @@ func (x *DBParkour) GetState() RaceTeamState { if x != nil { return x.State } - return RaceTeamState_teaming + return RaceTeamState_resting +} + +func (x *DBParkour) GetCurrbattid() string { + if x != nil { + return x.Currbattid + } + return "" +} + +func (x *DBParkour) GetIntegral() int32 { + if x != nil { + return x.Integral + } + return 0 } func (x *DBParkour) GetCaptainid() string { @@ -479,65 +538,76 @@ var File_parkour_parkour_db_proto protoreflect.FileDescriptor var file_parkour_parkour_db_proto_rawDesc = []byte{ 0x0a, 0x18, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, - 0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x44, + 0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe0, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 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, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, - 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x69, - 0x73, 0x61, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x69, 0x73, 0x6f, 0x66, 0x66, 0x22, 0x4e, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x18, 0x0a, 0x07, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0xb2, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x61, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x22, 0x76, 0x0a, + 0x0c, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, + 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x80, 0x03, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x52, - 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, - 0x64, 0x12, 0x25, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, - 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x1a, - 0x39, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 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, 0xef, 0x01, 0x0a, 0x06, 0x44, - 0x42, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, - 0x6b, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, - 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, - 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, + 0x72, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, + 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x62, 0x61, 0x74, + 0x74, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x62, + 0x61, 0x74, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, + 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x12, + 0x25, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x06, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x39, 0x0a, + 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 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, 0xef, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x52, + 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x2b, + 0x0a, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2a, 0x22, 0x0a, 0x08, - 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x10, 0x01, - 0x2a, 0x37, 0x0a, 0x0d, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x72, 0x61, 0x63, 0x65, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0a, 0x62, + 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, + 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2a, 0x22, 0x0a, 0x08, 0x52, 0x61, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x10, 0x01, 0x2a, 0x44, + 0x0a, 0x0d, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x61, 0x63, 0x65, 0x69, + 0x6e, 0x67, 0x10, 0x03, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/parkour_msg.pb.go b/pb/parkour_msg.pb.go index 46d43ac37..17393fef5 100644 --- a/pb/parkour_msg.pb.go +++ b/pb/parkour_msg.pb.go @@ -20,7 +20,214 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -//推送捕羊大赛用户信息改变 +//请求比赛信息 +type ParkourInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ParkourInfoReq) Reset() { + *x = ParkourInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourInfoReq) ProtoMessage() {} + +func (x *ParkourInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourInfoReq.ProtoReflect.Descriptor instead. +func (*ParkourInfoReq) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{0} +} + +//请求比赛信息请求 +type ParkourInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Isopen bool `protobuf:"varint,1,opt,name=isopen,proto3" json:"isopen"` //当前赛事是否开启 + Info *DBParkour `protobuf:"bytes,2,opt,name=info,proto3" json:"info"` + Recommend []*DBRaceMember `protobuf:"bytes,3,rep,name=recommend,proto3" json:"recommend"` +} + +func (x *ParkourInfoResp) Reset() { + *x = ParkourInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourInfoResp) ProtoMessage() {} + +func (x *ParkourInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourInfoResp.ProtoReflect.Descriptor instead. +func (*ParkourInfoResp) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{1} +} + +func (x *ParkourInfoResp) GetIsopen() bool { + if x != nil { + return x.Isopen + } + return false +} + +func (x *ParkourInfoResp) GetInfo() *DBParkour { + if x != nil { + return x.Info + } + return nil +} + +func (x *ParkourInfoResp) GetRecommend() []*DBRaceMember { + if x != nil { + return x.Recommend + } + return nil +} + +//变更坐骑请求 +type ParkourChangeMtsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mtsid string `protobuf:"bytes,1,opt,name=mtsid,proto3" json:"mtsid"` +} + +func (x *ParkourChangeMtsReq) Reset() { + *x = ParkourChangeMtsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourChangeMtsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourChangeMtsReq) ProtoMessage() {} + +func (x *ParkourChangeMtsReq) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourChangeMtsReq.ProtoReflect.Descriptor instead. +func (*ParkourChangeMtsReq) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{2} +} + +func (x *ParkourChangeMtsReq) GetMtsid() string { + if x != nil { + return x.Mtsid + } + return "" +} + +//变更坐骑请求 +type ParkourChangeMtsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"` + Mtsid string `protobuf:"bytes,2,opt,name=mtsid,proto3" json:"mtsid"` +} + +func (x *ParkourChangeMtsResp) Reset() { + *x = ParkourChangeMtsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourChangeMtsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourChangeMtsResp) ProtoMessage() {} + +func (x *ParkourChangeMtsResp) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourChangeMtsResp.ProtoReflect.Descriptor instead. +func (*ParkourChangeMtsResp) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{3} +} + +func (x *ParkourChangeMtsResp) GetIssucc() bool { + if x != nil { + return x.Issucc + } + return false +} + +func (x *ParkourChangeMtsResp) GetMtsid() string { + if x != nil { + return x.Mtsid + } + return "" +} + +// //推送捕羊大赛用户信息改变 type ParkourInfoChangePush struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -32,7 +239,7 @@ type ParkourInfoChangePush struct { func (x *ParkourInfoChangePush) Reset() { *x = ParkourInfoChangePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[0] + mi := &file_parkour_parkour_msg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +252,7 @@ func (x *ParkourInfoChangePush) String() string { func (*ParkourInfoChangePush) ProtoMessage() {} func (x *ParkourInfoChangePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[0] + mi := &file_parkour_parkour_msg_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +265,7 @@ func (x *ParkourInfoChangePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInfoChangePush.ProtoReflect.Descriptor instead. func (*ParkourInfoChangePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{0} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{4} } func (x *ParkourInfoChangePush) GetInfo() *DBParkour { @@ -80,7 +287,7 @@ type ParkourInviteReq struct { func (x *ParkourInviteReq) Reset() { *x = ParkourInviteReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[1] + mi := &file_parkour_parkour_msg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +300,7 @@ func (x *ParkourInviteReq) String() string { func (*ParkourInviteReq) ProtoMessage() {} func (x *ParkourInviteReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[1] + mi := &file_parkour_parkour_msg_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +313,7 @@ func (x *ParkourInviteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInviteReq.ProtoReflect.Descriptor instead. func (*ParkourInviteReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{1} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{5} } func (x *ParkourInviteReq) GetUid() string { @@ -129,7 +336,7 @@ type ParkourInviteResp struct { func (x *ParkourInviteResp) Reset() { *x = ParkourInviteResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[2] + mi := &file_parkour_parkour_msg_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -142,7 +349,7 @@ func (x *ParkourInviteResp) String() string { func (*ParkourInviteResp) ProtoMessage() {} func (x *ParkourInviteResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[2] + mi := &file_parkour_parkour_msg_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -155,7 +362,7 @@ func (x *ParkourInviteResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInviteResp.ProtoReflect.Descriptor instead. func (*ParkourInviteResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{2} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{6} } func (x *ParkourInviteResp) GetIssucc() bool { @@ -185,7 +392,7 @@ type ParkourInviteNoticePush struct { func (x *ParkourInviteNoticePush) Reset() { *x = ParkourInviteNoticePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[3] + mi := &file_parkour_parkour_msg_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -198,7 +405,7 @@ func (x *ParkourInviteNoticePush) String() string { func (*ParkourInviteNoticePush) ProtoMessage() {} func (x *ParkourInviteNoticePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[3] + mi := &file_parkour_parkour_msg_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -211,7 +418,7 @@ func (x *ParkourInviteNoticePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInviteNoticePush.ProtoReflect.Descriptor instead. func (*ParkourInviteNoticePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{3} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{7} } func (x *ParkourInviteNoticePush) GetTeam() *DBParkour { @@ -240,7 +447,7 @@ type ParkourTeamChanagePush struct { func (x *ParkourTeamChanagePush) Reset() { *x = ParkourTeamChanagePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[4] + mi := &file_parkour_parkour_msg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -253,7 +460,7 @@ func (x *ParkourTeamChanagePush) String() string { func (*ParkourTeamChanagePush) ProtoMessage() {} func (x *ParkourTeamChanagePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[4] + mi := &file_parkour_parkour_msg_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -266,7 +473,7 @@ func (x *ParkourTeamChanagePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourTeamChanagePush.ProtoReflect.Descriptor instead. func (*ParkourTeamChanagePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{4} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{8} } func (x *ParkourTeamChanagePush) GetTeam() *DBParkour { @@ -289,7 +496,7 @@ type ParkourInviteHandleReq struct { func (x *ParkourInviteHandleReq) Reset() { *x = ParkourInviteHandleReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[5] + mi := &file_parkour_parkour_msg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -302,7 +509,7 @@ func (x *ParkourInviteHandleReq) String() string { func (*ParkourInviteHandleReq) ProtoMessage() {} func (x *ParkourInviteHandleReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[5] + mi := &file_parkour_parkour_msg_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -315,7 +522,7 @@ func (x *ParkourInviteHandleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInviteHandleReq.ProtoReflect.Descriptor instead. func (*ParkourInviteHandleReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{5} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{9} } func (x *ParkourInviteHandleReq) GetCaptainid() string { @@ -343,7 +550,7 @@ type ParkourInviteHandleResp struct { func (x *ParkourInviteHandleResp) Reset() { *x = ParkourInviteHandleResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[6] + mi := &file_parkour_parkour_msg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -356,7 +563,7 @@ func (x *ParkourInviteHandleResp) String() string { func (*ParkourInviteHandleResp) ProtoMessage() {} func (x *ParkourInviteHandleResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[6] + mi := &file_parkour_parkour_msg_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -369,7 +576,7 @@ func (x *ParkourInviteHandleResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourInviteHandleResp.ProtoReflect.Descriptor instead. func (*ParkourInviteHandleResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{6} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{10} } func (x *ParkourInviteHandleResp) GetIsSucc() bool { @@ -391,7 +598,7 @@ type ParkourQuitTeamReq struct { func (x *ParkourQuitTeamReq) Reset() { *x = ParkourQuitTeamReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[7] + mi := &file_parkour_parkour_msg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -404,7 +611,7 @@ func (x *ParkourQuitTeamReq) String() string { func (*ParkourQuitTeamReq) ProtoMessage() {} func (x *ParkourQuitTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[7] + mi := &file_parkour_parkour_msg_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -417,7 +624,7 @@ func (x *ParkourQuitTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourQuitTeamReq.ProtoReflect.Descriptor instead. func (*ParkourQuitTeamReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{7} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{11} } func (x *ParkourQuitTeamReq) GetCaptainid() string { @@ -437,7 +644,7 @@ type ParkourQuitTeamResp struct { func (x *ParkourQuitTeamResp) Reset() { *x = ParkourQuitTeamResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[8] + mi := &file_parkour_parkour_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -450,7 +657,7 @@ func (x *ParkourQuitTeamResp) String() string { func (*ParkourQuitTeamResp) ProtoMessage() {} func (x *ParkourQuitTeamResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[8] + mi := &file_parkour_parkour_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -463,7 +670,7 @@ func (x *ParkourQuitTeamResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourQuitTeamResp.ProtoReflect.Descriptor instead. func (*ParkourQuitTeamResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{8} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{12} } //队伍成员加入推送 @@ -478,7 +685,7 @@ type ParkourTeamJoinNoticePush struct { func (x *ParkourTeamJoinNoticePush) Reset() { *x = ParkourTeamJoinNoticePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[9] + mi := &file_parkour_parkour_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -491,7 +698,7 @@ func (x *ParkourTeamJoinNoticePush) String() string { func (*ParkourTeamJoinNoticePush) ProtoMessage() {} func (x *ParkourTeamJoinNoticePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[9] + mi := &file_parkour_parkour_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -504,7 +711,7 @@ func (x *ParkourTeamJoinNoticePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourTeamJoinNoticePush.ProtoReflect.Descriptor instead. func (*ParkourTeamJoinNoticePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{9} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{13} } func (x *ParkourTeamJoinNoticePush) GetMember() *DBRaceMember { @@ -526,7 +733,7 @@ type ParkourTeamQuitNoticePush struct { func (x *ParkourTeamQuitNoticePush) Reset() { *x = ParkourTeamQuitNoticePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[10] + mi := &file_parkour_parkour_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -539,7 +746,7 @@ func (x *ParkourTeamQuitNoticePush) String() string { func (*ParkourTeamQuitNoticePush) ProtoMessage() {} func (x *ParkourTeamQuitNoticePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[10] + mi := &file_parkour_parkour_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +759,7 @@ func (x *ParkourTeamQuitNoticePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourTeamQuitNoticePush.ProtoReflect.Descriptor instead. func (*ParkourTeamQuitNoticePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{10} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{14} } func (x *ParkourTeamQuitNoticePush) GetMember() *DBRaceMember { @@ -572,7 +779,7 @@ type ParkourTeamDisbandNoticePush struct { func (x *ParkourTeamDisbandNoticePush) Reset() { *x = ParkourTeamDisbandNoticePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[11] + mi := &file_parkour_parkour_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -585,7 +792,7 @@ func (x *ParkourTeamDisbandNoticePush) String() string { func (*ParkourTeamDisbandNoticePush) ProtoMessage() {} func (x *ParkourTeamDisbandNoticePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[11] + mi := &file_parkour_parkour_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -598,20 +805,22 @@ func (x *ParkourTeamDisbandNoticePush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourTeamDisbandNoticePush.ProtoReflect.Descriptor instead. func (*ParkourTeamDisbandNoticePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{11} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{15} } -//匹配请求 +//匹配请求 只有队长有权限 type ParkourRaceMatchReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id } func (x *ParkourRaceMatchReq) Reset() { *x = ParkourRaceMatchReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[12] + mi := &file_parkour_parkour_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -624,7 +833,7 @@ func (x *ParkourRaceMatchReq) String() string { func (*ParkourRaceMatchReq) ProtoMessage() {} func (x *ParkourRaceMatchReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[12] + mi := &file_parkour_parkour_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -637,7 +846,14 @@ func (x *ParkourRaceMatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourRaceMatchReq.ProtoReflect.Descriptor instead. func (*ParkourRaceMatchReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{12} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{16} +} + +func (x *ParkourRaceMatchReq) GetCaptainid() string { + if x != nil { + return x.Captainid + } + return "" } //匹配请求 @@ -650,7 +866,7 @@ type ParkourRaceMatchResp struct { func (x *ParkourRaceMatchResp) Reset() { *x = ParkourRaceMatchResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[13] + mi := &file_parkour_parkour_msg_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -663,7 +879,7 @@ func (x *ParkourRaceMatchResp) String() string { func (*ParkourRaceMatchResp) ProtoMessage() {} func (x *ParkourRaceMatchResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[13] + mi := &file_parkour_parkour_msg_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -676,7 +892,190 @@ func (x *ParkourRaceMatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourRaceMatchResp.ProtoReflect.Descriptor instead. func (*ParkourRaceMatchResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{13} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{17} +} + +//匹配取消请求 只有队长有权限 +type ParkourRaceMatchCancelReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id +} + +func (x *ParkourRaceMatchCancelReq) Reset() { + *x = ParkourRaceMatchCancelReq{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourRaceMatchCancelReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourRaceMatchCancelReq) ProtoMessage() {} + +func (x *ParkourRaceMatchCancelReq) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourRaceMatchCancelReq.ProtoReflect.Descriptor instead. +func (*ParkourRaceMatchCancelReq) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{18} +} + +func (x *ParkourRaceMatchCancelReq) GetCaptainid() string { + if x != nil { + return x.Captainid + } + return "" +} + +//匹配取消请求 +type ParkourRaceMatchCancelResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ParkourRaceMatchCancelResp) Reset() { + *x = ParkourRaceMatchCancelResp{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourRaceMatchCancelResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourRaceMatchCancelResp) ProtoMessage() {} + +func (x *ParkourRaceMatchCancelResp) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourRaceMatchCancelResp.ProtoReflect.Descriptor instead. +func (*ParkourRaceMatchCancelResp) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{19} +} + +//匹配成功 +type ParkourRaceMatchStartPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Team *DBParkour `protobuf:"bytes,1,opt,name=team,proto3" json:"team"` +} + +func (x *ParkourRaceMatchStartPush) Reset() { + *x = ParkourRaceMatchStartPush{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourRaceMatchStartPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourRaceMatchStartPush) ProtoMessage() {} + +func (x *ParkourRaceMatchStartPush) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourRaceMatchStartPush.ProtoReflect.Descriptor instead. +func (*ParkourRaceMatchStartPush) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{20} +} + +func (x *ParkourRaceMatchStartPush) GetTeam() *DBParkour { + if x != nil { + return x.Team + } + return nil +} + +//匹配取消通知 +type ParkourRaceMatchCancelPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Team *DBParkour `protobuf:"bytes,1,opt,name=team,proto3" json:"team"` +} + +func (x *ParkourRaceMatchCancelPush) Reset() { + *x = ParkourRaceMatchCancelPush{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourRaceMatchCancelPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourRaceMatchCancelPush) ProtoMessage() {} + +func (x *ParkourRaceMatchCancelPush) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourRaceMatchCancelPush.ProtoReflect.Descriptor instead. +func (*ParkourRaceMatchCancelPush) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{21} +} + +func (x *ParkourRaceMatchCancelPush) GetTeam() *DBParkour { + if x != nil { + return x.Team + } + return nil } //匹配成功 @@ -691,7 +1090,7 @@ type ParkourRaceMatchSuccPush struct { func (x *ParkourRaceMatchSuccPush) Reset() { *x = ParkourRaceMatchSuccPush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[14] + mi := &file_parkour_parkour_msg_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -704,7 +1103,7 @@ func (x *ParkourRaceMatchSuccPush) String() string { func (*ParkourRaceMatchSuccPush) ProtoMessage() {} func (x *ParkourRaceMatchSuccPush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[14] + mi := &file_parkour_parkour_msg_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -717,7 +1116,7 @@ func (x *ParkourRaceMatchSuccPush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourRaceMatchSuccPush.ProtoReflect.Descriptor instead. func (*ParkourRaceMatchSuccPush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{14} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{22} } func (x *ParkourRaceMatchSuccPush) GetRace() *DBRace { @@ -739,7 +1138,7 @@ type ParkourReadyReq struct { func (x *ParkourReadyReq) Reset() { *x = ParkourReadyReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[15] + mi := &file_parkour_parkour_msg_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -752,7 +1151,7 @@ func (x *ParkourReadyReq) String() string { func (*ParkourReadyReq) ProtoMessage() {} func (x *ParkourReadyReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[15] + mi := &file_parkour_parkour_msg_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -765,7 +1164,7 @@ func (x *ParkourReadyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourReadyReq.ProtoReflect.Descriptor instead. func (*ParkourReadyReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{15} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{23} } func (x *ParkourReadyReq) GetId() string { @@ -785,7 +1184,7 @@ type ParkourReadyResp struct { func (x *ParkourReadyResp) Reset() { *x = ParkourReadyResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[16] + mi := &file_parkour_parkour_msg_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -798,7 +1197,7 @@ func (x *ParkourReadyResp) String() string { func (*ParkourReadyResp) ProtoMessage() {} func (x *ParkourReadyResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[16] + mi := &file_parkour_parkour_msg_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -811,7 +1210,7 @@ func (x *ParkourReadyResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourReadyResp.ProtoReflect.Descriptor instead. func (*ParkourReadyResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{16} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{24} } //竞速开始推送 @@ -826,7 +1225,7 @@ type ParkourRaceStartPush struct { func (x *ParkourRaceStartPush) Reset() { *x = ParkourRaceStartPush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[17] + mi := &file_parkour_parkour_msg_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -839,7 +1238,7 @@ func (x *ParkourRaceStartPush) String() string { func (*ParkourRaceStartPush) ProtoMessage() {} func (x *ParkourRaceStartPush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[17] + mi := &file_parkour_parkour_msg_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -852,7 +1251,7 @@ func (x *ParkourRaceStartPush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourRaceStartPush.ProtoReflect.Descriptor instead. func (*ParkourRaceStartPush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{17} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{25} } func (x *ParkourRaceStartPush) GetCountdown() int32 { @@ -874,7 +1273,7 @@ type ParkourShotReq struct { func (x *ParkourShotReq) Reset() { *x = ParkourShotReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[18] + mi := &file_parkour_parkour_msg_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -887,7 +1286,7 @@ func (x *ParkourShotReq) String() string { func (*ParkourShotReq) ProtoMessage() {} func (x *ParkourShotReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[18] + mi := &file_parkour_parkour_msg_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -900,7 +1299,7 @@ func (x *ParkourShotReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourShotReq.ProtoReflect.Descriptor instead. func (*ParkourShotReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{18} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{26} } func (x *ParkourShotReq) GetId() string { @@ -920,7 +1319,7 @@ type ParkourShotResp struct { func (x *ParkourShotResp) Reset() { *x = ParkourShotResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[19] + mi := &file_parkour_parkour_msg_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -933,7 +1332,7 @@ func (x *ParkourShotResp) String() string { func (*ParkourShotResp) ProtoMessage() {} func (x *ParkourShotResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[19] + mi := &file_parkour_parkour_msg_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -946,7 +1345,7 @@ func (x *ParkourShotResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourShotResp.ProtoReflect.Descriptor instead. func (*ParkourShotResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{19} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{27} } //躲避障碍请求 @@ -962,7 +1361,7 @@ type ParkourAvoidReq struct { func (x *ParkourAvoidReq) Reset() { *x = ParkourAvoidReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[20] + mi := &file_parkour_parkour_msg_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -975,7 +1374,7 @@ func (x *ParkourAvoidReq) String() string { func (*ParkourAvoidReq) ProtoMessage() {} func (x *ParkourAvoidReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[20] + mi := &file_parkour_parkour_msg_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -988,7 +1387,7 @@ func (x *ParkourAvoidReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourAvoidReq.ProtoReflect.Descriptor instead. func (*ParkourAvoidReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{20} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{28} } func (x *ParkourAvoidReq) GetId() string { @@ -1015,7 +1414,7 @@ type ParkourAvoidResp struct { func (x *ParkourAvoidResp) Reset() { *x = ParkourAvoidResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[21] + mi := &file_parkour_parkour_msg_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1028,7 +1427,7 @@ func (x *ParkourAvoidResp) String() string { func (*ParkourAvoidResp) ProtoMessage() {} func (x *ParkourAvoidResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[21] + mi := &file_parkour_parkour_msg_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1041,7 +1440,7 @@ func (x *ParkourAvoidResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourAvoidResp.ProtoReflect.Descriptor instead. func (*ParkourAvoidResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{21} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{29} } //全员冲刺 @@ -1049,12 +1448,14 @@ type ParkourAllSprintsPush struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Left int32 `protobuf:"varint,1,opt,name=left,proto3" json:"left"` //剩余时间 } func (x *ParkourAllSprintsPush) Reset() { *x = ParkourAllSprintsPush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[22] + mi := &file_parkour_parkour_msg_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1067,7 +1468,7 @@ func (x *ParkourAllSprintsPush) String() string { func (*ParkourAllSprintsPush) ProtoMessage() {} func (x *ParkourAllSprintsPush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[22] + mi := &file_parkour_parkour_msg_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1080,35 +1481,43 @@ func (x *ParkourAllSprintsPush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourAllSprintsPush.ProtoReflect.Descriptor instead. func (*ParkourAllSprintsPush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{22} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{30} } -//比赛数值变化推送 -type ParkourRaceChanagePush struct { +func (x *ParkourAllSprintsPush) GetLeft() int32 { + if x != nil { + return x.Left + } + return 0 +} + +//玩家hp变化通知 +type ParkourPlayerHPChanagePush struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Race *DBRace `protobuf:"bytes,1,opt,name=race,proto3" json:"race"` + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` + Hp int32 `protobuf:"varint,2,opt,name=hp,proto3" json:"hp"` } -func (x *ParkourRaceChanagePush) Reset() { - *x = ParkourRaceChanagePush{} +func (x *ParkourPlayerHPChanagePush) Reset() { + *x = ParkourPlayerHPChanagePush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[23] + mi := &file_parkour_parkour_msg_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ParkourRaceChanagePush) String() string { +func (x *ParkourPlayerHPChanagePush) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ParkourRaceChanagePush) ProtoMessage() {} +func (*ParkourPlayerHPChanagePush) ProtoMessage() {} -func (x *ParkourRaceChanagePush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[23] +func (x *ParkourPlayerHPChanagePush) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1119,31 +1528,110 @@ func (x *ParkourRaceChanagePush) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ParkourRaceChanagePush.ProtoReflect.Descriptor instead. -func (*ParkourRaceChanagePush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{23} +// Deprecated: Use ParkourPlayerHPChanagePush.ProtoReflect.Descriptor instead. +func (*ParkourPlayerHPChanagePush) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{31} } -func (x *ParkourRaceChanagePush) GetRace() *DBRace { +func (x *ParkourPlayerHPChanagePush) GetUid() string { if x != nil { - return x.Race + return x.Uid } - return nil + return "" } -//比赛 +func (x *ParkourPlayerHPChanagePush) GetHp() int32 { + if x != nil { + return x.Hp + } + return 0 +} + +//比赛分值变化 +type ParkourScoreChanagePush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Redscore int32 `protobuf:"varint,1,opt,name=redscore,proto3" json:"redscore"` + Redenergy int32 `protobuf:"varint,2,opt,name=redenergy,proto3" json:"redenergy"` + Bluescore int32 `protobuf:"varint,3,opt,name=bluescore,proto3" json:"bluescore"` + Blueenergy int32 `protobuf:"varint,4,opt,name=blueenergy,proto3" json:"blueenergy"` +} + +func (x *ParkourScoreChanagePush) Reset() { + *x = ParkourScoreChanagePush{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParkourScoreChanagePush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParkourScoreChanagePush) ProtoMessage() {} + +func (x *ParkourScoreChanagePush) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParkourScoreChanagePush.ProtoReflect.Descriptor instead. +func (*ParkourScoreChanagePush) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{32} +} + +func (x *ParkourScoreChanagePush) GetRedscore() int32 { + if x != nil { + return x.Redscore + } + return 0 +} + +func (x *ParkourScoreChanagePush) GetRedenergy() int32 { + if x != nil { + return x.Redenergy + } + return 0 +} + +func (x *ParkourScoreChanagePush) GetBluescore() int32 { + if x != nil { + return x.Bluescore + } + return 0 +} + +func (x *ParkourScoreChanagePush) GetBlueenergy() int32 { + if x != nil { + return x.Blueenergy + } + return 0 +} + +//比赛结束通知 type ParkourRaceOverPush struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Race *DBRace `protobuf:"bytes,1,opt,name=race,proto3" json:"race"` + Winside int32 `protobuf:"varint,1,opt,name=winside,proto3" json:"winside"` //0平局 1 红方胜利 2 蓝方胜利 } func (x *ParkourRaceOverPush) Reset() { *x = ParkourRaceOverPush{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[24] + mi := &file_parkour_parkour_msg_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1156,7 +1644,7 @@ func (x *ParkourRaceOverPush) String() string { func (*ParkourRaceOverPush) ProtoMessage() {} func (x *ParkourRaceOverPush) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[24] + mi := &file_parkour_parkour_msg_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1169,14 +1657,14 @@ func (x *ParkourRaceOverPush) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkourRaceOverPush.ProtoReflect.Descriptor instead. func (*ParkourRaceOverPush) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{24} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{33} } -func (x *ParkourRaceOverPush) GetRace() *DBRace { +func (x *ParkourRaceOverPush) GetWinside() int32 { if x != nil { - return x.Race + return x.Winside } - return nil + return 0 } ///匹配请求 RPC消息定义 服务器自用 客户端不用理会 @@ -1192,7 +1680,7 @@ type RPCParkourJoinMatchReq struct { func (x *RPCParkourJoinMatchReq) Reset() { *x = RPCParkourJoinMatchReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[25] + mi := &file_parkour_parkour_msg_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1205,7 +1693,7 @@ func (x *RPCParkourJoinMatchReq) String() string { func (*RPCParkourJoinMatchReq) ProtoMessage() {} func (x *RPCParkourJoinMatchReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[25] + mi := &file_parkour_parkour_msg_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1218,7 +1706,7 @@ func (x *RPCParkourJoinMatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCParkourJoinMatchReq.ProtoReflect.Descriptor instead. func (*RPCParkourJoinMatchReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{25} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{34} } func (x *RPCParkourJoinMatchReq) GetCaptainid() string { @@ -1245,7 +1733,7 @@ type RPCParkourJoinMatchResp struct { func (x *RPCParkourJoinMatchResp) Reset() { *x = RPCParkourJoinMatchResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[26] + mi := &file_parkour_parkour_msg_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1258,7 +1746,7 @@ func (x *RPCParkourJoinMatchResp) String() string { func (*RPCParkourJoinMatchResp) ProtoMessage() {} func (x *RPCParkourJoinMatchResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[26] + mi := &file_parkour_parkour_msg_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1271,7 +1759,93 @@ func (x *RPCParkourJoinMatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCParkourJoinMatchResp.ProtoReflect.Descriptor instead. func (*RPCParkourJoinMatchResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{26} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{35} +} + +//取消匹配 +type RPCParkourCancelMatchReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id +} + +func (x *RPCParkourCancelMatchReq) Reset() { + *x = RPCParkourCancelMatchReq{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPCParkourCancelMatchReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPCParkourCancelMatchReq) ProtoMessage() {} + +func (x *RPCParkourCancelMatchReq) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPCParkourCancelMatchReq.ProtoReflect.Descriptor instead. +func (*RPCParkourCancelMatchReq) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{36} +} + +func (x *RPCParkourCancelMatchReq) GetCaptainid() string { + if x != nil { + return x.Captainid + } + return "" +} + +type RPCParkourCancelMatchResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RPCParkourCancelMatchResp) Reset() { + *x = RPCParkourCancelMatchResp{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPCParkourCancelMatchResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPCParkourCancelMatchResp) ProtoMessage() {} + +func (x *RPCParkourCancelMatchResp) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPCParkourCancelMatchResp.ProtoReflect.Descriptor instead. +func (*RPCParkourCancelMatchResp) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{37} } ///匹配成功通知请求 @@ -1287,7 +1861,7 @@ type RPCParkourMatchSuccReq struct { func (x *RPCParkourMatchSuccReq) Reset() { *x = RPCParkourMatchSuccReq{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[27] + mi := &file_parkour_parkour_msg_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1300,7 +1874,7 @@ func (x *RPCParkourMatchSuccReq) String() string { func (*RPCParkourMatchSuccReq) ProtoMessage() {} func (x *RPCParkourMatchSuccReq) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[27] + mi := &file_parkour_parkour_msg_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1313,7 +1887,7 @@ func (x *RPCParkourMatchSuccReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCParkourMatchSuccReq.ProtoReflect.Descriptor instead. func (*RPCParkourMatchSuccReq) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{27} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{38} } func (x *RPCParkourMatchSuccReq) GetRed() []*DBRaceMember { @@ -1340,7 +1914,7 @@ type RPCParkourMatchSuccResp struct { func (x *RPCParkourMatchSuccResp) Reset() { *x = RPCParkourMatchSuccResp{} if protoimpl.UnsafeEnabled { - mi := &file_parkour_parkour_msg_proto_msgTypes[28] + mi := &file_parkour_parkour_msg_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1353,7 +1927,7 @@ func (x *RPCParkourMatchSuccResp) String() string { func (*RPCParkourMatchSuccResp) ProtoMessage() {} func (x *RPCParkourMatchSuccResp) ProtoReflect() protoreflect.Message { - mi := &file_parkour_parkour_msg_proto_msgTypes[28] + mi := &file_parkour_parkour_msg_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1366,7 +1940,101 @@ func (x *RPCParkourMatchSuccResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCParkourMatchSuccResp.ProtoReflect.Descriptor instead. func (*RPCParkourMatchSuccResp) Descriptor() ([]byte, []int) { - return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{28} + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{39} +} + +//托管求情 +type RPC_ParkourTrusteeshipReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid string `protobuf:"bytes,1,opt,name=battleid,proto3" json:"battleid"` + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` +} + +func (x *RPC_ParkourTrusteeshipReq) Reset() { + *x = RPC_ParkourTrusteeshipReq{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPC_ParkourTrusteeshipReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPC_ParkourTrusteeshipReq) ProtoMessage() {} + +func (x *RPC_ParkourTrusteeshipReq) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPC_ParkourTrusteeshipReq.ProtoReflect.Descriptor instead. +func (*RPC_ParkourTrusteeshipReq) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{40} +} + +func (x *RPC_ParkourTrusteeshipReq) GetBattleid() string { + if x != nil { + return x.Battleid + } + return "" +} + +func (x *RPC_ParkourTrusteeshipReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +type RPC_ParkourTrusteeshipResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RPC_ParkourTrusteeshipResp) Reset() { + *x = RPC_ParkourTrusteeshipResp{} + if protoimpl.UnsafeEnabled { + mi := &file_parkour_parkour_msg_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPC_ParkourTrusteeshipResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPC_ParkourTrusteeshipResp) ProtoMessage() {} + +func (x *RPC_ParkourTrusteeshipResp) ProtoReflect() protoreflect.Message { + mi := &file_parkour_parkour_msg_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPC_ParkourTrusteeshipResp.ProtoReflect.Descriptor instead. +func (*RPC_ParkourTrusteeshipResp) Descriptor() ([]byte, []int) { + return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{41} } var File_parkour_parkour_msg_proto protoreflect.FileDescriptor @@ -1375,96 +2043,150 @@ var file_parkour_parkour_msg_proto_rawDesc = []byte{ 0x0a, 0x19, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x5f, 0x64, 0x62, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x37, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, - 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, - 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x24, - 0x0a, 0x10, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x12, 0x1e, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, - 0x6d, 0x22, 0x4f, 0x0a, 0x17, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, - 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, - 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x38, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, - 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, - 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x4c, 0x0a, 0x16, - 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x48, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, - 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, - 0x69, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x50, 0x61, - 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, - 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, 0x32, 0x0a, - 0x12, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x65, 0x61, 0x6d, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, + 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x6f, 0x70, + 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x22, + 0x2b, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4d, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x73, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x73, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x14, + 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x74, 0x73, + 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, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x74, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x73, + 0x69, 0x64, 0x22, 0x37, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, 0x61, + 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x24, 0x0a, 0x10, 0x50, + 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, + 0x64, 0x22, 0x4b, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 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, 0x12, 0x1e, + 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, + 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x4f, + 0x0a, 0x17, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, + 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, + 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x38, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, + 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x4c, 0x0a, 0x16, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, - 0x64, 0x22, 0x15, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x51, 0x75, 0x69, 0x74, - 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x19, 0x50, 0x61, 0x72, 0x6b, - 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x19, - 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x69, 0x74, 0x4e, - 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, - 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x1e, 0x0a, 0x1c, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x44, - 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x22, 0x15, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, - 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x37, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x75, 0x63, 0x63, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x72, - 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x52, 0x61, - 0x63, 0x65, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, - 0x6f, 0x75, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x50, - 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x34, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, - 0x53, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, - 0x75, 0x72, 0x53, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3d, 0x0a, 0x0f, 0x50, 0x61, - 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x61, 0x72, - 0x6b, 0x6f, 0x75, 0x72, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0x0a, - 0x15, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x73, 0x50, 0x75, 0x73, 0x68, 0x22, 0x35, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, - 0x72, 0x52, 0x61, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, - 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x22, 0x32, 0x0a, - 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x52, 0x04, 0x72, 0x61, 0x63, - 0x65, 0x22, 0x5d, 0x0a, 0x16, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4a, - 0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, - 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x19, 0x0a, 0x17, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4a, 0x6f, - 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5c, 0x0a, 0x16, 0x52, - 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, - 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x50, 0x61, 0x72, 0x6b, 0x6f, + 0x75, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x32, 0x0a, 0x12, 0x50, 0x61, + 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x22, 0x15, + 0x0a, 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x19, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, + 0x54, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, + 0x73, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x50, 0x43, - 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x63, 0x63, - 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x19, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x69, + 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1e, 0x0a, + 0x1c, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x73, 0x62, + 0x61, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x75, 0x73, 0x68, 0x22, 0x33, 0x0a, + 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, + 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x0a, 0x19, 0x50, 0x61, + 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, + 0x69, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, + 0x61, 0x69, 0x6e, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, + 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x3b, 0x0a, 0x19, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, + 0x63, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, + 0x12, 0x1e, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, + 0x22, 0x3c, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, + 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, + 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x37, + 0x0a, 0x18, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x75, 0x63, 0x63, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x61, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, + 0x65, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, + 0x75, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x61, + 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x34, + 0x0a, 0x14, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x53, + 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, + 0x72, 0x53, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x6b, + 0x6f, 0x75, 0x72, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2b, 0x0a, 0x15, + 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x41, 0x6c, 0x6c, 0x53, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x73, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, 0x0a, 0x1a, 0x50, 0x61, 0x72, + 0x6b, 0x6f, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x50, 0x43, 0x68, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x50, 0x61, + 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x64, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, + 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x2f, 0x0a, + 0x13, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x22, 0x5d, + 0x0a, 0x16, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4a, 0x6f, 0x69, 0x6e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, + 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, + 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, + 0x17, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x38, 0x0a, 0x18, 0x52, 0x50, 0x43, 0x50, + 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, + 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x5c, 0x0a, 0x16, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x03, 0x72, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x62, 0x75, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x22, 0x19, 0x0a, + 0x17, 0x52, 0x50, 0x43, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x73, 0x70, 0x22, 0x49, 0x0a, 0x19, 0x52, 0x50, 0x43, 0x5f, + 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, + 0x69, 0x70, 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, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x61, 0x72, 0x6b, 0x6f, + 0x75, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1479,59 +2201,74 @@ func file_parkour_parkour_msg_proto_rawDescGZIP() []byte { return file_parkour_parkour_msg_proto_rawDescData } -var file_parkour_parkour_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_parkour_parkour_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_parkour_parkour_msg_proto_goTypes = []interface{}{ - (*ParkourInfoChangePush)(nil), // 0: ParkourInfoChangePush - (*ParkourInviteReq)(nil), // 1: ParkourInviteReq - (*ParkourInviteResp)(nil), // 2: ParkourInviteResp - (*ParkourInviteNoticePush)(nil), // 3: ParkourInviteNoticePush - (*ParkourTeamChanagePush)(nil), // 4: ParkourTeamChanagePush - (*ParkourInviteHandleReq)(nil), // 5: ParkourInviteHandleReq - (*ParkourInviteHandleResp)(nil), // 6: ParkourInviteHandleResp - (*ParkourQuitTeamReq)(nil), // 7: ParkourQuitTeamReq - (*ParkourQuitTeamResp)(nil), // 8: ParkourQuitTeamResp - (*ParkourTeamJoinNoticePush)(nil), // 9: ParkourTeamJoinNoticePush - (*ParkourTeamQuitNoticePush)(nil), // 10: ParkourTeamQuitNoticePush - (*ParkourTeamDisbandNoticePush)(nil), // 11: ParkourTeamDisbandNoticePush - (*ParkourRaceMatchReq)(nil), // 12: ParkourRaceMatchReq - (*ParkourRaceMatchResp)(nil), // 13: ParkourRaceMatchResp - (*ParkourRaceMatchSuccPush)(nil), // 14: ParkourRaceMatchSuccPush - (*ParkourReadyReq)(nil), // 15: ParkourReadyReq - (*ParkourReadyResp)(nil), // 16: ParkourReadyResp - (*ParkourRaceStartPush)(nil), // 17: ParkourRaceStartPush - (*ParkourShotReq)(nil), // 18: ParkourShotReq - (*ParkourShotResp)(nil), // 19: ParkourShotResp - (*ParkourAvoidReq)(nil), // 20: ParkourAvoidReq - (*ParkourAvoidResp)(nil), // 21: ParkourAvoidResp - (*ParkourAllSprintsPush)(nil), // 22: ParkourAllSprintsPush - (*ParkourRaceChanagePush)(nil), // 23: ParkourRaceChanagePush - (*ParkourRaceOverPush)(nil), // 24: ParkourRaceOverPush - (*RPCParkourJoinMatchReq)(nil), // 25: RPCParkourJoinMatchReq - (*RPCParkourJoinMatchResp)(nil), // 26: RPCParkourJoinMatchResp - (*RPCParkourMatchSuccReq)(nil), // 27: RPCParkourMatchSuccReq - (*RPCParkourMatchSuccResp)(nil), // 28: RPCParkourMatchSuccResp - (*DBParkour)(nil), // 29: DBParkour - (*DBRaceMember)(nil), // 30: DBRaceMember - (*DBRace)(nil), // 31: DBRace + (*ParkourInfoReq)(nil), // 0: ParkourInfoReq + (*ParkourInfoResp)(nil), // 1: ParkourInfoResp + (*ParkourChangeMtsReq)(nil), // 2: ParkourChangeMtsReq + (*ParkourChangeMtsResp)(nil), // 3: ParkourChangeMtsResp + (*ParkourInfoChangePush)(nil), // 4: ParkourInfoChangePush + (*ParkourInviteReq)(nil), // 5: ParkourInviteReq + (*ParkourInviteResp)(nil), // 6: ParkourInviteResp + (*ParkourInviteNoticePush)(nil), // 7: ParkourInviteNoticePush + (*ParkourTeamChanagePush)(nil), // 8: ParkourTeamChanagePush + (*ParkourInviteHandleReq)(nil), // 9: ParkourInviteHandleReq + (*ParkourInviteHandleResp)(nil), // 10: ParkourInviteHandleResp + (*ParkourQuitTeamReq)(nil), // 11: ParkourQuitTeamReq + (*ParkourQuitTeamResp)(nil), // 12: ParkourQuitTeamResp + (*ParkourTeamJoinNoticePush)(nil), // 13: ParkourTeamJoinNoticePush + (*ParkourTeamQuitNoticePush)(nil), // 14: ParkourTeamQuitNoticePush + (*ParkourTeamDisbandNoticePush)(nil), // 15: ParkourTeamDisbandNoticePush + (*ParkourRaceMatchReq)(nil), // 16: ParkourRaceMatchReq + (*ParkourRaceMatchResp)(nil), // 17: ParkourRaceMatchResp + (*ParkourRaceMatchCancelReq)(nil), // 18: ParkourRaceMatchCancelReq + (*ParkourRaceMatchCancelResp)(nil), // 19: ParkourRaceMatchCancelResp + (*ParkourRaceMatchStartPush)(nil), // 20: ParkourRaceMatchStartPush + (*ParkourRaceMatchCancelPush)(nil), // 21: ParkourRaceMatchCancelPush + (*ParkourRaceMatchSuccPush)(nil), // 22: ParkourRaceMatchSuccPush + (*ParkourReadyReq)(nil), // 23: ParkourReadyReq + (*ParkourReadyResp)(nil), // 24: ParkourReadyResp + (*ParkourRaceStartPush)(nil), // 25: ParkourRaceStartPush + (*ParkourShotReq)(nil), // 26: ParkourShotReq + (*ParkourShotResp)(nil), // 27: ParkourShotResp + (*ParkourAvoidReq)(nil), // 28: ParkourAvoidReq + (*ParkourAvoidResp)(nil), // 29: ParkourAvoidResp + (*ParkourAllSprintsPush)(nil), // 30: ParkourAllSprintsPush + (*ParkourPlayerHPChanagePush)(nil), // 31: ParkourPlayerHPChanagePush + (*ParkourScoreChanagePush)(nil), // 32: ParkourScoreChanagePush + (*ParkourRaceOverPush)(nil), // 33: ParkourRaceOverPush + (*RPCParkourJoinMatchReq)(nil), // 34: RPCParkourJoinMatchReq + (*RPCParkourJoinMatchResp)(nil), // 35: RPCParkourJoinMatchResp + (*RPCParkourCancelMatchReq)(nil), // 36: RPCParkourCancelMatchReq + (*RPCParkourCancelMatchResp)(nil), // 37: RPCParkourCancelMatchResp + (*RPCParkourMatchSuccReq)(nil), // 38: RPCParkourMatchSuccReq + (*RPCParkourMatchSuccResp)(nil), // 39: RPCParkourMatchSuccResp + (*RPC_ParkourTrusteeshipReq)(nil), // 40: RPC_ParkourTrusteeshipReq + (*RPC_ParkourTrusteeshipResp)(nil), // 41: RPC_ParkourTrusteeshipResp + (*DBParkour)(nil), // 42: DBParkour + (*DBRaceMember)(nil), // 43: DBRaceMember + (*DBRace)(nil), // 44: DBRace } var file_parkour_parkour_msg_proto_depIdxs = []int32{ - 29, // 0: ParkourInfoChangePush.info:type_name -> DBParkour - 29, // 1: ParkourInviteResp.team:type_name -> DBParkour - 29, // 2: ParkourInviteNoticePush.team:type_name -> DBParkour - 29, // 3: ParkourTeamChanagePush.team:type_name -> DBParkour - 30, // 4: ParkourTeamJoinNoticePush.member:type_name -> DBRaceMember - 30, // 5: ParkourTeamQuitNoticePush.member:type_name -> DBRaceMember - 31, // 6: ParkourRaceMatchSuccPush.race:type_name -> DBRace - 31, // 7: ParkourRaceChanagePush.race:type_name -> DBRace - 31, // 8: ParkourRaceOverPush.race:type_name -> DBRace - 30, // 9: RPCParkourJoinMatchReq.member:type_name -> DBRaceMember - 30, // 10: RPCParkourMatchSuccReq.red:type_name -> DBRaceMember - 30, // 11: RPCParkourMatchSuccReq.bule:type_name -> DBRaceMember - 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 - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 42, // 0: ParkourInfoResp.info:type_name -> DBParkour + 43, // 1: ParkourInfoResp.recommend:type_name -> DBRaceMember + 42, // 2: ParkourInfoChangePush.info:type_name -> DBParkour + 42, // 3: ParkourInviteResp.team:type_name -> DBParkour + 42, // 4: ParkourInviteNoticePush.team:type_name -> DBParkour + 42, // 5: ParkourTeamChanagePush.team:type_name -> DBParkour + 43, // 6: ParkourTeamJoinNoticePush.member:type_name -> DBRaceMember + 43, // 7: ParkourTeamQuitNoticePush.member:type_name -> DBRaceMember + 42, // 8: ParkourRaceMatchStartPush.team:type_name -> DBParkour + 42, // 9: ParkourRaceMatchCancelPush.team:type_name -> DBParkour + 44, // 10: ParkourRaceMatchSuccPush.race:type_name -> DBRace + 43, // 11: RPCParkourJoinMatchReq.member:type_name -> DBRaceMember + 43, // 12: RPCParkourMatchSuccReq.red:type_name -> DBRaceMember + 43, // 13: RPCParkourMatchSuccReq.bule:type_name -> DBRaceMember + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_parkour_parkour_msg_proto_init() } @@ -1542,7 +2279,7 @@ func file_parkour_parkour_msg_proto_init() { file_parkour_parkour_db_proto_init() if !protoimpl.UnsafeEnabled { file_parkour_parkour_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInfoChangePush); i { + switch v := v.(*ParkourInfoReq); i { case 0: return &v.state case 1: @@ -1554,7 +2291,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInviteReq); i { + switch v := v.(*ParkourInfoResp); i { case 0: return &v.state case 1: @@ -1566,7 +2303,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInviteResp); i { + switch v := v.(*ParkourChangeMtsReq); i { case 0: return &v.state case 1: @@ -1578,7 +2315,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInviteNoticePush); i { + switch v := v.(*ParkourChangeMtsResp); i { case 0: return &v.state case 1: @@ -1590,7 +2327,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourTeamChanagePush); i { + switch v := v.(*ParkourInfoChangePush); i { case 0: return &v.state case 1: @@ -1602,7 +2339,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInviteHandleReq); i { + switch v := v.(*ParkourInviteReq); i { case 0: return &v.state case 1: @@ -1614,7 +2351,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourInviteHandleResp); i { + switch v := v.(*ParkourInviteResp); i { case 0: return &v.state case 1: @@ -1626,7 +2363,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourQuitTeamReq); i { + switch v := v.(*ParkourInviteNoticePush); i { case 0: return &v.state case 1: @@ -1638,7 +2375,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourQuitTeamResp); i { + switch v := v.(*ParkourTeamChanagePush); i { case 0: return &v.state case 1: @@ -1650,7 +2387,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourTeamJoinNoticePush); i { + switch v := v.(*ParkourInviteHandleReq); i { case 0: return &v.state case 1: @@ -1662,7 +2399,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourTeamQuitNoticePush); i { + switch v := v.(*ParkourInviteHandleResp); i { case 0: return &v.state case 1: @@ -1674,7 +2411,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourTeamDisbandNoticePush); i { + switch v := v.(*ParkourQuitTeamReq); i { case 0: return &v.state case 1: @@ -1686,7 +2423,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceMatchReq); i { + switch v := v.(*ParkourQuitTeamResp); i { case 0: return &v.state case 1: @@ -1698,7 +2435,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceMatchResp); i { + switch v := v.(*ParkourTeamJoinNoticePush); i { case 0: return &v.state case 1: @@ -1710,7 +2447,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceMatchSuccPush); i { + switch v := v.(*ParkourTeamQuitNoticePush); i { case 0: return &v.state case 1: @@ -1722,7 +2459,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourReadyReq); i { + switch v := v.(*ParkourTeamDisbandNoticePush); i { case 0: return &v.state case 1: @@ -1734,7 +2471,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourReadyResp); i { + switch v := v.(*ParkourRaceMatchReq); i { case 0: return &v.state case 1: @@ -1746,7 +2483,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceStartPush); i { + switch v := v.(*ParkourRaceMatchResp); i { case 0: return &v.state case 1: @@ -1758,7 +2495,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourShotReq); i { + switch v := v.(*ParkourRaceMatchCancelReq); i { case 0: return &v.state case 1: @@ -1770,7 +2507,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourShotResp); i { + switch v := v.(*ParkourRaceMatchCancelResp); i { case 0: return &v.state case 1: @@ -1782,7 +2519,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourAvoidReq); i { + switch v := v.(*ParkourRaceMatchStartPush); i { case 0: return &v.state case 1: @@ -1794,7 +2531,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourAvoidResp); i { + switch v := v.(*ParkourRaceMatchCancelPush); i { case 0: return &v.state case 1: @@ -1806,7 +2543,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourAllSprintsPush); i { + switch v := v.(*ParkourRaceMatchSuccPush); i { case 0: return &v.state case 1: @@ -1818,7 +2555,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceChanagePush); i { + switch v := v.(*ParkourReadyReq); i { case 0: return &v.state case 1: @@ -1830,7 +2567,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParkourRaceOverPush); i { + switch v := v.(*ParkourReadyResp); i { case 0: return &v.state case 1: @@ -1842,7 +2579,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCParkourJoinMatchReq); i { + switch v := v.(*ParkourRaceStartPush); i { case 0: return &v.state case 1: @@ -1854,7 +2591,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCParkourJoinMatchResp); i { + switch v := v.(*ParkourShotReq); i { case 0: return &v.state case 1: @@ -1866,7 +2603,7 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCParkourMatchSuccReq); i { + switch v := v.(*ParkourShotResp); i { case 0: return &v.state case 1: @@ -1878,6 +2615,138 @@ func file_parkour_parkour_msg_proto_init() { } } file_parkour_parkour_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourAvoidReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourAvoidResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourAllSprintsPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourPlayerHPChanagePush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourScoreChanagePush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParkourRaceOverPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCParkourJoinMatchReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCParkourJoinMatchResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCParkourCancelMatchReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCParkourCancelMatchResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCParkourMatchSuccReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RPCParkourMatchSuccResp); i { case 0: return &v.state @@ -1889,6 +2758,30 @@ func file_parkour_parkour_msg_proto_init() { return nil } } + file_parkour_parkour_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPC_ParkourTrusteeshipReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_parkour_parkour_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPC_ParkourTrusteeshipResp); 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{ @@ -1896,7 +2789,7 @@ func file_parkour_parkour_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_parkour_parkour_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 29, + NumMessages: 42, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/pvp_msg.pb.go b/pb/pvp_msg.pb.go index 4a7e81c9b..83235ff6b 100644 --- a/pb/pvp_msg.pb.go +++ b/pb/pvp_msg.pb.go @@ -993,6 +993,99 @@ func (x *PvpFinishPush) GetBattleid() string { return "" } +type RPC_PVPTrusteeshipReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Battleid []string `protobuf:"bytes,1,rep,name=battleid,proto3" json:"battleid"` + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` +} + +func (x *RPC_PVPTrusteeshipReq) Reset() { + *x = RPC_PVPTrusteeshipReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPC_PVPTrusteeshipReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPC_PVPTrusteeshipReq) ProtoMessage() {} + +func (x *RPC_PVPTrusteeshipReq) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPC_PVPTrusteeshipReq.ProtoReflect.Descriptor instead. +func (*RPC_PVPTrusteeshipReq) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{18} +} + +func (x *RPC_PVPTrusteeshipReq) GetBattleid() []string { + if x != nil { + return x.Battleid + } + return nil +} + +func (x *RPC_PVPTrusteeshipReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +type RPC_PVPTrusteeshipResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RPC_PVPTrusteeshipResp) Reset() { + *x = RPC_PVPTrusteeshipResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pvp_pvp_msg_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RPC_PVPTrusteeshipResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RPC_PVPTrusteeshipResp) ProtoMessage() {} + +func (x *RPC_PVPTrusteeshipResp) ProtoReflect() protoreflect.Message { + mi := &file_pvp_pvp_msg_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RPC_PVPTrusteeshipResp.ProtoReflect.Descriptor instead. +func (*RPC_PVPTrusteeshipResp) Descriptor() ([]byte, []int) { + return file_pvp_pvp_msg_proto_rawDescGZIP(), []int{19} +} + var File_pvp_pvp_msg_proto protoreflect.FileDescriptor var file_pvp_pvp_msg_proto_rawDesc = []byte{ @@ -1081,8 +1174,14 @@ var file_pvp_pvp_msg_proto_rawDesc = []byte{ 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, + 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x15, 0x52, 0x50, 0x43, + 0x5f, 0x50, 0x56, 0x50, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x52, + 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x22, 0x18, 0x0a, 0x16, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x56, 0x50, 0x54, 0x72, 0x75, 0x73, 0x74, + 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1097,7 +1196,7 @@ 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, 18) +var file_pvp_pvp_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_pvp_pvp_msg_proto_goTypes = []interface{}{ (*PvpListReq)(nil), // 0: PvpListReq (*PvpListResp)(nil), // 1: PvpListResp @@ -1117,27 +1216,29 @@ var file_pvp_pvp_msg_proto_goTypes = []interface{}{ (*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 + (*RPC_PVPTrusteeshipReq)(nil), // 18: RPC_PVPTrusteeshipReq + (*RPC_PVPTrusteeshipResp)(nil), // 19: RPC_PVPTrusteeshipResp + (*DBPvpBattle)(nil), // 20: DBPvpBattle + (ErrorCode)(0), // 21: ErrorCode + (*BattleStateInfo)(nil), // 22: BattleStateInfo + (*PvpUserInfo)(nil), // 23: PvpUserInfo + (*BattleFormation)(nil), // 24: BattleFormation + (*BattleInfo)(nil), // 25: BattleInfo + (*BattleCmd)(nil), // 26: BattleCmd } var file_pvp_pvp_msg_proto_depIdxs = []int32{ - 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 + 20, // 0: PvpListResp.list:type_name -> DBPvpBattle + 21, // 1: PvpIntoResp.code:type_name -> ErrorCode + 22, // 2: PvpIntoResp.info:type_name -> BattleStateInfo + 23, // 3: PvpReadyPush.red:type_name -> PvpUserInfo + 23, // 4: PvpReadyPush.blue:type_name -> PvpUserInfo + 24, // 5: PvpFormationReq.formation:type_name -> BattleFormation + 21, // 6: PvpStartPush.code:type_name -> ErrorCode + 25, // 7: PvpStartPush.info:type_name -> BattleInfo + 26, // 8: PvpOutCmdPush.cmd:type_name -> BattleCmd + 26, // 9: PvpInCmdReq.cmd:type_name -> BattleCmd + 21, // 10: PvpInCmdResp.code:type_name -> ErrorCode + 26, // 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 @@ -1370,6 +1471,30 @@ func file_pvp_pvp_msg_proto_init() { return nil } } + file_pvp_pvp_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPC_PVPTrusteeshipReq); 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[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPC_PVPTrusteeshipResp); 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{ @@ -1377,7 +1502,7 @@ func file_pvp_pvp_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pvp_pvp_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 18, + NumMessages: 20, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/reputation_db.pb.go b/pb/reputation_db.pb.go new file mode 100644 index 000000000..ef4a6bf4c --- /dev/null +++ b/pb/reputation_db.pb.go @@ -0,0 +1,419 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: reputation/reputation_db.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DBReputation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //玩家ID + Camps map[int32]*Camp `protobuf:"bytes,2,rep,name=camps,proto3" json:"camps" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"camps"` //key 阵营id +} + +func (x *DBReputation) Reset() { + *x = DBReputation{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_db_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DBReputation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DBReputation) ProtoMessage() {} + +func (x *DBReputation) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_db_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DBReputation.ProtoReflect.Descriptor instead. +func (*DBReputation) Descriptor() ([]byte, []int) { + return file_reputation_reputation_db_proto_rawDescGZIP(), []int{0} +} + +func (x *DBReputation) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DBReputation) GetCamps() map[int32]*Camp { + if x != nil { + return x.Camps + } + return nil +} + +// 阵营 +type Camp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReputationLv int32 `protobuf:"varint,1,opt,name=reputationLv,proto3" json:"reputationLv" bson:"reputationLv"` //声望等级 + CampAttr *CampAttr `protobuf:"bytes,2,opt,name=campAttr,proto3" json:"campAttr" bson:"campAttr"` // + Nodes []*TalentNode `protobuf:"bytes,3,rep,name=nodes,proto3" json:"nodes" bson:"nodes"` //天赋节点 +} + +func (x *Camp) Reset() { + *x = Camp{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_db_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Camp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Camp) ProtoMessage() {} + +func (x *Camp) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_db_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Camp.ProtoReflect.Descriptor instead. +func (*Camp) Descriptor() ([]byte, []int) { + return file_reputation_reputation_db_proto_rawDescGZIP(), []int{1} +} + +func (x *Camp) GetReputationLv() int32 { + if x != nil { + return x.ReputationLv + } + return 0 +} + +func (x *Camp) GetCampAttr() *CampAttr { + if x != nil { + return x.CampAttr + } + return nil +} + +func (x *Camp) GetNodes() []*TalentNode { + if x != nil { + return x.Nodes + } + return nil +} + +// 阵营声望属性 +type CampAttr struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hp int32 `protobuf:"varint,1,opt,name=hp,proto3" json:"hp"` + Attack int32 `protobuf:"varint,2,opt,name=attack,proto3" json:"attack"` + Defense int32 `protobuf:"varint,3,opt,name=defense,proto3" json:"defense"` + HpPer int32 `protobuf:"varint,4,opt,name=hpPer,proto3" json:"hpPer"` +} + +func (x *CampAttr) Reset() { + *x = CampAttr{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_db_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CampAttr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CampAttr) ProtoMessage() {} + +func (x *CampAttr) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_db_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CampAttr.ProtoReflect.Descriptor instead. +func (*CampAttr) Descriptor() ([]byte, []int) { + return file_reputation_reputation_db_proto_rawDescGZIP(), []int{2} +} + +func (x *CampAttr) GetHp() int32 { + if x != nil { + return x.Hp + } + return 0 +} + +func (x *CampAttr) GetAttack() int32 { + if x != nil { + return x.Attack + } + return 0 +} + +func (x *CampAttr) GetDefense() int32 { + if x != nil { + return x.Defense + } + return 0 +} + +func (x *CampAttr) GetHpPer() int32 { + if x != nil { + return x.HpPer + } + return 0 +} + +// 天赋节点 +type TalentNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nid int32 `protobuf:"varint,1,opt,name=nid,proto3" json:"nid" bson:"nid"` //节点ID + Lv int32 `protobuf:"varint,2,opt,name=lv,proto3" json:"lv" bson:"lv"` //天赋节点等级 + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status" bson:"status"` // 状态 0未升级 1未满级 2满级 +} + +func (x *TalentNode) Reset() { + *x = TalentNode{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_db_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TalentNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TalentNode) ProtoMessage() {} + +func (x *TalentNode) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_db_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TalentNode.ProtoReflect.Descriptor instead. +func (*TalentNode) Descriptor() ([]byte, []int) { + return file_reputation_reputation_db_proto_rawDescGZIP(), []int{3} +} + +func (x *TalentNode) GetNid() int32 { + if x != nil { + return x.Nid + } + return 0 +} + +func (x *TalentNode) GetLv() int32 { + if x != nil { + return x.Lv + } + return 0 +} + +func (x *TalentNode) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +var File_reputation_reputation_db_proto protoreflect.FileDescriptor + +var file_reputation_reputation_db_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x70, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x91, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x61, + 0x6d, 0x70, 0x73, 0x1a, 0x3f, 0x0a, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x74, 0x0a, 0x04, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x76, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x76, + 0x12, 0x25, 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x08, 0x63, + 0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x21, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x62, 0x0a, 0x08, 0x43, 0x61, + 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x70, 0x50, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x70, 0x50, 0x65, 0x72, 0x22, 0x46, + 0x0a, 0x0a, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x69, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_reputation_reputation_db_proto_rawDescOnce sync.Once + file_reputation_reputation_db_proto_rawDescData = file_reputation_reputation_db_proto_rawDesc +) + +func file_reputation_reputation_db_proto_rawDescGZIP() []byte { + file_reputation_reputation_db_proto_rawDescOnce.Do(func() { + file_reputation_reputation_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_reputation_reputation_db_proto_rawDescData) + }) + return file_reputation_reputation_db_proto_rawDescData +} + +var file_reputation_reputation_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_reputation_reputation_db_proto_goTypes = []interface{}{ + (*DBReputation)(nil), // 0: DBReputation + (*Camp)(nil), // 1: Camp + (*CampAttr)(nil), // 2: CampAttr + (*TalentNode)(nil), // 3: TalentNode + nil, // 4: DBReputation.CampsEntry +} +var file_reputation_reputation_db_proto_depIdxs = []int32{ + 4, // 0: DBReputation.camps:type_name -> DBReputation.CampsEntry + 2, // 1: Camp.campAttr:type_name -> CampAttr + 3, // 2: Camp.nodes:type_name -> TalentNode + 1, // 3: DBReputation.CampsEntry.value:type_name -> Camp + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_reputation_reputation_db_proto_init() } +func file_reputation_reputation_db_proto_init() { + if File_reputation_reputation_db_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_reputation_reputation_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DBReputation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Camp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CampAttr); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TalentNode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_reputation_reputation_db_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_reputation_reputation_db_proto_goTypes, + DependencyIndexes: file_reputation_reputation_db_proto_depIdxs, + MessageInfos: file_reputation_reputation_db_proto_msgTypes, + }.Build() + File_reputation_reputation_db_proto = out.File + file_reputation_reputation_db_proto_rawDesc = nil + file_reputation_reputation_db_proto_goTypes = nil + file_reputation_reputation_db_proto_depIdxs = nil +} diff --git a/pb/reputation_msg.pb.go b/pb/reputation_msg.pb.go new file mode 100644 index 000000000..91ecf57e0 --- /dev/null +++ b/pb/reputation_msg.pb.go @@ -0,0 +1,575 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: reputation/reputation_msg.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//测试 +type ReputationTalenttestReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RaceType int32 `protobuf:"varint,1,opt,name=raceType,proto3" json:"raceType"` + FriendValue int32 `protobuf:"varint,2,opt,name=friendValue,proto3" json:"friendValue"` +} + +func (x *ReputationTalenttestReq) Reset() { + *x = ReputationTalenttestReq{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalenttestReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalenttestReq) ProtoMessage() {} + +func (x *ReputationTalenttestReq) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_msg_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReputationTalenttestReq.ProtoReflect.Descriptor instead. +func (*ReputationTalenttestReq) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{0} +} + +func (x *ReputationTalenttestReq) GetRaceType() int32 { + if x != nil { + return x.RaceType + } + return 0 +} + +func (x *ReputationTalenttestReq) GetFriendValue() int32 { + if x != nil { + return x.FriendValue + } + return 0 +} + +type ReputationTalenttestResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReputationTalenttestResp) Reset() { + *x = ReputationTalenttestResp{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalenttestResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalenttestResp) ProtoMessage() {} + +func (x *ReputationTalenttestResp) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_msg_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReputationTalenttestResp.ProtoReflect.Descriptor instead. +func (*ReputationTalenttestResp) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{1} +} + +//天赋树升级 +type ReputationUpgradeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int32 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId"` //节点ID +} + +func (x *ReputationUpgradeReq) Reset() { + *x = ReputationUpgradeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationUpgradeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationUpgradeReq) ProtoMessage() {} + +func (x *ReputationUpgradeReq) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_msg_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReputationUpgradeReq.ProtoReflect.Descriptor instead. +func (*ReputationUpgradeReq) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{2} +} + +func (x *ReputationUpgradeReq) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +type ReputationUpgradeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReputationUpgradeResp) Reset() { + *x = ReputationUpgradeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationUpgradeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationUpgradeResp) ProtoMessage() {} + +func (x *ReputationUpgradeResp) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_msg_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReputationUpgradeResp.ProtoReflect.Descriptor instead. +func (*ReputationUpgradeResp) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{3} +} + +//获取天赋树节点 +type ReputationTalentReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReputationTalentReq) Reset() { + *x = ReputationTalentReq{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalentReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalentReq) ProtoMessage() {} + +func (x *ReputationTalentReq) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_msg_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReputationTalentReq.ProtoReflect.Descriptor instead. +func (*ReputationTalentReq) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{4} +} + +type ReputationTalentResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AttrGlobal *CampAttr `protobuf:"bytes,1,opt,name=attrGlobal,proto3" json:"attrGlobal"` + Camp *Camp `protobuf:"bytes,2,opt,name=camp,proto3" json:"camp"` +} + +func (x *ReputationTalentResp) Reset() { + *x = ReputationTalentResp{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalentResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalentResp) ProtoMessage() {} + +func (x *ReputationTalentResp) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_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 ReputationTalentResp.ProtoReflect.Descriptor instead. +func (*ReputationTalentResp) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{5} +} + +func (x *ReputationTalentResp) GetAttrGlobal() *CampAttr { + if x != nil { + return x.AttrGlobal + } + return nil +} + +func (x *ReputationTalentResp) GetCamp() *Camp { + if x != nil { + return x.Camp + } + return nil +} + +// 阵营天赋树重置 +type ReputationTalentresetReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RaceType int32 `protobuf:"varint,1,opt,name=raceType,proto3" json:"raceType"` +} + +func (x *ReputationTalentresetReq) Reset() { + *x = ReputationTalentresetReq{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalentresetReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalentresetReq) ProtoMessage() {} + +func (x *ReputationTalentresetReq) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_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 ReputationTalentresetReq.ProtoReflect.Descriptor instead. +func (*ReputationTalentresetReq) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{6} +} + +func (x *ReputationTalentresetReq) GetRaceType() int32 { + if x != nil { + return x.RaceType + } + return 0 +} + +type ReputationTalentresetResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReputationTalentresetResp) Reset() { + *x = ReputationTalentresetResp{} + if protoimpl.UnsafeEnabled { + mi := &file_reputation_reputation_msg_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReputationTalentresetResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReputationTalentresetResp) ProtoMessage() {} + +func (x *ReputationTalentresetResp) ProtoReflect() protoreflect.Message { + mi := &file_reputation_reputation_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 ReputationTalentresetResp.ProtoReflect.Descriptor instead. +func (*ReputationTalentresetResp) Descriptor() ([]byte, []int) { + return file_reputation_reputation_msg_proto_rawDescGZIP(), []int{7} +} + +var File_reputation_reputation_msg_proto protoreflect.FileDescriptor + +var file_reputation_reputation_msg_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x70, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1e, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x57, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2e, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x15, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x22, 0x5c, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, + 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x41, 0x74, 0x74, 0x72, 0x52, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x04, 0x63, 0x61, 0x6d, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x52, 0x04, + 0x63, 0x61, 0x6d, 0x70, 0x22, 0x36, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x1b, 0x0a, 0x19, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, + 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_reputation_reputation_msg_proto_rawDescOnce sync.Once + file_reputation_reputation_msg_proto_rawDescData = file_reputation_reputation_msg_proto_rawDesc +) + +func file_reputation_reputation_msg_proto_rawDescGZIP() []byte { + file_reputation_reputation_msg_proto_rawDescOnce.Do(func() { + file_reputation_reputation_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_reputation_reputation_msg_proto_rawDescData) + }) + return file_reputation_reputation_msg_proto_rawDescData +} + +var file_reputation_reputation_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_reputation_reputation_msg_proto_goTypes = []interface{}{ + (*ReputationTalenttestReq)(nil), // 0: reputationTalenttestReq + (*ReputationTalenttestResp)(nil), // 1: reputationTalenttestResp + (*ReputationUpgradeReq)(nil), // 2: reputationUpgradeReq + (*ReputationUpgradeResp)(nil), // 3: reputationUpgradeResp + (*ReputationTalentReq)(nil), // 4: reputationTalentReq + (*ReputationTalentResp)(nil), // 5: reputationTalentResp + (*ReputationTalentresetReq)(nil), // 6: reputationTalentresetReq + (*ReputationTalentresetResp)(nil), // 7: reputationTalentresetResp + (*CampAttr)(nil), // 8: CampAttr + (*Camp)(nil), // 9: Camp +} +var file_reputation_reputation_msg_proto_depIdxs = []int32{ + 8, // 0: reputationTalentResp.attrGlobal:type_name -> CampAttr + 9, // 1: reputationTalentResp.camp:type_name -> Camp + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_reputation_reputation_msg_proto_init() } +func file_reputation_reputation_msg_proto_init() { + if File_reputation_reputation_msg_proto != nil { + return + } + file_reputation_reputation_db_proto_init() + if !protoimpl.UnsafeEnabled { + file_reputation_reputation_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalenttestReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalenttestResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationUpgradeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationUpgradeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalentReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalentResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalentresetReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reputation_reputation_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReputationTalentresetResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_reputation_reputation_msg_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_reputation_reputation_msg_proto_goTypes, + DependencyIndexes: file_reputation_reputation_msg_proto_depIdxs, + MessageInfos: file_reputation_reputation_msg_proto_msgTypes, + }.Build() + File_reputation_reputation_msg_proto = out.File + file_reputation_reputation_msg_proto_rawDesc = nil + file_reputation_reputation_msg_proto_goTypes = nil + file_reputation_reputation_msg_proto_depIdxs = nil +} diff --git a/pb/user_db.pb.go b/pb/user_db.pb.go index e89282ebf..10ca45045 100644 --- a/pb/user_db.pb.go +++ b/pb/user_db.pb.go @@ -131,6 +131,10 @@ type DBUser struct { Ps int32 `protobuf:"varint,25,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 LastRecoverPsSec int64 `protobuf:"varint,26,opt,name=lastRecoverPsSec,proto3" json:"lastRecoverPsSec" bson:"lastRecoverPsSec"` // 上次体会恢复时间 Moongold int32 `protobuf:"varint,27,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓 + Talent1 int32 `protobuf:"varint,28,opt,name=talent1,proto3" json:"talent1" bson:"talent1"` //阵营1天赋点 + Talent2 int32 `protobuf:"varint,29,opt,name=talent2,proto3" json:"talent2" bson:"talent2"` //阵营2天赋点 + Talent3 int32 `protobuf:"varint,30,opt,name=talent3,proto3" json:"talent3" bson:"talent3"` //阵营3天赋点 + Talent4 int32 `protobuf:"varint,31,opt,name=talent4,proto3" json:"talent4" bson:"talent4"` //阵营4天赋点 } func (x *DBUser) Reset() { @@ -354,6 +358,34 @@ func (x *DBUser) GetMoongold() int32 { return 0 } +func (x *DBUser) GetTalent1() int32 { + if x != nil { + return x.Talent1 + } + return 0 +} + +func (x *DBUser) GetTalent2() int32 { + if x != nil { + return x.Talent2 + } + return 0 +} + +func (x *DBUser) GetTalent3() int32 { + if x != nil { + return x.Talent3 + } + return 0 +} + +func (x *DBUser) GetTalent4() int32 { + if x != nil { + return x.Talent4 + } + return 0 +} + type DBUserSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -614,7 +646,7 @@ var file_user_user_db_proto_rawDesc = []byte{ 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x8a, + 0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0xf2, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, @@ -655,40 +687,47 @@ var file_user_user_db_proto_rawDesc = []byte{ 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x22, 0xc7, 0x02, 0x0a, 0x0d, - 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, - 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, - 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62, - 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, - 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, - 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xb8, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, - 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x52, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, + 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x34, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, + 0x6e, 0x74, 0x34, 0x22, 0xc7, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, + 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, + 0x1c, 0x0a, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, + 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, + 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, + 0x73, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, + 0x75, 0x61, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, + 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, + 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, + 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, + 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xb8, 0x01, + 0x0a, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, + 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, + 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, + 0x7a, 0x7a, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/user_msg.pb.go b/pb/user_msg.pb.go index 380bfc9b2..506164042 100644 --- a/pb/user_msg.pb.go +++ b/pb/user_msg.pb.go @@ -595,6 +595,10 @@ type UserResChangedPush struct { Arenacoin int32 `protobuf:"varint,8,opt,name=arenacoin,proto3" json:"arenacoin" bson:"arenacoin"` //竞技场币 Ps int32 `protobuf:"varint,9,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 Moongold int32 `protobuf:"varint,10,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓 + Talent1 int32 `protobuf:"varint,11,opt,name=talent1,proto3" json:"talent1" bson:"talent1"` //阵营1天赋点 + Talent2 int32 `protobuf:"varint,12,opt,name=talent2,proto3" json:"talent2" bson:"talent2"` //阵营2天赋点 + Talent3 int32 `protobuf:"varint,13,opt,name=talent3,proto3" json:"talent3" bson:"talent3"` //阵营3天赋点 + Talent4 int32 `protobuf:"varint,14,opt,name=talent4,proto3" json:"talent4" bson:"talent4"` //阵营4天赋点 } func (x *UserResChangedPush) Reset() { @@ -699,6 +703,34 @@ func (x *UserResChangedPush) GetMoongold() int32 { return 0 } +func (x *UserResChangedPush) GetTalent1() int32 { + if x != nil { + return x.Talent1 + } + return 0 +} + +func (x *UserResChangedPush) GetTalent2() int32 { + if x != nil { + return x.Talent2 + } + return 0 +} + +func (x *UserResChangedPush) GetTalent3() int32 { + if x != nil { + return x.Talent3 + } + return 0 +} + +func (x *UserResChangedPush) GetTalent4() int32 { + if x != nil { + return x.Talent4 + } + return 0 +} + // 玩家在其它终端登录的通知 type UserOtherTermLoginPush struct { state protoimpl.MessageState @@ -2702,7 +2734,7 @@ var file_user_user_msg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x88, 0x02, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0xf0, 0x02, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, @@ -2719,137 +2751,143 @@ var file_user_user_msg_proto_rawDesc = []byte{ 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x75, - 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x50, 0x73, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x22, 0x3e, - 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x40, - 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, - 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x22, 0x26, - 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a, - 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, + 0x6e, 0x74, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, + 0x74, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x18, 0x0a, 0x07, + 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, + 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, + 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, + 0x22, 0x2a, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, + 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, + 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, + 0x73, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, + 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x40, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, + 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x12, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31, - 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, - 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x67, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, - 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, - 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x31, - 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, - 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x11, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x6c, 0x76, 0x22, 0x54, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x69, 0x70, - 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, - 0x67, 0x6e, 0x22, 0x26, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, - 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x02, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, - 0x70, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x6f, - 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, - 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, - 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, - 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13, - 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, - 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e, - 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, - 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x22, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, 0x15, 0x55, + 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, + 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, + 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, + 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, + 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, + 0x28, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, + 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, + 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, + 0x52, 0x65, 0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, + 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, + 0x64, 0x73, 0x22, 0x47, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x76, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c, + 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x54, 0x0a, 0x12, 0x55, + 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, + 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x69, 0x70, 0x4c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x70, 0x4c, + 0x76, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x26, 0x0a, 0x12, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1d, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, + 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, + 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, + 0x42, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, + 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, + 0x52, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, + 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, + 0x6a, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, + 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x22, 0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, + 0x6a, 0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x0d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2b, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, - 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 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, - 0x2b, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x27, 0x0a, 0x11, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x31, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, - 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x0d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2b, + 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, + 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x12, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 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, 0x2b, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x31, 0x0a, + 0x12, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/services/worker/main.go b/services/worker/main.go index 7f50df4ad..acfabc1fe 100644 --- a/services/worker/main.go +++ b/services/worker/main.go @@ -34,6 +34,7 @@ import ( "go_dreamfactory/modules/privilege" "go_dreamfactory/modules/pvp" "go_dreamfactory/modules/reddot" + "go_dreamfactory/modules/reputation" "go_dreamfactory/modules/rtask" "go_dreamfactory/modules/shop" "go_dreamfactory/modules/smithy" @@ -58,8 +59,8 @@ import ( ) /* - 服务类型:worker - 服务描述:处理梦工厂的具体业务需求,包含 user,pack,mail,friend...功能业务模块 +服务类型:worker +服务描述:处理梦工厂的具体业务需求,包含 user,pack,mail,friend...功能业务模块 */ var ( conf = flag.String("conf", "./conf/worker_1.yaml", "获取需要启动的服务配置文件") //启动服务的Id @@ -119,6 +120,7 @@ func main() { practice.NewModule(), parkour.NewModule(), tools.NewModule(), + reputation.NewModule(), ) } @@ -128,12 +130,12 @@ func NewService(ops ...rpcx.Option) core.IService { return s } -//worker 的服务对象定义 +// worker 的服务对象定义 type Service struct { services.ServiceBase } -//初始化worker需要的一些系统工具 +// 初始化worker需要的一些系统工具 func (this *Service) InitSys() { this.ServiceBase.InitSys() //初始化配置中心系统 每个服务都会用到的就在这个初始化就好 diff --git a/sys/configure/structs/Game.BuzkashiFm.go b/sys/configure/structs/Game.BuzkashiFm.go new file mode 100644 index 000000000..828a9568a --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiFm.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameBuzkashiFm struct { + _dataMap map[int32]*GameBuzkashiFmData + _dataList []*GameBuzkashiFmData +} + +func NewGameBuzkashiFm(_buf []map[string]interface{}) (*GameBuzkashiFm, error) { + _dataList := make([]*GameBuzkashiFmData, 0, len(_buf)) + dataMap := make(map[int32]*GameBuzkashiFmData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameBuzkashiFmData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Num] = _v + } + } + return &GameBuzkashiFm{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameBuzkashiFm) GetDataMap() map[int32]*GameBuzkashiFmData { + return table._dataMap +} + +func (table *GameBuzkashiFm) GetDataList() []*GameBuzkashiFmData { + return table._dataList +} + +func (table *GameBuzkashiFm) Get(key int32) *GameBuzkashiFmData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.BuzkashiFmData.go b/sys/configure/structs/Game.BuzkashiFmData.go new file mode 100644 index 000000000..d4270f2be --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiFmData.go @@ -0,0 +1,43 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameBuzkashiFmData struct { + Num int32 + Type int32 + Stime string + Broadcast string + Icon string +} + +const TypeId_GameBuzkashiFmData = -1288548636 + +func (*GameBuzkashiFmData) GetTypeId() int32 { + return -1288548636 +} + +func (_v *GameBuzkashiFmData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } + { var _ok_ bool; if _v.Stime, _ok_ = _buf["stime"].(string); !_ok_ { err = errors.New("stime error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["broadcast"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Broadcast error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Broadcast, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } } + return +} + +func DeserializeGameBuzkashiFmData(_buf map[string]interface{}) (*GameBuzkashiFmData, error) { + v := &GameBuzkashiFmData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.BuzkashiGrade.go b/sys/configure/structs/Game.BuzkashiGrade.go new file mode 100644 index 000000000..844167a60 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiGrade.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameBuzkashiGrade struct { + _dataMap map[int32]*GameBuzkashiGradeData + _dataList []*GameBuzkashiGradeData +} + +func NewGameBuzkashiGrade(_buf []map[string]interface{}) (*GameBuzkashiGrade, error) { + _dataList := make([]*GameBuzkashiGradeData, 0, len(_buf)) + dataMap := make(map[int32]*GameBuzkashiGradeData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameBuzkashiGradeData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Num] = _v + } + } + return &GameBuzkashiGrade{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameBuzkashiGrade) GetDataMap() map[int32]*GameBuzkashiGradeData { + return table._dataMap +} + +func (table *GameBuzkashiGrade) GetDataList() []*GameBuzkashiGradeData { + return table._dataList +} + +func (table *GameBuzkashiGrade) Get(key int32) *GameBuzkashiGradeData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.BuzkashiGradeData.go b/sys/configure/structs/Game.BuzkashiGradeData.go new file mode 100644 index 000000000..58cefc9c3 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiGradeData.go @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameBuzkashiGradeData struct { + Num int32 + Distance string + Value int32 +} + +const TypeId_GameBuzkashiGradeData = -378990226 + +func (*GameBuzkashiGradeData) GetTypeId() int32 { + return -378990226 +} + +func (_v *GameBuzkashiGradeData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } + { var _ok_ bool; if _v.Distance, _ok_ = _buf["distance"].(string); !_ok_ { err = errors.New("distance error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value"].(float64); !_ok_ { err = errors.New("value error"); return }; _v.Value = int32(_tempNum_) } + return +} + +func DeserializeGameBuzkashiGradeData(_buf map[string]interface{}) (*GameBuzkashiGradeData, error) { + v := &GameBuzkashiGradeData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.BuzkashiLv.go b/sys/configure/structs/Game.BuzkashiLv.go new file mode 100644 index 000000000..5c4c1a3f2 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiLv.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameBuzkashiLv struct { + _dataMap map[int32]*GameBuzkashiLvData + _dataList []*GameBuzkashiLvData +} + +func NewGameBuzkashiLv(_buf []map[string]interface{}) (*GameBuzkashiLv, error) { + _dataList := make([]*GameBuzkashiLvData, 0, len(_buf)) + dataMap := make(map[int32]*GameBuzkashiLvData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameBuzkashiLvData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Num] = _v + } + } + return &GameBuzkashiLv{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameBuzkashiLv) GetDataMap() map[int32]*GameBuzkashiLvData { + return table._dataMap +} + +func (table *GameBuzkashiLv) GetDataList() []*GameBuzkashiLvData { + return table._dataList +} + +func (table *GameBuzkashiLv) Get(key int32) *GameBuzkashiLvData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.BuzkashiLvData.go b/sys/configure/structs/Game.BuzkashiLvData.go new file mode 100644 index 000000000..ad32def00 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiLvData.go @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameBuzkashiLvData struct { + Num int32 + Score string + Value int32 +} + +const TypeId_GameBuzkashiLvData = -1108462041 + +func (*GameBuzkashiLvData) GetTypeId() int32 { + return -1108462041 +} + +func (_v *GameBuzkashiLvData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } + { var _ok_ bool; if _v.Score, _ok_ = _buf["score"].(string); !_ok_ { err = errors.New("score error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value"].(float64); !_ok_ { err = errors.New("value error"); return }; _v.Value = int32(_tempNum_) } + return +} + +func DeserializeGameBuzkashiLvData(_buf map[string]interface{}) (*GameBuzkashiLvData, error) { + v := &GameBuzkashiLvData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.BuzkashiMount.go b/sys/configure/structs/Game.BuzkashiMount.go new file mode 100644 index 000000000..256db7a82 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiMount.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameBuzkashiMount struct { + _dataMap map[string]*GameBuzkashiMountData + _dataList []*GameBuzkashiMountData +} + +func NewGameBuzkashiMount(_buf []map[string]interface{}) (*GameBuzkashiMount, error) { + _dataList := make([]*GameBuzkashiMountData, 0, len(_buf)) + dataMap := make(map[string]*GameBuzkashiMountData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameBuzkashiMountData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Num] = _v + } + } + return &GameBuzkashiMount{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameBuzkashiMount) GetDataMap() map[string]*GameBuzkashiMountData { + return table._dataMap +} + +func (table *GameBuzkashiMount) GetDataList() []*GameBuzkashiMountData { + return table._dataList +} + +func (table *GameBuzkashiMount) Get(key string) *GameBuzkashiMountData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.BuzkashiMountData.go b/sys/configure/structs/Game.BuzkashiMountData.go new file mode 100644 index 000000000..503940851 --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiMountData.go @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameBuzkashiMountData struct { + Num string + Stime int32 + Etime int32 + Hp int32 + Model string + Point string + Moderate int32 + Sprint int32 + Acceleration int32 + Deceleration int32 +} + +const TypeId_GameBuzkashiMountData = 1598069936 + +func (*GameBuzkashiMountData) GetTypeId() int32 { + return 1598069936 +} + +func (_v *GameBuzkashiMountData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; if _v.Num, _ok_ = _buf["num"].(string); !_ok_ { err = errors.New("num error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stime"].(float64); !_ok_ { err = errors.New("stime error"); return }; _v.Stime = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["etime"].(float64); !_ok_ { err = errors.New("etime error"); return }; _v.Etime = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = int32(_tempNum_) } + { var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } } + { var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["moderate"].(float64); !_ok_ { err = errors.New("moderate error"); return }; _v.Moderate = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sprint"].(float64); !_ok_ { err = errors.New("sprint error"); return }; _v.Sprint = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["acceleration"].(float64); !_ok_ { err = errors.New("acceleration error"); return }; _v.Acceleration = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deceleration"].(float64); !_ok_ { err = errors.New("deceleration error"); return }; _v.Deceleration = int32(_tempNum_) } + return +} + +func DeserializeGameBuzkashiMountData(_buf map[string]interface{}) (*GameBuzkashiMountData, error) { + v := &GameBuzkashiMountData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.BuzkashiReward.go b/sys/configure/structs/Game.BuzkashiReward.go new file mode 100644 index 000000000..8afd2c6cb --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiReward.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameBuzkashiReward struct { + _dataMap map[int32]*GameBuzkashiRewardData + _dataList []*GameBuzkashiRewardData +} + +func NewGameBuzkashiReward(_buf []map[string]interface{}) (*GameBuzkashiReward, error) { + _dataList := make([]*GameBuzkashiRewardData, 0, len(_buf)) + dataMap := make(map[int32]*GameBuzkashiRewardData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameBuzkashiRewardData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Key] = _v + } + } + return &GameBuzkashiReward{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameBuzkashiReward) GetDataMap() map[int32]*GameBuzkashiRewardData { + return table._dataMap +} + +func (table *GameBuzkashiReward) GetDataList() []*GameBuzkashiRewardData { + return table._dataList +} + +func (table *GameBuzkashiReward) Get(key int32) *GameBuzkashiRewardData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.BuzkashiRewardData.go b/sys/configure/structs/Game.BuzkashiRewardData.go new file mode 100644 index 000000000..cf44a2e1f --- /dev/null +++ b/sys/configure/structs/Game.BuzkashiRewardData.go @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameBuzkashiRewardData struct { + Key int32 + Schedule int32 + Reword []*Gameatn +} + +const TypeId_GameBuzkashiRewardData = -1577911348 + +func (*GameBuzkashiRewardData) GetTypeId() int32 { + return -1577911348 +} + +func (_v *GameBuzkashiRewardData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["schedule"].(float64); !_ok_ { err = errors.New("schedule error"); return }; _v.Schedule = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return } + + _v.Reword = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Reword = append(_v.Reword, _list_v_) + } + } + + return +} + +func DeserializeGameBuzkashiRewardData(_buf map[string]interface{}) (*GameBuzkashiRewardData, error) { + v := &GameBuzkashiRewardData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.Navigation.go b/sys/configure/structs/Game.Navigation.go new file mode 100644 index 000000000..66b6a814a --- /dev/null +++ b/sys/configure/structs/Game.Navigation.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameNavigation struct { + _dataMap map[int32]*GameNavigationData + _dataList []*GameNavigationData +} + +func NewGameNavigation(_buf []map[string]interface{}) (*GameNavigation, error) { + _dataList := make([]*GameNavigationData, 0, len(_buf)) + dataMap := make(map[int32]*GameNavigationData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameNavigationData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameNavigation{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameNavigation) GetDataMap() map[int32]*GameNavigationData { + return table._dataMap +} + +func (table *GameNavigation) GetDataList() []*GameNavigationData { + return table._dataList +} + +func (table *GameNavigation) Get(key int32) *GameNavigationData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.NavigationData.go b/sys/configure/structs/Game.NavigationData.go new file mode 100644 index 000000000..293610cc0 --- /dev/null +++ b/sys/configure/structs/Game.NavigationData.go @@ -0,0 +1,47 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameNavigationData struct { + Id int32 + Scene string + Scenename string + Sceneicon string + Functionname string + NpcName string + Functionicon string +} + +const TypeId_GameNavigationData = -800652966 + +func (*GameNavigationData) GetTypeId() int32 { + return -800652966 +} + +func (_v *GameNavigationData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) } + { var _ok_ bool; if _v.Scene, _ok_ = _buf["scene"].(string); !_ok_ { err = errors.New("scene error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["scenename"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Scenename error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Scenename, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; if _v.Sceneicon, _ok_ = _buf["sceneicon"].(string); !_ok_ { err = errors.New("sceneicon error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["functionname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Functionname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Functionname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; if _v.NpcName, _ok_ = _buf["npcName"].(string); !_ok_ { err = errors.New("npcName error"); return } } + { var _ok_ bool; if _v.Functionicon, _ok_ = _buf["functionicon"].(string); !_ok_ { err = errors.New("functionicon error"); return } } + return +} + +func DeserializeGameNavigationData(_buf map[string]interface{}) (*GameNavigationData, error) { + v := &GameNavigationData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.buzkashiOpen.go b/sys/configure/structs/Game.buzkashiOpen.go new file mode 100644 index 000000000..819f52683 --- /dev/null +++ b/sys/configure/structs/Game.buzkashiOpen.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GamebuzkashiOpen struct { + _dataMap map[int32]*GamebuzkashiOpenData + _dataList []*GamebuzkashiOpenData +} + +func NewGamebuzkashiOpen(_buf []map[string]interface{}) (*GamebuzkashiOpen, error) { + _dataList := make([]*GamebuzkashiOpenData, 0, len(_buf)) + dataMap := make(map[int32]*GamebuzkashiOpenData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGamebuzkashiOpenData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Num] = _v + } + } + return &GamebuzkashiOpen{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GamebuzkashiOpen) GetDataMap() map[int32]*GamebuzkashiOpenData { + return table._dataMap +} + +func (table *GamebuzkashiOpen) GetDataList() []*GamebuzkashiOpenData { + return table._dataList +} + +func (table *GamebuzkashiOpen) Get(key int32) *GamebuzkashiOpenData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.buzkashiOpenData.go b/sys/configure/structs/Game.buzkashiOpenData.go new file mode 100644 index 000000000..3189a64c2 --- /dev/null +++ b/sys/configure/structs/Game.buzkashiOpenData.go @@ -0,0 +1,43 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GamebuzkashiOpenData struct { + Num int32 + Shtime int32 + Smtime int32 + Ehtime int32 + Emtime int32 +} + +const TypeId_GamebuzkashiOpenData = 1621393927 + +func (*GamebuzkashiOpenData) GetTypeId() int32 { + return 1621393927 +} + +func (_v *GamebuzkashiOpenData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["shtime"].(float64); !_ok_ { err = errors.New("shtime error"); return }; _v.Shtime = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["smtime"].(float64); !_ok_ { err = errors.New("smtime error"); return }; _v.Smtime = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ehtime"].(float64); !_ok_ { err = errors.New("ehtime error"); return }; _v.Ehtime = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["emtime"].(float64); !_ok_ { err = errors.New("emtime error"); return }; _v.Emtime = int32(_tempNum_) } + return +} + +func DeserializeGamebuzkashiOpenData(_buf map[string]interface{}) (*GamebuzkashiOpenData, error) { + v := &GamebuzkashiOpenData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go index 5c53fea6d..a2c92e40d 100644 --- a/sys/configure/structs/Tables.go +++ b/sys/configure/structs/Tables.go @@ -189,6 +189,13 @@ type Tables struct { Favorability *GameFavorability Friends *GameFriends CampLv *GameCampLv + Navigation *GameNavigation + BuzkashiMount *GameBuzkashiMount + BuzkashiLv *GameBuzkashiLv + BuzkashiGrade *GameBuzkashiGrade + BuzkashiReward *GameBuzkashiReward + BuzkashiFm *GameBuzkashiFm + buzkashiOpen *GamebuzkashiOpen } func NewTables(loader JsonLoader) (*Tables, error) { @@ -1264,5 +1271,47 @@ func NewTables(loader JsonLoader) (*Tables, error) { if tables.CampLv, err = NewGameCampLv(buf) ; err != nil { return nil, err } + if buf, err = loader("game_navigation") ; err != nil { + return nil, err + } + if tables.Navigation, err = NewGameNavigation(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashimount") ; err != nil { + return nil, err + } + if tables.BuzkashiMount, err = NewGameBuzkashiMount(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashilv") ; err != nil { + return nil, err + } + if tables.BuzkashiLv, err = NewGameBuzkashiLv(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashigrade") ; err != nil { + return nil, err + } + if tables.BuzkashiGrade, err = NewGameBuzkashiGrade(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashireward") ; err != nil { + return nil, err + } + if tables.BuzkashiReward, err = NewGameBuzkashiReward(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashifm") ; err != nil { + return nil, err + } + if tables.BuzkashiFm, err = NewGameBuzkashiFm(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_buzkashiopen") ; err != nil { + return nil, err + } + if tables.buzkashiOpen, err = NewGamebuzkashiOpen(buf) ; err != nil { + return nil, err + } return tables, nil } diff --git a/sys/configure/structs/game.globalData.go b/sys/configure/structs/game.globalData.go index 76dc46387..87c169344 100644 --- a/sys/configure/structs/game.globalData.go +++ b/sys/configure/structs/game.globalData.go @@ -222,7 +222,10 @@ type GameGlobalData struct { BuzkashiVintegral []*Gameatn BuzkashiFintegral []*Gameatn BuzkashiResurrection int32 +<<<<<<< HEAD FavorabilityAttenuation []*Gamekv +======= +>>>>>>> 2ff92487cf513d980124f84c7fe3db1e6bb88e31 } const TypeId_GameGlobalData = 477542761 @@ -911,6 +914,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) { } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["buzkashi_resurrection"].(float64); !_ok_ { err = errors.New("buzkashi_resurrection error"); return }; _v.BuzkashiResurrection = int32(_tempNum_) } +<<<<<<< HEAD { var _arr_ []interface{} var _ok_ bool @@ -925,6 +929,8 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) { } } +======= +>>>>>>> 2ff92487cf513d980124f84c7fe3db1e6bb88e31 return } diff --git a/sys/configure/structs/game.modelData.go b/sys/configure/structs/game.modelData.go index 633f8ba0c..8d2478052 100644 --- a/sys/configure/structs/game.modelData.go +++ b/sys/configure/structs/game.modelData.go @@ -27,6 +27,8 @@ type GameModelData struct { Bust string Postxyz []float32 Rotation serialization.Vector3 + BoxPos serialization.Vector3 + BoxSize serialization.Vector3 } const TypeId_GameModelData = -305436809 @@ -71,6 +73,22 @@ func (_v *GameModelData)Deserialize(_buf map[string]interface{}) (err error) { _v.Rotation = serialization.NewVector3(_x_, _y_, _z_) } + { var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["boxPos"].(map[string]interface{}); !_ok_ { err = errors.New("boxPos error"); return } + var _x_, _y_, _z_ float32; + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) } + _v.BoxPos = serialization.NewVector3(_x_, _y_, _z_) + } + + { var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["boxSize"].(map[string]interface{}); !_ok_ { err = errors.New("boxSize error"); return } + var _x_, _y_, _z_ float32; + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) } + _v.BoxSize = serialization.NewVector3(_x_, _y_, _z_) + } + return }