This commit is contained in:
meixiongfeng 2023-04-19 11:47:46 +08:00
commit 14a658f62e
29 changed files with 1246 additions and 790 deletions

View File

@ -15,6 +15,7 @@
"text": "有人前来闹事,快去解决掉他" "text": "有人前来闹事,快去解决掉他"
}, },
"BattleReadyID": 100, "BattleReadyID": 100,
"monsterformat_id": 101011,
"EventList": [], "EventList": [],
"award": [ "award": [
{ {
@ -57,6 +58,7 @@
"text": "有人前来闹事,快去解决掉他" "text": "有人前来闹事,快去解决掉他"
}, },
"BattleReadyID": 100, "BattleReadyID": 100,
"monsterformat_id": 101052,
"EventList": [], "EventList": [],
"award": [ "award": [
{ {

View File

@ -8,7 +8,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 69, "tasktime": 140,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -56,7 +56,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 140, "tasktime": 73,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -104,7 +104,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 62, "tasktime": 137,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -152,7 +152,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 91, "tasktime": 132,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -200,7 +200,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 85, "tasktime": 126,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -248,7 +248,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 72, "tasktime": 82,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -296,7 +296,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 129, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -344,7 +344,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 176, "tasktime": 79,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -392,7 +392,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 100, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -440,7 +440,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 103, "tasktime": 158,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -488,7 +488,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 114, "tasktime": 168,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -536,7 +536,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 124, "tasktime": 170,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -584,7 +584,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 112, "tasktime": 83,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -632,7 +632,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 87, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -680,7 +680,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 122, "tasktime": 141,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -728,7 +728,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 75, "tasktime": 92,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -776,7 +776,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 74, "tasktime": 128,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -824,7 +824,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 92, "tasktime": 136,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -872,7 +872,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 73, "tasktime": 132,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -920,7 +920,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 85, "tasktime": 122,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -968,7 +968,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 95, "tasktime": 82,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1016,7 +1016,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 169, "tasktime": 84,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1064,7 +1064,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 118, "tasktime": 122,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1112,7 +1112,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 151, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1160,7 +1160,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 178, "tasktime": 159,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1208,7 +1208,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 105, "tasktime": 88,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1256,7 +1256,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 84, "tasktime": 94,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1304,7 +1304,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 118, "tasktime": 132,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1352,7 +1352,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 178, "tasktime": 169,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1400,7 +1400,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 108, "tasktime": 147,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1448,7 +1448,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 62, "tasktime": 61,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1496,7 +1496,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 125, "tasktime": 130,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1544,7 +1544,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 112, "tasktime": 160,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1592,7 +1592,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 152, "tasktime": 109,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1640,7 +1640,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 100, "tasktime": 60,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1688,7 +1688,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 154, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1736,7 +1736,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 165, "tasktime": 103,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1784,7 +1784,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 98, "tasktime": 122,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1832,7 +1832,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 135, "tasktime": 76,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1880,7 +1880,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 150, "tasktime": 140,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1928,7 +1928,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 63, "tasktime": 89,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1976,7 +1976,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 94, "tasktime": 81,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2024,7 +2024,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 63, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2072,7 +2072,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 112, "tasktime": 180,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2120,7 +2120,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 176, "tasktime": 95,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2168,7 +2168,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 76, "tasktime": 146,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2216,7 +2216,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 84, "tasktime": 153,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2264,7 +2264,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 175, "tasktime": 113,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2312,7 +2312,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 97, "tasktime": 70,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2360,7 +2360,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 135, "tasktime": 69,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2408,7 +2408,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 178, "tasktime": 160,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2456,7 +2456,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 95, "tasktime": 141,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2504,7 +2504,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 116, "tasktime": 143,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2552,7 +2552,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 180, "tasktime": 91,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2600,7 +2600,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 89, "tasktime": 120,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2648,7 +2648,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 65, "tasktime": 119,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2696,7 +2696,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 79, "tasktime": 129,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2744,7 +2744,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 125, "tasktime": 76,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2792,7 +2792,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 85, "tasktime": 84,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2840,7 +2840,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 179, "tasktime": 68,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2888,7 +2888,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 166, "tasktime": 152,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2936,7 +2936,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 155, "tasktime": 129,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2984,7 +2984,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 144, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3032,7 +3032,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 134, "tasktime": 73,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3080,7 +3080,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 129, "tasktime": 144,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3128,7 +3128,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 103, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3176,7 +3176,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 108, "tasktime": 88,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3224,7 +3224,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 88, "tasktime": 123,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3272,7 +3272,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 97, "tasktime": 152,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3320,7 +3320,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 158, "tasktime": 62,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3368,7 +3368,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 103, "tasktime": 132,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3416,7 +3416,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 162, "tasktime": 64,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3464,7 +3464,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 94, "tasktime": 70,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3512,7 +3512,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 70, "tasktime": 71,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"

View File

@ -89347,5 +89347,57 @@
"atkpro": 1, "atkpro": 1,
"defpro": 0.8, "defpro": 0.8,
"modelsize": 1 "modelsize": 1
},
{
"Id": 801031,
"pos": 1,
"captainId": 0,
"IsBoss": 0,
"bossHpCnt": 0,
"monster": 510023,
"lv": 10,
"hppro": 0.5,
"atkpro": 0.6,
"defpro": 0.1,
"modelsize": 1
},
{
"Id": 801031,
"pos": 2,
"captainId": 0,
"IsBoss": 0,
"bossHpCnt": 0,
"monster": 510053,
"lv": 10,
"hppro": 0.5,
"atkpro": 0.6,
"defpro": 0.1,
"modelsize": 1
},
{
"Id": 801031,
"pos": 3,
"captainId": 0,
"IsBoss": 0,
"bossHpCnt": 0,
"monster": 510043,
"lv": 10,
"hppro": 0.5,
"atkpro": 0.6,
"defpro": 0.1,
"modelsize": 1
},
{
"Id": 801031,
"pos": 5,
"captainId": 0,
"IsBoss": 0,
"bossHpCnt": 0,
"monster": 530013,
"lv": 12,
"hppro": 0.5,
"atkpro": 0.6,
"defpro": 0.1,
"modelsize": 1
} }
] ]

View File

@ -14,7 +14,7 @@
"monster_id": [ "monster_id": [
501001, 501001,
801031, 801031,
501003 801031
], ],
"reward": [ "reward": [
{ {
@ -52,7 +52,7 @@
"monster_id": [ "monster_id": [
501004, 501004,
801031, 801031,
501006 801031
], ],
"reward": [ "reward": [
{ {
@ -85,7 +85,7 @@
"monster_id": [ "monster_id": [
501007, 501007,
801031, 801031,
501009 801031
], ],
"reward": [ "reward": [
{ {
@ -118,7 +118,7 @@
"monster_id": [ "monster_id": [
501010, 501010,
801031, 801031,
501012 801031
], ],
"reward": [ "reward": [
{ {
@ -151,7 +151,7 @@
"monster_id": [ "monster_id": [
501013, 501013,
801031, 801031,
501015 801031
], ],
"reward": [ "reward": [
{ {
@ -184,7 +184,7 @@
"monster_id": [ "monster_id": [
501016, 501016,
801031, 801031,
501018 801031
], ],
"reward": [ "reward": [
{ {
@ -217,7 +217,7 @@
"monster_id": [ "monster_id": [
501019, 501019,
801031, 801031,
501021 801031
], ],
"reward": [ "reward": [
{ {
@ -250,7 +250,7 @@
"monster_id": [ "monster_id": [
501022, 501022,
801031, 801031,
501024 801031
], ],
"reward": [ "reward": [
{ {
@ -283,7 +283,7 @@
"monster_id": [ "monster_id": [
501025, 501025,
801031, 801031,
501027 801031
], ],
"reward": [ "reward": [
{ {
@ -316,7 +316,7 @@
"monster_id": [ "monster_id": [
501028, 501028,
801031, 801031,
501030 801031
], ],
"reward": [ "reward": [
{ {

View File

@ -48,7 +48,7 @@
"img": "sbkp_js_13001", "img": "sbkp_js_13001",
"intr": { "intr": {
"key": "shirenyu10002", "key": "shirenyu10002",
"text": "闪闪" "text": "作为教习,闪闪一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -82,7 +82,7 @@
"img": "sbkp_js_44002", "img": "sbkp_js_44002",
"intr": { "intr": {
"key": "shirenyu10003", "key": "shirenyu10003",
"text": "蛇先生" "text": "作为教习,蛇先生一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -116,7 +116,7 @@
"img": "sbkp_js_24005", "img": "sbkp_js_24005",
"intr": { "intr": {
"key": "shirenyu10004", "key": "shirenyu10004",
"text": "金猴" "text": "作为教习,金猴一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -161,7 +161,7 @@
"img": "sbkp_js_14005", "img": "sbkp_js_14005",
"intr": { "intr": {
"key": "shirenyu10005", "key": "shirenyu10005",
"text": "鹤大师" "text": "作为教习,鹤大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -195,7 +195,7 @@
"img": "sbkp_js_44006", "img": "sbkp_js_44006",
"intr": { "intr": {
"key": "shirenyu10006", "key": "shirenyu10006",
"text": "悍娇虎" "text": "作为教习,悍娇虎一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -229,7 +229,7 @@
"img": "sbkp_js_43001", "img": "sbkp_js_43001",
"intr": { "intr": {
"key": "shirenyu10007", "key": "shirenyu10007",
"text": "盖" "text": "作为教习,一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -263,7 +263,7 @@
"img": "sbkp_js_35002", "img": "sbkp_js_35002",
"intr": { "intr": {
"key": "shirenyu10008", "key": "shirenyu10008",
"text": "希卡普" "text": "作为教习,希卡普一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -297,7 +297,7 @@
"img": "sbkp_js_45004", "img": "sbkp_js_45004",
"intr": { "intr": {
"key": "shirenyu10009", "key": "shirenyu10009",
"text": "穿靴猫" "text": "作为教习,穿靴猫一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -342,7 +342,7 @@
"img": "sbkp_js_35001", "img": "sbkp_js_35001",
"intr": { "intr": {
"key": "shirenyu10010", "key": "shirenyu10010",
"text": "师父" "text": "作为教习,师父一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -387,7 +387,7 @@
"img": "sbkp_js_25001", "img": "sbkp_js_25001",
"intr": { "intr": {
"key": "shirenyu10011", "key": "shirenyu10011",
"text": "阿宝" "text": "作为教习,阿宝一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -432,7 +432,7 @@
"img": "sbkp_js_45001", "img": "sbkp_js_45001",
"intr": { "intr": {
"key": "shirenyu10012", "key": "shirenyu10012",
"text": "乌龟大师" "text": "作为教习,乌龟大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
"special_text": 25002, "special_text": 25002,
@ -522,7 +522,7 @@
"img": "wg_icon_kz", "img": "wg_icon_kz",
"intr": { "intr": {
"key": "shirenyu20002", "key": "shirenyu20002",
"text": "双头空竹" "text": "双头空竹,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -556,7 +556,7 @@
"img": "wg_icon_pj", "img": "wg_icon_pj",
"intr": { "intr": {
"key": "shirenyu20003", "key": "shirenyu20003",
"text": "木爬架" "text": "木爬架,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -590,7 +590,7 @@
"img": "wg_icon_bdw", "img": "wg_icon_bdw",
"intr": { "intr": {
"key": "shirenyu20004", "key": "shirenyu20004",
"text": "不倒翁" "text": "不倒翁,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -624,7 +624,7 @@
"img": "wg_icon_pc", "img": "wg_icon_pc",
"intr": { "intr": {
"key": "shirenyu20005", "key": "shirenyu20005",
"text": "棒槌" "text": "棒槌,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -658,7 +658,7 @@
"img": "wg_icon_tl", "img": "wg_icon_tl",
"intr": { "intr": {
"key": "shirenyu20006", "key": "shirenyu20006",
"text": "铜铃" "text": "铜铃,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -692,7 +692,7 @@
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20007", "key": "shirenyu20007",
"text": "尖刺吊环" "text": "尖刺吊环,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -726,7 +726,7 @@
"img": "wg_icon_tj01", "img": "wg_icon_tj01",
"intr": { "intr": {
"key": "shirenyu20008", "key": "shirenyu20008",
"text": "陀螺" "text": "陀螺,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -760,7 +760,7 @@
"img": "wg_icon_zl", "img": "wg_icon_zl",
"intr": { "intr": {
"key": "shirenyu20009", "key": "shirenyu20009",
"text": "大转轮" "text": "大转轮,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -805,7 +805,7 @@
"img": "wg_icon_mp", "img": "wg_icon_mp",
"intr": { "intr": {
"key": "shirenyu20010", "key": "shirenyu20010",
"text": "木头牌" "text": "木头牌,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -850,7 +850,7 @@
"img": "wg_icon_sjg", "img": "wg_icon_sjg",
"intr": { "intr": {
"key": "shirenyu20011", "key": "shirenyu20011",
"text": "双节棍" "text": "双节棍,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -895,7 +895,7 @@
"img": "wg_icon_yd", "img": "wg_icon_yd",
"intr": { "intr": {
"key": "shirenyu20012", "key": "shirenyu20012",
"text": "练功带" "text": "练功带,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -940,7 +940,7 @@
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20013", "key": "shirenyu20013",
"text": "七彩花棍" "text": "七彩花棍,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -985,7 +985,7 @@
"img": "wg_icon_fb", "img": "wg_icon_fb",
"intr": { "intr": {
"key": "shirenyu20014", "key": "shirenyu20014",
"text": "流星飞镖" "text": "流星飞镖,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1019,7 +1019,7 @@
"img": "wg_icon_mxl", "img": "wg_icon_mxl",
"intr": { "intr": {
"key": "shirenyu20015", "key": "shirenyu20015",
"text": "冥想锣" "text": "冥想锣,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1053,7 +1053,7 @@
"img": "wg_icon_ct", "img": "wg_icon_ct",
"intr": { "intr": {
"key": "shirenyu20016", "key": "shirenyu20016",
"text": "彩条龙" "text": "彩条龙,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1087,7 +1087,7 @@
"img": "wg_icon_kqms", "img": "wg_icon_kqms",
"intr": { "intr": {
"key": "shirenyu20017", "key": "shirenyu20017",
"text": "孔雀毛扇" "text": "孔雀毛扇,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1130,7 +1130,7 @@
"img": "wg_icon_ph", "img": "wg_icon_ph",
"intr": { "intr": {
"key": "shirenyu20018", "key": "shirenyu20018",
"text": "平衡木" "text": "平衡木,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1173,7 +1173,7 @@
"img": "wg_icon_th", "img": "wg_icon_th",
"intr": { "intr": {
"key": "shirenyu20019", "key": "shirenyu20019",
"text": "铁环" "text": "铁环,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,
@ -1216,7 +1216,7 @@
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20020", "key": "shirenyu20020",
"text": "太极球" "text": "太极球,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
"special_text": 0, "special_text": 0,

View File

@ -37,7 +37,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -81,7 +81,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -213,7 +213,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -399,7 +399,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -443,7 +443,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -487,7 +487,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -531,7 +531,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -575,7 +575,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -619,7 +619,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -663,7 +663,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -707,7 +707,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -751,7 +751,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -795,7 +795,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -839,7 +839,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000 "n": 5000
} }
], ],
@ -856,7 +856,7 @@
"icon": "", "icon": "",
"task_Tname": { "task_Tname": {
"key": "Daily_tasks4", "key": "Daily_tasks4",
"text": "1" "text": "日常任务"
}, },
"task_name": { "task_name": {
"key": "Daily_tasks4", "key": "Daily_tasks4",
@ -883,95 +883,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000
}
],
"module": []
},
{
"key": 100050,
"lock": 6,
"lockend": 20,
"ontxe": 20050,
"id_after": 0,
"group": 114,
"des": 1,
"icon": "",
"task_Tname": {
"key": "Daily_tasks5",
"text": "1"
},
"task_name": {
"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": [
{
"a": "attr",
"t": "glod",
"n": 5000
}
],
"module": []
},
{
"key": 100030,
"lock": 7,
"lockend": 5,
"ontxe": 20070,
"id_after": 0,
"group": 112,
"des": 1,
"icon": "",
"task_Tname": {
"key": "Daily_tasks3",
"text": "1"
},
"task_name": {
"key": "Daily_tasks3",
"text": "1"
},
"npctxt": {
"key": "",
"text": ""
},
"npc": 10010,
"completetasktxt": {
"key": "",
"text": ""
},
"completetask": [
0
],
"deliver_npctxt": {
"key": "",
"text": ""
},
"deliver_npc": 10012,
"auto_accept": 0,
"reword": [
{
"a": "attr",
"t": "glod",
"n": 5000 "n": 5000
} }
], ],
@ -980,7 +892,7 @@
{ {
"key": 500010, "key": 500010,
"lock": 9, "lock": 9,
"lockend": 5, "lockend": 15,
"ontxe": 20090, "ontxe": 20090,
"id_after": 0, "id_after": 0,
"group": 410, "group": 410,
@ -988,7 +900,7 @@
"icon": "", "icon": "",
"task_Tname": { "task_Tname": {
"key": "Weekly_Tasks1", "key": "Weekly_Tasks1",
"text": "1" "text": "周常任务"
}, },
"task_name": { "task_name": {
"key": "Weekly_Tasks1", "key": "Weekly_Tasks1",
@ -1015,95 +927,7 @@
"reword": [ "reword": [
{ {
"a": "attr", "a": "attr",
"t": "glod", "t": "gold",
"n": 5000
}
],
"module": []
},
{
"key": 500020,
"lock": 10,
"lockend": 5,
"ontxe": 20100,
"id_after": 0,
"group": 411,
"des": 4,
"icon": "",
"task_Tname": {
"key": "Weekly_Tasks2",
"text": "1"
},
"task_name": {
"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": [
{
"a": "attr",
"t": "glod",
"n": 5001
}
],
"module": []
},
{
"key": 500030,
"lock": 11,
"lockend": 5,
"ontxe": 20110,
"id_after": 0,
"group": 412,
"des": 4,
"icon": "",
"task_Tname": {
"key": "Weekly_Tasks3",
"text": "1"
},
"task_name": {
"key": "Weekly_Tasks3",
"text": "1"
},
"npctxt": {
"key": "",
"text": ""
},
"npc": 10040,
"completetasktxt": {
"key": "",
"text": ""
},
"completetask": [
0
],
"deliver_npctxt": {
"key": "",
"text": ""
},
"deliver_npc": 10082,
"auto_accept": 0,
"reword": [
{
"a": "attr",
"t": "glod",
"n": 5000 "n": 5000
} }
], ],

View File

@ -248,11 +248,13 @@ const (
///捕羊大赛 ///捕羊大赛
TableParkour = "parkour" TableParkour = "parkour"
TableParkourRace = "parkourrace"
///捕羊大赛 队伍表 ///捕羊大赛 队伍表
TableParkourTeam = "parkourteam" TableParkourTeam = "parkourteam"
///捕羊大赛 匹配表 ///捕羊大赛 匹配表
TableParkourMatch = "parkourmatch" TableParkourMatch = "parkourmatch"
///坐骑表
TableParkourMounts = "parkourmounts"
) )
// RPC服务接口定义处 // RPC服务接口定义处

View File

@ -33,6 +33,7 @@ const (
VipType = "vip" //vip VipType = "vip" //vip
AtlasType = "atlas" //铁匠铺资源 AtlasType = "atlas" //铁匠铺资源
PandaType = "panda" //熊猫武馆资源 PandaType = "panda" //熊猫武馆资源
MountsType = "mts" //捕羊大赛坐骑资源
) )
type Autogenerated struct { type Autogenerated struct {

View File

@ -458,6 +458,11 @@ type (
CleanUpNpc(uid string) CleanUpNpc(uid string)
} }
//捕羊大赛
IParkour interface {
AddMounts(session IUserSession, mounts map[string]int32, bPush bool) (code pb.ErrorCode)
}
ITools interface { ITools interface {
GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn)
GetGlobalConf() *cfg.GameGlobalData GetGlobalConf() *cfg.GameGlobalData

View File

@ -38,8 +38,9 @@ type ModuleBase struct {
ModuleRtask comm.IRtask //随机任务 ModuleRtask comm.IRtask //随机任务
ModuleSociaty comm.ISociaty //公会 ModuleSociaty comm.ISociaty //公会
ModulePrivilege comm.IPrivilege // 月卡 ModulePrivilege comm.IPrivilege // 月卡
ModuleSmithy comm.ISmithy // ModuleSmithy comm.ISmithy //铁建普
ModulePractice comm.IPractice //练功房 ModulePractice comm.IPractice //练功房
ModuleParkour comm.IParkour //捕羊大赛
ModuleTools comm.ITools //工具类 获取一些通用配置 ModuleTools comm.ITools //工具类 获取一些通用配置
} }
@ -126,6 +127,10 @@ func (this *ModuleBase) Start() (err error) {
return return
} }
this.ModulePractice = module.(comm.IPractice) this.ModulePractice = module.(comm.IPractice)
if module, err = this.service.GetModule(comm.ModuleParkour); err != nil {
return
}
this.ModuleParkour = module.(comm.IParkour)
if module, err = this.service.GetModule(comm.ModuleTools); err != nil { if module, err = this.service.GetModule(comm.ModuleTools); err != nil {
return return
} }
@ -396,8 +401,9 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
attrs map[string]int32 // 属性 attrs map[string]int32 // 属性
equips map[string]uint32 // 装备 equips map[string]uint32 // 装备
vip map[string]int32 // vip vip map[string]int32 // vip
atlas map[string]int32 // atlas map[string]int32 // 铁匠铺资源
panda map[string]int32 // 熊猫武馆资源 panda map[string]int32 // 熊猫武馆资源
mts map[string]int32 // 捕羊大赛资源
) )
items = make(map[string]int32, 0) items = make(map[string]int32, 0)
heros = make(map[string]int32, 0) heros = make(map[string]int32, 0)
@ -406,6 +412,7 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
vip = make(map[string]int32, 0) vip = make(map[string]int32, 0)
atlas = make(map[string]int32, 0) atlas = make(map[string]int32, 0)
panda = make(map[string]int32, 0) panda = make(map[string]int32, 0)
mts = make(map[string]int32, 0)
for _, v := range res { for _, v := range res {
switch v.A { switch v.A {
@ -425,6 +432,8 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
atlas[v.T] = 1 atlas[v.T] = 1
case comm.PandaType: case comm.PandaType:
panda[v.T] = 1 panda[v.T] = 1
case comm.MountsType:
mts[v.T] = 1
default: default:
this.Errorf("not found res type") // 找不到资源类型 this.Errorf("not found res type") // 找不到资源类型
} }
@ -462,6 +471,10 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
code = this.ModulePractice.AddItems(session, panda, bPush) code = this.ModulePractice.AddItems(session, panda, bPush)
this.Debugf("发放武馆资源: %v [%v]", panda, code) this.Debugf("发放武馆资源: %v [%v]", panda, code)
} }
if len(mts) > 0 {
code = this.ModuleParkour.AddMounts(session, mts, bPush)
this.Debugf("发放捕羊大赛资源: %v [%v]", mts, code)
}
return return
} }
@ -640,7 +653,7 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
case comm.VipType: case comm.VipType:
vip[v.T] += v.N vip[v.T] += v.N
default: default:
this.Errorf("not found res type") // 找不到资源类型 this.Error("not found res type") // 找不到资源类型
} }
} }

View File

@ -0,0 +1,32 @@
package parkour
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) AvoidCheck(session comm.IUserSession, req *pb.ParkourAvoidReq) (code pb.ErrorCode) {
return
}
///匹配请求
func (this *apiComp) Avoid(session comm.IUserSession, req *pb.ParkourAvoidReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
ok bool
)
if code = this.AvoidCheck(session, req); code != pb.ErrorCode_Success {
return
}
this.module.lock.RLock()
_, ok = this.module.battles[req.Id]
this.module.lock.RUnlock()
if ok {
go this.module.avoid(req.Id, session.GetUserId(), req.Distance)
} else {
code = pb.ErrorCode_ReqParameterError
return
}
session.SendMsg(string(this.module.GetType()), "avoid", &pb.ParkourAvoidResp{})
return
}

View File

@ -15,7 +15,7 @@ func (this *apiComp) InviteCheck(session comm.IUserSession, req *pb.ParkourInvit
///邀请组队 ///邀请组队
func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) Invite(session comm.IUserSession, req *pb.ParkourInviteReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
tean *pb.DBRaceTeam tean *pb.DBParkour
tuser *pb.DBUser tuser *pb.DBUser
ok bool ok bool
err error err error

View File

@ -15,7 +15,7 @@ func (this *apiComp) InviteHandleCheck(session comm.IUserSession, req *pb.Parkou
///邀请组队 ///邀请组队
func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInviteHandleReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) InviteHandle(session comm.IUserSession, req *pb.ParkourInviteHandleReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
tean *pb.DBRaceTeam tean *pb.DBParkour
invite *pb.DBRaceInvite invite *pb.DBRaceInvite
member *pb.DBRaceMember member *pb.DBRaceMember
users []string users []string

View File

@ -13,7 +13,7 @@ func (this *apiComp) QuitTeamCheck(session comm.IUserSession, req *pb.ParkourQui
///退出队伍 ///退出队伍
func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) QuitTeam(session comm.IUserSession, req *pb.ParkourQuitTeamReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
tean *pb.DBRaceTeam tean *pb.DBParkour
member *pb.DBRaceMember member *pb.DBRaceMember
users []string users []string
ok bool ok bool

View File

@ -13,7 +13,7 @@ func (this *apiComp) RaceMatchCheck(session comm.IUserSession, req *pb.ParkourRa
///匹配请求 ///匹配请求
func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMatchReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
team *pb.DBRaceTeam team *pb.DBParkour
err error err error
) )
if code = this.RaceMatchCheck(session, req); code != pb.ErrorCode_Success { if code = this.RaceMatchCheck(session, req); code != pb.ErrorCode_Success {
@ -23,7 +23,7 @@ func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMat
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }
if err = this.module.matchComp.addteam(team); err != nil { if err = this.module.match(team); err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }

View File

@ -0,0 +1,68 @@
package parkour
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) ReadyCheck(session comm.IUserSession, req *pb.ParkourReadyReq) (code pb.ErrorCode) {
return
}
///匹配请求
func (this *apiComp) Ready(session comm.IUserSession, req *pb.ParkourReadyReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
race *RaceItem
ok bool
isready bool
)
if code = this.ReadyCheck(session, req); code != pb.ErrorCode_Success {
return
}
this.module.lock.RLock()
race, ok = this.module.battles[req.Id]
this.module.lock.RUnlock()
if ok {
race.lock.Lock()
ok = false
isready = true
for _, v := range race.RedMember {
if v.Uid == session.GetUserId() {
v.Ready = true
ok = true
} else {
if !v.Ready {
isready = false
}
}
}
for _, v := range race.BuleMember {
if v.Uid == session.GetUserId() {
v.Ready = true
ok = true
} else {
if !v.Ready {
isready = false
}
}
}
if !ok {
code = pb.ErrorCode_ReqParameterError
race.lock.Unlock()
return
}
race.lock.Unlock()
this.module.lock.Lock()
this.module.battles[req.Id] = race
this.module.lock.Unlock()
if isready {
go this.module.startbattle(req.Id)
}
} else {
code = pb.ErrorCode_ReqParameterError
return
}
session.SendMsg(string(this.module.GetType()), "ready", &pb.ParkourReadyResp{})
return
}

View File

@ -0,0 +1,32 @@
package parkour
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) ShotCheck(session comm.IUserSession, req *pb.ParkourShotReq) (code pb.ErrorCode) {
return
}
///匹配请求
func (this *apiComp) Shot(session comm.IUserSession, req *pb.ParkourShotReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
ok bool
)
if code = this.ShotCheck(session, req); code != pb.ErrorCode_Success {
return
}
this.module.lock.RLock()
_, ok = this.module.battles[req.Id]
this.module.lock.RUnlock()
if ok {
go this.module.shot(req.Id, session.GetUserId())
} else {
code = pb.ErrorCode_ReqParameterError
return
}
session.SendMsg(string(this.module.GetType()), "shot", &pb.ParkourShotResp{})
return
}

View File

@ -2,14 +2,18 @@ package parkour
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/timewheel"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"sync"
) )
///捕羊大赛对象 ///捕羊大赛对象
type RaceItem struct { type RaceItem struct {
Id string //战斗id Id string //战斗id
lock sync.Mutex //战斗锁 防止计时器和消息同时操作对象
RedMember []*pb.DBRaceMember //红方成员 RedMember []*pb.DBRaceMember //红方成员
RedSession []comm.IUserSession //红方会话 RedSession []comm.IUserSession //红方会话
BuleMember []*pb.DBRaceMember //蓝方成员 BuleMember []*pb.DBRaceMember //蓝方成员
BuleSession []comm.IUserSession //蓝方会话 BuleSession []comm.IUserSession //蓝方会话
overtimer *timewheel.Task //准备倒计时定时器
} }

View File

@ -1,36 +0,0 @@
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
}

View File

@ -0,0 +1,53 @@
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 ModelMountsComp struct {
modules.MCompModel
module *Parkour
}
//组件初始化接口 只是用redis 层
func (this *ModelMountsComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
this.TableName = comm.TableParkourMounts
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 *ModelMountsComp) QueryUserPack(uId string) (itmes []*pb.DB_UserItemData, err error) {
var (
model *db.DBModel
)
itmes = make([]*pb.DB_UserItemData, 0)
if this.module.IsCross() {
if model, err = this.module.GetDBModelByUid(uId, this.TableName, this.Expired); err != nil {
this.module.Errorln(err)
} else {
if err = model.GetList(uId, &itmes); err != nil {
this.module.Errorf("err:%v", err)
}
}
} else {
if err = this.GetList(uId, &itmes); err != nil {
this.module.Errorf("err:%v", err)
}
}
return
}

View File

@ -1,12 +1,15 @@
package parkour package parkour
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/db" "go_dreamfactory/sys/db"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx" "go.mongodb.org/mongo-driver/x/bsonx"
) )
@ -29,10 +32,124 @@ func (this *ModelParkourComp) Init(service core.IService, module core.IModule, c
return return
} }
//记录战斗信息 func (this *ModelParkourComp) queryteam(uid string) (result *pb.DBParkour, err error) {
func (this *ModelParkourComp) addrace(race *pb.DBRace) (err error) { result = &pb.DBParkour{}
if err = this.AddList("", race.Id, race, db.SetDBMgoLog(false)); err != nil { if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil {
this.module.Errorln(err) this.module.Errorln(err)
return
}
if err == mgo.MongodbNil {
var tuser *pb.DBUser
if tuser = this.module.ModuleUser.GetUser(uid); tuser == nil {
err = fmt.Errorf("no found udata:%s", uid)
return
}
result = &pb.DBParkour{
Id: primitive.NewObjectID().Hex(),
Captainid: uid,
State: pb.RaceTeamState_teaming,
Mounts: make(map[string]int32),
Invite: make([]*pb.DBRaceInvite, 0),
Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}},
}
if err = this.Add(uid, result); err != nil {
this.module.Errorln(err)
return
}
}
err = nil
return
}
func (this *ModelParkourComp) queryteams(uids []string) (results []*pb.DBParkour, err error) {
results = make([]*pb.DBParkour, 0)
var (
onfound []string
newdata map[string]interface{} = make(map[string]interface{})
)
if onfound, err = this.Gets(uids, &results); err != nil {
this.module.Errorln(err)
return
}
if len(onfound) > 0 {
for _, v := range onfound {
var tuser *pb.DBUser
if tuser = this.module.ModuleUser.GetUser(v); tuser == nil {
err = fmt.Errorf("no found udata:%s", v)
return
}
temp := &pb.DBParkour{
Id: primitive.NewObjectID().Hex(),
Captainid: v,
State: pb.RaceTeamState_teaming,
Mounts: make(map[string]int32),
Invite: make([]*pb.DBRaceInvite, 0),
Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}},
}
newdata[v] = temp
}
if err = this.Adds(newdata); err != nil {
this.module.Errorln(err)
return
}
}
return
}
//更新用户的背包信息
func (this *ModelParkourComp) addUserMounts(uid string, mounts map[string]int32) (result *pb.DBParkour, err error) {
var (
model *db.DBModel
)
if !this.module.IsCross() { //非跨服
if model, err = this.module.GetCrossDBModel(this.TableName, this.Expired); err != nil {
this.module.Errorln(err)
} else {
result = &pb.DBParkour{}
if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil {
this.module.Errorln(err)
return
}
if err == mgo.MongodbNil {
var tuser *pb.DBUser
if tuser = this.module.ModuleUser.GetUser(uid); tuser == nil {
err = fmt.Errorf("no found udata:%s", uid)
return
}
result = &pb.DBParkour{
Id: primitive.NewObjectID().Hex(),
Captainid: uid,
State: pb.RaceTeamState_teaming,
Invite: make([]*pb.DBRaceInvite, 0),
Mounts: make(map[string]int32),
Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}},
}
for k, _ := range mounts {
result.Mounts[k] = 0
}
if err = model.Add(uid, result); err != nil {
this.module.Errorf("err:%v", err)
}
} else {
for k, _ := range mounts {
result.Mounts[k] = 0
}
this.Change(uid, map[string]interface{}{
"mounts": result.Mounts,
})
}
}
} else {
if result, err = this.queryteam(uid); err != nil {
this.module.Errorln(err)
}
for k, _ := range mounts {
result.Mounts[k] = 0
}
this.Change(uid, map[string]interface{}{
"mounts": result.Mounts,
})
} }
return return
} }

View File

@ -0,0 +1,39 @@
package parkour
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
)
///竞速数据模块
type ModelRaceComp struct {
modules.MCompModel
module *Parkour
}
//组件初始化接口
func (this *ModelRaceComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
this.TableName = comm.TableParkourRace
this.MCompModel.Init(service, module, comp, opt)
this.module = module.(*Parkour)
return
}
//记录战斗信息
func (this *ModelRaceComp) addrace(race *pb.DBRace) (err error) {
if err = this.AddList("", race.Id, race, db.SetDBMgoLog(false)); err != nil {
this.module.Errorln(err)
}
return
}
//移除战斗记录
func (this *ModelRaceComp) delrace(id string) (err error) {
if err = this.DelListlds("", []string{id}, db.SetDBMgoLog(false)); err != nil {
this.module.Errorln(err)
}
return
}

View File

@ -31,8 +31,8 @@ func (this *ModelTeamComp) Init(service core.IService, module core.IModule, comp
return return
} }
func (this *ModelTeamComp) queryteam(uid string) (result *pb.DBRaceTeam, err error) { func (this *ModelTeamComp) queryteam(uid string) (result *pb.DBParkour, err error) {
result = &pb.DBRaceTeam{} result = &pb.DBParkour{}
if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil {
this.module.Errorln(err) this.module.Errorln(err)
return return
@ -43,10 +43,11 @@ func (this *ModelTeamComp) queryteam(uid string) (result *pb.DBRaceTeam, err err
err = fmt.Errorf("no found udata:%s", uid) err = fmt.Errorf("no found udata:%s", uid)
return return
} }
result = &pb.DBRaceTeam{ result = &pb.DBParkour{
Id: primitive.NewObjectID().Hex(), Id: primitive.NewObjectID().Hex(),
Captainid: uid, Captainid: uid,
State: pb.RaceTeamState_teaming, State: pb.RaceTeamState_teaming,
Mounts: make(map[string]int32),
Invite: make([]*pb.DBRaceInvite, 0), Invite: make([]*pb.DBRaceInvite, 0),
Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}},
} }
@ -59,8 +60,8 @@ func (this *ModelTeamComp) queryteam(uid string) (result *pb.DBRaceTeam, err err
return return
} }
func (this *ModelTeamComp) queryteams(uids []string) (results []*pb.DBRaceTeam, err error) { func (this *ModelTeamComp) queryteams(uids []string) (results []*pb.DBParkour, err error) {
results = make([]*pb.DBRaceTeam, 0) results = make([]*pb.DBParkour, 0)
var ( var (
onfound []string onfound []string
newdata map[string]interface{} = make(map[string]interface{}) newdata map[string]interface{} = make(map[string]interface{})
@ -76,10 +77,11 @@ func (this *ModelTeamComp) queryteams(uids []string) (results []*pb.DBRaceTeam,
err = fmt.Errorf("no found udata:%s", v) err = fmt.Errorf("no found udata:%s", v)
return return
} }
temp := &pb.DBRaceTeam{ temp := &pb.DBParkour{
Id: primitive.NewObjectID().Hex(), Id: primitive.NewObjectID().Hex(),
Captainid: v, Captainid: v,
State: pb.RaceTeamState_teaming, State: pb.RaceTeamState_teaming,
Mounts: make(map[string]int32),
Invite: make([]*pb.DBRaceInvite, 0), Invite: make([]*pb.DBRaceInvite, 0),
Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}}, Member: []*pb.DBRaceMember{{Uid: tuser.Uid, Name: tuser.Name}},
} }

View File

@ -7,9 +7,11 @@ import (
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/timewheel"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"sync" "sync"
"time"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
) )
@ -30,8 +32,8 @@ type Parkour struct {
api *apiComp api *apiComp
configure *configureComp configure *configureComp
teamComp *ModelTeamComp teamComp *ModelTeamComp
matchComp *ModelMatchComp
parkourComp *ModelParkourComp parkourComp *ModelParkourComp
raceComp *ModelRaceComp
lock sync.RWMutex lock sync.RWMutex
battles map[string]*RaceItem battles map[string]*RaceItem
} }
@ -61,17 +63,47 @@ func (this *Parkour) OnInstallComp() {
this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
this.teamComp = this.RegisterComp(new(ModelTeamComp)).(*ModelTeamComp) this.teamComp = this.RegisterComp(new(ModelTeamComp)).(*ModelTeamComp)
this.matchComp = this.RegisterComp(new(ModelMatchComp)).(*ModelMatchComp)
this.parkourComp = this.RegisterComp(new(ModelParkourComp)).(*ModelParkourComp) this.parkourComp = this.RegisterComp(new(ModelParkourComp)).(*ModelParkourComp)
} }
//添加坐骑资源
func (this *Parkour) AddMounts(session comm.IUserSession, mounts map[string]int32, bPush bool) (code pb.ErrorCode) {
var (
result *pb.DBParkour
err error
)
if result, err = this.parkourComp.addUserMounts(session.GetUserId(), mounts); err != nil {
code = pb.ErrorCode_DBError
return
}
if bPush {
session.SendMsg(string(this.GetType()), "infochange", &pb.ParkourInfoChangePush{Info: result})
}
return
}
//匹配
func (this *Parkour) match(team *pb.DBParkour) (err error) {
err = this.service.RpcCall(
context.Background(),
comm.Service_Mainte,
string(comm.RPC_ParkourJoinMatch),
&pb.RPCParkourJoinMatchReq{Captainid: team.Captainid, Member: team.Member},
&pb.RPCParkourJoinMatchResp{})
if err != nil {
this.Errorln(err)
return
}
return
}
//匹配成功 创建战斗 //匹配成功 创建战斗
func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSuccReq, resp *pb.RPCParkourMatchSuccResp) (err error) { func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSuccReq, resp *pb.RPCParkourMatchSuccResp) (err error) {
var ( var (
race *pb.DBRace race *pb.DBRace
battle *RaceItem battle *RaceItem
sessions []comm.IUserSession = make([]comm.IUserSession, 0) sessions []comm.IUserSession = make([]comm.IUserSession, 0)
teams []*pb.DBRaceTeam teams []*pb.DBParkour
users []string = make([]string, 0) users []string = make([]string, 0)
) )
this.Debug("createbattle", log.Field{Key: "req", Value: req.String()}) this.Debug("createbattle", log.Field{Key: "req", Value: req.String()})
@ -86,6 +118,7 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu
Id: race.Id, Id: race.Id,
RedSession: make([]comm.IUserSession, 0), RedSession: make([]comm.IUserSession, 0),
BuleSession: make([]comm.IUserSession, 0), BuleSession: make([]comm.IUserSession, 0),
overtimer: timewheel.Add(time.Minute*3, this.overtimer, race.Id),
} }
for _, v := range req.Red { for _, v := range req.Red {
@ -112,7 +145,7 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu
for _, v := range teams { for _, v := range teams {
v.State = pb.RaceTeamState_raceing v.State = pb.RaceTeamState_raceing
} }
if err = this.parkourComp.addrace(race); err != nil { if err = this.raceComp.addrace(race); err != nil {
return return
} }
this.lock.Lock() this.lock.Lock()
@ -126,4 +159,99 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu
return return
} }
func (this *Parkour) startbattle(id string) {
this.Debug("startbattle", log.Field{Key: "id", Value: id})
var (
battle *RaceItem
ok bool
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
err error
)
this.lock.RLock()
battle, ok = this.battles[id]
this.lock.RUnlock()
if ok {
sessions = append(sessions, battle.RedSession...)
sessions = append(sessions, battle.BuleSession...)
if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{
Countdown: 3,
}, sessions...); err != nil {
this.Errorln(err)
}
}
}
func (this *Parkour) shot(id string, uid string) {
this.Debug("shot", log.Field{Key: "id", Value: id})
var (
battle *RaceItem
ok bool
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
err error
)
this.lock.RLock()
battle, ok = this.battles[id]
this.lock.RUnlock()
if ok {
sessions = append(sessions, battle.RedSession...)
sessions = append(sessions, battle.BuleSession...)
if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{
Countdown: 3,
}, sessions...); err != nil {
this.Errorln(err)
}
}
}
func (this *Parkour) avoid(id string, uid string, dis int32) {
this.Debug("shot", log.Field{Key: "id", Value: id})
var (
battle *RaceItem
ok bool
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
err error
)
this.lock.RLock()
battle, ok = this.battles[id]
this.lock.RUnlock()
if ok {
sessions = append(sessions, battle.RedSession...)
sessions = append(sessions, battle.BuleSession...)
if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceStartPush{
Countdown: 3,
}, sessions...); err != nil {
this.Errorln(err)
}
}
}
//战斗结束
func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) {
this.Debug("shot", log.Field{Key: "id", Value: args})
var (
battle *RaceItem
ok bool
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
err error
)
id := args[0].(string)
this.lock.RLock()
battle, ok = this.battles[id]
this.lock.RUnlock()
if ok {
this.lock.Lock()
delete(this.battles, id)
this.lock.Unlock()
this.raceComp.delrace(id)
sessions = append(sessions, battle.RedSession...)
sessions = append(sessions, battle.BuleSession...)
if err = this.SendMsgToSession(string(comm.ModulePvp), "finish", &pb.ParkourRaceOverPush{
Race: &pb.DBRace{
Id: battle.Id,
},
}, sessions...); err != nil {
this.Errorln(err)
return
}
}
}

View File

@ -1,6 +1,7 @@
package practice package practice
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo" "go_dreamfactory/lego/sys/mgo"
@ -111,6 +112,7 @@ func (this *modelPandata) refreshnpc(room *pb.DBPracticeRoom) (err error) {
npcs []*cfg.GameDispatch_BattleData npcs []*cfg.GameDispatch_BattleData
wigets []int32 wigets []int32
index int32 index int32
code pb.ErrorCode
) )
if npcs, err = this.module.configure.getDispatchBattle(); err != nil { if npcs, err = this.module.configure.getDispatchBattle(); err != nil {
@ -125,7 +127,8 @@ func (this *modelPandata) refreshnpc(room *pb.DBPracticeRoom) (err error) {
room.Currnpc = npcs[index].Id room.Currnpc = npcs[index].Id
room.Npcstate = 0 room.Npcstate = 0
room.Battlenum = 0 room.Battlenum = 0
if room.Captain, room.Formation, err = this.module.arena.GetMatcheBattleRoles(room.Uid); err != nil { if room.Captain, room.Formation, code = this.module.battle.CreateRolesByFormat(npcs[index].MonsterformatId); code != pb.ErrorCode_Success {
err = fmt.Errorf("CreateRolesByFormat fail:%d", code)
return return
} }
return return

View File

@ -116,62 +116,6 @@ func (RaceTeamState) EnumDescriptor() ([]byte, []int) {
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{1} 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 { type DBRaceMember struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -180,17 +124,18 @@ type DBRaceMember struct {
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称
Mount *DBMounts `protobuf:"bytes,3,opt,name=mount,proto3" json:"mount"` //上阵坐骑 Mount string `protobuf:"bytes,3,opt,name=mount,proto3" json:"mount"` //上阵坐骑
Hp int32 `protobuf:"varint,4,opt,name=hp,proto3" json:"hp"` //初始血量 Hp int32 `protobuf:"varint,4,opt,name=hp,proto3" json:"hp"` //初始血量
Innermost int32 `protobuf:"varint,5,opt,name=innermost,proto3" json:"innermost"` //里程数 Innermost int32 `protobuf:"varint,5,opt,name=innermost,proto3" json:"innermost"` //里程数
Isai bool `protobuf:"varint,6,opt,name=isai,proto3" json:"isai"` //是否是ai Ready bool `protobuf:"varint,6,opt,name=ready,proto3" json:"ready"` //是否准备
Isoff bool `protobuf:"varint,7,opt,name=isoff,proto3" json:"isoff"` //是否离线 Isai bool `protobuf:"varint,7,opt,name=isai,proto3" json:"isai"` //是否是ai
Isoff bool `protobuf:"varint,8,opt,name=isoff,proto3" json:"isoff"` //是否离线
} }
func (x *DBRaceMember) Reset() { func (x *DBRaceMember) Reset() {
*x = DBRaceMember{} *x = DBRaceMember{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_parkour_parkour_db_proto_msgTypes[1] mi := &file_parkour_parkour_db_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -203,7 +148,7 @@ func (x *DBRaceMember) String() string {
func (*DBRaceMember) ProtoMessage() {} func (*DBRaceMember) ProtoMessage() {}
func (x *DBRaceMember) ProtoReflect() protoreflect.Message { func (x *DBRaceMember) ProtoReflect() protoreflect.Message {
mi := &file_parkour_parkour_db_proto_msgTypes[1] mi := &file_parkour_parkour_db_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -216,7 +161,7 @@ func (x *DBRaceMember) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBRaceMember.ProtoReflect.Descriptor instead. // Deprecated: Use DBRaceMember.ProtoReflect.Descriptor instead.
func (*DBRaceMember) Descriptor() ([]byte, []int) { func (*DBRaceMember) Descriptor() ([]byte, []int) {
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{1} return file_parkour_parkour_db_proto_rawDescGZIP(), []int{0}
} }
func (x *DBRaceMember) GetUid() string { func (x *DBRaceMember) GetUid() string {
@ -233,11 +178,11 @@ func (x *DBRaceMember) GetName() string {
return "" return ""
} }
func (x *DBRaceMember) GetMount() *DBMounts { func (x *DBRaceMember) GetMount() string {
if x != nil { if x != nil {
return x.Mount return x.Mount
} }
return nil return ""
} }
func (x *DBRaceMember) GetHp() int32 { func (x *DBRaceMember) GetHp() int32 {
@ -254,6 +199,13 @@ func (x *DBRaceMember) GetInnermost() int32 {
return 0 return 0
} }
func (x *DBRaceMember) GetReady() bool {
if x != nil {
return x.Ready
}
return false
}
func (x *DBRaceMember) GetIsai() bool { func (x *DBRaceMember) GetIsai() bool {
if x != nil { if x != nil {
return x.Isai return x.Isai
@ -281,7 +233,7 @@ type DBRaceInvite struct {
func (x *DBRaceInvite) Reset() { func (x *DBRaceInvite) Reset() {
*x = DBRaceInvite{} *x = DBRaceInvite{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_parkour_parkour_db_proto_msgTypes[2] mi := &file_parkour_parkour_db_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -294,7 +246,7 @@ func (x *DBRaceInvite) String() string {
func (*DBRaceInvite) ProtoMessage() {} func (*DBRaceInvite) ProtoMessage() {}
func (x *DBRaceInvite) ProtoReflect() protoreflect.Message { func (x *DBRaceInvite) ProtoReflect() protoreflect.Message {
mi := &file_parkour_parkour_db_proto_msgTypes[2] mi := &file_parkour_parkour_db_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -307,7 +259,7 @@ func (x *DBRaceInvite) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBRaceInvite.ProtoReflect.Descriptor instead. // Deprecated: Use DBRaceInvite.ProtoReflect.Descriptor instead.
func (*DBRaceInvite) Descriptor() ([]byte, []int) { func (*DBRaceInvite) Descriptor() ([]byte, []int) {
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{2} return file_parkour_parkour_db_proto_rawDescGZIP(), []int{1}
} }
func (x *DBRaceInvite) GetUid() string { func (x *DBRaceInvite) GetUid() string {
@ -331,35 +283,38 @@ func (x *DBRaceInvite) GetExpired() int64 {
return 0 return 0
} }
type DBRaceTeam struct { //个人竞赛信息
type DBParkour struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 队伍id 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"` //队伍状态 Mounts map[string]int32 `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑列表
Captainid string `protobuf:"bytes,3,opt,name=captainid,proto3" json:"captainid"` //队长id Dfmount string `protobuf:"bytes,3,opt,name=dfmount,proto3" json:"dfmount"` //默认坐骑
Invite []*DBRaceInvite `protobuf:"bytes,4,rep,name=invite,proto3" json:"invite"` //邀请列表 State RaceTeamState `protobuf:"varint,4,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态
Member []*DBRaceMember `protobuf:"bytes,5,rep,name=member,proto3" json:"member"` //成员列表 Captainid string `protobuf:"bytes,5,opt,name=captainid,proto3" json:"captainid"` //队长id
Invite []*DBRaceInvite `protobuf:"bytes,6,rep,name=invite,proto3" json:"invite"` //邀请列表
Member []*DBRaceMember `protobuf:"bytes,7,rep,name=member,proto3" json:"member"` //成员列表
} }
func (x *DBRaceTeam) Reset() { func (x *DBParkour) Reset() {
*x = DBRaceTeam{} *x = DBParkour{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_parkour_parkour_db_proto_msgTypes[3] mi := &file_parkour_parkour_db_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
} }
func (x *DBRaceTeam) String() string { func (x *DBParkour) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*DBRaceTeam) ProtoMessage() {} func (*DBParkour) ProtoMessage() {}
func (x *DBRaceTeam) ProtoReflect() protoreflect.Message { func (x *DBParkour) ProtoReflect() protoreflect.Message {
mi := &file_parkour_parkour_db_proto_msgTypes[3] mi := &file_parkour_parkour_db_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -370,40 +325,54 @@ func (x *DBRaceTeam) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use DBRaceTeam.ProtoReflect.Descriptor instead. // Deprecated: Use DBParkour.ProtoReflect.Descriptor instead.
func (*DBRaceTeam) Descriptor() ([]byte, []int) { func (*DBParkour) Descriptor() ([]byte, []int) {
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{3} return file_parkour_parkour_db_proto_rawDescGZIP(), []int{2}
} }
func (x *DBRaceTeam) GetId() string { func (x *DBParkour) GetId() string {
if x != nil { if x != nil {
return x.Id return x.Id
} }
return "" return ""
} }
func (x *DBRaceTeam) GetState() RaceTeamState { func (x *DBParkour) GetMounts() map[string]int32 {
if x != nil {
return x.Mounts
}
return nil
}
func (x *DBParkour) GetDfmount() string {
if x != nil {
return x.Dfmount
}
return ""
}
func (x *DBParkour) GetState() RaceTeamState {
if x != nil { if x != nil {
return x.State return x.State
} }
return RaceTeamState_teaming return RaceTeamState_teaming
} }
func (x *DBRaceTeam) GetCaptainid() string { func (x *DBParkour) GetCaptainid() string {
if x != nil { if x != nil {
return x.Captainid return x.Captainid
} }
return "" return ""
} }
func (x *DBRaceTeam) GetInvite() []*DBRaceInvite { func (x *DBParkour) GetInvite() []*DBRaceInvite {
if x != nil { if x != nil {
return x.Invite return x.Invite
} }
return nil return nil
} }
func (x *DBRaceTeam) GetMember() []*DBRaceMember { func (x *DBParkour) GetMember() []*DBRaceMember {
if x != nil { if x != nil {
return x.Member return x.Member
} }
@ -428,7 +397,7 @@ type DBRace struct {
func (x *DBRace) Reset() { func (x *DBRace) Reset() {
*x = DBRace{} *x = DBRace{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_parkour_parkour_db_proto_msgTypes[4] mi := &file_parkour_parkour_db_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -441,7 +410,7 @@ func (x *DBRace) String() string {
func (*DBRace) ProtoMessage() {} func (*DBRace) ProtoMessage() {}
func (x *DBRace) ProtoReflect() protoreflect.Message { func (x *DBRace) ProtoReflect() protoreflect.Message {
mi := &file_parkour_parkour_db_proto_msgTypes[4] mi := &file_parkour_parkour_db_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -454,7 +423,7 @@ func (x *DBRace) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBRace.ProtoReflect.Descriptor instead. // Deprecated: Use DBRace.ProtoReflect.Descriptor instead.
func (*DBRace) Descriptor() ([]byte, []int) { func (*DBRace) Descriptor() ([]byte, []int) {
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{4} return file_parkour_parkour_db_proto_rawDescGZIP(), []int{3}
} }
func (x *DBRace) GetId() string { func (x *DBRace) GetId() string {
@ -510,59 +479,65 @@ var File_parkour_parkour_db_proto protoreflect.FileDescriptor
var file_parkour_parkour_db_proto_rawDesc = []byte{ var file_parkour_parkour_db_proto_rawDesc = []byte{
0x0a, 0x18, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 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, 0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x44,
0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a,
0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x04, 0x20,
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72,
0x1f, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65,
0x2e, 0x44, 0x42, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x06,
0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x70, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x69,
0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x73, 0x61, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12,
0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x0a, 0x04, 0x69, 0x73, 0x61, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x22, 0x4e, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49,
0x61, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x08, 0x52, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x22, 0x4e, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0xb2, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b,
0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x6f, 0x75, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x6f, 0x75,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x66, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a,
0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x52,
0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x69, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64,
0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69,
0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xef, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62,
0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63,
0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x1a,
0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x39, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xef, 0x01, 0x0a, 0x06, 0x44,
0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x42, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76,
0x2b, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
0x72, 0x52, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0a, 0x65, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63,
0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x6b, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b,
0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18,
0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2a, 0x22, 0x0a, 0x08, 0x52, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74,
0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20,
0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x10, 0x01, 0x2a, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62,
0x37, 0x0a, 0x0d, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x65, 0x72, 0x52, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a,
0x12, 0x0b, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28,
0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x61, 0x63, 0x65, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x52, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2a, 0x22, 0x0a, 0x08,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 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 ( var (
@ -582,20 +557,20 @@ var file_parkour_parkour_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_parkour_parkour_db_proto_goTypes = []interface{}{ var file_parkour_parkour_db_proto_goTypes = []interface{}{
(RaceType)(0), // 0: RaceType (RaceType)(0), // 0: RaceType
(RaceTeamState)(0), // 1: RaceTeamState (RaceTeamState)(0), // 1: RaceTeamState
(*DBMounts)(nil), // 2: DBMounts (*DBRaceMember)(nil), // 2: DBRaceMember
(*DBRaceMember)(nil), // 3: DBRaceMember (*DBRaceInvite)(nil), // 3: DBRaceInvite
(*DBRaceInvite)(nil), // 4: DBRaceInvite (*DBParkour)(nil), // 4: DBParkour
(*DBRaceTeam)(nil), // 5: DBRaceTeam (*DBRace)(nil), // 5: DBRace
(*DBRace)(nil), // 6: DBRace nil, // 6: DBParkour.MountsEntry
} }
var file_parkour_parkour_db_proto_depIdxs = []int32{ var file_parkour_parkour_db_proto_depIdxs = []int32{
2, // 0: DBRaceMember.mount:type_name -> DBMounts 6, // 0: DBParkour.mounts:type_name -> DBParkour.MountsEntry
1, // 1: DBRaceTeam.state:type_name -> RaceTeamState 1, // 1: DBParkour.state:type_name -> RaceTeamState
4, // 2: DBRaceTeam.invite:type_name -> DBRaceInvite 3, // 2: DBParkour.invite:type_name -> DBRaceInvite
3, // 3: DBRaceTeam.member:type_name -> DBRaceMember 2, // 3: DBParkour.member:type_name -> DBRaceMember
0, // 4: DBRace.rtype:type_name -> RaceType 0, // 4: DBRace.rtype:type_name -> RaceType
3, // 5: DBRace.redmember:type_name -> DBRaceMember 2, // 5: DBRace.redmember:type_name -> DBRaceMember
3, // 6: DBRace.bulemember:type_name -> DBRaceMember 2, // 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 output_type
7, // [7:7] is the sub-list for method input_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 type_name
@ -610,18 +585,6 @@ func file_parkour_parkour_db_proto_init() {
} }
if !protoimpl.UnsafeEnabled { if !protoimpl.UnsafeEnabled {
file_parkour_parkour_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 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 { switch v := v.(*DBRaceMember); i {
case 0: case 0:
return &v.state return &v.state
@ -633,7 +596,7 @@ func file_parkour_parkour_db_proto_init() {
return nil return nil
} }
} }
file_parkour_parkour_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { file_parkour_parkour_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBRaceInvite); i { switch v := v.(*DBRaceInvite); i {
case 0: case 0:
return &v.state return &v.state
@ -645,8 +608,8 @@ func file_parkour_parkour_db_proto_init() {
return nil return nil
} }
} }
file_parkour_parkour_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { file_parkour_parkour_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBRaceTeam); i { switch v := v.(*DBParkour); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -657,7 +620,7 @@ func file_parkour_parkour_db_proto_init() {
return nil return nil
} }
} }
file_parkour_parkour_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { file_parkour_parkour_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBRace); i { switch v := v.(*DBRace); i {
case 0: case 0:
return &v.state return &v.state

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,7 @@ import (
"go_dreamfactory/modules/moonfantasy" "go_dreamfactory/modules/moonfantasy"
"go_dreamfactory/modules/notify" "go_dreamfactory/modules/notify"
"go_dreamfactory/modules/pagoda" "go_dreamfactory/modules/pagoda"
"go_dreamfactory/modules/parkour"
"go_dreamfactory/modules/pay" "go_dreamfactory/modules/pay"
"go_dreamfactory/modules/practice" "go_dreamfactory/modules/practice"
"go_dreamfactory/modules/privilege" "go_dreamfactory/modules/privilege"
@ -116,6 +117,7 @@ func main() {
dispatch.NewModule(), dispatch.NewModule(),
atlas.NewModule(), atlas.NewModule(),
practice.NewModule(), practice.NewModule(),
parkour.NewModule(),
tools.NewModule(), tools.NewModule(),
) )
} }

View File

@ -20,6 +20,7 @@ type GameDispatch_BattleData struct {
Battlename string Battlename string
Battletxt string Battletxt string
BattleReadyID int32 BattleReadyID int32
MonsterformatId int32
EventList []int32 EventList []int32
Award []*Gameatn Award []*Gameatn
Onlookers []string Onlookers []string
@ -43,6 +44,7 @@ func (_v *GameDispatch_BattleData)Deserialize(_buf map[string]interface{}) (err
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["battlename"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battlename error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battlename, _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["battlename"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battlename error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battlename, _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["battletxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battletxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battletxt, _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["battletxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battletxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battletxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["monsterformat_id"].(float64); !_ok_ { err = errors.New("monsterformat_id error"); return }; _v.MonsterformatId = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool