diff --git a/bin/json/game_camplv.json b/bin/json/game_camplv.json
new file mode 100644
index 000000000..c9ac87be5
--- /dev/null
+++ b/bin/json/game_camplv.json
@@ -0,0 +1,222 @@
+[
+ {
+ "id": 1,
+ "reputation_lv": 1,
+ "raceType": 1,
+ "reputation_exp": 20,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 1
+ }
+ },
+ {
+ "id": 2,
+ "reputation_lv": 2,
+ "raceType": 1,
+ "reputation_exp": 30,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 2
+ }
+ },
+ {
+ "id": 3,
+ "reputation_lv": 3,
+ "raceType": 1,
+ "reputation_exp": 40,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 3
+ }
+ },
+ {
+ "id": 4,
+ "reputation_lv": 4,
+ "raceType": 1,
+ "reputation_exp": 50,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 4
+ }
+ },
+ {
+ "id": 5,
+ "reputation_lv": 5,
+ "raceType": 1,
+ "reputation_exp": 60,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 5
+ }
+ },
+ {
+ "id": 6,
+ "reputation_lv": 6,
+ "raceType": 1,
+ "reputation_exp": 70,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 6
+ }
+ },
+ {
+ "id": 7,
+ "reputation_lv": 7,
+ "raceType": 1,
+ "reputation_exp": 80,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 7
+ }
+ },
+ {
+ "id": 8,
+ "reputation_lv": 1,
+ "raceType": 2,
+ "reputation_exp": 10,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 8
+ }
+ },
+ {
+ "id": 9,
+ "reputation_lv": 2,
+ "raceType": 2,
+ "reputation_exp": 20,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 9
+ }
+ },
+ {
+ "id": 10,
+ "reputation_lv": 3,
+ "raceType": 2,
+ "reputation_exp": 30,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 10
+ }
+ },
+ {
+ "id": 11,
+ "reputation_lv": 4,
+ "raceType": 2,
+ "reputation_exp": 40,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 11
+ }
+ },
+ {
+ "id": 12,
+ "reputation_lv": 5,
+ "raceType": 2,
+ "reputation_exp": 50,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 12
+ }
+ },
+ {
+ "id": 13,
+ "reputation_lv": 6,
+ "raceType": 2,
+ "reputation_exp": 60,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 13
+ }
+ },
+ {
+ "id": 14,
+ "reputation_lv": 7,
+ "raceType": 2,
+ "reputation_exp": 70,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 14
+ }
+ },
+ {
+ "id": 15,
+ "reputation_lv": 8,
+ "raceType": 2,
+ "reputation_exp": 80,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 15
+ }
+ },
+ {
+ "id": 16,
+ "reputation_lv": 9,
+ "raceType": 2,
+ "reputation_exp": 90,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 16
+ }
+ },
+ {
+ "id": 17,
+ "reputation_lv": 10,
+ "raceType": 2,
+ "reputation_exp": 100,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 17
+ }
+ },
+ {
+ "id": 18,
+ "reputation_lv": 11,
+ "raceType": 2,
+ "reputation_exp": 110,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 18
+ }
+ },
+ {
+ "id": 19,
+ "reputation_lv": 12,
+ "raceType": 2,
+ "reputation_exp": 120,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 19
+ }
+ },
+ {
+ "id": 20,
+ "reputation_lv": 20,
+ "raceType": 2,
+ "reputation_exp": 130,
+ "Reward": {
+ "a": "attr",
+ "t": "zy",
+ "n": 20
+ }
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_dispatch_task.json b/bin/json/game_dispatch_task.json
index 066aa7242..9d07473b1 100644
--- a/bin/json/game_dispatch_task.json
+++ b/bin/json/game_dispatch_task.json
@@ -8,7 +8,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 111,
+ "tasktime": 170,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -56,7 +56,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 174,
+ "tasktime": 176,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -104,7 +104,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 100,
+ "tasktime": 149,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -152,7 +152,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 140,
+ "tasktime": 104,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -200,7 +200,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 176,
+ "tasktime": 79,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -248,7 +248,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 65,
+ "tasktime": 158,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -296,7 +296,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 124,
+ "tasktime": 69,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -344,7 +344,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 96,
+ "tasktime": 165,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -392,7 +392,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 114,
+ "tasktime": 162,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -440,7 +440,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 109,
+ "tasktime": 78,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -488,7 +488,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 92,
+ "tasktime": 173,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -536,7 +536,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 137,
+ "tasktime": 120,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -584,7 +584,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 109,
+ "tasktime": 139,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -632,7 +632,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 109,
+ "tasktime": 60,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -680,7 +680,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 107,
+ "tasktime": 167,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -728,7 +728,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 175,
+ "tasktime": 130,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -776,7 +776,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 142,
+ "tasktime": 132,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -824,7 +824,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 109,
+ "tasktime": 61,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -872,7 +872,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 61,
+ "tasktime": 90,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -920,7 +920,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 172,
+ "tasktime": 146,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -968,7 +968,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 120,
+ "tasktime": 77,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1016,7 +1016,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 64,
+ "tasktime": 90,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -1064,7 +1064,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 103,
+ "tasktime": 67,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -1112,7 +1112,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 140,
+ "tasktime": 175,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -1160,7 +1160,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 124,
+ "tasktime": 156,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1208,7 +1208,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 147,
+ "tasktime": 152,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -1256,7 +1256,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 120,
+ "tasktime": 149,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -1304,7 +1304,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 137,
+ "tasktime": 156,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -1352,7 +1352,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 90,
+ "tasktime": 91,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1400,7 +1400,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 158,
+ "tasktime": 110,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -1448,7 +1448,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 104,
+ "tasktime": 89,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -1496,7 +1496,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 158,
+ "tasktime": 169,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -1544,7 +1544,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 92,
+ "tasktime": 90,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1592,7 +1592,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 83,
+ "tasktime": 117,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -1640,7 +1640,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 60,
+ "tasktime": 73,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -1688,7 +1688,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 152,
+ "tasktime": 179,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -1736,7 +1736,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 88,
+ "tasktime": 142,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1784,7 +1784,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 156,
+ "tasktime": 178,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -1832,7 +1832,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 153,
+ "tasktime": 150,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -1880,7 +1880,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 110,
+ "tasktime": 175,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -1928,7 +1928,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 127,
+ "tasktime": 139,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -1976,7 +1976,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 115,
+ "tasktime": 105,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2024,7 +2024,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 109,
+ "tasktime": 125,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -2072,7 +2072,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 174,
+ "tasktime": 175,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -2120,7 +2120,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 79,
+ "tasktime": 166,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -2168,7 +2168,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 70,
+ "tasktime": 62,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2216,7 +2216,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 103,
+ "tasktime": 167,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -2264,7 +2264,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 143,
+ "tasktime": 94,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -2312,7 +2312,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 123,
+ "tasktime": 81,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -2360,7 +2360,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 65,
+ "tasktime": 104,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2408,7 +2408,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 171,
+ "tasktime": 164,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -2456,7 +2456,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 150,
+ "tasktime": 92,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -2504,7 +2504,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 90,
+ "tasktime": 151,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -2552,7 +2552,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 163,
+ "tasktime": 89,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2600,7 +2600,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 87,
+ "tasktime": 124,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -2648,7 +2648,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 100,
+ "tasktime": 162,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -2696,7 +2696,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 154,
+ "tasktime": 92,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -2744,7 +2744,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 167,
+ "tasktime": 63,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2792,7 +2792,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 114,
+ "tasktime": 82,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -2840,7 +2840,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 64,
+ "tasktime": 116,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -2888,7 +2888,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 157,
+ "tasktime": 128,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -2936,7 +2936,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 129,
+ "tasktime": 67,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -2984,7 +2984,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 166,
+ "tasktime": 141,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -3032,7 +3032,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 100,
+ "tasktime": 81,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -3080,7 +3080,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 63,
+ "tasktime": 175,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -3128,7 +3128,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 137,
+ "tasktime": 169,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -3176,7 +3176,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 70,
+ "tasktime": 90,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -3224,7 +3224,7 @@
},
"icon": "xmwg_rw_pt5",
"taskcd": 200,
- "tasktime": 63,
+ "tasktime": 131,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -3272,7 +3272,7 @@
},
"icon": "xmwg_rw_pt6",
"taskcd": 200,
- "tasktime": 83,
+ "tasktime": 160,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -3320,7 +3320,7 @@
},
"icon": "xmwg_rw_pt7",
"taskcd": 200,
- "tasktime": 163,
+ "tasktime": 69,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
@@ -3368,7 +3368,7 @@
},
"icon": "xmwg_rw_pt1",
"taskcd": 200,
- "tasktime": 91,
+ "tasktime": 102,
"tasktxt": {
"key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托"
@@ -3416,7 +3416,7 @@
},
"icon": "xmwg_rw_pt2",
"taskcd": 200,
- "tasktime": 73,
+ "tasktime": 168,
"tasktxt": {
"key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托"
@@ -3464,7 +3464,7 @@
},
"icon": "xmwg_rw_pt3",
"taskcd": 200,
- "tasktime": 151,
+ "tasktime": 119,
"tasktxt": {
"key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托"
@@ -3512,7 +3512,7 @@
},
"icon": "xmwg_rw_pt4",
"taskcd": 200,
- "tasktime": 115,
+ "tasktime": 110,
"tasktxt": {
"key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托"
diff --git a/bin/json/game_favorability.json b/bin/json/game_favorability.json
new file mode 100644
index 000000000..99fee7d74
--- /dev/null
+++ b/bin/json/game_favorability.json
@@ -0,0 +1,3754 @@
+[
+ {
+ "id": 1,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 1,
+ "favor_exp": 200,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_1",
+ "text": "点头之交"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "return_txt": {
+ "key": "favorability_favorability_return_txt",
+ "text": "达到好感度{0}级可领取"
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 2,
+ "favor_exp": 300,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_2",
+ "text": "点头之交"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 3,
+ "favor_exp": 400,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_3",
+ "text": "点头之交"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "return_txt": {
+ "key": "favorability_favorability_return_txt",
+ "text": "达到好感度{0}级可领取"
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 4,
+ "favor_exp": 500,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_4",
+ "text": "点头之交"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 6,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 5,
+ "favor_exp": 600,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_5",
+ "text": "点头之交"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "return_txt": {
+ "key": "favorability_favorability_return_txt",
+ "text": "达到好感度{0}级可领取"
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 7,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 6,
+ "favor_exp": 700,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_6",
+ "text": "情投意合"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 8,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 7,
+ "favor_exp": 800,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_7",
+ "text": "情投意合"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "return_txt": {
+ "key": "favorability_favorability_return_txt",
+ "text": "达到好感度{0}级可领取"
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 9,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 8,
+ "favor_exp": 900,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_8",
+ "text": "情投意合"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 10,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 9,
+ "favor_exp": 1000,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_9",
+ "text": "情投意合"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "return_txt": {
+ "key": "favorability_favorability_return_txt",
+ "text": "达到好感度{0}级可领取"
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 11,
+ "hid": "14002",
+ "name": {
+ "key": "hero_14002",
+ "text": "大龙"
+ },
+ "favor_lv": 10,
+ "favor_exp": 0,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_10",
+ "text": "情投意合"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 3,
+ 5
+ ],
+ "biography_name": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_txt": [
+ "140021",
+ "140022",
+ "140023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 12,
+ "hid": "14005",
+ "name": {
+ "key": "hero_14005",
+ "text": "鹤大师"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14005",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14005",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14005",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "140051",
+ "140052",
+ "140053"
+ ],
+ "biography_txt": [
+ "140051",
+ "140052",
+ "140053"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 2,
+ 4,
+ 6,
+ 8
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 13,
+ "hid": "14006",
+ "name": {
+ "key": "hero_14006",
+ "text": "布兰奇"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_14006",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_14006",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_14006",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "140061",
+ "140062",
+ "140063"
+ ],
+ "biography_txt": [
+ "140061",
+ "140062",
+ "140063"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 14,
+ "hid": "15004",
+ "name": {
+ "key": "hero_15004",
+ "text": "小欧"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_15004",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_15004",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_15004",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "150041",
+ "150042",
+ "150043"
+ ],
+ "biography_txt": [
+ "150041",
+ "150042",
+ "150043"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 15,
+ "hid": "24002",
+ "name": {
+ "key": "hero_24002",
+ "text": "牙仙"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_24002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_24002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_24002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "240021",
+ "240022",
+ "240023"
+ ],
+ "biography_txt": [
+ "240021",
+ "240022",
+ "240023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 16,
+ "hid": "24003",
+ "name": {
+ "key": "hero_24003",
+ "text": "睡神沙人"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_24003",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_24003",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_24003",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "240031",
+ "240032",
+ "240033"
+ ],
+ "biography_txt": [
+ "240031",
+ "240032",
+ "240033"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 17,
+ "hid": "24004",
+ "name": {
+ "key": "hero_24004",
+ "text": "邦尼兔"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_24004",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_24004",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_24004",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "240041",
+ "240042",
+ "240043"
+ ],
+ "biography_txt": [
+ "240041",
+ "240042",
+ "240043"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 18,
+ "hid": "24005",
+ "name": {
+ "key": "hero_24005",
+ "text": "金猴"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_24005",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_24005",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_24005",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "240051",
+ "240052",
+ "240053"
+ ],
+ "biography_txt": [
+ "240051",
+ "240052",
+ "240053"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 19,
+ "hid": "24008",
+ "name": {
+ "key": "hero_24008",
+ "text": "暴芙那特"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_24008",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_24008",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_24008",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "240081",
+ "240082",
+ "240083"
+ ],
+ "biography_txt": [
+ "240081",
+ "240082",
+ "240083"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 20,
+ "hid": "25001",
+ "name": {
+ "key": "hero_25001",
+ "text": "阿宝"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_25001",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_25001",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_25001",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "250011",
+ "250012",
+ "250013"
+ ],
+ "biography_txt": [
+ "250011",
+ "250012",
+ "250013"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 21,
+ "hid": "25003",
+ "name": {
+ "key": "hero_25003",
+ "text": "羊仙姑"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_25003",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_25003",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_25003",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "250031",
+ "250032",
+ "250033"
+ ],
+ "biography_txt": [
+ "250031",
+ "250032",
+ "250033"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 22,
+ "hid": "25004",
+ "name": {
+ "key": "hero_25004",
+ "text": "波比"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_25004",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_25004",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_25004",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "250041",
+ "250042",
+ "250043"
+ ],
+ "biography_txt": [
+ "250041",
+ "250042",
+ "250043"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 23,
+ "hid": "34001",
+ "name": {
+ "key": "hero_34001",
+ "text": "贫嘴驴"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_34001",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_34001",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_34001",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "340011",
+ "340012",
+ "340013"
+ ],
+ "biography_txt": [
+ "340011",
+ "340012",
+ "340013"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 24,
+ "hid": "34003",
+ "name": {
+ "key": "hero_34003",
+ "text": "圣诞老人"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_34003",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_34003",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_34003",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "340031",
+ "340032",
+ "340033"
+ ],
+ "biography_txt": [
+ "340031",
+ "340032",
+ "340033"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 25,
+ "hid": "34004",
+ "name": {
+ "key": "hero_34004",
+ "text": "瓜哥"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_34004",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_34004",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_34004",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "340041",
+ "340042",
+ "340043"
+ ],
+ "biography_txt": [
+ "340041",
+ "340042",
+ "340043"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 26,
+ "hid": "34006",
+ "name": {
+ "key": "hero_34006",
+ "text": "冰霜杰克"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_34006",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_34006",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_34006",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "340061",
+ "340062",
+ "340063"
+ ],
+ "biography_txt": [
+ "340061",
+ "340062",
+ "340063"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 27,
+ "hid": "34008",
+ "name": {
+ "key": "hero_34008",
+ "text": "悍夫那特"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_34008",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_34008",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_34008",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "340081",
+ "340082",
+ "340083"
+ ],
+ "biography_txt": [
+ "340081",
+ "340082",
+ "340083"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 28,
+ "hid": "35001",
+ "name": {
+ "key": "hero_35001",
+ "text": "师父"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_35001",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_35001",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_35001",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "350011",
+ "350012",
+ "350013"
+ ],
+ "biography_txt": [
+ "350011",
+ "350012",
+ "350013"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 29,
+ "hid": "35002",
+ "name": {
+ "key": "hero_35002",
+ "text": "希卡普"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_35002",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_35002",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_35002",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "350021",
+ "350022",
+ "350023"
+ ],
+ "biography_txt": [
+ "350021",
+ "350022",
+ "350023"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 30,
+ "hid": "35003",
+ "name": {
+ "key": "hero_35003",
+ "text": "漆黑"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_35003",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_35003",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_35003",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "350031",
+ "350032",
+ "350033"
+ ],
+ "biography_txt": [
+ "350031",
+ "350032",
+ "350033"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 31,
+ "hid": "35004",
+ "name": {
+ "key": "hero_35004",
+ "text": "黛安·福克斯顿"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_35004",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_35004",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_35004",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "350041",
+ "350042",
+ "350043"
+ ],
+ "biography_txt": [
+ "350041",
+ "350042",
+ "350043"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 32,
+ "hid": "35006",
+ "name": {
+ "key": "hero_35006",
+ "text": "平先生"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_35006",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_35006",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_35006",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "350061",
+ "350062",
+ "350063"
+ ],
+ "biography_txt": [
+ "350061",
+ "350062",
+ "350063"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 33,
+ "hid": "43005",
+ "name": {
+ "key": "hero_43005",
+ "text": "瓦希尔指挥官"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_43005",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_43005",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_43005",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "430051",
+ "430052"
+ ],
+ "biography_txt": [
+ "430051",
+ "430052"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 34,
+ "hid": "43007",
+ "name": {
+ "key": "hero_43007",
+ "text": "戈伯"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_43007",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_43007",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_43007",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "430071",
+ "430072",
+ "430073"
+ ],
+ "biography_txt": [
+ "430071",
+ "430072",
+ "430073"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 35,
+ "hid": "44006",
+ "name": {
+ "key": "hero_44006",
+ "text": "悍娇虎"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_44006",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_44006",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_44006",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "440061",
+ "440062",
+ "440063"
+ ],
+ "biography_txt": [
+ "440061",
+ "440062",
+ "440063"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 36,
+ "hid": "45001",
+ "name": {
+ "key": "hero_45001",
+ "text": "乌龟大师"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_45001",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_45001",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_45001",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "450011",
+ "450012",
+ "450013"
+ ],
+ "biography_txt": [
+ "450011",
+ "450012",
+ "450013"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 37,
+ "hid": "53001",
+ "name": {
+ "key": "hero_53001",
+ "text": "埃雷特"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_53001",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_53001",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_53001",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "530011",
+ "530012",
+ "530013"
+ ],
+ "biography_txt": [
+ "530011",
+ "530012",
+ "530013"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "id": 38,
+ "hid": "54005",
+ "name": {
+ "key": "hero_54005",
+ "text": "无牙仔"
+ },
+ "favor_lv": 0,
+ "favor_exp": 100,
+ "lv_name": {
+ "key": "favorability_favorability_lv_name_0",
+ "text": "萍水相逢"
+ },
+ "privilege_type": 0,
+ "privilege_value": 0,
+ "return_reward": [],
+ "return_txt": {
+ "key": "",
+ "text": ""
+ },
+ "likes_food": [],
+ "disliking_food": [],
+ "likes_txt": {
+ "key": "favorability_favorability_likes_txt_54005",
+ "text": "我很喜欢,谢谢!"
+ },
+ "ordinary_txt": {
+ "key": "favorability_favorability_ordinary_txt_54005",
+ "text": "送我的?谢谢!"
+ },
+ "disliking_txt": {
+ "key": "favorability_favorabilit_disliking_txt_54005",
+ "text": "这味道,一言难尽......"
+ },
+ "favorlv": [
+ 1,
+ 2,
+ 3
+ ],
+ "biography_name": [
+ "540051",
+ "540052",
+ "540053"
+ ],
+ "biography_txt": [
+ "540051",
+ "540052",
+ "540053"
+ ],
+ "biography_reward1": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward2": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "biography_reward3": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "plot_unlock": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "startid": 300001,
+ "endid": [
+ 3000015,
+ 3000017,
+ 3000018
+ ],
+ "rightend": 3000014,
+ "stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "special_stroyprize": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_friends.json b/bin/json/game_friends.json
new file mode 100644
index 000000000..1f3436742
--- /dev/null
+++ b/bin/json/game_friends.json
@@ -0,0 +1,407 @@
+[
+ {
+ "id": 1,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_type_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 1,
+ "favorability_lv": 1,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 1
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250011",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 2,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 1,
+ "favorability_lv": 1,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 10
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350011",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 3,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 2,
+ "favorability_lv": 9,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 2
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250012",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 4,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 2,
+ "favorability_lv": 9,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 20
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350012",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 5,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 3,
+ "favorability_lv": 15,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 3
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250013",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 6,
+ "friend_id": 40001,
+ "type": 1,
+ "type_name": {
+ "key": "favorability_friends_name_1",
+ "text": "传承"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_40001",
+ "text": "师徒二人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 3,
+ "favorability_lv": 15,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 30
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350013",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 7,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 1,
+ "favorability_lv": 1,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 1
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250011",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 8,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 1,
+ "favorability_lv": 1,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 10
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350011",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 9,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 1,
+ "favorability_lv": 1,
+ "hid": 15004,
+ "attribute": [
+ {
+ "a": "HP",
+ "n": 100
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_150041",
+ "text": "生命值+{0}"
+ }
+ },
+ {
+ "id": 10,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 2,
+ "favorability_lv": 9,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 1
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250012",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 11,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 2,
+ "favorability_lv": 9,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 10
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350012",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 12,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 2,
+ "favorability_lv": 9,
+ "hid": 15004,
+ "attribute": [
+ {
+ "a": "HP",
+ "n": 100
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_150042",
+ "text": "生命值+{0}"
+ }
+ },
+ {
+ "id": 13,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 3,
+ "favorability_lv": 15,
+ "hid": 25001,
+ "attribute": [
+ {
+ "a": "atkpro",
+ "n": 1
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_250013",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 14,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 3,
+ "favorability_lv": 15,
+ "hid": 35001,
+ "attribute": [
+ {
+ "a": "atk",
+ "n": 10
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_350013",
+ "text": "攻击力+{0}"
+ }
+ },
+ {
+ "id": 15,
+ "friend_id": 102,
+ "type": 2,
+ "type_name": {
+ "key": "favorability_friends_name_2",
+ "text": "友谊"
+ },
+ "friend_name": {
+ "key": "favorability_friends_friend_name_102",
+ "text": "师徒三人"
+ },
+ "png": "jiban_img_zu02",
+ "friends_lv": 3,
+ "favorability_lv": 15,
+ "hid": 15004,
+ "attribute": [
+ {
+ "a": "HP",
+ "n": 100
+ }
+ ],
+ "attribute_txt": {
+ "key": "favorability_friends_friend_name_150043",
+ "text": "生命值+{0}"
+ }
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_item.json b/bin/json/game_item.json
index 037777912..c509b495d 100644
--- a/bin/json/game_item.json
+++ b/bin/json/game_item.json
@@ -1888,9 +1888,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_flower",
"intr": {
@@ -1918,9 +1918,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_yshy",
"intr": {
@@ -1948,9 +1948,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_ttry",
"intr": {
@@ -1978,9 +1978,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_hmkz",
"intr": {
@@ -2008,9 +2008,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_ljym",
"intr": {
@@ -2038,9 +2038,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_emtm",
"intr": {
@@ -2068,9 +2068,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_cjbs",
"intr": {
@@ -2098,9 +2098,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_zjbs",
"intr": {
@@ -2128,9 +2128,9 @@
"box_id": 0,
"synthetize_num": 0,
"access": [
- 123
+ 1001
],
- "use_skip": 139,
+ "use_skip": 1001,
"upper_limit": -1,
"img": "tj_icon_gjbs",
"intr": {
diff --git a/bin/json/game_itinerant_city.json b/bin/json/game_itinerant_city.json
new file mode 100644
index 000000000..86646b9da
--- /dev/null
+++ b/bin/json/game_itinerant_city.json
@@ -0,0 +1,71 @@
+[
+ {
+ "id": 101,
+ "cityticket": 1,
+ "citylvlock": 0,
+ "citymainlock": [
+ 11001
+ ],
+ "cityname": {
+ "key": "shopname1",
+ "text": "功夫熊猫城市"
+ },
+ "cityinformation": {
+ "key": "shopname1",
+ "text": "常年游荡在哀伤山脉的商人,这一区域或许只有他才敢在这里做生意。"
+ },
+ "citytxt": {
+ "key": "shopname1",
+ "text": "哀伤山脉长年被一股胀气笼罩,这里的人们长年吸入这些气息,不知不觉已经产生了异变,他们自己称之为兽化病,年长的居民,会随着兽化病的加重,变成熊猫的模样,他们的人性会逐渐的被兽性所代替,最后彻底沦为一只只知道吃包子的直立行走的熊猫。\n\n山脉的长者为了避免失去理智的自己误伤后代,会在晚年独自一人前往山脉深处。\n\n当旅行者在山脉的深处看到那些整日吃包子的熊猫,大概率就是有山脉的居民演化而来。\n\n也正因如此,这里的居民对于包子,竹子等熊猫喜爱的食物需求量很大,也很乐意高价收购外来的那些优秀的竹笋和上好的白面。\n\n不仅仅是对于那些已经彻底兽化的长辈,在时间的流逝下,熊猫的本性已经遗留在当地居民的血脉,新生孩子以及那些山脉之中的年轻人,也会对这些食物有着近乎病态的追求。"
+ },
+ "citytype": 1,
+ "citytypenum": 2,
+ "special": [
+ 1,
+ 2
+ ],
+ "specialnum": 5000,
+ "exspecial": [
+ 3,
+ 4,
+ 6
+ ],
+ "exspecialnum": 2000000,
+ "Orspecial": 100000
+ },
+ {
+ "id": 102,
+ "cityticket": 1,
+ "citylvlock": 0,
+ "citymainlock": [
+ 11001
+ ],
+ "cityname": {
+ "key": "shopname2",
+ "text": "圣桃树山脉"
+ },
+ "cityinformation": {
+ "key": "shopname2",
+ "text": "常年游荡在哀伤山脉的商人,这一区域或许只有他才敢在这里做生意。"
+ },
+ "citytxt": {
+ "key": "shopname2",
+ "text": "哀伤山脉长年被一股胀气笼罩,这里的人们长年吸入这些气息,不知不觉已经产生了异变,他们自己称之为兽化病,年长的居民,会随着兽化病的加重,变成熊猫的模样,他们的人性会逐渐的被兽性所代替,最后彻底沦为一只只知道吃包子的直立行走的熊猫。\n\n山脉的长者为了避免失去理智的自己误伤后代,会在晚年独自一人前往山脉深处。\n\n当旅行者在山脉的深处看到那些整日吃包子的熊猫,大概率就是有山脉的居民演化而来。\n\n也正因如此,这里的居民对于包子,竹子等熊猫喜爱的食物需求量很大,也很乐意高价收购外来的那些优秀的竹笋和上好的白面。\n\n不仅仅是对于那些已经彻底兽化的长辈,在时间的流逝下,熊猫的本性已经遗留在当地居民的血脉,新生孩子以及那些山脉之中的年轻人,也会对这些食物有着近乎病态的追求。"
+ },
+ "citytype": 2,
+ "citytypenum": 3,
+ "special": [
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "specialnum": 5000,
+ "exspecial": [
+ 1,
+ 2
+ ],
+ "exspecialnum": 2000000,
+ "Orspecial": 100000
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_itinerant_lv.json b/bin/json/game_itinerant_lv.json
new file mode 100644
index 000000000..7b7a0d7c4
--- /dev/null
+++ b/bin/json/game_itinerant_lv.json
@@ -0,0 +1,139 @@
+[
+ {
+ "lv": 0,
+ "newmoneyexp": 0,
+ "reward": []
+ },
+ {
+ "lv": 1,
+ "newmoneyexp": 100000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "lv": 2,
+ "newmoneyexp": 200000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "lv": 3,
+ "newmoneyexp": 300000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 3000
+ }
+ ]
+ },
+ {
+ "lv": 4,
+ "newmoneyexp": 400000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 4000
+ }
+ ]
+ },
+ {
+ "lv": 5,
+ "newmoneyexp": 500000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 5000
+ }
+ ]
+ },
+ {
+ "lv": 6,
+ "newmoneyexp": 600000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 6000
+ }
+ ]
+ },
+ {
+ "lv": 7,
+ "newmoneyexp": 700000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 7000
+ }
+ ]
+ },
+ {
+ "lv": 8,
+ "newmoneyexp": 800000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 8000
+ }
+ ]
+ },
+ {
+ "lv": 9,
+ "newmoneyexp": 900000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 9000
+ }
+ ]
+ },
+ {
+ "lv": 10,
+ "newmoneyexp": 1000000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "lv": 11,
+ "newmoneyexp": 1100000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 11000
+ }
+ ]
+ },
+ {
+ "lv": 12,
+ "newmoneyexp": 1200000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 12000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_itinerant_reward.json b/bin/json/game_itinerant_reward.json
new file mode 100644
index 000000000..4ddf83cb1
--- /dev/null
+++ b/bin/json/game_itinerant_reward.json
@@ -0,0 +1,32 @@
+[
+ {
+ "num": 10000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "num": 20000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ }
+ ]
+ },
+ {
+ "num": 30000,
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 3000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_itinerant_thing.json b/bin/json/game_itinerant_thing.json
new file mode 100644
index 000000000..5b951183e
--- /dev/null
+++ b/bin/json/game_itinerant_thing.json
@@ -0,0 +1,230 @@
+[
+ {
+ "id": 1,
+ "goodsname": {
+ "key": "name",
+ "text": "番茄"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个番茄"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ },
+ {
+ "id": 2,
+ "goodsname": {
+ "key": "name",
+ "text": "苹果"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个苹果"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ },
+ {
+ "id": 3,
+ "goodsname": {
+ "key": "name",
+ "text": "手机"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个手机"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ },
+ {
+ "id": 4,
+ "goodsname": {
+ "key": "name",
+ "text": "干果"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个干果"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ },
+ {
+ "id": 5,
+ "goodsname": {
+ "key": "name",
+ "text": "干果"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个干果"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ },
+ {
+ "id": 6,
+ "goodsname": {
+ "key": "name",
+ "text": "干果"
+ },
+ "goodsinfor": {
+ "key": "txt",
+ "text": "这是一个干果"
+ },
+ "goodsicon": "fanqie_c",
+ "goodsprice": 1000,
+ "changeperiod": [
+ 5,
+ 15
+ ],
+ "changetime": 60,
+ "PriceChangeWeight": [
+ 40,
+ 20,
+ 40
+ ],
+ "PriceChangeWeight_one": [
+ 80,
+ 20
+ ],
+ "PriceChangeWeight_two": [
+ 50,
+ 50
+ ],
+ "PriceChangeWeight_three": [
+ 20,
+ 80
+ ],
+ "FluctuationRange": 500,
+ "pricemin": 200,
+ "pricemax": 3000
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_newreddot.json b/bin/json/game_newreddot.json
new file mode 100644
index 000000000..8a820b664
--- /dev/null
+++ b/bin/json/game_newreddot.json
@@ -0,0 +1,342 @@
+[
+ {
+ "id": 10100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Task",
+ "header": ""
+ },
+ {
+ "id": 10101,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "task",
+ "path": "Root|Task|Daily",
+ "header": "赵长远"
+ },
+ {
+ "id": 10102,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "task",
+ "path": "Root|Task|Week",
+ "header": "赵长远"
+ },
+ {
+ "id": 10103,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "task",
+ "path": "Root|Task|Achievement",
+ "header": "赵长远"
+ },
+ {
+ "id": 10200,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Task|Daily",
+ "header": ""
+ },
+ {
+ "id": 10201,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "task",
+ "path": "Root|Task|Daily|Active",
+ "header": ""
+ },
+ {
+ "id": 10300,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Task|Week",
+ "header": ""
+ },
+ {
+ "id": 10301,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "task",
+ "path": "Root|Task|Week|Active",
+ "header": ""
+ },
+ {
+ "id": 11100,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|MainLine",
+ "header": "梅雄风"
+ },
+ {
+ "id": 12100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Email",
+ "header": ""
+ },
+ {
+ "id": 12101,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Email|Btn",
+ "header": ""
+ },
+ {
+ "id": 12102,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Email|UnreadBtn",
+ "header": ""
+ },
+ {
+ "id": 13100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|ViKingExpedition",
+ "header": ""
+ },
+ {
+ "id": 13101,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|ViKingExpedition|MainPage",
+ "header": ""
+ },
+ {
+ "id": 13102,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|ViKingExpedition|MainPage|Btn",
+ "header": ""
+ },
+ {
+ "id": 14100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hunting",
+ "header": ""
+ },
+ {
+ "id": 14101,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hunting|MainPage",
+ "header": ""
+ },
+ {
+ "id": 14102,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hunting|MainPage|Btn",
+ "header": ""
+ },
+ {
+ "id": 20100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero",
+ "header": ""
+ },
+ {
+ "id": 20101,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Heroup",
+ "header": ""
+ },
+ {
+ "id": 20102,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Heroup|Btn",
+ "header": ""
+ },
+ {
+ "id": 20200,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Awake",
+ "header": ""
+ },
+ {
+ "id": 20201,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Awake|Btn",
+ "header": ""
+ },
+ {
+ "id": 20300,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Heroup",
+ "header": ""
+ },
+ {
+ "id": 20301,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Hero|Heroup|Btn",
+ "header": ""
+ },
+ {
+ "id": 15100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "sociaty",
+ "path": "Root|Guild",
+ "header": "赵长远"
+ },
+ {
+ "id": 15101,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "sociaty",
+ "path": "Root|Guild|MBtn",
+ "header": "赵长远"
+ },
+ {
+ "id": 15102,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "sociaty",
+ "path": "Root|Guild|MBtn|Btn",
+ "header": "赵长远"
+ },
+ {
+ "id": 15200,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "sociaty",
+ "path": "Root|Guild|Apply",
+ "header": ""
+ },
+ {
+ "id": 15201,
+ "msg_type": 1,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "sociaty",
+ "path": "Root|Guild|Apply|Btn",
+ "header": ""
+ },
+ {
+ "id": 16100,
+ "msg_type": 0,
+ "tree_type": 0,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Bag",
+ "header": "赵长远"
+ },
+ {
+ "id": 16101,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Bag|Item",
+ "header": "赵长远"
+ },
+ {
+ "id": 16102,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Bag|Equip",
+ "header": "赵长远"
+ },
+ {
+ "id": 16103,
+ "msg_type": 2,
+ "tree_type": 1,
+ "show_type": 0,
+ "count_type": 0,
+ "group": "",
+ "path": "Root|Bag|Shard",
+ "header": "赵长远"
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_pandamasjx.json b/bin/json/game_pandamasjx.json
index 78eedc34a..180dcf3aa 100644
--- a/bin/json/game_pandamasjx.json
+++ b/bin/json/game_pandamasjx.json
@@ -17,7 +17,7 @@
"text": "作为教习,食人鱼一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
},
"description": {
- "key": "wuguanshirenyu10001",
+ "key": "xiaoguo_6",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -45,7 +45,7 @@
"text": "闪闪"
},
"description": {
- "key": "wuguanshirenyu10002",
+ "key": "xiaoguo_7",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -73,7 +73,7 @@
"text": "蛇先生"
},
"description": {
- "key": "wuguanshirenyu10003",
+ "key": "xiaoguo_8",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -101,7 +101,7 @@
"text": "金猴"
},
"description": {
- "key": "wuguanshirenyu10004",
+ "key": "xiaoguo_9",
"text": "提升每分钟的经验值获取{0}%,提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -140,7 +140,7 @@
"text": "鹤大师"
},
"description": {
- "key": "wuguanshirenyu10005",
+ "key": "xiaoguo_10",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -168,7 +168,7 @@
"text": "悍娇虎"
},
"description": {
- "key": "wuguanshirenyu10006",
+ "key": "xiaoguo_11",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -196,7 +196,7 @@
"text": "盖"
},
"description": {
- "key": "wuguanshirenyu10007",
+ "key": "xiaoguo_12",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -224,7 +224,7 @@
"text": "希卡普"
},
"description": {
- "key": "wuguanshirenyu10008",
+ "key": "xiaoguo_13",
"text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%"
},
"duration": 1,
@@ -252,7 +252,7 @@
"text": "穿靴猫"
},
"description": {
- "key": "wuguanshirenyu10009",
+ "key": "xiaoguo_14",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -291,7 +291,7 @@
"text": "师父"
},
"description": {
- "key": "wuguanshirenyu10010",
+ "key": "xiaoguo_15",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -330,7 +330,7 @@
"text": "阿宝"
},
"description": {
- "key": "wuguanshirenyu10011",
+ "key": "xiaoguo_16",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -369,7 +369,7 @@
"text": "乌龟大师"
},
"description": {
- "key": "wuguanshirenyu10012",
+ "key": "xiaoguo_17",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -408,7 +408,7 @@
"text": "石锁,传闻是师父在训练阿宝时经常使用到的道具"
},
"description": {
- "key": "wuguanshirenyu20001",
+ "key": "xiaoguo_18",
"text": "提升每分钟的经验值获取{0}%,提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -447,7 +447,7 @@
"text": "双头空竹"
},
"description": {
- "key": "wuguanshirenyu20002",
+ "key": "xiaoguo_19",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -475,7 +475,7 @@
"text": "木爬架"
},
"description": {
- "key": "wuguanshirenyu20003",
+ "key": "xiaoguo_20",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -503,7 +503,7 @@
"text": "不倒翁"
},
"description": {
- "key": "wuguanshirenyu20004",
+ "key": "xiaoguo_21",
"text": "提升每分钟的经验值获取{0}%"
},
"duration": 0,
@@ -531,7 +531,7 @@
"text": "棒槌"
},
"description": {
- "key": "wuguanshirenyu20005",
+ "key": "xiaoguo_22",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -559,7 +559,7 @@
"text": "铜铃"
},
"description": {
- "key": "wuguanshirenyu20006",
+ "key": "xiaoguo_23",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -587,7 +587,7 @@
"text": "尖刺吊环"
},
"description": {
- "key": "wuguanshirenyu20007",
+ "key": "xiaoguo_24",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -615,7 +615,7 @@
"text": "陀螺"
},
"description": {
- "key": "wuguanshirenyu20008",
+ "key": "xiaoguo_25",
"text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%"
},
"duration": 1,
@@ -643,7 +643,7 @@
"text": "大转轮"
},
"description": {
- "key": "wuguanshirenyu20009",
+ "key": "xiaoguo_26",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -682,7 +682,7 @@
"text": "木头牌"
},
"description": {
- "key": "wuguanshirenyu20010",
+ "key": "xiaoguo_27",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -721,7 +721,7 @@
"text": "双节棍"
},
"description": {
- "key": "wuguanshirenyu20011",
+ "key": "xiaoguo_28",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -760,7 +760,7 @@
"text": "练功带"
},
"description": {
- "key": "wuguanshirenyu20012",
+ "key": "xiaoguo_29",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -799,7 +799,7 @@
"text": "七彩花棍"
},
"description": {
- "key": "wuguanshirenyu20013",
+ "key": "xiaoguo_30",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -838,7 +838,7 @@
"text": "流星飞镖"
},
"description": {
- "key": "wuguanshirenyu20014",
+ "key": "xiaoguo_31",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -866,7 +866,7 @@
"text": "冥想锣"
},
"description": {
- "key": "wuguanshirenyu20015",
+ "key": "xiaoguo_32",
"text": "提升可挂机的时间{0}秒"
},
"duration": 1,
@@ -894,7 +894,7 @@
"text": "彩条龙"
},
"description": {
- "key": "wuguanshirenyu20016",
+ "key": "xiaoguo_33",
"text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%"
},
"duration": 1,
@@ -922,7 +922,7 @@
"text": "孔雀毛扇"
},
"description": {
- "key": "wuguanshirenyu20017",
+ "key": "xiaoguo_34",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -959,7 +959,7 @@
"text": "平衡木"
},
"description": {
- "key": "wuguanshirenyu20018",
+ "key": "xiaoguo_35",
"text": "提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
@@ -996,7 +996,7 @@
"text": "铁环"
},
"description": {
- "key": "wuguanshirenyu20019",
+ "key": "xiaoguo_36",
"text": "{0}%概率获得1个3级升星精灵"
},
"duration": 0,
@@ -1033,7 +1033,7 @@
"text": "太极球"
},
"description": {
- "key": "wuguanshirenyu20020",
+ "key": "xiaoguo_37",
"text": "{0}%概率获得1个3级升星精灵,提升低级觉醒材料的获取数量{0}"
},
"duration": 0,
diff --git a/bin/json/game_pandamastjjl.json b/bin/json/game_pandamastjjl.json
index b72b4c5a8..2936cac55 100644
--- a/bin/json/game_pandamastjjl.json
+++ b/bin/json/game_pandamastjjl.json
@@ -5,7 +5,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -16,7 +16,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -27,7 +27,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -38,7 +38,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -49,7 +49,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -60,7 +60,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -71,7 +71,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -82,7 +82,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -93,7 +93,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -104,7 +104,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -115,7 +115,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -126,7 +126,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -137,7 +137,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -148,7 +148,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -159,7 +159,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
@@ -170,7 +170,7 @@
"item_id": [
{
"a": "item",
- "t": "10002",
+ "t": "100101",
"n": 1
}
]
diff --git a/bin/json/game_potions.json b/bin/json/game_potions.json
index 22f482a13..253447572 100644
--- a/bin/json/game_potions.json
+++ b/bin/json/game_potions.json
@@ -12,7 +12,14 @@
"countdown": [
30,
35,
- 40
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -85,7 +92,16 @@
"normalScore": 10,
"highScore": 30,
"countdown": [
- 30
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -158,7 +174,16 @@
"normalScore": 10,
"highScore": 30,
"countdown": [
- 30
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -231,7 +256,16 @@
"normalScore": 10,
"highScore": 30,
"countdown": [
- 30
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -304,7 +338,16 @@
"normalScore": 20,
"highScore": 40,
"countdown": [
- 40
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -377,7 +420,16 @@
"normalScore": 20,
"highScore": 40,
"countdown": [
- 40
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -450,7 +502,16 @@
"normalScore": 20,
"highScore": 40,
"countdown": [
- 40
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -523,7 +584,16 @@
"normalScore": 20,
"highScore": 40,
"countdown": [
- 40
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -596,7 +666,16 @@
"normalScore": 30,
"highScore": 50,
"countdown": [
- 50
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -669,7 +748,16 @@
"normalScore": 30,
"highScore": 50,
"countdown": [
- 50
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -742,7 +830,16 @@
"normalScore": 30,
"highScore": 50,
"countdown": [
- 50
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
@@ -815,7 +912,16 @@
"normalScore": 30,
"highScore": 50,
"countdown": [
- 50
+ 30,
+ 35,
+ 40,
+ 45,
+ 50,
+ 55,
+ 60,
+ 65,
+ 70,
+ 75
],
"generateInterval": [
300
diff --git a/bin/json/game_rdtasknpc.json b/bin/json/game_rdtasknpc.json
index aae711a7d..c8af586aa 100644
--- a/bin/json/game_rdtasknpc.json
+++ b/bin/json/game_rdtasknpc.json
@@ -1,6 +1,7 @@
[
{
"id": 101,
+ "heroid": 44005,
"datas": [
"GameMain",
"功能入口-招募",
@@ -14,6 +15,7 @@
},
{
"id": 102,
+ "heroid": 15005,
"datas": [
"GameMain",
"功能入口-主线",
@@ -27,6 +29,7 @@
},
{
"id": 103,
+ "heroid": 51001,
"datas": [
"WuGuanScene",
"乌龟大师",
@@ -40,6 +43,7 @@
},
{
"id": 104,
+ "heroid": 51002,
"datas": [
"WuGuanScene",
"木桩1",
@@ -53,6 +57,7 @@
},
{
"id": 10010,
+ "heroid": 51003,
"datas": [
"GameMain",
"20010_熊猫_1",
@@ -66,6 +71,7 @@
},
{
"id": 10011,
+ "heroid": 51004,
"datas": [
"GameMain",
"20010_骇客蛛_1",
@@ -79,6 +85,7 @@
},
{
"id": 10012,
+ "heroid": 51005,
"datas": [
"GameMain",
"20010_箱子_1",
@@ -92,6 +99,7 @@
},
{
"id": 10020,
+ "heroid": 51006,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -105,6 +113,7 @@
},
{
"id": 10021,
+ "heroid": 51007,
"datas": [
"GameMain",
"20020_邦尼兔_1",
@@ -118,6 +127,7 @@
},
{
"id": 10022,
+ "heroid": 54005,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -131,6 +141,7 @@
},
{
"id": 10030,
+ "heroid": 51010,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -144,6 +155,7 @@
},
{
"id": 10031,
+ "heroid": 51011,
"datas": [
"GameMain",
"20020_邦尼兔_1",
@@ -157,6 +169,7 @@
},
{
"id": 10032,
+ "heroid": 51012,
"datas": [
"GameMain",
"20020_邦尼兔_1",
@@ -170,6 +183,7 @@
},
{
"id": 10040,
+ "heroid": 51013,
"datas": [
"GameMain",
"20020_邦尼兔_1",
@@ -183,6 +197,7 @@
},
{
"id": 10041,
+ "heroid": 51014,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -196,6 +211,7 @@
},
{
"id": 10050,
+ "heroid": 54001,
"datas": [
"WuGuanScene",
"20050_邦尼兔_1",
@@ -209,6 +225,7 @@
},
{
"id": 10060,
+ "heroid": 53001,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -222,6 +239,7 @@
},
{
"id": 10061,
+ "heroid": 53002,
"datas": [
"GameMain",
"20010_熊猫_1",
@@ -235,6 +253,7 @@
},
{
"id": 10070,
+ "heroid": 53003,
"datas": [
"SmithyScene",
"打造",
@@ -248,6 +267,7 @@
},
{
"id": 10071,
+ "heroid": 54002,
"datas": [
"GameMain",
"功能入口-维京远征",
@@ -261,6 +281,7 @@
},
{
"id": 10072,
+ "heroid": 53005,
"datas": [
"SmithyScene",
"打造",
@@ -274,6 +295,7 @@
},
{
"id": 10080,
+ "heroid": 53006,
"datas": [
"GameMain",
"20010_骇客蛛_1",
@@ -287,6 +309,7 @@
},
{
"id": 10081,
+ "heroid": 55001,
"datas": [
"GameMain",
"功能入口-主线",
@@ -300,6 +323,7 @@
},
{
"id": 10082,
+ "heroid": 55002,
"datas": [
"GameMain",
"20080_食人鱼_1",
@@ -313,6 +337,7 @@
},
{
"id": 10090,
+ "heroid": 55003,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -326,6 +351,7 @@
},
{
"id": 10091,
+ "heroid": 55004,
"datas": [
"GameMain",
"功能入口-招募",
@@ -339,6 +365,7 @@
},
{
"id": 10100,
+ "heroid": 55005,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -352,6 +379,7 @@
},
{
"id": 10101,
+ "heroid": 55006,
"datas": [
"GameMain",
"20100_梦魇_1",
@@ -365,6 +393,7 @@
},
{
"id": 10102,
+ "heroid": 55007,
"datas": [
"GameMain",
"20020_邦尼兔_1",
@@ -378,6 +407,7 @@
},
{
"id": 10110,
+ "heroid": 11021,
"datas": [
"GameMain",
"20020_熊猫_2",
@@ -391,6 +421,7 @@
},
{
"id": 70010,
+ "heroid": 12003,
"datas": [
"GameMain",
"70010_盖_1",
@@ -404,6 +435,7 @@
},
{
"id": 70020,
+ "heroid": 63002,
"datas": [
"GameMain",
"支线40010_格里森_1",
@@ -417,6 +449,7 @@
},
{
"id": 70021,
+ "heroid": 63003,
"datas": [
"SmithyScene",
"打造",
@@ -430,6 +463,7 @@
},
{
"id": 70022,
+ "heroid": 63004,
"datas": [
"GameMain",
"功能入口-维京远征",
@@ -443,6 +477,7 @@
},
{
"id": 70023,
+ "heroid": 64003,
"datas": [
"GameMain",
"支线40020_格里森_2",
@@ -456,6 +491,7 @@
},
{
"id": 70030,
+ "heroid": 74002,
"datas": [
"SmithyScene",
"打造",
@@ -469,6 +505,7 @@
},
{
"id": 70031,
+ "heroid": 74003,
"datas": [
"SmithyScene",
"打造",
@@ -482,6 +519,7 @@
},
{
"id": 70032,
+ "heroid": 74004,
"datas": [
"GameMain",
"功能入口-维京远征",
@@ -495,6 +533,7 @@
},
{
"id": 70033,
+ "heroid": 83002,
"datas": [
"SmithyScene",
"打造",
@@ -508,6 +547,7 @@
},
{
"id": 70040,
+ "heroid": 83006,
"datas": [
"WuGuanScene",
"支线60010_瓦希尔指挥官_1",
@@ -521,6 +561,7 @@
},
{
"id": 70050,
+ "heroid": 84002,
"datas": [
"GameMain",
"支线70010_小伊_1",
@@ -534,6 +575,7 @@
},
{
"id": 70060,
+ "heroid": 94002,
"datas": [
"GameMain",
"支线80010_鼻涕粗_1",
diff --git a/bin/json/game_show.json b/bin/json/game_show.json
index dc0960968..d9d731114 100644
--- a/bin/json/game_show.json
+++ b/bin/json/game_show.json
@@ -8,8 +8,8 @@
"access": 0,
"position": "",
"sex": 1,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
},
{
"id": 100002,
@@ -20,8 +20,8 @@
"access": 0,
"position": "",
"sex": 1,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
},
{
"id": 100003,
@@ -32,8 +32,8 @@
"access": 0,
"position": "",
"sex": 1,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
},
{
"id": 200001,
@@ -44,8 +44,8 @@
"access": 0,
"position": "",
"sex": 2,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
},
{
"id": 200002,
@@ -56,8 +56,8 @@
"access": 0,
"position": "",
"sex": 2,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
},
{
"id": 200003,
@@ -68,7 +68,7 @@
"access": 0,
"position": "",
"sex": 2,
- "resources": "Person/10000/10000M.prefab",
- "vague": "Person/10000/10000M.prefab"
+ "resources": "Person/10000/10000_Mexplore.prefab",
+ "vague": "Person/10000/10000_Mexplore.prefab"
}
]
\ No newline at end of file
diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json
index 40b3d9ece..8d4c0aeb6 100644
--- a/bin/json/game_skillafteratk.json
+++ b/bin/json/game_skillafteratk.json
@@ -13552,10 +13552,10 @@
5,
650
],
- "FollowSK": [],
- "SucFollowSK": [
+ "FollowSK": [
214001112
],
+ "SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false,
"DpsRevisiType": 0,
@@ -13622,7 +13622,7 @@
"Argu": [
390001202,
1000,
- 10,
+ 1,
-1
],
"FollowSK": [],
@@ -13649,9 +13649,7 @@
-1
],
"FollowSK": [],
- "SucFollowSK": [
- 214001214
- ],
+ "SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false,
"DpsRevisiType": 0,
@@ -13681,80 +13679,6 @@
{
"Id": 214001311,
"EmitPR": 1000,
- "From": 4,
- "Where": [],
- "Order": "",
- "Limit": 1,
- "ExecuteCnt": 1,
- "Type": 1,
- "Argu": [
- 1,
- 4,
- 800
- ],
- "FollowSK": [],
- "SucFollowSK": [
- 214001312
- ],
- "FailFollowSK": [],
- "MustHit": false,
- "DpsRevisiType": 0,
- "DpsCondition": "",
- "RevisiCondition": "",
- "RevisiParams": []
- },
- {
- "Id": 214001312,
- "EmitPR": 1000,
- "From": 4,
- "Where": [],
- "Order": "",
- "Limit": 1,
- "ExecuteCnt": 1,
- "Type": 21,
- "Argu": [
- 1,
- 5,
- 1200
- ],
- "FollowSK": [],
- "SucFollowSK": [
- 214001313
- ],
- "FailFollowSK": [],
- "MustHit": false,
- "DpsRevisiType": 0,
- "DpsCondition": "",
- "RevisiCondition": "",
- "RevisiParams": []
- },
- {
- "Id": 214001313,
- "EmitPR": 1000,
- "From": 4,
- "Where": [],
- "Order": "",
- "Limit": 1,
- "ExecuteCnt": 1,
- "Type": 3,
- "Argu": [
- 390001110,
- 1000,
- 1,
- 2
- ],
- "FollowSK": [],
- "SucFollowSK": [],
- "FailFollowSK": [],
- "MustHit": false,
- "DpsRevisiType": 0,
- "DpsCondition": "",
- "RevisiCondition": "",
- "RevisiParams": []
- },
- {
- "Id": 214001314,
- "EmitPR": 1000,
"From": 3,
"Where": [],
"Order": "",
@@ -13776,7 +13700,57 @@
"RevisiParams": []
},
{
- "Id": 214001315,
+ "Id": 214001312,
+ "EmitPR": 1000,
+ "From": 3,
+ "Where": [],
+ "Order": "",
+ "Limit": 10,
+ "ExecuteCnt": 1,
+ "Type": 2,
+ "Argu": [
+ 414001312,
+ -1,
+ -1
+ ],
+ "FollowSK": [],
+ "SucFollowSK": [],
+ "FailFollowSK": [],
+ "MustHit": false,
+ "DpsRevisiType": 0,
+ "DpsCondition": "",
+ "RevisiCondition": "",
+ "RevisiParams": []
+ },
+ {
+ "Id": 214001313,
+ "EmitPR": 1000,
+ "From": 3,
+ "Where": [],
+ "Order": "",
+ "Limit": 1,
+ "ExecuteCnt": 1,
+ "Type": 8,
+ "Argu": [
+ 1,
+ 390001202,
+ -1,
+ 1000
+ ],
+ "FollowSK": [
+ 214001314,
+ 214001315
+ ],
+ "SucFollowSK": [],
+ "FailFollowSK": [],
+ "MustHit": false,
+ "DpsRevisiType": 0,
+ "DpsCondition": "",
+ "RevisiCondition": "",
+ "RevisiParams": []
+ },
+ {
+ "Id": 214001314,
"EmitPR": 1000,
"From": 3,
"Where": [],
@@ -13800,18 +13774,70 @@
"RevisiParams": []
},
{
- "Id": 214001316,
+ "Id": 214001315,
"EmitPR": 1000,
"From": 3,
"Where": [],
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
- "Type": 5,
+ "Type": 33,
"Argu": [
1,
2,
- 40
+ 400
+ ],
+ "FollowSK": [],
+ "SucFollowSK": [],
+ "FailFollowSK": [],
+ "MustHit": false,
+ "DpsRevisiType": 0,
+ "DpsCondition": "",
+ "RevisiCondition": "",
+ "RevisiParams": []
+ },
+ {
+ "Id": 214001316,
+ "EmitPR": 1000,
+ "From": 4,
+ "Where": [],
+ "Order": "",
+ "Limit": 1,
+ "ExecuteCnt": 1,
+ "Type": 1,
+ "Argu": [
+ 1,
+ 4,
+ 800,
+ 1,
+ 5,
+ 1200
+ ],
+ "FollowSK": [
+ 214001317
+ ],
+ "SucFollowSK": [],
+ "FailFollowSK": [],
+ "MustHit": false,
+ "DpsRevisiType": 0,
+ "DpsCondition": "",
+ "RevisiCondition": "",
+ "RevisiParams": []
+ },
+ {
+ "Id": 214001317,
+ "EmitPR": 1000,
+ "From": 4,
+ "Where": [],
+ "Order": "",
+ "Limit": 1,
+ "ExecuteCnt": 1,
+ "Type": 3,
+ "Argu": [
+ 390001110,
+ 1000,
+ 1,
+ 2
],
"FollowSK": [],
"SucFollowSK": [],
@@ -19226,7 +19252,7 @@
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
- "Type": 36,
+ "Type": 37,
"Argu": [
215002312,
215002313,
@@ -23734,7 +23760,7 @@
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
- "Type": 33,
+ "Type": 34,
"Argu": [
1,
1
diff --git a/bin/json/game_skillatk.json b/bin/json/game_skillatk.json
index c8d0c4995..86deceed7 100644
--- a/bin/json/game_skillatk.json
+++ b/bin/json/game_skillatk.json
@@ -8442,7 +8442,8 @@
"Target": 1,
"ChildSkill": {
"Id": [
- 214001211
+ 214001211,
+ 214001213
]
},
"Desc": {
@@ -8471,7 +8472,8 @@
"ChildSkill": {
"Id": [
214001311,
- 214001315,
+ 214001312,
+ 214001313,
214001316
]
},
diff --git a/bin/json/game_skillbuff.json b/bin/json/game_skillbuff.json
index bab91e10f..1dced6dff 100644
--- a/bin/json/game_skillbuff.json
+++ b/bin/json/game_skillbuff.json
@@ -23,7 +23,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z009",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001002,
@@ -49,7 +49,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z003",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001003,
@@ -75,7 +75,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001004,
@@ -101,7 +101,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z006",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001005,
@@ -127,7 +127,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z008",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001006,
@@ -153,7 +153,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j016",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001007,
@@ -179,7 +179,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j001",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001008,
@@ -205,7 +205,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j006",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001009,
@@ -231,7 +231,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001010,
@@ -257,7 +257,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001011,
@@ -283,7 +283,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001012,
@@ -309,7 +309,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001101,
@@ -335,7 +335,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j009",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001102,
@@ -361,7 +361,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j005",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001103,
@@ -385,7 +385,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z007",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001104,
@@ -411,7 +411,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z002",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001105,
@@ -435,7 +435,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j007",
"buffeffect": "effect_debuff_yun",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001106,
@@ -483,7 +483,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j012",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001108,
@@ -507,7 +507,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j015",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001109,
@@ -531,7 +531,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j004",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001110,
@@ -555,7 +555,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001111,
@@ -579,7 +579,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z005",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001112,
@@ -607,7 +607,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "effect_hudun_1",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001113,
@@ -631,7 +631,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001114,
@@ -655,7 +655,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001115,
@@ -679,7 +679,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j013",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001116,
@@ -703,7 +703,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001117,
@@ -727,7 +727,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001118,
@@ -751,7 +751,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j014",
"buffeffect": "effect_debuff_sleep",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001119,
@@ -775,7 +775,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts003",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001120,
@@ -799,7 +799,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts004",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001121,
@@ -823,7 +823,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts005",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001122,
@@ -851,7 +851,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001123,
@@ -879,7 +879,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001124,
@@ -903,7 +903,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001125,
@@ -931,7 +931,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001126,
@@ -955,7 +955,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001127,
@@ -1003,7 +1003,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z001",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001129,
@@ -1031,7 +1031,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001130,
@@ -1059,7 +1059,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001201,
@@ -1081,9 +1081,9 @@
"RemoveType": false,
"OverlayTimes": 10,
"SameID": false,
- "buffIcon": "",
+ "buffIcon": "ty_zd_buff_ts003",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001202,
@@ -1095,11 +1095,9 @@
"key": "skill_buffdes_390001202",
"text": "每层使自身基础防御提升10%,效果抵抗提升5%,最多可叠加10层。"
},
- "BuffType": 0,
+ "BuffType": 46,
"EffectArgu": [
- 5,
100,
- 10,
50
],
"BufParNum": 1,
@@ -1110,9 +1108,9 @@
"RemoveType": false,
"OverlayTimes": 10,
"SameID": false,
- "buffIcon": "",
- "buffeffect": "",
- "buffpos": "infopos"
+ "buffIcon": "ty_zd_buff_ts004",
+ "buffeffect": "effect_14001_skill_2",
+ "buffpos": "根节点"
},
{
"Id": 390001204,
@@ -1134,9 +1132,9 @@
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
- "buffIcon": "",
+ "buffIcon": "ty_zd_buff_ts005",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001205,
@@ -1160,7 +1158,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001206,
@@ -1184,7 +1182,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001207,
@@ -1208,7 +1206,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts007",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001208,
@@ -1234,7 +1232,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts007",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001209,
@@ -1258,7 +1256,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts001",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001210,
@@ -1284,7 +1282,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts002",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001211,
@@ -1308,7 +1306,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001212,
@@ -1335,7 +1333,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_ts008",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001213,
@@ -1361,7 +1359,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_j002",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001214,
@@ -1411,7 +1409,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001216,
@@ -1511,7 +1509,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001302,
@@ -1537,7 +1535,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001303,
@@ -1563,7 +1561,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001304,
@@ -1589,7 +1587,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001305,
@@ -1615,7 +1613,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001306,
@@ -1641,7 +1639,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001307,
@@ -1667,7 +1665,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001311,
@@ -1693,7 +1691,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001312,
@@ -1719,7 +1717,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001313,
@@ -1745,7 +1743,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001314,
@@ -1771,7 +1769,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001315,
@@ -1797,7 +1795,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001316,
@@ -1823,7 +1821,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001317,
@@ -1849,7 +1847,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001321,
@@ -1875,7 +1873,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001322,
@@ -1901,7 +1899,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001323,
@@ -1927,7 +1925,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001324,
@@ -1953,7 +1951,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001325,
@@ -1979,7 +1977,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001326,
@@ -2005,7 +2003,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001327,
@@ -2031,7 +2029,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001328,
@@ -2057,7 +2055,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001329,
@@ -2239,7 +2237,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001403,
@@ -2265,7 +2263,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001404,
@@ -2289,7 +2287,7 @@
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001405,
@@ -2679,7 +2677,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001421,
@@ -2755,7 +2753,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001424,
@@ -2929,7 +2927,7 @@
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001431,
@@ -2955,7 +2953,7 @@
"SameID": true,
"buffIcon": "ty_zd_buff_z006",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001432,
@@ -2979,7 +2977,7 @@
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001433,
@@ -3003,7 +3001,7 @@
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001434,
@@ -3031,7 +3029,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001435,
@@ -3055,7 +3053,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001436,
@@ -3081,7 +3079,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001437,
@@ -3107,7 +3105,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001438,
@@ -3133,7 +3131,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z003",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001439,
@@ -3159,7 +3157,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z006",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001440,
@@ -3185,7 +3183,7 @@
"SameID": false,
"buffIcon": "ty_zd_buff_z008",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001441,
@@ -3211,7 +3209,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001442,
@@ -3237,7 +3235,7 @@
"SameID": false,
"buffIcon": "",
"buffeffect": "",
- "buffpos": "infopos"
+ "buffpos": "根节点"
},
{
"Id": 390001443,
diff --git a/bin/json/game_skillpassive.json b/bin/json/game_skillpassive.json
index d14fa6449..c202cd671 100644
--- a/bin/json/game_skillpassive.json
+++ b/bin/json/game_skillpassive.json
@@ -744,22 +744,22 @@
{
"Id": 414001211,
"When": 16,
- "FromCheck": "",
+ "FromCheck": "Target=2",
"TargetCheck": "Target=3",
"MainSkillCheck": "",
"AfterSkillCheck": "",
- "BuffCheck": "BuffID=390001202",
+ "BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
- "MaxEmitTimes": 1,
+ "MaxEmitTimes": 10,
"Callback": [
214001212
]
},
{
"Id": 414001212,
- "When": 19,
+ "When": 2,
"FromCheck": "Target=3,HasBuff=390001202,OverlayNum=10",
"TargetCheck": "Target=3",
"MainSkillCheck": "",
@@ -775,10 +775,10 @@
},
{
"Id": 414001311,
- "When": 19,
+ "When": 3,
"FromCheck": "Target=3,HasBuff=390001202,OverlayNum=10",
- "TargetCheck": "Target=3",
- "MainSkillCheck": "",
+ "TargetCheck": "Target=2",
+ "MainSkillCheck": "114001311",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
@@ -786,8 +786,23 @@
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
- 214001315,
- 214001316
+ 214001313
+ ]
+ },
+ {
+ "Id": 414001312,
+ "When": 18,
+ "FromCheck": "Target=3",
+ "TargetCheck": "Target=3",
+ "MainSkillCheck": "",
+ "AfterSkillCheck": "SkillID=214001313",
+ "BuffCheck": "BuffID=390001202,Succ=1",
+ "AddCon": [],
+ "PasPr": 1000,
+ "Type": "CallSkillPas",
+ "MaxEmitTimes": 1,
+ "Callback": [
+ 214001315
]
},
{
diff --git a/bin/json/game_talent.json b/bin/json/game_talent.json
new file mode 100644
index 000000000..6bbcaec0b
--- /dev/null
+++ b/bin/json/game_talent.json
@@ -0,0 +1,992 @@
+[
+ {
+ "id": 1,
+ "type": 1,
+ "node": 1001,
+ "pre_node": 0,
+ "node_lv": 1,
+ "pre_node_lv": 0,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 20
+ }
+ ],
+ "range": 0,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "type": 1,
+ "node": 1001,
+ "pre_node": 0,
+ "node_lv": 2,
+ "pre_node_lv": 0,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 40
+ }
+ ],
+ "range": 0,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "type": 1,
+ "node": 1001,
+ "pre_node": 0,
+ "node_lv": 3,
+ "pre_node_lv": 0,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 60
+ }
+ ],
+ "range": 0,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "type": 1,
+ "node": 1001,
+ "pre_node": 0,
+ "node_lv": 4,
+ "pre_node_lv": 0,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 80
+ }
+ ],
+ "range": 0,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "type": 1,
+ "node": 1001,
+ "pre_node": 0,
+ "node_lv": 5,
+ "pre_node_lv": 0,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 100
+ }
+ ],
+ "range": 0,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 6,
+ "type": 1,
+ "node": 1002,
+ "pre_node": 1001,
+ "node_lv": 1,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 20
+ }
+ ],
+ "range": 1,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 7,
+ "type": 1,
+ "node": 1002,
+ "pre_node": 1001,
+ "node_lv": 2,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 40
+ }
+ ],
+ "range": 1,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 8,
+ "type": 1,
+ "node": 1002,
+ "pre_node": 1001,
+ "node_lv": 3,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 60
+ }
+ ],
+ "range": 1,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 9,
+ "type": 1,
+ "node": 1002,
+ "pre_node": 1001,
+ "node_lv": 4,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 80
+ }
+ ],
+ "range": 1,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 10,
+ "type": 1,
+ "node": 1002,
+ "pre_node": 1001,
+ "node_lv": 5,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 100
+ }
+ ],
+ "range": 1,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 11,
+ "type": 1,
+ "node": 1003,
+ "pre_node": 1002,
+ "node_lv": 1,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 20
+ }
+ ],
+ "range": 2,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 12,
+ "type": 1,
+ "node": 1003,
+ "pre_node": 1002,
+ "node_lv": 2,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 40
+ }
+ ],
+ "range": 2,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 13,
+ "type": 1,
+ "node": 1003,
+ "pre_node": 1002,
+ "node_lv": 3,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 60
+ }
+ ],
+ "range": 2,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 14,
+ "type": 1,
+ "node": 1003,
+ "pre_node": 1002,
+ "node_lv": 4,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "hp_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 80
+ }
+ ],
+ "range": 2,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 15,
+ "type": 1,
+ "node": 1003,
+ "pre_node": 1002,
+ "node_lv": 5,
+ "pre_node_lv": 5,
+ "node_direction": 90,
+ "node_long": 20,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "",
+ "disc_pos": 0,
+ "attribute": [
+ {
+ "a": "hp",
+ "n": 100
+ }
+ ],
+ "range": 2,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 16,
+ "type": 1,
+ "node": 2001,
+ "pre_node": 1003,
+ "node_lv": 1,
+ "pre_node_lv": 5,
+ "node_direction": 45,
+ "node_long": 30,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 3,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 2
+ }
+ ],
+ "range": 3,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 17,
+ "type": 1,
+ "node": 2001,
+ "pre_node": 1003,
+ "node_lv": 2,
+ "pre_node_lv": 5,
+ "node_direction": 45,
+ "node_long": 30,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 3,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 4
+ }
+ ],
+ "range": 3,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 18,
+ "type": 1,
+ "node": 2001,
+ "pre_node": 1003,
+ "node_lv": 3,
+ "pre_node_lv": 5,
+ "node_direction": 45,
+ "node_long": 30,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 3,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 6
+ }
+ ],
+ "range": 3,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 19,
+ "type": 1,
+ "node": 2001,
+ "pre_node": 1003,
+ "node_lv": 4,
+ "pre_node_lv": 5,
+ "node_direction": 45,
+ "node_long": 30,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 3,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 8
+ }
+ ],
+ "range": 3,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 20,
+ "type": 1,
+ "node": 2001,
+ "pre_node": 1003,
+ "node_lv": 5,
+ "pre_node_lv": 5,
+ "node_direction": 45,
+ "node_long": 30,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 3,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 10
+ }
+ ],
+ "range": 3,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 21,
+ "type": 1,
+ "node": 2002,
+ "pre_node": 2001,
+ "node_lv": 1,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 2,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 2
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 22,
+ "type": 1,
+ "node": 2002,
+ "pre_node": 2001,
+ "node_lv": 2,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 2,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 4
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 23,
+ "type": 1,
+ "node": 2002,
+ "pre_node": 2001,
+ "node_lv": 3,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 2,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 6
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 24,
+ "type": 1,
+ "node": 2002,
+ "pre_node": 2001,
+ "node_lv": 4,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 2,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 8
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 25,
+ "type": 1,
+ "node": 2002,
+ "pre_node": 2001,
+ "node_lv": 5,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "def_png",
+ "node_type": 1,
+ "disc_png": "png001",
+ "disc_pos": 2,
+ "attribute": [
+ {
+ "a": "def",
+ "n": 10
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 26,
+ "type": 1,
+ "node": 2003,
+ "pre_node": 2002,
+ "node_lv": 1,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "defpro_png",
+ "node_type": 2,
+ "disc_png": "png001",
+ "disc_pos": 1,
+ "attribute": [
+ {
+ "a": "defpro",
+ "n": 5
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 27,
+ "type": 1,
+ "node": 2003,
+ "pre_node": 2002,
+ "node_lv": 2,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "defpro_png",
+ "node_type": 2,
+ "disc_png": "png001",
+ "disc_pos": 1,
+ "attribute": [
+ {
+ "a": "defpro",
+ "n": 10
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 28,
+ "type": 1,
+ "node": 2003,
+ "pre_node": 2002,
+ "node_lv": 3,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "defpro_png",
+ "node_type": 2,
+ "disc_png": "png001",
+ "disc_pos": 1,
+ "attribute": [
+ {
+ "a": "defpro",
+ "n": 15
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 29,
+ "type": 1,
+ "node": 2003,
+ "pre_node": 2002,
+ "node_lv": 4,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "defpro_png",
+ "node_type": 2,
+ "disc_png": "png001",
+ "disc_pos": 1,
+ "attribute": [
+ {
+ "a": "defpro",
+ "n": 20
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 30,
+ "type": 1,
+ "node": 2003,
+ "pre_node": 2002,
+ "node_lv": 5,
+ "pre_node_lv": 5,
+ "node_direction": 0,
+ "node_long": 0,
+ "node_png": "defpro_png",
+ "node_type": 2,
+ "disc_png": "png001",
+ "disc_pos": 1,
+ "attribute": [
+ {
+ "a": "defpro",
+ "n": 25
+ }
+ ],
+ "range": 4,
+ "icon_cos": [
+ {
+ "a": "attr",
+ "t": "TalentPoints1",
+ "n": 1
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_worldall.json b/bin/json/game_worldall.json
index 03315619e..38d4107ac 100644
--- a/bin/json/game_worldall.json
+++ b/bin/json/game_worldall.json
@@ -168,7 +168,7 @@
]
},
{
- "id": 110,
+ "id": 113,
"name": {
"key": "story_80",
"text": "日常测试任务"
diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json
index f2c6682c5..6853aa542 100644
--- a/bin/json/game_worldtask.json
+++ b/bin/json/game_worldtask.json
@@ -10,20 +10,32 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_1",
- "text": "主线任务1"
+ "text": "初来乍到"
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:601-603"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10010,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "和骇客蛛对话"
+ },
"completetask": [
20001
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "发光的石头(目前是假山代替)"
+ },
"deliver_npc": 10012,
"auto_accept": 1,
"reword": [
@@ -46,7 +58,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_2",
@@ -54,12 +66,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:604-606"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10020,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "和邦尼兔对话"
+ },
"completetask": [
20002
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "熊猫"
+ },
"deliver_npc": 10022,
"auto_accept": 0,
"reword": [
@@ -82,7 +106,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_3",
@@ -90,12 +114,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:607-609"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10030,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "尝试挑战邦尼兔"
+ },
"completetask": [
174
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "邦尼兔"
+ },
"deliver_npc": 10032,
"auto_accept": 0,
"reword": [
@@ -118,7 +154,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_4",
@@ -126,12 +162,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:611-612"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找邦尼兔"
},
"npc": 10040,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "招募一次守护者"
+ },
"completetask": [
114
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "熊猫"
+ },
"deliver_npc": 10041,
"auto_accept": 0,
"reword": [
@@ -154,7 +202,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_5",
@@ -162,12 +210,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:613-614"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找乌龟大师"
},
"npc": 103,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "调查这些木桩"
+ },
"completetask": [
203
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "邦尼兔"
+ },
"deliver_npc": 10050,
"auto_accept": 0,
"reword": [
@@ -190,7 +250,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_6",
@@ -198,12 +258,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:615-617"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10060,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "通关主线章节1-5"
+ },
"completetask": [
161
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "熊猫"
+ },
"deliver_npc": 10061,
"auto_accept": 0,
"reword": [
@@ -226,7 +298,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_7",
@@ -234,12 +306,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:631-632"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找戈伯"
},
"npc": 10070,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "通关维京远征难度1"
+ },
"completetask": [
304
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "戈伯"
+ },
"deliver_npc": 10072,
"auto_accept": 0,
"reword": [
@@ -262,7 +346,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_8",
@@ -270,12 +354,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:636-637"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找骇客蛛"
},
"npc": 10080,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "通关主线1-6"
+ },
"completetask": [
305
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "食人鱼"
+ },
"deliver_npc": 10082,
"auto_accept": 0,
"reword": [
@@ -298,7 +394,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_9",
@@ -306,12 +402,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:638"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10090,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "进行一次10连"
+ },
"completetask": [
306
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "任务结束"
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -334,7 +442,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_10",
@@ -342,12 +450,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:640-642"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10100,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "打败梦魇!"
+ },
"completetask": [
307
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "邦尼兔"
+ },
"deliver_npc": 10102,
"auto_accept": 0,
"reword": [
@@ -370,7 +490,7 @@
"icon": "",
"task_Tname": {
"key": "Mainline_Tasks",
- "text": "1"
+ "text": "第一章:中轴城风云"
},
"task_name": {
"key": "Mainline_Tasks_11",
@@ -378,12 +498,24 @@
},
"task_display": {
"key": "story_80",
- "text": "1"
+ "text": "剧情ID:99999-这是最后一个任务:敬请期待"
+ },
+ "npctxt": {
+ "key": "story_80",
+ "text": "寻找熊猫"
},
"npc": 10110,
+ "completetasktxt": {
+ "key": "story_80",
+ "text": "敬请期待!"
+ },
"completetask": [
193
],
+ "deliver_npctxt": {
+ "key": "story_80",
+ "text": "熊猫"
+ },
"deliver_npc": 10110,
"auto_accept": 0,
"reword": [
@@ -406,7 +538,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "武馆内勤奋的身影是?"
},
"task_name": {
"key": "WuGuanSceneTask_1",
@@ -416,10 +548,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70010,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -442,7 +586,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "铁匠铺门口身影是?"
},
"task_name": {
"key": "SmithyScene_1",
@@ -452,10 +596,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70020,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -478,7 +634,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "戈伯的小心思"
},
"task_name": {
"key": "SmithyScene_1_1",
@@ -488,10 +644,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70021,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
308
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 70023,
"auto_accept": 0,
"reword": [
@@ -514,7 +682,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "戈伯的嘱托"
},
"task_name": {
"key": "SmithyScene_2",
@@ -524,10 +692,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70030,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -550,7 +730,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "戈伯的嘱托"
},
"task_name": {
"key": "SmithyScene_2_1",
@@ -560,10 +740,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70031,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
309
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 70033,
"auto_accept": 0,
"reword": [
@@ -586,7 +778,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "武馆秘闻"
},
"task_name": {
"key": "WuGuanSceneTask_2",
@@ -596,10 +788,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70040,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -622,7 +826,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "好像有人再看我?"
},
"task_name": {
"key": "WuGuanSceneTask_3",
@@ -632,10 +836,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70050,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -658,7 +874,7 @@
"icon": "",
"task_Tname": {
"key": "Side_Quest",
- "text": "1"
+ "text": "戈伯的委托"
},
"task_name": {
"key": "SmithyScene_3",
@@ -668,10 +884,22 @@
"key": "story_80",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 70060,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 0,
"auto_accept": 0,
"reword": [
@@ -683,119 +911,11 @@
],
"module": []
},
- {
- "key": 100010,
- "lock": 1,
- "lockend": 5,
- "ontxe": 20010,
- "id_after": 0,
- "group": 110,
- "des": 1,
- "icon": "",
- "task_Tname": {
- "key": "Daily_tasks1",
- "text": "1"
- },
- "task_name": {
- "key": "Daily_tasks1",
- "text": "1"
- },
- "task_display": {
- "key": "Daily_tasks1",
- "text": "1"
- },
- "npc": 10010,
- "completetask": [
- 0
- ],
- "deliver_npc": 10012,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 999
- }
- ],
- "module": []
- },
- {
- "key": 100020,
- "lock": 1,
- "lockend": 5,
- "ontxe": 20010,
- "id_after": 0,
- "group": 111,
- "des": 1,
- "icon": "",
- "task_Tname": {
- "key": "Daily_tasks2",
- "text": "1"
- },
- "task_name": {
- "key": "Daily_tasks2",
- "text": "1"
- },
- "task_display": {
- "key": "Daily_tasks2",
- "text": "1"
- },
- "npc": 10010,
- "completetask": [
- 0
- ],
- "deliver_npc": 10012,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 999
- }
- ],
- "module": []
- },
- {
- "key": 100030,
- "lock": 1,
- "lockend": 5,
- "ontxe": 20010,
- "id_after": 0,
- "group": 112,
- "des": 1,
- "icon": "",
- "task_Tname": {
- "key": "Daily_tasks3",
- "text": "1"
- },
- "task_name": {
- "key": "Daily_tasks3",
- "text": "1"
- },
- "task_display": {
- "key": "Daily_tasks3",
- "text": "1"
- },
- "npc": 10010,
- "completetask": [
- 0
- ],
- "deliver_npc": 10012,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 999
- }
- ],
- "module": []
- },
{
"key": 100040,
- "lock": 6,
+ "lock": 5,
"lockend": 20,
- "ontxe": 20010,
+ "ontxe": 20030,
"id_after": 0,
"group": 113,
"des": 1,
@@ -812,10 +932,22 @@
"key": "Daily_tasks4",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10010,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 10012,
"auto_accept": 0,
"reword": [
@@ -831,7 +963,7 @@
"key": 100050,
"lock": 6,
"lockend": 20,
- "ontxe": 20010,
+ "ontxe": 20050,
"id_after": 0,
"group": 114,
"des": 1,
@@ -848,10 +980,22 @@
"key": "Daily_tasks5",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10010,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 10012,
"auto_accept": 0,
"reword": [
@@ -864,66 +1008,42 @@
"module": []
},
{
- "key": 100060,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
+ "key": 100030,
+ "lock": 7,
+ "lockend": 5,
+ "ontxe": 20070,
"id_after": 0,
- "group": 115,
+ "group": 112,
"des": 1,
"icon": "",
"task_Tname": {
- "key": "Daily_tasks6",
+ "key": "Daily_tasks3",
"text": "1"
},
"task_name": {
- "key": "Daily_tasks6",
+ "key": "Daily_tasks3",
"text": "1"
},
"task_display": {
- "key": "Daily_tasks6",
+ "key": "Daily_tasks3",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10010,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
- "deliver_npc": 10012,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 999
- }
- ],
- "module": []
- },
- {
- "key": 100070,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
- "id_after": 0,
- "group": 116,
- "des": 1,
- "icon": "",
- "task_Tname": {
- "key": "Daily_tasks7",
- "text": "1"
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
},
- "task_name": {
- "key": "Daily_tasks7",
- "text": "1"
- },
- "task_display": {
- "key": "Daily_tasks7",
- "text": "1"
- },
- "npc": 10010,
- "completetask": [
- 0
- ],
"deliver_npc": 10012,
"auto_accept": 0,
"reword": [
@@ -937,9 +1057,9 @@
},
{
"key": 500010,
- "lock": 1,
+ "lock": 9,
"lockend": 5,
- "ontxe": 20010,
+ "ontxe": 20090,
"id_after": 0,
"group": 410,
"des": 4,
@@ -956,10 +1076,22 @@
"key": "Weekly_Tasks1",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10040,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 10082,
"auto_accept": 0,
"reword": [
@@ -973,9 +1105,9 @@
},
{
"key": 500020,
- "lock": 1,
+ "lock": 10,
"lockend": 5,
- "ontxe": 20010,
+ "ontxe": 20100,
"id_after": 0,
"group": 411,
"des": 4,
@@ -992,10 +1124,22 @@
"key": "Weekly_Tasks2",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10040,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
+ },
"deliver_npc": 10082,
"auto_accept": 0,
"reword": [
@@ -1009,9 +1153,9 @@
},
{
"key": 500030,
- "lock": 1,
+ "lock": 11,
"lockend": 5,
- "ontxe": 20010,
+ "ontxe": 20110,
"id_after": 0,
"group": 412,
"des": 4,
@@ -1028,154 +1172,22 @@
"key": "Weekly_Tasks3",
"text": "1"
},
+ "npctxt": {
+ "key": "",
+ "text": ""
+ },
"npc": 10040,
+ "completetasktxt": {
+ "key": "",
+ "text": ""
+ },
"completetask": [
0
],
- "deliver_npc": 10082,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 888
- }
- ],
- "module": []
- },
- {
- "key": 500040,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
- "id_after": 0,
- "group": 413,
- "des": 4,
- "icon": "",
- "task_Tname": {
- "key": "Weekly_Tasks4",
- "text": "1"
+ "deliver_npctxt": {
+ "key": "",
+ "text": ""
},
- "task_name": {
- "key": "Weekly_Tasks4",
- "text": "1"
- },
- "task_display": {
- "key": "Weekly_Tasks4",
- "text": "1"
- },
- "npc": 10040,
- "completetask": [
- 0
- ],
- "deliver_npc": 10082,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 888
- }
- ],
- "module": []
- },
- {
- "key": 500050,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
- "id_after": 0,
- "group": 414,
- "des": 4,
- "icon": "",
- "task_Tname": {
- "key": "Weekly_Tasks5",
- "text": "1"
- },
- "task_name": {
- "key": "Weekly_Tasks5",
- "text": "1"
- },
- "task_display": {
- "key": "Weekly_Tasks5",
- "text": "1"
- },
- "npc": 10040,
- "completetask": [
- 0
- ],
- "deliver_npc": 10082,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 888
- }
- ],
- "module": []
- },
- {
- "key": 500060,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
- "id_after": 0,
- "group": 415,
- "des": 4,
- "icon": "",
- "task_Tname": {
- "key": "Weekly_Tasks6",
- "text": "1"
- },
- "task_name": {
- "key": "Weekly_Tasks6",
- "text": "1"
- },
- "task_display": {
- "key": "Weekly_Tasks6",
- "text": "1"
- },
- "npc": 10040,
- "completetask": [
- 0
- ],
- "deliver_npc": 10082,
- "auto_accept": 0,
- "reword": [
- {
- "a": "item",
- "t": "110001",
- "n": 888
- }
- ],
- "module": []
- },
- {
- "key": 500070,
- "lock": 6,
- "lockend": 20,
- "ontxe": 20010,
- "id_after": 0,
- "group": 416,
- "des": 4,
- "icon": "",
- "task_Tname": {
- "key": "Weekly_Tasks7",
- "text": "1"
- },
- "task_name": {
- "key": "Weekly_Tasks7",
- "text": "1"
- },
- "task_display": {
- "key": "Weekly_Tasks7",
- "text": "1"
- },
- "npc": 10040,
- "completetask": [
- 0
- ],
"deliver_npc": 10082,
"auto_accept": 0,
"reword": [
diff --git a/comm/const.go b/comm/const.go
index 8e262b644..bdd616a80 100644
--- a/comm/const.go
+++ b/comm/const.go
@@ -245,6 +245,14 @@ const (
TableGourmetAtlas = "gourmetatlas"
// 声望
TableReputation = "reputation"
+
+ ///捕羊大赛
+ TableParkour = "parkour"
+ ///捕羊大赛 队伍表
+ TableParkourTeam = "parkourteam"
+ ///捕羊大赛 匹配表
+ TableParkourMatch = "parkourmatch"
+
)
// RPC服务接口定义处
@@ -302,6 +310,10 @@ const ( //Rpc
// RPC 通知来了邮件
Rpc_Mail core.Rpc_Key = "Rpc_Mail"
+
+ //捕羊大赛加入匹配请求
+ RPC_ParkourJoinMatch core.Rpc_Key = "RPC_ParkourJoinMatch"
+ RPC_ParkourMatchSucc core.Rpc_Key = "RPC_ParkourMatchSucc"
)
// 事件类型定义处
diff --git a/comm/imodule.go b/comm/imodule.go
index b61dfffad..662fa508c 100644
--- a/comm/imodule.go
+++ b/comm/imodule.go
@@ -180,7 +180,7 @@ type (
IMline interface {
ModifyMlineDataByNanduID(session IUserSession, id int32) (code pb.ErrorCode)
/// 查询章节ID
- GetUsermLineData(uid string, chapterType int32) (chapterId int32)
+ GetUserMlineData(uid string, chapterType int32) (chapterId int32)
// 校验主线是否通关
CheckCommpleteStage(uid string, stageId int32) (b bool)
@@ -298,6 +298,9 @@ type (
QueryHeroFetter(uid string) (data []*pb.DBHeroFetter) // 查询所有的羁绊信息
AddHeroFetterData(uid string, heroConfId string) (code pb.ErrorCode) // 创建一条羁绊信息
SendRpcAddHero(uid string, heroConfId string, serverTag string) (err error)
+
+ // 获取 某个阵营的羁绊数据
+ QueryFavorabilityByRace(uid string, race int32) int32
}
//月子秘境
IMoonFantasy interface {
diff --git a/modules/library/module.go b/modules/library/module.go
index 6bbdfc742..c6701c401 100644
--- a/modules/library/module.go
+++ b/modules/library/module.go
@@ -319,3 +319,11 @@ func (this *Library) TaskFinishNotify(uid string, taskId, fetterId int32) error
}
return nil
}
+
+// 获取阵营的好感度
+func (this *Library) QueryFavorabilityByRace(uid string, race int32) int32 {
+ if rst, err := this.ModuleUser.GetUserExpand(uid); err == nil { // 统计主线进度
+ return rst.Race[race]
+ }
+ return 0
+}
diff --git a/modules/mline/module.go b/modules/mline/module.go
index 487460dca..44c3db016 100644
--- a/modules/mline/module.go
+++ b/modules/mline/module.go
@@ -5,7 +5,6 @@ import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
- "sort"
"go.mongodb.org/mongo-driver/bson/primitive"
)
@@ -154,19 +153,13 @@ func (this *Mline) ModifyMlineDataByNanduID(session comm.IUserSession, id int32)
}
return
}
-func (this *Mline) GetUsermLineData(uid string, chapterType int32) (chapterId int32) {
- var sz []*pb.DBMline
- _szData, err := this.modelMline.getMainlineList(uid)
- if err == nil {
- for _, v := range _szData {
- if v.ChapterId == chapterId {
- sz = append(sz, _szData...)
- }
+func (this *Mline) GetUserMlineData(uid string, chapterType int32) (chapterId int32) {
+ if rst, err := this.ModuleUser.GetUserExpand(uid); err == nil { // 统计主线进度
+ _mp := rst.Mline
+ if v, ok := _mp[chapterType]; ok {
+ chapterId = v
+ return
}
-
- sort.SliceStable(sz, func(i, j int) bool { // 排序
- return sz[i].ChapterId > sz[j].ChapterId
- })
}
return
diff --git a/modules/parkour/api.go b/modules/parkour/api.go
new file mode 100644
index 000000000..4683ddbb3
--- /dev/null
+++ b/modules/parkour/api.go
@@ -0,0 +1,29 @@
+package parkour
+
+import (
+ "go_dreamfactory/modules"
+
+ "go_dreamfactory/lego/core"
+)
+
+/*
+API
+*/
+type apiComp struct {
+ modules.MCompGate
+ service core.IService
+ module *Parkour
+}
+
+//组件初始化接口
+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.module = module.(*Parkour)
+ this.service = service
+ return
+}
+
+func (this *apiComp) Start() (err error) {
+ err = this.MCompGate.Start()
+ return
+}
diff --git a/modules/parkour/api_invite.go b/modules/parkour/api_invite.go
new file mode 100644
index 000000000..61a5b2ced
--- /dev/null
+++ b/modules/parkour/api_invite.go
@@ -0,0 +1,65 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/configure"
+ "time"
+)
+
+//参数校验
+func (this *apiComp) InviteCheck(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode) {
+ return
+}
+
+///邀请组队
+func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode, data *pb.ErrorData) {
+ var (
+ tean *pb.DBRaceTeam
+ tuser *pb.DBUser
+ 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 {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if len(tean.Member) > 3 {
+ code = pb.ErrorCode_ReqParameterError
+ return
+ }
+
+ if tuser = this.module.ModuleUser.GetUser(req.Uid); tuser == nil {
+ code = pb.ErrorCode_SystemError
+ return
+ }
+ //目标是否在线
+ if !this.module.ModuleUser.IsOnline(req.Uid) {
+ tean.Member = append(tean.Member, &pb.DBRaceMember{Uid: tuser.Uid, Name: tuser.Name, Isai: true})
+ } else {
+ ok = false
+ for _, v := range tean.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})
+ }
+ this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice",
+ &pb.ParkourInviteNoticePush{Team: tean, State: 1}, req.Uid)
+ }
+ if err = this.module.teamComp.Change(session.GetUserId(), map[string]interface{}{
+ "invite": tean.Invite,
+ "member": tean.Member,
+ }); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteResp{Issucc: true, Team: tean})
+ return
+}
diff --git a/modules/parkour/api_invitehandle.go b/modules/parkour/api_invitehandle.go
new file mode 100644
index 000000000..b70bdaa6d
--- /dev/null
+++ b/modules/parkour/api_invitehandle.go
@@ -0,0 +1,70 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/configure"
+ "time"
+)
+
+//参数校验
+func (this *apiComp) InviteHandleCheck(session comm.IUserSession, req *pb.ParkourInviteHandleReq) (code pb.ErrorCode) {
+ return
+}
+
+///邀请组队
+func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInviteHandleReq) (code pb.ErrorCode, data *pb.ErrorData) {
+ var (
+ tean *pb.DBRaceTeam
+ invite *pb.DBRaceInvite
+ member *pb.DBRaceMember
+ users []string
+ ok bool
+ err error
+ )
+ if code = this.InviteHandleCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if tean, err = this.module.teamComp.queryteam(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)) { //邀请未过期
+ invite = v
+ ok = true
+ }
+ }
+ if !ok {
+ code = pb.ErrorCode_ParkourInviteOverdue
+ }
+ 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}
+ tean.Member = append(tean.Member, member)
+ if err = this.module.teamComp.Change(tean.Captainid, map[string]interface{}{
+ "member": tean.Member,
+ }); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ this.module.SendMsgToUsers(string(this.module.GetType()), "teamjoinnotice",
+ &pb.ParkourTeamJoinNoticePush{Member: member}, users...)
+ this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage",
+ &pb.ParkourTeamChanagePush{Team: tean}, users...)
+ } else {
+ this.module.SendMsgToUser(string(this.module.GetType()), "invitenotice",
+ &pb.ParkourInviteNoticePush{Team: tean, State: 3}, tean.Captainid)
+ }
+
+ session.SendMsg(string(this.module.GetType()), "invite", &pb.ParkourInviteHandleResp{IsSucc: true})
+ return
+}
diff --git a/modules/parkour/api_quitteam.go b/modules/parkour/api_quitteam.go
new file mode 100644
index 000000000..7e0353cf4
--- /dev/null
+++ b/modules/parkour/api_quitteam.go
@@ -0,0 +1,57 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+)
+
+//参数校验
+func (this *apiComp) QuitTeamCheck(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode) {
+ return
+}
+
+///退出队伍
+func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode, data *pb.ErrorData) {
+ var (
+ tean *pb.DBRaceTeam
+ member *pb.DBRaceMember
+ users []string
+ ok bool
+ err error
+ )
+ if code = this.QuitTeamCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if tean, err = this.module.teamComp.queryteam(req.Captainid); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ for i, v := range tean.Member {
+ if v.Uid == session.GetUserId() {
+ tean.Member = append(tean.Member[0:i], tean.Member[i+1:]...)
+ member = v
+ ok = true
+ } else {
+ users = append(users, v.Uid)
+ }
+ }
+ if !ok {
+ code = pb.ErrorCode_ReqParameterError
+ return
+ }
+ if err = this.module.teamComp.Change(req.Captainid, map[string]interface{}{
+ "member": tean.Member,
+ }); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+
+ this.module.SendMsgToUsers(string(this.module.GetType()), "teamquitnotice",
+ &pb.ParkourTeamQuitNoticePush{Member: member}, users...)
+
+ this.module.SendMsgToUsers(string(this.module.GetType()), "teamchanage",
+ &pb.ParkourTeamChanagePush{Team: tean}, users...)
+
+ session.SendMsg(string(this.module.GetType()), "quitteam", &pb.ParkourQuitTeamResp{})
+ return
+}
diff --git a/modules/parkour/api_racematch.go b/modules/parkour/api_racematch.go
new file mode 100644
index 000000000..b9dd22091
--- /dev/null
+++ b/modules/parkour/api_racematch.go
@@ -0,0 +1,32 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+)
+
+//参数校验
+func (this *apiComp) RaceMatchCheck(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode) {
+ return
+}
+
+///匹配请求
+func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode, data *pb.ErrorData) {
+ var (
+ team *pb.DBRaceTeam
+ err error
+ )
+ if code = this.RaceMatchCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if team, err = this.module.teamComp.queryteam(session.GetUserId()); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if err = this.module.matchComp.addteam(team); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ session.SendMsg(string(this.module.GetType()), "racematch", &pb.ParkourRaceMatchResp{})
+ return
+}
diff --git a/modules/parkour/configure.go b/modules/parkour/configure.go
new file mode 100644
index 000000000..919f2ef97
--- /dev/null
+++ b/modules/parkour/configure.go
@@ -0,0 +1,22 @@
+package parkour
+
+import (
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+)
+
+const ()
+
+///背包配置管理组件
+type configureComp struct {
+ modules.MCompConfigure
+ module *Parkour
+}
+
+//组件初始化接口
+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)
+
+ return
+}
diff --git a/modules/parkour/core.go b/modules/parkour/core.go
new file mode 100644
index 000000000..ebc16dcf9
--- /dev/null
+++ b/modules/parkour/core.go
@@ -0,0 +1,15 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+)
+
+///捕羊大赛对象
+type RaceItem struct {
+ Id string //战斗id
+ RedMember []*pb.DBRaceMember //红方成员
+ RedSession []comm.IUserSession //红方会话
+ BuleMember []*pb.DBRaceMember //蓝方成员
+ BuleSession []comm.IUserSession //蓝方会话
+}
diff --git a/modules/parkour/model_match.go b/modules/parkour/model_match.go
new file mode 100644
index 000000000..9ac6e8a2a
--- /dev/null
+++ b/modules/parkour/model_match.go
@@ -0,0 +1,36 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+)
+
+///竞速数据模块
+type ModelMatchComp struct {
+ modules.MCompModel
+ module *Parkour
+}
+
+//组件初始化接口 只是用redis 层
+func (this *ModelMatchComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
+ this.TableName = comm.TableParkourMatch
+ this.MCompModel.Init(service, module, comp, opt)
+ this.module = module.(*Parkour)
+ return
+}
+
+///添加匹配队伍
+func (this *ModelMatchComp) addteam(team *pb.DBRaceTeam) (err error) {
+ // var (
+ // teams []*pb.DBRaceTeam = make([]*pb.DBRaceTeam, 0)
+ // )
+ // if err = this.GetQueues(this.TableName, 1000, &teams); err == redis.RedisNil {
+ // if outkey, err = this.AddQueues(this.TableName, 1000, data); err != nil {
+ // this.module.Errorf("err:%v", err)
+ // return
+ // }
+ // }
+ return
+}
diff --git a/modules/parkour/model_parkour.go b/modules/parkour/model_parkour.go
new file mode 100644
index 000000000..f20d08e4b
--- /dev/null
+++ b/modules/parkour/model_parkour.go
@@ -0,0 +1,38 @@
+package parkour
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/db"
+
+ "go.mongodb.org/mongo-driver/mongo"
+ "go.mongodb.org/mongo-driver/x/bsonx"
+)
+
+///竞速数据模块
+type ModelParkourComp struct {
+ modules.MCompModel
+ module *Parkour
+}
+
+//组件初始化接口
+func (this *ModelParkourComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
+ this.TableName = comm.TableParkour
+ 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 *ModelParkourComp) addrace(race *pb.DBRace) (err error) {
+ if err = this.AddList("", race.Id, race, db.SetDBMgoLog(false)); err != nil {
+ this.module.Errorln(err)
+ }
+ return
+}
diff --git a/modules/parkour/model_team.go b/modules/parkour/model_team.go
new file mode 100644
index 000000000..5125a9ee0
--- /dev/null
+++ b/modules/parkour/model_team.go
@@ -0,0 +1,94 @@
+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.DBRaceTeam, err error) {
+ result = &pb.DBRaceTeam{}
+ 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.DBRaceTeam{
+ Id: primitive.NewObjectID().Hex(),
+ Captainid: uid,
+ State: pb.RaceTeamState_teaming,
+ 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.DBRaceTeam, err error) {
+ results = make([]*pb.DBRaceTeam, 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.DBRaceTeam{
+ Id: primitive.NewObjectID().Hex(),
+ Captainid: v,
+ State: pb.RaceTeamState_teaming,
+ 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 ec8ab6f76..ef9b21e62 100644
--- a/modules/parkour/module.go
+++ b/modules/parkour/module.go
@@ -1,10 +1,17 @@
package parkour
import (
+ "context"
+ "fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
+ "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+ "sync"
+
+ "go.mongodb.org/mongo-driver/bson/primitive"
)
/*
@@ -19,7 +26,14 @@ func NewModule() core.IModule {
type Parkour struct {
modules.ModuleBase
- service base.IRPCXService
+ service base.IRPCXService
+ api *apiComp
+ configure *configureComp
+ teamComp *ModelTeamComp
+ matchComp *ModelMatchComp
+ parkourComp *ModelParkourComp
+ lock sync.RWMutex
+ battles map[string]*RaceItem
}
//模块名
@@ -31,11 +45,85 @@ func (this *Parkour) GetType() core.M_Modules {
func (this *Parkour) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.service = service.(base.IRPCXService)
+ this.battles = map[string]*RaceItem{}
return
}
func (this *Parkour) Start() (err error) {
err = this.ModuleBase.Start()
-
+ this.service.RegisterFunctionName(string(comm.RPC_ParkourMatchSucc), this.createbattle)
return
}
+
+//装备组件
+func (this *Parkour) OnInstallComp() {
+ this.ModuleBase.OnInstallComp()
+ this.api = this.RegisterComp(new(apiComp)).(*apiComp)
+ this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
+ this.teamComp = this.RegisterComp(new(ModelTeamComp)).(*ModelTeamComp)
+ this.matchComp = this.RegisterComp(new(ModelMatchComp)).(*ModelMatchComp)
+ this.parkourComp = this.RegisterComp(new(ModelParkourComp)).(*ModelParkourComp)
+}
+
+//匹配成功 创建战斗
+func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSuccReq, resp *pb.RPCParkourMatchSuccResp) (err error) {
+ var (
+ race *pb.DBRace
+ battle *RaceItem
+ sessions []comm.IUserSession = make([]comm.IUserSession, 0)
+ teams []*pb.DBRaceTeam
+ users []string = make([]string, 0)
+ )
+ this.Debug("createbattle", log.Field{Key: "req", Value: req.String()})
+
+ race = &pb.DBRace{
+ Id: primitive.NewObjectID().Hex(),
+ ServicePath: fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()),
+ Redmember: req.Red,
+ Bulemember: req.Bule,
+ }
+ battle = &RaceItem{
+ Id: race.Id,
+ RedSession: make([]comm.IUserSession, 0),
+ BuleSession: make([]comm.IUserSession, 0),
+ }
+
+ 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)
+ }
+ }
+ 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)
+ }
+ }
+ 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.parkourComp.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{
+ Race: race,
+ }, sessions...); err != nil {
+ this.Errorln(err)
+ }
+ return
+}
+
+
diff --git a/modules/rtask/verifyHandle.go b/modules/rtask/verifyHandle.go
index eec800d59..f6762f294 100644
--- a/modules/rtask/verifyHandle.go
+++ b/modules/rtask/verifyHandle.go
@@ -128,7 +128,7 @@ func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (
}
if ml, y := m.(comm.IMline); y {
- qjId := ml.GetUsermLineData(uid, 1)
+ qjId := ml.GetUserMlineData(uid, 1)
return soEqual(qjId, cfg.Data1)
}
return
diff --git a/modules/timer/parkour.go b/modules/timer/parkour.go
new file mode 100644
index 000000000..91bc463e2
--- /dev/null
+++ b/modules/timer/parkour.go
@@ -0,0 +1,141 @@
+package timer
+
+import (
+ "context"
+ "go_dreamfactory/comm"
+ "go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/db"
+ "sync"
+ "time"
+
+ "go_dreamfactory/lego/base"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/lego/sys/cron"
+)
+
+/*
+捕羊大赛 维护服务
+*/
+type ParkourComp struct {
+ modules.MCompConfigure
+ service base.IRPCXService
+ module *Timer
+ lock sync.RWMutex
+ teams map[string][]*pb.DBRaceMember
+ total int32
+}
+
+//组件初始化接口
+func (this *ParkourComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ this.MCompConfigure.Init(service, module, comp, options)
+ this.service = service.(base.IRPCXService)
+ this.module = module.(*Timer)
+ this.teams = make(map[string][]*pb.DBRaceMember)
+ return
+}
+
+//自由跨服环境下开启此功能
+func (this *ParkourComp) Start() (err error) {
+ err = this.MCompConfigure.Start()
+ if db.IsCross() {
+ this.service.RegisterFunctionName(string(comm.RPC_ParkourJoinMatch), this.join)
+ if _, err = cron.AddFunc("0 59 23 ? * SAT", this.timer); err != nil {
+ this.module.Errorf("cron.AddFunc err:%v", err)
+ }
+ }
+ return
+}
+
+//加入匹配中
+func (this *ParkourComp) join(ctx context.Context, req *pb.RPCParkourJoinMatchReq, resp *pb.RPCParkourJoinMatchResp) (err error) {
+ this.lock.Lock()
+ defer this.lock.Unlock()
+ this.teams[req.Captainid] = req.Member
+ this.total += int32(len(req.Member))
+ if this.total >= 6 {
+ var (
+ teams1 []string = make([]string, 0)
+ teams2 []string = make([]string, 0)
+ teams3 []string = make([]string, 0)
+ red []string = make([]string, 0)
+ reduser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
+ bule []string = make([]string, 0)
+ buleuser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
+ )
+ 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)
+ }
+ }
+
+ //找红队
+ if len(teams3) > 0 {
+ red = append(red, teams3[0])
+ teams3 = teams3[1:]
+ } else if len(teams2) > 0 && len(teams1) > 0 {
+ red = append(red, teams2[0], teams1[0])
+ teams2 = teams2[1:]
+ teams1 = teams1[1:]
+ } else if len(teams1) >= 3 {
+ red = append(red, teams1[0], teams1[1], teams1[2])
+ teams1 = teams1[3:]
+ }
+
+ if len(red) == 0 {
+ return
+ }
+
+ //找蓝队
+ if len(teams3) > 0 {
+ bule = append(bule, teams3[0])
+ teams3 = teams3[1:]
+ } else if len(teams2) > 0 && len(teams1) > 0 {
+ bule = append(bule, teams2[0], teams1[0])
+ teams2 = teams2[1:]
+ teams1 = teams1[1:]
+ } else if len(teams1) >= 3 {
+ bule = append(bule, teams1[0], teams1[1], teams1[2])
+ teams1 = teams1[3:]
+ }
+
+ if len(bule) == 0 {
+ return
+ }
+ for _, v := range red {
+ reduser = append(reduser, this.teams[v]...)
+ }
+ for _, v := range bule {
+ buleuser = append(reduser, this.teams[v]...)
+ }
+
+ 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 -= 6
+ }
+ return
+}
+
+//定时匹配处理
+func (this *ParkourComp) timer() {
+
+}
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index e447b4b65..705762dfd 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -364,6 +364,9 @@ const (
ErrorCode_PracticePillarMaxLv ErrorCode = 4304 //木桩已到满级
ErrorCode_PracticeYouQiecuoing ErrorCode = 4305 //你有切磋未完成
ErrorCode_PracticeTargetQiecuoing ErrorCode = 4306 //目标正在切磋中
+ //parkour
+ ErrorCode_ParkourMemberFull ErrorCode = 4401 //队伍成员已满
+ ErrorCode_ParkourInviteOverdue ErrorCode = 4402 //邀请已过期
)
// Enum value maps for ErrorCode.
@@ -676,6 +679,8 @@ var (
4304: "PracticePillarMaxLv",
4305: "PracticeYouQiecuoing",
4306: "PracticeTargetQiecuoing",
+ 4401: "ParkourMemberFull",
+ 4402: "ParkourInviteOverdue",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -985,6 +990,8 @@ var (
"PracticePillarMaxLv": 4304,
"PracticeYouQiecuoing": 4305,
"PracticeTargetQiecuoing": 4306,
+ "ParkourMemberFull": 4401,
+ "ParkourInviteOverdue": 4402,
}
)
@@ -1019,7 +1026,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, 0xf5, 0x37, 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,
@@ -1466,8 +1473,11 @@ var file_errorcode_proto_rawDesc = []byte{
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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
- 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 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/library_db.pb.go b/pb/library_db.pb.go
index 4f526bd36..0205777d6 100644
--- a/pb/library_db.pb.go
+++ b/pb/library_db.pb.go
@@ -28,7 +28,7 @@ type DBLibrary struct {
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" bson:"uid"` //用户ID
Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id
- Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: favorlv
+ Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: id
Prize map[int32]int32 `protobuf:"bytes,5,rep,name=prize,proto3" json:"prize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //是否领奖 key 好感度等级
Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级
Storyid int32 `protobuf:"varint,7,opt,name=storyid,proto3" json:"storyid"` // 故事id 用来判断是否领奖
diff --git a/pb/parkour_db.pb.go b/pb/parkour_db.pb.go
new file mode 100644
index 000000000..c3a179b7f
--- /dev/null
+++ b/pb/parkour_db.pb.go
@@ -0,0 +1,692 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: parkour/parkour_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 RaceType int32
+
+const (
+ RaceType_ordinary RaceType = 0
+ RaceType_prop RaceType = 1
+)
+
+// Enum value maps for RaceType.
+var (
+ RaceType_name = map[int32]string{
+ 0: "ordinary",
+ 1: "prop",
+ }
+ RaceType_value = map[string]int32{
+ "ordinary": 0,
+ "prop": 1,
+ }
+)
+
+func (x RaceType) Enum() *RaceType {
+ p := new(RaceType)
+ *p = x
+ return p
+}
+
+func (x RaceType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RaceType) Descriptor() protoreflect.EnumDescriptor {
+ return file_parkour_parkour_db_proto_enumTypes[0].Descriptor()
+}
+
+func (RaceType) Type() protoreflect.EnumType {
+ return &file_parkour_parkour_db_proto_enumTypes[0]
+}
+
+func (x RaceType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RaceType.Descriptor instead.
+func (RaceType) EnumDescriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{0}
+}
+
+//队伍状态
+type RaceTeamState int32
+
+const (
+ RaceTeamState_teaming RaceTeamState = 0 //组队中
+ RaceTeamState_matching RaceTeamState = 1 //匹配中
+ RaceTeamState_raceing RaceTeamState = 2 //比赛中
+)
+
+// Enum value maps for RaceTeamState.
+var (
+ RaceTeamState_name = map[int32]string{
+ 0: "teaming",
+ 1: "matching",
+ 2: "raceing",
+ }
+ RaceTeamState_value = map[string]int32{
+ "teaming": 0,
+ "matching": 1,
+ "raceing": 2,
+ }
+)
+
+func (x RaceTeamState) Enum() *RaceTeamState {
+ p := new(RaceTeamState)
+ *p = x
+ return p
+}
+
+func (x RaceTeamState) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RaceTeamState) Descriptor() protoreflect.EnumDescriptor {
+ return file_parkour_parkour_db_proto_enumTypes[1].Descriptor()
+}
+
+func (RaceTeamState) Type() protoreflect.EnumType {
+ return &file_parkour_parkour_db_proto_enumTypes[1]
+}
+
+func (x RaceTeamState) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RaceTeamState.Descriptor instead.
+func (RaceTeamState) EnumDescriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{1}
+}
+
+//坐骑
+type DBMounts struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` //坐骑id
+ Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid"` //配置id
+}
+
+func (x *DBMounts) Reset() {
+ *x = DBMounts{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_db_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBMounts) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBMounts) ProtoMessage() {}
+
+func (x *DBMounts) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 DBMounts.ProtoReflect.Descriptor instead.
+func (*DBMounts) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DBMounts) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *DBMounts) GetCid() string {
+ if x != nil {
+ return x.Cid
+ }
+ return ""
+}
+
+//队员信息
+type DBRaceMember struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称
+ Mount *DBMounts `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"` //里程数
+ Isai bool `protobuf:"varint,6,opt,name=isai,proto3" json:"isai"` //是否是ai
+ Isoff bool `protobuf:"varint,7,opt,name=isoff,proto3" json:"isoff"` //是否离线
+}
+
+func (x *DBRaceMember) Reset() {
+ *x = DBRaceMember{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_db_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBRaceMember) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBRaceMember) ProtoMessage() {}
+
+func (x *DBRaceMember) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 DBRaceMember.ProtoReflect.Descriptor instead.
+func (*DBRaceMember) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *DBRaceMember) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBRaceMember) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *DBRaceMember) GetMount() *DBMounts {
+ if x != nil {
+ return x.Mount
+ }
+ return nil
+}
+
+func (x *DBRaceMember) GetHp() int32 {
+ if x != nil {
+ return x.Hp
+ }
+ return 0
+}
+
+func (x *DBRaceMember) GetInnermost() int32 {
+ if x != nil {
+ return x.Innermost
+ }
+ return 0
+}
+
+func (x *DBRaceMember) GetIsai() bool {
+ if x != nil {
+ return x.Isai
+ }
+ return false
+}
+
+func (x *DBRaceMember) GetIsoff() bool {
+ if x != nil {
+ return x.Isoff
+ }
+ return false
+}
+
+type DBRaceInvite struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ 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"` //过期时间
+}
+
+func (x *DBRaceInvite) Reset() {
+ *x = DBRaceInvite{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_db_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBRaceInvite) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBRaceInvite) ProtoMessage() {}
+
+func (x *DBRaceInvite) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 DBRaceInvite.ProtoReflect.Descriptor instead.
+func (*DBRaceInvite) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *DBRaceInvite) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBRaceInvite) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *DBRaceInvite) GetExpired() int64 {
+ if x != nil {
+ return x.Expired
+ }
+ return 0
+}
+
+type DBRaceTeam struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 队伍id
+ State RaceTeamState `protobuf:"varint,2,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态
+ Captainid string `protobuf:"bytes,3,opt,name=captainid,proto3" json:"captainid"` //队长id
+ Invite []*DBRaceInvite `protobuf:"bytes,4,rep,name=invite,proto3" json:"invite"` //邀请列表
+ Member []*DBRaceMember `protobuf:"bytes,5,rep,name=member,proto3" json:"member"` //成员列表
+}
+
+func (x *DBRaceTeam) Reset() {
+ *x = DBRaceTeam{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_db_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBRaceTeam) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBRaceTeam) ProtoMessage() {}
+
+func (x *DBRaceTeam) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 DBRaceTeam.ProtoReflect.Descriptor instead.
+func (*DBRaceTeam) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DBRaceTeam) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *DBRaceTeam) GetState() RaceTeamState {
+ if x != nil {
+ return x.State
+ }
+ return RaceTeamState_teaming
+}
+
+func (x *DBRaceTeam) GetCaptainid() string {
+ if x != nil {
+ return x.Captainid
+ }
+ return ""
+}
+
+func (x *DBRaceTeam) GetInvite() []*DBRaceInvite {
+ if x != nil {
+ return x.Invite
+ }
+ return nil
+}
+
+func (x *DBRaceTeam) GetMember() []*DBRaceMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+//比赛数据
+type DBRace struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 比赛唯一id
+ ServicePath string `protobuf:"bytes,2,opt,name=servicePath,proto3" json:"servicePath"` //比赛所在服务
+ Rtype RaceType `protobuf:"varint,3,opt,name=rtype,proto3,enum=RaceType" json:"rtype"` //比赛类型
+ Trackid int32 `protobuf:"varint,4,opt,name=trackid,proto3" json:"trackid"` //赛道id
+ Innermost int32 `protobuf:"varint,5,opt,name=innermost,proto3" json:"innermost"` //里程数
+ Redmember []*DBRaceMember `protobuf:"bytes,6,rep,name=redmember,proto3" json:"redmember"` //红方队伍
+ Bulemember []*DBRaceMember `protobuf:"bytes,7,rep,name=bulemember,proto3" json:"bulemember"` //蓝方队伍
+}
+
+func (x *DBRace) Reset() {
+ *x = DBRace{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_db_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBRace) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBRace) ProtoMessage() {}
+
+func (x *DBRace) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_db_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 DBRace.ProtoReflect.Descriptor instead.
+func (*DBRace) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_db_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *DBRace) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *DBRace) GetServicePath() string {
+ if x != nil {
+ return x.ServicePath
+ }
+ return ""
+}
+
+func (x *DBRace) GetRtype() RaceType {
+ if x != nil {
+ return x.Rtype
+ }
+ return RaceType_ordinary
+}
+
+func (x *DBRace) GetTrackid() int32 {
+ if x != nil {
+ return x.Trackid
+ }
+ return 0
+}
+
+func (x *DBRace) GetInnermost() int32 {
+ if x != nil {
+ return x.Innermost
+ }
+ return 0
+}
+
+func (x *DBRace) GetRedmember() []*DBRaceMember {
+ if x != nil {
+ return x.Redmember
+ }
+ return nil
+}
+
+func (x *DBRace) GetBulemember() []*DBRaceMember {
+ if x != nil {
+ return x.Bulemember
+ }
+ return nil
+}
+
+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, 0x2c, 0x0a, 0x08, 0x44, 0x42,
+ 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 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,
+ 0x1f, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09,
+ 0x2e, 0x44, 0x42, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 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, 0x12,
+ 0x0a, 0x04, 0x69, 0x73, 0x61, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73,
+ 0x61, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x07, 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, 0xae, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x52,
+ 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x18, 0x02, 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, 0x03, 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, 0x04, 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, 0x05, 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, 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, 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,
+}
+
+var (
+ file_parkour_parkour_db_proto_rawDescOnce sync.Once
+ file_parkour_parkour_db_proto_rawDescData = file_parkour_parkour_db_proto_rawDesc
+)
+
+func file_parkour_parkour_db_proto_rawDescGZIP() []byte {
+ file_parkour_parkour_db_proto_rawDescOnce.Do(func() {
+ file_parkour_parkour_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_parkour_parkour_db_proto_rawDescData)
+ })
+ return file_parkour_parkour_db_proto_rawDescData
+}
+
+var file_parkour_parkour_db_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_parkour_parkour_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_parkour_parkour_db_proto_goTypes = []interface{}{
+ (RaceType)(0), // 0: RaceType
+ (RaceTeamState)(0), // 1: RaceTeamState
+ (*DBMounts)(nil), // 2: DBMounts
+ (*DBRaceMember)(nil), // 3: DBRaceMember
+ (*DBRaceInvite)(nil), // 4: DBRaceInvite
+ (*DBRaceTeam)(nil), // 5: DBRaceTeam
+ (*DBRace)(nil), // 6: DBRace
+}
+var file_parkour_parkour_db_proto_depIdxs = []int32{
+ 2, // 0: DBRaceMember.mount:type_name -> DBMounts
+ 1, // 1: DBRaceTeam.state:type_name -> RaceTeamState
+ 4, // 2: DBRaceTeam.invite:type_name -> DBRaceInvite
+ 3, // 3: DBRaceTeam.member:type_name -> DBRaceMember
+ 0, // 4: DBRace.rtype:type_name -> RaceType
+ 3, // 5: DBRace.redmember:type_name -> DBRaceMember
+ 3, // 6: DBRace.bulemember:type_name -> DBRaceMember
+ 7, // [7:7] is the sub-list for method output_type
+ 7, // [7:7] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_parkour_parkour_db_proto_init() }
+func file_parkour_parkour_db_proto_init() {
+ if File_parkour_parkour_db_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_parkour_parkour_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBMounts); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_parkour_parkour_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBRaceMember); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_parkour_parkour_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBRaceInvite); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_parkour_parkour_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBRaceTeam); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_parkour_parkour_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBRace); 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_parkour_parkour_db_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_parkour_parkour_db_proto_goTypes,
+ DependencyIndexes: file_parkour_parkour_db_proto_depIdxs,
+ EnumInfos: file_parkour_parkour_db_proto_enumTypes,
+ MessageInfos: file_parkour_parkour_db_proto_msgTypes,
+ }.Build()
+ File_parkour_parkour_db_proto = out.File
+ file_parkour_parkour_db_proto_rawDesc = nil
+ file_parkour_parkour_db_proto_goTypes = nil
+ file_parkour_parkour_db_proto_depIdxs = nil
+}
diff --git a/pb/parkour_msg.pb.go b/pb/parkour_msg.pb.go
new file mode 100644
index 000000000..71c197f77
--- /dev/null
+++ b/pb/parkour_msg.pb.go
@@ -0,0 +1,1763 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: parkour/parkour_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 ParkourInviteReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //邀请队友
+}
+
+func (x *ParkourInviteReq) Reset() {
+ *x = ParkourInviteReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourInviteReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourInviteReq) ProtoMessage() {}
+
+func (x *ParkourInviteReq) 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 ParkourInviteReq.ProtoReflect.Descriptor instead.
+func (*ParkourInviteReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ParkourInviteReq) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+//组队邀请回应
+type ParkourInviteResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"`
+ Team *DBRaceTeam `protobuf:"bytes,2,opt,name=team,proto3" json:"team"`
+}
+
+func (x *ParkourInviteResp) Reset() {
+ *x = ParkourInviteResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourInviteResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourInviteResp) ProtoMessage() {}
+
+func (x *ParkourInviteResp) 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 ParkourInviteResp.ProtoReflect.Descriptor instead.
+func (*ParkourInviteResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ParkourInviteResp) GetIssucc() bool {
+ if x != nil {
+ return x.Issucc
+ }
+ return false
+}
+
+func (x *ParkourInviteResp) GetTeam() *DBRaceTeam {
+ if x != nil {
+ return x.Team
+ }
+ return nil
+}
+
+//组队邀请通知推送
+type ParkourInviteNoticePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Team *DBRaceTeam `protobuf:"bytes,1,opt,name=team,proto3" json:"team"`
+ State int32 `protobuf:"varint,2,opt,name=state,proto3" json:"state"` //1 发起请求 2拒绝请求 3接收请求
+}
+
+func (x *ParkourInviteNoticePush) Reset() {
+ *x = ParkourInviteNoticePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourInviteNoticePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourInviteNoticePush) ProtoMessage() {}
+
+func (x *ParkourInviteNoticePush) 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 ParkourInviteNoticePush.ProtoReflect.Descriptor instead.
+func (*ParkourInviteNoticePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ParkourInviteNoticePush) GetTeam() *DBRaceTeam {
+ if x != nil {
+ return x.Team
+ }
+ return nil
+}
+
+func (x *ParkourInviteNoticePush) GetState() int32 {
+ if x != nil {
+ return x.State
+ }
+ return 0
+}
+
+//推送队伍对变化通知
+type ParkourTeamChanagePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Team *DBRaceTeam `protobuf:"bytes,1,opt,name=team,proto3" json:"team"`
+}
+
+func (x *ParkourTeamChanagePush) Reset() {
+ *x = ParkourTeamChanagePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourTeamChanagePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourTeamChanagePush) ProtoMessage() {}
+
+func (x *ParkourTeamChanagePush) 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 ParkourTeamChanagePush.ProtoReflect.Descriptor instead.
+func (*ParkourTeamChanagePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ParkourTeamChanagePush) GetTeam() *DBRaceTeam {
+ if x != nil {
+ return x.Team
+ }
+ return nil
+}
+
+//邀请处理请求
+type ParkourInviteHandleReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id
+ State int32 `protobuf:"varint,2,opt,name=state,proto3" json:"state"` //2拒绝请求 3接收请求
+}
+
+func (x *ParkourInviteHandleReq) Reset() {
+ *x = ParkourInviteHandleReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourInviteHandleReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourInviteHandleReq) ProtoMessage() {}
+
+func (x *ParkourInviteHandleReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 ParkourInviteHandleReq.ProtoReflect.Descriptor instead.
+func (*ParkourInviteHandleReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ParkourInviteHandleReq) GetCaptainid() string {
+ if x != nil {
+ return x.Captainid
+ }
+ return ""
+}
+
+func (x *ParkourInviteHandleReq) GetState() int32 {
+ if x != nil {
+ return x.State
+ }
+ return 0
+}
+
+type ParkourInviteHandleResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"`
+}
+
+func (x *ParkourInviteHandleResp) Reset() {
+ *x = ParkourInviteHandleResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourInviteHandleResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourInviteHandleResp) ProtoMessage() {}
+
+func (x *ParkourInviteHandleResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 ParkourInviteHandleResp.ProtoReflect.Descriptor instead.
+func (*ParkourInviteHandleResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ParkourInviteHandleResp) GetIsSucc() bool {
+ if x != nil {
+ return x.IsSucc
+ }
+ return false
+}
+
+//退出 请求
+type ParkourQuitTeamReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id
+}
+
+func (x *ParkourQuitTeamReq) Reset() {
+ *x = ParkourQuitTeamReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourQuitTeamReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourQuitTeamReq) ProtoMessage() {}
+
+func (x *ParkourQuitTeamReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 ParkourQuitTeamReq.ProtoReflect.Descriptor instead.
+func (*ParkourQuitTeamReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ParkourQuitTeamReq) GetCaptainid() string {
+ if x != nil {
+ return x.Captainid
+ }
+ return ""
+}
+
+//退出 回应
+type ParkourQuitTeamResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourQuitTeamResp) Reset() {
+ *x = ParkourQuitTeamResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourQuitTeamResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourQuitTeamResp) ProtoMessage() {}
+
+func (x *ParkourQuitTeamResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_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 ParkourQuitTeamResp.ProtoReflect.Descriptor instead.
+func (*ParkourQuitTeamResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{7}
+}
+
+//队伍成员加入推送
+type ParkourTeamJoinNoticePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Member *DBRaceMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member"`
+}
+
+func (x *ParkourTeamJoinNoticePush) Reset() {
+ *x = ParkourTeamJoinNoticePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourTeamJoinNoticePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourTeamJoinNoticePush) ProtoMessage() {}
+
+func (x *ParkourTeamJoinNoticePush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourTeamJoinNoticePush.ProtoReflect.Descriptor instead.
+func (*ParkourTeamJoinNoticePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ParkourTeamJoinNoticePush) GetMember() *DBRaceMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+//队伍成员退出推送
+type ParkourTeamQuitNoticePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Member *DBRaceMember `protobuf:"bytes,1,opt,name=member,proto3" json:"member"`
+}
+
+func (x *ParkourTeamQuitNoticePush) Reset() {
+ *x = ParkourTeamQuitNoticePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourTeamQuitNoticePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourTeamQuitNoticePush) ProtoMessage() {}
+
+func (x *ParkourTeamQuitNoticePush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourTeamQuitNoticePush.ProtoReflect.Descriptor instead.
+func (*ParkourTeamQuitNoticePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ParkourTeamQuitNoticePush) GetMember() *DBRaceMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+//队伍解散通知推送
+type ParkourTeamDisbandNoticePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourTeamDisbandNoticePush) Reset() {
+ *x = ParkourTeamDisbandNoticePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourTeamDisbandNoticePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourTeamDisbandNoticePush) ProtoMessage() {}
+
+func (x *ParkourTeamDisbandNoticePush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourTeamDisbandNoticePush.ProtoReflect.Descriptor instead.
+func (*ParkourTeamDisbandNoticePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{10}
+}
+
+//匹配请求
+type ParkourRaceMatchReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourRaceMatchReq) Reset() {
+ *x = ParkourRaceMatchReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceMatchReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceMatchReq) ProtoMessage() {}
+
+func (x *ParkourRaceMatchReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourRaceMatchReq.ProtoReflect.Descriptor instead.
+func (*ParkourRaceMatchReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{11}
+}
+
+//匹配请求
+type ParkourRaceMatchResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourRaceMatchResp) Reset() {
+ *x = ParkourRaceMatchResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceMatchResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceMatchResp) ProtoMessage() {}
+
+func (x *ParkourRaceMatchResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourRaceMatchResp.ProtoReflect.Descriptor instead.
+func (*ParkourRaceMatchResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{12}
+}
+
+//匹配成功
+type ParkourRaceMatchSuccPush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Race *DBRace `protobuf:"bytes,1,opt,name=race,proto3" json:"race"`
+}
+
+func (x *ParkourRaceMatchSuccPush) Reset() {
+ *x = ParkourRaceMatchSuccPush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceMatchSuccPush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceMatchSuccPush) ProtoMessage() {}
+
+func (x *ParkourRaceMatchSuccPush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourRaceMatchSuccPush.ProtoReflect.Descriptor instead.
+func (*ParkourRaceMatchSuccPush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *ParkourRaceMatchSuccPush) GetRace() *DBRace {
+ if x != nil {
+ return x.Race
+ }
+ return nil
+}
+
+//准备完毕
+type ParkourReadyReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourReadyReq) Reset() {
+ *x = ParkourReadyReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourReadyReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourReadyReq) ProtoMessage() {}
+
+func (x *ParkourReadyReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourReadyReq.ProtoReflect.Descriptor instead.
+func (*ParkourReadyReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{14}
+}
+
+//准备完毕
+type ParkourReadyResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourReadyResp) Reset() {
+ *x = ParkourReadyResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourReadyResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourReadyResp) ProtoMessage() {}
+
+func (x *ParkourReadyResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourReadyResp.ProtoReflect.Descriptor instead.
+func (*ParkourReadyResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{15}
+}
+
+//竞速开始推送
+type ParkourRaceStartPush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Countdown int32 `protobuf:"varint,1,opt,name=countdown,proto3" json:"countdown"` //倒计时
+}
+
+func (x *ParkourRaceStartPush) Reset() {
+ *x = ParkourRaceStartPush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceStartPush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceStartPush) ProtoMessage() {}
+
+func (x *ParkourRaceStartPush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourRaceStartPush.ProtoReflect.Descriptor instead.
+func (*ParkourRaceStartPush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *ParkourRaceStartPush) GetCountdown() int32 {
+ if x != nil {
+ return x.Countdown
+ }
+ return 0
+}
+
+//射门请求
+type ParkourShotReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourShotReq) Reset() {
+ *x = ParkourShotReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourShotReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourShotReq) ProtoMessage() {}
+
+func (x *ParkourShotReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourShotReq.ProtoReflect.Descriptor instead.
+func (*ParkourShotReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{17}
+}
+
+//射门请求
+type ParkourShotResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourShotResp) Reset() {
+ *x = ParkourShotResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourShotResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourShotResp) ProtoMessage() {}
+
+func (x *ParkourShotResp) 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 ParkourShotResp.ProtoReflect.Descriptor instead.
+func (*ParkourShotResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{18}
+}
+
+//躲避障碍请求
+type ParkourAvoidReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Distance int32 `protobuf:"varint,1,opt,name=distance,proto3" json:"distance"`
+}
+
+func (x *ParkourAvoidReq) Reset() {
+ *x = ParkourAvoidReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourAvoidReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourAvoidReq) ProtoMessage() {}
+
+func (x *ParkourAvoidReq) 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 ParkourAvoidReq.ProtoReflect.Descriptor instead.
+func (*ParkourAvoidReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *ParkourAvoidReq) GetDistance() int32 {
+ if x != nil {
+ return x.Distance
+ }
+ return 0
+}
+
+//躲避障碍请求 回应
+type ParkourAvoidResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ParkourAvoidResp) Reset() {
+ *x = ParkourAvoidResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourAvoidResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourAvoidResp) ProtoMessage() {}
+
+func (x *ParkourAvoidResp) 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 ParkourAvoidResp.ProtoReflect.Descriptor instead.
+func (*ParkourAvoidResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{20}
+}
+
+//比赛数值变化推送
+type ParkourRaceChanagePush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Race *DBRace `protobuf:"bytes,1,opt,name=race,proto3" json:"race"`
+}
+
+func (x *ParkourRaceChanagePush) Reset() {
+ *x = ParkourRaceChanagePush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceChanagePush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceChanagePush) ProtoMessage() {}
+
+func (x *ParkourRaceChanagePush) 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 ParkourRaceChanagePush.ProtoReflect.Descriptor instead.
+func (*ParkourRaceChanagePush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *ParkourRaceChanagePush) GetRace() *DBRace {
+ if x != nil {
+ return x.Race
+ }
+ return nil
+}
+
+//比赛
+type ParkourRaceOverPush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Race *DBRace `protobuf:"bytes,1,opt,name=race,proto3" json:"race"`
+}
+
+func (x *ParkourRaceOverPush) Reset() {
+ *x = ParkourRaceOverPush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParkourRaceOverPush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParkourRaceOverPush) ProtoMessage() {}
+
+func (x *ParkourRaceOverPush) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[22]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParkourRaceOverPush.ProtoReflect.Descriptor instead.
+func (*ParkourRaceOverPush) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *ParkourRaceOverPush) GetRace() *DBRace {
+ if x != nil {
+ return x.Race
+ }
+ return nil
+}
+
+///匹配请求 RPC消息定义 服务器自用 客户端不用理会
+type RPCParkourJoinMatchReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Captainid string `protobuf:"bytes,1,opt,name=captainid,proto3" json:"captainid"` //队长id
+ Member []*DBRaceMember `protobuf:"bytes,2,rep,name=member,proto3" json:"member"` //成员数
+}
+
+func (x *RPCParkourJoinMatchReq) Reset() {
+ *x = RPCParkourJoinMatchReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RPCParkourJoinMatchReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RPCParkourJoinMatchReq) ProtoMessage() {}
+
+func (x *RPCParkourJoinMatchReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[23]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RPCParkourJoinMatchReq.ProtoReflect.Descriptor instead.
+func (*RPCParkourJoinMatchReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *RPCParkourJoinMatchReq) GetCaptainid() string {
+ if x != nil {
+ return x.Captainid
+ }
+ return ""
+}
+
+func (x *RPCParkourJoinMatchReq) GetMember() []*DBRaceMember {
+ if x != nil {
+ return x.Member
+ }
+ return nil
+}
+
+///RPC消息定义 服务器自用 客户端不用理会
+type RPCParkourJoinMatchResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RPCParkourJoinMatchResp) Reset() {
+ *x = RPCParkourJoinMatchResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RPCParkourJoinMatchResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RPCParkourJoinMatchResp) ProtoMessage() {}
+
+func (x *RPCParkourJoinMatchResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[24]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RPCParkourJoinMatchResp.ProtoReflect.Descriptor instead.
+func (*RPCParkourJoinMatchResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{24}
+}
+
+///匹配成功通知请求
+type RPCParkourMatchSuccReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Red []*DBRaceMember `protobuf:"bytes,2,rep,name=red,proto3" json:"red"` //临时红队
+ Bule []*DBRaceMember `protobuf:"bytes,3,rep,name=bule,proto3" json:"bule"` //临时蓝队
+}
+
+func (x *RPCParkourMatchSuccReq) Reset() {
+ *x = RPCParkourMatchSuccReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RPCParkourMatchSuccReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RPCParkourMatchSuccReq) ProtoMessage() {}
+
+func (x *RPCParkourMatchSuccReq) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[25]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RPCParkourMatchSuccReq.ProtoReflect.Descriptor instead.
+func (*RPCParkourMatchSuccReq) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *RPCParkourMatchSuccReq) GetRed() []*DBRaceMember {
+ if x != nil {
+ return x.Red
+ }
+ return nil
+}
+
+func (x *RPCParkourMatchSuccReq) GetBule() []*DBRaceMember {
+ if x != nil {
+ return x.Bule
+ }
+ return nil
+}
+
+///匹配成功通知请求
+type RPCParkourMatchSuccResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RPCParkourMatchSuccResp) Reset() {
+ *x = RPCParkourMatchSuccResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RPCParkourMatchSuccResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RPCParkourMatchSuccResp) ProtoMessage() {}
+
+func (x *RPCParkourMatchSuccResp) ProtoReflect() protoreflect.Message {
+ mi := &file_parkour_parkour_msg_proto_msgTypes[26]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RPCParkourMatchSuccResp.ProtoReflect.Descriptor instead.
+func (*RPCParkourMatchSuccResp) Descriptor() ([]byte, []int) {
+ return file_parkour_parkour_msg_proto_rawDescGZIP(), []int{26}
+}
+
+var File_parkour_parkour_msg_proto protoreflect.FileDescriptor
+
+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, 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, 0x4c, 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, 0x1f, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x54,
+ 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x50, 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, 0x1f, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 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, 0x39, 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, 0x1f, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d,
+ 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, 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, 0x11, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x61,
+ 0x64, 0x79, 0x52, 0x65, 0x71, 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,
+ 0x10, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x53, 0x68, 0x6f, 0x74, 0x52, 0x65,
+ 0x71, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x53, 0x68, 0x6f, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x22, 0x2d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x41,
+ 0x76, 0x6f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x18, 0x01, 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, 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, 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,
+}
+
+var (
+ file_parkour_parkour_msg_proto_rawDescOnce sync.Once
+ file_parkour_parkour_msg_proto_rawDescData = file_parkour_parkour_msg_proto_rawDesc
+)
+
+func file_parkour_parkour_msg_proto_rawDescGZIP() []byte {
+ file_parkour_parkour_msg_proto_rawDescOnce.Do(func() {
+ file_parkour_parkour_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_parkour_parkour_msg_proto_rawDescData)
+ })
+ return file_parkour_parkour_msg_proto_rawDescData
+}
+
+var file_parkour_parkour_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
+var file_parkour_parkour_msg_proto_goTypes = []interface{}{
+ (*ParkourInviteReq)(nil), // 0: ParkourInviteReq
+ (*ParkourInviteResp)(nil), // 1: ParkourInviteResp
+ (*ParkourInviteNoticePush)(nil), // 2: ParkourInviteNoticePush
+ (*ParkourTeamChanagePush)(nil), // 3: ParkourTeamChanagePush
+ (*ParkourInviteHandleReq)(nil), // 4: ParkourInviteHandleReq
+ (*ParkourInviteHandleResp)(nil), // 5: ParkourInviteHandleResp
+ (*ParkourQuitTeamReq)(nil), // 6: ParkourQuitTeamReq
+ (*ParkourQuitTeamResp)(nil), // 7: ParkourQuitTeamResp
+ (*ParkourTeamJoinNoticePush)(nil), // 8: ParkourTeamJoinNoticePush
+ (*ParkourTeamQuitNoticePush)(nil), // 9: ParkourTeamQuitNoticePush
+ (*ParkourTeamDisbandNoticePush)(nil), // 10: ParkourTeamDisbandNoticePush
+ (*ParkourRaceMatchReq)(nil), // 11: ParkourRaceMatchReq
+ (*ParkourRaceMatchResp)(nil), // 12: ParkourRaceMatchResp
+ (*ParkourRaceMatchSuccPush)(nil), // 13: ParkourRaceMatchSuccPush
+ (*ParkourReadyReq)(nil), // 14: ParkourReadyReq
+ (*ParkourReadyResp)(nil), // 15: ParkourReadyResp
+ (*ParkourRaceStartPush)(nil), // 16: ParkourRaceStartPush
+ (*ParkourShotReq)(nil), // 17: ParkourShotReq
+ (*ParkourShotResp)(nil), // 18: ParkourShotResp
+ (*ParkourAvoidReq)(nil), // 19: ParkourAvoidReq
+ (*ParkourAvoidResp)(nil), // 20: ParkourAvoidResp
+ (*ParkourRaceChanagePush)(nil), // 21: ParkourRaceChanagePush
+ (*ParkourRaceOverPush)(nil), // 22: ParkourRaceOverPush
+ (*RPCParkourJoinMatchReq)(nil), // 23: RPCParkourJoinMatchReq
+ (*RPCParkourJoinMatchResp)(nil), // 24: RPCParkourJoinMatchResp
+ (*RPCParkourMatchSuccReq)(nil), // 25: RPCParkourMatchSuccReq
+ (*RPCParkourMatchSuccResp)(nil), // 26: RPCParkourMatchSuccResp
+ (*DBRaceTeam)(nil), // 27: DBRaceTeam
+ (*DBRaceMember)(nil), // 28: DBRaceMember
+ (*DBRace)(nil), // 29: DBRace
+}
+var file_parkour_parkour_msg_proto_depIdxs = []int32{
+ 27, // 0: ParkourInviteResp.team:type_name -> DBRaceTeam
+ 27, // 1: ParkourInviteNoticePush.team:type_name -> DBRaceTeam
+ 27, // 2: ParkourTeamChanagePush.team:type_name -> DBRaceTeam
+ 28, // 3: ParkourTeamJoinNoticePush.member:type_name -> DBRaceMember
+ 28, // 4: ParkourTeamQuitNoticePush.member:type_name -> DBRaceMember
+ 29, // 5: ParkourRaceMatchSuccPush.race:type_name -> DBRace
+ 29, // 6: ParkourRaceChanagePush.race:type_name -> DBRace
+ 29, // 7: ParkourRaceOverPush.race:type_name -> DBRace
+ 28, // 8: RPCParkourJoinMatchReq.member:type_name -> DBRaceMember
+ 28, // 9: RPCParkourMatchSuccReq.red:type_name -> DBRaceMember
+ 28, // 10: RPCParkourMatchSuccReq.bule:type_name -> DBRaceMember
+ 11, // [11:11] is the sub-list for method output_type
+ 11, // [11:11] is the sub-list for method input_type
+ 11, // [11:11] is the sub-list for extension type_name
+ 11, // [11:11] is the sub-list for extension extendee
+ 0, // [0:11] is the sub-list for field type_name
+}
+
+func init() { file_parkour_parkour_msg_proto_init() }
+func file_parkour_parkour_msg_proto_init() {
+ if File_parkour_parkour_msg_proto != nil {
+ return
+ }
+ 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.(*ParkourInviteReq); 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[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourInviteResp); 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[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourInviteNoticePush); 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[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourTeamChanagePush); 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[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourInviteHandleReq); 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[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourInviteHandleResp); 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[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourQuitTeamReq); 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[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourQuitTeamResp); 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[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourTeamJoinNoticePush); 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[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourTeamQuitNoticePush); 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[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourTeamDisbandNoticePush); 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[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourRaceMatchReq); 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[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourRaceMatchResp); 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[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourRaceMatchSuccPush); 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[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourReadyReq); 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[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourReadyResp); 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[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourRaceStartPush); 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[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourShotReq); 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[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourShotResp); 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[19].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[20].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[21].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParkourRaceChanagePush); 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[22].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[23].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[24].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[25].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[26].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RPCParkourMatchSuccResp); 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_parkour_parkour_msg_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 27,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_parkour_parkour_msg_proto_goTypes,
+ DependencyIndexes: file_parkour_parkour_msg_proto_depIdxs,
+ MessageInfos: file_parkour_parkour_msg_proto_msgTypes,
+ }.Build()
+ File_parkour_parkour_msg_proto = out.File
+ file_parkour_parkour_msg_proto_rawDesc = nil
+ file_parkour_parkour_msg_proto_goTypes = nil
+ file_parkour_parkour_msg_proto_depIdxs = nil
+}
diff --git a/pb/userexpand.pb.go b/pb/userexpand.pb.go
index 2f94e09a3..6633de4c0 100644
--- a/pb/userexpand.pb.go
+++ b/pb/userexpand.pb.go
@@ -58,6 +58,7 @@ type DBUserExpand struct {
Mline map[int32]int32 `protobuf:"bytes,34,rep,name=mline,proto3" json:"mline" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"mline"` //主线关卡最大进度 key难度val是关卡ID
SuiteId []int32 `protobuf:"varint,35,rep,packed,name=suiteId,proto3" json:"suiteId" bson:"suiteId"` // 套装Id
Globalbuff int32 `protobuf:"varint,36,opt,name=globalbuff,proto3" json:"globalbuff" bson:"globalbuff"` // 全局buff
+ Race map[int32]int32 `protobuf:"bytes,37,rep,name=race,proto3" json:"race" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 阵营ID 1~4 value 总好感度
}
func (x *DBUserExpand) Reset() {
@@ -316,11 +317,18 @@ func (x *DBUserExpand) GetGlobalbuff() int32 {
return 0
}
+func (x *DBUserExpand) GetRace() map[int32]int32 {
+ if x != nil {
+ return x.Race
+ }
+ return nil
+}
+
var File_userexpand_proto protoreflect.FileDescriptor
var file_userexpand_proto_rawDesc = []byte{
0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x22, 0xac, 0x0a, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70,
+ 0x74, 0x6f, 0x22, 0x92, 0x0b, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70,
0x61, 0x6e, 0x64, 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, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61,
@@ -395,16 +403,22 @@ var file_userexpand_proto_rawDesc = []byte{
0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x23, 0x20, 0x03,
0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67,
0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x62, 0x75, 0x66, 0x66, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x62, 0x75, 0x66, 0x66, 0x1a, 0x3a, 0x0a, 0x0c, 0x45,
- 0x78, 0x70, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
+ 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x62, 0x75, 0x66, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x72,
+ 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x69,
+ 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37,
+ 0x0a, 0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x4d, 0x6c, 0x69, 0x6e, 0x65,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
+ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -419,20 +433,22 @@ func file_userexpand_proto_rawDescGZIP() []byte {
return file_userexpand_proto_rawDescData
}
-var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_userexpand_proto_goTypes = []interface{}{
(*DBUserExpand)(nil), // 0: DBUserExpand
nil, // 1: DBUserExpand.ExpitemEntry
nil, // 2: DBUserExpand.MlineEntry
+ nil, // 3: DBUserExpand.RaceEntry
}
var file_userexpand_proto_depIdxs = []int32{
1, // 0: DBUserExpand.expitem:type_name -> DBUserExpand.ExpitemEntry
2, // 1: DBUserExpand.mline:type_name -> DBUserExpand.MlineEntry
- 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
+ 3, // 2: DBUserExpand.race:type_name -> DBUserExpand.RaceEntry
+ 3, // [3:3] is the sub-list for method output_type
+ 3, // [3:3] is the sub-list for method input_type
+ 3, // [3:3] is the sub-list for extension type_name
+ 3, // [3:3] is the sub-list for extension extendee
+ 0, // [0:3] is the sub-list for field type_name
}
func init() { file_userexpand_proto_init() }
@@ -460,7 +476,7 @@ func file_userexpand_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_userexpand_proto_rawDesc,
NumEnums: 0,
- NumMessages: 3,
+ NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/sys/configure/structs/Game.CampLv.go b/sys/configure/structs/Game.CampLv.go
new file mode 100644
index 000000000..e26551cce
--- /dev/null
+++ b/sys/configure/structs/Game.CampLv.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 GameCampLv struct {
+ _dataMap map[int32]*GameCampLvData
+ _dataList []*GameCampLvData
+}
+
+func NewGameCampLv(_buf []map[string]interface{}) (*GameCampLv, error) {
+ _dataList := make([]*GameCampLvData, 0, len(_buf))
+ dataMap := make(map[int32]*GameCampLvData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameCampLvData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameCampLv{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameCampLv) GetDataMap() map[int32]*GameCampLvData {
+ return table._dataMap
+}
+
+func (table *GameCampLv) GetDataList() []*GameCampLvData {
+ return table._dataList
+}
+
+func (table *GameCampLv) Get(key int32) *GameCampLvData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.CampLvData.go b/sys/configure/structs/Game.CampLvData.go
new file mode 100644
index 000000000..18c0ec68c
--- /dev/null
+++ b/sys/configure/structs/Game.CampLvData.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 GameCampLvData struct {
+ Id int32
+ ReputationLv int32
+ RaceType int32
+ ReputationExp int32
+ Reward *Gameatn
+}
+
+const TypeId_GameCampLvData = -571721295
+
+func (*GameCampLvData) GetTypeId() int32 {
+ return -571721295
+}
+
+func (_v *GameCampLvData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reputation_lv"].(float64); !_ok_ { err = errors.New("reputation_lv error"); return }; _v.ReputationLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["raceType"].(float64); !_ok_ { err = errors.New("raceType error"); return }; _v.RaceType = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reputation_exp"].(float64); !_ok_ { err = errors.New("reputation_exp error"); return }; _v.ReputationExp = int32(_tempNum_) }
+ { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["Reward"].(map[string]interface{}); !_ok_ { err = errors.New("Reward error"); return }; if _v.Reward, err = DeserializeGameatn(_x_); err != nil { return } }
+ return
+}
+
+func DeserializeGameCampLvData(_buf map[string]interface{}) (*GameCampLvData, error) {
+ v := &GameCampLvData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Favorability.go b/sys/configure/structs/Game.Favorability.go
new file mode 100644
index 000000000..357d84aa5
--- /dev/null
+++ b/sys/configure/structs/Game.Favorability.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 GameFavorability struct {
+ _dataMap map[int32]*GameFavorabilityData
+ _dataList []*GameFavorabilityData
+}
+
+func NewGameFavorability(_buf []map[string]interface{}) (*GameFavorability, error) {
+ _dataList := make([]*GameFavorabilityData, 0, len(_buf))
+ dataMap := make(map[int32]*GameFavorabilityData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameFavorabilityData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameFavorability{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameFavorability) GetDataMap() map[int32]*GameFavorabilityData {
+ return table._dataMap
+}
+
+func (table *GameFavorability) GetDataList() []*GameFavorabilityData {
+ return table._dataList
+}
+
+func (table *GameFavorability) Get(key int32) *GameFavorabilityData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.FavorabilityData.go b/sys/configure/structs/Game.FavorabilityData.go
new file mode 100644
index 000000000..2b5fffaae
--- /dev/null
+++ b/sys/configure/structs/Game.FavorabilityData.go
@@ -0,0 +1,256 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameFavorabilityData struct {
+ Id int32
+ Hid string
+ Name string
+ FavorLv int32
+ FavorExp int32
+ LvName string
+ PrivilegeType int32
+ PrivilegeValue int32
+ ReturnReward []*Gameatn
+ ReturnTxt string
+ LikesFood []int32
+ DislikingFood []int32
+ LikesTxt string
+ OrdinaryTxt string
+ DislikingTxt string
+ Favorlv []int32
+ BiographyName []string
+ BiographyTxt []string
+ BiographyReward1 []*Gameatn
+ BiographyReward2 []*Gameatn
+ BiographyReward3 []*Gameatn
+ PlotUnlock []int32
+ Startid int32
+ Endid []int32
+ Rightend int32
+ Stroyprize []*Gameatn
+ SpecialStroyprize []*Gameatn
+}
+
+const TypeId_GameFavorabilityData = -1618357902
+
+func (*GameFavorabilityData) GetTypeId() int32 {
+ return -1618357902
+}
+
+func (_v *GameFavorabilityData)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.Hid, _ok_ = _buf["hid"].(string); !_ok_ { err = errors.New("hid error"); return } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["favor_lv"].(float64); !_ok_ { err = errors.New("favor_lv error"); return }; _v.FavorLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["favor_exp"].(float64); !_ok_ { err = errors.New("favor_exp error"); return }; _v.FavorExp = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["lv_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.LvName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.LvName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["privilege_type"].(float64); !_ok_ { err = errors.New("privilege_type error"); return }; _v.PrivilegeType = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["privilege_value"].(float64); !_ok_ { err = errors.New("privilege_value error"); return }; _v.PrivilegeValue = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["return_reward"].([]interface{}); !_ok_ { err = errors.New("return_reward error"); return }
+
+ _v.ReturnReward = 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.ReturnReward = append(_v.ReturnReward, _list_v_)
+ }
+ }
+
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["return_txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.ReturnTxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.ReturnTxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["likes_food"].([]interface{}); !_ok_ { err = errors.New("likes_food error"); return }
+
+ _v.LikesFood = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.LikesFood = append(_v.LikesFood, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["disliking_food"].([]interface{}); !_ok_ { err = errors.New("disliking_food error"); return }
+
+ _v.DislikingFood = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.DislikingFood = append(_v.DislikingFood, _list_v_)
+ }
+ }
+
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["likes_txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.LikesTxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.LikesTxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["ordinary_txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.OrdinaryTxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.OrdinaryTxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["disliking_txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.DislikingTxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.DislikingTxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["favorlv"].([]interface{}); !_ok_ { err = errors.New("favorlv error"); return }
+
+ _v.Favorlv = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Favorlv = append(_v.Favorlv, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["biography_name"].([]interface{}); !_ok_ { err = errors.New("biography_name error"); return }
+
+ _v.BiographyName = make([]string, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ string
+ { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
+ _v.BiographyName = append(_v.BiographyName, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["biography_txt"].([]interface{}); !_ok_ { err = errors.New("biography_txt error"); return }
+
+ _v.BiographyTxt = make([]string, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ string
+ { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
+ _v.BiographyTxt = append(_v.BiographyTxt, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["biography_reward1"].([]interface{}); !_ok_ { err = errors.New("biography_reward1 error"); return }
+
+ _v.BiographyReward1 = 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.BiographyReward1 = append(_v.BiographyReward1, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["biography_reward2"].([]interface{}); !_ok_ { err = errors.New("biography_reward2 error"); return }
+
+ _v.BiographyReward2 = 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.BiographyReward2 = append(_v.BiographyReward2, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["biography_reward3"].([]interface{}); !_ok_ { err = errors.New("biography_reward3 error"); return }
+
+ _v.BiographyReward3 = 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.BiographyReward3 = append(_v.BiographyReward3, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["plot_unlock"].([]interface{}); !_ok_ { err = errors.New("plot_unlock error"); return }
+
+ _v.PlotUnlock = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.PlotUnlock = append(_v.PlotUnlock, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["startid"].(float64); !_ok_ { err = errors.New("startid error"); return }; _v.Startid = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["endid"].([]interface{}); !_ok_ { err = errors.New("endid error"); return }
+
+ _v.Endid = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Endid = append(_v.Endid, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rightend"].(float64); !_ok_ { err = errors.New("rightend error"); return }; _v.Rightend = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["stroyprize"].([]interface{}); !_ok_ { err = errors.New("stroyprize error"); return }
+
+ _v.Stroyprize = 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.Stroyprize = append(_v.Stroyprize, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["special_stroyprize"].([]interface{}); !_ok_ { err = errors.New("special_stroyprize error"); return }
+
+ _v.SpecialStroyprize = 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.SpecialStroyprize = append(_v.SpecialStroyprize, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameFavorabilityData(_buf map[string]interface{}) (*GameFavorabilityData, error) {
+ v := &GameFavorabilityData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Friends.go b/sys/configure/structs/Game.Friends.go
new file mode 100644
index 000000000..13ad66466
--- /dev/null
+++ b/sys/configure/structs/Game.Friends.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 GameFriends struct {
+ _dataMap map[int32]*GameFriendsData
+ _dataList []*GameFriendsData
+}
+
+func NewGameFriends(_buf []map[string]interface{}) (*GameFriends, error) {
+ _dataList := make([]*GameFriendsData, 0, len(_buf))
+ dataMap := make(map[int32]*GameFriendsData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameFriendsData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameFriends{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameFriends) GetDataMap() map[int32]*GameFriendsData {
+ return table._dataMap
+}
+
+func (table *GameFriends) GetDataList() []*GameFriendsData {
+ return table._dataList
+}
+
+func (table *GameFriends) Get(key int32) *GameFriendsData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.FriendsData.go b/sys/configure/structs/Game.FriendsData.go
new file mode 100644
index 000000000..2bbee09aa
--- /dev/null
+++ b/sys/configure/structs/Game.FriendsData.go
@@ -0,0 +1,68 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameFriendsData struct {
+ Id int32
+ FriendId int32
+ Type int32
+ TypeName string
+ FriendName string
+ Png string
+ FriendsLv int32
+ FavorabilityLv int32
+ Hid int32
+ Attribute []*Gameatr
+ AttributeTxt string
+}
+
+const TypeId_GameFriendsData = -103780637
+
+func (*GameFriendsData) GetTypeId() int32 {
+ return -103780637
+}
+
+func (_v *GameFriendsData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["friend_id"].(float64); !_ok_ { err = errors.New("friend_id error"); return }; _v.FriendId = 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; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["type_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TypeName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TypeName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["friend_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.FriendName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.FriendName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; if _v.Png, _ok_ = _buf["png"].(string); !_ok_ { err = errors.New("png error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["friends_lv"].(float64); !_ok_ { err = errors.New("friends_lv error"); return }; _v.FriendsLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["favorability_lv"].(float64); !_ok_ { err = errors.New("favorability_lv error"); return }; _v.FavorabilityLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["attribute"].([]interface{}); !_ok_ { err = errors.New("attribute error"); return }
+
+ _v.Attribute = make([]*Gameatr, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ *Gameatr
+ { 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 = DeserializeGameatr(_x_); err != nil { return } }
+ _v.Attribute = append(_v.Attribute, _list_v_)
+ }
+ }
+
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["attribute_txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.AttributeTxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.AttributeTxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ return
+}
+
+func DeserializeGameFriendsData(_buf map[string]interface{}) (*GameFriendsData, error) {
+ v := &GameFriendsData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.NewRedDot.go b/sys/configure/structs/Game.NewRedDot.go
new file mode 100644
index 000000000..f6bc57b87
--- /dev/null
+++ b/sys/configure/structs/Game.NewRedDot.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 GameNewRedDot struct {
+ _dataMap map[int32]*GameNewRedDotData
+ _dataList []*GameNewRedDotData
+}
+
+func NewGameNewRedDot(_buf []map[string]interface{}) (*GameNewRedDot, error) {
+ _dataList := make([]*GameNewRedDotData, 0, len(_buf))
+ dataMap := make(map[int32]*GameNewRedDotData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameNewRedDotData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameNewRedDot{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameNewRedDot) GetDataMap() map[int32]*GameNewRedDotData {
+ return table._dataMap
+}
+
+func (table *GameNewRedDot) GetDataList() []*GameNewRedDotData {
+ return table._dataList
+}
+
+func (table *GameNewRedDot) Get(key int32) *GameNewRedDotData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.NewRedDotData.go b/sys/configure/structs/Game.NewRedDotData.go
new file mode 100644
index 000000000..6b7d9b5f9
--- /dev/null
+++ b/sys/configure/structs/Game.NewRedDotData.go
@@ -0,0 +1,49 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameNewRedDotData struct {
+ Id int32
+ MsgType int32
+ TreeType int32
+ ShowType int32
+ CountType int32
+ Group string
+ Path string
+ Header string
+}
+
+const TypeId_GameNewRedDotData = 943392646
+
+func (*GameNewRedDotData) GetTypeId() int32 {
+ return 943392646
+}
+
+func (_v *GameNewRedDotData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["msg_type"].(float64); !_ok_ { err = errors.New("msg_type error"); return }; _v.MsgType = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tree_type"].(float64); !_ok_ { err = errors.New("tree_type error"); return }; _v.TreeType = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["show_type"].(float64); !_ok_ { err = errors.New("show_type error"); return }; _v.ShowType = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["count_type"].(float64); !_ok_ { err = errors.New("count_type error"); return }; _v.CountType = int32(_tempNum_) }
+ { var _ok_ bool; if _v.Group, _ok_ = _buf["group"].(string); !_ok_ { err = errors.New("group error"); return } }
+ { var _ok_ bool; if _v.Path, _ok_ = _buf["path"].(string); !_ok_ { err = errors.New("path error"); return } }
+ { var _ok_ bool; if _v.Header, _ok_ = _buf["header"].(string); !_ok_ { err = errors.New("header error"); return } }
+ return
+}
+
+func DeserializeGameNewRedDotData(_buf map[string]interface{}) (*GameNewRedDotData, error) {
+ v := &GameNewRedDotData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.RdtaskNpcData.go b/sys/configure/structs/Game.RdtaskNpcData.go
index b09616ae6..2bb320c01 100644
--- a/sys/configure/structs/Game.RdtaskNpcData.go
+++ b/sys/configure/structs/Game.RdtaskNpcData.go
@@ -12,6 +12,7 @@ import "errors"
type GameRdtaskNpcData struct {
Id int32
+ Heroid int32
Datas []string
Event []int32
Goto int32
@@ -25,6 +26,7 @@ func (*GameRdtaskNpcData) GetTypeId() int32 {
func (_v *GameRdtaskNpcData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["heroid"].(float64); !_ok_ { err = errors.New("heroid error"); return }; _v.Heroid = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
diff --git a/sys/configure/structs/Game.SkillEffectType.go b/sys/configure/structs/Game.SkillEffectType.go
index 0f8ea5030..c226992a6 100644
--- a/sys/configure/structs/Game.SkillEffectType.go
+++ b/sys/configure/structs/Game.SkillEffectType.go
@@ -41,8 +41,9 @@ const (
GameSkillEffectType_Rebirth = 30
GameSkillEffectType_StealBuff = 31
GameSkillEffectType_BuffDmg = 32
- GameSkillEffectType_ShiftOurAllBuff = 33
- GameSkillEffectType_DrawActValueToTeam = 34
- GameSkillEffectType_SpecialTre = 35
- GameSkillEffectType_RandChildSkill = 36
+ GameSkillEffectType_BuffTre = 33
+ GameSkillEffectType_ShiftOurAllBuff = 34
+ GameSkillEffectType_DrawActValueToTeam = 35
+ GameSkillEffectType_SpecialTre = 36
+ GameSkillEffectType_RandChildSkill = 37
)
diff --git a/sys/configure/structs/Game.Talent.go b/sys/configure/structs/Game.Talent.go
new file mode 100644
index 000000000..208ef5b92
--- /dev/null
+++ b/sys/configure/structs/Game.Talent.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 GameTalent struct {
+ _dataMap map[int32]*GameTalentData
+ _dataList []*GameTalentData
+}
+
+func NewGameTalent(_buf []map[string]interface{}) (*GameTalent, error) {
+ _dataList := make([]*GameTalentData, 0, len(_buf))
+ dataMap := make(map[int32]*GameTalentData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameTalentData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameTalent{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameTalent) GetDataMap() map[int32]*GameTalentData {
+ return table._dataMap
+}
+
+func (table *GameTalent) GetDataList() []*GameTalentData {
+ return table._dataList
+}
+
+func (table *GameTalent) Get(key int32) *GameTalentData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.TalentData.go b/sys/configure/structs/Game.TalentData.go
new file mode 100644
index 000000000..9c165df6a
--- /dev/null
+++ b/sys/configure/structs/Game.TalentData.go
@@ -0,0 +1,89 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameTalentData struct {
+ Id int32
+ Type int32
+ Node int32
+ PreNode int32
+ NodeLv int32
+ PreNodeLv int32
+ NodeDirection int32
+ NodeLong int32
+ NodePng string
+ NodeType int32
+ DiscPng string
+ DiscPos int32
+ Attribute []*Gameatr
+ Range int32
+ IconCos []*Gameatn
+}
+
+const TypeId_GameTalentData = -1561355726
+
+func (*GameTalentData) GetTypeId() int32 {
+ return -1561355726
+}
+
+func (_v *GameTalentData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["node"].(float64); !_ok_ { err = errors.New("node error"); return }; _v.Node = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pre_node"].(float64); !_ok_ { err = errors.New("pre_node error"); return }; _v.PreNode = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["node_lv"].(float64); !_ok_ { err = errors.New("node_lv error"); return }; _v.NodeLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pre_node_lv"].(float64); !_ok_ { err = errors.New("pre_node_lv error"); return }; _v.PreNodeLv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["node_direction"].(float64); !_ok_ { err = errors.New("node_direction error"); return }; _v.NodeDirection = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["node_long"].(float64); !_ok_ { err = errors.New("node_long error"); return }; _v.NodeLong = int32(_tempNum_) }
+ { var _ok_ bool; if _v.NodePng, _ok_ = _buf["node_png"].(string); !_ok_ { err = errors.New("node_png error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["node_type"].(float64); !_ok_ { err = errors.New("node_type error"); return }; _v.NodeType = int32(_tempNum_) }
+ { var _ok_ bool; if _v.DiscPng, _ok_ = _buf["disc_png"].(string); !_ok_ { err = errors.New("disc_png error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["disc_pos"].(float64); !_ok_ { err = errors.New("disc_pos error"); return }; _v.DiscPos = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["attribute"].([]interface{}); !_ok_ { err = errors.New("attribute error"); return }
+
+ _v.Attribute = make([]*Gameatr, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ *Gameatr
+ { 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 = DeserializeGameatr(_x_); err != nil { return } }
+ _v.Attribute = append(_v.Attribute, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["range"].(float64); !_ok_ { err = errors.New("range error"); return }; _v.Range = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["icon_cos"].([]interface{}); !_ok_ { err = errors.New("icon_cos error"); return }
+
+ _v.IconCos = 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.IconCos = append(_v.IconCos, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameTalentData(_buf map[string]interface{}) (*GameTalentData, error) {
+ v := &GameTalentData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.WorldTaskData.go b/sys/configure/structs/Game.WorldTaskData.go
index e2934bcef..7919eba1b 100644
--- a/sys/configure/structs/Game.WorldTaskData.go
+++ b/sys/configure/structs/Game.WorldTaskData.go
@@ -22,8 +22,11 @@ type GameWorldTaskData struct {
TaskTname string
TaskName string
TaskDisplay string
+ Npctxt string
Npc int32
+ Completetasktxt string
Completetask []int32
+ DeliverNpctxt string
DeliverNpc int32
AutoAccept int32
Reword []*Gameatn
@@ -48,7 +51,9 @@ func (_v *GameWorldTaskData)Deserialize(_buf map[string]interface{}) (err error)
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_Tname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskTname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskTname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_display"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskDisplay error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskDisplay, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["npctxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Npctxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Npctxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["npc"].(float64); !_ok_ { err = errors.New("npc error"); return }; _v.Npc = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["completetasktxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Completetasktxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Completetasktxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{
var _arr_ []interface{}
var _ok_ bool
@@ -63,6 +68,7 @@ func (_v *GameWorldTaskData)Deserialize(_buf map[string]interface{}) (err error)
}
}
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["deliver_npctxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.DeliverNpctxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.DeliverNpctxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deliver_npc"].(float64); !_ok_ { err = errors.New("deliver_npc error"); return }; _v.DeliverNpc = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["auto_accept"].(float64); !_ok_ { err = errors.New("auto_accept error"); return }; _v.AutoAccept = int32(_tempNum_) }
{
diff --git a/sys/configure/structs/Game.itinerant_city.go b/sys/configure/structs/Game.itinerant_city.go
new file mode 100644
index 000000000..1199d73c1
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_city.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 Gameitinerant_city struct {
+ _dataMap map[int32]*Gameitinerant_cityData
+ _dataList []*Gameitinerant_cityData
+}
+
+func NewGameitinerant_city(_buf []map[string]interface{}) (*Gameitinerant_city, error) {
+ _dataList := make([]*Gameitinerant_cityData, 0, len(_buf))
+ dataMap := make(map[int32]*Gameitinerant_cityData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameitinerant_cityData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &Gameitinerant_city{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *Gameitinerant_city) GetDataMap() map[int32]*Gameitinerant_cityData {
+ return table._dataMap
+}
+
+func (table *Gameitinerant_city) GetDataList() []*Gameitinerant_cityData {
+ return table._dataList
+}
+
+func (table *Gameitinerant_city) Get(key int32) *Gameitinerant_cityData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.itinerant_cityData.go b/sys/configure/structs/Game.itinerant_cityData.go
new file mode 100644
index 000000000..153633687
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_cityData.go
@@ -0,0 +1,100 @@
+//------------------------------------------------------------------------------
+//
+// 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 Gameitinerant_cityData struct {
+ Id int32
+ Cityticket int32
+ Citylvlock int32
+ Citymainlock []int32
+ Cityname string
+ Cityinformation string
+ Citytxt string
+ Citytype int32
+ Citytypenum int32
+ Special []int32
+ Specialnum int32
+ Exspecial []int32
+ Exspecialnum int32
+ Orspecial int32
+}
+
+const TypeId_Gameitinerant_cityData = 675778342
+
+func (*Gameitinerant_cityData) GetTypeId() int32 {
+ return 675778342
+}
+
+func (_v *Gameitinerant_cityData)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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["cityticket"].(float64); !_ok_ { err = errors.New("cityticket error"); return }; _v.Cityticket = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["citylvlock"].(float64); !_ok_ { err = errors.New("citylvlock error"); return }; _v.Citylvlock = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["citymainlock"].([]interface{}); !_ok_ { err = errors.New("citymainlock error"); return }
+
+ _v.Citymainlock = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Citymainlock = append(_v.Citymainlock, _list_v_)
+ }
+ }
+
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["cityname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Cityname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Cityname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["cityinformation"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Cityinformation error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Cityinformation, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["citytxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Citytxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Citytxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["citytype"].(float64); !_ok_ { err = errors.New("citytype error"); return }; _v.Citytype = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["citytypenum"].(float64); !_ok_ { err = errors.New("citytypenum error"); return }; _v.Citytypenum = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["special"].([]interface{}); !_ok_ { err = errors.New("special error"); return }
+
+ _v.Special = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Special = append(_v.Special, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["specialnum"].(float64); !_ok_ { err = errors.New("specialnum error"); return }; _v.Specialnum = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["exspecial"].([]interface{}); !_ok_ { err = errors.New("exspecial error"); return }
+
+ _v.Exspecial = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Exspecial = append(_v.Exspecial, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exspecialnum"].(float64); !_ok_ { err = errors.New("exspecialnum error"); return }; _v.Exspecialnum = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Orspecial"].(float64); !_ok_ { err = errors.New("Orspecial error"); return }; _v.Orspecial = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameitinerant_cityData(_buf map[string]interface{}) (*Gameitinerant_cityData, error) {
+ v := &Gameitinerant_cityData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.itinerant_lv.go b/sys/configure/structs/Game.itinerant_lv.go
new file mode 100644
index 000000000..9c815f652
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_lv.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 Gameitinerant_lv struct {
+ _dataMap map[int32]*Gameitinerant_lvData
+ _dataList []*Gameitinerant_lvData
+}
+
+func NewGameitinerant_lv(_buf []map[string]interface{}) (*Gameitinerant_lv, error) {
+ _dataList := make([]*Gameitinerant_lvData, 0, len(_buf))
+ dataMap := make(map[int32]*Gameitinerant_lvData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameitinerant_lvData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Lv] = _v
+ }
+ }
+ return &Gameitinerant_lv{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *Gameitinerant_lv) GetDataMap() map[int32]*Gameitinerant_lvData {
+ return table._dataMap
+}
+
+func (table *Gameitinerant_lv) GetDataList() []*Gameitinerant_lvData {
+ return table._dataList
+}
+
+func (table *Gameitinerant_lv) Get(key int32) *Gameitinerant_lvData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.itinerant_lvData.go b/sys/configure/structs/Game.itinerant_lvData.go
new file mode 100644
index 000000000..e2edeac67
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_lvData.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 Gameitinerant_lvData struct {
+ Lv int32
+ Newmoneyexp int32
+ Reward []*Gameatn
+}
+
+const TypeId_Gameitinerant_lvData = 1265566725
+
+func (*Gameitinerant_lvData) GetTypeId() int32 {
+ return 1265566725
+}
+
+func (_v *Gameitinerant_lvData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["newmoneyexp"].(float64); !_ok_ { err = errors.New("newmoneyexp error"); return }; _v.Newmoneyexp = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
+
+ _v.Reward = 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.Reward = append(_v.Reward, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameitinerant_lvData(_buf map[string]interface{}) (*Gameitinerant_lvData, error) {
+ v := &Gameitinerant_lvData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.itinerant_reward.go b/sys/configure/structs/Game.itinerant_reward.go
new file mode 100644
index 000000000..e8e57a17d
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_reward.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 Gameitinerant_reward struct {
+ _dataMap map[int32]*Gameitinerant_rewardData
+ _dataList []*Gameitinerant_rewardData
+}
+
+func NewGameitinerant_reward(_buf []map[string]interface{}) (*Gameitinerant_reward, error) {
+ _dataList := make([]*Gameitinerant_rewardData, 0, len(_buf))
+ dataMap := make(map[int32]*Gameitinerant_rewardData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameitinerant_rewardData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Num] = _v
+ }
+ }
+ return &Gameitinerant_reward{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *Gameitinerant_reward) GetDataMap() map[int32]*Gameitinerant_rewardData {
+ return table._dataMap
+}
+
+func (table *Gameitinerant_reward) GetDataList() []*Gameitinerant_rewardData {
+ return table._dataList
+}
+
+func (table *Gameitinerant_reward) Get(key int32) *Gameitinerant_rewardData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.itinerant_rewardData.go b/sys/configure/structs/Game.itinerant_rewardData.go
new file mode 100644
index 000000000..91c28fdb4
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_rewardData.go
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// 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 Gameitinerant_rewardData struct {
+ Num int32
+ Reward []*Gameatn
+}
+
+const TypeId_Gameitinerant_rewardData = -998397270
+
+func (*Gameitinerant_rewardData) GetTypeId() int32 {
+ return -998397270
+}
+
+func (_v *Gameitinerant_rewardData)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 _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
+
+ _v.Reward = 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.Reward = append(_v.Reward, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameitinerant_rewardData(_buf map[string]interface{}) (*Gameitinerant_rewardData, error) {
+ v := &Gameitinerant_rewardData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.itinerant_thing.go b/sys/configure/structs/Game.itinerant_thing.go
new file mode 100644
index 000000000..34e0cb37a
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_thing.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 Gameitinerant_thing struct {
+ _dataMap map[int32]*Gameitinerant_thingData
+ _dataList []*Gameitinerant_thingData
+}
+
+func NewGameitinerant_thing(_buf []map[string]interface{}) (*Gameitinerant_thing, error) {
+ _dataList := make([]*Gameitinerant_thingData, 0, len(_buf))
+ dataMap := make(map[int32]*Gameitinerant_thingData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameitinerant_thingData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &Gameitinerant_thing{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *Gameitinerant_thing) GetDataMap() map[int32]*Gameitinerant_thingData {
+ return table._dataMap
+}
+
+func (table *Gameitinerant_thing) GetDataList() []*Gameitinerant_thingData {
+ return table._dataList
+}
+
+func (table *Gameitinerant_thing) Get(key int32) *Gameitinerant_thingData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.itinerant_thingData.go b/sys/configure/structs/Game.itinerant_thingData.go
new file mode 100644
index 000000000..d4294228a
--- /dev/null
+++ b/sys/configure/structs/Game.itinerant_thingData.go
@@ -0,0 +1,126 @@
+//------------------------------------------------------------------------------
+//
+// 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 Gameitinerant_thingData struct {
+ Id int32
+ Goodsname string
+ Goodsinfor string
+ Goodsicon string
+ Goodsprice int32
+ Changeperiod []int32
+ Changetime int32
+ PriceChangeWeight []int32
+ PriceChangeWeightOne []int32
+ PriceChangeWeightTwo []int32
+ PriceChangeWeightThree []int32
+ FluctuationRange int32
+ Pricemin int32
+ Pricemax int32
+}
+
+const TypeId_Gameitinerant_thingData = -91590553
+
+func (*Gameitinerant_thingData) GetTypeId() int32 {
+ return -91590553
+}
+
+func (_v *Gameitinerant_thingData)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; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["goodsname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Goodsname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Goodsname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["goodsinfor"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Goodsinfor error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Goodsinfor, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; if _v.Goodsicon, _ok_ = _buf["goodsicon"].(string); !_ok_ { err = errors.New("goodsicon error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["goodsprice"].(float64); !_ok_ { err = errors.New("goodsprice error"); return }; _v.Goodsprice = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["changeperiod"].([]interface{}); !_ok_ { err = errors.New("changeperiod error"); return }
+
+ _v.Changeperiod = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Changeperiod = append(_v.Changeperiod, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["changetime"].(float64); !_ok_ { err = errors.New("changetime error"); return }; _v.Changetime = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["PriceChangeWeight"].([]interface{}); !_ok_ { err = errors.New("PriceChangeWeight error"); return }
+
+ _v.PriceChangeWeight = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.PriceChangeWeight = append(_v.PriceChangeWeight, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["PriceChangeWeight_one"].([]interface{}); !_ok_ { err = errors.New("PriceChangeWeight_one error"); return }
+
+ _v.PriceChangeWeightOne = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.PriceChangeWeightOne = append(_v.PriceChangeWeightOne, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["PriceChangeWeight_two"].([]interface{}); !_ok_ { err = errors.New("PriceChangeWeight_two error"); return }
+
+ _v.PriceChangeWeightTwo = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.PriceChangeWeightTwo = append(_v.PriceChangeWeightTwo, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["PriceChangeWeight_three"].([]interface{}); !_ok_ { err = errors.New("PriceChangeWeight_three error"); return }
+
+ _v.PriceChangeWeightThree = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.PriceChangeWeightThree = append(_v.PriceChangeWeightThree, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["FluctuationRange"].(float64); !_ok_ { err = errors.New("FluctuationRange error"); return }; _v.FluctuationRange = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pricemin"].(float64); !_ok_ { err = errors.New("pricemin error"); return }; _v.Pricemin = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pricemax"].(float64); !_ok_ { err = errors.New("pricemax error"); return }; _v.Pricemax = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameitinerant_thingData(_buf map[string]interface{}) (*Gameitinerant_thingData, error) {
+ v := &Gameitinerant_thingData{}
+ 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 3c5fa9e24..5c53fea6d 100644
--- a/sys/configure/structs/Tables.go
+++ b/sys/configure/structs/Tables.go
@@ -11,1203 +11,1258 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct {
- Global *GameGlobal
- Extservers *GameExtservers
- SkillAtk *GameSkillAtk
- SkillAfteratk *GameSkillAfteratk
- SkillBuff *GameSkillBuff
- SkillPassive *GameSkillPassive
- Hero *GameHero
- HeroStargrow *GameHeroStargrow
- HeroLevelgrow *GameHeroLevelgrow
- HeroStarup *GameHeroStarup
- HeroSkill *GameHeroSkill
- HeroExp *GameHeroExp
- HeroLevelup *GameHeroLevelup
- Equip *GameEquip
- EquipAttrlibrary *GameEquipAttrlibrary
- EquipSuit *GameEquipSuit
- EquipColor *GameEquipColor
- EquipIntensify *GameEquipIntensify
- EquipSCompose *GameEquipSCompose
- EquipAttribute *GameEquipAttribute
- EquipEnchanting *GameEquipEnchanting
- Item *GameItem
- HeroSkillLevel *GameHeroSkillLevel
- HeroAwaken *GameHeroAwaken
- HeroMethod *GameHeroMethod
- HeroMethodComment *GameHeroMethodComment
- Shop *GameShop
- Shopitem *GameShopitem
- ActiveReward *GameActiveReward
- Model *GameModel
- DrawCard *GameDrawCard
- ChatChannel *GameChatChannel
- ChatSystem *GameChatSystem
- ChatServerGroup *GameChatServerGroup
- ChatChannelCom *GameChatChannelCom
- ChatExpression *GameChatExpression
- TaskRound *GameTaskRound
- TaskActiveReward *GameTaskActiveReward
- Coin *GameCoin
- Initial *GameInitial
- Monster *GameMonster
- EquipPos *GameEquipPos
- Playerlv *GamePlayerlv
- Facemod *GameFacemod
- Msgdistrib *GameMsgdistrib
- Opencond *GameOpencond
- Pagoda *GamePagoda
- PagodaTaskReward *GamePagodaTaskReward
- RdtaskCondi *GameRdtaskCondi
- RdtaskNpc *GameRdtaskNpc
- Gourmet *GameGourmet
- Drop *GameDrop
- VikingBoss *GameVikingBoss
- VikingChallenge *GameVikingChallenge
- VikingLineup *GameVikingLineup
- VikingEntrance *GameVikingEntrance
- DreamlandBoos *GameDreamlandBoos
- DreamlandChallenge *GameDreamlandChallenge
- DreamlandTrigger *GameDreamlandTrigger
- HuntingBoss *GameHuntingBoss
- HuntingChallenge *GameHuntingChallenge
- HuntingOpenTime *GameHuntingOpenTime
- HuntingLineup *GameHuntingLineup
- MonsterFormat *GameMonsterFormat
- GetResource *GameGetResource
- VikingBossSkill *GameVikingBossSkill
- LibraryFetter *GameLibraryFetter
- LibraryStory *GameLibraryStory
- LibraryHero *GameLibraryHero
- LibraryHistory *GameLibraryHistory
- LibraryComplot *GameLibraryComplot
- LibraryFavor *GameLibraryFavor
- LibraryFavorlv *GameLibraryFavorlv
- LibraryBubble *GameLibraryBubble
- LibraryPlayBack *GameLibraryPlayBack
- Robot *GameRobot
- NameLibrary *GameNameLibrary
- HeroConvertdata *GameHeroConvertdata
- LinestoryTimeLine *GameLinestoryTimeLine
- LinestoryMainTask *GameLinestoryMainTask
- Herofusion *GameHerofusion
- PlayerInfor *GamePlayerInfor
- HeroTalent *GameHeroTalent
- TalentSkill *GameTalentSkill
- ArenaBuyChallenge *GameArenaBuyChallenge
- ArenaActiveReward *GameArenaActiveReward
- ArenaRobot *GameArenaRobot
- ArenaRankReward *GameArenaRankReward
- ArenaChallengeNpc *GameArenaChallengeNpc
- ItemBox *GameItemBox
- Show *GameShow
- GuildLv *GameGuildLv
- GuildPng *GameGuildPng
- GuildActivity *GameGuildActivity
- GuildSign *GameGuildSign
- GuildTask *GameGuildTask
- GuildBossTask *GameGuildBossTask
- TrollRule *GameTrollRule
- TrollGoods *GameTrollGoods
- TrollTrain *GameTrollTrain
- TrollLv *GameTrollLv
- TrollCoefficient *GameTrollCoefficient
- Horoscope *GameHoroscope
- Sign *GameSign
- SignReset *GameSignReset
- SignExtra *GameSignExtra
- GrowTask *GameGrowTask
- GrowReward *GameGrowReward
- Recharge *GameRecharge
- PrivilegeCard *GamePrivilegeCard
- Privilege *GamePrivilege
- WorldTask *GameWorldTask
- WorldAll *GameWorldAll
- Teaching *GameTeaching
- HeroStrategy *GameHeroStrategy
- FightGlobalEvent *GameFightGlobalEvent
- PayPackage *GamePayPackage
- WorldBattle *GameWorldBattle
- RedDot *GameRedDot
- RedDotTalkid *GameRedDotTalkid
- RedDotGroup *GameRedDotGroup
- PassCheck *GamePassCheck
- Mail *GameMail
- CombatLevel *GameCombatLevel
- CombatManster *GameCombatManster
- CombatBox *GameCombatBox
- Help *GameHelp
- GM *GameGM
- Guide *GameGuide
- Vip *GameVip
- EnchantShop *GameEnchantShop
- EnchantBoss *GameEnchantBoss
- EnchantLineup *GameEnchantLineup
- MainChapter *GameMainChapter
- MainStage *GameMainStage
- MainStarreward *GameMainStarreward
- MainStartype *GameMainStartype
- Battletasktesting *GameBattletasktesting
- BattleReady *GameBattleReady
- Battleready_capskill *GameBattleready_capskill
- NewSmithy *GameNewSmithy
- SmithyProficiency *GameSmithyProficiency
- SmithyStoveV1 *GameSmithyStoveV1
- SmithyTool *GameSmithyTool
- SmithyIdTool *GameSmithyIdTool
- SmithyCustomer *GameSmithyCustomer
- SmithyModelPool *GameSmithyModelPool
- SmithyAtlas *GameSmithyAtlas
- SmithyAtlasLv *GameSmithyAtlasLv
- SmithyAtlasScore *GameSmithyAtlasScore
- SmithyMake *GameSmithyMake
- SmithyTask *GameSmithyTask
- Dispatch_Task *GameDispatch_Task
- Dispatch_Lv *GameDispatch_Lv
- Dispatch_Battle *GameDispatch_Battle
- PandamasMz *GamePandamasMz
- PandamasJs *GamePandamasJs
- PandamasJx *GamePandamasJx
- PandamasMryl *GamePandamasMryl
- PandamasBuff *GamePandamasBuff
- PandamasTj *GamePandamasTj
- PandamasTjjl *GamePandamasTjjl
- PandamasYxjx *GamePandamasYxjx
- BubbleGroup *GameBubbleGroup
- Breakingbad *GameBreakingbad
- BreakingbadTag *GameBreakingbadTag
- Potions *GamePotions
- SellCoefficient *GameSellCoefficient
- Lottery *GameLottery
- Pricegroup *GamePricegroup
+ Global *GameGlobal
+ Extservers *GameExtservers
+ SkillAtk *GameSkillAtk
+ SkillAfteratk *GameSkillAfteratk
+ SkillBuff *GameSkillBuff
+ SkillPassive *GameSkillPassive
+ Hero *GameHero
+ HeroStargrow *GameHeroStargrow
+ HeroLevelgrow *GameHeroLevelgrow
+ HeroStarup *GameHeroStarup
+ HeroSkill *GameHeroSkill
+ HeroExp *GameHeroExp
+ HeroLevelup *GameHeroLevelup
+ Equip *GameEquip
+ EquipAttrlibrary *GameEquipAttrlibrary
+ EquipSuit *GameEquipSuit
+ EquipColor *GameEquipColor
+ EquipIntensify *GameEquipIntensify
+ EquipSCompose *GameEquipSCompose
+ EquipAttribute *GameEquipAttribute
+ EquipEnchanting *GameEquipEnchanting
+ Item *GameItem
+ HeroSkillLevel *GameHeroSkillLevel
+ HeroAwaken *GameHeroAwaken
+ HeroMethod *GameHeroMethod
+ HeroMethodComment *GameHeroMethodComment
+ Shop *GameShop
+ Shopitem *GameShopitem
+ ActiveReward *GameActiveReward
+ Model *GameModel
+ DrawCard *GameDrawCard
+ ChatChannel *GameChatChannel
+ ChatSystem *GameChatSystem
+ ChatServerGroup *GameChatServerGroup
+ ChatChannelCom *GameChatChannelCom
+ ChatExpression *GameChatExpression
+ TaskRound *GameTaskRound
+ TaskActiveReward *GameTaskActiveReward
+ Coin *GameCoin
+ Initial *GameInitial
+ Monster *GameMonster
+ EquipPos *GameEquipPos
+ Playerlv *GamePlayerlv
+ Facemod *GameFacemod
+ Msgdistrib *GameMsgdistrib
+ Opencond *GameOpencond
+ Pagoda *GamePagoda
+ PagodaTaskReward *GamePagodaTaskReward
+ RdtaskCondi *GameRdtaskCondi
+ RdtaskNpc *GameRdtaskNpc
+ Gourmet *GameGourmet
+ Drop *GameDrop
+ VikingBoss *GameVikingBoss
+ VikingChallenge *GameVikingChallenge
+ VikingLineup *GameVikingLineup
+ VikingEntrance *GameVikingEntrance
+ DreamlandBoos *GameDreamlandBoos
+ DreamlandChallenge *GameDreamlandChallenge
+ DreamlandTrigger *GameDreamlandTrigger
+ HuntingBoss *GameHuntingBoss
+ HuntingChallenge *GameHuntingChallenge
+ HuntingOpenTime *GameHuntingOpenTime
+ HuntingLineup *GameHuntingLineup
+ MonsterFormat *GameMonsterFormat
+ GetResource *GameGetResource
+ VikingBossSkill *GameVikingBossSkill
+ LibraryFetter *GameLibraryFetter
+ LibraryStory *GameLibraryStory
+ LibraryHero *GameLibraryHero
+ LibraryHistory *GameLibraryHistory
+ LibraryComplot *GameLibraryComplot
+ LibraryFavor *GameLibraryFavor
+ LibraryFavorlv *GameLibraryFavorlv
+ LibraryBubble *GameLibraryBubble
+ LibraryPlayBack *GameLibraryPlayBack
+ Robot *GameRobot
+ NameLibrary *GameNameLibrary
+ HeroConvertdata *GameHeroConvertdata
+ LinestoryTimeLine *GameLinestoryTimeLine
+ LinestoryMainTask *GameLinestoryMainTask
+ Herofusion *GameHerofusion
+ PlayerInfor *GamePlayerInfor
+ HeroTalent *GameHeroTalent
+ TalentSkill *GameTalentSkill
+ ArenaBuyChallenge *GameArenaBuyChallenge
+ ArenaActiveReward *GameArenaActiveReward
+ ArenaRobot *GameArenaRobot
+ ArenaRankReward *GameArenaRankReward
+ ArenaChallengeNpc *GameArenaChallengeNpc
+ ItemBox *GameItemBox
+ Show *GameShow
+ GuildLv *GameGuildLv
+ GuildPng *GameGuildPng
+ GuildActivity *GameGuildActivity
+ GuildSign *GameGuildSign
+ GuildTask *GameGuildTask
+ GuildBossTask *GameGuildBossTask
+ TrollRule *GameTrollRule
+ TrollGoods *GameTrollGoods
+ TrollTrain *GameTrollTrain
+ TrollLv *GameTrollLv
+ TrollCoefficient *GameTrollCoefficient
+ Horoscope *GameHoroscope
+ Sign *GameSign
+ SignReset *GameSignReset
+ SignExtra *GameSignExtra
+ GrowTask *GameGrowTask
+ GrowReward *GameGrowReward
+ Recharge *GameRecharge
+ PrivilegeCard *GamePrivilegeCard
+ Privilege *GamePrivilege
+ WorldTask *GameWorldTask
+ WorldAll *GameWorldAll
+ Teaching *GameTeaching
+ HeroStrategy *GameHeroStrategy
+ FightGlobalEvent *GameFightGlobalEvent
+ PayPackage *GamePayPackage
+ WorldBattle *GameWorldBattle
+ RedDot *GameRedDot
+ RedDotTalkid *GameRedDotTalkid
+ RedDotGroup *GameRedDotGroup
+ PassCheck *GamePassCheck
+ Mail *GameMail
+ CombatLevel *GameCombatLevel
+ CombatManster *GameCombatManster
+ CombatBox *GameCombatBox
+ Help *GameHelp
+ GM *GameGM
+ Guide *GameGuide
+ Vip *GameVip
+ EnchantShop *GameEnchantShop
+ EnchantBoss *GameEnchantBoss
+ EnchantLineup *GameEnchantLineup
+ MainChapter *GameMainChapter
+ MainStage *GameMainStage
+ MainStarreward *GameMainStarreward
+ MainStartype *GameMainStartype
+ Battletasktesting *GameBattletasktesting
+ BattleReady *GameBattleReady
+ Battleready_capskill *GameBattleready_capskill
+ NewSmithy *GameNewSmithy
+ SmithyProficiency *GameSmithyProficiency
+ SmithyStoveV1 *GameSmithyStoveV1
+ SmithyTool *GameSmithyTool
+ SmithyIdTool *GameSmithyIdTool
+ SmithyCustomer *GameSmithyCustomer
+ SmithyModelPool *GameSmithyModelPool
+ SmithyAtlas *GameSmithyAtlas
+ SmithyAtlasLv *GameSmithyAtlasLv
+ SmithyAtlasScore *GameSmithyAtlasScore
+ SmithyMake *GameSmithyMake
+ SmithyTask *GameSmithyTask
+ Dispatch_Task *GameDispatch_Task
+ Dispatch_Lv *GameDispatch_Lv
+ Dispatch_Battle *GameDispatch_Battle
+ PandamasMz *GamePandamasMz
+ PandamasJs *GamePandamasJs
+ PandamasJx *GamePandamasJx
+ PandamasMryl *GamePandamasMryl
+ PandamasBuff *GamePandamasBuff
+ PandamasTj *GamePandamasTj
+ PandamasTjjl *GamePandamasTjjl
+ PandamasYxjx *GamePandamasYxjx
+ BubbleGroup *GameBubbleGroup
+ Breakingbad *GameBreakingbad
+ BreakingbadTag *GameBreakingbadTag
+ Potions *GamePotions
+ SellCoefficient *GameSellCoefficient
+ Lottery *GameLottery
+ itinerant_city *Gameitinerant_city
+ itinerant_thing *Gameitinerant_thing
+ itinerant_lv *Gameitinerant_lv
+ itinerant_reward *Gameitinerant_reward
+ NewRedDot *GameNewRedDot
+ Talent *GameTalent
+ Favorability *GameFavorability
+ Friends *GameFriends
+ CampLv *GameCampLv
}
func NewTables(loader JsonLoader) (*Tables, error) {
- var err error
- var buf []map[string]interface{}
+ var err error
+ var buf []map[string]interface{}
- tables := &Tables{}
- if buf, err = loader("game_global"); err != nil {
- return nil, err
- }
- if tables.Global, err = NewGameGlobal(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_extservers"); err != nil {
- return nil, err
- }
- if tables.Extservers, err = NewGameExtservers(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillatk"); err != nil {
- return nil, err
- }
- if tables.SkillAtk, err = NewGameSkillAtk(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillafteratk"); err != nil {
- return nil, err
- }
- if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillbuff"); err != nil {
- return nil, err
- }
- if tables.SkillBuff, err = NewGameSkillBuff(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillpassive"); err != nil {
- return nil, err
- }
- if tables.SkillPassive, err = NewGameSkillPassive(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_hero"); err != nil {
- return nil, err
- }
- if tables.Hero, err = NewGameHero(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostargrow"); err != nil {
- return nil, err
- }
- if tables.HeroStargrow, err = NewGameHeroStargrow(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelgrow"); err != nil {
- return nil, err
- }
- if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostarup"); err != nil {
- return nil, err
- }
- if tables.HeroStarup, err = NewGameHeroStarup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroskill"); err != nil {
- return nil, err
- }
- if tables.HeroSkill, err = NewGameHeroSkill(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroexp"); err != nil {
- return nil, err
- }
- if tables.HeroExp, err = NewGameHeroExp(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelup"); err != nil {
- return nil, err
- }
- if tables.HeroLevelup, err = NewGameHeroLevelup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equip"); err != nil {
- return nil, err
- }
- if tables.Equip, err = NewGameEquip(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipattrlibrary"); err != nil {
- return nil, err
- }
- if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipsuit"); err != nil {
- return nil, err
- }
- if tables.EquipSuit, err = NewGameEquipSuit(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipcolor"); err != nil {
- return nil, err
- }
- if tables.EquipColor, err = NewGameEquipColor(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipintensify"); err != nil {
- return nil, err
- }
- if tables.EquipIntensify, err = NewGameEquipIntensify(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipscompose"); err != nil {
- return nil, err
- }
- if tables.EquipSCompose, err = NewGameEquipSCompose(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipattribute"); err != nil {
- return nil, err
- }
- if tables.EquipAttribute, err = NewGameEquipAttribute(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipenchanting"); err != nil {
- return nil, err
- }
- if tables.EquipEnchanting, err = NewGameEquipEnchanting(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_item"); err != nil {
- return nil, err
- }
- if tables.Item, err = NewGameItem(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroskilllevel"); err != nil {
- return nil, err
- }
- if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroawaken"); err != nil {
- return nil, err
- }
- if tables.HeroAwaken, err = NewGameHeroAwaken(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heromethod"); err != nil {
- return nil, err
- }
- if tables.HeroMethod, err = NewGameHeroMethod(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heromethodcomment"); err != nil {
- return nil, err
- }
- if tables.HeroMethodComment, err = NewGameHeroMethodComment(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_shop"); err != nil {
- return nil, err
- }
- if tables.Shop, err = NewGameShop(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_shopitem"); err != nil {
- return nil, err
- }
- if tables.Shopitem, err = NewGameShopitem(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_activereward"); err != nil {
- return nil, err
- }
- if tables.ActiveReward, err = NewGameActiveReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_model"); err != nil {
- return nil, err
- }
- if tables.Model, err = NewGameModel(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_drawcard"); err != nil {
- return nil, err
- }
- if tables.DrawCard, err = NewGameDrawCard(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatchannel"); err != nil {
- return nil, err
- }
- if tables.ChatChannel, err = NewGameChatChannel(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatsystem"); err != nil {
- return nil, err
- }
- if tables.ChatSystem, err = NewGameChatSystem(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatservergroup"); err != nil {
- return nil, err
- }
- if tables.ChatServerGroup, err = NewGameChatServerGroup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatchannelcom"); err != nil {
- return nil, err
- }
- if tables.ChatChannelCom, err = NewGameChatChannelCom(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatexpression"); err != nil {
- return nil, err
- }
- if tables.ChatExpression, err = NewGameChatExpression(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_taskround"); err != nil {
- return nil, err
- }
- if tables.TaskRound, err = NewGameTaskRound(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_taskactivereward"); err != nil {
- return nil, err
- }
- if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_coin"); err != nil {
- return nil, err
- }
- if tables.Coin, err = NewGameCoin(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_initial"); err != nil {
- return nil, err
- }
- if tables.Initial, err = NewGameInitial(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_monster"); err != nil {
- return nil, err
- }
- if tables.Monster, err = NewGameMonster(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_equippos"); err != nil {
- return nil, err
- }
- if tables.EquipPos, err = NewGameEquipPos(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_playerlv"); err != nil {
- return nil, err
- }
- if tables.Playerlv, err = NewGamePlayerlv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_facemod"); err != nil {
- return nil, err
- }
- if tables.Facemod, err = NewGameFacemod(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_msgdistrib"); err != nil {
- return nil, err
- }
- if tables.Msgdistrib, err = NewGameMsgdistrib(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_opencond"); err != nil {
- return nil, err
- }
- if tables.Opencond, err = NewGameOpencond(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pagoda"); err != nil {
- return nil, err
- }
- if tables.Pagoda, err = NewGamePagoda(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pagodataskreward"); err != nil {
- return nil, err
- }
- if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtaskcondi"); err != nil {
- return nil, err
- }
- if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtasknpc"); err != nil {
- return nil, err
- }
- if tables.RdtaskNpc, err = NewGameRdtaskNpc(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_gourmet"); err != nil {
- return nil, err
- }
- if tables.Gourmet, err = NewGameGourmet(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_drop"); err != nil {
- return nil, err
- }
- if tables.Drop, err = NewGameDrop(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingboss"); err != nil {
- return nil, err
- }
- if tables.VikingBoss, err = NewGameVikingBoss(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingchallenge"); err != nil {
- return nil, err
- }
- if tables.VikingChallenge, err = NewGameVikingChallenge(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikinglineup"); err != nil {
- return nil, err
- }
- if tables.VikingLineup, err = NewGameVikingLineup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingentrance"); err != nil {
- return nil, err
- }
- if tables.VikingEntrance, err = NewGameVikingEntrance(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandboos"); err != nil {
- return nil, err
- }
- if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandchallenge"); err != nil {
- return nil, err
- }
- if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandtrigger"); err != nil {
- return nil, err
- }
- if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingboss"); err != nil {
- return nil, err
- }
- if tables.HuntingBoss, err = NewGameHuntingBoss(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingchallenge"); err != nil {
- return nil, err
- }
- if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingopentime"); err != nil {
- return nil, err
- }
- if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntinglineup"); err != nil {
- return nil, err
- }
- if tables.HuntingLineup, err = NewGameHuntingLineup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_monsterformat"); err != nil {
- return nil, err
- }
- if tables.MonsterFormat, err = NewGameMonsterFormat(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_getresource"); err != nil {
- return nil, err
- }
- if tables.GetResource, err = NewGameGetResource(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingbossskill"); err != nil {
- return nil, err
- }
- if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfetter"); err != nil {
- return nil, err
- }
- if tables.LibraryFetter, err = NewGameLibraryFetter(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarystory"); err != nil {
- return nil, err
- }
- if tables.LibraryStory, err = NewGameLibraryStory(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhero"); err != nil {
- return nil, err
- }
- if tables.LibraryHero, err = NewGameLibraryHero(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhistory"); err != nil {
- return nil, err
- }
- if tables.LibraryHistory, err = NewGameLibraryHistory(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarycomplot"); err != nil {
- return nil, err
- }
- if tables.LibraryComplot, err = NewGameLibraryComplot(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavor"); err != nil {
- return nil, err
- }
- if tables.LibraryFavor, err = NewGameLibraryFavor(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavorlv"); err != nil {
- return nil, err
- }
- if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarybubble"); err != nil {
- return nil, err
- }
- if tables.LibraryBubble, err = NewGameLibraryBubble(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryplayback"); err != nil {
- return nil, err
- }
- if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_robot"); err != nil {
- return nil, err
- }
- if tables.Robot, err = NewGameRobot(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_namelibrary"); err != nil {
- return nil, err
- }
- if tables.NameLibrary, err = NewGameNameLibrary(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroconvertdata"); err != nil {
- return nil, err
- }
- if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_linestorytimeline"); err != nil {
- return nil, err
- }
- if tables.LinestoryTimeLine, err = NewGameLinestoryTimeLine(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_linestorymaintask"); err != nil {
- return nil, err
- }
- if tables.LinestoryMainTask, err = NewGameLinestoryMainTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herofusion"); err != nil {
- return nil, err
- }
- if tables.Herofusion, err = NewGameHerofusion(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_playerinfor"); err != nil {
- return nil, err
- }
- if tables.PlayerInfor, err = NewGamePlayerInfor(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herotalent"); err != nil {
- return nil, err
- }
- if tables.HeroTalent, err = NewGameHeroTalent(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_talentskill"); err != nil {
- return nil, err
- }
- if tables.TalentSkill, err = NewGameTalentSkill(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenabuychallenge"); err != nil {
- return nil, err
- }
- if tables.ArenaBuyChallenge, err = NewGameArenaBuyChallenge(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenaactivereward"); err != nil {
- return nil, err
- }
- if tables.ArenaActiveReward, err = NewGameArenaActiveReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenarobot"); err != nil {
- return nil, err
- }
- if tables.ArenaRobot, err = NewGameArenaRobot(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenarankreward"); err != nil {
- return nil, err
- }
- if tables.ArenaRankReward, err = NewGameArenaRankReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenachallengenpc"); err != nil {
- return nil, err
- }
- if tables.ArenaChallengeNpc, err = NewGameArenaChallengeNpc(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_itembox"); err != nil {
- return nil, err
- }
- if tables.ItemBox, err = NewGameItemBox(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_show"); err != nil {
- return nil, err
- }
- if tables.Show, err = NewGameShow(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildlv"); err != nil {
- return nil, err
- }
- if tables.GuildLv, err = NewGameGuildLv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildpng"); err != nil {
- return nil, err
- }
- if tables.GuildPng, err = NewGameGuildPng(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildactivity"); err != nil {
- return nil, err
- }
- if tables.GuildActivity, err = NewGameGuildActivity(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildsign"); err != nil {
- return nil, err
- }
- if tables.GuildSign, err = NewGameGuildSign(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildtask"); err != nil {
- return nil, err
- }
- if tables.GuildTask, err = NewGameGuildTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildbosstask"); err != nil {
- return nil, err
- }
- if tables.GuildBossTask, err = NewGameGuildBossTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollrule"); err != nil {
- return nil, err
- }
- if tables.TrollRule, err = NewGameTrollRule(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollgoods"); err != nil {
- return nil, err
- }
- if tables.TrollGoods, err = NewGameTrollGoods(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_trolltrain"); err != nil {
- return nil, err
- }
- if tables.TrollTrain, err = NewGameTrollTrain(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_trolllv"); err != nil {
- return nil, err
- }
- if tables.TrollLv, err = NewGameTrollLv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollcoefficient"); err != nil {
- return nil, err
- }
- if tables.TrollCoefficient, err = NewGameTrollCoefficient(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_horoscope"); err != nil {
- return nil, err
- }
- if tables.Horoscope, err = NewGameHoroscope(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_sign"); err != nil {
- return nil, err
- }
- if tables.Sign, err = NewGameSign(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_signreset"); err != nil {
- return nil, err
- }
- if tables.SignReset, err = NewGameSignReset(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_signextra"); err != nil {
- return nil, err
- }
- if tables.SignExtra, err = NewGameSignExtra(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_growtask"); err != nil {
- return nil, err
- }
- if tables.GrowTask, err = NewGameGrowTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_growreward"); err != nil {
- return nil, err
- }
- if tables.GrowReward, err = NewGameGrowReward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_recharge"); err != nil {
- return nil, err
- }
- if tables.Recharge, err = NewGameRecharge(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_privilegecard"); err != nil {
- return nil, err
- }
- if tables.PrivilegeCard, err = NewGamePrivilegeCard(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_privilege"); err != nil {
- return nil, err
- }
- if tables.Privilege, err = NewGamePrivilege(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_worldtask"); err != nil {
- return nil, err
- }
- if tables.WorldTask, err = NewGameWorldTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_worldall"); err != nil {
- return nil, err
- }
- if tables.WorldAll, err = NewGameWorldAll(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_teaching"); err != nil {
- return nil, err
- }
- if tables.Teaching, err = NewGameTeaching(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostrategy"); err != nil {
- return nil, err
- }
- if tables.HeroStrategy, err = NewGameHeroStrategy(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_fightglobalevent"); err != nil {
- return nil, err
- }
- if tables.FightGlobalEvent, err = NewGameFightGlobalEvent(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_paypackage"); err != nil {
- return nil, err
- }
- if tables.PayPackage, err = NewGamePayPackage(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_worldbattle"); err != nil {
- return nil, err
- }
- if tables.WorldBattle, err = NewGameWorldBattle(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddot"); err != nil {
- return nil, err
- }
- if tables.RedDot, err = NewGameRedDot(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddottalkid"); err != nil {
- return nil, err
- }
- if tables.RedDotTalkid, err = NewGameRedDotTalkid(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddotgroup"); err != nil {
- return nil, err
- }
- if tables.RedDotGroup, err = NewGameRedDotGroup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_passcheck"); err != nil {
- return nil, err
- }
- if tables.PassCheck, err = NewGamePassCheck(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_mail"); err != nil {
- return nil, err
- }
- if tables.Mail, err = NewGameMail(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatlevel"); err != nil {
- return nil, err
- }
- if tables.CombatLevel, err = NewGameCombatLevel(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatmanster"); err != nil {
- return nil, err
- }
- if tables.CombatManster, err = NewGameCombatManster(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatbox"); err != nil {
- return nil, err
- }
- if tables.CombatBox, err = NewGameCombatBox(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_help"); err != nil {
- return nil, err
- }
- if tables.Help, err = NewGameHelp(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_gm"); err != nil {
- return nil, err
- }
- if tables.GM, err = NewGameGM(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_guide"); err != nil {
- return nil, err
- }
- if tables.Guide, err = NewGameGuide(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_vip"); err != nil {
- return nil, err
- }
- if tables.Vip, err = NewGameVip(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantshop"); err != nil {
- return nil, err
- }
- if tables.EnchantShop, err = NewGameEnchantShop(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantboss"); err != nil {
- return nil, err
- }
- if tables.EnchantBoss, err = NewGameEnchantBoss(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantlineup"); err != nil {
- return nil, err
- }
- if tables.EnchantLineup, err = NewGameEnchantLineup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainchapter"); err != nil {
- return nil, err
- }
- if tables.MainChapter, err = NewGameMainChapter(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstage"); err != nil {
- return nil, err
- }
- if tables.MainStage, err = NewGameMainStage(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstarreward"); err != nil {
- return nil, err
- }
- if tables.MainStarreward, err = NewGameMainStarreward(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstartype"); err != nil {
- return nil, err
- }
- if tables.MainStartype, err = NewGameMainStartype(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_battletasktesting"); err != nil {
- return nil, err
- }
- if tables.Battletasktesting, err = NewGameBattletasktesting(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_battleready"); err != nil {
- return nil, err
- }
- if tables.BattleReady, err = NewGameBattleReady(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_battleready_capskill"); err != nil {
- return nil, err
- }
- if tables.Battleready_capskill, err = NewGameBattleready_capskill(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_newsmithy"); err != nil {
- return nil, err
- }
- if tables.NewSmithy, err = NewGameNewSmithy(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyproficiency"); err != nil {
- return nil, err
- }
- if tables.SmithyProficiency, err = NewGameSmithyProficiency(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithystovev1"); err != nil {
- return nil, err
- }
- if tables.SmithyStoveV1, err = NewGameSmithyStoveV1(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithytool"); err != nil {
- return nil, err
- }
- if tables.SmithyTool, err = NewGameSmithyTool(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyidtool"); err != nil {
- return nil, err
- }
- if tables.SmithyIdTool, err = NewGameSmithyIdTool(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithycustomer"); err != nil {
- return nil, err
- }
- if tables.SmithyCustomer, err = NewGameSmithyCustomer(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithymodelpool"); err != nil {
- return nil, err
- }
- if tables.SmithyModelPool, err = NewGameSmithyModelPool(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlas"); err != nil {
- return nil, err
- }
- if tables.SmithyAtlas, err = NewGameSmithyAtlas(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlaslv"); err != nil {
- return nil, err
- }
- if tables.SmithyAtlasLv, err = NewGameSmithyAtlasLv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlasscore"); err != nil {
- return nil, err
- }
- if tables.SmithyAtlasScore, err = NewGameSmithyAtlasScore(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithymake"); err != nil {
- return nil, err
- }
- if tables.SmithyMake, err = NewGameSmithyMake(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithytask"); err != nil {
- return nil, err
- }
- if tables.SmithyTask, err = NewGameSmithyTask(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dispatch_task"); err != nil {
- return nil, err
- }
- if tables.Dispatch_Task, err = NewGameDispatch_Task(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dispatch_lv"); err != nil {
- return nil, err
- }
- if tables.Dispatch_Lv, err = NewGameDispatch_Lv(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_dispatch_battle"); err != nil {
- return nil, err
- }
- if tables.Dispatch_Battle, err = NewGameDispatch_Battle(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasmz"); err != nil {
- return nil, err
- }
- if tables.PandamasMz, err = NewGamePandamasMz(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasjs"); err != nil {
- return nil, err
- }
- if tables.PandamasJs, err = NewGamePandamasJs(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasjx"); err != nil {
- return nil, err
- }
- if tables.PandamasJx, err = NewGamePandamasJx(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasmryl"); err != nil {
- return nil, err
- }
- if tables.PandamasMryl, err = NewGamePandamasMryl(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasbuff"); err != nil {
- return nil, err
- }
- if tables.PandamasBuff, err = NewGamePandamasBuff(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamastj"); err != nil {
- return nil, err
- }
- if tables.PandamasTj, err = NewGamePandamasTj(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamastjjl"); err != nil {
- return nil, err
- }
- if tables.PandamasTjjl, err = NewGamePandamasTjjl(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandamasyxjx"); err != nil {
- return nil, err
- }
- if tables.PandamasYxjx, err = NewGamePandamasYxjx(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_bubblegroup"); err != nil {
- return nil, err
- }
- if tables.BubbleGroup, err = NewGameBubbleGroup(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_breakingbad"); err != nil {
- return nil, err
- }
- if tables.Breakingbad, err = NewGameBreakingbad(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_breakingbadtag"); err != nil {
- return nil, err
- }
- if tables.BreakingbadTag, err = NewGameBreakingbadTag(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_potions"); err != nil {
- return nil, err
- }
- if tables.Potions, err = NewGamePotions(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_sellcoefficient"); err != nil {
- return nil, err
- }
- if tables.SellCoefficient, err = NewGameSellCoefficient(buf); err != nil {
- return nil, err
- }
- if buf, err = loader("game_lottery"); err != nil {
- return nil, err
- }
- if tables.Lottery, err = NewGameLottery(buf); err != nil {
- return nil, err
- }
-
- if buf, err = loader("game_pricegroup"); err != nil {
- return nil, err
- }
- if tables.Pricegroup, err = NewGamePricegroup(buf); err != nil {
- return nil, err
- }
- return tables, nil
+ tables := &Tables{}
+ if buf, err = loader("game_global") ; err != nil {
+ return nil, err
+ }
+ if tables.Global, err = NewGameGlobal(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_extservers") ; err != nil {
+ return nil, err
+ }
+ if tables.Extservers, err = NewGameExtservers(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillatk") ; err != nil {
+ return nil, err
+ }
+ if tables.SkillAtk, err = NewGameSkillAtk(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillafteratk") ; err != nil {
+ return nil, err
+ }
+ if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillbuff") ; err != nil {
+ return nil, err
+ }
+ if tables.SkillBuff, err = NewGameSkillBuff(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillpassive") ; err != nil {
+ return nil, err
+ }
+ if tables.SkillPassive, err = NewGameSkillPassive(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_hero") ; err != nil {
+ return nil, err
+ }
+ if tables.Hero, err = NewGameHero(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostargrow") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroStargrow, err = NewGameHeroStargrow(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelgrow") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostarup") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroskill") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroSkill, err = NewGameHeroSkill(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroexp") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroExp, err = NewGameHeroExp(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelup") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelup, err = NewGameHeroLevelup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equip") ; err != nil {
+ return nil, err
+ }
+ if tables.Equip, err = NewGameEquip(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipattrlibrary") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipsuit") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipSuit, err = NewGameEquipSuit(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipcolor") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipColor, err = NewGameEquipColor(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipintensify") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipIntensify, err = NewGameEquipIntensify(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipscompose") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipSCompose, err = NewGameEquipSCompose(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipattribute") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipAttribute, err = NewGameEquipAttribute(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipenchanting") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipEnchanting, err = NewGameEquipEnchanting(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_item") ; err != nil {
+ return nil, err
+ }
+ if tables.Item, err = NewGameItem(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroskilllevel") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroawaken") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroAwaken, err = NewGameHeroAwaken(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heromethod") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroMethod, err = NewGameHeroMethod(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heromethodcomment") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroMethodComment, err = NewGameHeroMethodComment(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shop") ; err != nil {
+ return nil, err
+ }
+ if tables.Shop, err = NewGameShop(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shopitem") ; err != nil {
+ return nil, err
+ }
+ if tables.Shopitem, err = NewGameShopitem(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_activereward") ; err != nil {
+ return nil, err
+ }
+ if tables.ActiveReward, err = NewGameActiveReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_model") ; err != nil {
+ return nil, err
+ }
+ if tables.Model, err = NewGameModel(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_drawcard") ; err != nil {
+ return nil, err
+ }
+ if tables.DrawCard, err = NewGameDrawCard(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatchannel") ; err != nil {
+ return nil, err
+ }
+ if tables.ChatChannel, err = NewGameChatChannel(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatsystem") ; err != nil {
+ return nil, err
+ }
+ if tables.ChatSystem, err = NewGameChatSystem(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatservergroup") ; err != nil {
+ return nil, err
+ }
+ if tables.ChatServerGroup, err = NewGameChatServerGroup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatchannelcom") ; err != nil {
+ return nil, err
+ }
+ if tables.ChatChannelCom, err = NewGameChatChannelCom(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatexpression") ; err != nil {
+ return nil, err
+ }
+ if tables.ChatExpression, err = NewGameChatExpression(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_taskround") ; err != nil {
+ return nil, err
+ }
+ if tables.TaskRound, err = NewGameTaskRound(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_taskactivereward") ; err != nil {
+ return nil, err
+ }
+ if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_coin") ; err != nil {
+ return nil, err
+ }
+ if tables.Coin, err = NewGameCoin(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_initial") ; err != nil {
+ return nil, err
+ }
+ if tables.Initial, err = NewGameInitial(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_monster") ; err != nil {
+ return nil, err
+ }
+ if tables.Monster, err = NewGameMonster(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equippos") ; err != nil {
+ return nil, err
+ }
+ if tables.EquipPos, err = NewGameEquipPos(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_playerlv") ; err != nil {
+ return nil, err
+ }
+ if tables.Playerlv, err = NewGamePlayerlv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_facemod") ; err != nil {
+ return nil, err
+ }
+ if tables.Facemod, err = NewGameFacemod(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_msgdistrib") ; err != nil {
+ return nil, err
+ }
+ if tables.Msgdistrib, err = NewGameMsgdistrib(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_opencond") ; err != nil {
+ return nil, err
+ }
+ if tables.Opencond, err = NewGameOpencond(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pagoda") ; err != nil {
+ return nil, err
+ }
+ if tables.Pagoda, err = NewGamePagoda(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pagodataskreward") ; err != nil {
+ return nil, err
+ }
+ if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskcondi") ; err != nil {
+ return nil, err
+ }
+ if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtasknpc") ; err != nil {
+ return nil, err
+ }
+ if tables.RdtaskNpc, err = NewGameRdtaskNpc(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gourmet") ; err != nil {
+ return nil, err
+ }
+ if tables.Gourmet, err = NewGameGourmet(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_drop") ; err != nil {
+ return nil, err
+ }
+ if tables.Drop, err = NewGameDrop(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingboss") ; err != nil {
+ return nil, err
+ }
+ if tables.VikingBoss, err = NewGameVikingBoss(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingchallenge") ; err != nil {
+ return nil, err
+ }
+ if tables.VikingChallenge, err = NewGameVikingChallenge(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikinglineup") ; err != nil {
+ return nil, err
+ }
+ if tables.VikingLineup, err = NewGameVikingLineup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingentrance") ; err != nil {
+ return nil, err
+ }
+ if tables.VikingEntrance, err = NewGameVikingEntrance(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandboos") ; err != nil {
+ return nil, err
+ }
+ if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandchallenge") ; err != nil {
+ return nil, err
+ }
+ if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandtrigger") ; err != nil {
+ return nil, err
+ }
+ if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingboss") ; err != nil {
+ return nil, err
+ }
+ if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingchallenge") ; err != nil {
+ return nil, err
+ }
+ if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingopentime") ; err != nil {
+ return nil, err
+ }
+ if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntinglineup") ; err != nil {
+ return nil, err
+ }
+ if tables.HuntingLineup, err = NewGameHuntingLineup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_monsterformat") ; err != nil {
+ return nil, err
+ }
+ if tables.MonsterFormat, err = NewGameMonsterFormat(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_getresource") ; err != nil {
+ return nil, err
+ }
+ if tables.GetResource, err = NewGameGetResource(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingbossskill") ; err != nil {
+ return nil, err
+ }
+ if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfetter") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryFetter, err = NewGameLibraryFetter(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarystory") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryStory, err = NewGameLibraryStory(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhero") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryHero, err = NewGameLibraryHero(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhistory") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryHistory, err = NewGameLibraryHistory(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarycomplot") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryComplot, err = NewGameLibraryComplot(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavor") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavor, err = NewGameLibraryFavor(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavorlv") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarybubble") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryBubble, err = NewGameLibraryBubble(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryplayback") ; err != nil {
+ return nil, err
+ }
+ if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_robot") ; err != nil {
+ return nil, err
+ }
+ if tables.Robot, err = NewGameRobot(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_namelibrary") ; err != nil {
+ return nil, err
+ }
+ if tables.NameLibrary, err = NewGameNameLibrary(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroconvertdata") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_linestorytimeline") ; err != nil {
+ return nil, err
+ }
+ if tables.LinestoryTimeLine, err = NewGameLinestoryTimeLine(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_linestorymaintask") ; err != nil {
+ return nil, err
+ }
+ if tables.LinestoryMainTask, err = NewGameLinestoryMainTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herofusion") ; err != nil {
+ return nil, err
+ }
+ if tables.Herofusion, err = NewGameHerofusion(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_playerinfor") ; err != nil {
+ return nil, err
+ }
+ if tables.PlayerInfor, err = NewGamePlayerInfor(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herotalent") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroTalent, err = NewGameHeroTalent(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_talentskill") ; err != nil {
+ return nil, err
+ }
+ if tables.TalentSkill, err = NewGameTalentSkill(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenabuychallenge") ; err != nil {
+ return nil, err
+ }
+ if tables.ArenaBuyChallenge, err = NewGameArenaBuyChallenge(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenaactivereward") ; err != nil {
+ return nil, err
+ }
+ if tables.ArenaActiveReward, err = NewGameArenaActiveReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenarobot") ; err != nil {
+ return nil, err
+ }
+ if tables.ArenaRobot, err = NewGameArenaRobot(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenarankreward") ; err != nil {
+ return nil, err
+ }
+ if tables.ArenaRankReward, err = NewGameArenaRankReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenachallengenpc") ; err != nil {
+ return nil, err
+ }
+ if tables.ArenaChallengeNpc, err = NewGameArenaChallengeNpc(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itembox") ; err != nil {
+ return nil, err
+ }
+ if tables.ItemBox, err = NewGameItemBox(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_show") ; err != nil {
+ return nil, err
+ }
+ if tables.Show, err = NewGameShow(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildlv") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildLv, err = NewGameGuildLv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildpng") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildPng, err = NewGameGuildPng(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildactivity") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildActivity, err = NewGameGuildActivity(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildsign") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildSign, err = NewGameGuildSign(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildtask") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildTask, err = NewGameGuildTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildbosstask") ; err != nil {
+ return nil, err
+ }
+ if tables.GuildBossTask, err = NewGameGuildBossTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollrule") ; err != nil {
+ return nil, err
+ }
+ if tables.TrollRule, err = NewGameTrollRule(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollgoods") ; err != nil {
+ return nil, err
+ }
+ if tables.TrollGoods, err = NewGameTrollGoods(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trolltrain") ; err != nil {
+ return nil, err
+ }
+ if tables.TrollTrain, err = NewGameTrollTrain(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trolllv") ; err != nil {
+ return nil, err
+ }
+ if tables.TrollLv, err = NewGameTrollLv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollcoefficient") ; err != nil {
+ return nil, err
+ }
+ if tables.TrollCoefficient, err = NewGameTrollCoefficient(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_horoscope") ; err != nil {
+ return nil, err
+ }
+ if tables.Horoscope, err = NewGameHoroscope(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_sign") ; err != nil {
+ return nil, err
+ }
+ if tables.Sign, err = NewGameSign(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_signreset") ; err != nil {
+ return nil, err
+ }
+ if tables.SignReset, err = NewGameSignReset(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_signextra") ; err != nil {
+ return nil, err
+ }
+ if tables.SignExtra, err = NewGameSignExtra(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_growtask") ; err != nil {
+ return nil, err
+ }
+ if tables.GrowTask, err = NewGameGrowTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_growreward") ; err != nil {
+ return nil, err
+ }
+ if tables.GrowReward, err = NewGameGrowReward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_recharge") ; err != nil {
+ return nil, err
+ }
+ if tables.Recharge, err = NewGameRecharge(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_privilegecard") ; err != nil {
+ return nil, err
+ }
+ if tables.PrivilegeCard, err = NewGamePrivilegeCard(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_privilege") ; err != nil {
+ return nil, err
+ }
+ if tables.Privilege, err = NewGamePrivilege(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_worldtask") ; err != nil {
+ return nil, err
+ }
+ if tables.WorldTask, err = NewGameWorldTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_worldall") ; err != nil {
+ return nil, err
+ }
+ if tables.WorldAll, err = NewGameWorldAll(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_teaching") ; err != nil {
+ return nil, err
+ }
+ if tables.Teaching, err = NewGameTeaching(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostrategy") ; err != nil {
+ return nil, err
+ }
+ if tables.HeroStrategy, err = NewGameHeroStrategy(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_fightglobalevent") ; err != nil {
+ return nil, err
+ }
+ if tables.FightGlobalEvent, err = NewGameFightGlobalEvent(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_paypackage") ; err != nil {
+ return nil, err
+ }
+ if tables.PayPackage, err = NewGamePayPackage(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_worldbattle") ; err != nil {
+ return nil, err
+ }
+ if tables.WorldBattle, err = NewGameWorldBattle(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddot") ; err != nil {
+ return nil, err
+ }
+ if tables.RedDot, err = NewGameRedDot(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddottalkid") ; err != nil {
+ return nil, err
+ }
+ if tables.RedDotTalkid, err = NewGameRedDotTalkid(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddotgroup") ; err != nil {
+ return nil, err
+ }
+ if tables.RedDotGroup, err = NewGameRedDotGroup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_passcheck") ; err != nil {
+ return nil, err
+ }
+ if tables.PassCheck, err = NewGamePassCheck(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mail") ; err != nil {
+ return nil, err
+ }
+ if tables.Mail, err = NewGameMail(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatlevel") ; err != nil {
+ return nil, err
+ }
+ if tables.CombatLevel, err = NewGameCombatLevel(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatmanster") ; err != nil {
+ return nil, err
+ }
+ if tables.CombatManster, err = NewGameCombatManster(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatbox") ; err != nil {
+ return nil, err
+ }
+ if tables.CombatBox, err = NewGameCombatBox(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_help") ; err != nil {
+ return nil, err
+ }
+ if tables.Help, err = NewGameHelp(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gm") ; err != nil {
+ return nil, err
+ }
+ if tables.GM, err = NewGameGM(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guide") ; err != nil {
+ return nil, err
+ }
+ if tables.Guide, err = NewGameGuide(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vip") ; err != nil {
+ return nil, err
+ }
+ if tables.Vip, err = NewGameVip(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantshop") ; err != nil {
+ return nil, err
+ }
+ if tables.EnchantShop, err = NewGameEnchantShop(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantboss") ; err != nil {
+ return nil, err
+ }
+ if tables.EnchantBoss, err = NewGameEnchantBoss(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantlineup") ; err != nil {
+ return nil, err
+ }
+ if tables.EnchantLineup, err = NewGameEnchantLineup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainchapter") ; err != nil {
+ return nil, err
+ }
+ if tables.MainChapter, err = NewGameMainChapter(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstage") ; err != nil {
+ return nil, err
+ }
+ if tables.MainStage, err = NewGameMainStage(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstarreward") ; err != nil {
+ return nil, err
+ }
+ if tables.MainStarreward, err = NewGameMainStarreward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstartype") ; err != nil {
+ return nil, err
+ }
+ if tables.MainStartype, err = NewGameMainStartype(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_battletasktesting") ; err != nil {
+ return nil, err
+ }
+ if tables.Battletasktesting, err = NewGameBattletasktesting(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_battleready") ; err != nil {
+ return nil, err
+ }
+ if tables.BattleReady, err = NewGameBattleReady(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_battleready_capskill") ; err != nil {
+ return nil, err
+ }
+ if tables.Battleready_capskill, err = NewGameBattleready_capskill(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_newsmithy") ; err != nil {
+ return nil, err
+ }
+ if tables.NewSmithy, err = NewGameNewSmithy(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyproficiency") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyProficiency, err = NewGameSmithyProficiency(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithystovev1") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyStoveV1, err = NewGameSmithyStoveV1(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithytool") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyTool, err = NewGameSmithyTool(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyidtool") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyIdTool, err = NewGameSmithyIdTool(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithycustomer") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyCustomer, err = NewGameSmithyCustomer(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithymodelpool") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyModelPool, err = NewGameSmithyModelPool(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlas") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlas, err = NewGameSmithyAtlas(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlaslv") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlasLv, err = NewGameSmithyAtlasLv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlasscore") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlasScore, err = NewGameSmithyAtlasScore(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithymake") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyMake, err = NewGameSmithyMake(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithytask") ; err != nil {
+ return nil, err
+ }
+ if tables.SmithyTask, err = NewGameSmithyTask(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dispatch_task") ; err != nil {
+ return nil, err
+ }
+ if tables.Dispatch_Task, err = NewGameDispatch_Task(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dispatch_lv") ; err != nil {
+ return nil, err
+ }
+ if tables.Dispatch_Lv, err = NewGameDispatch_Lv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dispatch_battle") ; err != nil {
+ return nil, err
+ }
+ if tables.Dispatch_Battle, err = NewGameDispatch_Battle(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasmz") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasMz, err = NewGamePandamasMz(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasjs") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasJs, err = NewGamePandamasJs(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasjx") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasJx, err = NewGamePandamasJx(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasmryl") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasMryl, err = NewGamePandamasMryl(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasbuff") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasBuff, err = NewGamePandamasBuff(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamastj") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasTj, err = NewGamePandamasTj(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamastjjl") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasTjjl, err = NewGamePandamasTjjl(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandamasyxjx") ; err != nil {
+ return nil, err
+ }
+ if tables.PandamasYxjx, err = NewGamePandamasYxjx(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_bubblegroup") ; err != nil {
+ return nil, err
+ }
+ if tables.BubbleGroup, err = NewGameBubbleGroup(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_breakingbad") ; err != nil {
+ return nil, err
+ }
+ if tables.Breakingbad, err = NewGameBreakingbad(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_breakingbadtag") ; err != nil {
+ return nil, err
+ }
+ if tables.BreakingbadTag, err = NewGameBreakingbadTag(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_potions") ; err != nil {
+ return nil, err
+ }
+ if tables.Potions, err = NewGamePotions(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_sellcoefficient") ; err != nil {
+ return nil, err
+ }
+ if tables.SellCoefficient, err = NewGameSellCoefficient(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_lottery") ; err != nil {
+ return nil, err
+ }
+ if tables.Lottery, err = NewGameLottery(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itinerant_city") ; err != nil {
+ return nil, err
+ }
+ if tables.itinerant_city, err = NewGameitinerant_city(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itinerant_thing") ; err != nil {
+ return nil, err
+ }
+ if tables.itinerant_thing, err = NewGameitinerant_thing(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itinerant_lv") ; err != nil {
+ return nil, err
+ }
+ if tables.itinerant_lv, err = NewGameitinerant_lv(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itinerant_reward") ; err != nil {
+ return nil, err
+ }
+ if tables.itinerant_reward, err = NewGameitinerant_reward(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_newreddot") ; err != nil {
+ return nil, err
+ }
+ if tables.NewRedDot, err = NewGameNewRedDot(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_talent") ; err != nil {
+ return nil, err
+ }
+ if tables.Talent, err = NewGameTalent(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_favorability") ; err != nil {
+ return nil, err
+ }
+ if tables.Favorability, err = NewGameFavorability(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_friends") ; err != nil {
+ return nil, err
+ }
+ if tables.Friends, err = NewGameFriends(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_camplv") ; err != nil {
+ return nil, err
+ }
+ if tables.CampLv, err = NewGameCampLv(buf) ; err != nil {
+ return nil, err
+ }
+ return tables, nil
}