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)) } }