商队系统改造

This commit is contained in:
meixiongfeng 2023-04-24 20:35:03 +08:00
parent cc550d9da5
commit d511fb2756
26 changed files with 1781 additions and 171 deletions

View File

@ -5,7 +5,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -21,7 +21,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -37,7 +37,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_05_01"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -53,7 +53,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -69,7 +69,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -85,7 +85,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -101,7 +101,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -117,7 +117,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -133,7 +133,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -149,7 +149,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -165,7 +165,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -197,7 +197,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -213,7 +213,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,
@ -229,7 +229,7 @@
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
"scenesfight_03_02" "scenesfight_07"
], ],
"disableAiCamera": 0, "disableAiCamera": 0,
"DefaultHero": 0, "DefaultHero": 0,

View File

@ -1,38 +1,77 @@
[ [
{ {
"num": "20030001", "id": "20030001",
"stime": 100, "name": {
"etime": 120, "key": "",
"text": ""
},
"intr": {
"key": "",
"text": ""
},
"Color": 1,
"Img": "",
"access": [
107
],
"model": "",
"point": "",
"stime": 20,
"etime": 20,
"hp": 7, "hp": 7,
"model": "", "moderate": 100,
"point": "", "sprint": 200,
"moderate": 0, "acceleration": 100,
"sprint": 0, "deceleration": 100
"acceleration": 0,
"deceleration": 0
}, },
{ {
"num": "20030002", "id": "20030002",
"stime": 100, "name": {
"etime": 120, "key": "",
"hp": 5, "text": ""
},
"intr": {
"key": "",
"text": ""
},
"Color": 1,
"Img": "",
"access": [
107
],
"model": "", "model": "",
"point": "", "point": "",
"moderate": 0, "stime": 20,
"sprint": 0, "etime": 20,
"acceleration": 0, "hp": 5,
"deceleration": 0 "moderate": 100,
"sprint": 200,
"acceleration": 100,
"deceleration": 100
}, },
{ {
"num": "20030003", "id": "20030003",
"stime": 100, "name": {
"etime": 120, "key": "",
"hp": 5, "text": ""
},
"intr": {
"key": "",
"text": ""
},
"Color": 1,
"Img": "",
"access": [
107
],
"model": "", "model": "",
"point": "", "point": "",
"moderate": 0, "stime": 20,
"sprint": 0, "etime": 20,
"acceleration": 0, "hp": 5,
"deceleration": 0 "moderate": 100,
"sprint": 200,
"acceleration": 100,
"deceleration": 100
} }
] ]

View File

@ -2,6 +2,7 @@
{ {
"id": 1, "id": 1,
"model": "51004", "model": "51004",
"idleAni": "kungfu_pavilion_action_1_act",
"weight": 1000, "weight": 1000,
"startstory": 4001, "startstory": 4001,
"rejectstory": 4002, "rejectstory": 4002,
@ -45,6 +46,7 @@
{ {
"id": 2, "id": 2,
"model": "51005", "model": "51005",
"idleAni": "kungfu_pavilion_action_2_act",
"weight": 1000, "weight": 1000,
"startstory": 4001, "startstory": 4001,
"rejectstory": 4002, "rejectstory": 4002,

View File

@ -8,7 +8,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 168, "tasktime": 65,
"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": 124, "tasktime": 143,
"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": 125, "tasktime": 68,
"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": 169, "tasktime": 80,
"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": 176, "tasktime": 157,
"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": 97, "tasktime": 179,
"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": 66, "tasktime": 175,
"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": 173, "tasktime": 75,
"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": 104, "tasktime": 86,
"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": 77, "tasktime": 119,
"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": 180, "tasktime": 144,
"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": 91, "tasktime": 167,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -632,7 +632,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 95, "tasktime": 87,
"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": 86, "tasktime": 133,
"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": 162, "tasktime": 172,
"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": 175, "tasktime": 164,
"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": 63, "tasktime": 85,
"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": 131, "tasktime": 115,
"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": 155, "tasktime": 148,
"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": 76, "tasktime": 118,
"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": 101, "tasktime": 174,
"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": 158, "tasktime": 140,
"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": 172, "tasktime": 147,
"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": 116, "tasktime": 120,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1256,7 +1256,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 60, "tasktime": 170,
"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": 134, "tasktime": 149,
"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": 125, "tasktime": 132,
"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": 131, "tasktime": 87,
"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": 118, "tasktime": 149,
"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": 148, "tasktime": 164,
"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": 64, "tasktime": 85,
"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": 110, "tasktime": 148,
"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": 151, "tasktime": 131,
"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": 101, "tasktime": 125,
"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": 96, "tasktime": 93,
"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": 61, "tasktime": 162,
"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": 151, "tasktime": 119,
"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": 85, "tasktime": 63,
"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": 132, "tasktime": 136,
"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": 74, "tasktime": 135,
"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": 98, "tasktime": 69,
"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": 153, "tasktime": 103,
"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": 162, "tasktime": 66,
"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": 117, "tasktime": 169,
"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": 71, "tasktime": 112,
"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": 119, "tasktime": 62,
"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": 166, "tasktime": 92,
"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": 100, "tasktime": 156,
"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": 148, "tasktime": 92,
"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": 154, "tasktime": 170,
"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": 119, "tasktime": 69,
"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": 93, "tasktime": 75,
"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": 163, "tasktime": 80,
"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": 180, "tasktime": 134,
"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": 104, "tasktime": 120,
"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": 119, "tasktime": 117,
"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": 103, "tasktime": 119,
"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": 164, "tasktime": 109,
"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": 90, "tasktime": 114,
"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": 113, "tasktime": 70,
"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": 138, "tasktime": 117,
"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": 178, "tasktime": 143,
"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": 113, "tasktime": 92,
"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": 165, "tasktime": 130,
"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": 155, "tasktime": 105,
"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": 107, "tasktime": 152,
"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": 141, "tasktime": 98,
"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": 70, "tasktime": 167,
"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": 115, "tasktime": 179,
"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": 65, "tasktime": 109,
"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": 160, "tasktime": 68,
"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": 106, "tasktime": 96,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"

View File

@ -735,6 +735,7 @@
"v": 500 "v": 500
} }
], ],
"mounts": "20030001" "mounts": "20030001",
"buzkashi_recentPlayer": 10
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,12 @@
{ {
"id": 1, "id": 1,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text1", "key": "newsmithy_drawing_name_text1",
"text": "1阶攻击图纸" "text": "1阶攻击图纸"
@ -48,6 +54,12 @@
{ {
"id": 2, "id": 2,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text2", "key": "newsmithy_drawing_name_text2",
"text": "2阶攻击图纸" "text": "2阶攻击图纸"
@ -95,6 +107,12 @@
{ {
"id": 3, "id": 3,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text3", "key": "newsmithy_drawing_name_text3",
"text": "3阶攻击图纸" "text": "3阶攻击图纸"
@ -143,6 +161,12 @@
{ {
"id": 4, "id": 4,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text4", "key": "newsmithy_drawing_name_text4",
"text": "4阶攻击图纸" "text": "4阶攻击图纸"
@ -190,6 +214,12 @@
{ {
"id": 5, "id": 5,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text5", "key": "newsmithy_drawing_name_text5",
"text": "5阶攻击图纸" "text": "5阶攻击图纸"
@ -238,6 +268,12 @@
{ {
"id": 6, "id": 6,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text6", "key": "newsmithy_drawing_name_text6",
"text": "6阶攻击图纸" "text": "6阶攻击图纸"
@ -285,6 +321,12 @@
{ {
"id": 7, "id": 7,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text7", "key": "newsmithy_drawing_name_text7",
"text": "7阶攻击图纸" "text": "7阶攻击图纸"
@ -333,6 +375,12 @@
{ {
"id": 8, "id": 8,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text8", "key": "newsmithy_drawing_name_text8",
"text": "8阶攻击图纸" "text": "8阶攻击图纸"
@ -380,6 +428,12 @@
{ {
"id": 9, "id": 9,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text9", "key": "newsmithy_drawing_name_text9",
"text": "9阶攻击图纸" "text": "9阶攻击图纸"
@ -428,6 +482,12 @@
{ {
"id": 10, "id": 10,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text10", "key": "newsmithy_drawing_name_text10",
"text": "10阶攻击图纸" "text": "10阶攻击图纸"
@ -480,6 +540,12 @@
{ {
"id": 11, "id": 11,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text11", "key": "newsmithy_drawing_name_text11",
"text": "11阶攻击图纸" "text": "11阶攻击图纸"
@ -531,6 +597,12 @@
{ {
"id": 12, "id": 12,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text12", "key": "newsmithy_drawing_name_text12",
"text": "12阶攻击图纸" "text": "12阶攻击图纸"
@ -582,6 +654,12 @@
{ {
"id": 13, "id": 13,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text13", "key": "newsmithy_drawing_name_text13",
"text": "13阶攻击图纸" "text": "13阶攻击图纸"
@ -633,6 +711,12 @@
{ {
"id": 14, "id": 14,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text14", "key": "newsmithy_drawing_name_text14",
"text": "14阶攻击图纸" "text": "14阶攻击图纸"
@ -684,6 +768,12 @@
{ {
"id": 15, "id": 15,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text15", "key": "newsmithy_drawing_name_text15",
"text": "15阶攻击图纸" "text": "15阶攻击图纸"
@ -735,6 +825,12 @@
{ {
"id": 16, "id": 16,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text16", "key": "newsmithy_drawing_name_text16",
"text": "16阶攻击图纸" "text": "16阶攻击图纸"
@ -786,6 +882,12 @@
{ {
"id": 17, "id": 17,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text17", "key": "newsmithy_drawing_name_text17",
"text": "17阶攻击图纸" "text": "17阶攻击图纸"
@ -837,6 +939,12 @@
{ {
"id": 18, "id": 18,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text18", "key": "newsmithy_drawing_name_text18",
"text": "18阶攻击图纸" "text": "18阶攻击图纸"
@ -888,6 +996,12 @@
{ {
"id": 19, "id": 19,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text19", "key": "newsmithy_drawing_name_text19",
"text": "19阶攻击图纸" "text": "19阶攻击图纸"
@ -939,6 +1053,12 @@
{ {
"id": 20, "id": 20,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text20", "key": "newsmithy_drawing_name_text20",
"text": "20阶攻击图纸" "text": "20阶攻击图纸"
@ -995,6 +1115,12 @@
{ {
"id": 21, "id": 21,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text21", "key": "newsmithy_drawing_name_text21",
"text": "21阶攻击图纸" "text": "21阶攻击图纸"
@ -1051,6 +1177,12 @@
{ {
"id": 22, "id": 22,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text22", "key": "newsmithy_drawing_name_text22",
"text": "22阶攻击图纸" "text": "22阶攻击图纸"
@ -1107,6 +1239,12 @@
{ {
"id": 23, "id": 23,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text23", "key": "newsmithy_drawing_name_text23",
"text": "23阶攻击图纸" "text": "23阶攻击图纸"
@ -1163,6 +1301,12 @@
{ {
"id": 24, "id": 24,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text24", "key": "newsmithy_drawing_name_text24",
"text": "24阶攻击图纸" "text": "24阶攻击图纸"
@ -1219,6 +1363,12 @@
{ {
"id": 25, "id": 25,
"type": 1, "type": 1,
"type2_png": "tj_img_gjtz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text25", "key": "newsmithy_drawing_name_text25",
"text": "25阶攻击图纸" "text": "25阶攻击图纸"
@ -1275,6 +1425,12 @@
{ {
"id": 26, "id": 26,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text26", "key": "newsmithy_drawing_name_text26",
"text": "1阶防御图纸" "text": "1阶防御图纸"
@ -1321,6 +1477,12 @@
{ {
"id": 27, "id": 27,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text27", "key": "newsmithy_drawing_name_text27",
"text": "2阶防御图纸" "text": "2阶防御图纸"
@ -1368,6 +1530,12 @@
{ {
"id": 28, "id": 28,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text28", "key": "newsmithy_drawing_name_text28",
"text": "3阶防御图纸" "text": "3阶防御图纸"
@ -1416,6 +1584,12 @@
{ {
"id": 29, "id": 29,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text29", "key": "newsmithy_drawing_name_text29",
"text": "4阶防御图纸" "text": "4阶防御图纸"
@ -1463,6 +1637,12 @@
{ {
"id": 30, "id": 30,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text30", "key": "newsmithy_drawing_name_text30",
"text": "5阶防御图纸" "text": "5阶防御图纸"
@ -1511,6 +1691,12 @@
{ {
"id": 31, "id": 31,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text31", "key": "newsmithy_drawing_name_text31",
"text": "6阶防御图纸" "text": "6阶防御图纸"
@ -1558,6 +1744,12 @@
{ {
"id": 32, "id": 32,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text32", "key": "newsmithy_drawing_name_text32",
"text": "7阶防御图纸" "text": "7阶防御图纸"
@ -1606,6 +1798,12 @@
{ {
"id": 33, "id": 33,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text33", "key": "newsmithy_drawing_name_text33",
"text": "8阶防御图纸" "text": "8阶防御图纸"
@ -1653,6 +1851,12 @@
{ {
"id": 34, "id": 34,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text34", "key": "newsmithy_drawing_name_text34",
"text": "9阶防御图纸" "text": "9阶防御图纸"
@ -1701,6 +1905,12 @@
{ {
"id": 35, "id": 35,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text35", "key": "newsmithy_drawing_name_text35",
"text": "10阶防御图纸" "text": "10阶防御图纸"
@ -1753,6 +1963,12 @@
{ {
"id": 36, "id": 36,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text36", "key": "newsmithy_drawing_name_text36",
"text": "11阶防御图纸" "text": "11阶防御图纸"
@ -1804,6 +2020,12 @@
{ {
"id": 37, "id": 37,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text37", "key": "newsmithy_drawing_name_text37",
"text": "12阶防御图纸" "text": "12阶防御图纸"
@ -1855,6 +2077,12 @@
{ {
"id": 38, "id": 38,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text38", "key": "newsmithy_drawing_name_text38",
"text": "13阶防御图纸" "text": "13阶防御图纸"
@ -1906,6 +2134,12 @@
{ {
"id": 39, "id": 39,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text39", "key": "newsmithy_drawing_name_text39",
"text": "14阶防御图纸" "text": "14阶防御图纸"
@ -1957,6 +2191,12 @@
{ {
"id": 40, "id": 40,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text40", "key": "newsmithy_drawing_name_text40",
"text": "15阶防御图纸" "text": "15阶防御图纸"
@ -2008,6 +2248,12 @@
{ {
"id": 41, "id": 41,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text41", "key": "newsmithy_drawing_name_text41",
"text": "16阶防御图纸" "text": "16阶防御图纸"
@ -2059,6 +2305,12 @@
{ {
"id": 42, "id": 42,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text42", "key": "newsmithy_drawing_name_text42",
"text": "17阶防御图纸" "text": "17阶防御图纸"
@ -2110,6 +2362,12 @@
{ {
"id": 43, "id": 43,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text43", "key": "newsmithy_drawing_name_text43",
"text": "18阶防御图纸" "text": "18阶防御图纸"
@ -2161,6 +2419,12 @@
{ {
"id": 44, "id": 44,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text44", "key": "newsmithy_drawing_name_text44",
"text": "19阶防御图纸" "text": "19阶防御图纸"
@ -2212,6 +2476,12 @@
{ {
"id": 45, "id": 45,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text45", "key": "newsmithy_drawing_name_text45",
"text": "20阶防御图纸" "text": "20阶防御图纸"
@ -2268,6 +2538,12 @@
{ {
"id": 46, "id": 46,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text46", "key": "newsmithy_drawing_name_text46",
"text": "21阶防御图纸" "text": "21阶防御图纸"
@ -2324,6 +2600,12 @@
{ {
"id": 47, "id": 47,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text47", "key": "newsmithy_drawing_name_text47",
"text": "22阶防御图纸" "text": "22阶防御图纸"
@ -2380,6 +2662,12 @@
{ {
"id": 48, "id": 48,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text48", "key": "newsmithy_drawing_name_text48",
"text": "23阶防御图纸" "text": "23阶防御图纸"
@ -2436,6 +2724,12 @@
{ {
"id": 49, "id": 49,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text49", "key": "newsmithy_drawing_name_text49",
"text": "24阶防御图纸" "text": "24阶防御图纸"
@ -2492,6 +2786,12 @@
{ {
"id": 50, "id": 50,
"type": 2, "type": 2,
"type2_png": "tj_img_fytz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text50", "key": "newsmithy_drawing_name_text50",
"text": "25阶防御图纸" "text": "25阶防御图纸"
@ -2548,6 +2848,12 @@
{ {
"id": 51, "id": 51,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text51", "key": "newsmithy_drawing_name_text51",
"text": "1阶辅助图纸" "text": "1阶辅助图纸"
@ -2594,6 +2900,12 @@
{ {
"id": 52, "id": 52,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text52", "key": "newsmithy_drawing_name_text52",
"text": "2阶辅助图纸" "text": "2阶辅助图纸"
@ -2641,6 +2953,12 @@
{ {
"id": 53, "id": 53,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text53", "key": "newsmithy_drawing_name_text53",
"text": "3阶辅助图纸" "text": "3阶辅助图纸"
@ -2689,6 +3007,12 @@
{ {
"id": 54, "id": 54,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text54", "key": "newsmithy_drawing_name_text54",
"text": "4阶辅助图纸" "text": "4阶辅助图纸"
@ -2736,6 +3060,12 @@
{ {
"id": 55, "id": 55,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 1,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text55", "key": "newsmithy_drawing_name_text55",
"text": "5阶辅助图纸" "text": "5阶辅助图纸"
@ -2784,6 +3114,12 @@
{ {
"id": 56, "id": 56,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text56", "key": "newsmithy_drawing_name_text56",
"text": "6阶辅助图纸" "text": "6阶辅助图纸"
@ -2831,6 +3167,12 @@
{ {
"id": 57, "id": 57,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text57", "key": "newsmithy_drawing_name_text57",
"text": "7阶辅助图纸" "text": "7阶辅助图纸"
@ -2879,6 +3221,12 @@
{ {
"id": 58, "id": 58,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text58", "key": "newsmithy_drawing_name_text58",
"text": "8阶辅助图纸" "text": "8阶辅助图纸"
@ -2926,6 +3274,12 @@
{ {
"id": 59, "id": 59,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text59", "key": "newsmithy_drawing_name_text59",
"text": "9阶辅助图纸" "text": "9阶辅助图纸"
@ -2974,6 +3328,12 @@
{ {
"id": 60, "id": 60,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 2,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text60", "key": "newsmithy_drawing_name_text60",
"text": "10阶辅助图纸" "text": "10阶辅助图纸"
@ -3026,6 +3386,12 @@
{ {
"id": 61, "id": 61,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text61", "key": "newsmithy_drawing_name_text61",
"text": "11阶辅助图纸" "text": "11阶辅助图纸"
@ -3077,6 +3443,12 @@
{ {
"id": 62, "id": 62,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text62", "key": "newsmithy_drawing_name_text62",
"text": "12阶辅助图纸" "text": "12阶辅助图纸"
@ -3128,6 +3500,12 @@
{ {
"id": 63, "id": 63,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text63", "key": "newsmithy_drawing_name_text63",
"text": "13阶辅助图纸" "text": "13阶辅助图纸"
@ -3179,6 +3557,12 @@
{ {
"id": 64, "id": 64,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text64", "key": "newsmithy_drawing_name_text64",
"text": "14阶辅助图纸" "text": "14阶辅助图纸"
@ -3230,6 +3614,12 @@
{ {
"id": 65, "id": 65,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 3,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text65", "key": "newsmithy_drawing_name_text65",
"text": "15阶辅助图纸" "text": "15阶辅助图纸"
@ -3281,6 +3671,12 @@
{ {
"id": 66, "id": 66,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text66", "key": "newsmithy_drawing_name_text66",
"text": "16阶辅助图纸" "text": "16阶辅助图纸"
@ -3332,6 +3728,12 @@
{ {
"id": 67, "id": 67,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text67", "key": "newsmithy_drawing_name_text67",
"text": "17阶辅助图纸" "text": "17阶辅助图纸"
@ -3383,6 +3785,12 @@
{ {
"id": 68, "id": 68,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text68", "key": "newsmithy_drawing_name_text68",
"text": "18阶辅助图纸" "text": "18阶辅助图纸"
@ -3434,6 +3842,12 @@
{ {
"id": 69, "id": 69,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text69", "key": "newsmithy_drawing_name_text69",
"text": "19阶辅助图纸" "text": "19阶辅助图纸"
@ -3485,6 +3899,12 @@
{ {
"id": 70, "id": 70,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 4,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text70", "key": "newsmithy_drawing_name_text70",
"text": "20阶辅助图纸" "text": "20阶辅助图纸"
@ -3541,6 +3961,12 @@
{ {
"id": 71, "id": 71,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_1",
"text": "一阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text71", "key": "newsmithy_drawing_name_text71",
"text": "21阶辅助图纸" "text": "21阶辅助图纸"
@ -3597,6 +4023,12 @@
{ {
"id": 72, "id": 72,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_2",
"text": "二阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text72", "key": "newsmithy_drawing_name_text72",
"text": "22阶辅助图纸" "text": "22阶辅助图纸"
@ -3653,6 +4085,12 @@
{ {
"id": 73, "id": 73,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_3",
"text": "三阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text73", "key": "newsmithy_drawing_name_text73",
"text": "23阶辅助图纸" "text": "23阶辅助图纸"
@ -3709,6 +4147,12 @@
{ {
"id": 74, "id": 74,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_4",
"text": "四阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text74", "key": "newsmithy_drawing_name_text74",
"text": "24阶辅助图纸" "text": "24阶辅助图纸"
@ -3765,6 +4209,12 @@
{ {
"id": 75, "id": 75,
"type": 3, "type": 3,
"type2_png": "tj_img_fztz",
"type2_star": 5,
"type3_name": {
"key": "newsmithy_maketype3_name_5",
"text": "五阶"
},
"drawing_name": { "drawing_name": {
"key": "newsmithy_drawing_name_text75", "key": "newsmithy_drawing_name_text75",
"text": "25阶辅助图纸" "text": "25阶辅助图纸"

View File

@ -11,7 +11,9 @@
"text": "双脚并立,双臂自然垂在身体的两侧。向上跳,双腿打开,双手举过头顶。\n再向上跳,双脚并拢,手臂放回身体两侧,重复这个动作。这项运动锻炼身体所有的大肌肉群。" "text": "双脚并立,双臂自然垂在身体的两侧。向上跳,双腿打开,双手举过头顶。\n再向上跳,双脚并拢,手臂放回身体两侧,重复这个动作。这项运动锻炼身体所有的大肌肉群。"
}, },
"ticks": 3, "ticks": 3,
"time": 60,
"ani": "fitness_action1", "ani": "fitness_action1",
"energy": "",
"p": 500, "p": 500,
"before_training": 25003, "before_training": 25003,
"after_training": 25004, "after_training": 25004,
@ -29,7 +31,9 @@
"text": "双腿与肩同宽,双臂与肩同高平伸于身体两侧。\n然后双臂进行顺时针绕环活动,之后逆时针绕环。" "text": "双腿与肩同宽,双臂与肩同高平伸于身体两侧。\n然后双臂进行顺时针绕环活动,之后逆时针绕环。"
}, },
"ticks": 3, "ticks": 3,
"time": 60,
"ani": "fitness_action2", "ani": "fitness_action2",
"energy": "",
"p": 500, "p": 500,
"before_training": 25003, "before_training": 25003,
"after_training": 25004, "after_training": 25004,

View File

@ -5748,7 +5748,7 @@
"type_sp": 1, "type_sp": 1,
"tasktxt": { "tasktxt": {
"key": "20001_taskcond", "key": "20001_taskcond",
"text": "和骇客蛛进行对话" "text": "触碰能源石"
}, },
"type": 20001, "type": 20001,
"valid": 1, "valid": 1,

View File

@ -3024,7 +3024,6 @@
"text": "攻击1个敌方4次每次伤害为自身攻击力45%每次有30%概率为目标附加1回合【眩晕】。" "text": "攻击1个敌方4次每次伤害为自身攻击力45%每次有30%概率为目标附加1回合【眩晕】。"
}, },
"buffid": [ "buffid": [
390001105,
390001105 390001105
], ],
"map": "" "map": ""
@ -6184,7 +6183,9 @@
"key": "skill_1240021111", "key": "skill_1240021111",
"text": "攻击随机2个敌方伤害为自身攻击力55%,为目标附加【童真】。" "text": "攻击随机2个敌方伤害为自身攻击力55%,为目标附加【童真】。"
}, },
"buffid": [], "buffid": [
390001211
],
"map": "" "map": ""
}, },
{ {
@ -6352,7 +6353,10 @@
"key": "skill_1240022111", "key": "skill_1240022111",
"text": "攻击时若目标有【童真】附加2回合【速度下降】。受击时若攻击者有【童真】50%概率反击。" "text": "攻击时若目标有【童真】附加2回合【速度下降】。受击时若攻击者有【童真】50%概率反击。"
}, },
"buffid": [], "buffid": [
390001211,
390001008
],
"map": "" "map": ""
}, },
{ {

View File

@ -1356,7 +1356,7 @@
"OverlayTimes": 5, "OverlayTimes": 5,
"SameID": false, "SameID": false,
"golbalbufficon": "", "golbalbufficon": "",
"buffIcon": "", "buffIcon": "ty_zd_buff_j009",
"buffeffect": "", "buffeffect": "",
"buffpos": "根节点" "buffpos": "根节点"
}, },

View File

@ -8,15 +8,15 @@
"text": "进行10次普通招募" "text": "进行10次普通招募"
}, },
"type_id": 3018001, "type_id": 3018001,
"active": 20, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 107, "jump_interface": 107,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
}, },
@ -29,15 +29,15 @@
"text": "为任意英雄提升10次等级" "text": "为任意英雄提升10次等级"
}, },
"type_id": 3024001, "type_id": 3024001,
"active": 20, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 103, "jump_interface": 103,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
}, },
@ -50,15 +50,15 @@
"text": "强化任意装备成功6次" "text": "强化任意装备成功6次"
}, },
"type_id": 3047001, "type_id": 3047001,
"active": 20, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 102, "jump_interface": 102,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 20 "n": 1
} }
] ]
}, },
@ -71,15 +71,15 @@
"text": "在商店购买任意7件商品" "text": "在商店购买任意7件商品"
}, },
"type_id": 3064001, "type_id": 3064001,
"active": 30, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 122, "jump_interface": 122,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
}, },
@ -92,15 +92,15 @@
"text": "使用好友助战英雄战斗7次" "text": "使用好友助战英雄战斗7次"
}, },
"type_id": 3012001, "type_id": 3012001,
"active": 30, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 113, "jump_interface": 113,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
}, },
@ -113,15 +113,15 @@
"text": "刷新商店10次" "text": "刷新商店10次"
}, },
"type_id": 3105001, "type_id": 3105001,
"active": 30, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 122, "jump_interface": 122,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
}, },
@ -134,15 +134,15 @@
"text": "消费1000颗钻石" "text": "消费1000颗钻石"
}, },
"type_id": 3104001, "type_id": 3104001,
"active": 30, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 122, "jump_interface": 122,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 20 "n": 1
} }
] ]
}, },
@ -155,15 +155,15 @@
"text": "进行30场竞技场挑战" "text": "进行30场竞技场挑战"
}, },
"type_id": 3130001, "type_id": 3130001,
"active": 30, "active": 40,
"id_after": 0, "id_after": 0,
"jump_interface": 156, "jump_interface": 156,
"icon": "wp_icon_0001", "icon": "wp_icon_0001",
"reword": [ "reword": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "151001",
"n": 10 "n": 1
} }
] ]
} }

View File

@ -937,7 +937,7 @@
"key": 80010, "key": 80010,
"lock": 1, "lock": 1,
"lockend": 0, "lockend": 0,
"ontxe": 20060, "ontxe": 200600,
"id_after": 0, "id_after": 0,
"group": 360, "group": 360,
"des": 3, "des": 3,

37
modules/caravan/api.go Normal file
View File

@ -0,0 +1,37 @@
package caravan
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
const (
TrollGetListResp = "getlist"
TrollBuyOrSellResp = "buyorsell"
TrollNpcRewardResp = "npcreward"
TrollRankListResp = "ranklist"
TrollRecordListResp = "recordlist"
TrollAfkSetResp = "afkset"
TrollSurpriseIdResp = "surpriseid"
)
type apiComp struct {
modules.MCompGate
service core.IService
configure *configureComp
module *Caravan
}
//组件初始化接口
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Caravan)
this.service = service
return
}
func (this *apiComp) Start() (err error) {
err = this.MCompGate.Start()
return
}

View File

@ -0,0 +1,169 @@
package caravan
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"math"
)
//参数校验
func (this *apiComp) BuyOrSellCheck(session comm.IUserSession, req *pb.TrollBuyOrSellReq) (code pb.ErrorCode) {
if len(req.Items) == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSellReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
bSell bool // 是否有出售
gold int32 // 当次交易 获得的金币
earn int32 // 只统计赚的金币
update map[string]interface{}
gridNum int32 // 格子数量
)
update = make(map[string]interface{})
if code = this.BuyOrSellCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount)
aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
for k, v := range req.Items {
if v == 0 { // 过滤数量为0 的消息
continue
}
if trolltrain.RangeId == 0 {
trolltrain.RangeId = 1
update["rangeId"] = trolltrain.RangeId
}
if v < 0 {
if !bSell {
bSell = true
trolltrain.SellCount += 1 // 交易次数+1
if trolltrain.SellCount > dayMaxCount || (trolltrain.SellCount+trolltrain.AiCount) > aiMaxCount {
code = pb.ErrorCode_TrollMaxSellCount // 达到最大交易次数 直接返回
return
}
update["sellCount"] = trolltrain.SellCount
}
}
if _, ok := trolltrain.Shop[k]; !ok {
if v > 0 {
trolltrain.Shop[k] = v // 限购
}
} else {
if v > 0 {
trolltrain.Shop[k] += v // 限购
}
}
// 校验 是否大于买入最大限制
goods := this.configure.GetTrollGoods(k)
if goods == nil {
return
}
if trolltrain.Shop[k] > goods.Max { // 判断是否有效交易
// 买入上限 直接返回
code = pb.ErrorCode_TrollBuyMax
return
} else if trolltrain.Items[k]+v < 0 { //卖出数量不足
code = pb.ErrorCode_TrollSellMax
return
}
// 第一次购买商品
if trolltrain.TarinPos == 0 {
if _, ok := trolltrain.Price[k]; !ok {
trolltrain.Price[k] = 0
}
trolltrain.Price[k] = goods.Goodsprice * goods.StarMoney / 1000
trolltrain.RefreshTime = configure.Now().Unix()
//消耗的金币
gold -= trolltrain.Price[k] * trolltrain.Items[k]
} else {
p := this.configure.GetTrollCoefficient(trolltrain.RangeId)
if p == nil {
return
}
var sellPrice int32 // 交易价格
if trolltrain.TarinPos == 0 {
sellPrice = goods.Goodsprice * goods.StarMoney / 1000
} else {
sellPrice = int32(p.Coefficient) * goods.Goodsprice / 1000
}
// 校验是不是惊喜价格
if d1, ok := trolltrain.SurpriseID[trolltrain.TarinPos-1]; ok {
if d1 == k {
sellPrice = this.configure.GetTrollRule(comm.TrollSurprise) / 1000
}
}
if v < 0 { // 卖出
trolltrain.Items[k] += v
if sellPrice > trolltrain.Price[k] { // 赚了
earn += (sellPrice - trolltrain.Price[k]) * v
}
gold -= sellPrice * v
} else { // 买入 计算平均价格
totalGold := trolltrain.Items[k] * trolltrain.Price[k]
totalGold += v * sellPrice
trolltrain.Items[k] += v
trolltrain.Price[k] = totalGold / trolltrain.Items[k]
gold -= v * sellPrice
}
}
}
// 重新计算格子数量
grid := this.configure.GetTrollRule(comm.TrollItemCount)
for _, v := range trolltrain.Items {
if v > 0 {
gridNum += int32(math.Ceil(float64(v) / float64(grid)))
}
}
trolltrain.GridNum = gridNum
if gridNum > this.configure.GetTrollRule(comm.TrollGridCount) { // 背包格子上限
code = pb.ErrorCode_TrollMaxItemCount
return
}
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, int32(gold), true)
if code != pb.ErrorCode_Success { // 金币不足
code = pb.ErrorCode_GoldNoEnough
return
}
// 清除数量为0 的
for k, v := range trolltrain.Items {
if v == 0 {
delete(trolltrain.Items, k)
if _, ok := trolltrain.Price[k]; ok {
delete(trolltrain.Price, k) // 清除价格
}
}
}
trolltrain.TotalEarn += -int64(earn) // 累计获得的金币
// check npc level
if confLv := this.configure.GetTrollLv(trolltrain.GetNpcLv() + 1); confLv != nil {
if trolltrain.TotalEarn >= int64(confLv.Money) {
trolltrain.NpcLv += 1 // npc levelUp
update["npcLv"] = trolltrain.NpcLv
}
}
update["items"] = trolltrain.Items
update["price"] = trolltrain.Price
update["totalEarn"] = trolltrain.TotalEarn
update["gridNum"] = trolltrain.GridNum
update["shop"] = trolltrain.Shop
this.module.ModifyTrollData(session.GetUserId(), update)
// this.module.ModuleRtask.SendToRtask(session, comm.Rtype153, 1)
go this.module.ModuleRtask.TriggerTask(session.GetUserId(), comm.GettaskParam(comm.Rtype153, 1))
return
}

View File

@ -0,0 +1,111 @@
package caravan
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/utils"
"math/big"
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.TrollGetListReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
update map[string]interface{}
maxCoefficient int32
)
update = make(map[string]interface{})
if code = this.GetListCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
// 自动交易
this.module.TrollAI(session, trolltrain)
maxCoefficient = this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值
if maxCoefficient == 0 {
code = pb.ErrorCode_ConfigNoFound
return
}
// 跨天 则清除 每日交易次数
if !utils.IsToday(trolltrain.ResetTime) {
trolltrain.ResetTime = configure.Now().Unix()
update["resetTime"] = trolltrain.ResetTime
trolltrain.SellCount = 0
update["sellCount"] = trolltrain.SellCount // 重置每日交易次数
trolltrain.AiCount = 0
update["aiCount"] = trolltrain.AiCount // 重置ai 交易次数
this.module.ModifyTrollData(session.GetUserId(), update)
}
/// 计算经过了多少个周期
szTrain := this.configure.GetTrollAllTrain()
var (
circletime int32 // 循环一个周期的时间
circleCount int32 // 循环的次数
leftTime int32 // 离到达最后一站剩余的时间
index int32 // 总共经过了多少次车站
)
for _, v := range szTrain {
circletime += v
}
if int32(len(szTrain)) < trolltrain.TarinPos {
this.module.Errorf("TarinPos error: TarinPos:%d,maxLen:%d", trolltrain.TarinPos, len(szTrain))
code = pb.ErrorCode_ConfigNoFound
return
}
if configure.Now().Unix()-trolltrain.RefreshTime < int64(szTrain[trolltrain.TarinPos-1]) {
session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain})
return
}
trainNum := this.configure.GetTrollMaxTraintNum()
trolltrain.Shop = make(map[int32]int32) // 清空商人的购买数据
update["shop"] = trolltrain.Shop
t := int32(configure.Now().Unix() - trolltrain.Ctime)
circleCount = t / circletime // 经过的周期数
leftTime = t % circletime
if trolltrain.Circle != circleCount {
trolltrain.SurpriseID = make(map[int32]int32, 0)
n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum)))
// 只算当前商人所属的货物
g := this.configure.GetTrollGoodsFor(int32(n.Int64()) + 1)
n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(g))))
trolltrain.SurpriseID[int32(n.Int64())+1] = g[int32(n2.Int64())]
update["surpriseID"] = trolltrain.SurpriseID
trolltrain.Circle = circleCount
update["circle"] = trolltrain.Circle
}
index = circleCount * trainNum // 计算火车的位置信息
for _, v := range szTrain {
if leftTime <= v {
trolltrain.RefreshTime = configure.Now().Unix() - int64(leftTime) //trolltrain.Ctime + int64(circleCount*circletime+leftTime)
trolltrain.RangeId = (index % maxCoefficient) + 1
trolltrain.TarinPos = (index % trainNum) + 1
break
}
index += 1
leftTime -= v
}
update["aiCount"] = trolltrain.AiCount
update["refreshTime"] = trolltrain.RefreshTime
update["tarinPos"] = trolltrain.TarinPos
update["rangeId"] = trolltrain.RangeId
update["shop"] = trolltrain.Shop
update["items"] = trolltrain.Items
update["price"] = trolltrain.Price
this.module.ModifyTrollData(session.GetUserId(), update)
session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain})
return
}

View File

@ -0,0 +1,185 @@
package caravan
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"sync"
)
const (
game_trollgoods = "game_trollgoods.json"
game_trollcoefficient = "game_trollcoefficient.json"
game_trolltrain = "game_trolltrain.json"
game_trollrule = "game_trollrule.json"
game_trolllv = "game_trolllv.json"
)
///配置管理基础组件
type configureComp struct {
hlock sync.RWMutex
modules.MCompConfigure
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
this.LoadConfigure(game_trollgoods, cfg.NewGameTrollGoods)
this.LoadConfigure(game_trollcoefficient, cfg.NewGameTrollCoefficient)
this.LoadConfigure(game_trolltrain, cfg.NewGameTrollTrain)
this.LoadConfigure(game_trollrule, cfg.NewGameTrollRule)
this.LoadConfigure(game_trolllv, cfg.NewGameTrollLv)
return
}
//加载多个配置文件
func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err error) {
for k, v := range confs {
err = configure.RegisterConfigure(k, v, nil)
if err != nil {
log.Errorf("配置文件:%s解析失败!", k)
break
}
}
return
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
// 获取列车货物信息
func (this *configureComp) GetTrollGoods(itemId int32) (data *cfg.GameTrollGoodsData) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
data = configure.Get(itemId)
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}
// 获取商人位置信息
func (this *configureComp) GetTrollTrain(id int32) (data *cfg.GameTrollTrainData) {
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return
}
// 获取基本规则
func (this *configureComp) GetTrollRule(id int32) int32 {
if v, err := this.GetConfigure(game_trollrule); err == nil {
if configure, ok := v.(*cfg.GameTrollRule); ok {
return configure.Get(id).Quantity
}
}
log.Errorf("get GetTrollRule conf err:%d", id)
return 1
}
func (this *configureComp) GetTrollCoefficient(id int32) (data *cfg.GameTrollCoefficientData) {
if v, err := this.GetConfigure(game_trollcoefficient); err == nil {
if configure, ok := v.(*cfg.GameTrollCoefficient); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollCoefficientData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollLv(id int32) (data *cfg.GameTrollLvData) {
if v, err := this.GetConfigure(game_trolllv); err == nil {
if configure, ok := v.(*cfg.GameTrollLv); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollCoefficientData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollAllTrain() (data []int32) {
data = make([]int32, 0)
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
for _, v := range configure.GetDataList() {
time := v.Time
data = append(data, time)
}
return
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollMaxCoefficientNux() int32 {
if v, err := this.GetConfigure(game_trollcoefficient); err == nil {
if configure, ok := v.(*cfg.GameTrollCoefficient); ok {
return int32(len(configure.GetDataList()))
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return 0
}
// 获取车站的数量
func (this *configureComp) GetTrollMaxTraintNum() int32 {
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
return int32(len(configure.GetDataList()))
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return 1 // 至少有1个车站
}
func (this *configureComp) GetTrollAllGoods() (data []*cfg.GameTrollGoodsData) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
data = configure.GetDataList()
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}
// 返回商人货物信息
func (this *configureComp) GetTrollGoodsFor(trainID int32) (data []int32) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
for _, v := range configure.GetDataList() {
if v.Goodsfor == trainID {
data = append(data, v.Id)
}
}
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}

View File

@ -0,0 +1,65 @@
package caravan
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelCaravan struct {
modules.MCompModel
module *Caravan
}
func (this *modelCaravan) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableTroll)
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Caravan)
// uid 创建索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
func (this *modelCaravan) getTrollList(uid string) (result *pb.DBTrollTrain, err error) {
result = &pb.DBTrollTrain{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Items: map[int32]int32{},
Price: map[int32]int32{},
GridNum: 0,
TarinPos: 1,
RangeId: 0,
Buy: 0,
Sell: 0,
NpcLv: 0,
NpcReward: map[int32]int32{},
TotalEarn: 0,
SellCount: 0,
RefreshTime: configure.Now().Unix(),
AiCount: 0,
Shop: map[int32]int32{},
Ctime: configure.Now().Unix(),
Circle: 0,
SurpriseID: map[int32]int32{},
ResetTime: configure.Now().Unix(),
}
if err = this.Get(uid, result); err != nil && mgo.MongodbNil == err {
// 创建一条数据
err = this.Add(uid, result)
return
}
err = nil
return result, err
}
func (this *modelCaravan) modifyTrollDataByObjId(uid string, data map[string]interface{}) error {
return this.Change(uid, data)
}

270
modules/caravan/module.go Normal file
View File

@ -0,0 +1,270 @@
package caravan
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"math"
)
type Caravan struct {
modules.ModuleBase
modelTroll *modelCaravan
api *apiComp
configure *configureComp
}
func NewModule() core.IModule {
return &Caravan{}
}
func (this *Caravan) GetType() core.M_Modules {
return comm.ModuleTroll
}
func (this *Caravan) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
func (this *Caravan) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelTroll = this.RegisterComp(new(modelCaravan)).(*modelCaravan)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
// 接口信息
func (this *Caravan) ModifyTrollData(uid string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelTroll.modifyTrollDataByObjId(uid, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
func (this *Caravan) TrollAI(session comm.IUserSession, troll *pb.DBTrollTrain) (code pb.ErrorCode) {
var (
sellPrice map[int32]int32 // 出售货物价格
totalGold int32
index int32
update map[string]interface{}
rangeId int32 // 增幅ID
tarinPos int32 // 火车位置
refreshTime int64 // 刷新时间
)
if troll.Buy == 0 && troll.Sell == 0 {
return
}
update = make(map[string]interface{})
sellPrice = make(map[int32]int32)
now := configure.Now().Unix()
trainNum := this.configure.GetTrollMaxTraintNum()
maxCoefficient := this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值
if maxCoefficient == 0 {
code = pb.ErrorCode_ConfigNoFound
return
}
rangeId = troll.RangeId
tarinPos = troll.TarinPos
refreshTime = troll.RefreshTime
goods := this.configure.GetTrollAllGoods()
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice
}
sz := this.configure.GetTrollAllTrain()
if len(sz) == 0 {
this.Errorf("GetTrollAllTrain configure err") // 配置异常 打个日志
return
}
iCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
for index = 0; ; index++ {
if index < tarinPos-1 { // 起始位置
continue
}
index := int32(index) % trainNum
refreshTime += int64(sz[index])
if now >= refreshTime {
rangeId = (rangeId % maxCoefficient) + 1
tarinPos = (tarinPos % trainNum) + 1
coefficient := this.configure.GetTrollCoefficient(rangeId) // 获取当前级别的涨幅数据
if coefficient == nil {
return
}
if troll.Sell <= coefficient.Coefficient { // 可以出售
var preGold int32 // 成本价
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice * coefficient.Coefficient / 1000
preGold += troll.Price[v.Id] * troll.Items[v.Id]
}
// 出售之前算成本
if len(troll.Items) > 0 {
sellGold := this.SellAllItem(session.GetUserId(), troll, sellPrice, tarinPos)
if sellGold != 0 {
if code = this.ModuleUser.AddAttributeValue(session, comm.ResGold, sellGold, true); code != pb.ErrorCode_Success {
this.Errorf("玩家 uid:%s 金币不足,获得金币%d", session.GetUserId(), sellGold)
} // 一次交易完成做一次结算
}
totalGold += sellGold
// 计算本次出售赚的金币
if sellGold-preGold > 0 {
troll.TotalEarn += int64(sellGold - preGold)
}
troll.AiCount++
aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
if troll.AiCount+troll.SellCount > aiMaxCount { //达到最大交易次数
break
}
}
} else if troll.Buy >= coefficient.Coefficient { // 可以购买
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice * coefficient.Coefficient / 1000
}
troll.Shop = make(map[int32]int32) // 买之前清除购买上限
buyGold := this.BuyAllItem(session.GetUserId(), troll, sellPrice, tarinPos)
if buyGold != 0 {
if code = this.ModuleUser.AddAttributeValue(session, comm.ResGold, buyGold, true); code != pb.ErrorCode_Success {
this.Errorf("玩家 uid:%s 金币不足,获得金币%d", session.GetUserId(), buyGold)
}
}
totalGold += buyGold
}
} else { // 超过当前时间
refreshTime -= int64(sz[index])
break
}
if index > iCount*maxCoefficient { // ai挂机最大限制
break
}
}
update["shop"] = troll.Shop
update["items"] = troll.Items
update["price"] = troll.Price
update["aiCount"] = troll.AiCount
update["gridNum"] = troll.GridNum
update["totalEarn"] = troll.TotalEarn
if confLv := this.configure.GetTrollLv(troll.GetNpcLv() + 1); confLv != nil {
if troll.TotalEarn >= int64(confLv.Money) {
troll.NpcLv += 1 // npc levelUp
update["npcLv"] = troll.NpcLv
}
}
this.ModifyTrollData(session.GetUserId(), update)
return
}
// 出售所有货物
func (this *Caravan) SellAllItem(uid string, troll *pb.DBTrollTrain, price map[int32]int32, tarinPos int32) (gold int32) {
for k, v := range troll.Items {
if _, ok := price[k]; ok {
gold += price[k] * v
}
delete(troll.Items, k) // 清除数据
}
troll.Price = make(map[int32]int32, 0) // 原来的价格也清除
troll.GridNum = 0 // 清空格子
return
}
// 可以购买商品
func (this *Caravan) BuyAllItem(uid string, troll *pb.DBTrollTrain, price map[int32]int32, tarinPos int32) (gold int32) {
var (
box map[int32]int32 // 盒子 存放可购买的物品
leftGirdNum int32 // 剩余可购买格子数量
costGold int32
buyBox map[int32]int32 // 盒子 存放可购买的物品
)
maxGirdNum := this.configure.GetTrollRule(comm.TrollGridCount) // 获取背包最大格子数量
maxgoods := this.configure.GetTrollRule(comm.TrollItemCount) // 获取单个物品最大上限 20个
leftGirdNum = maxGirdNum - troll.GridNum
box = make(map[int32]int32, 0)
buyBox = make(map[int32]int32, 0)
goods := this.configure.GetTrollAllGoods()
for _, v := range goods {
for {
if leftGirdNum > 0 && troll.Shop[v.Id] < v.Max {
leftGirdNum--
troll.Shop[v.Id] += maxgoods
box[v.Id] += maxgoods // 加入篮子
} else {
break
}
}
// 检查该位置的格子没有补满
full := (troll.Items[v.Id] + box[v.Id]) % maxgoods
if full != 0 {
box[v.Id] += (maxgoods - full) // 格子补满
}
}
// 通过金币来校验哪些物品可以买
curGold := this.ModuleUser.QueryAttributeValue(uid, comm.ResGold)
for k, v := range box {
for i := 0; i < int(v); i++ { //0 1 2 3
curGold -= int64(price[k])
costGold -= price[k]
if curGold < 0 {
box[k] = int32(i)
costGold += price[k] // 返还之前扣的
break
}
buyBox[k]++
}
}
if len(buyBox) == 0 {
return // 没有可购买的直接返回
}
for _, v := range goods { // 计算购买后的平均价格
g := troll.Items[v.Id] * troll.Price[v.Id]
g += buyBox[v.Id] * price[v.Id]
troll.Items[v.Id] += buyBox[v.Id]
if troll.Items[v.Id] != 0 {
troll.Price[v.Id] = g / troll.Items[v.Id]
}
}
gold = costGold
// 统计格子
troll.GridNum = 0
for _, v := range troll.Items {
if v > 0 {
troll.GridNum += int32(math.Ceil(float64(v) / float64(maxgoods)))
}
}
return
}
func (this *Caravan) QueryRankList() (ranks []string, gold []int64, err error) {
var (
result []string
)
tableName := "trollRank"
if result, err = this.modelTroll.Redis.ZRevRange(tableName, 0, comm.MaxRankList).Result(); err != nil {
this.Errorln(err)
return
}
ranks = make([]string, 0)
for i := 0; i < len(result); i++ {
if _d, err := this.modelTroll.Redis.ZScore(tableName, result[i]); err == nil {
gold = append(gold, int64(_d))
ranks = append(ranks, result[i])
}
}
return
}

View File

@ -21,7 +21,7 @@ func NewGameBuzkashiMount(_buf []map[string]interface{}) (*GameBuzkashiMount, er
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
dataMap[_v.Num] = _v dataMap[_v.Id] = _v
} }
} }
return &GameBuzkashiMount{_dataList:_dataList, _dataMap:dataMap}, nil return &GameBuzkashiMount{_dataList:_dataList, _dataMap:dataMap}, nil

View File

@ -11,12 +11,17 @@ package cfg
import "errors" import "errors"
type GameBuzkashiMountData struct { type GameBuzkashiMountData struct {
Num string Id string
Name string
Intr string
Color int32
Img string
Access []int32
Model string
Point string
Stime int32 Stime int32
Etime int32 Etime int32
Hp int32 Hp int32
Model string
Point string
Moderate int32 Moderate int32
Sprint int32 Sprint int32
Acceleration int32 Acceleration int32
@ -30,12 +35,30 @@ func (*GameBuzkashiMountData) GetTypeId() int32 {
} }
func (_v *GameBuzkashiMountData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameBuzkashiMountData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Num, _ok_ = _buf["num"].(string); !_ok_ { err = errors.New("num error"); return } } { var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["intr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Intr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Intr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Color"].(float64); !_ok_ { err = errors.New("Color error"); return }; _v.Color = int32(_tempNum_) }
{ var _ok_ bool; if _v.Img, _ok_ = _buf["Img"].(string); !_ok_ { err = errors.New("Img error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["access"].([]interface{}); !_ok_ { err = errors.New("access error"); return }
_v.Access = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Access = append(_v.Access, _list_v_)
}
}
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stime"].(float64); !_ok_ { err = errors.New("stime error"); return }; _v.Stime = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stime"].(float64); !_ok_ { err = errors.New("stime error"); return }; _v.Stime = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["etime"].(float64); !_ok_ { err = errors.New("etime error"); return }; _v.Etime = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["etime"].(float64); !_ok_ { err = errors.New("etime error"); return }; _v.Etime = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = int32(_tempNum_) }
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["moderate"].(float64); !_ok_ { err = errors.New("moderate error"); return }; _v.Moderate = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["moderate"].(float64); !_ok_ { err = errors.New("moderate error"); return }; _v.Moderate = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sprint"].(float64); !_ok_ { err = errors.New("sprint error"); return }; _v.Sprint = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sprint"].(float64); !_ok_ { err = errors.New("sprint error"); return }; _v.Sprint = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["acceleration"].(float64); !_ok_ { err = errors.New("acceleration error"); return }; _v.Acceleration = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["acceleration"].(float64); !_ok_ { err = errors.New("acceleration error"); return }; _v.Acceleration = int32(_tempNum_) }

View File

@ -13,6 +13,7 @@ import "errors"
type GameDispatch_BattleData struct { type GameDispatch_BattleData struct {
Id int32 Id int32
Model string Model string
IdleAni string
Weight int32 Weight int32
Startstory int32 Startstory int32
Rejectstory int32 Rejectstory int32
@ -37,6 +38,7 @@ func (*GameDispatch_BattleData) GetTypeId() int32 {
func (_v *GameDispatch_BattleData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameDispatch_BattleData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } } { var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.IdleAni, _ok_ = _buf["idleAni"].(string); !_ok_ { err = errors.New("idleAni error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["startstory"].(float64); !_ok_ { err = errors.New("startstory error"); return }; _v.Startstory = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["startstory"].(float64); !_ok_ { err = errors.New("startstory error"); return }; _v.Startstory = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rejectstory"].(float64); !_ok_ { err = errors.New("rejectstory error"); return }; _v.Rejectstory = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rejectstory"].(float64); !_ok_ { err = errors.New("rejectstory error"); return }; _v.Rejectstory = int32(_tempNum_) }

View File

@ -13,6 +13,9 @@ import "errors"
type GameNewSmithyData struct { type GameNewSmithyData struct {
Id int32 Id int32
Type int32 Type int32
Type2Png string
Type2Star int32
Type3Name string
DrawingName string DrawingName string
QualityText string QualityText string
DrawingPng string DrawingPng string
@ -36,6 +39,9 @@ func (*GameNewSmithyData) GetTypeId() int32 {
func (_v *GameNewSmithyData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameNewSmithyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; if _v.Type2Png, _ok_ = _buf["type2_png"].(string); !_ok_ { err = errors.New("type2_png error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type2_star"].(float64); !_ok_ { err = errors.New("type2_star error"); return }; _v.Type2Star = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["type3_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Type3Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Type3Name, _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["drawing_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.DrawingName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.DrawingName, _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["drawing_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.DrawingName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.DrawingName, _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["quality_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.QualityText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.QualityText, _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["quality_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.QualityText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.QualityText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.DrawingPng, _ok_ = _buf["drawing_png"].(string); !_ok_ { err = errors.New("drawing_png error"); return } } { var _ok_ bool; if _v.DrawingPng, _ok_ = _buf["drawing_png"].(string); !_ok_ { err = errors.New("drawing_png error"); return } }

View File

@ -16,7 +16,9 @@ type GamePandamasMrylData struct {
Icon string Icon string
Des string Des string
Ticks int32 Ticks int32
Time int32
Ani string Ani string
Energy string
P int32 P int32
BeforeTraining int32 BeforeTraining int32
AfterTraining int32 AfterTraining int32
@ -35,7 +37,9 @@ func (_v *GamePandamasMrylData)Deserialize(_buf map[string]interface{}) (err err
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } } { var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["des"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Des error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Des, _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["des"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Des error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Des, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ticks"].(float64); !_ok_ { err = errors.New("ticks error"); return }; _v.Ticks = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ticks"].(float64); !_ok_ { err = errors.New("ticks error"); return }; _v.Ticks = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; if _v.Ani, _ok_ = _buf["ani"].(string); !_ok_ { err = errors.New("ani error"); return } } { var _ok_ bool; if _v.Ani, _ok_ = _buf["ani"].(string); !_ok_ { err = errors.New("ani error"); return } }
{ var _ok_ bool; if _v.Energy, _ok_ = _buf["energy"].(string); !_ok_ { err = errors.New("energy error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["p"].(float64); !_ok_ { err = errors.New("p error"); return }; _v.P = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["p"].(float64); !_ok_ { err = errors.New("p error"); return }; _v.P = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["before_training"].(float64); !_ok_ { err = errors.New("before_training error"); return }; _v.BeforeTraining = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["before_training"].(float64); !_ok_ { err = errors.New("before_training error"); return }; _v.BeforeTraining = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["after_training"].(float64); !_ok_ { err = errors.New("after_training error"); return }; _v.AfterTraining = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["after_training"].(float64); !_ok_ { err = errors.New("after_training error"); return }; _v.AfterTraining = int32(_tempNum_) }

View File

@ -224,6 +224,7 @@ type GameGlobalData struct {
BuzkashiResurrection int32 BuzkashiResurrection int32
FavorabilityAttenuation []*Gamekv FavorabilityAttenuation []*Gamekv
Mounts string Mounts string
BuzkashiRecentPlayer int32
} }
const TypeId_GameGlobalData = 477542761 const TypeId_GameGlobalData = 477542761
@ -927,6 +928,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
} }
{ var _ok_ bool; if _v.Mounts, _ok_ = _buf["mounts"].(string); !_ok_ { err = errors.New("mounts error"); return } } { var _ok_ bool; if _v.Mounts, _ok_ = _buf["mounts"].(string); !_ok_ { err = errors.New("mounts error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["buzkashi_recentPlayer"].(float64); !_ok_ { err = errors.New("buzkashi_recentPlayer error"); return }; _v.BuzkashiRecentPlayer = int32(_tempNum_) }
return return
} }

View File

@ -21,6 +21,7 @@ type GameItemData struct {
Time int32 Time int32
Reddottype int32 Reddottype int32
Effects string Effects string
ModelName string
BoxId int32 BoxId int32
SynthetizeNum int32 SynthetizeNum int32
Access []int32 Access []int32
@ -50,6 +51,7 @@ func (_v *GameItemData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reddottype"].(float64); !_ok_ { err = errors.New("reddottype error"); return }; _v.Reddottype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reddottype"].(float64); !_ok_ { err = errors.New("reddottype error"); return }; _v.Reddottype = int32(_tempNum_) }
{ var _ok_ bool; if _v.Effects, _ok_ = _buf["effects"].(string); !_ok_ { err = errors.New("effects error"); return } } { var _ok_ bool; if _v.Effects, _ok_ = _buf["effects"].(string); !_ok_ { err = errors.New("effects error"); return } }
{ var _ok_ bool; if _v.ModelName, _ok_ = _buf["modelName"].(string); !_ok_ { err = errors.New("modelName error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["box_id"].(float64); !_ok_ { err = errors.New("box_id error"); return }; _v.BoxId = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["box_id"].(float64); !_ok_ { err = errors.New("box_id error"); return }; _v.BoxId = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["synthetize_num"].(float64); !_ok_ { err = errors.New("synthetize_num error"); return }; _v.SynthetizeNum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["synthetize_num"].(float64); !_ok_ { err = errors.New("synthetize_num error"); return }; _v.SynthetizeNum = int32(_tempNum_) }
{ {