diff --git a/bin/json/game_dispatch_task.json b/bin/json/game_dispatch_task.json
index 9aea54395..eeeb6157e 100644
--- a/bin/json/game_dispatch_task.json
+++ b/bin/json/game_dispatch_task.json
@@ -14,12 +14,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -51,12 +55,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -88,12 +96,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -125,12 +137,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -162,12 +178,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -199,12 +219,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -236,12 +260,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -273,12 +301,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -310,12 +342,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -347,12 +383,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -384,12 +424,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -421,12 +465,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -458,12 +506,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -495,12 +547,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -532,12 +588,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -569,12 +629,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -606,12 +670,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -643,12 +711,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -680,12 +752,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -717,12 +793,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -754,12 +834,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -791,12 +875,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
@@ -828,12 +916,16 @@
},
"taskneed": 2,
"taskreq": [
- "lv",
- "1"
+ {
+ "key": 1,
+ "param": 1
+ }
],
"taskreqex": [
- "star",
- "5"
+ {
+ "key": 2,
+ "param": 5
+ }
],
"reward": [
{
diff --git a/bin/json/game_item.json b/bin/json/game_item.json
index 6c996110c..0a16af34d 100644
--- a/bin/json/game_item.json
+++ b/bin/json/game_item.json
@@ -3083,22 +3083,60 @@
"id": "120001",
"name": {
"key": "itemname_120001",
- "text": "铁矿"
+ "text": "葛伦科火花"
},
- "usetype": 2,
+ "usetype": 3,
"color": 3,
"bagtype": 1,
- "index": 3,
+ "index": 120001,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
- 122
+ 123
],
- "use_skip": 0,
- "upper_limit": 999,
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10001",
+ "ico": "wp_icon_10001",
+ "intr": {
+ "key": "itemdesc_120001",
+ "text": "熔岩泰坦掉落初级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120001",
+ "text": "葛伦科火花不足"
+ }
+ },
+ {
+ "id": "120002",
+ "name": {
+ "key": "itemname_120002",
+ "text": "原始火油"
+ },
+ "usetype": 3,
+ "color": 4,
+ "bagtype": 1,
+ "index": 120002,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
"uselv": 0,
"isani": 0,
"star": 0,
@@ -3106,21 +3144,433 @@
"img": "wp_icon_10002",
"ico": "wp_icon_10002",
"intr": {
- "key": "itemdesc_120001",
- "text": "把它交给铁矿,可以打造稀有装备"
+ "key": "itemdesc_120002",
+ "text": "熔岩泰坦掉落中级材料,可用于打造装备"
},
- "sale": [
- {
- "a": "attr",
- "t": "gold",
- "n": 1000
- }
- ],
+ "sale": [],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
- "key": "itemtipstxt_120001",
- "text": "铁矿不足"
+ "key": "itemtipstxt_120002",
+ "text": "原始火油不足"
+ }
+ },
+ {
+ "id": "120003",
+ "name": {
+ "key": "itemname_120003",
+ "text": "炉心岩浆"
+ },
+ "usetype": 3,
+ "color": 5,
+ "bagtype": 1,
+ "index": 120003,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10003",
+ "ico": "wp_icon_10003",
+ "intr": {
+ "key": "itemdesc_120003",
+ "text": "熔岩泰坦掉落高级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120003",
+ "text": "炉心岩浆不足"
+ }
+ },
+ {
+ "id": "120004",
+ "name": {
+ "key": "itemname_120004",
+ "text": "荒漠枯枝"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 1,
+ "index": 120004,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10004",
+ "ico": "wp_icon_10004",
+ "intr": {
+ "key": "itemdesc_120004",
+ "text": "森林泰坦掉落初级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120004",
+ "text": "荒漠枯枝不足"
+ }
+ },
+ {
+ "id": "120005",
+ "name": {
+ "key": "itemname_120005",
+ "text": "洛基圆木"
+ },
+ "usetype": 3,
+ "color": 4,
+ "bagtype": 1,
+ "index": 120005,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10005",
+ "ico": "wp_icon_10005",
+ "intr": {
+ "key": "itemdesc_120005",
+ "text": "森林泰坦掉落中级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120005",
+ "text": "洛基圆木不足"
+ }
+ },
+ {
+ "id": "120006",
+ "name": {
+ "key": "itemname_120006",
+ "text": "恶魔藤蔓"
+ },
+ "usetype": 3,
+ "color": 5,
+ "bagtype": 1,
+ "index": 120006,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10006",
+ "ico": "wp_icon_10006",
+ "intr": {
+ "key": "itemdesc_120006",
+ "text": "森林泰坦掉落高级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120006",
+ "text": "恶魔藤蔓不足"
+ }
+ },
+ {
+ "id": "120007",
+ "name": {
+ "key": "itemname_120007",
+ "text": "凛冬雪花"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 1,
+ "index": 120007,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10007",
+ "ico": "wp_icon_10007",
+ "intr": {
+ "key": "itemdesc_120007",
+ "text": "森林泰坦掉落初级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120007",
+ "text": "凛冬雪花不足"
+ }
+ },
+ {
+ "id": "120008",
+ "name": {
+ "key": "itemname_120008",
+ "text": "北极冰砖"
+ },
+ "usetype": 3,
+ "color": 4,
+ "bagtype": 1,
+ "index": 120008,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10008",
+ "ico": "wp_icon_10008",
+ "intr": {
+ "key": "itemdesc_120008",
+ "text": "森林泰坦掉落中级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120008",
+ "text": "北极冰砖不足"
+ }
+ },
+ {
+ "id": "120009",
+ "name": {
+ "key": "itemname_120009",
+ "text": "龙之冰晶"
+ },
+ "usetype": 3,
+ "color": 5,
+ "bagtype": 1,
+ "index": 120009,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10009",
+ "ico": "wp_icon_10009",
+ "intr": {
+ "key": "itemdesc_120009",
+ "text": "森林泰坦掉落高级材料,可用于打造装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120009",
+ "text": "龙之冰晶不足"
+ }
+ },
+ {
+ "id": "120101",
+ "name": {
+ "key": "itemname_120101",
+ "text": "精炼石"
+ },
+ "usetype": 3,
+ "color": 10,
+ "bagtype": 1,
+ "index": 120101,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10010",
+ "ico": "wp_icon_10010",
+ "intr": {
+ "key": "itemdesc_120101",
+ "text": "打造时添加精炼石,必出高品质装备"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120101",
+ "text": "精炼石不足"
+ }
+ },
+ {
+ "id": "120102",
+ "name": {
+ "key": "itemname_120102",
+ "text": "太阳石"
+ },
+ "usetype": 3,
+ "color": 10,
+ "bagtype": 1,
+ "index": 120102,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10011",
+ "ico": "wp_icon_10011",
+ "intr": {
+ "key": "itemdesc_120102",
+ "text": "打造时添加太阳石,可以选择打造的套装,添加大量太阳石可以选择打造的套装和套装部位"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120102",
+ "text": "太阳石不足"
+ }
+ },
+ {
+ "id": "120103",
+ "name": {
+ "key": "itemname_120103",
+ "text": "熔岩石"
+ },
+ "usetype": 3,
+ "color": 10,
+ "bagtype": 1,
+ "index": 120103,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10012",
+ "ico": "wp_icon_10012",
+ "intr": {
+ "key": "itemdesc_120103",
+ "text": "打造时添加熔岩石,不增加熔炉CD"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120103",
+ "text": "熔岩石不足"
+ }
+ },
+ {
+ "id": "120104",
+ "name": {
+ "key": "itemname_120104",
+ "text": "木炭"
+ },
+ "usetype": 3,
+ "color": 10,
+ "bagtype": 1,
+ "index": 120104,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 123
+ ],
+ "use_skip": 139,
+ "upper_limit": -1,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "wp_icon_10013",
+ "ico": "wp_icon_10013",
+ "intr": {
+ "key": "itemdesc_120104",
+ "text": "清除熔炉的CD"
+ },
+ "sale": [],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "itemtipstxt_120104",
+ "text": "木炭不足"
}
},
{
@@ -6380,8 +6830,8 @@
{
"id": "600001",
"name": {
- "key": "itemdesc_515005",
- "text": "秘传书通用技能升级"
+ "key": "skilluptools_00001",
+ "text": "秘传书"
},
"usetype": 3,
"color": 5,
@@ -6404,8 +6854,8 @@
"img": "ytx_js_25001",
"ico": "ytx_js_25001",
"intr": {
- "key": "itemdesc_600001",
- "text": "阿宝天赋点"
+ "key": "skilluptools_00001",
+ "text": "秘传书"
},
"sale": [
{
@@ -6417,59 +6867,15 @@
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
- "key": "itemtipstxt_600001",
- "text": "阿宝的天赋点不足"
+ "key": "skilluptoolstxt_00001",
+ "text": "秘传书不足"
}
},
{
- "id": "625001",
+ "id": "600002",
"name": {
- "key": "itemdesc_515005",
- "text": "阿宝守护之心(专属升级)"
- },
- "usetype": 3,
- "color": 5,
- "bagtype": 1,
- "index": 99,
- "special_type": 0,
- "time": 0,
- "effects": "effect_ui_wuping_2",
- "box_id": 0,
- "synthetize_num": 0,
- "access": [
- 155
- ],
- "use_skip": 155,
- "upper_limit": 999,
- "uselv": 0,
- "isani": 0,
- "star": 0,
- "race": 0,
- "img": "ytx_js_25001",
- "ico": "ytx_js_25001",
- "intr": {
- "key": "itemdesc_625001",
- "text": "阿宝天赋点"
- },
- "sale": [
- {
- "a": "attr",
- "t": "gold",
- "n": 1000
- }
- ],
- "synthetize_deplete": [],
- "decompose_deplete": [],
- "tipstxt": {
- "key": "itemtipstxt_625001",
- "text": "阿宝的天赋点不足"
- }
- },
- {
- "id": "625002",
- "name": {
- "key": "itemdesc_515005",
- "text": "经验道具"
+ "key": "herostart_515005",
+ "text": "英雄初级经验道具"
},
"usetype": 12,
"color": 3,
@@ -6492,8 +6898,8 @@
"img": "ytx_js_25001",
"ico": "ytx_js_25001",
"intr": {
- "key": "itemdesc_625002",
- "text": "经验道具"
+ "key": "herostart_515005",
+ "text": "初级功夫卷轴"
},
"sale": [
{
@@ -6505,8 +6911,3352 @@
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
- "key": "itemtipstxt_625002",
+ "key": "herostarttxt_515005",
"text": "阿宝的天赋点不足"
}
+ },
+ {
+ "id": "600003",
+ "name": {
+ "key": "herostart_515006",
+ "text": "英雄中级经验道具"
+ },
+ "usetype": 12,
+ "color": 3,
+ "bagtype": 1,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 155
+ ],
+ "use_skip": 155,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "herostart_515006",
+ "text": "中级功夫卷轴"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "herostarttxt_515006",
+ "text": "阿宝的天赋点不足"
+ }
+ },
+ {
+ "id": "600004",
+ "name": {
+ "key": "herostart_515007",
+ "text": "英雄高级经验道具"
+ },
+ "usetype": 12,
+ "color": 3,
+ "bagtype": 1,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 155
+ ],
+ "use_skip": 155,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "herostart_515007",
+ "text": "高级功夫卷轴"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "herostarttxt_515007",
+ "text": "阿宝的天赋点不足"
+ }
+ },
+ {
+ "id": "600005",
+ "name": {
+ "key": "herostart_515008",
+ "text": "英雄初级升星道具"
+ },
+ "usetype": 13,
+ "color": 4,
+ "bagtype": 2,
+ "index": 100,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 155
+ ],
+ "use_skip": 155,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "herostart_515008",
+ "text": "初级荣耀徽章"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "herostarttxt_515008",
+ "text": "阿宝的天赋点不足"
+ }
+ },
+ {
+ "id": "600006",
+ "name": {
+ "key": "herostart_515009",
+ "text": "英雄中级升星道具"
+ },
+ "usetype": 14,
+ "color": 5,
+ "bagtype": 3,
+ "index": 101,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 155
+ ],
+ "use_skip": 155,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "herostart_515009",
+ "text": "中级荣耀徽章"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "herostarttxt_515009",
+ "text": "阿宝的天赋点不足"
+ }
+ },
+ {
+ "id": "600007",
+ "name": {
+ "key": "herostart_515010",
+ "text": "英雄高级升星道具"
+ },
+ "usetype": 15,
+ "color": 6,
+ "bagtype": 4,
+ "index": 102,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 155
+ ],
+ "use_skip": 155,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "herostart_515010",
+ "text": "高级荣耀徽章"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "herostarttxt_515010",
+ "text": "阿宝的天赋点不足"
+ }
+ },
+ {
+ "id": "613001",
+ "name": {
+ "key": "skilluptools_613001",
+ "text": "闪闪守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_13001",
+ "ico": "ytx_js_13001",
+ "intr": {
+ "key": "skilluptools_613001",
+ "text": "闪闪守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_613001",
+ "text": "闪闪守护之心不足"
+ }
+ },
+ {
+ "id": "613002",
+ "name": {
+ "key": "skilluptools_613002",
+ "text": "食人鱼先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_13002",
+ "ico": "ytx_js_13002",
+ "intr": {
+ "key": "skilluptools_613002",
+ "text": "食人鱼先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_613002",
+ "text": "食人鱼先生守护之心不足"
+ }
+ },
+ {
+ "id": "613003",
+ "name": {
+ "key": "skilluptools_613003",
+ "text": "啊啊守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_13003",
+ "ico": "ytx_js_13003",
+ "intr": {
+ "key": "skilluptools_613003",
+ "text": "啊啊守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_613003",
+ "text": "啊啊守护之心不足"
+ }
+ },
+ {
+ "id": "613004",
+ "name": {
+ "key": "skilluptools_613004",
+ "text": "法夸德勋爵守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_13004",
+ "ico": "ytx_js_13004",
+ "intr": {
+ "key": "skilluptools_613004",
+ "text": "法夸德勋爵守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_613004",
+ "text": "法夸德勋爵守护之心不足"
+ }
+ },
+ {
+ "id": "613005",
+ "name": {
+ "key": "skilluptools_613005",
+ "text": "大大守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_13005",
+ "ico": "ytx_js_13005",
+ "intr": {
+ "key": "skilluptools_613005",
+ "text": "大大守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_613005",
+ "text": "大大守护之心不足"
+ }
+ },
+ {
+ "id": "614001",
+ "name": {
+ "key": "skilluptools_614001",
+ "text": "史图依克守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14001",
+ "ico": "ytx_js_14001",
+ "intr": {
+ "key": "skilluptools_614001",
+ "text": "史图依克守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614001",
+ "text": "史图依克守护之心不足"
+ }
+ },
+ {
+ "id": "614002",
+ "name": {
+ "key": "skilluptools_614002",
+ "text": "大龙守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14002",
+ "ico": "ytx_js_14002",
+ "intr": {
+ "key": "skilluptools_614002",
+ "text": "大龙守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614002",
+ "text": "大龙守护之心不足"
+ }
+ },
+ {
+ "id": "614003",
+ "name": {
+ "key": "skilluptools_614003",
+ "text": "亚丝翠守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14003",
+ "ico": "ytx_js_14003",
+ "intr": {
+ "key": "skilluptools_614003",
+ "text": "亚丝翠守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614003",
+ "text": "亚丝翠守护之心不足"
+ }
+ },
+ {
+ "id": "614004",
+ "name": {
+ "key": "skilluptools_614004",
+ "text": "克莱尔·努涅斯守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14004",
+ "ico": "ytx_js_14004",
+ "intr": {
+ "key": "skilluptools_614004",
+ "text": "克莱尔·努涅斯守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614004",
+ "text": "克莱尔·努涅斯守护之心不足"
+ }
+ },
+ {
+ "id": "614005",
+ "name": {
+ "key": "skilluptools_614005",
+ "text": "鹤大师守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14005",
+ "ico": "ytx_js_14005",
+ "intr": {
+ "key": "skilluptools_614005",
+ "text": "鹤大师守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614005",
+ "text": "鹤大师守护之心不足"
+ }
+ },
+ {
+ "id": "614006",
+ "name": {
+ "key": "skilluptools_614006",
+ "text": "布兰奇守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14006",
+ "ico": "ytx_js_14006",
+ "intr": {
+ "key": "skilluptools_614006",
+ "text": "布兰奇守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614006",
+ "text": "布兰奇守护之心不足"
+ }
+ },
+ {
+ "id": "614007",
+ "name": {
+ "key": "skilluptools_614007",
+ "text": "格里斯特王子守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_14007",
+ "ico": "ytx_js_14007",
+ "intr": {
+ "key": "skilluptools_614007",
+ "text": "格里斯特王子守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_614007",
+ "text": "格里斯特王子守护之心不足"
+ }
+ },
+ {
+ "id": "615001",
+ "name": {
+ "key": "skilluptools_615001",
+ "text": "吉姆·莱克守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_15001",
+ "ico": "ytx_js_15001",
+ "intr": {
+ "key": "skilluptools_615001",
+ "text": "吉姆·莱克守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_615001",
+ "text": "吉姆·莱克守护之心不足"
+ }
+ },
+ {
+ "id": "615002",
+ "name": {
+ "key": "skilluptools_615002",
+ "text": "船长守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_15002",
+ "ico": "ytx_js_15002",
+ "intr": {
+ "key": "skilluptools_615002",
+ "text": "船长守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_615002",
+ "text": "船长守护之心不足"
+ }
+ },
+ {
+ "id": "615003",
+ "name": {
+ "key": "skilluptools_615003",
+ "text": "希沙窦斯守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_15003",
+ "ico": "ytx_js_15003",
+ "intr": {
+ "key": "skilluptools_615003",
+ "text": "希沙窦斯守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_615003",
+ "text": "希沙窦斯守护之心不足"
+ }
+ },
+ {
+ "id": "615004",
+ "name": {
+ "key": "skilluptools_615004",
+ "text": "小欧守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_15004",
+ "ico": "ytx_js_15004",
+ "intr": {
+ "key": "skilluptools_615004",
+ "text": "小欧守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_615004",
+ "text": "小欧守护之心不足"
+ }
+ },
+ {
+ "id": "623001",
+ "name": {
+ "key": "skilluptools_623001",
+ "text": "斯梅克船长守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_23001",
+ "ico": "ytx_js_23001",
+ "intr": {
+ "key": "skilluptools_623001",
+ "text": "斯梅克船长守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_623001",
+ "text": "斯梅克船长守护之心不足"
+ }
+ },
+ {
+ "id": "623002",
+ "name": {
+ "key": "skilluptools_623002",
+ "text": "警卫队长守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_23002",
+ "ico": "ytx_js_23002",
+ "intr": {
+ "key": "skilluptools_623002",
+ "text": "警卫队长守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_623002",
+ "text": "警卫队长守护之心不足"
+ }
+ },
+ {
+ "id": "623003",
+ "name": {
+ "key": "skilluptools_623003",
+ "text": "黛塔黛恩守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_23003",
+ "ico": "ytx_js_23003",
+ "intr": {
+ "key": "skilluptools_623003",
+ "text": "黛塔黛恩守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_623003",
+ "text": "黛塔黛恩守护之心不足"
+ }
+ },
+ {
+ "id": "623004",
+ "name": {
+ "key": "skilluptools_623004",
+ "text": "吉姆·普雷斯科特守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_23004",
+ "ico": "ytx_js_23004",
+ "intr": {
+ "key": "skilluptools_623004",
+ "text": "吉姆·普雷斯科特守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_623004",
+ "text": "吉姆·普雷斯科特守护之心不足"
+ }
+ },
+ {
+ "id": "624001",
+ "name": {
+ "key": "skilluptools_624001",
+ "text": "警长守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24001",
+ "ico": "ytx_js_24001",
+ "intr": {
+ "key": "skilluptools_624001",
+ "text": "警长守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624001",
+ "text": "警长守护之心不足"
+ }
+ },
+ {
+ "id": "624002",
+ "name": {
+ "key": "skilluptools_624002",
+ "text": "牙仙守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24002",
+ "ico": "ytx_js_24002",
+ "intr": {
+ "key": "skilluptools_624002",
+ "text": "牙仙守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624002",
+ "text": "牙仙守护之心不足"
+ }
+ },
+ {
+ "id": "624003",
+ "name": {
+ "key": "skilluptools_624003",
+ "text": "睡神沙人守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24003",
+ "ico": "ytx_js_24003",
+ "intr": {
+ "key": "skilluptools_624003",
+ "text": "睡神沙人守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624003",
+ "text": "睡神沙人守护之心不足"
+ }
+ },
+ {
+ "id": "624004",
+ "name": {
+ "key": "skilluptools_624004",
+ "text": "邦尼兔守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24004",
+ "ico": "ytx_js_24004",
+ "intr": {
+ "key": "skilluptools_624004",
+ "text": "邦尼兔守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624004",
+ "text": "邦尼兔守护之心不足"
+ }
+ },
+ {
+ "id": "624005",
+ "name": {
+ "key": "skilluptools_624005",
+ "text": "金猴守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24005",
+ "ico": "ytx_js_24005",
+ "intr": {
+ "key": "skilluptools_624005",
+ "text": "金猴守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624005",
+ "text": "金猴守护之心不足"
+ }
+ },
+ {
+ "id": "624006",
+ "name": {
+ "key": "skilluptools_624006",
+ "text": "凯尔守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24006",
+ "ico": "ytx_js_24006",
+ "intr": {
+ "key": "skilluptools_624006",
+ "text": "凯尔守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624006",
+ "text": "凯尔守护之心不足"
+ }
+ },
+ {
+ "id": "624007",
+ "name": {
+ "key": "skilluptools_624007",
+ "text": "小钱守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24007",
+ "ico": "ytx_js_24007",
+ "intr": {
+ "key": "skilluptools_624007",
+ "text": "小钱守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624007",
+ "text": "小钱守护之心不足"
+ }
+ },
+ {
+ "id": "624008",
+ "name": {
+ "key": "skilluptools_624008",
+ "text": "暴芙那特守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24008",
+ "ico": "ytx_js_24008",
+ "intr": {
+ "key": "skilluptools_624008",
+ "text": "暴芙那特守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624008",
+ "text": "暴芙那特守护之心不足"
+ }
+ },
+ {
+ "id": "624009",
+ "name": {
+ "key": "skilluptools_624009",
+ "text": "云朵先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_24009",
+ "ico": "ytx_js_24009",
+ "intr": {
+ "key": "skilluptools_624009",
+ "text": "云朵先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_624009",
+ "text": "云朵先生守护之心不足"
+ }
+ },
+ {
+ "id": "625001",
+ "name": {
+ "key": "skilluptools_625001",
+ "text": "阿宝守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25001",
+ "ico": "ytx_js_25001",
+ "intr": {
+ "key": "skilluptools_625001",
+ "text": "阿宝守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_625001",
+ "text": "阿宝守护之心不足"
+ }
+ },
+ {
+ "id": "625002",
+ "name": {
+ "key": "skilluptools_625002",
+ "text": "沃尔夫先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25002",
+ "ico": "ytx_js_25002",
+ "intr": {
+ "key": "skilluptools_625002",
+ "text": "沃尔夫先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_625002",
+ "text": "沃尔夫先生守护之心不足"
+ }
+ },
+ {
+ "id": "625003",
+ "name": {
+ "key": "skilluptools_625003",
+ "text": "羊仙姑守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25003",
+ "ico": "ytx_js_25003",
+ "intr": {
+ "key": "skilluptools_625003",
+ "text": "羊仙姑守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_625003",
+ "text": "羊仙姑守护之心不足"
+ }
+ },
+ {
+ "id": "625004",
+ "name": {
+ "key": "skilluptools_625004",
+ "text": "波比守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_25004",
+ "ico": "ytx_js_25004",
+ "intr": {
+ "key": "skilluptools_625004",
+ "text": "波比守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_625004",
+ "text": "波比守护之心不足"
+ }
+ },
+ {
+ "id": "633001",
+ "name": {
+ "key": "skilluptools_633001",
+ "text": "巫嘎守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33001",
+ "ico": "ytx_js_33001",
+ "intr": {
+ "key": "skilluptools_633001",
+ "text": "巫嘎守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633001",
+ "text": "巫嘎守护之心不足"
+ }
+ },
+ {
+ "id": "633002",
+ "name": {
+ "key": "skilluptools_633002",
+ "text": "坦克守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33002",
+ "ico": "ytx_js_33002",
+ "intr": {
+ "key": "skilluptools_633002",
+ "text": "坦克守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633002",
+ "text": "坦克守护之心不足"
+ }
+ },
+ {
+ "id": "633003",
+ "name": {
+ "key": "skilluptools_633003",
+ "text": "胡德先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33003",
+ "ico": "ytx_js_33003",
+ "intr": {
+ "key": "skilluptools_633003",
+ "text": "胡德先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633003",
+ "text": "胡德先生守护之心不足"
+ }
+ },
+ {
+ "id": "633004",
+ "name": {
+ "key": "skilluptools_633004",
+ "text": "普鲁格兰杰守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33004",
+ "ico": "ytx_js_33004",
+ "intr": {
+ "key": "skilluptools_633004",
+ "text": "普鲁格兰杰守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633004",
+ "text": "普鲁格兰杰守护之心不足"
+ }
+ },
+ {
+ "id": "633005",
+ "name": {
+ "key": "skilluptools_633005",
+ "text": "鼻涕粗守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33005",
+ "ico": "ytx_js_33005",
+ "intr": {
+ "key": "skilluptools_633005",
+ "text": "鼻涕粗守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633005",
+ "text": "鼻涕粗守护之心不足"
+ }
+ },
+ {
+ "id": "633006",
+ "name": {
+ "key": "skilluptools_633006",
+ "text": "珍妮丝·邓普顿守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_33006",
+ "ico": "ytx_js_33006",
+ "intr": {
+ "key": "skilluptools_633006",
+ "text": "珍妮丝·邓普顿守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_633006",
+ "text": "珍妮丝·邓普顿守护之心不足"
+ }
+ },
+ {
+ "id": "634001",
+ "name": {
+ "key": "skilluptools_634001",
+ "text": "贫嘴驴守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34001",
+ "ico": "ytx_js_34001",
+ "intr": {
+ "key": "skilluptools_634001",
+ "text": "贫嘴驴守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634001",
+ "text": "贫嘴驴守护之心不足"
+ }
+ },
+ {
+ "id": "634002",
+ "name": {
+ "key": "skilluptools_634002",
+ "text": "蒂姆·邓普顿守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34002",
+ "ico": "ytx_js_34002",
+ "intr": {
+ "key": "skilluptools_634002",
+ "text": "蒂姆·邓普顿守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634002",
+ "text": "蒂姆·邓普顿守护之心不足"
+ }
+ },
+ {
+ "id": "634003",
+ "name": {
+ "key": "skilluptools_634003",
+ "text": "圣诞老人守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34003",
+ "ico": "ytx_js_34003",
+ "intr": {
+ "key": "skilluptools_634003",
+ "text": "圣诞老人守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634003",
+ "text": "圣诞老人守护之心不足"
+ }
+ },
+ {
+ "id": "634004",
+ "name": {
+ "key": "skilluptools_634004",
+ "text": "瓜哥守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34004",
+ "ico": "ytx_js_34004",
+ "intr": {
+ "key": "skilluptools_634004",
+ "text": "瓜哥守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634004",
+ "text": "瓜哥守护之心不足"
+ }
+ },
+ {
+ "id": "634005",
+ "name": {
+ "key": "skilluptools_634005",
+ "text": "沃尔特·史翠克勒守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34005",
+ "ico": "ytx_js_34005",
+ "intr": {
+ "key": "skilluptools_634005",
+ "text": "沃尔特·史翠克勒守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634005",
+ "text": "沃尔特·史翠克勒守护之心不足"
+ }
+ },
+ {
+ "id": "634006",
+ "name": {
+ "key": "skilluptools_634006",
+ "text": "冰霜杰克守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34006",
+ "ico": "ytx_js_34006",
+ "intr": {
+ "key": "skilluptools_634006",
+ "text": "冰霜杰克守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634006",
+ "text": "冰霜杰克守护之心不足"
+ }
+ },
+ {
+ "id": "634007",
+ "name": {
+ "key": "skilluptools_634007",
+ "text": "菲奥娜守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34007",
+ "ico": "ytx_js_34007",
+ "intr": {
+ "key": "skilluptools_634007",
+ "text": "菲奥娜守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634007",
+ "text": "菲奥娜守护之心不足"
+ }
+ },
+ {
+ "id": "634008",
+ "name": {
+ "key": "skilluptools_634008",
+ "text": "悍夫那特守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_34008",
+ "ico": "ytx_js_34008",
+ "intr": {
+ "key": "skilluptools_634008",
+ "text": "悍夫那特守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_634008",
+ "text": "悍夫那特守护之心不足"
+ }
+ },
+ {
+ "id": "635001",
+ "name": {
+ "key": "skilluptools_635001",
+ "text": "师父守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35001",
+ "ico": "ytx_js_35001",
+ "intr": {
+ "key": "skilluptools_635001",
+ "text": "师父守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635001",
+ "text": "师父守护之心不足"
+ }
+ },
+ {
+ "id": "635002",
+ "name": {
+ "key": "skilluptools_635002",
+ "text": "希卡普守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35002",
+ "ico": "ytx_js_35002",
+ "intr": {
+ "key": "skilluptools_635002",
+ "text": "希卡普守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635002",
+ "text": "希卡普守护之心不足"
+ }
+ },
+ {
+ "id": "635003",
+ "name": {
+ "key": "skilluptools_635003",
+ "text": "漆黑守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35003",
+ "ico": "ytx_js_35003",
+ "intr": {
+ "key": "skilluptools_635003",
+ "text": "漆黑守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635003",
+ "text": "漆黑守护之心不足"
+ }
+ },
+ {
+ "id": "635004",
+ "name": {
+ "key": "skilluptools_635004",
+ "text": "黛安·福克斯顿守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35004",
+ "ico": "ytx_js_35004",
+ "intr": {
+ "key": "skilluptools_635004",
+ "text": "黛安·福克斯顿守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635004",
+ "text": "黛安·福克斯顿守护之心不足"
+ }
+ },
+ {
+ "id": "635005",
+ "name": {
+ "key": "skilluptools_635005",
+ "text": "幸运·普雷斯科特守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35005",
+ "ico": "ytx_js_35005",
+ "intr": {
+ "key": "skilluptools_635005",
+ "text": "幸运·普雷斯科特守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635005",
+ "text": "幸运·普雷斯科特守护之心不足"
+ }
+ },
+ {
+ "id": "635006",
+ "name": {
+ "key": "skilluptools_635006",
+ "text": "平先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_35006",
+ "ico": "ytx_js_35006",
+ "intr": {
+ "key": "skilluptools_635006",
+ "text": "平先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_635006",
+ "text": "平先生守护之心不足"
+ }
+ },
+ {
+ "id": "643001",
+ "name": {
+ "key": "skilluptools_643001",
+ "text": "阿比盖尔·斯通守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43001",
+ "ico": "ytx_js_43001",
+ "intr": {
+ "key": "skilluptools_643001",
+ "text": "阿比盖尔·斯通守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643001",
+ "text": "阿比盖尔·斯通守护之心不足"
+ }
+ },
+ {
+ "id": "643002",
+ "name": {
+ "key": "skilluptools_643002",
+ "text": "果酱教授守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43002",
+ "ico": "ytx_js_43002",
+ "intr": {
+ "key": "skilluptools_643002",
+ "text": "果酱教授守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643002",
+ "text": "果酱教授守护之心不足"
+ }
+ },
+ {
+ "id": "643003",
+ "name": {
+ "key": "skilluptools_643003",
+ "text": "史蒂夫·帕丘克守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43003",
+ "ico": "ytx_js_43003",
+ "intr": {
+ "key": "skilluptools_643003",
+ "text": "史蒂夫·帕丘克守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643003",
+ "text": "史蒂夫·帕丘克守护之心不足"
+ }
+ },
+ {
+ "id": "643004",
+ "name": {
+ "key": "skilluptools_643004",
+ "text": "姜饼人守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43004",
+ "ico": "ytx_js_43004",
+ "intr": {
+ "key": "skilluptools_643004",
+ "text": "姜饼人守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643004",
+ "text": "姜饼人守护之心不足"
+ }
+ },
+ {
+ "id": "643005",
+ "name": {
+ "key": "skilluptools_643005",
+ "text": "瓦希尔指挥官守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43005",
+ "ico": "ytx_js_43005",
+ "intr": {
+ "key": "skilluptools_643005",
+ "text": "瓦希尔指挥官守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643005",
+ "text": "瓦希尔指挥官守护之心不足"
+ }
+ },
+ {
+ "id": "643006",
+ "name": {
+ "key": "skilluptools_643006",
+ "text": "布里奇特守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43006",
+ "ico": "ytx_js_43006",
+ "intr": {
+ "key": "skilluptools_643006",
+ "text": "布里奇特守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643006",
+ "text": "布里奇特守护之心不足"
+ }
+ },
+ {
+ "id": "643007",
+ "name": {
+ "key": "skilluptools_643007",
+ "text": "戈伯守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_43007",
+ "ico": "ytx_js_43007",
+ "intr": {
+ "key": "skilluptools_643007",
+ "text": "戈伯守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_643007",
+ "text": "戈伯守护之心不足"
+ }
+ },
+ {
+ "id": "644001",
+ "name": {
+ "key": "skilluptools_644001",
+ "text": "美肚鲨守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44001",
+ "ico": "ytx_js_44001",
+ "intr": {
+ "key": "skilluptools_644001",
+ "text": "美肚鲨守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644001",
+ "text": "美肚鲨守护之心不足"
+ }
+ },
+ {
+ "id": "644002",
+ "name": {
+ "key": "skilluptools_644002",
+ "text": "蛇先生守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44002",
+ "ico": "ytx_js_44002",
+ "intr": {
+ "key": "skilluptools_644002",
+ "text": "蛇先生守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644002",
+ "text": "蛇先生守护之心不足"
+ }
+ },
+ {
+ "id": "644003",
+ "name": {
+ "key": "skilluptools_644003",
+ "text": "匹诺曹守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44003",
+ "ico": "ytx_js_44003",
+ "intr": {
+ "key": "skilluptools_644003",
+ "text": "匹诺曹守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644003",
+ "text": "匹诺曹守护之心不足"
+ }
+ },
+ {
+ "id": "644004",
+ "name": {
+ "key": "skilluptools_644004",
+ "text": "骇客蛛守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44004",
+ "ico": "ytx_js_44004",
+ "intr": {
+ "key": "skilluptools_644004",
+ "text": "骇客蛛守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644004",
+ "text": "骇客蛛守护之心不足"
+ }
+ },
+ {
+ "id": "644006",
+ "name": {
+ "key": "skilluptools_644006",
+ "text": "悍娇虎守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44006",
+ "ico": "ytx_js_44006",
+ "intr": {
+ "key": "skilluptools_644006",
+ "text": "悍娇虎守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644006",
+ "text": "悍娇虎守护之心不足"
+ }
+ },
+ {
+ "id": "645001",
+ "name": {
+ "key": "skilluptools_645001",
+ "text": "乌龟大师守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_45001",
+ "ico": "ytx_js_45001",
+ "intr": {
+ "key": "skilluptools_645001",
+ "text": "乌龟大师守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_645001",
+ "text": "乌龟大师守护之心不足"
+ }
+ },
+ {
+ "id": "645002",
+ "name": {
+ "key": "skilluptools_645002",
+ "text": "梅林守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_45002",
+ "ico": "ytx_js_45002",
+ "intr": {
+ "key": "skilluptools_645002",
+ "text": "梅林守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_645002",
+ "text": "梅林守护之心不足"
+ }
+ },
+ {
+ "id": "645003",
+ "name": {
+ "key": "skilluptools_645003",
+ "text": "盖守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_45003",
+ "ico": "ytx_js_45003",
+ "intr": {
+ "key": "skilluptools_645003",
+ "text": "盖守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_645003",
+ "text": "盖守护之心不足"
+ }
+ },
+ {
+ "id": "645004",
+ "name": {
+ "key": "skilluptools_645004",
+ "text": "穿靴子的猫守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_45004",
+ "ico": "ytx_js_45004",
+ "intr": {
+ "key": "skilluptools_645004",
+ "text": "穿靴子的猫守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_645004",
+ "text": "穿靴子的猫守护之心不足"
+ }
+ },
+ {
+ "id": "644005",
+ "name": {
+ "key": "skilluptools_644005",
+ "text": "小伊守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_44005",
+ "ico": "ytx_js_44005",
+ "intr": {
+ "key": "skilluptools_644005",
+ "text": "小伊守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_644005",
+ "text": "小伊守护之心不足"
+ }
+ },
+ {
+ "id": "615005",
+ "name": {
+ "key": "skilluptools_615005",
+ "text": "亚力克斯守护之心"
+ },
+ "usetype": 3,
+ "color": 3,
+ "bagtype": 0,
+ "index": 99,
+ "special_type": 0,
+ "time": 0,
+ "effects": "",
+ "box_id": 0,
+ "synthetize_num": 0,
+ "access": [
+ 107
+ ],
+ "use_skip": 166,
+ "upper_limit": 999,
+ "uselv": 0,
+ "isani": 0,
+ "star": 0,
+ "race": 0,
+ "img": "ytx_js_15005",
+ "ico": "ytx_js_15005",
+ "intr": {
+ "key": "skilluptools_615005",
+ "text": "亚力克斯守护之心"
+ },
+ "sale": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ],
+ "synthetize_deplete": [],
+ "decompose_deplete": [],
+ "tipstxt": {
+ "key": "skilluptoolstxt_615005",
+ "text": "亚力克斯守护之心不足"
+ }
}
]
\ No newline at end of file
diff --git a/bin/json/game_smithydrop.json b/bin/json/game_smithydrop.json
new file mode 100644
index 000000000..697857e6b
--- /dev/null
+++ b/bin/json/game_smithydrop.json
@@ -0,0 +1,3376 @@
+[
+ {
+ "id": 1,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 2,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 3,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 4,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 5,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 6,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 7,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 8,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 9,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 10,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 11,
+ "dropid": 1001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 12,
+ "dropid": 1001,
+ "condition": 9,
+ "prize": [
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 13,
+ "dropid": 1002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 14,
+ "dropid": 1002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 15,
+ "dropid": 1002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 16,
+ "dropid": 1003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90002",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 17,
+ "dropid": 1003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90002",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 18,
+ "dropid": 1003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "90002",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 19,
+ "dropid": 1004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10110",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 20,
+ "dropid": 1004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10111",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 21,
+ "dropid": 1004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10112",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 333
+ },
+ {
+ "id": 22,
+ "dropid": 1005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10113",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 23,
+ "dropid": 1005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10120",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 24,
+ "dropid": 1005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10121",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 25,
+ "dropid": 1006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10122",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 26,
+ "dropid": 1006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10123",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 27,
+ "dropid": 1006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10130",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 333
+ },
+ {
+ "id": 28,
+ "dropid": 1007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10131",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 29,
+ "dropid": 1007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10132",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 30,
+ "dropid": 1007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10133",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 31,
+ "dropid": 1008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10140",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 32,
+ "dropid": 1008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10141",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 33,
+ "dropid": 1008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10142",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 34,
+ "dropid": 1009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10143",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 35,
+ "dropid": 1009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 36,
+ "dropid": 1009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 37,
+ "dropid": 1010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 38,
+ "dropid": 1010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 39,
+ "dropid": 1010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 5,
+ "p": 333
+ },
+ {
+ "id": 40,
+ "dropid": 1011,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 41,
+ "dropid": 1011,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 42,
+ "dropid": 1011,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 43,
+ "dropid": 1012,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10110",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 44,
+ "dropid": 1012,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10111",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 45,
+ "dropid": 1012,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10112",
+ "n": 1
+ }
+ ],
+ "star": 6,
+ "p": 333
+ },
+ {
+ "id": 46,
+ "dropid": 1013,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10113",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 47,
+ "dropid": 1013,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10120",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 48,
+ "dropid": 1013,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10121",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 333
+ },
+ {
+ "id": 49,
+ "dropid": 1014,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10122",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 50,
+ "dropid": 1015,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10123",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 51,
+ "dropid": 1016,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10130",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 52,
+ "dropid": 1017,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10131",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 53,
+ "dropid": 1018,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10132",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 54,
+ "dropid": 1019,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10133",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 55,
+ "dropid": 1020,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10140",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 56,
+ "dropid": 1021,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10141",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 57,
+ "dropid": 1022,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10142",
+ "n": 1
+ }
+ ],
+ "star": 2,
+ "p": 1000
+ },
+ {
+ "id": 58,
+ "dropid": 1023,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10143",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 59,
+ "dropid": 1024,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 60,
+ "dropid": 1025,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 61,
+ "dropid": 1026,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 62,
+ "dropid": 1027,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 63,
+ "dropid": 1028,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 3,
+ "p": 1000
+ },
+ {
+ "id": 64,
+ "dropid": 1029,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 1000
+ },
+ {
+ "id": 65,
+ "dropid": 1030,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 66,
+ "dropid": 1030,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 67,
+ "dropid": 1030,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10110",
+ "n": 1
+ }
+ ],
+ "star": 4,
+ "p": 333
+ },
+ {
+ "id": 68,
+ "dropid": 10001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10111",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 69,
+ "dropid": 10001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10112",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 70,
+ "dropid": 10001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10113",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 71,
+ "dropid": 10001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10120",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 72,
+ "dropid": 20003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10121",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 73,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10122",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 74,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10123",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 75,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10130",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 76,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10131",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 77,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10132",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 78,
+ "dropid": 60001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10133",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 79,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10140",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 80,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10141",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 81,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10142",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 82,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10143",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 83,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 84,
+ "dropid": 60002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 85,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 86,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 87,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 88,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 89,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 90,
+ "dropid": 60003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 91,
+ "dropid": 50005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50005",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 92,
+ "dropid": 50006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50006",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 93,
+ "dropid": 50007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50007",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 94,
+ "dropid": 50008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50008",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 95,
+ "dropid": 50009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50009",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 96,
+ "dropid": 50010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50010",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 97,
+ "dropid": 50011,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50011",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 98,
+ "dropid": 50012,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50012",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 99,
+ "dropid": 70001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50001",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 100,
+ "dropid": 70001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50005",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 250
+ },
+ {
+ "id": 101,
+ "dropid": 70001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50009",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 67
+ },
+ {
+ "id": 102,
+ "dropid": 70002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50002",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 103,
+ "dropid": 70002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50006",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 250
+ },
+ {
+ "id": 104,
+ "dropid": 70002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50010",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 67
+ },
+ {
+ "id": 105,
+ "dropid": 70003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50003",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 106,
+ "dropid": 70003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50007",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 250
+ },
+ {
+ "id": 107,
+ "dropid": 70003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50011",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 67
+ },
+ {
+ "id": 108,
+ "dropid": 70004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50004",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 109,
+ "dropid": 70004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50008",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 250
+ },
+ {
+ "id": 110,
+ "dropid": 70004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "50012",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 67
+ },
+ {
+ "id": 111,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10110",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 112,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10111",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 113,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10112",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 114,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10113",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 115,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10120",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 116,
+ "dropid": 80001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10121",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 117,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10122",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 118,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10123",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 119,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10130",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 120,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10131",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 121,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10132",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 122,
+ "dropid": 80002,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10133",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 123,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10140",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 124,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10141",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 125,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10142",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 126,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10143",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 127,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 128,
+ "dropid": 80003,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 129,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 130,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 131,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 132,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 133,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 134,
+ "dropid": 80004,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 135,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10110",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 136,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10111",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 137,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10112",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 138,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10113",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 139,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10120",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 140,
+ "dropid": 80005,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10121",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 141,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10122",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 142,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10123",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 143,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10130",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 144,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10131",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 145,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10132",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 146,
+ "dropid": 80006,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10133",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 147,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10140",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 148,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10141",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 149,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10142",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 150,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10143",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 151,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 152,
+ "dropid": 80007,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 153,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 154,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 155,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 156,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 157,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 158,
+ "dropid": 80008,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 159,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10150",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 160,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10151",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 161,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10152",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 162,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10153",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 163,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 164,
+ "dropid": 80009,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 165,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 166,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 167,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10160",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 168,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10161",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 169,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10162",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 170,
+ "dropid": 80010,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "equi",
+ "t": "10163",
+ "n": 1
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 171,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "513001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 172,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "513002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 173,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "513003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 174,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "513004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 175,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "513005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 176,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 177,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 178,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 179,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 180,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 181,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 182,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "514007",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 183,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "515001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 184,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "515002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 185,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "515003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 186,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "515004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 187,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "523001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 188,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "523002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 189,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "523003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 190,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "523004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 191,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 192,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 193,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 194,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 195,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 196,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 197,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524007",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 198,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524008",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 199,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "524009",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 200,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "525001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 201,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "525002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 202,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "525003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 203,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "525004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 204,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 205,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 206,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 207,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 208,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 209,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "533006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 210,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 211,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 212,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 213,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 214,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 215,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 216,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534007",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 217,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "534008",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 218,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 219,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 220,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 221,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 222,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 223,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "535006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 224,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 225,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 226,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 227,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 228,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 229,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 230,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "543007",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 231,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 232,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 233,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 234,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 235,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544006",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 236,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "545001",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 237,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "545002",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 238,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "545003",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 239,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "545004",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 240,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "544005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ },
+ {
+ "id": 241,
+ "dropid": 1000001,
+ "condition": 0,
+ "prize": [
+ {
+ "a": "item",
+ "t": "515005",
+ "n": 100
+ }
+ ],
+ "star": 1,
+ "p": 1000
+ }
+]
\ No newline at end of file
diff --git a/cmd/v2/ui/views/smithy.go b/cmd/v2/ui/views/smithy.go
index bd6d1f99f..7e989925e 100644
--- a/cmd/v2/ui/views/smithy.go
+++ b/cmd/v2/ui/views/smithy.go
@@ -34,7 +34,21 @@ func (s *SmithyView) CreateView(t *model.TestCase) fyne.CanvasObject {
t.MainType,
"jiaoyi",
&pb.SmithySellReq{
- EquipIds: []string{},
+ EquipIds: []string{},
+ CustomerId: 1,
+ },
+ ); err != nil {
+ logrus.Error(err)
+ return
+ }
+ }
+
+ //拒绝
+ refuse := func() {
+ if err := service.GetPttService().SendToClient(
+ t.MainType,
+ "refuse",
+ &pb.SmithyRefuseReq{
CustomerId: 1,
},
); err != nil {
@@ -43,9 +57,10 @@ func (s *SmithyView) CreateView(t *model.TestCase) fyne.CanvasObject {
}
}
customerBtn := widget.NewButton("顾客", loadCustomer)
+ refuseBtn := widget.NewButton("拒绝", refuse)
jiaoyiBtn := widget.NewButton("交易", jiaoyi)
- btns := container.NewHBox(customerBtn, jiaoyiBtn)
+ btns := container.NewHBox(customerBtn, jiaoyiBtn, refuseBtn)
c := container.NewBorder(btns, nil, nil, nil)
return c
}
diff --git a/comm/weight.go b/comm/weight.go
new file mode 100644
index 000000000..0c08b97ff
--- /dev/null
+++ b/comm/weight.go
@@ -0,0 +1,36 @@
+package comm
+
+import "math/rand"
+
+type WeightItem struct {
+ Id interface{}
+ Weight int
+}
+
+// 权重项目
+type WeightedRandom struct {
+ items []*WeightItem
+ totalWeight int
+}
+
+func NewWeightedRandom(items []*WeightItem) *WeightedRandom {
+ wr := &WeightedRandom{items: items}
+ for _, item := range wr.items {
+ wr.totalWeight += int(item.Weight)
+ }
+ return wr
+}
+
+func (wr *WeightedRandom) Pick() *WeightItem {
+ if wr.totalWeight <= 0 {
+ return nil
+ }
+ randomNumber := rand.Intn(wr.totalWeight)
+ for _, item := range wr.items {
+ if randomNumber < int(item.Weight) {
+ return item
+ }
+ randomNumber -= int(item.Weight)
+ }
+ return nil
+}
diff --git a/modules/atlas/api_atlasaward.go b/modules/atlas/api_atlasaward.go
index 7487d1bcf..2bb47fc10 100644
--- a/modules/atlas/api_atlasaward.go
+++ b/modules/atlas/api_atlasaward.go
@@ -32,6 +32,8 @@ func (this *apiComp) Award(session comm.IUserSession, req *pb.AtlasAwardReq) (co
list.Award += 1
update["award"] = list.Award
this.module.modelPandaAtlas.modifyPandaAtlasList(session.GetUserId(), update)
- session.SendMsg(string(this.module.GetType()), "award", &pb.AtlasAwardResp{})
+ session.SendMsg(string(this.module.GetType()), "award", &pb.AtlasAwardResp{
+ Data: list,
+ })
return
}
diff --git a/modules/dispatch/api_do.go b/modules/dispatch/api_do.go
new file mode 100644
index 000000000..113dbcd44
--- /dev/null
+++ b/modules/dispatch/api_do.go
@@ -0,0 +1,32 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "github.com/golang/protobuf/proto"
+)
+
+// 派遣
+
+func (a *apiComp) DoCheck(session comm.IUserSession, req *pb.DispatchDoReq) (code pb.ErrorCode) {
+ if len(req.HeroId) == 0 || req.TaskId == 0 {
+ return
+ }
+ return
+}
+
+func (a *apiComp) Do(session comm.IUserSession, req *pb.DispatchDoReq) (code pb.ErrorCode, data proto.Message) {
+ if code = a.DoCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+
+ if err := a.module.modelDispatch.dispatch(session.GetUserId(), req.TaskId, req.HeroId); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ rsp := &pb.DispatchDoResp{}
+
+ session.SendMsg(string(a.module.GetType()), "do", rsp)
+ return
+}
diff --git a/modules/dispatch/api_notice.go b/modules/dispatch/api_notice.go
new file mode 100644
index 000000000..fa94e54bf
--- /dev/null
+++ b/modules/dispatch/api_notice.go
@@ -0,0 +1,29 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 公告板信息
+
+func (a *apiComp) NoticeCheck(session comm.IUserSession, req *pb.DispatchNoticeReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Notice(session comm.IUserSession, req *pb.DispatchNoticeReq) (code pb.ErrorCode, data proto.Message) {
+ d := a.module.modelDispatch.getDBDispatch(session.GetUserId())
+
+ if d == nil {
+ d = a.module.modelDispatch.initDispatch(session.GetUserId())
+ return
+ }
+ rsp := &pb.DispatchNoticeResp{
+ Dispatch: d,
+ }
+
+ session.SendMsg(string(a.module.GetType()), "notice", rsp)
+ return
+}
diff --git a/modules/dispatch/api_receive.go b/modules/dispatch/api_receive.go
new file mode 100644
index 000000000..a66ca3e7a
--- /dev/null
+++ b/modules/dispatch/api_receive.go
@@ -0,0 +1,30 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 领取派遣奖励
+
+func (a *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Receive(session comm.IUserSession, req *pb.DispatchReceiveReq) (code pb.ErrorCode, data proto.Message) {
+
+ d := a.module.modelDispatch.getDBDispatch(session.GetUserId())
+ if d == nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+
+ a.module.modelDispatch.taskRandom(session.GetUserId(), d.Nb.Lv)
+
+ rsp := &pb.DispatchReceiveResp{}
+
+ session.SendMsg(string(a.module.GetType()), "receive", rsp)
+ return
+}
diff --git a/modules/dispatch/api_refresh.go b/modules/dispatch/api_refresh.go
new file mode 100644
index 000000000..3c38c2583
--- /dev/null
+++ b/modules/dispatch/api_refresh.go
@@ -0,0 +1,21 @@
+package dispatch
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+// 刷新
+func (a *apiComp) RefreshCheck(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode) {
+ return
+}
+
+func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) (code pb.ErrorCode, data proto.Message) {
+
+ rsp := &pb.DispatchRefreshResp{}
+
+ session.SendMsg(string(a.module.GetType()), "refresh", rsp)
+ return
+}
diff --git a/modules/dispatch/configure.go b/modules/dispatch/configure.go
new file mode 100644
index 000000000..150f8c928
--- /dev/null
+++ b/modules/dispatch/configure.go
@@ -0,0 +1,84 @@
+package dispatch
+
+import (
+ "fmt"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ cfg "go_dreamfactory/sys/configure/structs"
+)
+
+const (
+ gameDispatchLv = "game_dispatch_lv.json"
+ gameDispatchTask = "game_dispatch_task.json"
+)
+
+type configureComp struct {
+ modules.MCompConfigure
+}
+
+func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ err = this.MCompConfigure.Init(service, module, comp, options)
+ err = this.LoadMultiConfigure(map[string]interface{}{
+ gameDispatchLv: cfg.NewGameDispatch_Lv,
+ gameDispatchTask: cfg.NewGameDispatch_Task,
+ })
+ return
+}
+
+// 公告栏配置
+func (this *configureComp) getDispatchLvConf(lv int32) (data *cfg.GameDispatch_LvData, err error) {
+ var v interface{}
+
+ if v, err = this.GetConfigure(gameDispatchLv); err != nil {
+ err = fmt.Errorf("%T no is *cfg.GameDispatchLv", v)
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Lv)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatchLv", v)
+ return
+ }
+
+ if data, ok = d.GetDataMap()[lv]; ok {
+ return
+ }
+ }
+ return
+}
+
+//任务配置
+func(this *configureComp) getDispatchTaskConf(taskId int32) (data *cfg.GameDispatch_TaskData,err error) {
+ var v interface{}
+
+ if v, err = this.GetConfigure(gameDispatchTask); err != nil {
+ err = fmt.Errorf("%T no is *cfg.GameDispatchTask", v)
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Task)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatchTask", v)
+ return
+ }
+
+ if data, ok = d.GetDataMap()[taskId]; ok {
+ return
+ }
+ }
+ return
+}
+
+// 任务列表
+func (this *configureComp) getDispatchListConf() (list []*cfg.GameDispatch_TaskData) {
+ if v, err := this.GetConfigure(gameDispatchTask); err != nil {
+ return
+ } else {
+ d, ok := v.(*cfg.GameDispatch_Task)
+ if !ok {
+ err = fmt.Errorf("%T is not *cfg.GameDispatch_Task", v)
+ return
+ }
+
+ list = d.GetDataList()
+ }
+ return
+}
diff --git a/modules/dispatch/model_dispatch.go b/modules/dispatch/model_dispatch.go
index 347acabc4..a92f66cf8 100644
--- a/modules/dispatch/model_dispatch.go
+++ b/modules/dispatch/model_dispatch.go
@@ -1,9 +1,13 @@
package dispatch
import (
+ "errors"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/sys/configure"
+ "go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
@@ -26,3 +30,177 @@ func (this *modelDispatch) Init(service core.IService, module core.IModule, comp
return
}
+
+func (this *modelDispatch) initDispatch(uid string) (dis *pb.DBDispatch) {
+ taskIds, err := this.taskRandom(uid, 1)
+ if err != nil {
+ return
+ }
+ if len(taskIds) == 0 {
+ return
+ }
+
+ dis = &pb.DBDispatch{
+ Uid: uid,
+ Ticket: 6,
+ Nb: &pb.Noticeboard{
+ Lv: 1,
+ },
+ }
+
+ for _, v := range taskIds {
+ taskConf, err := this.module.configure.getDispatchTaskConf(v)
+ if err != nil {
+ continue
+ }
+ //接续截至时间
+ duration := configure.Now().Unix() + int64(taskConf.Taskcd)
+ dis.Nb.Tasks = append(dis.Nb.Tasks, &pb.DispatchTask{
+ TaskId: v,
+ Duration: duration,
+ })
+ }
+
+ if err := this.Add(uid, dis); err != nil {
+ return
+ }
+
+ return
+}
+
+// 获取派遣数据
+func (this *modelDispatch) getDBDispatch(uid string) *pb.DBDispatch {
+ dis := &pb.DBDispatch{}
+ if err := this.Get(uid, dis); err != nil {
+ return nil
+ }
+ return nil
+}
+
+// 随机任务
+func (this *modelDispatch) taskRandom(uid string, noticeLv int32) (taskIds []int32, err error) {
+ d := this.getDBDispatch(uid)
+ if d == nil {
+ return nil, errors.New("no data")
+ }
+
+ if d.Nb == nil {
+ return nil, errors.New("notice is nil")
+ }
+
+ conf, err := this.module.configure.getDispatchLvConf(noticeLv)
+ if err != nil {
+ return nil, err
+ }
+
+ var items []*comm.WeightItem
+ for i, v := range conf.Probability {
+ items = append(items, &comm.WeightItem{Id: (i + 1), Weight: int(v)})
+ }
+
+ wr := comm.NewWeightedRandom(items)
+ //任务类型
+ var taskType int
+ if c := wr.Pick(); c != nil {
+ taskType = c.Id.(int)
+ }
+
+ confList := this.module.configure.getDispatchListConf()
+ var tIds []int32
+ for _, v := range confList {
+ if int(v.Type) == taskType {
+ tIds = append(tIds, v.Id)
+ }
+ }
+
+ //判断随机数量
+ var n int
+ n = len(d.Nb.Tasks)
+
+ if len(taskIds) > 0 {
+ ids := utils.RandomNumbers(0, len(tIds), n)
+ for i := 0; i < len(ids); i++ {
+ taskIds = append(taskIds, tIds[i])
+ }
+ }
+ return
+}
+
+// 验证英雄的条件
+func (this *modelDispatch) validHeroCond(uid string, taskId int32, heroId string) (ok bool, err error) {
+ //taskConf
+ gd, err := this.module.configure.getDispatchTaskConf(taskId)
+ if err != nil {
+ return
+ }
+
+ //获取英雄信息
+ hero, code := this.module.ModuleHero.GetHeroByObjID(uid, heroId)
+
+ //校验英雄的条件
+ if code == pb.ErrorCode_Success && hero != nil {
+ for _, v := range gd.Taskreq {
+ switch v.Key {
+ case 1: //lv
+ if hero.Lv >= v.Param {
+ ok = true
+ return
+ }
+ case 2: //star
+ if hero.Star >= v.Param {
+ ok = true
+ return
+ }
+ }
+ }
+ }
+
+ //校验英雄是否已被派遣
+ dispatch := this.getDBDispatch(uid)
+ if dispatch == nil {
+ return
+ }
+
+ for _, v := range dispatch.Nb.Tasks {
+ for _, h := range v.HeroIds {
+ if h == heroId {
+ ok = false
+ return
+ }
+ }
+ }
+
+ return
+}
+
+// 派遣
+func (this *modelDispatch) dispatch(uid string, taskId int32, heroIds []string) error {
+ for _, heroId := range heroIds {
+ if ok, err := this.validHeroCond(uid, taskId, heroId); err == nil {
+ if !ok {
+ return comm.NewCustomError(pb.ErrorCode_DispatchHeroNoReached)
+ }
+ } else {
+ return err
+ }
+ }
+
+ d := this.getDBDispatch(uid)
+ if d == nil {
+ return errors.New("no data")
+ }
+
+ for _, v := range d.Nb.Tasks {
+ if v.TaskId == taskId && v.Status == 0 {
+ v.HeroIds = heroIds
+ }
+ }
+
+ update := map[string]interface{}{
+ "nb": d.Nb.Tasks,
+ }
+ if err := this.Change(uid, update); err != nil {
+ return err
+ }
+ return nil
+}
diff --git a/modules/dispatch/module.go b/modules/dispatch/module.go
index 3ab56bfb5..444974531 100644
--- a/modules/dispatch/module.go
+++ b/modules/dispatch/module.go
@@ -9,19 +9,27 @@ import (
// 派遣
type Dispatch struct {
modules.ModuleBase
- api *apiComp
+ api *apiComp
+ configure *configureComp
+ modelDispatch *modelDispatch
}
func NewModule() core.IModule {
return &Dispatch{}
}
-func (this *Dispatch) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error){
+func (this *Dispatch) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
-
func (this *Dispatch) GetType() core.M_Modules {
return comm.ModuleDispatch
}
+
+func (this *Dispatch) OnInstallComp() {
+ this.ModuleBase.OnInstallComp()
+ this.api = this.RegisterComp(new(apiComp)).(*apiComp)
+ this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
+ this.modelDispatch = this.RegisterComp(new(modelDispatch)).(*modelDispatch)
+}
diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go
index 82d08cd58..258c7c0c6 100644
--- a/modules/smithy/api_forgeequip.go
+++ b/modules/smithy/api_forgeequip.go
@@ -29,6 +29,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
customLv int32 // 定制装备的等级
rsp *pb.SmithyForgeEquipResp
needTemperatureCos int32 // 需要消耗的温度
+ maxT int32
)
rsp = &pb.SmithyForgeEquipResp{}
update = make(map[string]interface{})
@@ -53,12 +54,11 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
return
}
stove.Data[req.ReelId] = &pb.Mastery{
- Lv: 1,
+ Lv: 0,
Value: 0,
}
}
- stove.Data[req.ReelId].Value += 1
- stove.Forge[req.ReelId] += 1
+
// 是否是精益打造
if req.Quality > 0 {
costRes = append(costRes, reelcfg.RefineCos)
@@ -85,7 +85,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
needTemperatureCos = reelcfg.TemperatureCos
// 熟练度减少的温度
t := this.module.modelStove.CheckTemperature(req.ReelId, stove.Data[req.ReelId].Lv)
- needTemperatureCos = reelcfg.TemperatureCos * (1000 - t) / 1000
+ needTemperatureCos = reelcfg.TemperatureCos * (1000 - t) / 1000 // 千分比
if req.Lava > 0 { // 是否是熔岩打造
exemption := this.module.configure.GetGlobalConf().ExemptionTemperatureCos // 预计消耗温度
@@ -133,28 +133,6 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
return
}
- // 检查是否提升了熟练度等级
- nextProficiency := this.module.configure.GetSmithyProficileData(req.ReelId, stove.Data[req.ReelId].Lv+1)
- if nextProficiency != nil && nextProficiency.Proficiency <= stove.Data[req.ReelId].Value { // 提升熟练度
- stove.Data[req.ReelId].Lv += 1
- stove.Data[req.ReelId].Value = 0
- // 校验是否解锁了新的图纸
- if nextProficiency.Type == comm.SmithyReelType3 {
- stove.Data[nextProficiency.Value1] = &pb.Mastery{
- Lv: 1,
- Value: 0,
- }
- }
- // 是否解锁新套装
- if nextProficiency.Type == comm.SmithyReelType4 {
- if rst, err := this.module.ModuleUser.GetUserExpand(session.GetUserId()); err == nil {
- rst.SuiteId = append(rst.SuiteId, nextProficiency.Value1)
- update := make(map[string]interface{}, 0)
- update["suiteId"] = rst.SuiteId
- this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), update)
- }
- }
- }
if code = this.module.ConsumeRes(session, costRes, true); code != pb.ErrorCode_Success {
return
}
@@ -183,11 +161,41 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
}
}
- stove.RecoveTime = configure.Now().Unix()
+ if stoveLvConf := this.module.configure.GetSmithyStoveConf(stove.Lv); stoveLvConf != nil {
+ maxT = stoveLvConf.MaxTemperature
+ }
+ if stove.RecoveTime == 0 && stove.Temperature <= maxT {
+ stove.RecoveTime = configure.Now().Unix()
+ update["recoveTime"] = stove.RecoveTime
+ }
+ stove.Data[req.ReelId].Value += 1
+ stove.Forge[req.ReelId] += 1
update["data"] = stove.Data
- update["recoveTime"] = stove.RecoveTime
+
update["forge"] = stove.Forge // 打造次数
this.module.modelStove.updateSmithyStove(session.GetUserId(), update)
+ // 检查是否提升了熟练度等级
+ nextProficiency := this.module.configure.GetSmithyProficileData(req.ReelId, stove.Data[req.ReelId].Lv+1)
+ if nextProficiency != nil && nextProficiency.Proficiency <= stove.Data[req.ReelId].Value { // 提升熟练度
+ stove.Data[req.ReelId].Lv += 1
+ stove.Data[req.ReelId].Value = 0
+ // 校验是否解锁了新的图纸
+ if nextProficiency.Type == comm.SmithyReelType3 {
+ stove.Data[nextProficiency.Value1] = &pb.Mastery{
+ Lv: 1,
+ Value: 0,
+ }
+ }
+ // 是否解锁新套装
+ if nextProficiency.Type == comm.SmithyReelType4 {
+ if rst, err := this.module.ModuleUser.GetUserExpand(session.GetUserId()); err == nil {
+ rst.SuiteId = append(rst.SuiteId, nextProficiency.Value1)
+ update := make(map[string]interface{}, 0)
+ update["suiteId"] = rst.SuiteId
+ this.module.ModuleUser.ChangeUserExpand(session.GetUserId(), update)
+ }
+ }
+ }
rsp.Data = stove
session.SendMsg(string(this.module.GetType()), "forgeequip", rsp)
// 更新图鉴信息
diff --git a/modules/smithy/api_trade.go b/modules/smithy/api_trade.go
index 9b2160a5e..4710c7ae8 100644
--- a/modules/smithy/api_trade.go
+++ b/modules/smithy/api_trade.go
@@ -38,14 +38,14 @@ func (this *apiComp) Sell(session comm.IUserSession, req *pb.SmithySellReq) (cod
return
}
- conf := this.module.configure.GetSmithyCustomerConf(req.CustomerId)
- if conf == nil {
- code = pb.ErrorCode_ConfigNoFound
- return
- }
+ // conf := this.module.configure.GetSmithyCustomerConf(req.CustomerId)
+ // if conf == nil {
+ // code = pb.ErrorCode_ConfigNoFound
+ // return
+ // }
- // 发奖励
- this.module.DispenseRes(session, conf.Reword, true)
+ // // 发奖励
+ // this.module.DispenseRes(session, conf.Reword, true)
rsp := &pb.SmithySellResp{
CustomerId: req.CustomerId,
diff --git a/modules/smithy/comp_configure.go b/modules/smithy/comp_configure.go
index e7edce6f6..42c68ebde 100644
--- a/modules/smithy/comp_configure.go
+++ b/modules/smithy/comp_configure.go
@@ -22,6 +22,7 @@ const (
game_smithyatlaslv = "game_smithyatlaslv.json" // 收藏等级积分
game_smithyatlasscore = "game_smithyatlasscore.json" // 图鉴积分
game_smithytask = "game_smithytask.json" //图鉴任务
+ game_smithyDrop = "game_smithydrop.json" //装备掉落
)
// /配置管理基础组件
@@ -293,13 +294,13 @@ func (this *configureComp) LoadSmithyAtlasScoreConf() {
}
// 获取图鉴任务配置
-func(this *configureComp) GetSmithyTask(taskId int32) (data *cfg.GameSmithyTaskData) {
+func (this *configureComp) GetSmithyTask(taskId int32) (data *cfg.GameSmithyTaskData) {
if v, err := this.GetConfigure(game_smithytask); err == nil {
- if configure, ok := v.(*cfg.GameSmithyTask); ok {
- data = configure.Get(taskId)
- return
- }
- }
- this.module.Errorf("GetSmithyTask notfound taskId:%d", taskId)
- return
-}
\ No newline at end of file
+ if configure, ok := v.(*cfg.GameSmithyTask); ok {
+ data = configure.Get(taskId)
+ return
+ }
+ }
+ this.module.Errorf("GetSmithyTask notfound taskId:%d", taskId)
+ return
+}
diff --git a/pb/dispatch_db.pb.go b/pb/dispatch_db.pb.go
new file mode 100644
index 000000000..4b536cae1
--- /dev/null
+++ b/pb/dispatch_db.pb.go
@@ -0,0 +1,349 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: dispatch/dispatch_db.proto
+
+package pb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 玩家派遣信息
+type DBDispatch struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //
+ Ticket int32 `protobuf:"varint,2,opt,name=ticket,proto3" json:"ticket" bson:"ticket"` //门票
+ Nb *Noticeboard `protobuf:"bytes,3,opt,name=nb,proto3" json:"nb" bson:"nb"` //公告栏
+}
+
+func (x *DBDispatch) Reset() {
+ *x = DBDispatch{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBDispatch) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBDispatch) ProtoMessage() {}
+
+func (x *DBDispatch) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DBDispatch.ProtoReflect.Descriptor instead.
+func (*DBDispatch) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DBDispatch) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBDispatch) GetTicket() int32 {
+ if x != nil {
+ return x.Ticket
+ }
+ return 0
+}
+
+func (x *DBDispatch) GetNb() *Noticeboard {
+ if x != nil {
+ return x.Nb
+ }
+ return nil
+}
+
+// 公告栏
+type Noticeboard struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Lv int32 `protobuf:"varint,1,opt,name=lv,proto3" json:"lv" bson:"lv"` // 公告栏等级
+ NoticeType int32 `protobuf:"varint,2,opt,name=noticeType,proto3" json:"noticeType" bson:"noticeType"` // 公告栏类型
+ Tasks []*DispatchTask `protobuf:"bytes,3,rep,name=tasks,proto3" json:"tasks" bson:"tasks"` //当前公告任务
+}
+
+func (x *Noticeboard) Reset() {
+ *x = Noticeboard{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Noticeboard) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Noticeboard) ProtoMessage() {}
+
+func (x *Noticeboard) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Noticeboard.ProtoReflect.Descriptor instead.
+func (*Noticeboard) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Noticeboard) GetLv() int32 {
+ if x != nil {
+ return x.Lv
+ }
+ return 0
+}
+
+func (x *Noticeboard) GetNoticeType() int32 {
+ if x != nil {
+ return x.NoticeType
+ }
+ return 0
+}
+
+func (x *Noticeboard) GetTasks() []*DispatchTask {
+ if x != nil {
+ return x.Tasks
+ }
+ return nil
+}
+
+// 派遣任务
+type DispatchTask struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId" bson:"taskId"` //任务ID
+ Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status" bson:"status"` //任务状态 默认0 1任务中 2任务完成
+ Duration int64 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration" bson:"duration"` //持续截至时间
+ LeftTime int64 `protobuf:"varint,4,opt,name=leftTime,proto3" json:"leftTime" bson:"leftTime"` //任务截至时间
+ HeroIds []string `protobuf:"bytes,5,rep,name=heroIds,proto3" json:"heroIds"` //go_tags(`bson:"heroIds"`) 派遣的英雄
+}
+
+func (x *DispatchTask) Reset() {
+ *x = DispatchTask{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_db_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchTask) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchTask) ProtoMessage() {}
+
+func (x *DispatchTask) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_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 DispatchTask.ProtoReflect.Descriptor instead.
+func (*DispatchTask) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_db_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *DispatchTask) GetTaskId() int32 {
+ if x != nil {
+ return x.TaskId
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetStatus() int32 {
+ if x != nil {
+ return x.Status
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetDuration() int64 {
+ if x != nil {
+ return x.Duration
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetLeftTime() int64 {
+ if x != nil {
+ return x.LeftTime
+ }
+ return 0
+}
+
+func (x *DispatchTask) GetHeroIds() []string {
+ if x != nil {
+ return x.HeroIds
+ }
+ return nil
+}
+
+var File_dispatch_dispatch_db_proto protoreflect.FileDescriptor
+
+var file_dispatch_dispatch_db_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x54, 0x0a, 0x0a,
+ 0x44, 0x42, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06,
+ 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x69,
+ 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x02, 0x6e, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x02,
+ 0x6e, 0x62, 0x22, 0x62, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x62, 0x6f, 0x61, 0x72,
+ 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c,
+ 0x76, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x0d, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52,
+ 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
+ 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_dispatch_dispatch_db_proto_rawDescOnce sync.Once
+ file_dispatch_dispatch_db_proto_rawDescData = file_dispatch_dispatch_db_proto_rawDesc
+)
+
+func file_dispatch_dispatch_db_proto_rawDescGZIP() []byte {
+ file_dispatch_dispatch_db_proto_rawDescOnce.Do(func() {
+ file_dispatch_dispatch_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_dispatch_dispatch_db_proto_rawDescData)
+ })
+ return file_dispatch_dispatch_db_proto_rawDescData
+}
+
+var file_dispatch_dispatch_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_dispatch_dispatch_db_proto_goTypes = []interface{}{
+ (*DBDispatch)(nil), // 0: DBDispatch
+ (*Noticeboard)(nil), // 1: Noticeboard
+ (*DispatchTask)(nil), // 2: DispatchTask
+}
+var file_dispatch_dispatch_db_proto_depIdxs = []int32{
+ 1, // 0: DBDispatch.nb:type_name -> Noticeboard
+ 2, // 1: Noticeboard.tasks:type_name -> DispatchTask
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_dispatch_dispatch_db_proto_init() }
+func file_dispatch_dispatch_db_proto_init() {
+ if File_dispatch_dispatch_db_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_dispatch_dispatch_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBDispatch); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Noticeboard); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchTask); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_dispatch_dispatch_db_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_dispatch_dispatch_db_proto_goTypes,
+ DependencyIndexes: file_dispatch_dispatch_db_proto_depIdxs,
+ MessageInfos: file_dispatch_dispatch_db_proto_msgTypes,
+ }.Build()
+ File_dispatch_dispatch_db_proto = out.File
+ file_dispatch_dispatch_db_proto_rawDesc = nil
+ file_dispatch_dispatch_db_proto_goTypes = nil
+ file_dispatch_dispatch_db_proto_depIdxs = nil
+}
diff --git a/pb/dispatch_msg.pb.go b/pb/dispatch_msg.pb.go
new file mode 100644
index 000000000..7be098a6b
--- /dev/null
+++ b/pb/dispatch_msg.pb.go
@@ -0,0 +1,538 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: dispatch/dispatch_msg.proto
+
+package pb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 玩家公告
+type DispatchNoticeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchNoticeReq) Reset() {
+ *x = DispatchNoticeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchNoticeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchNoticeReq) ProtoMessage() {}
+
+func (x *DispatchNoticeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchNoticeReq.ProtoReflect.Descriptor instead.
+func (*DispatchNoticeReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{0}
+}
+
+type DispatchNoticeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Dispatch *DBDispatch `protobuf:"bytes,1,opt,name=dispatch,proto3" json:"dispatch"`
+}
+
+func (x *DispatchNoticeResp) Reset() {
+ *x = DispatchNoticeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchNoticeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchNoticeResp) ProtoMessage() {}
+
+func (x *DispatchNoticeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchNoticeResp.ProtoReflect.Descriptor instead.
+func (*DispatchNoticeResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *DispatchNoticeResp) GetDispatch() *DBDispatch {
+ if x != nil {
+ return x.Dispatch
+ }
+ return nil
+}
+
+//刷新公告
+type DispatchRefreshReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchRefreshReq) Reset() {
+ *x = DispatchRefreshReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchRefreshReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchRefreshReq) ProtoMessage() {}
+
+func (x *DispatchRefreshReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchRefreshReq.ProtoReflect.Descriptor instead.
+func (*DispatchRefreshReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{2}
+}
+
+type DispatchRefreshResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchRefreshResp) Reset() {
+ *x = DispatchRefreshResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchRefreshResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchRefreshResp) ProtoMessage() {}
+
+func (x *DispatchRefreshResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchRefreshResp.ProtoReflect.Descriptor instead.
+func (*DispatchRefreshResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{3}
+}
+
+//一键领取奖励
+type DispatchReceiveReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchReceiveReq) Reset() {
+ *x = DispatchReceiveReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchReceiveReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchReceiveReq) ProtoMessage() {}
+
+func (x *DispatchReceiveReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchReceiveReq.ProtoReflect.Descriptor instead.
+func (*DispatchReceiveReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{4}
+}
+
+type DispatchReceiveResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchReceiveResp) Reset() {
+ *x = DispatchReceiveResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchReceiveResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchReceiveResp) ProtoMessage() {}
+
+func (x *DispatchReceiveResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchReceiveResp.ProtoReflect.Descriptor instead.
+func (*DispatchReceiveResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{5}
+}
+
+// 派遣
+type DispatchDoReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId"`
+ HeroId []string `protobuf:"bytes,2,rep,name=heroId,proto3" json:"heroId"`
+}
+
+func (x *DispatchDoReq) Reset() {
+ *x = DispatchDoReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchDoReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchDoReq) ProtoMessage() {}
+
+func (x *DispatchDoReq) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchDoReq.ProtoReflect.Descriptor instead.
+func (*DispatchDoReq) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *DispatchDoReq) GetTaskId() int32 {
+ if x != nil {
+ return x.TaskId
+ }
+ return 0
+}
+
+func (x *DispatchDoReq) GetHeroId() []string {
+ if x != nil {
+ return x.HeroId
+ }
+ return nil
+}
+
+type DispatchDoResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DispatchDoResp) Reset() {
+ *x = DispatchDoResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DispatchDoResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DispatchDoResp) ProtoMessage() {}
+
+func (x *DispatchDoResp) ProtoReflect() protoreflect.Message {
+ mi := &file_dispatch_dispatch_msg_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DispatchDoResp.ProtoReflect.Descriptor instead.
+func (*DispatchDoResp) Descriptor() ([]byte, []int) {
+ return file_dispatch_dispatch_msg_proto_rawDescGZIP(), []int{7}
+}
+
+var File_dispatch_dispatch_msg_proto protoreflect.FileDescriptor
+
+var file_dispatch_dispatch_msg_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x64,
+ 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68,
+ 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x69, 0x73,
+ 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x22, 0x3d,
+ 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x52, 0x08, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x22, 0x14, 0x0a,
+ 0x12, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
+ 0x52, 0x65, 0x71, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52,
+ 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x69,
+ 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71,
+ 0x22, 0x15, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x3f, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x44, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x70,
+ 0x61, 0x74, 0x63, 0x68, 0x44, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_dispatch_dispatch_msg_proto_rawDescOnce sync.Once
+ file_dispatch_dispatch_msg_proto_rawDescData = file_dispatch_dispatch_msg_proto_rawDesc
+)
+
+func file_dispatch_dispatch_msg_proto_rawDescGZIP() []byte {
+ file_dispatch_dispatch_msg_proto_rawDescOnce.Do(func() {
+ file_dispatch_dispatch_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_dispatch_dispatch_msg_proto_rawDescData)
+ })
+ return file_dispatch_dispatch_msg_proto_rawDescData
+}
+
+var file_dispatch_dispatch_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_dispatch_dispatch_msg_proto_goTypes = []interface{}{
+ (*DispatchNoticeReq)(nil), // 0: DispatchNoticeReq
+ (*DispatchNoticeResp)(nil), // 1: DispatchNoticeResp
+ (*DispatchRefreshReq)(nil), // 2: DispatchRefreshReq
+ (*DispatchRefreshResp)(nil), // 3: DispatchRefreshResp
+ (*DispatchReceiveReq)(nil), // 4: DispatchReceiveReq
+ (*DispatchReceiveResp)(nil), // 5: DispatchReceiveResp
+ (*DispatchDoReq)(nil), // 6: DispatchDoReq
+ (*DispatchDoResp)(nil), // 7: DispatchDoResp
+ (*DBDispatch)(nil), // 8: DBDispatch
+}
+var file_dispatch_dispatch_msg_proto_depIdxs = []int32{
+ 8, // 0: DispatchNoticeResp.dispatch:type_name -> DBDispatch
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_dispatch_dispatch_msg_proto_init() }
+func file_dispatch_dispatch_msg_proto_init() {
+ if File_dispatch_dispatch_msg_proto != nil {
+ return
+ }
+ file_dispatch_dispatch_db_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_dispatch_dispatch_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchNoticeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchNoticeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchRefreshReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchRefreshResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchReceiveReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchReceiveResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchDoReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_dispatch_dispatch_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DispatchDoResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_dispatch_dispatch_msg_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 8,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_dispatch_dispatch_msg_proto_goTypes,
+ DependencyIndexes: file_dispatch_dispatch_msg_proto_depIdxs,
+ MessageInfos: file_dispatch_dispatch_msg_proto_msgTypes,
+ }.Build()
+ File_dispatch_dispatch_msg_proto = out.File
+ file_dispatch_dispatch_msg_proto_rawDesc = nil
+ file_dispatch_dispatch_msg_proto_goTypes = nil
+ file_dispatch_dispatch_msg_proto_depIdxs = nil
+}
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index f31f4aad3..dda496e7a 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -334,6 +334,8 @@ const (
ErrorCode_SmithyNoActivateAtlas ErrorCode = 4113 // 没有图鉴更新数据
ErrorCode_SmithyLvToolsFailed ErrorCode = 4114 //
ErrorCode_SmithyLvToolsPre ErrorCode = 4115 // 前置条件不足
+ // dispatch
+ ErrorCode_DispatchHeroNoReached ErrorCode = 4201 //英雄条件未达标
)
// Enum value maps for ErrorCode.
@@ -618,6 +620,7 @@ var (
4113: "SmithyNoActivateAtlas",
4114: "SmithyLvToolsFailed",
4115: "SmithyLvToolsPre",
+ 4201: "DispatchHeroNoReached",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -899,6 +902,7 @@ var (
"SmithyNoActivateAtlas": 4113,
"SmithyLvToolsFailed": 4114,
"SmithyLvToolsPre": 4115,
+ "DispatchHeroNoReached": 4201,
}
)
@@ -933,7 +937,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2a, 0xe3, 0x32, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x6f, 0x2a, 0xff, 0x32, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@@ -1339,8 +1343,10 @@ var file_errorcode_proto_rawDesc = []byte{
0x6c, 0x61, 0x73, 0x10, 0x91, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79,
0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x92, 0x20,
0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4c, 0x76, 0x54, 0x6f, 0x6f, 0x6c,
- 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x73, 0x50, 0x72, 0x65, 0x10, 0x93, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64,
+ 0x10, 0xe9, 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var (
diff --git a/sys/configure/structs/Game.DispatchCond.go b/sys/configure/structs/Game.DispatchCond.go
new file mode 100644
index 000000000..3bf298e05
--- /dev/null
+++ b/sys/configure/structs/Game.DispatchCond.go
@@ -0,0 +1,37 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameDispatchCond struct {
+ Key int32
+ Param int32
+}
+
+const TypeId_GameDispatchCond = -852261064
+
+func (*GameDispatchCond) GetTypeId() int32 {
+ return -852261064
+}
+
+func (_v *GameDispatchCond)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["param"].(float64); !_ok_ { err = errors.New("param error"); return }; _v.Param = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameDispatchCond(_buf map[string]interface{}) (*GameDispatchCond, error) {
+ v := &GameDispatchCond{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.DispatchCondType.go b/sys/configure/structs/Game.DispatchCondType.go
new file mode 100644
index 000000000..347eb7b26
--- /dev/null
+++ b/sys/configure/structs/Game.DispatchCondType.go
@@ -0,0 +1,14 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+const (
+ GameDispatchCondType_Lv = 1
+ GameDispatchCondType_Star = 2
+)
diff --git a/sys/configure/structs/Game.Dispatch_LvData.go b/sys/configure/structs/Game.Dispatch_LvData.go
index f09d821aa..41cc0d187 100644
--- a/sys/configure/structs/Game.Dispatch_LvData.go
+++ b/sys/configure/structs/Game.Dispatch_LvData.go
@@ -12,7 +12,7 @@ import "errors"
type GameDispatch_LvData struct {
Lv int32
- Probability []float32
+ Probability []int32
Upgrade int32
}
@@ -29,11 +29,11 @@ func (_v *GameDispatch_LvData)Deserialize(_buf map[string]interface{}) (err erro
var _ok_ bool
if _arr_, _ok_ = _buf["probability"].([]interface{}); !_ok_ { err = errors.New("probability error"); return }
- _v.Probability = make([]float32, 0, len(_arr_))
+ _v.Probability = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
- var _list_v_ float32
- { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = float32(_x_) }
+ 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.Probability = append(_v.Probability, _list_v_)
}
}
diff --git a/sys/configure/structs/Game.Dispatch_TaskData.go b/sys/configure/structs/Game.Dispatch_TaskData.go
index 92ef5e605..552aead52 100644
--- a/sys/configure/structs/Game.Dispatch_TaskData.go
+++ b/sys/configure/structs/Game.Dispatch_TaskData.go
@@ -14,12 +14,12 @@ type GameDispatch_TaskData struct {
Id int32
Type int32
Taskname string
- Taskcd float32
- Tasktime float32
+ Taskcd int32
+ Tasktime int32
Tasktxt string
Taskneed int32
- Taskreq []string
- Taskreqex []string
+ Taskreq []*GameDispatchCond
+ Taskreqex []*GameDispatchCond
Reward []*Gameatn
Rewardex []*Gameatn
}
@@ -34,8 +34,8 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
{ 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["taskname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Taskname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Taskname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskcd"].(float64); !_ok_ { err = errors.New("taskcd error"); return }; _v.Taskcd = float32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tasktime"].(float64); !_ok_ { err = errors.New("tasktime error"); return }; _v.Tasktime = float32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskcd"].(float64); !_ok_ { err = errors.New("taskcd error"); return }; _v.Taskcd = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tasktime"].(float64); !_ok_ { err = errors.New("tasktime error"); return }; _v.Tasktime = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["tasktxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Tasktxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Tasktxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskneed"].(float64); !_ok_ { err = errors.New("taskneed error"); return }; _v.Taskneed = int32(_tempNum_) }
{
@@ -43,11 +43,11 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
var _ok_ bool
if _arr_, _ok_ = _buf["taskreq"].([]interface{}); !_ok_ { err = errors.New("taskreq error"); return }
- _v.Taskreq = make([]string, 0, len(_arr_))
+ _v.Taskreq = make([]*GameDispatchCond, 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 } }
+ var _list_v_ *GameDispatchCond
+ { 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 = DeserializeGameDispatchCond(_x_); err != nil { return } }
_v.Taskreq = append(_v.Taskreq, _list_v_)
}
}
@@ -57,11 +57,11 @@ func (_v *GameDispatch_TaskData)Deserialize(_buf map[string]interface{}) (err er
var _ok_ bool
if _arr_, _ok_ = _buf["taskreqex"].([]interface{}); !_ok_ { err = errors.New("taskreqex error"); return }
- _v.Taskreqex = make([]string, 0, len(_arr_))
+ _v.Taskreqex = make([]*GameDispatchCond, 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 } }
+ var _list_v_ *GameDispatchCond
+ { 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 = DeserializeGameDispatchCond(_x_); err != nil { return } }
_v.Taskreqex = append(_v.Taskreqex, _list_v_)
}
}
diff --git a/sys/configure/structs/Game.SmithyDrop.go b/sys/configure/structs/Game.SmithyDrop.go
new file mode 100644
index 000000000..286e774ff
--- /dev/null
+++ b/sys/configure/structs/Game.SmithyDrop.go
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+type GameSmithyDrop struct {
+ _dataMap map[int32]*GameSmithyDropData
+ _dataList []*GameSmithyDropData
+}
+
+func NewGameSmithyDrop(_buf []map[string]interface{}) (*GameSmithyDrop, error) {
+ _dataList := make([]*GameSmithyDropData, 0, len(_buf))
+ dataMap := make(map[int32]*GameSmithyDropData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameSmithyDropData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameSmithyDrop{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameSmithyDrop) GetDataMap() map[int32]*GameSmithyDropData {
+ return table._dataMap
+}
+
+func (table *GameSmithyDrop) GetDataList() []*GameSmithyDropData {
+ return table._dataList
+}
+
+func (table *GameSmithyDrop) Get(key int32) *GameSmithyDropData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.SmithyDropData.go b/sys/configure/structs/Game.SmithyDropData.go
new file mode 100644
index 000000000..1af8e5a65
--- /dev/null
+++ b/sys/configure/structs/Game.SmithyDropData.go
@@ -0,0 +1,58 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameSmithyDropData struct {
+ Id int32
+ Dropid int32
+ Condition int32
+ Prize []*Gameatn
+ Star int32
+ P int32
+}
+
+const TypeId_GameSmithyDropData = -1505870933
+
+func (*GameSmithyDropData) GetTypeId() int32 {
+ return -1505870933
+}
+
+func (_v *GameSmithyDropData)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["dropid"].(float64); !_ok_ { err = errors.New("dropid error"); return }; _v.Dropid = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["condition"].(float64); !_ok_ { err = errors.New("condition error"); return }; _v.Condition = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["prize"].([]interface{}); !_ok_ { err = errors.New("prize error"); return }
+
+ _v.Prize = 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.Prize = append(_v.Prize, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["p"].(float64); !_ok_ { err = errors.New("p error"); return }; _v.P = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameSmithyDropData(_buf map[string]interface{}) (*GameSmithyDropData, error) {
+ v := &GameSmithyDropData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.dispatch.go b/sys/configure/structs/Game.dispatch.go
new file mode 100644
index 000000000..f0e0a6f87
--- /dev/null
+++ b/sys/configure/structs/Game.dispatch.go
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type Gamedispatch struct {
+ N int32
+ G []*Gameatn
+}
+
+const TypeId_Gamedispatch = -1941607722
+
+func (*Gamedispatch) GetTypeId() int32 {
+ return -1941607722
+}
+
+func (_v *Gamedispatch)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["n"].(float64); !_ok_ { err = errors.New("n error"); return }; _v.N = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["g"].([]interface{}); !_ok_ { err = errors.New("g error"); return }
+
+ _v.G = 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.G = append(_v.G, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGamedispatch(_buf map[string]interface{}) (*Gamedispatch, error) {
+ v := &Gamedispatch{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go
index bf1953aca..81d136d3c 100644
--- a/sys/configure/structs/Tables.go
+++ b/sys/configure/structs/Tables.go
@@ -11,1104 +11,1111 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct {
- Global *GameGlobal
- Extservers *GameExtservers
- SkillAtk *GameSkillAtk
- SkillAfteratk *GameSkillAfteratk
- SkillBuff *GameSkillBuff
- SkillPassive *GameSkillPassive
- Hero *GameHero
- HeroStargrow *GameHeroStargrow
- HeroLevelgrow *GameHeroLevelgrow
- HeroStarup *GameHeroStarup
- HeroSkill *GameHeroSkill
- HeroExp *GameHeroExp
- HeroLevelup *GameHeroLevelup
- Equip *GameEquip
- EquipAttrlibrary *GameEquipAttrlibrary
- EquipSuit *GameEquipSuit
- EquipColor *GameEquipColor
- EquipIntensify *GameEquipIntensify
- EquipSCompose *GameEquipSCompose
- EquipAttribute *GameEquipAttribute
- EquipEnchanting *GameEquipEnchanting
- Item *GameItem
- HeroSkillLevel *GameHeroSkillLevel
- HeroAwaken *GameHeroAwaken
- HeroMethod *GameHeroMethod
- HeroMethodComment *GameHeroMethodComment
- Shop *GameShop
- Shopitem *GameShopitem
- ActiveReward *GameActiveReward
- Model *GameModel
- 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
- Facemod *GameFacemod
- Msgdistrib *GameMsgdistrib
- Opencond *GameOpencond
- Stroy *GameStroy
- Pagoda *GamePagoda
- PagodaTaskReward *GamePagodaTaskReward
- SeasonLoop *GameSeasonLoop
- PagodaSeasonReward *GamePagodaSeasonReward
- RdtaskCondi *GameRdtaskCondi
- KungfuUnlock *GameKungfuUnlock
- KungfuMasterworker *GameKungfuMasterworker
- Gourmet *GameGourmet
- Drop *GameDrop
- Smithy *GameSmithy
- SmithyStove *GameSmithyStove
- SmithyText *GameSmithyText
- VikingBoss *GameVikingBoss
- VikingChallenge *GameVikingChallenge
- VikingLineup *GameVikingLineup
- VikingEntrance *GameVikingEntrance
- DreamlandBoos *GameDreamlandBoos
- DreamlandChallenge *GameDreamlandChallenge
- DreamlandTrigger *GameDreamlandTrigger
- HuntingBoss *GameHuntingBoss
- HuntingChallenge *GameHuntingChallenge
- HuntingOpenTime *GameHuntingOpenTime
- HuntingLineup *GameHuntingLineup
- MonsterFormat *GameMonsterFormat
- Link *GameLink
- GetResource *GameGetResource
- VikingBossSkill *GameVikingBossSkill
- LibraryFetter *GameLibraryFetter
- LibraryStory *GameLibraryStory
- LibraryHero *GameLibraryHero
- LibraryHistory *GameLibraryHistory
- LibraryComplot *GameLibraryComplot
- LibraryFavor *GameLibraryFavor
- LibraryFavorlv *GameLibraryFavorlv
- LibraryBubble *GameLibraryBubble
- LibraryPlayBack *GameLibraryPlayBack
- Robot *GameRobot
- Ip *GameIp
- NameLibrary *GameNameLibrary
- HeroConvertdata *GameHeroConvertdata
- LinestoryTimeLine *GameLinestoryTimeLine
- LinestoryMainTask *GameLinestoryMainTask
- Herofusion *GameHerofusion
- PlayerInfor *GamePlayerInfor
- HeroTalent *GameHeroTalent
- TalentSkill *GameTalentSkill
- ArenaBuyChallenge *GameArenaBuyChallenge
- ArenaActiveReward *GameArenaActiveReward
- ArenaRobot *GameArenaRobot
- ArenaRankReward *GameArenaRankReward
- ArenaChallengeNpc *GameArenaChallengeNpc
- ItemBox *GameItemBox
- Show *GameShow
- GuildLv *GameGuildLv
- GuildPng *GameGuildPng
- GuildActivity *GameGuildActivity
- GuildSign *GameGuildSign
- GuildTask *GameGuildTask
- GuildBossTask *GameGuildBossTask
- TrollRule *GameTrollRule
- TrollGoods *GameTrollGoods
- TrollTrain *GameTrollTrain
- TrollLv *GameTrollLv
- TrollCoefficient *GameTrollCoefficient
- Horoscope *GameHoroscope
- Sign *GameSign
- SignReset *GameSignReset
- GrowTask *GameGrowTask
- GrowReward *GameGrowReward
- Recharge *GameRecharge
- PrivilegeCard *GamePrivilegeCard
- Privilege *GamePrivilege
- Teaching *GameTeaching
- HeroStrategy *GameHeroStrategy
- FightGlobalEvent *GameFightGlobalEvent
- PayPackage *GamePayPackage
- WorldBattle *GameWorldBattle
- RedDot *GameRedDot
- RedDotTalkid *GameRedDotTalkid
- RedDotGroup *GameRedDotGroup
- PassCheck *GamePassCheck
- Mail *GameMail
- CombatLevel *GameCombatLevel
- CombatManster *GameCombatManster
- CombatBox *GameCombatBox
- Help *GameHelp
- GM *GameGM
- Guide *GameGuide
- Vip *GameVip
- EnchantShop *GameEnchantShop
- EnchantBoss *GameEnchantBoss
- EnchantLineup *GameEnchantLineup
- MainChapter *GameMainChapter
- MainStage *GameMainStage
- MainStarreward *GameMainStarreward
- MainStartype *GameMainStartype
- Battletasktesting *GameBattletasktesting
- BattleReady *GameBattleReady
- NewSmithy *GameNewSmithy
- SmithyProficiency *GameSmithyProficiency
- SmithyStoveV1 *GameSmithyStoveV1
- SmithyTool *GameSmithyTool
- pandsmasexp *Gamepandsmasexp
- SmithyCustomer *GameSmithyCustomer
- SmithyAtlas *GameSmithyAtlas
- SmithyAtlasLv *GameSmithyAtlasLv
- SmithyAtlasScore *GameSmithyAtlasScore
+ Global *GameGlobal
+ Extservers *GameExtservers
+ SkillAtk *GameSkillAtk
+ SkillAfteratk *GameSkillAfteratk
+ SkillBuff *GameSkillBuff
+ SkillPassive *GameSkillPassive
+ Hero *GameHero
+ HeroStargrow *GameHeroStargrow
+ HeroLevelgrow *GameHeroLevelgrow
+ HeroStarup *GameHeroStarup
+ HeroSkill *GameHeroSkill
+ HeroExp *GameHeroExp
+ HeroLevelup *GameHeroLevelup
+ Equip *GameEquip
+ EquipAttrlibrary *GameEquipAttrlibrary
+ EquipSuit *GameEquipSuit
+ EquipColor *GameEquipColor
+ EquipIntensify *GameEquipIntensify
+ EquipSCompose *GameEquipSCompose
+ EquipAttribute *GameEquipAttribute
+ EquipEnchanting *GameEquipEnchanting
+ Item *GameItem
+ HeroSkillLevel *GameHeroSkillLevel
+ HeroAwaken *GameHeroAwaken
+ HeroMethod *GameHeroMethod
+ HeroMethodComment *GameHeroMethodComment
+ Shop *GameShop
+ Shopitem *GameShopitem
+ ActiveReward *GameActiveReward
+ Model *GameModel
+ 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
+ Facemod *GameFacemod
+ Msgdistrib *GameMsgdistrib
+ Opencond *GameOpencond
+ Stroy *GameStroy
+ Pagoda *GamePagoda
+ PagodaTaskReward *GamePagodaTaskReward
+ SeasonLoop *GameSeasonLoop
+ PagodaSeasonReward *GamePagodaSeasonReward
+ RdtaskCondi *GameRdtaskCondi
+ KungfuUnlock *GameKungfuUnlock
+ KungfuMasterworker *GameKungfuMasterworker
+ Gourmet *GameGourmet
+ Drop *GameDrop
+ Smithy *GameSmithy
+ SmithyStove *GameSmithyStove
+ SmithyText *GameSmithyText
+ VikingBoss *GameVikingBoss
+ VikingChallenge *GameVikingChallenge
+ VikingLineup *GameVikingLineup
+ VikingEntrance *GameVikingEntrance
+ DreamlandBoos *GameDreamlandBoos
+ DreamlandChallenge *GameDreamlandChallenge
+ DreamlandTrigger *GameDreamlandTrigger
+ HuntingBoss *GameHuntingBoss
+ HuntingChallenge *GameHuntingChallenge
+ HuntingOpenTime *GameHuntingOpenTime
+ HuntingLineup *GameHuntingLineup
+ MonsterFormat *GameMonsterFormat
+ Link *GameLink
+ GetResource *GameGetResource
+ VikingBossSkill *GameVikingBossSkill
+ LibraryFetter *GameLibraryFetter
+ LibraryStory *GameLibraryStory
+ LibraryHero *GameLibraryHero
+ LibraryHistory *GameLibraryHistory
+ LibraryComplot *GameLibraryComplot
+ LibraryFavor *GameLibraryFavor
+ LibraryFavorlv *GameLibraryFavorlv
+ LibraryBubble *GameLibraryBubble
+ LibraryPlayBack *GameLibraryPlayBack
+ Robot *GameRobot
+ Ip *GameIp
+ NameLibrary *GameNameLibrary
+ HeroConvertdata *GameHeroConvertdata
+ LinestoryTimeLine *GameLinestoryTimeLine
+ LinestoryMainTask *GameLinestoryMainTask
+ Herofusion *GameHerofusion
+ PlayerInfor *GamePlayerInfor
+ HeroTalent *GameHeroTalent
+ TalentSkill *GameTalentSkill
+ ArenaBuyChallenge *GameArenaBuyChallenge
+ ArenaActiveReward *GameArenaActiveReward
+ ArenaRobot *GameArenaRobot
+ ArenaRankReward *GameArenaRankReward
+ ArenaChallengeNpc *GameArenaChallengeNpc
+ ItemBox *GameItemBox
+ Show *GameShow
+ GuildLv *GameGuildLv
+ GuildPng *GameGuildPng
+ GuildActivity *GameGuildActivity
+ GuildSign *GameGuildSign
+ GuildTask *GameGuildTask
+ GuildBossTask *GameGuildBossTask
+ TrollRule *GameTrollRule
+ TrollGoods *GameTrollGoods
+ TrollTrain *GameTrollTrain
+ TrollLv *GameTrollLv
+ TrollCoefficient *GameTrollCoefficient
+ Horoscope *GameHoroscope
+ Sign *GameSign
+ SignReset *GameSignReset
+ GrowTask *GameGrowTask
+ GrowReward *GameGrowReward
+ Recharge *GameRecharge
+ PrivilegeCard *GamePrivilegeCard
+ Privilege *GamePrivilege
+ Teaching *GameTeaching
+ HeroStrategy *GameHeroStrategy
+ FightGlobalEvent *GameFightGlobalEvent
+ PayPackage *GamePayPackage
+ WorldBattle *GameWorldBattle
+ RedDot *GameRedDot
+ RedDotTalkid *GameRedDotTalkid
+ RedDotGroup *GameRedDotGroup
+ PassCheck *GamePassCheck
+ Mail *GameMail
+ CombatLevel *GameCombatLevel
+ CombatManster *GameCombatManster
+ CombatBox *GameCombatBox
+ Help *GameHelp
+ GM *GameGM
+ Guide *GameGuide
+ Vip *GameVip
+ EnchantShop *GameEnchantShop
+ EnchantBoss *GameEnchantBoss
+ EnchantLineup *GameEnchantLineup
+ MainChapter *GameMainChapter
+ MainStage *GameMainStage
+ MainStarreward *GameMainStarreward
+ MainStartype *GameMainStartype
+ Battletasktesting *GameBattletasktesting
+ BattleReady *GameBattleReady
+ NewSmithy *GameNewSmithy
+ SmithyProficiency *GameSmithyProficiency
+ SmithyStoveV1 *GameSmithyStoveV1
+ SmithyTool *GameSmithyTool
+ pandsmasexp *Gamepandsmasexp
+ SmithyCustomer *GameSmithyCustomer
+ SmithyAtlas *GameSmithyAtlas
+ SmithyAtlasLv *GameSmithyAtlasLv
+ SmithyAtlasScore *GameSmithyAtlasScore
+ SmithyDrop *GameSmithyDrop
}
func NewTables(loader JsonLoader) (*Tables, error) {
- var err error
- var buf []map[string]interface{}
+ var err error
+ var buf []map[string]interface{}
- tables := &Tables{}
- if buf, err = loader("game_global") ; err != nil {
- return nil, err
- }
- if tables.Global, err = NewGameGlobal(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_extservers") ; err != nil {
- return nil, err
- }
- if tables.Extservers, err = NewGameExtservers(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillatk") ; err != nil {
- return nil, err
- }
- if tables.SkillAtk, err = NewGameSkillAtk(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillafteratk") ; err != nil {
- return nil, err
- }
- if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillbuff") ; err != nil {
- return nil, err
- }
- if tables.SkillBuff, err = NewGameSkillBuff(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillpassive") ; err != nil {
- return nil, err
- }
- if tables.SkillPassive, err = NewGameSkillPassive(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_hero") ; err != nil {
- return nil, err
- }
- if tables.Hero, err = NewGameHero(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostargrow") ; err != nil {
- return nil, err
- }
- if tables.HeroStargrow, err = NewGameHeroStargrow(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelgrow") ; err != nil {
- return nil, err
- }
- if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostarup") ; err != nil {
- return nil, err
- }
- if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroskill") ; err != nil {
- return nil, err
- }
- if tables.HeroSkill, err = NewGameHeroSkill(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroexp") ; err != nil {
- return nil, err
- }
- if tables.HeroExp, err = NewGameHeroExp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelup") ; err != nil {
- return nil, err
- }
- if tables.HeroLevelup, err = NewGameHeroLevelup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equip") ; err != nil {
- return nil, err
- }
- if tables.Equip, err = NewGameEquip(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipattrlibrary") ; err != nil {
- return nil, err
- }
- if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipsuit") ; err != nil {
- return nil, err
- }
- if tables.EquipSuit, err = NewGameEquipSuit(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipcolor") ; err != nil {
- return nil, err
- }
- if tables.EquipColor, err = NewGameEquipColor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipintensify") ; err != nil {
- return nil, err
- }
- if tables.EquipIntensify, err = NewGameEquipIntensify(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipscompose") ; err != nil {
- return nil, err
- }
- if tables.EquipSCompose, err = NewGameEquipSCompose(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipattribute") ; err != nil {
- return nil, err
- }
- if tables.EquipAttribute, err = NewGameEquipAttribute(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipenchanting") ; err != nil {
- return nil, err
- }
- if tables.EquipEnchanting, err = NewGameEquipEnchanting(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_item") ; err != nil {
- return nil, err
- }
- if tables.Item, err = NewGameItem(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroskilllevel") ; err != nil {
- return nil, err
- }
- if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroawaken") ; err != nil {
- return nil, err
- }
- if tables.HeroAwaken, err = NewGameHeroAwaken(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heromethod") ; err != nil {
- return nil, err
- }
- if tables.HeroMethod, err = NewGameHeroMethod(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heromethodcomment") ; err != nil {
- return nil, err
- }
- if tables.HeroMethodComment, err = NewGameHeroMethodComment(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_shop") ; err != nil {
- return nil, err
- }
- if tables.Shop, err = NewGameShop(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_shopitem") ; err != nil {
- return nil, err
- }
- if tables.Shopitem, err = NewGameShopitem(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_activereward") ; err != nil {
- return nil, err
- }
- if tables.ActiveReward, err = NewGameActiveReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_model") ; err != nil {
- return nil, err
- }
- if tables.Model, err = NewGameModel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_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_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_seasonloop") ; err != nil {
- return nil, err
- }
- if tables.SeasonLoop, err = NewGameSeasonLoop(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_rdtaskcondi") ; err != nil {
- return nil, err
- }
- if tables.RdtaskCondi, err = NewGameRdtaskCondi(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_vikinglineup") ; err != nil {
- return nil, err
- }
- if tables.VikingLineup, err = NewGameVikingLineup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingentrance") ; err != nil {
- return nil, err
- }
- if tables.VikingEntrance, err = NewGameVikingEntrance(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandboos") ; err != nil {
- return nil, err
- }
- if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandchallenge") ; err != nil {
- return nil, err
- }
- if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandtrigger") ; err != nil {
- return nil, err
- }
- if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingboss") ; err != nil {
- return nil, err
- }
- if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingchallenge") ; err != nil {
- return nil, err
- }
- if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingopentime") ; err != nil {
- return nil, err
- }
- if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntinglineup") ; err != nil {
- return nil, err
- }
- if tables.HuntingLineup, err = NewGameHuntingLineup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_monsterformat") ; err != nil {
- return nil, err
- }
- if tables.MonsterFormat, err = NewGameMonsterFormat(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_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
- }
- if buf, err = loader("game_vikingbossskill") ; err != nil {
- return nil, err
- }
- if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfetter") ; err != nil {
- return nil, err
- }
- if tables.LibraryFetter, err = NewGameLibraryFetter(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarystory") ; err != nil {
- return nil, err
- }
- if tables.LibraryStory, err = NewGameLibraryStory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhero") ; err != nil {
- return nil, err
- }
- if tables.LibraryHero, err = NewGameLibraryHero(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhistory") ; err != nil {
- return nil, err
- }
- if tables.LibraryHistory, err = NewGameLibraryHistory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarycomplot") ; err != nil {
- return nil, err
- }
- if tables.LibraryComplot, err = NewGameLibraryComplot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavor") ; err != nil {
- return nil, err
- }
- if tables.LibraryFavor, err = NewGameLibraryFavor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavorlv") ; err != nil {
- return nil, err
- }
- if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarybubble") ; err != nil {
- return nil, err
- }
- if tables.LibraryBubble, err = NewGameLibraryBubble(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryplayback") ; err != nil {
- return nil, err
- }
- if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_robot") ; err != nil {
- return nil, err
- }
- if tables.Robot, err = NewGameRobot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_ip") ; err != nil {
- return nil, err
- }
- if tables.Ip, err = NewGameIp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_namelibrary") ; err != nil {
- return nil, err
- }
- if tables.NameLibrary, err = NewGameNameLibrary(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroconvertdata") ; err != nil {
- return nil, err
- }
- if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_linestorytimeline") ; err != nil {
- return nil, err
- }
- if tables.LinestoryTimeLine, err = NewGameLinestoryTimeLine(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_linestorymaintask") ; err != nil {
- return nil, err
- }
- if tables.LinestoryMainTask, err = NewGameLinestoryMainTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herofusion") ; err != nil {
- return nil, err
- }
- if tables.Herofusion, err = NewGameHerofusion(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_playerinfor") ; err != nil {
- return nil, err
- }
- if tables.PlayerInfor, err = NewGamePlayerInfor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herotalent") ; err != nil {
- return nil, err
- }
- if tables.HeroTalent, err = NewGameHeroTalent(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_talentskill") ; err != nil {
- return nil, err
- }
- if tables.TalentSkill, err = NewGameTalentSkill(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenabuychallenge") ; err != nil {
- return nil, err
- }
- if tables.ArenaBuyChallenge, err = NewGameArenaBuyChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenaactivereward") ; err != nil {
- return nil, err
- }
- if tables.ArenaActiveReward, err = NewGameArenaActiveReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenarobot") ; err != nil {
- return nil, err
- }
- if tables.ArenaRobot, err = NewGameArenaRobot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenarankreward") ; err != nil {
- return nil, err
- }
- if tables.ArenaRankReward, err = NewGameArenaRankReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_arenachallengenpc") ; err != nil {
- return nil, err
- }
- if tables.ArenaChallengeNpc, err = NewGameArenaChallengeNpc(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_itembox") ; err != nil {
- return nil, err
- }
- if tables.ItemBox, err = NewGameItemBox(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_show") ; err != nil {
- return nil, err
- }
- if tables.Show, err = NewGameShow(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildlv") ; err != nil {
- return nil, err
- }
- if tables.GuildLv, err = NewGameGuildLv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildpng") ; err != nil {
- return nil, err
- }
- if tables.GuildPng, err = NewGameGuildPng(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildactivity") ; err != nil {
- return nil, err
- }
- if tables.GuildActivity, err = NewGameGuildActivity(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildsign") ; err != nil {
- return nil, err
- }
- if tables.GuildSign, err = NewGameGuildSign(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildtask") ; err != nil {
- return nil, err
- }
- if tables.GuildTask, err = NewGameGuildTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guildbosstask") ; err != nil {
- return nil, err
- }
- if tables.GuildBossTask, err = NewGameGuildBossTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollrule") ; err != nil {
- return nil, err
- }
- if tables.TrollRule, err = NewGameTrollRule(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollgoods") ; err != nil {
- return nil, err
- }
- if tables.TrollGoods, err = NewGameTrollGoods(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_trolltrain") ; err != nil {
- return nil, err
- }
- if tables.TrollTrain, err = NewGameTrollTrain(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_trolllv") ; err != nil {
- return nil, err
- }
- if tables.TrollLv, err = NewGameTrollLv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_trollcoefficient") ; err != nil {
- return nil, err
- }
- if tables.TrollCoefficient, err = NewGameTrollCoefficient(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_horoscope") ; err != nil {
- return nil, err
- }
- if tables.Horoscope, err = NewGameHoroscope(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_sign") ; err != nil {
- return nil, err
- }
- if tables.Sign, err = NewGameSign(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_signreset") ; err != nil {
- return nil, err
- }
- if tables.SignReset, err = NewGameSignReset(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_growtask") ; err != nil {
- return nil, err
- }
- if tables.GrowTask, err = NewGameGrowTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_growreward") ; err != nil {
- return nil, err
- }
- if tables.GrowReward, err = NewGameGrowReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_recharge") ; err != nil {
- return nil, err
- }
- if tables.Recharge, err = NewGameRecharge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_privilegecard") ; err != nil {
- return nil, err
- }
- if tables.PrivilegeCard, err = NewGamePrivilegeCard(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_privilege") ; err != nil {
- return nil, err
- }
- if tables.Privilege, err = NewGamePrivilege(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_teaching") ; err != nil {
- return nil, err
- }
- if tables.Teaching, err = NewGameTeaching(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostrategy") ; err != nil {
- return nil, err
- }
- if tables.HeroStrategy, err = NewGameHeroStrategy(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_fightglobalevent") ; err != nil {
- return nil, err
- }
- if tables.FightGlobalEvent, err = NewGameFightGlobalEvent(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_paypackage") ; err != nil {
- return nil, err
- }
- if tables.PayPackage, err = NewGamePayPackage(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_worldbattle") ; err != nil {
- return nil, err
- }
- if tables.WorldBattle, err = NewGameWorldBattle(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddot") ; err != nil {
- return nil, err
- }
- if tables.RedDot, err = NewGameRedDot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddottalkid") ; err != nil {
- return nil, err
- }
- if tables.RedDotTalkid, err = NewGameRedDotTalkid(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_reddotgroup") ; err != nil {
- return nil, err
- }
- if tables.RedDotGroup, err = NewGameRedDotGroup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_passcheck") ; err != nil {
- return nil, err
- }
- if tables.PassCheck, err = NewGamePassCheck(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mail") ; err != nil {
- return nil, err
- }
- if tables.Mail, err = NewGameMail(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatlevel") ; err != nil {
- return nil, err
- }
- if tables.CombatLevel, err = NewGameCombatLevel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatmanster") ; err != nil {
- return nil, err
- }
- if tables.CombatManster, err = NewGameCombatManster(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_combatbox") ; err != nil {
- return nil, err
- }
- if tables.CombatBox, err = NewGameCombatBox(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_help") ; err != nil {
- return nil, err
- }
- if tables.Help, err = NewGameHelp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_gm") ; err != nil {
- return nil, err
- }
- if tables.GM, err = NewGameGM(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_guide") ; err != nil {
- return nil, err
- }
- if tables.Guide, err = NewGameGuide(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_vip") ; err != nil {
- return nil, err
- }
- if tables.Vip, err = NewGameVip(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantshop") ; err != nil {
- return nil, err
- }
- if tables.EnchantShop, err = NewGameEnchantShop(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantboss") ; err != nil {
- return nil, err
- }
- if tables.EnchantBoss, err = NewGameEnchantBoss(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_enchantlineup") ; err != nil {
- return nil, err
- }
- if tables.EnchantLineup, err = NewGameEnchantLineup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainchapter") ; err != nil {
- return nil, err
- }
- if tables.MainChapter, err = NewGameMainChapter(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstage") ; err != nil {
- return nil, err
- }
- if tables.MainStage, err = NewGameMainStage(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstarreward") ; err != nil {
- return nil, err
- }
- if tables.MainStarreward, err = NewGameMainStarreward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainstartype") ; err != nil {
- return nil, err
- }
- if tables.MainStartype, err = NewGameMainStartype(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_battletasktesting") ; err != nil {
- return nil, err
- }
- if tables.Battletasktesting, err = NewGameBattletasktesting(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_battleready") ; err != nil {
- return nil, err
- }
- if tables.BattleReady, err = NewGameBattleReady(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_newsmithy") ; err != nil {
- return nil, err
- }
- if tables.NewSmithy, err = NewGameNewSmithy(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyproficiency") ; err != nil {
- return nil, err
- }
- if tables.SmithyProficiency, err = NewGameSmithyProficiency(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithystovev1") ; err != nil {
- return nil, err
- }
- if tables.SmithyStoveV1, err = NewGameSmithyStoveV1(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithytool") ; err != nil {
- return nil, err
- }
- if tables.SmithyTool, err = NewGameSmithyTool(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_pandsmasexp") ; err != nil {
- return nil, err
- }
- if tables.pandsmasexp, err = NewGamepandsmasexp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithycustomer") ; err != nil {
- return nil, err
- }
- if tables.SmithyCustomer, err = NewGameSmithyCustomer(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlas") ; err != nil {
- return nil, err
- }
- if tables.SmithyAtlas, err = NewGameSmithyAtlas(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlaslv") ; err != nil {
- return nil, err
- }
- if tables.SmithyAtlasLv, err = NewGameSmithyAtlasLv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithyatlasscore") ; err != nil {
- return nil, err
- }
- if tables.SmithyAtlasScore, err = NewGameSmithyAtlasScore(buf) ; err != nil {
- return nil, err
- }
- return tables, nil
+ tables := &Tables{}
+ if buf, err = loader("game_global"); err != nil {
+ return nil, err
+ }
+ if tables.Global, err = NewGameGlobal(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_extservers"); err != nil {
+ return nil, err
+ }
+ if tables.Extservers, err = NewGameExtservers(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillatk"); err != nil {
+ return nil, err
+ }
+ if tables.SkillAtk, err = NewGameSkillAtk(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillafteratk"); err != nil {
+ return nil, err
+ }
+ if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillbuff"); err != nil {
+ return nil, err
+ }
+ if tables.SkillBuff, err = NewGameSkillBuff(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillpassive"); err != nil {
+ return nil, err
+ }
+ if tables.SkillPassive, err = NewGameSkillPassive(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_hero"); err != nil {
+ return nil, err
+ }
+ if tables.Hero, err = NewGameHero(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostargrow"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStargrow, err = NewGameHeroStargrow(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelgrow"); err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostarup"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStarup, err = NewGameHeroStarup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroskill"); err != nil {
+ return nil, err
+ }
+ if tables.HeroSkill, err = NewGameHeroSkill(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroexp"); err != nil {
+ return nil, err
+ }
+ if tables.HeroExp, err = NewGameHeroExp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelup"); err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelup, err = NewGameHeroLevelup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equip"); err != nil {
+ return nil, err
+ }
+ if tables.Equip, err = NewGameEquip(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipattrlibrary"); err != nil {
+ return nil, err
+ }
+ if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipsuit"); err != nil {
+ return nil, err
+ }
+ if tables.EquipSuit, err = NewGameEquipSuit(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipcolor"); err != nil {
+ return nil, err
+ }
+ if tables.EquipColor, err = NewGameEquipColor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipintensify"); err != nil {
+ return nil, err
+ }
+ if tables.EquipIntensify, err = NewGameEquipIntensify(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipscompose"); err != nil {
+ return nil, err
+ }
+ if tables.EquipSCompose, err = NewGameEquipSCompose(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipattribute"); err != nil {
+ return nil, err
+ }
+ if tables.EquipAttribute, err = NewGameEquipAttribute(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipenchanting"); err != nil {
+ return nil, err
+ }
+ if tables.EquipEnchanting, err = NewGameEquipEnchanting(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_item"); err != nil {
+ return nil, err
+ }
+ if tables.Item, err = NewGameItem(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroskilllevel"); err != nil {
+ return nil, err
+ }
+ if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroawaken"); err != nil {
+ return nil, err
+ }
+ if tables.HeroAwaken, err = NewGameHeroAwaken(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heromethod"); err != nil {
+ return nil, err
+ }
+ if tables.HeroMethod, err = NewGameHeroMethod(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heromethodcomment"); err != nil {
+ return nil, err
+ }
+ if tables.HeroMethodComment, err = NewGameHeroMethodComment(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shop"); err != nil {
+ return nil, err
+ }
+ if tables.Shop, err = NewGameShop(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shopitem"); err != nil {
+ return nil, err
+ }
+ if tables.Shopitem, err = NewGameShopitem(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_activereward"); err != nil {
+ return nil, err
+ }
+ if tables.ActiveReward, err = NewGameActiveReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_model"); err != nil {
+ return nil, err
+ }
+ if tables.Model, err = NewGameModel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_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_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_seasonloop"); err != nil {
+ return nil, err
+ }
+ if tables.SeasonLoop, err = NewGameSeasonLoop(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_rdtaskcondi"); err != nil {
+ return nil, err
+ }
+ if tables.RdtaskCondi, err = NewGameRdtaskCondi(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_vikinglineup"); err != nil {
+ return nil, err
+ }
+ if tables.VikingLineup, err = NewGameVikingLineup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingentrance"); err != nil {
+ return nil, err
+ }
+ if tables.VikingEntrance, err = NewGameVikingEntrance(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandboos"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandchallenge"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandtrigger"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingboss"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingBoss, err = NewGameHuntingBoss(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingchallenge"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingopentime"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntinglineup"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingLineup, err = NewGameHuntingLineup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_monsterformat"); err != nil {
+ return nil, err
+ }
+ if tables.MonsterFormat, err = NewGameMonsterFormat(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_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
+ }
+ if buf, err = loader("game_vikingbossskill"); err != nil {
+ return nil, err
+ }
+ if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfetter"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFetter, err = NewGameLibraryFetter(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarystory"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryStory, err = NewGameLibraryStory(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhero"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryHero, err = NewGameLibraryHero(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhistory"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryHistory, err = NewGameLibraryHistory(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarycomplot"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryComplot, err = NewGameLibraryComplot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavor"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavor, err = NewGameLibraryFavor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavorlv"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarybubble"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryBubble, err = NewGameLibraryBubble(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryplayback"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_robot"); err != nil {
+ return nil, err
+ }
+ if tables.Robot, err = NewGameRobot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_ip"); err != nil {
+ return nil, err
+ }
+ if tables.Ip, err = NewGameIp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_namelibrary"); err != nil {
+ return nil, err
+ }
+ if tables.NameLibrary, err = NewGameNameLibrary(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroconvertdata"); err != nil {
+ return nil, err
+ }
+ if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_linestorytimeline"); err != nil {
+ return nil, err
+ }
+ if tables.LinestoryTimeLine, err = NewGameLinestoryTimeLine(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_linestorymaintask"); err != nil {
+ return nil, err
+ }
+ if tables.LinestoryMainTask, err = NewGameLinestoryMainTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herofusion"); err != nil {
+ return nil, err
+ }
+ if tables.Herofusion, err = NewGameHerofusion(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_playerinfor"); err != nil {
+ return nil, err
+ }
+ if tables.PlayerInfor, err = NewGamePlayerInfor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herotalent"); err != nil {
+ return nil, err
+ }
+ if tables.HeroTalent, err = NewGameHeroTalent(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_talentskill"); err != nil {
+ return nil, err
+ }
+ if tables.TalentSkill, err = NewGameTalentSkill(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenabuychallenge"); err != nil {
+ return nil, err
+ }
+ if tables.ArenaBuyChallenge, err = NewGameArenaBuyChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenaactivereward"); err != nil {
+ return nil, err
+ }
+ if tables.ArenaActiveReward, err = NewGameArenaActiveReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenarobot"); err != nil {
+ return nil, err
+ }
+ if tables.ArenaRobot, err = NewGameArenaRobot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenarankreward"); err != nil {
+ return nil, err
+ }
+ if tables.ArenaRankReward, err = NewGameArenaRankReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_arenachallengenpc"); err != nil {
+ return nil, err
+ }
+ if tables.ArenaChallengeNpc, err = NewGameArenaChallengeNpc(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_itembox"); err != nil {
+ return nil, err
+ }
+ if tables.ItemBox, err = NewGameItemBox(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_show"); err != nil {
+ return nil, err
+ }
+ if tables.Show, err = NewGameShow(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildlv"); err != nil {
+ return nil, err
+ }
+ if tables.GuildLv, err = NewGameGuildLv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildpng"); err != nil {
+ return nil, err
+ }
+ if tables.GuildPng, err = NewGameGuildPng(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildactivity"); err != nil {
+ return nil, err
+ }
+ if tables.GuildActivity, err = NewGameGuildActivity(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildsign"); err != nil {
+ return nil, err
+ }
+ if tables.GuildSign, err = NewGameGuildSign(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildtask"); err != nil {
+ return nil, err
+ }
+ if tables.GuildTask, err = NewGameGuildTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guildbosstask"); err != nil {
+ return nil, err
+ }
+ if tables.GuildBossTask, err = NewGameGuildBossTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollrule"); err != nil {
+ return nil, err
+ }
+ if tables.TrollRule, err = NewGameTrollRule(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollgoods"); err != nil {
+ return nil, err
+ }
+ if tables.TrollGoods, err = NewGameTrollGoods(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trolltrain"); err != nil {
+ return nil, err
+ }
+ if tables.TrollTrain, err = NewGameTrollTrain(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trolllv"); err != nil {
+ return nil, err
+ }
+ if tables.TrollLv, err = NewGameTrollLv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_trollcoefficient"); err != nil {
+ return nil, err
+ }
+ if tables.TrollCoefficient, err = NewGameTrollCoefficient(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_horoscope"); err != nil {
+ return nil, err
+ }
+ if tables.Horoscope, err = NewGameHoroscope(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_sign"); err != nil {
+ return nil, err
+ }
+ if tables.Sign, err = NewGameSign(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_signreset"); err != nil {
+ return nil, err
+ }
+ if tables.SignReset, err = NewGameSignReset(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_growtask"); err != nil {
+ return nil, err
+ }
+ if tables.GrowTask, err = NewGameGrowTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_growreward"); err != nil {
+ return nil, err
+ }
+ if tables.GrowReward, err = NewGameGrowReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_recharge"); err != nil {
+ return nil, err
+ }
+ if tables.Recharge, err = NewGameRecharge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_privilegecard"); err != nil {
+ return nil, err
+ }
+ if tables.PrivilegeCard, err = NewGamePrivilegeCard(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_privilege"); err != nil {
+ return nil, err
+ }
+ if tables.Privilege, err = NewGamePrivilege(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_teaching"); err != nil {
+ return nil, err
+ }
+ if tables.Teaching, err = NewGameTeaching(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostrategy"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStrategy, err = NewGameHeroStrategy(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_fightglobalevent"); err != nil {
+ return nil, err
+ }
+ if tables.FightGlobalEvent, err = NewGameFightGlobalEvent(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_paypackage"); err != nil {
+ return nil, err
+ }
+ if tables.PayPackage, err = NewGamePayPackage(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_worldbattle"); err != nil {
+ return nil, err
+ }
+ if tables.WorldBattle, err = NewGameWorldBattle(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddot"); err != nil {
+ return nil, err
+ }
+ if tables.RedDot, err = NewGameRedDot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddottalkid"); err != nil {
+ return nil, err
+ }
+ if tables.RedDotTalkid, err = NewGameRedDotTalkid(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_reddotgroup"); err != nil {
+ return nil, err
+ }
+ if tables.RedDotGroup, err = NewGameRedDotGroup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_passcheck"); err != nil {
+ return nil, err
+ }
+ if tables.PassCheck, err = NewGamePassCheck(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mail"); err != nil {
+ return nil, err
+ }
+ if tables.Mail, err = NewGameMail(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatlevel"); err != nil {
+ return nil, err
+ }
+ if tables.CombatLevel, err = NewGameCombatLevel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatmanster"); err != nil {
+ return nil, err
+ }
+ if tables.CombatManster, err = NewGameCombatManster(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_combatbox"); err != nil {
+ return nil, err
+ }
+ if tables.CombatBox, err = NewGameCombatBox(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_help"); err != nil {
+ return nil, err
+ }
+ if tables.Help, err = NewGameHelp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gm"); err != nil {
+ return nil, err
+ }
+ if tables.GM, err = NewGameGM(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_guide"); err != nil {
+ return nil, err
+ }
+ if tables.Guide, err = NewGameGuide(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vip"); err != nil {
+ return nil, err
+ }
+ if tables.Vip, err = NewGameVip(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantshop"); err != nil {
+ return nil, err
+ }
+ if tables.EnchantShop, err = NewGameEnchantShop(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantboss"); err != nil {
+ return nil, err
+ }
+ if tables.EnchantBoss, err = NewGameEnchantBoss(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_enchantlineup"); err != nil {
+ return nil, err
+ }
+ if tables.EnchantLineup, err = NewGameEnchantLineup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainchapter"); err != nil {
+ return nil, err
+ }
+ if tables.MainChapter, err = NewGameMainChapter(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstage"); err != nil {
+ return nil, err
+ }
+ if tables.MainStage, err = NewGameMainStage(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstarreward"); err != nil {
+ return nil, err
+ }
+ if tables.MainStarreward, err = NewGameMainStarreward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainstartype"); err != nil {
+ return nil, err
+ }
+ if tables.MainStartype, err = NewGameMainStartype(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_battletasktesting"); err != nil {
+ return nil, err
+ }
+ if tables.Battletasktesting, err = NewGameBattletasktesting(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_battleready"); err != nil {
+ return nil, err
+ }
+ if tables.BattleReady, err = NewGameBattleReady(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_newsmithy"); err != nil {
+ return nil, err
+ }
+ if tables.NewSmithy, err = NewGameNewSmithy(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyproficiency"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyProficiency, err = NewGameSmithyProficiency(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithystovev1"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyStoveV1, err = NewGameSmithyStoveV1(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithytool"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyTool, err = NewGameSmithyTool(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pandsmasexp"); err != nil {
+ return nil, err
+ }
+ if tables.pandsmasexp, err = NewGamepandsmasexp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithycustomer"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyCustomer, err = NewGameSmithyCustomer(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlas"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlas, err = NewGameSmithyAtlas(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlaslv"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlasLv, err = NewGameSmithyAtlasLv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithyatlasscore"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyAtlasScore, err = NewGameSmithyAtlasScore(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithydrop"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyDrop, err = NewGameSmithyDrop(buf); err != nil {
+ return nil, err
+ }
+ return tables, nil
}
diff --git a/utils/utils_test.go b/utils/utils_test.go
index 0ebb63e76..daafaac4f 100644
--- a/utils/utils_test.go
+++ b/utils/utils_test.go
@@ -36,7 +36,7 @@ func TestRandom(t *testing.T) {
func TestNumber(t *testing.T) {
for i := 0; i < 100; i++ {
- fmt.Println(utils.RandomNumbers(0, 99, 10))
+ fmt.Println(utils.RandomNumbers(0, 4, 6))
}
}