This commit is contained in:
liwei1dao 2022-09-01 14:42:57 +08:00
commit 6b4dae65e6
73 changed files with 32345 additions and 26292 deletions

View File

@ -43,7 +43,7 @@
"access": 0,
"star": 2,
"race": 0,
"img": "",
"img": "hy_icon_jltb",
"ico": "",
"intr": "友情点用于友情商店"
}

View File

@ -0,0 +1,42 @@
[
{
"id": 101,
"typ": 0,
"name": "商店",
"txt": "这是商店",
"icon": "",
"goto": "shop"
},
{
"id": 102,
"typ": 0,
"name": "商店",
"txt": "这是商店",
"icon": "",
"goto": "shop"
},
{
"id": 103,
"typ": 0,
"name": "商店",
"txt": "这是商店",
"icon": "",
"goto": "shop"
},
{
"id": 104,
"typ": 0,
"name": "商店",
"txt": "这是商店",
"icon": "",
"goto": "shop"
},
{
"id": 105,
"typ": 0,
"name": "商店",
"txt": "这是商店",
"icon": "",
"goto": "shop"
}
]

View File

@ -548,5 +548,370 @@
"n": 5
}
]
},
{
"index": "bag",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "heroequip",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "heroup",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "herostrength",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "manual",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "rolestrategy",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "recruit",
"var": [
{
"a": "item",
"t": "30001",
"n": 1
}
]
},
{
"index": "specialrecruit",
"var": [
{
"a": "item",
"t": "30002",
"n": 1
},
{
"a": "item",
"t": "30003",
"n": 1
},
{
"a": "item",
"t": "30004",
"n": 1
},
{
"a": "item",
"t": "30005",
"n": 1
}
]
},
{
"index": "bagequip",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "mainworld",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "mainbarrier",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "friendsystemwin",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "friendapply",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "friend",
"n": 1
}
]
},
{
"index": "friendadd",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "friend",
"n": 1
}
]
},
{
"index": "blacklist",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "friend",
"n": 1
}
]
},
{
"index": "friendassist",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "friend",
"n": 1
}
]
},
{
"index": "pagoda",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "bagfragment",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "store",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "storediamond",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "storepvp",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "storepve",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "storeunion",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
},
{
"index": "roledetail",
"var": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
]
}
]

56
bin/json/game_link.json Normal file
View File

@ -0,0 +1,56 @@
[
{
"id": "1",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
},
{
"id": "2",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
},
{
"id": "3",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
},
{
"id": "4",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
},
{
"id": "5",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
},
{
"id": "6",
"uistore": "store",
"scene": "",
"des": "商店",
"option": 1,
"preid": 0,
"presid": 0
}
]

17627
bin/json/game_mainline.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
"key": "mainline_name_10001",
"text": "Chapter 1"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj01",
"title": {
"key": "mainline_title_10001",
@ -51,7 +51,7 @@
"key": "mainline_name_10002",
"text": "Chapter 2"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj02",
"title": {
"key": "mainline_title_10002",
@ -97,7 +97,7 @@
"key": "mainline_name_10003",
"text": "Chapter 3"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj03",
"title": {
"key": "mainline_title_10003",
@ -143,7 +143,7 @@
"key": "mainline_name_10004",
"text": "Chapter 4"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj04",
"title": {
"key": "mainline_title_10004",
@ -189,7 +189,7 @@
"key": "mainline_name_10005",
"text": "Chapter 5"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj01",
"title": {
"key": "mainline_title_10005",
@ -235,7 +235,7 @@
"key": "mainline_name_10006",
"text": "Chapter 6"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj02",
"title": {
"key": "mainline_title_10006",
@ -281,7 +281,7 @@
"key": "mainline_name_10007",
"text": "Chapter 7"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj03",
"title": {
"key": "mainline_title_10007",
@ -327,7 +327,7 @@
"key": "mainline_name_10008",
"text": "Chapter 8"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj04",
"title": {
"key": "mainline_title_10008",
@ -373,7 +373,7 @@
"key": "mainline_name_10009",
"text": "Chapter 9"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj01",
"title": {
"key": "mainline_title_10009",
@ -419,7 +419,7 @@
"key": "mainline_name_10010",
"text": "Chapter 10"
},
"Intensity": "mainline_data_easy",
"Intensity": 1,
"map": "zx_ddt_zj02",
"title": {
"key": "mainline_title_10010",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1010,7 +1010,7 @@
{
"id": "35001",
"preson": "35001",
"presonshow": "",
"presonshow": "35001",
"ico": "tx_js_35001",
"fight": "ytx_js_35001",
"img": "sbkp_js_35001",
@ -1367,7 +1367,7 @@
{
"id": "44005",
"preson": "44005",
"presonshow": "",
"presonshow": "44005",
"ico": "tx_js_44005",
"fight": "ytx_js_44005",
"img": "sbkp_js_44005",
@ -1388,7 +1388,7 @@
{
"id": "44006",
"preson": "44006",
"presonshow": "",
"presonshow": "44006",
"ico": "tx_hhjs_35002",
"fight": "ytx_js_44006",
"img": "sbkp_js_35002",

File diff suppressed because it is too large Load Diff

View File

@ -38,20 +38,5 @@
"msgid": "chat.send",
"routrules": "~/worker",
"describe": "聊天消息发送"
},
{
"msgid": "forum.like",
"routrules": "~/worker",
"describe": "论坛点赞入口"
},
{
"msgid": "moonfantasy.trigger",
"routrules": "~/worker",
"describe": "月之秘境触发接口"
},
{
"msgid": "moonfantasy.dare",
"routrules": "~/worker",
"describe": "月之秘境参战接口"
}
]

View File

@ -341,7 +341,7 @@
"key": "num_1014",
"text": "藏书馆"
},
"main": "{\"lv\": 0}",
"main": "{\"lv\": 999}",
"optional": "",
"wkqbx": 0,
"kqbx": 0,
@ -405,7 +405,7 @@
"key": "num_1018",
"text": "戈伯铁匠铺"
},
"main": "{\"lv\": 999}",
"main": "{\"lv\": 0}",
"optional": "",
"wkqbx": 0,
"kqbx": 0,

View File

@ -20,20 +20,64 @@
101
],
"sidequest": [
1002
1002,
1003
]
},
{
"id": 100102,
"group": 1,
"type": 2,
"preTid": 100100,
"preTid": 100101,
"condition": [
101,
107
],
"sidequest": [
1003
1004
]
},
{
"id": 100103,
"group": 1,
"type": 2,
"preTid": 100102,
"condition": [
101,
107
],
"sidequest": [
1005
]
},
{
"id": 100104,
"group": 1,
"type": 2,
"preTid": 100103,
"condition": [
101,
107
],
"sidequest": [
1006,
1007,
1008,
1009,
1010
]
},
{
"id": 100105,
"group": 1,
"type": 2,
"preTid": 100104,
"condition": [
101,
107
],
"sidequest": [
1011
]
}
]

View File

@ -10,21 +10,13 @@
{
"id": 10002,
"num": 2,
"preTid": 107,
"needItem": [
0
]
},
{
"id": 10003,
"num": 3,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 20001,
"id": 10003,
"num": 1,
"preTid": 0,
"needItem": [
@ -32,7 +24,71 @@
]
},
{
"id": 20002,
"id": 10004,
"num": 1,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 10005,
"num": 2,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 10006,
"num": 1,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 10007,
"num": 2,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 10008,
"num": 3,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 10009,
"num": 1,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 100010,
"num": 2,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 100011,
"num": 1,
"preTid": 0,
"needItem": [
0
]
},
{
"id": 100012,
"num": 2,
"preTid": 0,
"needItem": [

View File

@ -1,6 +1,7 @@
[
{
"id": 101,
"datatype": 1,
"type": 1,
"data1": 25001,
"data2": 0,
@ -8,6 +9,7 @@
},
{
"id": 102,
"datatype": 1,
"type": 1,
"data1": 25001,
"data2": 0,
@ -15,6 +17,7 @@
},
{
"id": 103,
"datatype": 1,
"type": 3,
"data1": 2,
"data2": 0,
@ -22,6 +25,7 @@
},
{
"id": 104,
"datatype": 1,
"type": 4,
"data1": 25001,
"data2": 20,
@ -29,6 +33,7 @@
},
{
"id": 105,
"datatype": 1,
"type": 4,
"data1": 25001,
"data2": 10,
@ -36,6 +41,7 @@
},
{
"id": 106,
"datatype": 1,
"type": 5,
"data1": 25001,
"data2": 2,
@ -43,6 +49,7 @@
},
{
"id": 107,
"datatype": 1,
"type": 1,
"data1": 25001,
"data2": 0,
@ -50,6 +57,7 @@
},
{
"id": 108,
"datatype": 1,
"type": 6,
"data1": 25001,
"data2": 5,

View File

@ -3,13 +3,13 @@
"id": 1001,
"objType": 1,
"point": "model_01",
"storyBegin": 4,
"storyEnd": 0,
"storyBegin": 1,
"chooseId": [
10001,
10002,
10003
10002
],
"storyEnd": 2,
"nextTid": 100101,
"reward": [
{
"a": "attr",
@ -23,19 +23,18 @@
}
],
"CD": 0,
"nextTid": 100101,
"endTid": -1
},
{
"id": 1002,
"objType": 2,
"point": "icon_01",
"storyBegin": 6,
"storyEnd": 9,
"objType": 1,
"point": "model_02",
"storyBegin": 4,
"chooseId": [
20001,
20002
10003
],
"storyEnd": 6,
"nextTid": 0,
"reward": [
{
"a": "attr",
@ -49,16 +48,16 @@
}
],
"CD": 0,
"nextTid": 100102,
"endTid": 105
"endTid": -1
},
{
"id": 1003,
"objType": 1,
"point": "model_02",
"storyBegin": 7,
"storyEnd": 0,
"point": "model_03",
"storyBegin": 3,
"chooseId": [],
"storyEnd": 0,
"nextTid": -1,
"reward": [
{
"a": "attr",
@ -72,7 +71,203 @@
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1004,
"objType": 2,
"point": "icon_01",
"storyBegin": 7,
"chooseId": [
10004,
10005
],
"storyEnd": 0,
"nextTid": 100103,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1005,
"objType": 2,
"point": "icon_02",
"storyBegin": 9,
"chooseId": [
10006,
10007,
10008
],
"storyEnd": 0,
"nextTid": 100104,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1006,
"objType": 1,
"point": "model_01",
"storyBegin": 15,
"chooseId": [
10009,
100010
],
"storyEnd": 0,
"nextTid": 100105,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1007,
"objType": 1,
"point": "model_02",
"storyBegin": 11,
"chooseId": [],
"storyEnd": 0,
"nextTid": -1,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1008,
"objType": 1,
"point": "model_04",
"storyBegin": 12,
"chooseId": [],
"storyEnd": 0,
"nextTid": -1,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1009,
"objType": 1,
"point": "model_05",
"storyBegin": 13,
"chooseId": [],
"storyEnd": 0,
"nextTid": -1,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1010,
"objType": 1,
"point": "model_06",
"storyBegin": 14,
"chooseId": [],
"storyEnd": 0,
"nextTid": -1,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
},
{
"id": 1011,
"objType": 2,
"point": "icon_03",
"storyBegin": 8,
"chooseId": [
100011,
100012
],
"storyEnd": 0,
"nextTid": 0,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 10
},
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"CD": 0,
"endTid": -1
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -855,6 +855,30 @@
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001124,
"Name": {
"key": "skill_buff_390001124",
"text": "无法复活"
},
"Desc": {
"key": "skill_buffdes_390001124",
"text": "无法复活"
},
"BuffType": 0,
"EffectArgu": [],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001201,
"Name": {
@ -1096,7 +1120,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1122,7 +1146,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1148,7 +1172,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1174,7 +1198,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1200,7 +1224,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1226,7 +1250,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1252,7 +1276,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1278,7 +1302,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1304,7 +1328,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1330,7 +1354,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1356,7 +1380,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1382,7 +1406,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1408,7 +1432,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1434,7 +1458,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1460,7 +1484,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1486,7 +1510,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1512,7 +1536,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1538,7 +1562,7 @@
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1564,7 +1588,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1590,7 +1614,7 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
@ -1616,6 +1640,58 @@
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001328,
"Name": {
"key": "skill_buff_390001328",
"text": "队长技-防御提升"
},
"Desc": {
"key": "skill_buffdes_390001328",
"text": "防御提升40%"
},
"BuffType": 2,
"EffectArgu": [
300
],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": false,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "",
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001401,
"Name": {
"key": "skill_buff_390001401",
"text": "中毒"
},
"Desc": {
"key": "skill_buffdes_390001401",
"text": "回合开始时受到伤害伤害为最大生命值4%"
},
"BuffType": 31,
"EffectArgu": [
400
],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"OverlayTimes": 1,
"SameID": false,

View File

@ -2,8 +2,8 @@
{
"Id": 490067001,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -14,10 +14,8 @@
{
"Id": 490068001,
"When": "RouFro",
"Where": "3",
"AddCon": [
"hpproless=500"
],
"TargetCheck": 3,
"AddCon": "Hpproless=500,Target=3",
"PasPr": 500,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -28,8 +26,8 @@
{
"Id": 425004311,
"When": "RouFro",
"Where": "4",
"AddCon": [],
"TargetCheck": 4,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -41,8 +39,8 @@
{
"Id": 435002211,
"When": "SkillStart",
"Where": "2",
"AddCon": [],
"TargetCheck": 2,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -53,10 +51,8 @@
{
"Id": 434006211,
"When": "ImpEff",
"Where": "2",
"AddCon": [
"EffID=390002003"
],
"TargetCheck": 2,
"AddCon": "EffID=390002003",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -67,10 +63,8 @@
{
"Id": 425001211,
"When": "RouEnd",
"Where": "3",
"AddCon": [
"cd=4"
],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -81,10 +75,8 @@
{
"Id": 425001212,
"When": "SufEnd",
"Where": "3",
"AddCon": [
"EffID=390001209"
],
"TargetCheck": 3,
"AddCon": "EffID=390001209",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -95,8 +87,8 @@
{
"Id": 425001213,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -107,10 +99,8 @@
{
"Id": 425001221,
"When": "RouEnd",
"Where": "3",
"AddCon": [
"cd=4"
],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -121,10 +111,8 @@
{
"Id": 425001222,
"When": "SufEnd",
"Where": "3",
"AddCon": [
"EffID=390001209"
],
"TargetCheck": 3,
"AddCon": "EffID=390001209",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -135,8 +123,8 @@
{
"Id": 425001223,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -147,10 +135,8 @@
{
"Id": 425001231,
"When": "RouEnd",
"Where": "3",
"AddCon": [
"cd=4"
],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -161,10 +147,8 @@
{
"Id": 425001232,
"When": "SufEnd",
"Where": "3",
"AddCon": [
"EffID=390001209"
],
"TargetCheck": 3,
"AddCon": "EffID=390001209",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -175,8 +159,8 @@
{
"Id": 425001233,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -187,10 +171,8 @@
{
"Id": 425001241,
"When": "RouEnd",
"Where": "3",
"AddCon": [
"cd=4"
],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -201,10 +183,8 @@
{
"Id": 425001242,
"When": "SufEnd",
"Where": "3",
"AddCon": [
"EffID=390001209"
],
"TargetCheck": 3,
"AddCon": "EffID=390001209",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -215,8 +195,8 @@
{
"Id": 425001243,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -227,10 +207,8 @@
{
"Id": 425001251,
"When": "RouEnd",
"Where": "3",
"AddCon": [
"cd=3"
],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -241,10 +219,8 @@
{
"Id": 425001252,
"When": "SufEnd",
"Where": "3",
"AddCon": [
"EffID=390001209"
],
"TargetCheck": 3,
"AddCon": "EffID=390001209",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -255,8 +231,8 @@
{
"Id": 425001253,
"When": "RouFro",
"Where": "3",
"AddCon": [],
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
@ -267,11 +243,8 @@
{
"Id": 444005311,
"When": "RemoveBuffEnd",
"Where": "2",
"AddCon": [
"EffType=0",
"Result=1"
],
"TargetCheck": 2,
"AddCon": "EffType=0,Result=1",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 10,
@ -281,19 +254,123 @@
},
{
"Id": 435001211,
"When": "RemoveBuffEnd",
"Where": "3",
"AddCon": [
"EffType=4",
"Result=1"
],
"When": "AtkEnd",
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 10,
"MaxEmitTimes": 1,
"Callback": [
935001213,
935001214,
935001215
224004212
]
},
{
"Id": 435001212,
"When": "AtkEnd",
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
924004212
]
},
{
"Id": 444006211,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
244006212,
244006213
]
},
{
"Id": 444006311,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "SkillID=944006313",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
944006318
]
},
{
"Id": 444006321,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "SkillID=944006323",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
944006328
]
},
{
"Id": 444006331,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "SkillID=944006333",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
944006338
]
},
{
"Id": 444006341,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "SkillID=944006343",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
944006348
]
},
{
"Id": 444006351,
"When": "Kill",
"TargetCheck": 3,
"AddCon": "SkillID=944006353",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
944006358
]
},
{
"Id": 415005211,
"When": "TreEnd",
"TargetCheck": 3,
"AddCon": "",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
215005212
]
},
{
"Id": 415005212,
"When": "TreStart",
"TargetCheck": 3,
"AddCon": "BeyondHp=1000",
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"Callback": [
915005214
]
}
]

View File

@ -59,7 +59,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 1
},
{
"id": 1002,
@ -121,7 +127,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 2
},
{
"id": 1003,
@ -183,7 +195,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 3
},
{
"id": 1004,
@ -245,7 +263,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 4
},
{
"id": 1005,
@ -307,7 +331,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 5
},
{
"id": 1006,
@ -369,7 +399,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 6
},
{
"id": 1007,
@ -431,7 +467,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 6
},
{
"id": 1008,
@ -493,7 +535,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 6
},
{
"id": 1009,
@ -555,7 +603,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 6
},
{
"id": 1010,
@ -606,7 +660,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1011",
"text": "战斗装备"
},
"ico": "tjp_zb_03",
"color": 6
},
{
"id": 2001,
@ -668,7 +728,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 1
},
{
"id": 2002,
@ -730,7 +796,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 2
},
{
"id": 2003,
@ -792,7 +864,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 3
},
{
"id": 2004,
@ -854,7 +932,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 4
},
{
"id": 2005,
@ -916,7 +1000,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 5
},
{
"id": 2006,
@ -978,7 +1068,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 6
},
{
"id": 2007,
@ -1040,7 +1136,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 6
},
{
"id": 2008,
@ -1102,7 +1204,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 6
},
{
"id": 2009,
@ -1164,7 +1272,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 6
},
{
"id": 2010,
@ -1215,7 +1329,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1012",
"text": "辅助装备"
},
"ico": "tjp_zb_01",
"color": 6
},
{
"id": 3001,
@ -1277,7 +1397,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 1
},
{
"id": 3002,
@ -1339,7 +1465,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 2
},
{
"id": 3003,
@ -1401,7 +1533,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 3
},
{
"id": 3004,
@ -1463,7 +1601,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 4
},
{
"id": 3005,
@ -1525,7 +1669,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 5
},
{
"id": 3006,
@ -1587,7 +1737,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 6
},
{
"id": 3007,
@ -1649,7 +1805,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 6
},
{
"id": 3008,
@ -1711,7 +1873,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 6
},
{
"id": 3009,
@ -1773,7 +1941,13 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 6
},
{
"id": 3010,
@ -1824,6 +1998,12 @@
}
],
"desk": "",
"shelves": ""
"shelves": "",
"name": {
"key": "smithy_name_1013",
"text": "特殊装备"
},
"ico": "tjp_zb_02",
"color": 6
}
]

View File

@ -237,483 +237,5 @@
"floors": -1,
"time": 300,
"desk": ""
},
{
"id": 11,
"star": 11,
"starshow": {
"key": "smithy_name_1001",
"text": "木质"
},
"before": 10,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 5
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 500,
"desk": ""
},
{
"id": 12,
"star": 12,
"starshow": {
"key": "smithy_name_1002",
"text": "石质"
},
"before": 11,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 10
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 500,
"desk": ""
},
{
"id": 13,
"star": 13,
"starshow": {
"key": "smithy_name_1003",
"text": "铁质"
},
"before": 12,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 15
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 500,
"desk": ""
},
{
"id": 14,
"star": 14,
"starshow": {
"key": "smithy_name_1004",
"text": "钢质"
},
"before": 13,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 20
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 2,
"time": 500,
"desk": ""
},
{
"id": 15,
"star": 15,
"starshow": {
"key": "smithy_name_1005",
"text": "铂金质"
},
"before": 14,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 25
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 3,
"time": 500,
"desk": ""
},
{
"id": 16,
"star": 16,
"starshow": {
"key": "smithy_name_1006",
"text": "钻石质"
},
"before": 15,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 30
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 4,
"time": 500,
"desk": ""
},
{
"id": 17,
"star": 17,
"starshow": {
"key": "smithy_name_1007",
"text": "星耀石质"
},
"before": 16,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 35
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 500,
"desk": ""
},
{
"id": 18,
"star": 18,
"starshow": {
"key": "smithy_name_1008",
"text": "星陨石质"
},
"before": 17,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 40
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 500,
"desk": ""
},
{
"id": 19,
"star": 19,
"starshow": {
"key": "smithy_name_1009",
"text": "星核质"
},
"before": 18,
"starupneed": [
{
"a": "item",
"t": "50002",
"n": 45
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 500,
"desk": ""
},
{
"id": 20,
"star": 20,
"starshow": {
"key": "smithy_name_1010",
"text": "宇宙粒子质"
},
"before": 19,
"starupneed": [],
"probability": 100,
"floors": -1,
"time": 500,
"desk": ""
},
{
"id": 21,
"star": 21,
"starshow": {
"key": "smithy_name_1001",
"text": "木质"
},
"before": 20,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 5
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 1000,
"desk": ""
},
{
"id": 22,
"star": 22,
"starshow": {
"key": "smithy_name_1002",
"text": "石质"
},
"before": 21,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 10
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 1000,
"desk": ""
},
{
"id": 23,
"star": 23,
"starshow": {
"key": "smithy_name_1003",
"text": "铁质"
},
"before": 22,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 15
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 1,
"time": 1000,
"desk": ""
},
{
"id": 24,
"star": 24,
"starshow": {
"key": "smithy_name_1004",
"text": "钢质"
},
"before": 23,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 20
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 2,
"time": 1000,
"desk": ""
},
{
"id": 25,
"star": 25,
"starshow": {
"key": "smithy_name_1005",
"text": "铂金质"
},
"before": 24,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 25
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 3,
"time": 1000,
"desk": ""
},
{
"id": 26,
"star": 26,
"starshow": {
"key": "smithy_name_1006",
"text": "钻石质"
},
"before": 25,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 30
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 4,
"time": 1000,
"desk": ""
},
{
"id": 27,
"star": 27,
"starshow": {
"key": "smithy_name_1007",
"text": "星耀石质"
},
"before": 26,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 35
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 1000,
"desk": ""
},
{
"id": 28,
"star": 28,
"starshow": {
"key": "smithy_name_1008",
"text": "星陨石质"
},
"before": 27,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 40
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 1000,
"desk": ""
},
{
"id": 29,
"star": 29,
"starshow": {
"key": "smithy_name_1009",
"text": "星核质"
},
"before": 28,
"starupneed": [
{
"a": "item",
"t": "50003",
"n": 45
},
{
"a": "item",
"t": "10013",
"n": 1
}
],
"probability": 100,
"floors": 5,
"time": 1000,
"desk": ""
},
{
"id": 30,
"star": 30,
"starshow": {
"key": "smithy_name_1010",
"text": "宇宙粒子质"
},
"before": 29,
"starupneed": [],
"probability": 100,
"floors": -1,
"time": 1000,
"desk": ""
}
]

View File

@ -0,0 +1,66 @@
[
{
"id": 101,
"type": 1,
"txt": {
"key": "smithy_txt_1001",
"text": "快给我升级"
}
},
{
"id": 102,
"type": 1,
"txt": {
"key": "smithy_txt_1002",
"text": "红伞伞啊白杆杆"
}
},
{
"id": 201,
"type": 2,
"txt": {
"key": "smithy_txt_1003",
"text": "找我下单"
}
},
{
"id": 202,
"type": 2,
"txt": {
"key": "smithy_txt_1004",
"text": "欢迎下次再来啊"
}
},
{
"id": 301,
"type": 3,
"txt": {
"key": "smithy_txt_1005",
"text": "哼哧哼哧"
}
},
{
"id": 302,
"type": 3,
"txt": {
"key": "smithy_txt_1006",
"text": "点我领装备咯"
}
},
{
"id": 401,
"type": 4,
"txt": {
"key": "smithy_txt_1007",
"text": "我倒是有办法制造更高级的装备,可你得先升级铸造台,否则我肯定锤坏它"
}
},
{
"id": 402,
"type": 4,
"txt": {
"key": "smithy_txt_1008",
"text": "我可是维京人中技术最高超的铁匠,童叟无欺"
}
}
]

File diff suppressed because it is too large Load Diff

View File

@ -218,8 +218,8 @@ const (
Rtype9 TaskType = 9 //连续登陆xx天
Rtype10 TaskType = 10 //拥有xx个好友
Rtype11 TaskType = 11 //赠送X次友情点
Rtask12 TaskType = 12 //使用好友助战英雄xx次
Rtask13 TaskType = 13 //更换X次助战英雄
Rtype12 TaskType = 12 //使用好友助战英雄xx次
Rtype13 TaskType = 13 //更换X次助战英雄
Rtype14 TaskType = 14 //累计xx次普通招募
Rtype15 TaskType = 15 //累计xx次阵营招募
Rtype16 TaskType = 16 //招募获得xx品质英雄xx个
@ -279,9 +279,9 @@ const (
)
const (
MailLineEasy string = "mainline_data_easy" // 简单
MailLineHard string = "mainline_data_hard" // 困难
MailLinePurgatory string = "mainline_data_purgatory" // 炼狱
MailLineEasy int32 = 1 // 简单
MailLineHard int32 = 2 // 困难
MailLinePurgatory int32 = 3 // 炼狱
)
const (
@ -306,3 +306,7 @@ const (
const (
MaxRankList = 50
)
const (
MaxMainlineIntensity = 3 // 最大难度
)

View File

@ -91,8 +91,6 @@ type (
IMainline interface {
// 修改章节信息
ModifyMainlineData(uid string, objId string, data interface{}) (code pb.ErrorCode)
// 检查能不能挑战该关卡
CheckChallengeChapter(storyObjId string, uid string, zhangjieID int32) (code pb.ErrorCode)
/// 查询章节ID
GetUsermainLineData(uid string) (mainlineId int32)
}

8
go.mod
View File

@ -41,11 +41,16 @@ require (
gopkg.in/yaml.v2 v2.4.0
)
require github.com/kr/fs v0.1.0 // indirect
require (
github.com/jtolds/gls v4.20.0+incompatible // indirect
github.com/kr/fs v0.1.0 // indirect
github.com/smartystreets/assertions v1.2.0 // indirect
)
require (
fyne.io/systray v1.10.1-0.20220621085403-9a2652634e93 // indirect
github.com/PuerkitoBio/goquery v1.8.0 // indirect
github.com/agiledragon/gomonkey/v2 v2.8.0
github.com/akutz/memconn v0.1.0 // indirect
github.com/andybalholm/cascadia v1.3.1 // indirect
github.com/apache/thrift v0.16.0 // indirect
@ -136,6 +141,7 @@ require (
github.com/samuel/go-zookeeper v0.0.0-20201211165307-7117e9ea2414 // indirect
github.com/shirou/gopsutil/v3 v3.22.2 // indirect
github.com/smallnest/quick v0.0.0-20220103065406-780def6371e6 // indirect
github.com/smartystreets/goconvey v1.7.2
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/afero v1.6.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect

6
go.sum
View File

@ -60,6 +60,8 @@ github.com/Pallinder/go-randomdata v1.2.0 h1:DZ41wBchNRb/0GfsePLiSwb0PHZmT67XY00
github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y=
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
github.com/agiledragon/gomonkey/v2 v2.8.0 h1:u2K2nNGyk0ippzklz1CWalllEB9ptD+DtSXeCX5O000=
github.com/agiledragon/gomonkey/v2 v2.8.0/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY=
github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A=
github.com/akutz/memconn v0.1.0/go.mod h1:Jo8rI7m0NieZyLI5e2CDlRdRqRRB4S7Xp77ukDjH+Fw=
@ -678,9 +680,13 @@ github.com/smallnest/rpcx v1.7.4 h1:u6ADk/Ep8BqtAoJZO7LbniWsP+nqeAtcbaPm2D4eOXg=
github.com/smallnest/rpcx v1.7.4/go.mod h1:TSciUoPlm8MYxnC7ErCz5ZymOFxOTbhN9cRgEI6Degs=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=

View File

@ -322,7 +322,12 @@ func (this *configureComp) GetHeroSkillMaxLvConfig(skillId uint32) int32 {
if v, err := this.GetConfigure(game_skillatk); err == nil {
if configure, ok := v.(*cfg.GameSkillAtk); ok {
return configure.Get(int32(skillId)).MaxLV
//return configure.Get(int32(skillId)).MaxLV
for _, v1 := range configure.GetDataList() {
if v1.Id == int32(skillId) {
return v1.MaxLV
}
}
}
}

View File

@ -36,8 +36,9 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
}
return
}
} else {
log.Errorf("get game_vikingboss conf err:%v", err)
}
log.Errorf("get game_viking conf err:%v", err)
return
})
err = this.LoadConfigure(game_challenge, cfg.NewGameHuntingChallenge)

View File

@ -57,36 +57,32 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChalle
return
}
// 根据难度找对应的配置文件
if chaptConfig.Intensity == comm.MailLineEasy {
con := this.module.configure.GetMainlineEasyChapter(int32(req.MainlineId)) // 根据配置文件找
if con == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
if con.Route == 1 {
if curChapter.MainlineId == 0 { // 表示第一小关
} else if con.Previoustage != curChapter.MainlineId { // 前置关卡校验
// 分支关卡也校验一下
for _, v := range curChapter.BranchID {
if v == con.Previoustage {
break
}
}
code = pb.ErrorCode_MainlinePreNotFound
}
} else if con.Route == 2 { //分支
bBranch = true
// 只需要校验小关ID 是不是大于当前ID就可以
//if curChapter.MainlineId < int32(req.MainlineId) { //必须大于前置关卡才可以挑战
// code = pb.ErrorCode_MainlineIDFailed
// return
//}
}
res = append(res, con.Award...)
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), curChapter.Intensity)
if node == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if node.Route == 1 {
if node.Previoustage != curChapter.MainlineId {
// 分支关卡也校验一下
for _, v := range curChapter.BranchID {
if v == node.Previoustage {
break
}
}
code = pb.ErrorCode_MainlinePreNotFound
}
} else if node.Route == 2 { //分支
bBranch = true
// 只需要校验小关ID 是不是大于当前ID就可以
//if curChapter.MainlineId < int32(req.MainlineId) { //必须大于前置关卡才可以挑战
// code = pb.ErrorCode_MainlineIDFailed
// return
//}
}
res = append(res, node.Award...)
// TODO 调用战斗逻辑
// 挑战成功
curChapter.MainlineId = int32(req.MainlineId)
@ -104,29 +100,36 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChalle
code = pb.ErrorCode_DBError
return
}
newChaptConfig := this.module.configure.GetMainlineChapter(int32(curChapter.ChapterId + 1)) // 查下一章节
if newChaptConfig != nil {
if len(newChaptConfig.Episode) <= 0 {
return
}
//mainLineID := newChaptConfig.Episode[0]
newChaptConfig := this.module.configure.GetMainlineNextConfigData(curChapter.Intensity, curChapter.ChapterId+1) // 查下一章节
if newChaptConfig != nil && newChaptConfig.Previoustage == curChapter.MainlineId {
// 如果本章节打完 则创建新的章节
if chaptConfig.Episode[len(chaptConfig.Episode)-1] == int32(req.MainlineId) {
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = curChapter.ChapterId + 1
_data.MainlineId = 0 // 第二章数据默认0
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
// 推送新的章节
session.SendMsg(string(this.module.GetType()), MainlineNewChapterPush, &pb.MainlineNewChapterPush{Data: _data})
} else { // 切换下个难度
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId+1), curChapter.Intensity)
if node == nil && curChapter.Intensity < comm.MaxMainlineIntensity { // 配置文件校验
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = curChapter.ChapterId + 1
_data.MainlineId = 0 // 第二章数据默认0
_data.ChapterId = 1 // 默认第一章节
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_data.Intensity = curChapter.Intensity + 1 // 难度+1
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
// 推送新的章节
session.SendMsg(string(this.module.GetType()), MainlineNewChapterPush, &pb.MainlineNewChapterPush{Data: _data})
session.SendMsg(string(this.module.GetType()), MainlineNewChapterPush, &pb.MainlineNewChapterPush{Data: _data})
}
}
// 发奖 (奖励数据还没配置,后续补充)
code = this.module.DispenseRes(session, res, true)
if code != pb.ErrorCode_Success {

View File

@ -34,6 +34,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.MainlineGetListR
_data.ChapterId = 1 // 默认第一章节
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)

View File

@ -2,22 +2,25 @@ package mainline
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_mainlinechapter = "game_mainlinechapter.json"
game_mainlineeasy = "game_mainlineeasy.json"
game_mainlinehard = "game_mainlinehard.json"
game_mainlinepurgatory = "game_mainlinepurgatory.json"
game_mainlinechapter = "game_mainlinechapter.json"
game_mainline = "game_mainline.json"
)
///配置管理基础组件
type configureComp struct {
modules.MCompConfigure
module *Mainline
module *Mainline
hlock sync.RWMutex
_mapMainline map[int64]*cfg.GameMainlineData
_mapMainlineNextC map[int64]*cfg.GameMainlineData // 获取下一章节的对象
}
//组件初始化接口
@ -25,18 +28,47 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Mainline)
err = this.LoadMultiConfigure(map[string]interface{}{
game_mainlinechapter: cfg.NewGameMainlineChapter,
game_mainlineeasy: cfg.NewGameMainlineEasy,
game_mainlinehard: cfg.NewGameMainlineHard,
game_mainlinepurgatory: cfg.NewGameMainlinePurgatory,
game_mainlinechapter: cfg.NewGameMainlineChapter,
})
this._mapMainline = make(map[int64]*cfg.GameMainlineData, 0)
this._mapMainlineNextC = make(map[int64]*cfg.GameMainlineData, 0)
configure.RegisterConfigure(game_mainline, cfg.NewGameMainline, this.GetMainline)
return
}
func (this *configureComp) GetMainline() {
if v, err := this.GetConfigure(game_mainline); err == nil {
if configure, ok := v.(*cfg.GameMainline); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, value := range configure.GetDataList() {
this._mapMainline[int64(value.Id<<16)+int64(value.Intensity)] = value
}
for _, value := range configure.GetDataList() {
this._mapMainlineNextC[int64(value.Intensity<<16)+int64(value.Chapter)] = value
}
return
}
} else {
log.Errorf("get game_pagoda conf err:%v", err)
}
return
}
// id + intensity
func (this *configureComp) GetMainlineConfigData(id, intensity int32) *cfg.GameMainlineData {
return this._mapMainline[int64(id<<16)+int64(intensity)]
}
// intensity + chapter
func (this *configureComp) GetMainlineNextConfigData(intensity, chapter int32) *cfg.GameMainlineData {
return this._mapMainline[int64(intensity<<16)+int64(chapter)]
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.GameMainlineChapterData) {
@ -59,69 +91,3 @@ func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.GameMainlineC
}
return
}
// 获取简单的关卡配置信息
func (this *configureComp) GetMainlineEasyChapter(id int32) (data *cfg.GameMainlineEasyData) {
if v, err := this.GetConfigure(game_mainlineeasy); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.GameMainlineEasy
ok bool
)
if configure, ok = v.(*cfg.GameMainlineEasy); !ok {
this.module.Errorf("%T no is *cfg.Game_MainlineEasyData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}
// 获取炼狱级别难度的关卡配置
func (this *configureComp) GetMainlinePurgatoryChapter(id int32) (data *cfg.GameMainlinePurgatoryData) {
if v, err := this.GetConfigure(game_mainlinepurgatory); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.GameMainlinePurgatory
ok bool
)
if configure, ok = v.(*cfg.GameMainlinePurgatory); !ok {
this.module.Errorf("%T no is *cfg.Game_MainlinePurgatoryData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}
// 获取困难的关卡配置
func (this *configureComp) GetMainlineHardChapter(id int32) (data *cfg.GameMainlineHardData) {
if v, err := this.GetConfigure(game_mainlinehard); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.GameMainlineHard
ok bool
)
if configure, ok = v.(*cfg.GameMainlineHard); !ok {
this.module.Errorf("%T no is *cfg.Game_MainlineHardData", v)
return
}
if data, ok = configure.GetDataMap()[id]; ok {
return
}
}
return
}

View File

@ -45,73 +45,6 @@ func (this *Mainline) ModifyMainlineData(uid string, objId string, data map[stri
return
}
// 校验是否能挑战该关卡
func (this *Mainline) CheckChallengeChapter(storyObjId string, uid string, zhangjieID int32, Intensity string) (code pb.ErrorCode) {
// _szData, err := this.modelMainline.getMainlineList(uid)
// if err != nil {
// code = pb.ErrorCode_DBError
// return
// }
// sort.SliceStable(_szData, func(i, j int) bool { // 排序
// return _szData[i].ChapterId > _szData[j].ChapterId
// })
// 获取当前关卡数据
curChapter := this.modelMainline.getOneChapterInfo(uid, storyObjId)
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFindChapter // 没有找到主线关卡信息
return
}
stroyId := curChapter.ChapterId
// 获取关卡难度用来取配置文件
if Intensity == comm.MailLineEasy {
configData := this.configure.GetMainlineEasyChapter(curChapter.MainlineId)
if configData != nil { // 校验章节
if configData.Chapter != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 如果这一关是路线二的话
if configData.Route == 2 && curChapter.ChapterId > stroyId { // 当前的关卡ID 大于路线2的ID 即可
return
}
// 判断下一关是不是当前传入的值
if configData.Previoustage != stroyId {
code = pb.ErrorCode_MainlineIDFailed
return
}
}
} else if Intensity == comm.MailLineHard {
configData := this.configure.GetMainlineHardChapter(curChapter.MainlineId)
if configData != nil { // 校验章节
if configData.Chapter != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 判断下一关是不是当前传入的值
if configData.Previoustage != stroyId {
code = pb.ErrorCode_MainlineIDFailed
return
}
}
} else {
configData := this.configure.GetMainlinePurgatoryChapter(curChapter.MainlineId)
if configData != nil { // 校验章节
if configData.Chapter != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 判断下一关是不是当前传入的值
if configData.Previoustage != stroyId {
code = pb.ErrorCode_MainlineIDFailed
return
}
}
}
return
}
func (this *Mainline) GetUsermainLineData(uid string) (mainlineId int32) {
_szData, err := this.modelMainline.getMainlineList(uid)

View File

@ -47,7 +47,8 @@ func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (
}
// 校验限定条件
if ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), chooseCnf.PreTid); !ok {
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), chooseCnf.PreTid); !ok {
this.moduleRtask.Error(err.Error())
code = pb.ErrorCode_RtaskCondiNoReach
return
}

View File

@ -36,6 +36,7 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
var (
frtaskArr *pb.FrtaskIds
ok bool
err error
)
if frtaskArr, ok = rtask.FrtaskIds[conf.Group]; !ok {
@ -50,7 +51,8 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
if req.RtaskSubId == 0 {
//校验前置任务和限定条件
if code, ok = this.moduleRtask.modelRtask.checkHandle(session.GetUserId(), frtaskArr.RtaskIds, conf); !ok {
if err, ok = this.moduleRtask.modelRtask.checkHandle(session.GetUserId(), frtaskArr.RtaskIds, conf); !ok {
this.moduleRtask.Error(err.Error())
code = pb.ErrorCode_RtaskCondiNoReach
return
}
@ -78,7 +80,8 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
code = this.moduleRtask.DispenseRes(session, sideConf.Reward, true)
} else {
// 校验完成条件
if ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), sideConf.EndTid); !ok {
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), sideConf.EndTid); !ok {
this.moduleRtask.Error(err.Error())
code = pb.ErrorCode_RtaskCondiNoReach
return
}

View File

@ -0,0 +1,35 @@
// 匹配类型和参数返回任务条件ID
package rtask
import cfg "go_dreamfactory/sys/configure/structs"
// 与每个参数比较
func (this *ModelRtask) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
if len(vals) != 1 {
return
}
var (
err error
paramLen int
)
if paramLen, err = verifyParam(cfg, vals...); err != nil {
return
}
if paramLen == 1 {
if vals[0] == cfg.Data1 {
condiId = cfg.Id
}
} else if paramLen == 2 {
if vals[0] == cfg.Data1 && vals[1] == cfg.Data2 {
condiId = cfg.Id
}
} else if paramLen == 3 {
if vals[0] == cfg.Data1 && vals[1] == cfg.Data2 && vals[2] == cfg.Data3 {
condiId = cfg.Id
}
}
return
}

View File

@ -45,7 +45,7 @@ func (this *configureComp) getRtaskCfg() (data *cfg.GameRdtask, err error) {
return
}
func (this *configureComp) getRtaskTypeCfg() (data *cfg.GameRdtaskCondi, err error) {
func (this *configureComp) getRtaskCondiCfg() (data *cfg.GameRdtaskCondi, err error) {
var (
v interface{}
ok bool
@ -120,7 +120,7 @@ func (this *configureComp) getRtaskSidById(id int32) *cfg.GameRdtaskSideData {
// 查询任务类型
func (this *configureComp) getRtaskTypeById(typeId int32) (data *cfg.GameRdtaskCondiData, err error) {
cfg, err := this.getRtaskTypeCfg()
cfg, err := this.getRtaskCondiCfg()
if err != nil {
return
}

94
modules/rtask/help.go Normal file
View File

@ -0,0 +1,94 @@
package rtask
import (
"fmt"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"github.com/pkg/errors"
)
func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error) {
// if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 {
// if len(vals) != 3 {
// err = errors.New(fmt.Sprintf("参数个数不一致,期望3实际是%v", len(vals)))
// return
// } else {
// n = len(vals)
// }
// }
if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 {
if len(vals) != 3 {
err = errors.New(fmt.Sprintf("参数个数不一致,期望3实际是%v", len(vals)))
return
} else {
n = len(vals)
}
}
if cfg.Data1 != 0 && cfg.Data2 != 0 {
if len(vals) != 2 {
err = errors.New(fmt.Sprintf("参数个数不一致,期望2实际是%v", len(vals)))
return
} else {
n = len(vals)
}
}
if cfg.Data1 != 0 {
if len(vals) != 1 {
err = errors.New(fmt.Sprintf("参数个数不一致,期望1实际是%v", len(vals)))
return
} else {
n = len(vals)
}
}
return
}
func toMap(vals ...int32) map[int32]int32 {
d := make(map[int32]int32, len(vals))
for i, v := range vals {
d[int32(i)] = v
}
return d
}
func toArr(m map[int32]int32) (params []int32) {
for _, v := range m {
params = append(params, v)
}
return
}
func isEqual(len int, data *pb.RtaskData, cfg *cfg.GameRdtaskCondiData, vals ...int32) map[int32]int32 {
if data == nil || len == 0 {
return nil
}
res := make(map[int32]int32)
if len == 1 {
if data.Data[0] != cfg.Data1 {
res[0] = vals[0]
}
}
if len == 2 {
if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 {
res[0] = vals[0]
res[1] = vals[1]
}
}
if len == 3 {
if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 || data.Data[2] != cfg.Data3 {
res[0] = vals[0]
res[1] = vals[1]
res[2] = vals[2]
}
}
return res
}

View File

@ -3,14 +3,13 @@ package rtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/redis"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
"github.com/spf13/cast"
"github.com/pkg/errors"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
)
@ -46,18 +45,18 @@ func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask {
}
// 做任务之前的校验
func (this *ModelRtask) checkHandle(uid string, frtaskIds []int32, conf *cfg.GameRdtaskData) (code pb.ErrorCode, ok bool) {
func (this *ModelRtask) checkHandle(uid string, frtaskIds []int32, conf *cfg.GameRdtaskData) (err error, ok bool) {
//判断前置任务状态
if conf.PreTid != 0 {
if _, ok := utils.Findx(frtaskIds, conf.PreTid); !ok {
code = pb.ErrorCode_RtaskPreNoFinish
return code, false
if _, ok = utils.Findx(frtaskIds, conf.PreTid); !ok {
err = errors.New("前置任务未完成")
return
}
}
//验证限定条件
for _, v := range conf.Condition {
if ok = this.checkCondi(uid, v); !ok {
if err, ok = this.checkCondi(uid, v); !ok {
return
}
}
@ -66,147 +65,52 @@ func (this *ModelRtask) checkHandle(uid string, frtaskIds []int32, conf *cfg.Gam
}
// 确定选项前的校验
func (this *ModelRtask) checkCondi(uid string, condiId int32) (ok bool) {
func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok bool) {
if condiId == 0 {
return true
return nil, true
}
//验证限定条件
if condi, ok := this.moduleRtask.rtaskHandleMap[condiId]; ok {
if ok = condi.fn(uid, condi.cfg); !ok {
log.Debugf("uid: %v do rtask %v condition not reach", uid, condiId)
return false
var condi *rtaskCondi
if condi, ok = this.moduleRtask.handleMap[condiId]; ok {
if err, ok = condi.verify(uid, condi.cfg); !ok {
err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId)
return
}
return true
return
}
return false
return
}
// 任务记录
func (this *ModelRtask) record(uid string,rtypeId int32, val... int32) {
}
// 英雄指定
func (this *ModelRtask) HeroTarget(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
heroModule, err := this.service.GetModule(comm.ModuleHero)
if err != nil {
return false
}
h := heroModule.(comm.IHero)
for _, v := range h.GetHeroList(uid) {
if cast.ToString(cfg.Data1) == v.HeroID {
return true
}
}
return false
}
// 指定英雄的等级
func (this *ModelRtask) HeroLvTarget(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
heroModule, err := this.service.GetModule(comm.ModuleHero)
if err != nil {
return false
}
h := heroModule.(comm.IHero)
var hero *pb.DBHero
for _, v := range h.GetHeroList(uid) {
// 查找指定英雄
if cast.ToString(cfg.Data1) == v.HeroID {
hero = v
break
}
}
if hero != nil {
return cast.ToString(cfg.Data1) == hero.HeroID && cfg.Data1 == hero.Lv
}
return false
}
// 指定英雄的指定装备的数量
func (this *ModelRtask) EquipNum(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
heroModule, err := this.service.GetModule(comm.ModuleHero)
if err != nil {
return false
}
h := heroModule.(comm.IHero)
var hero *pb.DBHero
for _, v := range h.GetHeroList(uid) {
if cast.ToString(cfg.Data1) == v.HeroID {
hero = v
break
}
}
var count int32
if hero != nil {
// 验证装备
_, ok := utils.Findx(hero.EquipID, cast.ToString(cfg.Data2))
// 验证数量
for _, v := range hero.EquipID {
if v != "0" {
count++
func (this *ModelRtask) findAndUpdate(uid string, rtypeId comm.TaskType, vals ...int32) (err error) {
var (
condiId int32
condi *rtaskCondi
)
// 遍历当前已注册的任务条件
for _, v := range this.moduleRtask.handleMap {
// 找到任务类型
if int32(rtypeId) == v.cfg.Type {
if condiId = v.find(v.cfg, vals...); condiId == 0 {
continue
}
}
return cast.ToString(cfg.Data1) == hero.HeroID &&
ok && cfg.Data3 == count
}
return false
// update
if condiId != 0 {
err = condi.update(uid, condi.cfg, vals...)
}
return
}
// 剧情ID
func (this *ModelRtask) PoltId(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
mlModule, err := this.service.GetModule(comm.ModuleMainline)
// 获取玩家待校验数据
func (this *ModelRtask) GetVerifyData(uid string, condiId int32) (*pb.RtaskData, error) {
record := &pb.DBRtaskRecord{}
err := this.Get(uid, record)
if err != nil {
return false
return nil, errors.Wrapf(err, "record Get err: %v condiId[%v]", uid, condiId)
}
ml := mlModule.(comm.IMainline)
jqId := ml.GetUsermainLineData(uid)
return cfg.Data1 == jqId
}
// 每日任务
func (this *ModelRtask) TaskDay(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
taskModule, err := this.service.GetModule(comm.ModuleTask)
if err != nil {
return false
}
itask := taskModule.(comm.ITask)
var task *pb.DBTask
if task = itask.GetTaskById(uid, cfg.Data1); task == nil {
return false
} else {
//任务完成
if task.Status == 1 {
return true
}
}
return false
}
// 指定英雄的星级
func (this *ModelRtask) HeroStarTarget(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool) {
heroModule, err := this.service.GetModule(comm.ModuleHero)
if err != nil {
return false
}
h := heroModule.(comm.IHero)
var hero *pb.DBHero
for _, v := range h.GetHeroList(uid) {
if cast.ToString(cfg.Data1) == v.HeroID {
hero = v
break
}
}
if hero != nil {
return cast.ToString(cfg.Data1) == hero.HeroID && cfg.Data2 == hero.Star
}
return false
return record.Vals[condiId], nil
}

View File

@ -10,20 +10,17 @@ import (
cfg "go_dreamfactory/sys/configure/structs"
)
// 随机任务
// type rtask struct {
// rtaskId int32
// handlers []*rtaskCondi
// }
// 限定条件
type rtaskCondi struct {
cfg *cfg.GameRdtaskCondiData
fn rtaskHandle
cfg *cfg.GameRdtaskCondiData
verify verifyHandle //校验任务条件
find condiFindHandle //检索任务条件
update updateDataHandle //更新任务数据
}
// 设定返回值
type rtaskHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool)
type verifyHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (error, bool)
type condiFindHandle func(cfg *cfg.GameRdtaskCondiData, vals ...int32) int32
type updateDataHandle func(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) error
type ModuleRtask struct {
modules.ModuleBase
@ -31,12 +28,12 @@ type ModuleRtask struct {
api *apiComp
configure *configureComp
rtaskHandleMap map[int32]*rtaskCondi // 任务处理器
handleMap map[int32]*rtaskCondi //任务校验处理器
}
func NewModule() core.IModule {
return &ModuleRtask{
rtaskHandleMap: make(map[int32]*rtaskCondi),
handleMap: make(map[int32]*rtaskCondi),
}
}
@ -46,7 +43,7 @@ func (this *ModuleRtask) GetType() core.M_Modules {
func (this *ModuleRtask) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.initRtaskHandle()
this.initRtaskVerifyHandle()
return
}
@ -57,14 +54,15 @@ func (this *ModuleRtask) OnInstallComp() {
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
func (this *ModuleRtask) register(condiId int32, rtask *rtaskCondi) {
if _, ok := this.rtaskHandleMap[condiId]; !ok {
this.rtaskHandleMap[condiId] = rtask
func (this *ModuleRtask) registerVerifyHandle(condiId int32, condi *rtaskCondi) {
if _, ok := this.handleMap[condiId]; !ok {
this.handleMap[condiId] = condi
}
}
func (this *ModuleRtask) initRtaskHandle() {
conf, err := this.configure.getRtaskTypeCfg()
// 条件校验初始
func (this *ModuleRtask) initRtaskVerifyHandle() {
conf, err := this.configure.getRtaskCondiCfg()
if err != nil {
return
}
@ -74,37 +72,179 @@ func (this *ModuleRtask) initRtaskHandle() {
if typeCfg != nil {
switch comm.TaskType(typeCfg.Type) {
case comm.Rtype1:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.HeroTarget,
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
verify: this.modelRtask.verify,
find: this.modelRtask.equalParams,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype2:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
verify: this.modelRtask.verify,
find: this.modelRtask.equalParams,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype3:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
verify: this.modelRtask.verify,
find: this.modelRtask.equalParams,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype4:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.HeroLvTarget,
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
verify: this.modelRtask.verify,
find: this.modelRtask.equalParams,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype5:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
verify: this.modelRtask.verify,
find: this.modelRtask.equalParams,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype6:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.HeroStarTarget,
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype5:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.EquipNum,
case comm.Rtype7:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype2:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.PoltId,
case comm.Rtype8:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.addUpdate,
})
case comm.Rtype3:
this.register(v.Id, &rtaskCondi{
cfg: typeCfg,
fn: this.modelRtask.TaskDay,
case comm.Rtype9:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype10:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype11:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype12:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype13:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype14:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype15:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype16:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype17:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype18:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype19:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype20:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype21:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype22:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype23:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype24:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
case comm.Rtype25:
this.registerVerifyHandle(v.Id, &rtaskCondi{
cfg: typeCfg,
find: this.modelRtask.equalParams,
verify: this.modelRtask.verify,
update: this.modelRtask.overrideUpdate,
})
default:
log.Warnf("%v rtask type not configure", typeCfg.Type)

View File

@ -0,0 +1,101 @@
// package 更新任务触发后的数据更新
package rtask
import (
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"github.com/pkg/errors"
)
// 覆盖更新
func (this *ModelRtask) overrideUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) {
var paramLen int
if paramLen, err = verifyParam(cfg, vals...); err != nil {
return err
}
record := &pb.DBRtaskRecord{}
err = this.Get(uid, record)
if err != nil {
return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
}
if record.Vals == nil {
data := &pb.RtaskData{
Data: toMap(vals...),
}
record.Vals = map[int32]*pb.RtaskData{
cfg.Id: data,
}
if err := this.Add(uid, record); err != nil {
return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
}
} else {
if v, ok := record.Vals[cfg.Id]; ok {
m := isEqual(paramLen, v, cfg, vals...)
if len(m) > 0 {
update := map[string]interface{}{
"vals": m,
}
err = this.Change(uid, update)
}
}
}
return
}
// 累计更新 - 招募等
func (this *ModelRtask) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) {
var paramLen int
if paramLen, err = verifyParam(cfg, vals...); err != nil {
return err
}
record := &pb.DBRtaskRecord{}
err = this.Get(uid, record)
if err != nil {
return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
}
if record.Vals == nil {
data := &pb.RtaskData{
Data: toMap(vals...),
}
record.Vals = map[int32]*pb.RtaskData{
cfg.Id: data,
}
if err := this.Add(uid, record); err != nil {
return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
}
} else {
data := make(map[int32]int32)
//查找任务数据
if v, ok := record.Vals[cfg.Id]; ok {
if paramLen == 1 {
data[0] += v.Data[0]
} else if paramLen == 2 {
//第一个参数为累加,后续参数为判断条件
if data[1] == cfg.Data2 {
data[1] += v.Data[1]
}
} else if paramLen == 3 {
if data[1] == cfg.Data2 && data[2] == cfg.Data3 {
data[2] += v.Data[2]
}
}
if len(data) > 0 {
update := map[string]interface{}{
"vals": data,
}
err = this.Change(uid, update)
}
}
}
return
}

View File

@ -0,0 +1,31 @@
// 校验任务条件
package rtask
import (
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"github.com/pkg/errors"
)
func (this *ModelRtask) verify(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
var rd *pb.RtaskData
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
if len(rd.Data) == 0 {
err = errors.WithMessagef(err, "玩家参数数据缺失 %v", rd.Data)
return
}
var paramLen int
if paramLen, err = verifyParam(cfg, toArr(rd.Data)...); err == nil {
switch paramLen {
case 1:
return nil, rd.Data[0] == cfg.Data1
case 2:
return nil, rd.Data[0] == cfg.Data1 && rd.Data[1] == cfg.Data2
case 3:
return nil, rd.Data[0] == cfg.Data1 && rd.Data[1] == cfg.Data2 && rd.Data[2] == cfg.Data3
}
}
}
return
}

View File

@ -0,0 +1,63 @@
package rtask
import (
"fmt"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"reflect"
"testing"
"github.com/agiledragon/gomonkey/v2"
. "github.com/smartystreets/goconvey/convey"
)
var vals []int32 //通过接口传入的参数组
var conf *cfg.GameRdtaskCondiData
func TestVerify(t *testing.T) {
Convey("校验处理器测试", t, func() {
Convey("校验接口参数组", func() {
patches := gomonkey.ApplyGlobalVar(&conf, &cfg.GameRdtaskCondiData{
Id: 101,
Type: 1,
Data1: 25001,
})
defer patches.Reset()
patches2 := gomonkey.ApplyGlobalVar(&vals, []int32{25002})
defer patches2.Reset()
n, err := verifyParam(conf, vals...)
fmt.Println(n, err)
})
})
}
func TestVerify2(t *testing.T) {
Convey("校验处理测试", t, func() {
Convey("rtype1", func() {
var r *ModelRtask
// 修改
patches := gomonkey.ApplyMethod(reflect.TypeOf(r), "GetVerifyData", func(_ *ModelRtask, uid string, condiId int32) (*pb.RtaskData, error) {
return &pb.RtaskData{
Data: map[int32]int32{0: 25001},
}, nil
})
defer patches.Reset()
//
rtask := &ModelRtask{}
conf := &cfg.GameRdtaskCondiData{
Id: 101,
Type: 1,
Data1: 25001,
}
err, ok := rtask.verify("11", conf)
So(err, ShouldEqual, nil)
So(ok, ShouldEqual, true)
})
})
}

View File

@ -31,6 +31,7 @@ type DBMainline struct {
MainlineId int32 `protobuf:"varint,4,opt,name=mainlineId,proto3" json:"mainlineId" bson:"mainlineId"` //主线关卡ID
AwaredID int32 `protobuf:"varint,5,opt,name=awaredID,proto3" json:"awaredID" bson:"awaredID"` //是否领奖(设置int是考虑后续扩展有多个宝箱情况)
BranchID []int32 `protobuf:"varint,6,rep,packed,name=branchID,proto3" json:"branchID" bson:"branchID"` // 记录分支通关的情况
Intensity int32 `protobuf:"varint,7,opt,name=intensity,proto3" json:"intensity"` // 难度
}
func (x *DBMainline) Reset() {
@ -107,11 +108,18 @@ func (x *DBMainline) GetBranchID() []int32 {
return nil
}
func (x *DBMainline) GetIntensity() int32 {
if x != nil {
return x.Intensity
}
return 0
}
var File_mainline_mainline_db_proto protoreflect.FileDescriptor
var file_mainline_mainline_db_proto_rawDesc = []byte{
0x0a, 0x1a, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x01, 0x0a,
0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a,
0x0a, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a,
@ -122,8 +130,10 @@ var file_mainline_mainline_db_proto_rawDesc = []byte{
0x77, 0x61, 0x72, 0x65, 0x64, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61,
0x77, 0x61, 0x72, 0x65, 0x64, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63,
0x68, 0x49, 0x44, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63,
0x68, 0x49, 0x44, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x68, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79,
0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74,
0x79, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (

View File

@ -147,23 +147,70 @@ func (x *DBRtask) GetIsReward() bool {
return false
}
type RtaskData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data map[int32]int32 `protobuf:"bytes,1,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"data"` // 当前任务值
}
func (x *RtaskData) Reset() {
*x = RtaskData{}
if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_db_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RtaskData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RtaskData) ProtoMessage() {}
func (x *RtaskData) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_db_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RtaskData.ProtoReflect.Descriptor instead.
func (*RtaskData) Descriptor() ([]byte, []int) {
return file_rtask_rtask_db_proto_rawDescGZIP(), []int{2}
}
func (x *RtaskData) GetData() map[int32]int32 {
if x != nil {
return x.Data
}
return nil
}
// 玩家任务记录
type DBRtaskRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
RType int32 `protobuf:"varint,3,opt,name=rType,proto3" json:"rType" bson:"rType"` //任务类型
Vals map[int32]int32 `protobuf:"bytes,4,rep,name=vals,proto3" json:"vals" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"vals"` //任务记录值
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp"` //@go_tasg(`bson:"timestamp"`) 时间戳
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
RType int32 `protobuf:"varint,3,opt,name=rType,proto3" json:"rType" bson:"rType"` //任务类型
Vals map[int32]*RtaskData `protobuf:"bytes,4,rep,name=vals,proto3" json:"vals" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"vals"` //任务记录值
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp"` //@go_tasg(`bson:"timestamp"`) 时间戳
}
func (x *DBRtaskRecord) Reset() {
*x = DBRtaskRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_db_proto_msgTypes[2]
mi := &file_rtask_rtask_db_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -176,7 +223,7 @@ func (x *DBRtaskRecord) String() string {
func (*DBRtaskRecord) ProtoMessage() {}
func (x *DBRtaskRecord) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_db_proto_msgTypes[2]
mi := &file_rtask_rtask_db_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -189,7 +236,7 @@ func (x *DBRtaskRecord) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBRtaskRecord.ProtoReflect.Descriptor instead.
func (*DBRtaskRecord) Descriptor() ([]byte, []int) {
return file_rtask_rtask_db_proto_rawDescGZIP(), []int{2}
return file_rtask_rtask_db_proto_rawDescGZIP(), []int{3}
}
func (x *DBRtaskRecord) GetId() string {
@ -213,7 +260,7 @@ func (x *DBRtaskRecord) GetRType() int32 {
return 0
}
func (x *DBRtaskRecord) GetVals() map[int32]int32 {
func (x *DBRtaskRecord) GetVals() map[int32]*RtaskData {
if x != nil {
return x.Vals
}
@ -248,7 +295,14 @@ var file_rtask_rtask_db_proto_rawDesc = []byte{
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcc, 0x01, 0x0a,
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6e, 0x0a, 0x09,
0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74,
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64,
0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd8, 0x01, 0x0a,
0x0d, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
@ -258,11 +312,12 @@ var file_rtask_rtask_db_proto_rawDesc = []byte{
0x63, 0x6f, 0x72, 0x64, 0x2e, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
0x76, 0x61, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x6d, 0x70, 0x1a, 0x43, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0a, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -277,23 +332,27 @@ func file_rtask_rtask_db_proto_rawDescGZIP() []byte {
return file_rtask_rtask_db_proto_rawDescData
}
var file_rtask_rtask_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_rtask_rtask_db_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_rtask_rtask_db_proto_goTypes = []interface{}{
(*FrtaskIds)(nil), // 0: frtaskIds
(*DBRtask)(nil), // 1: DBRtask
(*DBRtaskRecord)(nil), // 2: DBRtaskRecord
nil, // 3: DBRtask.FrtaskIdsEntry
nil, // 4: DBRtaskRecord.ValsEntry
(*RtaskData)(nil), // 2: rtaskData
(*DBRtaskRecord)(nil), // 3: DBRtaskRecord
nil, // 4: DBRtask.FrtaskIdsEntry
nil, // 5: rtaskData.DataEntry
nil, // 6: DBRtaskRecord.ValsEntry
}
var file_rtask_rtask_db_proto_depIdxs = []int32{
3, // 0: DBRtask.frtaskIds:type_name -> DBRtask.FrtaskIdsEntry
4, // 1: DBRtaskRecord.vals:type_name -> DBRtaskRecord.ValsEntry
0, // 2: DBRtask.FrtaskIdsEntry.value:type_name -> frtaskIds
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
4, // 0: DBRtask.frtaskIds:type_name -> DBRtask.FrtaskIdsEntry
5, // 1: rtaskData.data:type_name -> rtaskData.DataEntry
6, // 2: DBRtaskRecord.vals:type_name -> DBRtaskRecord.ValsEntry
0, // 3: DBRtask.FrtaskIdsEntry.value:type_name -> frtaskIds
2, // 4: DBRtaskRecord.ValsEntry.value:type_name -> rtaskData
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_rtask_rtask_db_proto_init() }
@ -327,6 +386,18 @@ func file_rtask_rtask_db_proto_init() {
}
}
file_rtask_rtask_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rtask_rtask_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBRtaskRecord); i {
case 0:
return &v.state
@ -345,7 +416,7 @@ func file_rtask_rtask_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rtask_rtask_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -40,4 +40,5 @@ const (
GameBuffType_EFFHITDOWN = 28
GameBuffType_EFFREDOWN = 29
GameBuffType_CAUSEDAMUP = 30
GameBuffType_POISON = 31
)

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameGetResource struct {
_dataMap map[int32]*GameGetResourceData
_dataList []*GameGetResourceData
}
func NewGameGetResource(_buf []map[string]interface{}) (*GameGetResource, error) {
_dataList := make([]*GameGetResourceData, 0, len(_buf))
dataMap := make(map[int32]*GameGetResourceData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameGetResourceData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameGetResource{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameGetResource) GetDataMap() map[int32]*GameGetResourceData {
return table._dataMap
}
func (table *GameGetResource) GetDataList() []*GameGetResourceData {
return table._dataList
}
func (table *GameGetResource) Get(key int32) *GameGetResourceData {
return table._dataMap[key]
}

View File

@ -0,0 +1,45 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameGetResourceData struct {
Id int32
Typ int32
Name string
Txt string
Icon string
Goto string
}
const TypeId_GameGetResourceData = 1197339986
func (*GameGetResourceData) GetTypeId() int32 {
return 1197339986
}
func (_v *GameGetResourceData)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["typ"].(float64); !_ok_ { err = errors.New("typ error"); return }; _v.Typ = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
{ var _ok_ bool; if _v.Txt, _ok_ = _buf["txt"].(string); !_ok_ { err = errors.New("txt error"); return } }
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
{ var _ok_ bool; if _v.Goto, _ok_ = _buf["goto"].(string); !_ok_ { err = errors.New("goto error"); return } }
return
}
func DeserializeGameGetResourceData(_buf map[string]interface{}) (*GameGetResourceData, error) {
v := &GameGetResourceData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameLink struct {
_dataMap map[string]*GameLinkData
_dataList []*GameLinkData
}
func NewGameLink(_buf []map[string]interface{}) (*GameLink, error) {
_dataList := make([]*GameLinkData, 0, len(_buf))
dataMap := make(map[string]*GameLinkData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameLinkData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameLink{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameLink) GetDataMap() map[string]*GameLinkData {
return table._dataMap
}
func (table *GameLink) GetDataList() []*GameLinkData {
return table._dataList
}
func (table *GameLink) Get(key string) *GameLinkData {
return table._dataMap[key]
}

View File

@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameLinkData struct {
Id string
Uistore string
Scene string
Des string
Option int32
Preid int32
Presid int32
}
const TypeId_GameLinkData = -968027840
func (*GameLinkData) GetTypeId() int32 {
return -968027840
}
func (_v *GameLinkData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{ var _ok_ bool; if _v.Uistore, _ok_ = _buf["uistore"].(string); !_ok_ { err = errors.New("uistore error"); return } }
{ var _ok_ bool; if _v.Scene, _ok_ = _buf["scene"].(string); !_ok_ { err = errors.New("scene error"); return } }
{ var _ok_ bool; if _v.Des, _ok_ = _buf["des"].(string); !_ok_ { err = errors.New("des error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["option"].(float64); !_ok_ { err = errors.New("option error"); return }; _v.Option = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preid"].(float64); !_ok_ { err = errors.New("preid error"); return }; _v.Preid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["presid"].(float64); !_ok_ { err = errors.New("presid error"); return }; _v.Presid = int32(_tempNum_) }
return
}
func DeserializeGameLinkData(_buf map[string]interface{}) (*GameLinkData, error) {
v := &GameLinkData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameMainline struct {
_dataList []*GameMainlineData
}
func NewGameMainline(_buf []map[string]interface{}) (*GameMainline, error) {
_dataList := make([]*GameMainlineData, 0, len(_buf))
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainlineData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
}
}
return &GameMainline{_dataList:_dataList}, nil
}
func (table *GameMainline) GetDataList() []*GameMainlineData {
return table._dataList
}
func (table *GameMainline) Get(index int) *GameMainlineData {
return table._dataList[index]
}

View File

@ -10,8 +10,9 @@ package cfg
import "errors"
type GameMainlineEasyData struct {
type GameMainlineData struct {
Id int32
Intensity int32
Previoustage int32
Order int32
Linearnum int32
@ -21,19 +22,8 @@ type GameMainlineEasyData struct {
Episodelocation []int32
Model string
Effect string
Enemywave int32
Enemy1lv int32
Enemy1hppro float32
Enemy1atkpro float32
Enemy1defpro float32
Enemy2lv int32
Enemy2hppro float32
Enemy2atkpro float32
Enemy2defpro float32
Wave1enemyid []int32
Wave2enemyid []int32
Enemyid string
MonsterId string
FormatList []int32
CaptainId string
Battlescene string
Sceneeffect string
Award []*Gameatn
@ -43,14 +33,15 @@ type GameMainlineEasyData struct {
Condition []int32
}
const TypeId_GameMainlineEasyData = -2098766443
const TypeId_GameMainlineData = -79093005
func (*GameMainlineEasyData) GetTypeId() int32 {
return -2098766443
func (*GameMainlineData) GetTypeId() int32 {
return -79093005
}
func (_v *GameMainlineEasyData)Deserialize(_buf map[string]interface{}) (err error) {
func (_v *GameMainlineData)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["intensity"].(float64); !_ok_ { err = errors.New("intensity error"); return }; _v.Intensity = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["previoustage"].(float64); !_ok_ { err = errors.New("previoustage error"); return }; _v.Previoustage = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["order"].(float64); !_ok_ { err = errors.New("order error"); return }; _v.Order = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["linearnum"].(float64); !_ok_ { err = errors.New("linearnum error"); return }; _v.Linearnum = int32(_tempNum_) }
@ -73,45 +64,21 @@ func (_v *GameMainlineEasyData)Deserialize(_buf map[string]interface{}) (err err
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.Effect, _ok_ = _buf["effect"].(string); !_ok_ { err = errors.New("effect error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemywave"].(float64); !_ok_ { err = errors.New("enemywave error"); return }; _v.Enemywave = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1lv"].(float64); !_ok_ { err = errors.New("enemy1lv error"); return }; _v.Enemy1lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1hppro"].(float64); !_ok_ { err = errors.New("enemy1hppro error"); return }; _v.Enemy1hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1atkpro"].(float64); !_ok_ { err = errors.New("enemy1atkpro error"); return }; _v.Enemy1atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1defpro"].(float64); !_ok_ { err = errors.New("enemy1defpro error"); return }; _v.Enemy1defpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2lv"].(float64); !_ok_ { err = errors.New("enemy2lv error"); return }; _v.Enemy2lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2hppro"].(float64); !_ok_ { err = errors.New("enemy2hppro error"); return }; _v.Enemy2hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2atkpro"].(float64); !_ok_ { err = errors.New("enemy2atkpro error"); return }; _v.Enemy2atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2defpro"].(float64); !_ok_ { err = errors.New("enemy2defpro error"); return }; _v.Enemy2defpro = float32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave1enemyid"].([]interface{}); !_ok_ { err = errors.New("wave1enemyid error"); return }
if _arr_, _ok_ = _buf["FormatList"].([]interface{}); !_ok_ { err = errors.New("FormatList error"); return }
_v.Wave1enemyid = make([]int32, 0, len(_arr_))
_v.FormatList = 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.Wave1enemyid = append(_v.Wave1enemyid, _list_v_)
_v.FormatList = append(_v.FormatList, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave2enemyid"].([]interface{}); !_ok_ { err = errors.New("wave2enemyid error"); return }
_v.Wave2enemyid = 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.Wave2enemyid = append(_v.Wave2enemyid, _list_v_)
}
}
{ var _ok_ bool; if _v.Enemyid, _ok_ = _buf["enemyid"].(string); !_ok_ { err = errors.New("enemyid error"); return } }
{ var _ok_ bool; if _v.MonsterId, _ok_ = _buf["monster_id"].(string); !_ok_ { err = errors.New("monster_id error"); return } }
{ var _ok_ bool; if _v.CaptainId, _ok_ = _buf["captainId"].(string); !_ok_ { err = errors.New("captainId error"); return } }
{ var _ok_ bool; if _v.Battlescene, _ok_ = _buf["battlescene"].(string); !_ok_ { err = errors.New("battlescene error"); return } }
{ var _ok_ bool; if _v.Sceneeffect, _ok_ = _buf["sceneeffect"].(string); !_ok_ { err = errors.New("sceneeffect error"); return } }
{
@ -161,8 +128,8 @@ func (_v *GameMainlineEasyData)Deserialize(_buf map[string]interface{}) (err err
return
}
func DeserializeGameMainlineEasyData(_buf map[string]interface{}) (*GameMainlineEasyData, error) {
v := &GameMainlineEasyData{}
func DeserializeGameMainlineData(_buf map[string]interface{}) (*GameMainlineData, error) {
v := &GameMainlineData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameMonsterFormat struct {
_dataMap map[int32]*GameMonsterFormatData
_dataList []*GameMonsterFormatData
}
func NewGameMonsterFormat(_buf []map[string]interface{}) (*GameMonsterFormat, error) {
_dataList := make([]*GameMonsterFormatData, 0, len(_buf))
dataMap := make(map[int32]*GameMonsterFormatData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMonsterFormatData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMonsterFormat{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMonsterFormat) GetDataMap() map[int32]*GameMonsterFormatData {
return table._dataMap
}
func (table *GameMonsterFormat) GetDataList() []*GameMonsterFormatData {
return table._dataList
}
func (table *GameMonsterFormat) Get(key int32) *GameMonsterFormatData {
return table._dataMap[key]
}

View File

@ -0,0 +1,60 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameMonsterFormatData struct {
Id int32
CaptainId int32
MonsterList []int32
Lv int32
Hppro float32
Atkpro float32
Defpro float32
}
const TypeId_GameMonsterFormatData = 1141351615
func (*GameMonsterFormatData) GetTypeId() int32 {
return 1141351615
}
func (_v *GameMonsterFormatData)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["captainId"].(float64); !_ok_ { err = errors.New("captainId error"); return }; _v.CaptainId = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["monsterList"].([]interface{}); !_ok_ { err = errors.New("monsterList error"); return }
_v.MonsterList = 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.MonsterList = append(_v.MonsterList, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hppro"].(float64); !_ok_ { err = errors.New("hppro error"); return }; _v.Hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atkpro"].(float64); !_ok_ { err = errors.New("atkpro error"); return }; _v.Atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["defpro"].(float64); !_ok_ { err = errors.New("defpro error"); return }; _v.Defpro = float32(_tempNum_) }
return
}
func DeserializeGameMonsterFormatData(_buf map[string]interface{}) (*GameMonsterFormatData, error) {
v := &GameMonsterFormatData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -12,6 +12,7 @@ import "errors"
type GameRdtaskCondiData struct {
Id int32
Datatype int32
Type int32
Data1 int32
Data2 int32
@ -26,6 +27,7 @@ func (*GameRdtaskCondiData) GetTypeId() int32 {
func (_v *GameRdtaskCondiData)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["datatype"].(float64); !_ok_ { err = errors.New("datatype error"); return }; _v.Datatype = 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["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) }

View File

@ -15,11 +15,11 @@ type GameRdtaskSideData struct {
ObjType int32
Point string
StoryBegin int32
StoryEnd int32
ChooseId []int32
StoryEnd int32
NextTid int32
Reward []*Gameatn
CD int32
NextTid int32
EndTid int32
}
@ -34,7 +34,6 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["objType"].(float64); !_ok_ { err = errors.New("objType error"); return }; _v.ObjType = int32(_tempNum_) }
{ 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["storyBegin"].(float64); !_ok_ { err = errors.New("storyBegin error"); return }; _v.StoryBegin = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyEnd"].(float64); !_ok_ { err = errors.New("storyEnd error"); return }; _v.StoryEnd = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
@ -49,6 +48,8 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyEnd"].(float64); !_ok_ { err = errors.New("storyEnd error"); return }; _v.StoryEnd = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
@ -64,7 +65,6 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CD"].(float64); !_ok_ { err = errors.New("CD error"); return }; _v.CD = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) }
return
}

View File

@ -24,4 +24,9 @@ const (
GameSkillEffectType_SkillCD = 13
GameSkillEffectType_MaxDmg = 14
GameSkillEffectType_RandBuff = 15
GameSkillEffectType_DpsByAddBuff = 16
GameSkillEffectType_FrontDmg = 17
GameSkillEffectType_Round = 18
GameSkillEffectType_TreBeyondByAddBuff = 19
GameSkillEffectType_AttrTrans = 20
)

View File

@ -25,6 +25,9 @@ type GameSmithyData struct {
Orderneed []*Gameatn
Desk string
Shelves string
Name string
Ico string
Color int32
}
const TypeId_GameSmithyData = 2042540316
@ -87,6 +90,9 @@ func (_v *GameSmithyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Desk, _ok_ = _buf["desk"].(string); !_ok_ { err = errors.New("desk error"); return } }
{ var _ok_ bool; if _v.Shelves, _ok_ = _buf["shelves"].(string); !_ok_ { err = errors.New("shelves 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; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico 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_) }
return
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameSmithyText struct {
_dataMap map[int32]*GameSmithyTextData
_dataList []*GameSmithyTextData
}
func NewGameSmithyText(_buf []map[string]interface{}) (*GameSmithyText, error) {
_dataList := make([]*GameSmithyTextData, 0, len(_buf))
dataMap := make(map[int32]*GameSmithyTextData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameSmithyTextData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameSmithyText{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameSmithyText) GetDataMap() map[int32]*GameSmithyTextData {
return table._dataMap
}
func (table *GameSmithyText) GetDataList() []*GameSmithyTextData {
return table._dataList
}
func (table *GameSmithyText) Get(key int32) *GameSmithyTextData {
return table._dataMap[key]
}

View File

@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameSmithyTextData struct {
Id int32
Type int32
Txt string
}
const TypeId_GameSmithyTextData = -2076966167
func (*GameSmithyTextData) GetTypeId() int32 {
return -2076966167
}
func (_v *GameSmithyTextData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameSmithyTextData(_buf map[string]interface{}) (*GameSmithyTextData, error) {
v := &GameSmithyTextData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -11,484 +11,516 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct {
Global *GameGlobal
Plot *GamePlot
Extservers *GameExtservers
SkillAtk *GameSkillAtk
SkillAfteratk *GameSkillAfteratk
SkillBuff *GameSkillBuff
SkillPassive *GameSkillPassive
Hero *GameHero
HeroStargrow *GameHeroStargrow
HeroLevelgrow *GameHeroLevelgrow
HeroStarup *GameHeroStarup
HeroExp *GameHeroExp
HeroLevelup *GameHeroLevelup
Equip *GameEquip
EquipAttrlibrary *GameEquipAttrlibrary
EquipSuit *GameEquipSuit
EquipColor *GameEquipColor
EquipIntensify *GameEquipIntensify
Item *GameItem
HeroSkillLevel *GameHeroSkillLevel
HeroResonance *GameHeroResonance
ComAtn *GameComAtn
HeroAwaken *GameHeroAwaken
HeroMethod *GameHeroMethod
Shop *GameShop
Shopitem *GameShopitem
ActiveReward *GameActiveReward
Skill *GameSkill
Model *GameModel
MainlineChapter *GameMainlineChapter
MainlineEasy *GameMainlineEasy
MainlineHard *GameMainlineHard
MainlinePurgatory *GameMainlinePurgatory
DrawCard *GameDrawCard
ChatChannel *GameChatChannel
ChatSystem *GameChatSystem
ChatServerGroup *GameChatServerGroup
ChatChannelCom *GameChatChannelCom
ChatExpression *GameChatExpression
TaskRound *GameTaskRound
TaskActiveReward *GameTaskActiveReward
Coin *GameCoin
Initial *GameInitial
Monster *GameMonster
EquipPos *GameEquipPos
Playerlv *GamePlayerlv
Propsgroup *GamePropsgroup
Facemod *GameFacemod
Msgdistrib *GameMsgdistrib
Opencond *GameOpencond
Stroy *GameStroy
Pagoda *GamePagoda
PagodaTaskReward *GamePagodaTaskReward
PagodaSeasonReward *GamePagodaSeasonReward
PagodaseasonLoop *GamePagodaseasonLoop
Rdtask *GameRdtask
RdtaskCondi *GameRdtaskCondi
RdtaskChoose *GameRdtaskChoose
RdtaskSide *GameRdtaskSide
KungfuUnlock *GameKungfuUnlock
KungfuMasterworker *GameKungfuMasterworker
Gourmet *GameGourmet
Drop *GameDrop
Smithy *GameSmithy
SmithyStove *GameSmithyStove
VikingBoss *GameVikingBoss
VikingChallenge *GameVikingChallenge
Global *GameGlobal
Plot *GamePlot
Extservers *GameExtservers
SkillAtk *GameSkillAtk
SkillAfteratk *GameSkillAfteratk
SkillBuff *GameSkillBuff
SkillPassive *GameSkillPassive
Hero *GameHero
HeroStargrow *GameHeroStargrow
HeroLevelgrow *GameHeroLevelgrow
HeroStarup *GameHeroStarup
HeroExp *GameHeroExp
HeroLevelup *GameHeroLevelup
Equip *GameEquip
EquipAttrlibrary *GameEquipAttrlibrary
EquipSuit *GameEquipSuit
EquipColor *GameEquipColor
EquipIntensify *GameEquipIntensify
Item *GameItem
HeroSkillLevel *GameHeroSkillLevel
HeroResonance *GameHeroResonance
ComAtn *GameComAtn
HeroAwaken *GameHeroAwaken
HeroMethod *GameHeroMethod
Shop *GameShop
Shopitem *GameShopitem
ActiveReward *GameActiveReward
Model *GameModel
MainlineChapter *GameMainlineChapter
Mainline *GameMainline
DrawCard *GameDrawCard
ChatChannel *GameChatChannel
ChatSystem *GameChatSystem
ChatServerGroup *GameChatServerGroup
ChatChannelCom *GameChatChannelCom
ChatExpression *GameChatExpression
TaskRound *GameTaskRound
TaskActiveReward *GameTaskActiveReward
Coin *GameCoin
Initial *GameInitial
Monster *GameMonster
EquipPos *GameEquipPos
Playerlv *GamePlayerlv
Propsgroup *GamePropsgroup
Facemod *GameFacemod
Msgdistrib *GameMsgdistrib
Opencond *GameOpencond
Stroy *GameStroy
Pagoda *GamePagoda
PagodaTaskReward *GamePagodaTaskReward
PagodaSeasonReward *GamePagodaSeasonReward
PagodaseasonLoop *GamePagodaseasonLoop
Rdtask *GameRdtask
RdtaskCondi *GameRdtaskCondi
RdtaskChoose *GameRdtaskChoose
RdtaskSide *GameRdtaskSide
KungfuUnlock *GameKungfuUnlock
KungfuMasterworker *GameKungfuMasterworker
Gourmet *GameGourmet
Drop *GameDrop
Smithy *GameSmithy
SmithyStove *GameSmithyStove
SmithyText *GameSmithyText
VikingBoss *GameVikingBoss
VikingChallenge *GameVikingChallenge
DreamlandBoos *GameDreamlandBoos
HuntingBoss *GameHuntingBoss
HuntingChallenge *GameHuntingChallenge
HuntingOpenTime *GameHuntingOpenTime
MonsterFormat *GameMonsterFormat
Link *GameLink
GetResource *GameGetResource
}
func NewTables(loader JsonLoader) (*Tables, error) {
var err error
var buf []map[string]interface{}
var err error
var buf []map[string]interface{}
tables := &Tables{}
if buf, err = loader("game_global"); err != nil {
return nil, err
}
if tables.Global, err = NewGameGlobal(buf); err != nil {
return nil, err
}
if buf, err = loader("game_plot"); err != nil {
return nil, err
}
if tables.Plot, err = NewGamePlot(buf); err != nil {
return nil, err
}
if buf, err = loader("game_extservers"); err != nil {
return nil, err
}
if tables.Extservers, err = NewGameExtservers(buf); err != nil {
return nil, err
}
if buf, err = loader("game_skillatk"); err != nil {
return nil, err
}
if tables.SkillAtk, err = NewGameSkillAtk(buf); err != nil {
return nil, err
}
if buf, err = loader("game_skillafteratk"); err != nil {
return nil, err
}
if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf); err != nil {
return nil, err
}
if buf, err = loader("game_skillbuff"); err != nil {
return nil, err
}
if tables.SkillBuff, err = NewGameSkillBuff(buf); err != nil {
return nil, err
}
if buf, err = loader("game_skillpassive"); err != nil {
return nil, err
}
if tables.SkillPassive, err = NewGameSkillPassive(buf); err != nil {
return nil, err
}
if buf, err = loader("game_hero"); err != nil {
return nil, err
}
if tables.Hero, err = NewGameHero(buf); err != nil {
return nil, err
}
if buf, err = loader("game_herostargrow"); err != nil {
return nil, err
}
if tables.HeroStargrow, err = NewGameHeroStargrow(buf); err != nil {
return nil, err
}
if buf, err = loader("game_herolevelgrow"); err != nil {
return nil, err
}
if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf); err != nil {
return nil, err
}
if buf, err = loader("game_herostarup"); err != nil {
return nil, err
}
if tables.HeroStarup, err = NewGameHeroStarup(buf); err != nil {
return nil, err
}
if buf, err = loader("game_heroexp"); err != nil {
return nil, err
}
if tables.HeroExp, err = NewGameHeroExp(buf); err != nil {
return nil, err
}
if buf, err = loader("game_herolevelup"); err != nil {
return nil, err
}
if tables.HeroLevelup, err = NewGameHeroLevelup(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equip"); err != nil {
return nil, err
}
if tables.Equip, err = NewGameEquip(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equipattrlibrary"); err != nil {
return nil, err
}
if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equipsuit"); err != nil {
return nil, err
}
if tables.EquipSuit, err = NewGameEquipSuit(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equipcolor"); err != nil {
return nil, err
}
if tables.EquipColor, err = NewGameEquipColor(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equipintensify"); err != nil {
return nil, err
}
if tables.EquipIntensify, err = NewGameEquipIntensify(buf); err != nil {
return nil, err
}
if buf, err = loader("game_item"); err != nil {
return nil, err
}
if tables.Item, err = NewGameItem(buf); err != nil {
return nil, err
}
if buf, err = loader("game_heroskilllevel"); err != nil {
return nil, err
}
if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf); err != nil {
return nil, err
}
if buf, err = loader("game_heroresonance"); err != nil {
return nil, err
}
if tables.HeroResonance, err = NewGameHeroResonance(buf); err != nil {
return nil, err
}
if buf, err = loader("game_comatn"); err != nil {
return nil, err
}
if tables.ComAtn, err = NewGameComAtn(buf); err != nil {
return nil, err
}
if buf, err = loader("game_heroawaken"); err != nil {
return nil, err
}
if tables.HeroAwaken, err = NewGameHeroAwaken(buf); err != nil {
return nil, err
}
if buf, err = loader("game_heromethod"); err != nil {
return nil, err
}
if tables.HeroMethod, err = NewGameHeroMethod(buf); err != nil {
return nil, err
}
if buf, err = loader("game_shop"); err != nil {
return nil, err
}
if tables.Shop, err = NewGameShop(buf); err != nil {
return nil, err
}
if buf, err = loader("game_shopitem"); err != nil {
return nil, err
}
if tables.Shopitem, err = NewGameShopitem(buf); err != nil {
return nil, err
}
if buf, err = loader("game_activereward"); err != nil {
return nil, err
}
if tables.ActiveReward, err = NewGameActiveReward(buf); err != nil {
return nil, err
}
if buf, err = loader("game_skill"); err != nil {
return nil, err
}
if tables.Skill, err = NewGameSkill(buf); err != nil {
return nil, err
}
if buf, err = loader("game_model"); err != nil {
return nil, err
}
if tables.Model, err = NewGameModel(buf); err != nil {
return nil, err
}
if buf, err = loader("game_mainlinechapter"); err != nil {
return nil, err
}
if tables.MainlineChapter, err = NewGameMainlineChapter(buf); err != nil {
return nil, err
}
if buf, err = loader("game_mainlineeasy"); err != nil {
return nil, err
}
if tables.MainlineEasy, err = NewGameMainlineEasy(buf); err != nil {
return nil, err
}
if buf, err = loader("game_mainlinehard"); err != nil {
return nil, err
}
if tables.MainlineHard, err = NewGameMainlineHard(buf); err != nil {
return nil, err
}
if buf, err = loader("game_mainlinepurgatory"); err != nil {
return nil, err
}
if tables.MainlinePurgatory, err = NewGameMainlinePurgatory(buf); err != nil {
return nil, err
}
if buf, err = loader("game_drawcard"); err != nil {
return nil, err
}
if tables.DrawCard, err = NewGameDrawCard(buf); err != nil {
return nil, err
}
if buf, err = loader("game_chatchannel"); err != nil {
return nil, err
}
if tables.ChatChannel, err = NewGameChatChannel(buf); err != nil {
return nil, err
}
if buf, err = loader("game_chatsystem"); err != nil {
return nil, err
}
if tables.ChatSystem, err = NewGameChatSystem(buf); err != nil {
return nil, err
}
if buf, err = loader("game_chatservergroup"); err != nil {
return nil, err
}
if tables.ChatServerGroup, err = NewGameChatServerGroup(buf); err != nil {
return nil, err
}
if buf, err = loader("game_chatchannelcom"); err != nil {
return nil, err
}
if tables.ChatChannelCom, err = NewGameChatChannelCom(buf); err != nil {
return nil, err
}
if buf, err = loader("game_chatexpression"); err != nil {
return nil, err
}
if tables.ChatExpression, err = NewGameChatExpression(buf); err != nil {
return nil, err
}
if buf, err = loader("game_taskround"); err != nil {
return nil, err
}
if tables.TaskRound, err = NewGameTaskRound(buf); err != nil {
return nil, err
}
if buf, err = loader("game_taskactivereward"); err != nil {
return nil, err
}
if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf); err != nil {
return nil, err
}
if buf, err = loader("game_coin"); err != nil {
return nil, err
}
if tables.Coin, err = NewGameCoin(buf); err != nil {
return nil, err
}
if buf, err = loader("game_initial"); err != nil {
return nil, err
}
if tables.Initial, err = NewGameInitial(buf); err != nil {
return nil, err
}
if buf, err = loader("game_monster"); err != nil {
return nil, err
}
if tables.Monster, err = NewGameMonster(buf); err != nil {
return nil, err
}
if buf, err = loader("game_equippos"); err != nil {
return nil, err
}
if tables.EquipPos, err = NewGameEquipPos(buf); err != nil {
return nil, err
}
if buf, err = loader("game_playerlv"); err != nil {
return nil, err
}
if tables.Playerlv, err = NewGamePlayerlv(buf); err != nil {
return nil, err
}
if buf, err = loader("game_propsgroup"); err != nil {
return nil, err
}
if tables.Propsgroup, err = NewGamePropsgroup(buf); err != nil {
return nil, err
}
if buf, err = loader("game_facemod"); err != nil {
return nil, err
}
if tables.Facemod, err = NewGameFacemod(buf); err != nil {
return nil, err
}
if buf, err = loader("game_msgdistrib"); err != nil {
return nil, err
}
if tables.Msgdistrib, err = NewGameMsgdistrib(buf); err != nil {
return nil, err
}
if buf, err = loader("game_opencond"); err != nil {
return nil, err
}
if tables.Opencond, err = NewGameOpencond(buf); err != nil {
return nil, err
}
if buf, err = loader("game_stroy"); err != nil {
return nil, err
}
if tables.Stroy, err = NewGameStroy(buf); err != nil {
return nil, err
}
if buf, err = loader("game_pagoda"); err != nil {
return nil, err
}
if tables.Pagoda, err = NewGamePagoda(buf); err != nil {
return nil, err
}
if buf, err = loader("game_pagodataskreward"); err != nil {
return nil, err
}
if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf); err != nil {
return nil, err
}
if buf, err = loader("game_pagodaseasonreward"); err != nil {
return nil, err
}
if tables.PagodaSeasonReward, err = NewGamePagodaSeasonReward(buf); err != nil {
return nil, err
}
if buf, err = loader("game_pagodaseasonloop"); err != nil {
return nil, err
}
if tables.PagodaseasonLoop, err = NewGamePagodaseasonLoop(buf); err != nil {
return nil, err
}
if buf, err = loader("game_rdtask"); err != nil {
return nil, err
}
if tables.Rdtask, err = NewGameRdtask(buf); err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskcondi"); err != nil {
return nil, err
}
if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf); err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskchoose"); err != nil {
return nil, err
}
if tables.RdtaskChoose, err = NewGameRdtaskChoose(buf); err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskside"); err != nil {
return nil, err
}
if tables.RdtaskSide, err = NewGameRdtaskSide(buf); err != nil {
return nil, err
}
if buf, err = loader("game_kungfuunlock"); err != nil {
return nil, err
}
if tables.KungfuUnlock, err = NewGameKungfuUnlock(buf); err != nil {
return nil, err
}
if buf, err = loader("game_kungfumasterworker"); err != nil {
return nil, err
}
if tables.KungfuMasterworker, err = NewGameKungfuMasterworker(buf); err != nil {
return nil, err
}
if buf, err = loader("game_gourmet"); err != nil {
return nil, err
}
if tables.Gourmet, err = NewGameGourmet(buf); err != nil {
return nil, err
}
if buf, err = loader("game_gourmetskill"); err != nil {
return nil, err
}
if buf, err = loader("game_drop"); err != nil {
return nil, err
}
if tables.Drop, err = NewGameDrop(buf); err != nil {
return nil, err
}
if buf, err = loader("game_smithy"); err != nil {
return nil, err
}
if tables.Smithy, err = NewGameSmithy(buf); err != nil {
return nil, err
}
if buf, err = loader("game_smithystove"); err != nil {
return nil, err
}
if tables.SmithyStove, err = NewGameSmithyStove(buf); err != nil {
return nil, err
}
if buf, err = loader("game_vikingboss"); err != nil {
return nil, err
}
if tables.VikingBoss, err = NewGameVikingBoss(buf); err != nil {
return nil, err
}
if buf, err = loader("game_vikingchallenge"); err != nil {
return nil, err
}
if tables.VikingChallenge, err = NewGameVikingChallenge(buf); err != nil {
return nil, err
}
return tables, nil
tables := &Tables{}
if buf, err = loader("game_global") ; err != nil {
return nil, err
}
if tables.Global, err = NewGameGlobal(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_plot") ; err != nil {
return nil, err
}
if tables.Plot, err = NewGamePlot(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_extservers") ; err != nil {
return nil, err
}
if tables.Extservers, err = NewGameExtservers(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_skillatk") ; err != nil {
return nil, err
}
if tables.SkillAtk, err = NewGameSkillAtk(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_skillafteratk") ; err != nil {
return nil, err
}
if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_skillbuff") ; err != nil {
return nil, err
}
if tables.SkillBuff, err = NewGameSkillBuff(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_skillpassive") ; err != nil {
return nil, err
}
if tables.SkillPassive, err = NewGameSkillPassive(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_hero") ; err != nil {
return nil, err
}
if tables.Hero, err = NewGameHero(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_herostargrow") ; err != nil {
return nil, err
}
if tables.HeroStargrow, err = NewGameHeroStargrow(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_herolevelgrow") ; err != nil {
return nil, err
}
if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_herostarup") ; err != nil {
return nil, err
}
if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroexp") ; err != nil {
return nil, err
}
if tables.HeroExp, err = NewGameHeroExp(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_herolevelup") ; err != nil {
return nil, err
}
if tables.HeroLevelup, err = NewGameHeroLevelup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equip") ; err != nil {
return nil, err
}
if tables.Equip, err = NewGameEquip(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipattrlibrary") ; err != nil {
return nil, err
}
if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipsuit") ; err != nil {
return nil, err
}
if tables.EquipSuit, err = NewGameEquipSuit(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipcolor") ; err != nil {
return nil, err
}
if tables.EquipColor, err = NewGameEquipColor(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipintensify") ; err != nil {
return nil, err
}
if tables.EquipIntensify, err = NewGameEquipIntensify(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_item") ; err != nil {
return nil, err
}
if tables.Item, err = NewGameItem(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroskilllevel") ; err != nil {
return nil, err
}
if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroresonance") ; err != nil {
return nil, err
}
if tables.HeroResonance, err = NewGameHeroResonance(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_comatn") ; err != nil {
return nil, err
}
if tables.ComAtn, err = NewGameComAtn(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroawaken") ; err != nil {
return nil, err
}
if tables.HeroAwaken, err = NewGameHeroAwaken(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heromethod") ; err != nil {
return nil, err
}
if tables.HeroMethod, err = NewGameHeroMethod(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_shop") ; err != nil {
return nil, err
}
if tables.Shop, err = NewGameShop(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_shopitem") ; err != nil {
return nil, err
}
if tables.Shopitem, err = NewGameShopitem(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_activereward") ; err != nil {
return nil, err
}
if tables.ActiveReward, err = NewGameActiveReward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_model") ; err != nil {
return nil, err
}
if tables.Model, err = NewGameModel(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainlinechapter") ; err != nil {
return nil, err
}
if tables.MainlineChapter, err = NewGameMainlineChapter(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainline") ; err != nil {
return nil, err
}
if tables.Mainline, err = NewGameMainline(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_drawcard") ; err != nil {
return nil, err
}
if tables.DrawCard, err = NewGameDrawCard(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_chatchannel") ; err != nil {
return nil, err
}
if tables.ChatChannel, err = NewGameChatChannel(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_chatsystem") ; err != nil {
return nil, err
}
if tables.ChatSystem, err = NewGameChatSystem(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_chatservergroup") ; err != nil {
return nil, err
}
if tables.ChatServerGroup, err = NewGameChatServerGroup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_chatchannelcom") ; err != nil {
return nil, err
}
if tables.ChatChannelCom, err = NewGameChatChannelCom(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_chatexpression") ; err != nil {
return nil, err
}
if tables.ChatExpression, err = NewGameChatExpression(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_taskround") ; err != nil {
return nil, err
}
if tables.TaskRound, err = NewGameTaskRound(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_taskactivereward") ; err != nil {
return nil, err
}
if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_coin") ; err != nil {
return nil, err
}
if tables.Coin, err = NewGameCoin(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_initial") ; err != nil {
return nil, err
}
if tables.Initial, err = NewGameInitial(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_monster") ; err != nil {
return nil, err
}
if tables.Monster, err = NewGameMonster(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equippos") ; err != nil {
return nil, err
}
if tables.EquipPos, err = NewGameEquipPos(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_playerlv") ; err != nil {
return nil, err
}
if tables.Playerlv, err = NewGamePlayerlv(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_propsgroup") ; err != nil {
return nil, err
}
if tables.Propsgroup, err = NewGamePropsgroup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_facemod") ; err != nil {
return nil, err
}
if tables.Facemod, err = NewGameFacemod(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_msgdistrib") ; err != nil {
return nil, err
}
if tables.Msgdistrib, err = NewGameMsgdistrib(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_opencond") ; err != nil {
return nil, err
}
if tables.Opencond, err = NewGameOpencond(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_stroy") ; err != nil {
return nil, err
}
if tables.Stroy, err = NewGameStroy(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_pagoda") ; err != nil {
return nil, err
}
if tables.Pagoda, err = NewGamePagoda(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_pagodataskreward") ; err != nil {
return nil, err
}
if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_pagodaseasonreward") ; err != nil {
return nil, err
}
if tables.PagodaSeasonReward, err = NewGamePagodaSeasonReward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_pagodaseasonloop") ; err != nil {
return nil, err
}
if tables.PagodaseasonLoop, err = NewGamePagodaseasonLoop(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtask") ; err != nil {
return nil, err
}
if tables.Rdtask, err = NewGameRdtask(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskcondi") ; err != nil {
return nil, err
}
if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskchoose") ; err != nil {
return nil, err
}
if tables.RdtaskChoose, err = NewGameRdtaskChoose(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskside") ; err != nil {
return nil, err
}
if tables.RdtaskSide, err = NewGameRdtaskSide(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_kungfuunlock") ; err != nil {
return nil, err
}
if tables.KungfuUnlock, err = NewGameKungfuUnlock(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_kungfumasterworker") ; err != nil {
return nil, err
}
if tables.KungfuMasterworker, err = NewGameKungfuMasterworker(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_gourmet") ; err != nil {
return nil, err
}
if tables.Gourmet, err = NewGameGourmet(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_drop") ; err != nil {
return nil, err
}
if tables.Drop, err = NewGameDrop(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithy") ; err != nil {
return nil, err
}
if tables.Smithy, err = NewGameSmithy(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithystove") ; err != nil {
return nil, err
}
if tables.SmithyStove, err = NewGameSmithyStove(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_smithytext") ; err != nil {
return nil, err
}
if tables.SmithyText, err = NewGameSmithyText(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_vikingboss") ; err != nil {
return nil, err
}
if tables.VikingBoss, err = NewGameVikingBoss(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_vikingchallenge") ; err != nil {
return nil, err
}
if tables.VikingChallenge, err = NewGameVikingChallenge(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_dreamlandboos") ; err != nil {
return nil, err
}
if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_huntingboss") ; err != nil {
return nil, err
}
if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_huntingchallenge") ; err != nil {
return nil, err
}
if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_huntingopentime") ; err != nil {
return nil, err
}
if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_monsterformat") ; err != nil {
return nil, err
}
if tables.MonsterFormat, err = NewGameMonsterFormat(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_link") ; err != nil {
return nil, err
}
if tables.Link, err = NewGameLink(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_getresource") ; err != nil {
return nil, err
}
if tables.GetResource, err = NewGameGetResource(buf) ; err != nil {
return nil, err
}
return tables, nil
}

View File

@ -13,7 +13,7 @@ import "errors"
type GameMainlineChapterData struct {
Id int32
Name string
Intensity string
Intensity int32
Map string
Title string
Desc string
@ -32,7 +32,7 @@ func (*GameMainlineChapterData) GetTypeId() int32 {
func (_v *GameMainlineChapterData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["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; if _v.Intensity, _ok_ = _buf["Intensity"].(string); !_ok_ { err = errors.New("Intensity error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Intensity"].(float64); !_ok_ { err = errors.New("Intensity error"); return }; _v.Intensity = int32(_tempNum_) }
{ var _ok_ bool; if _v.Map, _ok_ = _buf["map"].(string); !_ok_ { err = errors.New("map error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _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["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameMainlineEasy struct {
_dataMap map[int32]*GameMainlineEasyData
_dataList []*GameMainlineEasyData
}
func NewGameMainlineEasy(_buf []map[string]interface{}) (*GameMainlineEasy, error) {
_dataList := make([]*GameMainlineEasyData, 0, len(_buf))
dataMap := make(map[int32]*GameMainlineEasyData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainlineEasyData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainlineEasy{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainlineEasy) GetDataMap() map[int32]*GameMainlineEasyData {
return table._dataMap
}
func (table *GameMainlineEasy) GetDataList() []*GameMainlineEasyData {
return table._dataList
}
func (table *GameMainlineEasy) Get(key int32) *GameMainlineEasyData {
return table._dataMap[key]
}

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameMainlineHard struct {
_dataMap map[int32]*GameMainlineHardData
_dataList []*GameMainlineHardData
}
func NewGameMainlineHard(_buf []map[string]interface{}) (*GameMainlineHard, error) {
_dataList := make([]*GameMainlineHardData, 0, len(_buf))
dataMap := make(map[int32]*GameMainlineHardData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainlineHardData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainlineHard{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainlineHard) GetDataMap() map[int32]*GameMainlineHardData {
return table._dataMap
}
func (table *GameMainlineHard) GetDataList() []*GameMainlineHardData {
return table._dataList
}
func (table *GameMainlineHard) Get(key int32) *GameMainlineHardData {
return table._dataMap[key]
}

View File

@ -1,141 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameMainlineHardData struct {
Id int32
Previoustage int32
Order int32
Linearnum int32
Chapter int32
Route int32
Episodetype int32
Episodelocation []int32
Model string
Effect string
Enemywave int32
Enemy1lv int32
Enemy1hppro float32
Enemy1atkpro float32
Enemy1defpro float32
Enemy2lv int32
Enemy2hppro float32
Enemy2atkpro float32
Enemy2defpro float32
Wave1enemyid []int32
Wave2enemyid []int32
Enemyid string
MonsterId string
Battlescene string
Sceneeffect string
Award []*Gameatn
Title string
Desc string
}
const TypeId_GameMainlineHardData = -1213325826
func (*GameMainlineHardData) GetTypeId() int32 {
return -1213325826
}
func (_v *GameMainlineHardData)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["previoustage"].(float64); !_ok_ { err = errors.New("previoustage error"); return }; _v.Previoustage = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["order"].(float64); !_ok_ { err = errors.New("order error"); return }; _v.Order = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["linearnum"].(float64); !_ok_ { err = errors.New("linearnum error"); return }; _v.Linearnum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapter"].(float64); !_ok_ { err = errors.New("chapter error"); return }; _v.Chapter = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["route"].(float64); !_ok_ { err = errors.New("route error"); return }; _v.Route = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["episodetype"].(float64); !_ok_ { err = errors.New("episodetype error"); return }; _v.Episodetype = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["episodelocation"].([]interface{}); !_ok_ { err = errors.New("episodelocation error"); return }
_v.Episodelocation = 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.Episodelocation = append(_v.Episodelocation, _list_v_)
}
}
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.Effect, _ok_ = _buf["effect"].(string); !_ok_ { err = errors.New("effect error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemywave"].(float64); !_ok_ { err = errors.New("enemywave error"); return }; _v.Enemywave = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1lv"].(float64); !_ok_ { err = errors.New("enemy1lv error"); return }; _v.Enemy1lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1hppro"].(float64); !_ok_ { err = errors.New("enemy1hppro error"); return }; _v.Enemy1hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1atkpro"].(float64); !_ok_ { err = errors.New("enemy1atkpro error"); return }; _v.Enemy1atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1defpro"].(float64); !_ok_ { err = errors.New("enemy1defpro error"); return }; _v.Enemy1defpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2lv"].(float64); !_ok_ { err = errors.New("enemy2lv error"); return }; _v.Enemy2lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2hppro"].(float64); !_ok_ { err = errors.New("enemy2hppro error"); return }; _v.Enemy2hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2atkpro"].(float64); !_ok_ { err = errors.New("enemy2atkpro error"); return }; _v.Enemy2atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2defpro"].(float64); !_ok_ { err = errors.New("enemy2defpro error"); return }; _v.Enemy2defpro = float32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave1enemyid"].([]interface{}); !_ok_ { err = errors.New("wave1enemyid error"); return }
_v.Wave1enemyid = 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.Wave1enemyid = append(_v.Wave1enemyid, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave2enemyid"].([]interface{}); !_ok_ { err = errors.New("wave2enemyid error"); return }
_v.Wave2enemyid = 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.Wave2enemyid = append(_v.Wave2enemyid, _list_v_)
}
}
{ var _ok_ bool; if _v.Enemyid, _ok_ = _buf["enemyid"].(string); !_ok_ { err = errors.New("enemyid error"); return } }
{ var _ok_ bool; if _v.MonsterId, _ok_ = _buf["monster_id"].(string); !_ok_ { err = errors.New("monster_id error"); return } }
{ var _ok_ bool; if _v.Battlescene, _ok_ = _buf["battlescene"].(string); !_ok_ { err = errors.New("battlescene error"); return } }
{ var _ok_ bool; if _v.Sceneeffect, _ok_ = _buf["sceneeffect"].(string); !_ok_ { err = errors.New("sceneeffect error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["award"].([]interface{}); !_ok_ { err = errors.New("award error"); return }
_v.Award = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Award = append(_v.Award, _list_v_)
}
}
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _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["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameMainlineHardData(_buf map[string]interface{}) (*GameMainlineHardData, error) {
v := &GameMainlineHardData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameMainlinePurgatory struct {
_dataMap map[int32]*GameMainlinePurgatoryData
_dataList []*GameMainlinePurgatoryData
}
func NewGameMainlinePurgatory(_buf []map[string]interface{}) (*GameMainlinePurgatory, error) {
_dataList := make([]*GameMainlinePurgatoryData, 0, len(_buf))
dataMap := make(map[int32]*GameMainlinePurgatoryData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainlinePurgatoryData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainlinePurgatory{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainlinePurgatory) GetDataMap() map[int32]*GameMainlinePurgatoryData {
return table._dataMap
}
func (table *GameMainlinePurgatory) GetDataList() []*GameMainlinePurgatoryData {
return table._dataList
}
func (table *GameMainlinePurgatory) Get(key int32) *GameMainlinePurgatoryData {
return table._dataMap[key]
}

View File

@ -1,141 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameMainlinePurgatoryData struct {
Id int32
Previoustage int32
Order int32
Linearnum int32
Chapter int32
Route int32
Episodetype int32
Episodelocation []int32
Model string
Effect string
Enemywave int32
Enemy1lv int32
Enemy1hppro float32
Enemy1atkpro float32
Enemy1defpro float32
Enemy2lv int32
Enemy2hppro float32
Enemy2atkpro float32
Enemy2defpro float32
Wave1enemyid []int32
Wave2enemyid []int32
Enemyid string
MonsterId string
Battlescene string
Sceneeffect string
Award []*Gameatn
Title string
Desc string
}
const TypeId_GameMainlinePurgatoryData = -1700526774
func (*GameMainlinePurgatoryData) GetTypeId() int32 {
return -1700526774
}
func (_v *GameMainlinePurgatoryData)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["previoustage"].(float64); !_ok_ { err = errors.New("previoustage error"); return }; _v.Previoustage = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["order"].(float64); !_ok_ { err = errors.New("order error"); return }; _v.Order = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["linearnum"].(float64); !_ok_ { err = errors.New("linearnum error"); return }; _v.Linearnum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapter"].(float64); !_ok_ { err = errors.New("chapter error"); return }; _v.Chapter = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["route"].(float64); !_ok_ { err = errors.New("route error"); return }; _v.Route = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["episodetype"].(float64); !_ok_ { err = errors.New("episodetype error"); return }; _v.Episodetype = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["episodelocation"].([]interface{}); !_ok_ { err = errors.New("episodelocation error"); return }
_v.Episodelocation = 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.Episodelocation = append(_v.Episodelocation, _list_v_)
}
}
{ var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
{ var _ok_ bool; if _v.Effect, _ok_ = _buf["effect"].(string); !_ok_ { err = errors.New("effect error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemywave"].(float64); !_ok_ { err = errors.New("enemywave error"); return }; _v.Enemywave = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1lv"].(float64); !_ok_ { err = errors.New("enemy1lv error"); return }; _v.Enemy1lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1hppro"].(float64); !_ok_ { err = errors.New("enemy1hppro error"); return }; _v.Enemy1hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1atkpro"].(float64); !_ok_ { err = errors.New("enemy1atkpro error"); return }; _v.Enemy1atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy1defpro"].(float64); !_ok_ { err = errors.New("enemy1defpro error"); return }; _v.Enemy1defpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2lv"].(float64); !_ok_ { err = errors.New("enemy2lv error"); return }; _v.Enemy2lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2hppro"].(float64); !_ok_ { err = errors.New("enemy2hppro error"); return }; _v.Enemy2hppro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2atkpro"].(float64); !_ok_ { err = errors.New("enemy2atkpro error"); return }; _v.Enemy2atkpro = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enemy2defpro"].(float64); !_ok_ { err = errors.New("enemy2defpro error"); return }; _v.Enemy2defpro = float32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave1enemyid"].([]interface{}); !_ok_ { err = errors.New("wave1enemyid error"); return }
_v.Wave1enemyid = 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.Wave1enemyid = append(_v.Wave1enemyid, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["wave2enemyid"].([]interface{}); !_ok_ { err = errors.New("wave2enemyid error"); return }
_v.Wave2enemyid = 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.Wave2enemyid = append(_v.Wave2enemyid, _list_v_)
}
}
{ var _ok_ bool; if _v.Enemyid, _ok_ = _buf["enemyid"].(string); !_ok_ { err = errors.New("enemyid error"); return } }
{ var _ok_ bool; if _v.MonsterId, _ok_ = _buf["monster_id"].(string); !_ok_ { err = errors.New("monster_id error"); return } }
{ var _ok_ bool; if _v.Battlescene, _ok_ = _buf["battlescene"].(string); !_ok_ { err = errors.New("battlescene error"); return } }
{ var _ok_ bool; if _v.Sceneeffect, _ok_ = _buf["sceneeffect"].(string); !_ok_ { err = errors.New("sceneeffect error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["award"].([]interface{}); !_ok_ { err = errors.New("award error"); return }
_v.Award = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Award = append(_v.Award, _list_v_)
}
}
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _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["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameMainlinePurgatoryData(_buf map[string]interface{}) (*GameMainlinePurgatoryData, error) {
v := &GameMainlinePurgatoryData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -9,34 +9,26 @@
package cfg
type GameSkillAtk struct {
_dataMap map[int32]*GameSkillAtkData
_dataList []*GameSkillAtkData
}
func NewGameSkillAtk(_buf []map[string]interface{}) (*GameSkillAtk, error) {
_dataList := make([]*GameSkillAtkData, 0, len(_buf))
dataMap := make(map[int32]*GameSkillAtkData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameSkillAtkData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameSkillAtk{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameSkillAtk) GetDataMap() map[int32]*GameSkillAtkData {
return table._dataMap
return &GameSkillAtk{_dataList:_dataList}, nil
}
func (table *GameSkillAtk) GetDataList() []*GameSkillAtkData {
return table._dataList
}
func (table *GameSkillAtk) Get(key int32) *GameSkillAtkData {
return table._dataMap[key]
func (table *GameSkillAtk) Get(index int) *GameSkillAtkData {
return table._dataList[index]
}

View File

@ -12,16 +12,18 @@ import "errors"
type GameSkillAtkData struct {
Id int32
Level int32
MaxLV int32
Name string
Ico string
Act string
Type int32
MaxLV int32
CD []int32
CD int32
Target int32
ChildSkill []*GameChildSkills
Desc []string
ChildSkill *GameChildSkills
Desc string
Buffid []int32
Map string
}
const TypeId_GameSkillAtkData = -1737392307
@ -31,55 +33,17 @@ func (*GameSkillAtkData) GetTypeId() int32 {
}
func (_v *GameSkillAtkData)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["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) }
{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; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; if _v.Act, _ok_ = _buf["act"].(string); !_ok_ { err = errors.New("act error"); return } }
{ 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["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["CD"].([]interface{}); !_ok_ { err = errors.New("CD error"); return }
_v.CD = 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.CD = append(_v.CD, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CD"].(float64); !_ok_ { err = errors.New("CD error"); return }; _v.CD = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Target"].(float64); !_ok_ { err = errors.New("Target error"); return }; _v.Target = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["ChildSkill"].([]interface{}); !_ok_ { err = errors.New("ChildSkill error"); return }
_v.ChildSkill = make([]*GameChildSkills, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *GameChildSkills
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameChildSkills(_x_); err != nil { return } }
_v.ChildSkill = append(_v.ChildSkill, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return }
_v.Desc = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Desc = append(_v.Desc, _list_v_)
}
}
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["ChildSkill"].(map[string]interface{}); !_ok_ { err = errors.New("ChildSkill error"); return }; if _v.ChildSkill, err = DeserializeGameChildSkills(_x_); err != nil { return } }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
@ -94,6 +58,7 @@ func (_v *GameSkillAtkData)Deserialize(_buf map[string]interface{}) (err error)
}
}
{ var _ok_ bool; if _v.Map, _ok_ = _buf["map"].(string); !_ok_ { err = errors.New("map error"); return } }
return
}

View File

@ -13,8 +13,8 @@ import "errors"
type GameSkillPassiveData struct {
Id int32
When string
Where string
AddCon []string
TargetCheck int32
AddCon string
PasPr int32
Type string
MaxEmitTimes int32
@ -30,21 +30,8 @@ func (*GameSkillPassiveData) GetTypeId() int32 {
func (_v *GameSkillPassiveData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.When, _ok_ = _buf["When"].(string); !_ok_ { err = errors.New("When error"); return } }
{ var _ok_ bool; if _v.Where, _ok_ = _buf["Where"].(string); !_ok_ { err = errors.New("Where error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["AddCon"].([]interface{}); !_ok_ { err = errors.New("AddCon error"); return }
_v.AddCon = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.AddCon = append(_v.AddCon, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["TargetCheck"].(float64); !_ok_ { err = errors.New("TargetCheck error"); return }; _v.TargetCheck = int32(_tempNum_) }
{ var _ok_ bool; if _v.AddCon, _ok_ = _buf["AddCon"].(string); !_ok_ { err = errors.New("AddCon error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["PasPr"].(float64); !_ok_ { err = errors.New("PasPr error"); return }; _v.PasPr = int32(_tempNum_) }
{ var _ok_ bool; if _v.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxEmitTimes"].(float64); !_ok_ { err = errors.New("MaxEmitTimes error"); return }; _v.MaxEmitTimes = int32(_tempNum_) }

View File

@ -18,7 +18,9 @@ type GameStroyData struct {
Next int32
Type int32
Bg string
Place int32
Speak string
Listen string
Emoji string
Des string
Chose []int32
@ -27,7 +29,6 @@ type GameStroyData struct {
Move string
Action string
Sound string
Place int32
Position serialization.Vector3
Revolve serialization.Vector3
Size serialization.Vector3
@ -49,7 +50,9 @@ func (_v *GameStroyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["next"].(float64); !_ok_ { err = errors.New("next error"); return }; _v.Next = 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.Bg, _ok_ = _buf["bg"].(string); !_ok_ { err = errors.New("bg error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["place"].(float64); !_ok_ { err = errors.New("place error"); return }; _v.Place = int32(_tempNum_) }
{ var _ok_ bool; if _v.Speak, _ok_ = _buf["speak"].(string); !_ok_ { err = errors.New("speak error"); return } }
{ var _ok_ bool; if _v.Listen, _ok_ = _buf["listen"].(string); !_ok_ { err = errors.New("listen error"); return } }
{ var _ok_ bool; if _v.Emoji, _ok_ = _buf["emoji"].(string); !_ok_ { err = errors.New("emoji error"); return } }
{ var _ok_ bool; if _v.Des, _ok_ = _buf["des"].(string); !_ok_ { err = errors.New("des error"); return } }
{
@ -71,7 +74,6 @@ func (_v *GameStroyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Move, _ok_ = _buf["move"].(string); !_ok_ { err = errors.New("move error"); return } }
{ var _ok_ bool; if _v.Action, _ok_ = _buf["action"].(string); !_ok_ { err = errors.New("action error"); return } }
{ var _ok_ bool; if _v.Sound, _ok_ = _buf["sound"].(string); !_ok_ { err = errors.New("sound error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["place"].(float64); !_ok_ { err = errors.New("place error"); return }; _v.Place = int32(_tempNum_) }
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["position"].(map[string]interface{}); !_ok_ { err = errors.New("position error"); return }
var _x_, _y_, _z_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }