From 9703368034965d35aee5c74ded5e2a2df160a1e7 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 12 Apr 2023 18:40:22 +0800 Subject: [PATCH 1/7] =?UTF-8?q?rand=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/core.go | 3 ++- modules/comp_configure.go | 47 +++++---------------------------------- 2 files changed, 8 insertions(+), 42 deletions(-) diff --git a/comm/core.go b/comm/core.go index 95b10b121..bb41451c6 100644 --- a/comm/core.go +++ b/comm/core.go @@ -115,7 +115,8 @@ func GetRandNum(min, max int32) int32 { if max == min { return min } - n, _ := rand.Int(rand.Reader, big.NewInt(int64(max-min))) + + n, _ := rand.Int(rand.Reader, big.NewInt(int64(max-min+1))) //+1 是因为 rand方法范围是[0, max) return int32(n.Int64()) + min } diff --git a/modules/comp_configure.go b/modules/comp_configure.go index 171ac96ea..91c124dfb 100644 --- a/modules/comp_configure.go +++ b/modules/comp_configure.go @@ -6,7 +6,6 @@ import ( "go_dreamfactory/lego/core" "go_dreamfactory/lego/core/cbase" "go_dreamfactory/lego/sys/log" - "go_dreamfactory/pb" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" "sync" @@ -186,7 +185,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, index := comm.GetRandW(szW) _data := this.GetLotterConfById(szID[index]) fmt.Printf("获得最终的道具 :%d", _data.Id) - count := comm.GetRandNum(_data.Min, _data.Max+1) + count := comm.GetRandNum(_data.Min, _data.Max) // 随机获得的数量 items = append(items, &cfg.Gameatn{ A: _data.Itemid.A, @@ -198,8 +197,8 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) for _, v := range this._groupType2[key] { if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 - if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 - count := comm.GetRandNum(_data.Min, _data.Max+1) + if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max) items = append(items, &cfg.Gameatn{ A: _data.Itemid.A, T: _data.Itemid.T, @@ -244,7 +243,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, index := comm.GetRandW(szW) _data := this.GetLotterConfById(szID[index]) fmt.Printf("获得最终的道具 :%d", _data.Id) - count := comm.GetRandNum(_data.Min, _data.Max+1) + count := comm.GetRandNum(_data.Min, _data.Max) // 随机获得的数量 items = append(items, &cfg.Gameatn{ A: _data.Itemid.A, @@ -255,8 +254,8 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } else if this.Stype[key] == 2 { for _, v := range this._groupType2[key] { if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 - if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 - count := comm.GetRandNum(_data.Min, _data.Max+1) + if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max) items = append(items, &cfg.Gameatn{ A: _data.Itemid.A, T: _data.Itemid.T, @@ -408,40 +407,6 @@ func (this *MCompConfigure) GetDropData(dropId int32) (data []*cfg.GameDropData) return } -// todo 调用drop 表 获取掉落信息 -func (this *MCompConfigure) GetMultipleDropReward(count, dropId int32, items []*pb.UserAssets) (resData []*pb.UserAssets) { - res := make([]*cfg.Gameatn, 0) - - for i := 0; i < int(count); i++ { - data := this.GetDropData(dropId) - szW := make([]int32, 0) - for _, value := range data { - szW = append(szW, value.P) - } - if len(szW) > 0 { - index := comm.GetRandW(szW) - res = append(res, data[index].Prize...) - } - } - for _, v := range res { - bFind := false - for _, v1 := range items { - if v.A == v1.A && v.T == v1.T { - v1.N += v.N - bFind = true - } - } - if !bFind { - items = append(items, &pb.UserAssets{ - A: v.A, - T: v.T, - N: v.N, - }) - } - } - resData = append(resData, items...) - return -} func (this *MCompConfigure) GetDropReward(dropId int32) (result []*cfg.Gameatn) { result = make([]*cfg.Gameatn, 0) From 9f5aa7baa8ac37599bec2291fcd1d989453aceb6 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Wed, 12 Apr 2023 18:41:42 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_coin.json | 84 +- bin/json/game_item.json | 3576 +++--------------- bin/json/game_pandamasjx.json | 32 - sys/configure/structs/Game.PandamasJxData.go | 2 - sys/configure/structs/game.coinData.go | 8 - sys/configure/structs/game.itemData.go | 14 +- 6 files changed, 480 insertions(+), 3236 deletions(-) diff --git a/bin/json/game_coin.json b/bin/json/game_coin.json index 0a3705c1d..fa92196a0 100644 --- a/bin/json/game_coin.json +++ b/bin/json/game_coin.json @@ -5,12 +5,8 @@ "color": 1, "effects": "", "access": 123, - "star": 0, - "race": 0, "img": "wp_icon_10035", - "ico": "wp_icon_10035", - "intr": "Currency used to purchase goods", - "tipstxt": "Insufficient gold coins" + "intr": "Currency used to purchase goods" }, { "key": "diamond", @@ -18,12 +14,8 @@ "color": 2, "effects": "", "access": 158, - "star": 0, - "race": 0, "img": "wp_icon_10036", - "ico": "wp_icon_10036", - "intr": "Currency used to purchase goods", - "tipstxt": "Diamond shortage" + "intr": "Currency used to purchase goods" }, { "key": "exp", @@ -31,12 +23,8 @@ "color": 3, "effects": "", "access": 113, - "star": 0, - "race": 0, "img": "icon_hy", - "ico": "icon_hy", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "friendPoint", @@ -44,12 +32,8 @@ "color": 1, "effects": "", "access": 115, - "star": 0, - "race": 0, "img": "wp_icon_10014", - "ico": "wp_icon_10014", - "intr": "Currency used to purchase goods", - "tipstxt": "Insufficient friendship points" + "intr": "Currency used to purchase goods" }, { "key": "palyexp", @@ -57,12 +41,8 @@ "color": 3, "effects": "", "access": 113, - "star": 0, - "race": 0, "img": "wp_icon_0002", - "ico": "wp_icon_0002", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "guildexp", @@ -70,12 +50,8 @@ "color": 1, "effects": "", "access": 157, - "star": 0, - "race": 0, "img": "wp_icon_10024", - "ico": "wp_icon_10024", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of guildexp" + "intr": "Currency used to purchase goods" }, { "key": "guildactive", @@ -83,12 +59,8 @@ "color": 1, "effects": "", "access": 157, - "star": 0, - "race": 0, "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": "Currency used to purchase goods", - "tipstxt": "Insufficient guildactive" + "intr": "Currency used to purchase goods" }, { "key": "guildcoin", @@ -96,12 +68,8 @@ "color": 3, "effects": "", "access": 157, - "star": 0, - "race": 0, "img": "wp_icon_10017", - "ico": "wp_icon_10017", - "intr": "Currency used to purchase goods", - "tipstxt": "Insufficient guildcoin" + "intr": "Currency used to purchase goods" }, { "key": "starcoin", @@ -109,12 +77,8 @@ "color": 3, "effects": "", "access": 158, - "star": 0, - "race": 0, "img": "wp_icon_10017", - "ico": "wp_icon_10017", - "intr": "Currency used to purchase goods", - "tipstxt": "Insufficient guildcoin" + "intr": "Currency used to purchase goods" }, { "key": "vipexp", @@ -122,12 +86,8 @@ "color": 3, "effects": "", "access": 158, - "star": 0, - "race": 0, "img": "wp_icon_0002", - "ico": "wp_icon_0002", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "arenacoin", @@ -135,12 +95,8 @@ "color": 3, "effects": "", "access": 156, - "star": 0, - "race": 0, "img": "icon_ry", - "ico": "icon_ry", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "ps", @@ -148,12 +104,8 @@ "color": 3, "effects": "", "access": 156, - "star": 0, - "race": 0, "img": "wp_icon_0002", - "ico": "wp_icon_0002", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "heroexp", @@ -161,12 +113,8 @@ "color": 3, "effects": "", "access": 0, - "star": 0, - "race": 0, "img": "wp_icon_10009", - "ico": "wp_icon_10009", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" }, { "key": "moongold", @@ -174,11 +122,7 @@ "color": 5, "effects": "", "access": 107, - "star": 0, - "race": 0, "img": "wp_icon_10009", - "ico": "wp_icon_10009", - "intr": "Currency used to purchase goods", - "tipstxt": "Lack of experience" + "intr": "Currency used to purchase goods" } ] \ No newline at end of file diff --git a/bin/json/game_item.json b/bin/json/game_item.json index e03a22bc5..c6beb9285 100644 --- a/bin/json/game_item.json +++ b/bin/json/game_item.json @@ -1,796 +1,4 @@ [ - { - "id": "10001", - "name": { - "key": "itemname_10001", - "text": "初级经验精灵" - }, - "usetype": 3, - "color": 2, - "bagtype": 1, - "index": 1, - "special_type": 0, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 114 - ], - "use_skip": 114, - "upper_limit": -1, - "uselv": 0, - "isani": 1, - "star": 3, - "race": 4, - "img": "wp_icon_0002", - "ico": "wp_icon_0002", - "intr": { - "key": "itemdesc_10001", - "text": "使用后可以强化英雄" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10001", - "text": "初级经验精灵不足" - } - }, - { - "id": "10002", - "name": { - "key": "itemname_10002", - "text": "石头" - }, - "usetype": 2, - "color": 2, - "bagtype": 1, - "index": 3, - "special_type": 0, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10002", - "ico": "wp_icon_10002", - "intr": { - "key": "itemdesc_10002", - "text": "一块测试功能的石头,他可能是某个不能使用的活动道具" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10002", - "text": "石头不足" - } - }, - { - "id": "10003", - "name": { - "key": "itemname_10003", - "text": "5星阿宝碎片" - }, - "usetype": 1, - "color": 4, - "bagtype": 2, - "index": 2, - "special_type": 0, - "time": 0, - "effects": "effect_ui_wuping_1", - "box_id": 10002, - "synthetize_num": 50, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 5, - "race": 3, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_10003", - "text": "集齐50个碎片合成阿宝" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10003", - "text": "5星阿宝碎片不足" - } - }, - { - "id": "10004", - "name": { - "key": "itemname_10004", - "text": "金币自选箱" - }, - "usetype": 4, - "color": 3, - "bagtype": 1, - "index": 4, - "special_type": 0, - "time": 0, - "effects": "", - "box_id": 10001, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10009", - "ico": "wp_icon_10009", - "intr": { - "key": "itemdesc_10004", - "text": "可以在以下道具中选择任选1个" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10004", - "text": "金币自选箱不足" - } - }, - { - "id": "10005", - "name": { - "key": "itemname_10005", - "text": "随机金币箱子" - }, - "usetype": 5, - "color": 3, - "bagtype": 1, - "index": 5, - "special_type": 0, - "time": 0, - "effects": "", - "box_id": 20002, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_10005", - "text": "可以在以下道具中随机获取1个" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10005", - "text": "随机金币箱子不足" - } - }, - { - "id": "10006", - "name": { - "key": "itemname_10006", - "text": "金币箱子" - }, - "usetype": 6, - "color": 3, - "bagtype": 1, - "index": 6, - "special_type": 0, - "time": 0, - "effects": "", - "box_id": 20003, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_0002", - "ico": "wp_icon_0002", - "intr": { - "key": "itemdesc_10006", - "text": "打开后可以获得金币" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10006", - "text": "金币箱子不足" - } - }, - { - "id": "10007", - "name": { - "key": "itemname_10007", - "text": "2小时金币" - }, - "usetype": 7, - "color": 3, - "bagtype": 1, - "index": 7, - "special_type": 120, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_10007", - "text": "使用后获得2小时金币收益" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10007", - "text": "2小时金币不足" - } - }, - { - "id": "10008", - "name": { - "key": "itemname_10008", - "text": "特殊2小时金币" - }, - "usetype": 7, - "color": 3, - "bagtype": 1, - "index": 8, - "special_type": 120, - "time": 2, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_10008", - "text": "使用后获得2小时金币收益,但是他会在2分钟内消失,测下功能。" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10008", - "text": "特殊2小时金币不足" - } - }, - { - "id": "10009", - "name": { - "key": "itemname_10009", - "text": "被封印的魔法书" - }, - "usetype": 9, - "color": 1, - "bagtype": 1, - "index": 9, - "special_type": 5, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10009", - "ico": "wp_icon_10009", - "intr": { - "key": "itemdesc_10009", - "text": "一本被封印的魔法书,送给英雄可以增加一定好感度" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10009", - "text": "被封印的魔法书不足" - } - }, - { - "id": "10010", - "name": { - "key": "itemname_10010", - "text": "古代硬币" - }, - "usetype": 9, - "color": 1, - "bagtype": 1, - "index": 10, - "special_type": 5, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10010", - "ico": "wp_icon_10010", - "intr": { - "key": "itemdesc_10010", - "text": "一种纪念币,送给英雄可以增加一定好感度" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10010", - "text": "古代硬币不足" - } - }, - { - "id": "10011", - "name": { - "key": "itemname_10011", - "text": "坏掉的钟表" - }, - "usetype": 9, - "color": 2, - "bagtype": 1, - "index": 11, - "special_type": 10, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10011", - "ico": "wp_icon_10011", - "intr": { - "key": "itemdesc_10011", - "text": "有年代感的钟表,送给英雄可以增加一定好感度" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10011", - "text": "坏掉的钟表不足" - } - }, - { - "id": "10012", - "name": { - "key": "itemname_10012", - "text": "木材" - }, - "usetype": 9, - "color": 2, - "bagtype": 1, - "index": 12, - "special_type": 10, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10012", - "ico": "wp_icon_10012", - "intr": { - "key": "itemdesc_10012", - "text": "散发着香气的木材,送给英雄可以增加一定好感度" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10012", - "text": "木材不足" - } - }, - { - "id": "10013", - "name": { - "key": "itemname_10013", - "text": "四叶草" - }, - "usetype": 9, - "color": 3, - "bagtype": 1, - "index": 13, - "special_type": 20, - "time": 0, - "effects": "", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10013", - "ico": "wp_icon_10013", - "intr": { - "key": "itemdesc_10013", - "text": "能给人带来好运的植物,送给英雄可以增加一定好感度" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10013", - "text": "四叶草不足" - } - }, - { - "id": "10014", - "name": { - "key": "itemname_10014", - "text": "冒险家勋章" - }, - "usetype": 9, - "color": 4, - "bagtype": 1, - "index": 14, - "special_type": 50, - "time": 0, - "effects": "effect_ui_wuping_1", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10014", - "ico": "wp_icon_10014", - "intr": { - "key": "itemdesc_10014", - "text": "你登录了游戏就是冒险家,就会获得这个勋章" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10014", - "text": "冒险家勋章不足" - } - }, - { - "id": "10015", - "name": { - "key": "itemname_10015", - "text": "猫猫护身符" - }, - "usetype": 9, - "color": 5, - "bagtype": 1, - "index": 15, - "special_type": 100, - "time": 0, - "effects": "effect_ui_wuping_2", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10015", - "ico": "wp_icon_10015", - "intr": { - "key": "itemdesc_10015", - "text": "比幸运草更幸运" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10015", - "text": "猫猫护身符不足" - } - }, - { - "id": "10016", - "name": { - "key": "itemname_10016", - "text": "人造钻石" - }, - "usetype": 9, - "color": 6, - "bagtype": 1, - "index": 16, - "special_type": 200, - "time": 0, - "effects": "effect_ui_wuping_3", - "box_id": 0, - "synthetize_num": 0, - "access": [ - 122 - ], - "use_skip": 107, - "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, - "img": "wp_icon_10016", - "ico": "wp_icon_10016", - "intr": { - "key": "itemdesc_10016", - "text": "钻石是人造的,所以不能用来买商城的商品" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_10016", - "text": "人造钻石不足" - } - }, - { - "id": "20001", - "name": { - "key": "itemname_20001", - "text": "随机英雄碎片" - }, - "usetype": 1, - "color": 4, - "bagtype": 2, - "index": 17, - "special_type": 0, - "time": 0, - "effects": "effect_ui_wuping_1", - "box_id": 10001, - "synthetize_num": 50, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 5, - "race": 3, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_20001", - "text": "集齐50个碎片合成随机英雄" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_20001", - "text": "随机英雄碎片不足" - } - }, - { - "id": "20002", - "name": { - "key": "itemname_20002", - "text": "25001号碎片" - }, - "usetype": 1, - "color": 4, - "bagtype": 2, - "index": 18, - "special_type": 0, - "time": 0, - "effects": "effect_ui_wuping_1", - "box_id": 10002, - "synthetize_num": 50, - "access": [ - 122 - ], - "use_skip": 0, - "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 5, - "race": 3, - "img": "wp_icon_0001", - "ico": "wp_icon_0001", - "intr": { - "key": "itemdesc_20002", - "text": "集齐50个碎片合成25001号英雄" - }, - "sale": [ - { - "a": "attr", - "t": "gold", - "n": 1000 - } - ], - "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_20002", - "text": "25001号碎片不足" - } - }, { "id": "30001", "name": { @@ -803,6 +11,7 @@ "index": 19, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -811,23 +20,14 @@ ], "use_skip": 107, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10019", - "ico": "wp_icon_10019", "intr": { "key": "itemdesc_30001", "text": "可以用于招募英雄" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_30001", - "text": "时空石不足" - } + "decompose_deplete": [] }, { "id": "30002", @@ -841,6 +41,7 @@ "index": 20, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -849,23 +50,14 @@ ], "use_skip": 108, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10020", - "ico": "wp_icon_10020", "intr": { "key": "itemdesc_30002", "text": "可以用于奥术阵营招募英雄" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_30002", - "text": "奥术石不足" - } + "decompose_deplete": [] }, { "id": "30003", @@ -879,6 +71,7 @@ "index": 21, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -887,23 +80,14 @@ ], "use_skip": 108, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10021", - "ico": "wp_icon_10021", "intr": { "key": "itemdesc_30003", "text": "可以用于科技阵营招募英雄" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_30003", - "text": "科技石不足" - } + "decompose_deplete": [] }, { "id": "30004", @@ -917,6 +101,7 @@ "index": 22, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -925,23 +110,14 @@ ], "use_skip": 108, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10022", - "ico": "wp_icon_10022", "intr": { "key": "itemdesc_30004", "text": "可以用于自然阵营招募英雄" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_30004", - "text": "自然石不足" - } + "decompose_deplete": [] }, { "id": "30005", @@ -955,6 +131,7 @@ "index": 23, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -963,23 +140,14 @@ ], "use_skip": 108, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10023", - "ico": "wp_icon_10023", "intr": { "key": "itemdesc_30005", "text": "可以用于光耀阵营招募英雄" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_30005", - "text": "光耀石不足" - } + "decompose_deplete": [] }, { "id": "50001", @@ -993,6 +161,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50005, "synthetize_num": 5, @@ -1001,12 +170,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10031", - "ico": "wp_icon_10031", "intr": { "key": "itemdesc_50001", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1025,11 +189,7 @@ "n": 1000 } ], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_50001", - "text": "奥术美食-低级不足" - } + "decompose_deplete": [] }, { "id": "50002", @@ -1043,6 +203,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50006, "synthetize_num": 5, @@ -1051,12 +212,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10032", - "ico": "wp_icon_10032", "intr": { "key": "itemdesc_50002", "text": "食用后可以提升科技系英雄的觉醒等级" @@ -1075,11 +231,7 @@ "n": 1000 } ], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_50002", - "text": "科技美食-低级不足" - } + "decompose_deplete": [] }, { "id": "50003", @@ -1093,6 +245,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50007, "synthetize_num": 5, @@ -1101,12 +254,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10033", - "ico": "wp_icon_10033", "intr": { "key": "itemdesc_50003", "text": "食用后可以提升自然系英雄的觉醒等级" @@ -1125,11 +273,7 @@ "n": 1000 } ], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_50003", - "text": "自然美食-低级不足" - } + "decompose_deplete": [] }, { "id": "50004", @@ -1143,6 +287,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50008, "synthetize_num": 5, @@ -1151,12 +296,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10034", - "ico": "wp_icon_10034", "intr": { "key": "itemdesc_50004", "text": "食用后可以提升光耀系英雄的觉醒等级" @@ -1175,11 +315,7 @@ "n": 1000 } ], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_50004", - "text": "光耀美食-低级不足" - } + "decompose_deplete": [] }, { "id": "50005", @@ -1193,6 +329,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50009, "synthetize_num": 5, @@ -1201,12 +338,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10031", - "ico": "wp_icon_10031", "intr": { "key": "itemdesc_50005", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1231,11 +363,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50005", - "text": "奥术美食-中级不足" - } + ] }, { "id": "50006", @@ -1249,6 +377,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50010, "synthetize_num": 5, @@ -1257,12 +386,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10032", - "ico": "wp_icon_10032", "intr": { "key": "itemdesc_50006", "text": "食用后可以提升科技系英雄的觉醒等级" @@ -1287,11 +411,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50006", - "text": "科技美食-中级不足" - } + ] }, { "id": "50007", @@ -1305,6 +425,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50011, "synthetize_num": 5, @@ -1313,12 +434,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10033", - "ico": "wp_icon_10033", "intr": { "key": "itemdesc_50007", "text": "食用后可以提升自然系英雄的觉醒等级" @@ -1343,11 +459,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50007", - "text": "自然美食-中级不足" - } + ] }, { "id": "50008", @@ -1361,6 +473,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 50012, "synthetize_num": 5, @@ -1369,12 +482,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10034", - "ico": "wp_icon_10034", "intr": { "key": "itemdesc_50008", "text": "食用后可以提升光耀系英雄的觉醒等级" @@ -1399,11 +507,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50008", - "text": "光耀美食-中级不足" - } + ] }, { "id": "50009", @@ -1417,6 +521,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1425,12 +530,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10031", - "ico": "wp_icon_10031", "intr": { "key": "itemdesc_50009", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1449,11 +549,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50009", - "text": "奥术美食-高级不足" - } + ] }, { "id": "50010", @@ -1467,6 +563,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1475,12 +572,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10032", - "ico": "wp_icon_10032", "intr": { "key": "itemdesc_50010", "text": "食用后可以提升科技系英雄的觉醒等级" @@ -1499,11 +591,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50010", - "text": "科技美食-高级不足" - } + ] }, { "id": "50011", @@ -1517,6 +605,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1525,12 +614,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10033", - "ico": "wp_icon_10033", "intr": { "key": "itemdesc_50011", "text": "食用后可以提升自然系英雄的觉醒等级" @@ -1549,11 +633,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50011", - "text": "自然美食-高级不足" - } + ] }, { "id": "50012", @@ -1567,6 +647,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1575,12 +656,7 @@ ], "use_skip": 109, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10034", - "ico": "wp_icon_10034", "intr": { "key": "itemdesc_50012", "text": "食用后可以提升光耀系英雄的觉醒等级" @@ -1599,11 +675,7 @@ "t": "gold", "n": 1000 } - ], - "tipstxt": { - "key": "itemtipstxt_50012", - "text": "光耀美食-高级不足" - } + ] }, { "id": "60001", @@ -1617,6 +689,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_2", "box_id": 60001, "synthetize_num": 0, @@ -1625,23 +698,14 @@ ], "use_skip": 0, "upper_limit": 99, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10029", - "ico": "wp_icon_10029", "intr": { "key": "itemdesc_60001", "text": "可以任选一件5星装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_60001", - "text": "5星装备自选箱不足" - } + "decompose_deplete": [] }, { "id": "60002", @@ -1655,6 +719,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_2", "box_id": 60002, "synthetize_num": 0, @@ -1663,23 +728,14 @@ ], "use_skip": 0, "upper_limit": 99, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10029", - "ico": "wp_icon_10029", "intr": { "key": "itemdesc_60002", "text": "可以随机获得一件5星装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_60002", - "text": "5星装备随机箱不足" - } + "decompose_deplete": [] }, { "id": "60003", @@ -1693,6 +749,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_2", "box_id": 60003, "synthetize_num": 0, @@ -1701,23 +758,14 @@ ], "use_skip": 0, "upper_limit": 99, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10030", - "ico": "wp_icon_10030", "intr": { "key": "itemdesc_60003", "text": "可以获得一套5星装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_60003", - "text": "5星套装宝箱不足" - } + "decompose_deplete": [] }, { "id": "90001", @@ -1731,6 +779,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1739,12 +788,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "action_11001", - "ico": "action_11001", "intr": { "key": "itemdesc_90001", "text": "阿宝天赋点" @@ -1757,11 +801,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_90001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "90002", @@ -1775,6 +815,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1783,12 +824,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "action_11003", - "ico": "action_11003", "intr": { "key": "itemdesc_90002", "text": "波比天赋点" @@ -1801,11 +837,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_90002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "90003", @@ -1819,6 +851,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -1827,12 +860,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "action_44005", - "ico": "action_44005", "intr": { "key": "itemdesc_90003", "text": "小伊天赋点" @@ -1845,11 +873,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_90003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "40001", @@ -1863,6 +887,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -1871,12 +896,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40001", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1889,11 +909,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40001", - "text": "攻势附魔石不足" - } + "decompose_deplete": [] }, { "id": "40002", @@ -1907,6 +923,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -1915,12 +932,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40002", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1933,11 +945,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40002", - "text": "逐风附魔石不足" - } + "decompose_deplete": [] }, { "id": "40003", @@ -1951,6 +959,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -1959,12 +968,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40003", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -1977,11 +981,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40003", - "text": "寒霜附魔石不足" - } + "decompose_deplete": [] }, { "id": "40004", @@ -1995,6 +995,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2003,12 +1004,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40004", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2021,11 +1017,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40004", - "text": "牧神附魔石不足" - } + "decompose_deplete": [] }, { "id": "40005", @@ -2039,6 +1031,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2047,12 +1040,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40005", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2065,11 +1053,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40005", - "text": "玄武附魔石不足" - } + "decompose_deplete": [] }, { "id": "40006", @@ -2083,6 +1067,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2091,12 +1076,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40006", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2109,11 +1089,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40006", - "text": "箭神附魔石不足" - } + "decompose_deplete": [] }, { "id": "40007", @@ -2127,6 +1103,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2135,12 +1112,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40007", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2153,11 +1125,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40007", - "text": "渴血附魔石不足" - } + "decompose_deplete": [] }, { "id": "40008", @@ -2171,6 +1139,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2179,12 +1148,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40008", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2197,11 +1161,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40008", - "text": "愈合附魔石不足" - } + "decompose_deplete": [] }, { "id": "40009", @@ -2215,6 +1175,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2223,12 +1184,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40009", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2241,11 +1197,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40009", - "text": "祈愿附魔石不足" - } + "decompose_deplete": [] }, { "id": "40010", @@ -2259,6 +1211,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2267,12 +1220,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40010", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2285,11 +1233,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40010", - "text": "预言附魔石不足" - } + "decompose_deplete": [] }, { "id": "40011", @@ -2303,6 +1247,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2311,12 +1256,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40011", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2329,11 +1269,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40011", - "text": "月盾附魔石不足" - } + "decompose_deplete": [] }, { "id": "40012", @@ -2347,6 +1283,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2355,12 +1292,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40012", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2373,11 +1305,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40012", - "text": "破妄附魔石不足" - } + "decompose_deplete": [] }, { "id": "40013", @@ -2391,6 +1319,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2399,12 +1328,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40013", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2417,11 +1341,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40013", - "text": "脉冲附魔石不足" - } + "decompose_deplete": [] }, { "id": "40014", @@ -2435,6 +1355,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2443,12 +1364,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40014", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2461,11 +1377,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40014", - "text": "裁决附魔石不足" - } + "decompose_deplete": [] }, { "id": "40015", @@ -2479,6 +1391,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2487,12 +1400,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40015", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2505,11 +1413,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40015", - "text": "炼心附魔石不足" - } + "decompose_deplete": [] }, { "id": "40016", @@ -2523,6 +1427,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2531,12 +1436,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40016", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2549,11 +1449,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40016", - "text": "诅咒附魔石不足" - } + "decompose_deplete": [] }, { "id": "40017", @@ -2567,6 +1463,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2575,12 +1472,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40017", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2593,11 +1485,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40017", - "text": "守护附魔石不足" - } + "decompose_deplete": [] }, { "id": "40018", @@ -2611,6 +1499,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2619,12 +1508,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40018", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2637,11 +1521,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40018", - "text": "御免附魔石不足" - } + "decompose_deplete": [] }, { "id": "40019", @@ -2655,6 +1535,7 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2663,12 +1544,7 @@ ], "use_skip": 109, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_st03", - "ico": "icon_st03", "intr": { "key": "itemdesc_40019", "text": "食用后可以提升奥术系英雄的觉醒等级" @@ -2681,11 +1557,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_40019", - "text": "庇佑附魔石不足" - } + "decompose_deplete": [] }, { "id": "100001", @@ -2699,6 +1571,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2707,23 +1580,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100001", "text": "进入维京远征的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100001", - "text": "维京远征挑战券不足" - } + "decompose_deplete": [] }, { "id": "100002", @@ -2737,6 +1601,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2745,23 +1610,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100002", "text": "进入狩猎的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100002", - "text": "狩猎挑战券不足" - } + "decompose_deplete": [] }, { "id": "100003", @@ -2775,6 +1631,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2783,23 +1640,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100003", "text": "进入秘境的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100003", - "text": "秘境挑战券不足" - } + "decompose_deplete": [] }, { "id": "100004", @@ -2813,6 +1661,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2821,23 +1670,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100004", "text": "进入竞技场的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100004", - "text": "竞技场挑战券不足" - } + "decompose_deplete": [] }, { "id": "100005", @@ -2851,6 +1691,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2859,23 +1700,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100005", "text": "进入阵营BOSS的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100005", - "text": "阵营挑战券不足" - } + "decompose_deplete": [] }, { "id": "100006", @@ -2889,6 +1721,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2897,23 +1730,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100006", "text": "进入公会BOSS的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100006", - "text": "公会挑战券不足" - } + "decompose_deplete": [] }, { "id": "100100", @@ -2927,6 +1751,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2935,23 +1760,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100100", "text": "进入阵营BOSS的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100100", - "text": "副本挑战券不足" - } + "decompose_deplete": [] }, { "id": "100101", @@ -2965,6 +1781,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -2973,23 +1790,14 @@ ], "use_skip": 107, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_jjcq", - "ico": "wp_icon_jjcq", "intr": { "key": "itemdesc_100101", "text": "进入阵营BOSS的凭证" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_100101", - "text": "副本挑战券不足" - } + "decompose_deplete": [] }, { "id": "110001", @@ -3003,6 +1811,7 @@ "index": 12, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3011,12 +1820,7 @@ ], "use_skip": 140, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10012", - "ico": "wp_icon_10012", "intr": { "key": "itemdesc_110001", "text": "散发着香气的木材,可以用来烹饪" @@ -3029,11 +1833,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_110001", - "text": "木材不足" - } + "decompose_deplete": [] }, { "id": "110002", @@ -3047,6 +1847,7 @@ "index": 12, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3055,12 +1856,7 @@ ], "use_skip": 140, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10009", - "ico": "wp_icon_10009", "intr": { "key": "itemdesc_110002", "text": "来自世界各地的菜谱,可以用来提升厨师等级" @@ -3073,11 +1869,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_110002", - "text": "菜谱不足" - } + "decompose_deplete": [] }, { "id": "120001", @@ -3091,6 +1883,7 @@ "index": 120001, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3099,23 +1892,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_flower", - "ico": "tj_icon_flower", "intr": { "key": "itemdesc_120001", "text": "熔岩泰坦掉落初级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120001", - "text": "葛伦科火花不足" - } + "decompose_deplete": [] }, { "id": "120002", @@ -3129,6 +1913,7 @@ "index": 120002, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3137,23 +1922,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_yshy", - "ico": "tj_icon_yshy", "intr": { "key": "itemdesc_120002", "text": "熔岩泰坦掉落中级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120002", - "text": "原始火油不足" - } + "decompose_deplete": [] }, { "id": "120003", @@ -3167,6 +1943,7 @@ "index": 120003, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3175,23 +1952,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_ttry", - "ico": "tj_icon_ttry", "intr": { "key": "itemdesc_120003", "text": "熔岩泰坦掉落高级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120003", - "text": "炉心岩浆不足" - } + "decompose_deplete": [] }, { "id": "120004", @@ -3205,6 +1973,7 @@ "index": 120004, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3213,23 +1982,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_hmkz", - "ico": "tj_icon_hmkz", "intr": { "key": "itemdesc_120004", "text": "森林泰坦掉落初级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120004", - "text": "荒漠枯枝不足" - } + "decompose_deplete": [] }, { "id": "120005", @@ -3243,6 +2003,7 @@ "index": 120005, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3251,23 +2012,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_ljym", - "ico": "tj_icon_ljym", "intr": { "key": "itemdesc_120005", "text": "森林泰坦掉落中级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120005", - "text": "洛基圆木不足" - } + "decompose_deplete": [] }, { "id": "120006", @@ -3281,6 +2033,7 @@ "index": 120006, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3289,23 +2042,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_emtm", - "ico": "tj_icon_emtm", "intr": { "key": "itemdesc_120006", "text": "森林泰坦掉落高级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120006", - "text": "恶魔藤蔓不足" - } + "decompose_deplete": [] }, { "id": "120007", @@ -3319,6 +2063,7 @@ "index": 120007, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3327,23 +2072,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_cjbs", - "ico": "tj_icon_cjbs", "intr": { "key": "itemdesc_120007", "text": "森林泰坦掉落初级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120007", - "text": "凛冬雪花不足" - } + "decompose_deplete": [] }, { "id": "120008", @@ -3357,6 +2093,7 @@ "index": 120008, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3365,23 +2102,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_zjbs", - "ico": "tj_icon_zjbs", "intr": { "key": "itemdesc_120008", "text": "森林泰坦掉落中级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120008", - "text": "北极冰砖不足" - } + "decompose_deplete": [] }, { "id": "120009", @@ -3395,6 +2123,7 @@ "index": 120009, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3403,23 +2132,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_gjbs", - "ico": "tj_icon_gjbs", "intr": { "key": "itemdesc_120009", "text": "森林泰坦掉落高级材料,可用于打造装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120009", - "text": "龙之冰晶不足" - } + "decompose_deplete": [] }, { "id": "120101", @@ -3433,6 +2153,7 @@ "index": 120101, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3441,23 +2162,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_jls", - "ico": "tj_icon_jls", "intr": { "key": "itemdesc_120101", "text": "打造时添加精炼石,必出高品质装备" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120101", - "text": "精炼石不足" - } + "decompose_deplete": [] }, { "id": "120102", @@ -3471,6 +2183,7 @@ "index": 120102, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3479,23 +2192,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_tys02", - "ico": "tj_icon_tys02", "intr": { "key": "itemdesc_120102", "text": "打造时添加太阳石,可以选择打造的套装,添加大量太阳石可以选择打造的套装和套装部位" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120102", - "text": "太阳石不足" - } + "decompose_deplete": [] }, { "id": "120103", @@ -3509,6 +2213,7 @@ "index": 120103, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3517,23 +2222,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_rtys", - "ico": "tj_icon_rtys", "intr": { "key": "itemdesc_120103", "text": "打造时添加熔岩石,不增加熔炉CD" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120103", - "text": "熔岩石不足" - } + "decompose_deplete": [] }, { "id": "120104", @@ -3547,6 +2243,7 @@ "index": 120104, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -3555,23 +2252,14 @@ ], "use_skip": 139, "upper_limit": -1, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "tj_icon_mt", - "ico": "tj_icon_mt", "intr": { "key": "itemdesc_120104", "text": "清除熔炉的CD" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_120104", - "text": "木炭不足" - } + "decompose_deplete": [] }, { "id": "513001", @@ -3585,6 +2273,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3593,12 +2282,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_13001", - "ico": "ytx_js_13001", "intr": { "key": "itemdesc_513001", "text": "闪闪天赋点" @@ -3611,11 +2295,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_513001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "513002", @@ -3629,6 +2309,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3637,12 +2318,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_13002", - "ico": "ytx_js_13002", "intr": { "key": "itemdesc_513002", "text": "食人鱼先生天赋点" @@ -3655,11 +2331,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_513002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "513003", @@ -3673,6 +2345,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3681,12 +2354,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_13003", - "ico": "ytx_js_13003", "intr": { "key": "itemdesc_513003", "text": "啊啊天赋点" @@ -3699,11 +2367,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_513003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "513004", @@ -3717,6 +2381,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3725,12 +2390,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_13004", - "ico": "ytx_js_13004", "intr": { "key": "itemdesc_513004", "text": "法夸德勋爵天赋点" @@ -3743,11 +2403,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_513004", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "513005", @@ -3761,6 +2417,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3769,12 +2426,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_13005", - "ico": "ytx_js_13005", "intr": { "key": "itemdesc_513005", "text": "大大天赋点" @@ -3787,11 +2439,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_513005", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514001", @@ -3805,6 +2453,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3813,12 +2462,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14001", - "ico": "ytx_js_14001", "intr": { "key": "itemdesc_514001", "text": "史图依克天赋点" @@ -3831,11 +2475,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514002", @@ -3849,6 +2489,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3857,12 +2498,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14002", - "ico": "ytx_js_14002", "intr": { "key": "itemdesc_514002", "text": "大龙天赋点" @@ -3875,11 +2511,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514003", @@ -3893,6 +2525,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3901,12 +2534,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14003", - "ico": "ytx_js_14003", "intr": { "key": "itemdesc_514003", "text": "亚丝翠天赋点" @@ -3919,11 +2547,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514004", @@ -3937,6 +2561,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3945,12 +2570,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14004", - "ico": "ytx_js_14004", "intr": { "key": "itemdesc_514004", "text": "克莱尔·努涅斯天赋点" @@ -3963,11 +2583,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514005", @@ -3981,6 +2597,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -3989,12 +2606,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14005", - "ico": "ytx_js_14005", "intr": { "key": "itemdesc_514005", "text": "鹤大师天赋点" @@ -4007,11 +2619,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514006", @@ -4025,6 +2633,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4033,12 +2642,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14006", - "ico": "ytx_js_14006", "intr": { "key": "itemdesc_514006", "text": "布兰奇天赋点" @@ -4051,11 +2655,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514006", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "514007", @@ -4069,6 +2669,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4077,12 +2678,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_14007", - "ico": "ytx_js_14007", "intr": { "key": "itemdesc_514007", "text": "格里斯特王子天赋点" @@ -4095,11 +2691,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_514007", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "515001", @@ -4113,6 +2705,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4121,12 +2714,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15001", - "ico": "ytx_js_15001", "intr": { "key": "itemdesc_515001", "text": "吉姆·莱克天赋点" @@ -4139,11 +2727,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_515001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "515002", @@ -4157,6 +2741,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4165,12 +2750,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15002", - "ico": "ytx_js_15002", "intr": { "key": "itemdesc_515002", "text": "船长天赋点" @@ -4183,11 +2763,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_515002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "515003", @@ -4201,6 +2777,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4209,12 +2786,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15003", - "ico": "ytx_js_15003", "intr": { "key": "itemdesc_515003", "text": "希沙窦斯天赋点" @@ -4227,11 +2799,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_515003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "515004", @@ -4245,6 +2813,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4253,12 +2822,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15004", - "ico": "ytx_js_15004", "intr": { "key": "itemdesc_515004", "text": "小欧天赋点" @@ -4271,11 +2835,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_515004", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "523001", @@ -4289,6 +2849,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4297,12 +2858,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_23001", - "ico": "ytx_js_23001", "intr": { "key": "itemdesc_523001", "text": "斯梅克船长天赋点" @@ -4315,11 +2871,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_523001", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "523002", @@ -4333,6 +2885,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4341,12 +2894,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_23002", - "ico": "ytx_js_23002", "intr": { "key": "itemdesc_523002", "text": "警卫队长天赋点" @@ -4359,11 +2907,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_523002", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "523003", @@ -4377,6 +2921,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4385,12 +2930,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_23003", - "ico": "ytx_js_23003", "intr": { "key": "itemdesc_523003", "text": "泰德·邓普顿天赋点" @@ -4403,11 +2943,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_523003", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "523004", @@ -4421,6 +2957,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4429,12 +2966,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_23004", - "ico": "ytx_js_23004", "intr": { "key": "itemdesc_523004", "text": "吉姆·普雷斯科特天赋点" @@ -4447,11 +2979,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_523004", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524001", @@ -4465,6 +2993,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4473,12 +3002,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24001", - "ico": "ytx_js_24001", "intr": { "key": "itemdesc_524001", "text": "警长天赋点" @@ -4491,11 +3015,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524002", @@ -4509,6 +3029,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4517,12 +3038,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24002", - "ico": "ytx_js_24002", "intr": { "key": "itemdesc_524002", "text": "牙仙天赋点" @@ -4535,11 +3051,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524003", @@ -4553,6 +3065,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4561,12 +3074,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24003", - "ico": "ytx_js_24003", "intr": { "key": "itemdesc_524003", "text": "睡神沙人天赋点" @@ -4579,11 +3087,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524004", @@ -4597,6 +3101,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4605,12 +3110,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24004", - "ico": "ytx_js_24004", "intr": { "key": "itemdesc_524004", "text": "邦尼兔天赋点" @@ -4623,11 +3123,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524005", @@ -4641,6 +3137,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4649,12 +3146,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24005", - "ico": "ytx_js_24005", "intr": { "key": "itemdesc_524005", "text": "金猴天赋点" @@ -4667,11 +3159,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524006", @@ -4685,6 +3173,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4693,12 +3182,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24006", - "ico": "ytx_js_24006", "intr": { "key": "itemdesc_524006", "text": "凯尔天赋点" @@ -4711,11 +3195,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524006", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524007", @@ -4729,6 +3209,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4737,12 +3218,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24007", - "ico": "ytx_js_24007", "intr": { "key": "itemdesc_524007", "text": "小钱天赋点" @@ -4755,11 +3231,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524007", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524008", @@ -4773,6 +3245,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4781,12 +3254,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24008", - "ico": "ytx_js_24008", "intr": { "key": "itemdesc_524008", "text": "暴芙那特天赋点" @@ -4799,11 +3267,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524008", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "524009", @@ -4817,6 +3281,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4825,12 +3290,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_24009", - "ico": "ytx_js_24009", "intr": { "key": "itemdesc_524009", "text": "云朵先生天赋点" @@ -4843,11 +3303,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_524009", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "525001", @@ -4861,6 +3317,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4869,12 +3326,7 @@ ], "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_525001", "text": "阿宝天赋点" @@ -4887,11 +3339,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_525001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "525002", @@ -4905,6 +3353,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4913,12 +3362,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_25002", - "ico": "ytx_js_25002", "intr": { "key": "itemdesc_525002", "text": "沃尔夫先生天赋点" @@ -4931,11 +3375,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_525002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "525003", @@ -4949,6 +3389,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -4957,12 +3398,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_25003", - "ico": "ytx_js_25003", "intr": { "key": "itemdesc_525003", "text": "羊仙姑天赋点" @@ -4975,11 +3411,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_525003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "525004", @@ -4993,6 +3425,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5001,12 +3434,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_25004", - "ico": "ytx_js_25004", "intr": { "key": "itemdesc_525004", "text": "波比天赋点" @@ -5019,11 +3447,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_525004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533001", @@ -5037,6 +3461,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5045,12 +3470,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33001", - "ico": "ytx_js_33001", "intr": { "key": "itemdesc_533001", "text": "巫嘎天赋点" @@ -5063,11 +3483,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533002", @@ -5081,6 +3497,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5089,12 +3506,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33002", - "ico": "ytx_js_33002", "intr": { "key": "itemdesc_533002", "text": "坦克天赋点" @@ -5107,11 +3519,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533003", @@ -5125,6 +3533,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5133,12 +3542,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33003", - "ico": "ytx_js_33003", "intr": { "key": "itemdesc_533003", "text": "胡德先生天赋点" @@ -5151,11 +3555,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533004", @@ -5169,6 +3569,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5177,12 +3578,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33004", - "ico": "ytx_js_33004", "intr": { "key": "itemdesc_533004", "text": "普鲁格兰杰天赋点" @@ -5195,11 +3591,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533004", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533005", @@ -5213,6 +3605,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5221,12 +3614,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33005", - "ico": "ytx_js_33005", "intr": { "key": "itemdesc_533005", "text": "鼻涕粗天赋点" @@ -5239,11 +3627,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533005", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "533006", @@ -5257,6 +3641,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5265,12 +3650,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_33006", - "ico": "ytx_js_33006", "intr": { "key": "itemdesc_533006", "text": "珍妮丝·邓普顿天赋点" @@ -5283,11 +3663,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_533006", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534001", @@ -5301,6 +3677,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5309,12 +3686,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34001", - "ico": "ytx_js_34001", "intr": { "key": "itemdesc_534001", "text": "贫嘴驴天赋点" @@ -5327,11 +3699,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534002", @@ -5345,6 +3713,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5353,12 +3722,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34002", - "ico": "ytx_js_34002", "intr": { "key": "itemdesc_534002", "text": "蒂姆·邓普顿天赋点" @@ -5371,11 +3735,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534003", @@ -5389,6 +3749,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5397,12 +3758,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34003", - "ico": "ytx_js_34003", "intr": { "key": "itemdesc_534003", "text": "圣诞老人天赋点" @@ -5415,11 +3771,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534004", @@ -5433,6 +3785,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5441,12 +3794,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34004", - "ico": "ytx_js_34004", "intr": { "key": "itemdesc_534004", "text": "瓜哥天赋点" @@ -5459,11 +3807,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534004", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534005", @@ -5477,6 +3821,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5485,12 +3830,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34005", - "ico": "ytx_js_34005", "intr": { "key": "itemdesc_534005", "text": "沃尔特·史翠克勒天赋点" @@ -5503,11 +3843,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534005", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534006", @@ -5521,6 +3857,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5529,12 +3866,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34006", - "ico": "ytx_js_34006", "intr": { "key": "itemdesc_534006", "text": "冰霜杰克天赋点" @@ -5547,11 +3879,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534006", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534007", @@ -5565,6 +3893,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5573,12 +3902,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34007", - "ico": "ytx_js_34007", "intr": { "key": "itemdesc_534007", "text": "菲奥娜天赋点" @@ -5591,11 +3915,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534007", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "534008", @@ -5609,6 +3929,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5617,12 +3938,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_34008", - "ico": "ytx_js_34008", "intr": { "key": "itemdesc_534008", "text": "悍夫那特天赋点" @@ -5635,11 +3951,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_534008", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535001", @@ -5653,6 +3965,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5661,12 +3974,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35001", - "ico": "ytx_js_35001", "intr": { "key": "itemdesc_535001", "text": "师父天赋点" @@ -5679,11 +3987,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535002", @@ -5697,6 +4001,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5705,12 +4010,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35002", - "ico": "ytx_js_35002", "intr": { "key": "itemdesc_535002", "text": "希卡普天赋点" @@ -5723,11 +4023,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535003", @@ -5741,6 +4037,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5749,12 +4046,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35003", - "ico": "ytx_js_35003", "intr": { "key": "itemdesc_535003", "text": "漆黑天赋点" @@ -5767,11 +4059,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535004", @@ -5785,6 +4073,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5793,12 +4082,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35004", - "ico": "ytx_js_35004", "intr": { "key": "itemdesc_535004", "text": "黛安·福克斯顿天赋点" @@ -5811,11 +4095,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535005", @@ -5829,6 +4109,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5837,12 +4118,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35005", - "ico": "ytx_js_35005", "intr": { "key": "itemdesc_535005", "text": "幸运·普雷斯科特天赋点" @@ -5855,11 +4131,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "535006", @@ -5873,6 +4145,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5881,12 +4154,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_35006", - "ico": "ytx_js_35006", "intr": { "key": "itemdesc_535006", "text": "平先生天赋点" @@ -5899,11 +4167,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_535006", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543001", @@ -5917,6 +4181,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5925,12 +4190,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43001", - "ico": "ytx_js_43001", "intr": { "key": "itemdesc_543001", "text": "阿比盖尔·斯通天赋点" @@ -5943,11 +4203,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543002", @@ -5961,6 +4217,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -5969,12 +4226,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43002", - "ico": "ytx_js_43002", "intr": { "key": "itemdesc_543002", "text": "果酱教授天赋点" @@ -5987,11 +4239,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543003", @@ -6005,6 +4253,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6013,12 +4262,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43003", - "ico": "ytx_js_43003", "intr": { "key": "itemdesc_543003", "text": "史蒂夫·帕丘克天赋点" @@ -6031,11 +4275,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543004", @@ -6049,6 +4289,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6057,12 +4298,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43004", - "ico": "ytx_js_43004", "intr": { "key": "itemdesc_543004", "text": "姜饼人天赋点" @@ -6075,11 +4311,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543005", @@ -6093,6 +4325,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6101,12 +4334,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43005", - "ico": "ytx_js_43005", "intr": { "key": "itemdesc_543005", "text": "瓦希尔指挥官天赋点" @@ -6119,11 +4347,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543006", @@ -6137,6 +4361,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6145,12 +4370,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43006", - "ico": "ytx_js_43006", "intr": { "key": "itemdesc_543006", "text": "布里奇特天赋点" @@ -6163,11 +4383,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543006", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "543007", @@ -6181,6 +4397,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6189,12 +4406,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_43007", - "ico": "ytx_js_43007", "intr": { "key": "itemdesc_543007", "text": "戈伯天赋点" @@ -6207,11 +4419,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_543007", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544001", @@ -6225,6 +4433,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6233,12 +4442,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44001", - "ico": "ytx_js_44001", "intr": { "key": "itemdesc_544001", "text": "美肚鲨天赋点" @@ -6251,11 +4455,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544001", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544002", @@ -6269,6 +4469,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6277,12 +4478,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44002", - "ico": "ytx_js_44002", "intr": { "key": "itemdesc_544002", "text": "蛇先生天赋点" @@ -6295,11 +4491,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544002", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544003", @@ -6313,6 +4505,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6321,12 +4514,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44003", - "ico": "ytx_js_44003", "intr": { "key": "itemdesc_544003", "text": "匹诺曹天赋点" @@ -6339,11 +4527,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544003", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544004", @@ -6357,6 +4541,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6365,12 +4550,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44004", - "ico": "ytx_js_44004", "intr": { "key": "itemdesc_544004", "text": "骇客蛛天赋点" @@ -6383,11 +4563,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544004", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544006", @@ -6401,6 +4577,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6409,12 +4586,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44006", - "ico": "ytx_js_44006", "intr": { "key": "itemdesc_544006", "text": "悍娇虎天赋点" @@ -6427,11 +4599,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544006", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "545001", @@ -6445,6 +4613,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6453,12 +4622,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_45001", - "ico": "ytx_js_45001", "intr": { "key": "itemdesc_545001", "text": "乌龟大师天赋点" @@ -6471,11 +4635,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_545001", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "545002", @@ -6489,6 +4649,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6497,12 +4658,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_45002", - "ico": "ytx_js_45002", "intr": { "key": "itemdesc_545002", "text": "梅林天赋点" @@ -6515,11 +4671,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_545002", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "545003", @@ -6533,6 +4685,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6541,12 +4694,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_45003", - "ico": "ytx_js_45003", "intr": { "key": "itemdesc_545003", "text": "盖天赋点" @@ -6559,11 +4707,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_545003", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "545004", @@ -6577,6 +4721,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6585,12 +4730,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_45004", - "ico": "ytx_js_45004", "intr": { "key": "itemdesc_545004", "text": "穿靴子的猫天赋点" @@ -6603,11 +4743,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_545004", - "text": "小伊的天赋点不足" - } + "decompose_deplete": [] }, { "id": "544005", @@ -6621,6 +4757,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6629,12 +4766,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_44005", - "ico": "ytx_js_44005", "intr": { "key": "itemdesc_544005", "text": "小伊天赋点" @@ -6647,11 +4779,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_544005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "515005", @@ -6665,6 +4793,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6673,12 +4802,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15005", - "ico": "ytx_js_15005", "intr": { "key": "itemdesc_515005", "text": "亚力克斯天赋点" @@ -6691,11 +4815,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_515005", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "500000", @@ -6709,6 +4829,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6717,12 +4838,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "ytx_js_15005", - "ico": "ytx_js_15005", "intr": { "key": "itemdesc_500000", "text": "通用共鸣道具" @@ -6735,11 +4851,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_500000", - "text": "波比的天赋点不足" - } + "decompose_deplete": [] }, { "id": "1000001", @@ -6753,29 +4865,21 @@ "index": 18, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_2", "box_id": 1000001, "synthetize_num": 0, "access": [], "use_skip": 0, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_10030", - "ico": "wp_icon_10030", "intr": { "key": "itemdesc_1000001", "text": "可以获得一套天赋点" }, "sale": [], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "itemtipstxt_1000001", - "text": "星辉宝箱不足" - } + "decompose_deplete": [] }, { "id": "10017", @@ -6789,6 +4893,7 @@ "index": 7, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -6797,12 +4902,7 @@ ], "use_skip": 0, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "wp_icon_0001", - "ico": "wp_icon_0001", "intr": { "key": "itemdesc_10017", "text": "使用后获得50点体力值" @@ -6821,11 +4921,7 @@ "t": "ps", "n": 50 } - ], - "tipstxt": { - "key": "itemtipstxt_10017", - "text": "体力药剂不足" - } + ] }, { "id": "600001", @@ -6839,6 +4935,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6847,12 +4944,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_mcs", - "ico": "icon_mcs", "intr": { "key": "skilluptools_00001", "text": "秘传书" @@ -6865,11 +4957,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_00001", - "text": "秘传书不足" - } + "decompose_deplete": [] }, { "id": "600002", @@ -6883,6 +4971,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -6891,12 +4980,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjjz", - "ico": "icon_cjjz", "intr": { "key": "herostart_515005", "text": "初级功夫卷轴" @@ -6909,11 +4993,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515005", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "600003", @@ -6927,6 +5007,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -6935,12 +5016,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjjz", - "ico": "icon_cjjz", "intr": { "key": "herostart_515006", "text": "中级功夫卷轴" @@ -6953,11 +5029,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515006", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "600004", @@ -6971,6 +5043,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -6979,12 +5052,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjjz", - "ico": "icon_cjjz", "intr": { "key": "herostart_515007", "text": "高级功夫卷轴" @@ -6997,11 +5065,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515007", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "600005", @@ -7015,6 +5079,7 @@ "index": 100, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7023,12 +5088,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjhz", - "ico": "icon_cjhz", "intr": { "key": "herostart_515008", "text": "初级荣耀徽章" @@ -7041,11 +5101,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515008", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "600006", @@ -7059,6 +5115,7 @@ "index": 101, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7067,12 +5124,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjhz", - "ico": "icon_cjhz", "intr": { "key": "herostart_515009", "text": "中级荣耀徽章" @@ -7085,11 +5137,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515009", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "600007", @@ -7103,6 +5151,7 @@ "index": 102, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -7111,12 +5160,7 @@ ], "use_skip": 155, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "icon_cjhz", - "ico": "icon_cjhz", "intr": { "key": "herostart_515010", "text": "高级荣耀徽章" @@ -7129,11 +5173,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "herostarttxt_515010", - "text": "阿宝的天赋点不足" - } + "decompose_deplete": [] }, { "id": "613001", @@ -7147,6 +5187,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7155,12 +5196,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_13001", - "ico": "xxtx_js_13001", "intr": { "key": "skilluptools_613001", "text": "闪闪守护之心" @@ -7173,11 +5209,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_613001", - "text": "闪闪守护之心不足" - } + "decompose_deplete": [] }, { "id": "613002", @@ -7191,6 +5223,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7199,12 +5232,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_13002", - "ico": "xxtx_js_13002", "intr": { "key": "skilluptools_613002", "text": "食人鱼先生守护之心" @@ -7217,11 +5245,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_613002", - "text": "食人鱼先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "613003", @@ -7235,6 +5259,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7243,12 +5268,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_13003", - "ico": "xxtx_js_13003", "intr": { "key": "skilluptools_613003", "text": "啊啊守护之心" @@ -7261,11 +5281,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_613003", - "text": "啊啊守护之心不足" - } + "decompose_deplete": [] }, { "id": "613004", @@ -7279,6 +5295,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7287,12 +5304,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_13004", - "ico": "xxtx_js_13004", "intr": { "key": "skilluptools_613004", "text": "法夸德勋爵守护之心" @@ -7305,11 +5317,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_613004", - "text": "法夸德勋爵守护之心不足" - } + "decompose_deplete": [] }, { "id": "613005", @@ -7323,6 +5331,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7331,12 +5340,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_13005", - "ico": "xxtx_js_13005", "intr": { "key": "skilluptools_613005", "text": "大大守护之心" @@ -7349,11 +5353,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_613005", - "text": "大大守护之心不足" - } + "decompose_deplete": [] }, { "id": "614001", @@ -7367,6 +5367,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7375,12 +5376,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14001", - "ico": "xxtx_js_14001", "intr": { "key": "skilluptools_614001", "text": "史图依克守护之心" @@ -7393,11 +5389,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614001", - "text": "史图依克守护之心不足" - } + "decompose_deplete": [] }, { "id": "614002", @@ -7411,6 +5403,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7419,12 +5412,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14002", - "ico": "xxtx_js_14002", "intr": { "key": "skilluptools_614002", "text": "大龙守护之心" @@ -7437,11 +5425,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614002", - "text": "大龙守护之心不足" - } + "decompose_deplete": [] }, { "id": "614003", @@ -7455,6 +5439,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7463,12 +5448,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14003", - "ico": "xxtx_js_14003", "intr": { "key": "skilluptools_614003", "text": "亚丝翠守护之心" @@ -7481,11 +5461,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614003", - "text": "亚丝翠守护之心不足" - } + "decompose_deplete": [] }, { "id": "614004", @@ -7499,6 +5475,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7507,12 +5484,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14004", - "ico": "xxtx_js_14004", "intr": { "key": "skilluptools_614004", "text": "克莱尔·努涅斯守护之心" @@ -7525,11 +5497,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614004", - "text": "克莱尔·努涅斯守护之心不足" - } + "decompose_deplete": [] }, { "id": "614005", @@ -7543,6 +5511,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7551,12 +5520,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14005", - "ico": "xxtx_js_14005", "intr": { "key": "skilluptools_614005", "text": "鹤大师守护之心" @@ -7569,11 +5533,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614005", - "text": "鹤大师守护之心不足" - } + "decompose_deplete": [] }, { "id": "614006", @@ -7587,6 +5547,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7595,12 +5556,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14006", - "ico": "xxtx_js_14006", "intr": { "key": "skilluptools_614006", "text": "布兰奇守护之心" @@ -7613,11 +5569,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614006", - "text": "布兰奇守护之心不足" - } + "decompose_deplete": [] }, { "id": "614007", @@ -7631,6 +5583,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7639,12 +5592,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_14007", - "ico": "xxtx_js_14007", "intr": { "key": "skilluptools_614007", "text": "格里斯特王子守护之心" @@ -7657,11 +5605,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_614007", - "text": "格里斯特王子守护之心不足" - } + "decompose_deplete": [] }, { "id": "615001", @@ -7675,6 +5619,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7683,12 +5628,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_15001", - "ico": "xxtx_js_15001", "intr": { "key": "skilluptools_615001", "text": "吉姆·莱克守护之心" @@ -7701,11 +5641,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_615001", - "text": "吉姆·莱克守护之心不足" - } + "decompose_deplete": [] }, { "id": "615002", @@ -7719,6 +5655,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7727,12 +5664,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_15002", - "ico": "xxtx_js_15002", "intr": { "key": "skilluptools_615002", "text": "船长守护之心" @@ -7745,11 +5677,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_615002", - "text": "船长守护之心不足" - } + "decompose_deplete": [] }, { "id": "615003", @@ -7763,6 +5691,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7771,12 +5700,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_15003", - "ico": "xxtx_js_15003", "intr": { "key": "skilluptools_615003", "text": "希沙窦斯守护之心" @@ -7789,11 +5713,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_615003", - "text": "希沙窦斯守护之心不足" - } + "decompose_deplete": [] }, { "id": "615004", @@ -7807,6 +5727,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7815,12 +5736,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_15004", - "ico": "xxtx_js_15004", "intr": { "key": "skilluptools_615004", "text": "小欧守护之心" @@ -7833,11 +5749,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_615004", - "text": "小欧守护之心不足" - } + "decompose_deplete": [] }, { "id": "623001", @@ -7851,6 +5763,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7859,12 +5772,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_23001", - "ico": "xxtx_js_23001", "intr": { "key": "skilluptools_623001", "text": "斯梅克船长守护之心" @@ -7877,11 +5785,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_623001", - "text": "斯梅克船长守护之心不足" - } + "decompose_deplete": [] }, { "id": "623002", @@ -7895,6 +5799,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7903,12 +5808,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_23002", - "ico": "xxtx_js_23002", "intr": { "key": "skilluptools_623002", "text": "警卫队长守护之心" @@ -7921,11 +5821,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_623002", - "text": "警卫队长守护之心不足" - } + "decompose_deplete": [] }, { "id": "623003", @@ -7939,6 +5835,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7947,12 +5844,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_23003", - "ico": "xxtx_js_23003", "intr": { "key": "skilluptools_623003", "text": "黛塔黛恩守护之心" @@ -7965,11 +5857,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_623003", - "text": "黛塔黛恩守护之心不足" - } + "decompose_deplete": [] }, { "id": "623004", @@ -7983,6 +5871,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -7991,12 +5880,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_23004", - "ico": "xxtx_js_23004", "intr": { "key": "skilluptools_623004", "text": "吉姆·普雷斯科特守护之心" @@ -8009,11 +5893,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_623004", - "text": "吉姆·普雷斯科特守护之心不足" - } + "decompose_deplete": [] }, { "id": "624001", @@ -8027,6 +5907,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8035,12 +5916,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24001", - "ico": "xxtx_js_24001", "intr": { "key": "skilluptools_624001", "text": "警长守护之心" @@ -8053,11 +5929,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624001", - "text": "警长守护之心不足" - } + "decompose_deplete": [] }, { "id": "624002", @@ -8071,6 +5943,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8079,12 +5952,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24002", - "ico": "xxtx_js_24002", "intr": { "key": "skilluptools_624002", "text": "牙仙守护之心" @@ -8097,11 +5965,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624002", - "text": "牙仙守护之心不足" - } + "decompose_deplete": [] }, { "id": "624003", @@ -8115,6 +5979,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8123,12 +5988,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24003", - "ico": "xxtx_js_24003", "intr": { "key": "skilluptools_624003", "text": "睡神沙人守护之心" @@ -8141,11 +6001,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624003", - "text": "睡神沙人守护之心不足" - } + "decompose_deplete": [] }, { "id": "624004", @@ -8159,6 +6015,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8167,12 +6024,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24004", - "ico": "xxtx_js_24004", "intr": { "key": "skilluptools_624004", "text": "邦尼兔守护之心" @@ -8185,11 +6037,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624004", - "text": "邦尼兔守护之心不足" - } + "decompose_deplete": [] }, { "id": "624005", @@ -8203,6 +6051,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8211,12 +6060,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24005", - "ico": "xxtx_js_24005", "intr": { "key": "skilluptools_624005", "text": "金猴守护之心" @@ -8229,11 +6073,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624005", - "text": "金猴守护之心不足" - } + "decompose_deplete": [] }, { "id": "624006", @@ -8247,6 +6087,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8255,12 +6096,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24006", - "ico": "xxtx_js_24006", "intr": { "key": "skilluptools_624006", "text": "凯尔守护之心" @@ -8273,11 +6109,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624006", - "text": "凯尔守护之心不足" - } + "decompose_deplete": [] }, { "id": "624007", @@ -8291,6 +6123,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8299,12 +6132,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24007", - "ico": "xxtx_js_24007", "intr": { "key": "skilluptools_624007", "text": "小钱守护之心" @@ -8317,11 +6145,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624007", - "text": "小钱守护之心不足" - } + "decompose_deplete": [] }, { "id": "624008", @@ -8335,6 +6159,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8343,12 +6168,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24008", - "ico": "xxtx_js_24008", "intr": { "key": "skilluptools_624008", "text": "暴芙那特守护之心" @@ -8361,11 +6181,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624008", - "text": "暴芙那特守护之心不足" - } + "decompose_deplete": [] }, { "id": "624009", @@ -8379,6 +6195,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8387,12 +6204,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_24009", - "ico": "xxtx_js_24009", "intr": { "key": "skilluptools_624009", "text": "云朵先生守护之心" @@ -8405,11 +6217,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_624009", - "text": "云朵先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "625001", @@ -8423,6 +6231,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8431,12 +6240,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_25001", - "ico": "xxtx_js_25001", "intr": { "key": "skilluptools_625001", "text": "阿宝守护之心" @@ -8449,11 +6253,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_625001", - "text": "阿宝守护之心不足" - } + "decompose_deplete": [] }, { "id": "625002", @@ -8467,6 +6267,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8475,12 +6276,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_25002", - "ico": "xxtx_js_25002", "intr": { "key": "skilluptools_625002", "text": "沃尔夫先生守护之心" @@ -8493,11 +6289,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_625002", - "text": "沃尔夫先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "625003", @@ -8511,6 +6303,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8519,12 +6312,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_25003", - "ico": "xxtx_js_25003", "intr": { "key": "skilluptools_625003", "text": "羊仙姑守护之心" @@ -8537,11 +6325,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_625003", - "text": "羊仙姑守护之心不足" - } + "decompose_deplete": [] }, { "id": "625004", @@ -8555,6 +6339,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8563,12 +6348,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_25004", - "ico": "xxtx_js_25004", "intr": { "key": "skilluptools_625004", "text": "波比守护之心" @@ -8581,11 +6361,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_625004", - "text": "波比守护之心不足" - } + "decompose_deplete": [] }, { "id": "633001", @@ -8599,6 +6375,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8607,12 +6384,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33001", - "ico": "xxtx_js_33001", "intr": { "key": "skilluptools_633001", "text": "巫嘎守护之心" @@ -8625,11 +6397,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633001", - "text": "巫嘎守护之心不足" - } + "decompose_deplete": [] }, { "id": "633002", @@ -8643,6 +6411,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8651,12 +6420,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33002", - "ico": "xxtx_js_33002", "intr": { "key": "skilluptools_633002", "text": "坦克守护之心" @@ -8669,11 +6433,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633002", - "text": "坦克守护之心不足" - } + "decompose_deplete": [] }, { "id": "633003", @@ -8687,6 +6447,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8695,12 +6456,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33003", - "ico": "xxtx_js_33003", "intr": { "key": "skilluptools_633003", "text": "胡德先生守护之心" @@ -8713,11 +6469,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633003", - "text": "胡德先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "633004", @@ -8731,6 +6483,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8739,12 +6492,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33004", - "ico": "xxtx_js_33004", "intr": { "key": "skilluptools_633004", "text": "普鲁格兰杰守护之心" @@ -8757,11 +6505,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633004", - "text": "普鲁格兰杰守护之心不足" - } + "decompose_deplete": [] }, { "id": "633005", @@ -8775,6 +6519,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8783,12 +6528,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33005", - "ico": "xxtx_js_33005", "intr": { "key": "skilluptools_633005", "text": "鼻涕粗守护之心" @@ -8801,11 +6541,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633005", - "text": "鼻涕粗守护之心不足" - } + "decompose_deplete": [] }, { "id": "633006", @@ -8819,6 +6555,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8827,12 +6564,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_33006", - "ico": "xxtx_js_33006", "intr": { "key": "skilluptools_633006", "text": "珍妮丝·邓普顿守护之心" @@ -8845,11 +6577,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_633006", - "text": "珍妮丝·邓普顿守护之心不足" - } + "decompose_deplete": [] }, { "id": "634001", @@ -8863,6 +6591,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8871,12 +6600,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34001", - "ico": "xxtx_js_34001", "intr": { "key": "skilluptools_634001", "text": "贫嘴驴守护之心" @@ -8889,11 +6613,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634001", - "text": "贫嘴驴守护之心不足" - } + "decompose_deplete": [] }, { "id": "634002", @@ -8907,6 +6627,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8915,12 +6636,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34002", - "ico": "xxtx_js_34002", "intr": { "key": "skilluptools_634002", "text": "蒂姆·邓普顿守护之心" @@ -8933,11 +6649,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634002", - "text": "蒂姆·邓普顿守护之心不足" - } + "decompose_deplete": [] }, { "id": "634003", @@ -8951,6 +6663,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -8959,12 +6672,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34003", - "ico": "xxtx_js_34003", "intr": { "key": "skilluptools_634003", "text": "圣诞老人守护之心" @@ -8977,11 +6685,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634003", - "text": "圣诞老人守护之心不足" - } + "decompose_deplete": [] }, { "id": "634004", @@ -8995,6 +6699,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9003,12 +6708,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34004", - "ico": "xxtx_js_34004", "intr": { "key": "skilluptools_634004", "text": "瓜哥守护之心" @@ -9021,11 +6721,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634004", - "text": "瓜哥守护之心不足" - } + "decompose_deplete": [] }, { "id": "634005", @@ -9039,6 +6735,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9047,12 +6744,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34005", - "ico": "xxtx_js_34005", "intr": { "key": "skilluptools_634005", "text": "沃尔特·史翠克勒守护之心" @@ -9065,11 +6757,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634005", - "text": "沃尔特·史翠克勒守护之心不足" - } + "decompose_deplete": [] }, { "id": "634006", @@ -9083,6 +6771,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9091,12 +6780,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34006", - "ico": "xxtx_js_34006", "intr": { "key": "skilluptools_634006", "text": "冰霜杰克守护之心" @@ -9109,11 +6793,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634006", - "text": "冰霜杰克守护之心不足" - } + "decompose_deplete": [] }, { "id": "634007", @@ -9127,6 +6807,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9135,12 +6816,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34007", - "ico": "xxtx_js_34007", "intr": { "key": "skilluptools_634007", "text": "菲奥娜守护之心" @@ -9153,11 +6829,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634007", - "text": "菲奥娜守护之心不足" - } + "decompose_deplete": [] }, { "id": "634008", @@ -9171,6 +6843,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9179,12 +6852,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_34008", - "ico": "xxtx_js_34008", "intr": { "key": "skilluptools_634008", "text": "悍夫那特守护之心" @@ -9197,11 +6865,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_634008", - "text": "悍夫那特守护之心不足" - } + "decompose_deplete": [] }, { "id": "635001", @@ -9215,6 +6879,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9223,12 +6888,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35001", - "ico": "xxtx_js_35001", "intr": { "key": "skilluptools_635001", "text": "师父守护之心" @@ -9241,11 +6901,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635001", - "text": "师父守护之心不足" - } + "decompose_deplete": [] }, { "id": "635002", @@ -9259,6 +6915,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9267,12 +6924,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35002", - "ico": "xxtx_js_35002", "intr": { "key": "skilluptools_635002", "text": "希卡普守护之心" @@ -9285,11 +6937,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635002", - "text": "希卡普守护之心不足" - } + "decompose_deplete": [] }, { "id": "635003", @@ -9303,6 +6951,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9311,12 +6960,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35003", - "ico": "xxtx_js_35003", "intr": { "key": "skilluptools_635003", "text": "漆黑守护之心" @@ -9329,11 +6973,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635003", - "text": "漆黑守护之心不足" - } + "decompose_deplete": [] }, { "id": "635004", @@ -9347,6 +6987,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9355,12 +6996,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35004", - "ico": "xxtx_js_35004", "intr": { "key": "skilluptools_635004", "text": "黛安·福克斯顿守护之心" @@ -9373,11 +7009,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635004", - "text": "黛安·福克斯顿守护之心不足" - } + "decompose_deplete": [] }, { "id": "635005", @@ -9391,6 +7023,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9399,12 +7032,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35005", - "ico": "xxtx_js_35005", "intr": { "key": "skilluptools_635005", "text": "幸运·普雷斯科特守护之心" @@ -9417,11 +7045,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635005", - "text": "幸运·普雷斯科特守护之心不足" - } + "decompose_deplete": [] }, { "id": "635006", @@ -9435,6 +7059,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9443,12 +7068,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_35006", - "ico": "xxtx_js_35006", "intr": { "key": "skilluptools_635006", "text": "平先生守护之心" @@ -9461,11 +7081,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_635006", - "text": "平先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "643001", @@ -9479,6 +7095,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9487,12 +7104,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43001", - "ico": "xxtx_js_43001", "intr": { "key": "skilluptools_643001", "text": "阿比盖尔·斯通守护之心" @@ -9505,11 +7117,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643001", - "text": "阿比盖尔·斯通守护之心不足" - } + "decompose_deplete": [] }, { "id": "643002", @@ -9523,6 +7131,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9531,12 +7140,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43002", - "ico": "xxtx_js_43002", "intr": { "key": "skilluptools_643002", "text": "果酱教授守护之心" @@ -9549,11 +7153,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643002", - "text": "果酱教授守护之心不足" - } + "decompose_deplete": [] }, { "id": "643003", @@ -9567,6 +7167,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9575,12 +7176,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43003", - "ico": "xxtx_js_43003", "intr": { "key": "skilluptools_643003", "text": "史蒂夫·帕丘克守护之心" @@ -9593,11 +7189,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643003", - "text": "史蒂夫·帕丘克守护之心不足" - } + "decompose_deplete": [] }, { "id": "643004", @@ -9611,6 +7203,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9619,12 +7212,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43004", - "ico": "xxtx_js_43004", "intr": { "key": "skilluptools_643004", "text": "姜饼人守护之心" @@ -9637,11 +7225,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643004", - "text": "姜饼人守护之心不足" - } + "decompose_deplete": [] }, { "id": "643005", @@ -9655,6 +7239,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9663,12 +7248,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43005", - "ico": "xxtx_js_43005", "intr": { "key": "skilluptools_643005", "text": "瓦希尔指挥官守护之心" @@ -9681,11 +7261,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643005", - "text": "瓦希尔指挥官守护之心不足" - } + "decompose_deplete": [] }, { "id": "643006", @@ -9699,6 +7275,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9707,12 +7284,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43006", - "ico": "xxtx_js_43006", "intr": { "key": "skilluptools_643006", "text": "布里奇特守护之心" @@ -9725,11 +7297,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643006", - "text": "布里奇特守护之心不足" - } + "decompose_deplete": [] }, { "id": "643007", @@ -9743,6 +7311,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9751,12 +7320,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_43007", - "ico": "xxtx_js_43007", "intr": { "key": "skilluptools_643007", "text": "戈伯守护之心" @@ -9769,11 +7333,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_643007", - "text": "戈伯守护之心不足" - } + "decompose_deplete": [] }, { "id": "644001", @@ -9787,6 +7347,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9795,12 +7356,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44001", - "ico": "xxtx_js_44001", "intr": { "key": "skilluptools_644001", "text": "美肚鲨守护之心" @@ -9813,11 +7369,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644001", - "text": "美肚鲨守护之心不足" - } + "decompose_deplete": [] }, { "id": "644002", @@ -9831,6 +7383,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9839,12 +7392,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44002", - "ico": "xxtx_js_44002", "intr": { "key": "skilluptools_644002", "text": "蛇先生守护之心" @@ -9857,11 +7405,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644002", - "text": "蛇先生守护之心不足" - } + "decompose_deplete": [] }, { "id": "644003", @@ -9875,6 +7419,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9883,12 +7428,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44003", - "ico": "xxtx_js_44003", "intr": { "key": "skilluptools_644003", "text": "匹诺曹守护之心" @@ -9901,11 +7441,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644003", - "text": "匹诺曹守护之心不足" - } + "decompose_deplete": [] }, { "id": "644004", @@ -9919,6 +7455,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9927,12 +7464,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44004", - "ico": "xxtx_js_44004", "intr": { "key": "skilluptools_644004", "text": "骇客蛛守护之心" @@ -9945,11 +7477,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644004", - "text": "骇客蛛守护之心不足" - } + "decompose_deplete": [] }, { "id": "644006", @@ -9963,6 +7491,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -9971,12 +7500,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44006", - "ico": "xxtx_js_44006", "intr": { "key": "skilluptools_644006", "text": "悍娇虎守护之心" @@ -9989,11 +7513,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644006", - "text": "悍娇虎守护之心不足" - } + "decompose_deplete": [] }, { "id": "645001", @@ -10007,6 +7527,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10015,12 +7536,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_45001", - "ico": "xxtx_js_45001", "intr": { "key": "skilluptools_645001", "text": "乌龟大师守护之心" @@ -10033,11 +7549,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_645001", - "text": "乌龟大师守护之心不足" - } + "decompose_deplete": [] }, { "id": "645002", @@ -10051,6 +7563,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10059,12 +7572,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_45002", - "ico": "xxtx_js_45002", "intr": { "key": "skilluptools_645002", "text": "梅林守护之心" @@ -10077,11 +7585,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_645002", - "text": "梅林守护之心不足" - } + "decompose_deplete": [] }, { "id": "645003", @@ -10095,6 +7599,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10103,12 +7608,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_45003", - "ico": "xxtx_js_45003", "intr": { "key": "skilluptools_645003", "text": "盖守护之心" @@ -10121,11 +7621,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_645003", - "text": "盖守护之心不足" - } + "decompose_deplete": [] }, { "id": "645004", @@ -10139,6 +7635,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10147,12 +7644,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_45004", - "ico": "xxtx_js_45004", "intr": { "key": "skilluptools_645004", "text": "穿靴子的猫守护之心" @@ -10165,11 +7657,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_645004", - "text": "穿靴子的猫守护之心不足" - } + "decompose_deplete": [] }, { "id": "644005", @@ -10183,6 +7671,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10191,12 +7680,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_44005", - "ico": "xxtx_js_44005", "intr": { "key": "skilluptools_644005", "text": "小伊守护之心" @@ -10209,11 +7693,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_644005", - "text": "小伊守护之心不足" - } + "decompose_deplete": [] }, { "id": "615005", @@ -10227,6 +7707,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10235,12 +7716,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "xxtx_js_15005", - "ico": "xxtx_js_15005", "intr": { "key": "skilluptools_615005", "text": "亚力克斯守护之心" @@ -10253,11 +7729,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "skilluptoolstxt_615005", - "text": "亚力克斯守护之心不足" - } + "decompose_deplete": [] }, { "id": "132000", @@ -10271,6 +7743,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10279,12 +7752,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_sb", - "ico": "pr_ing_sb", "intr": { "key": "pr_ing_132000", "text": "就是垃圾" @@ -10297,11 +7765,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132000", - "text": "土豆不足" - } + "decompose_deplete": [] }, { "id": "132001", @@ -10315,6 +7779,7 @@ "index": 99, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10323,12 +7788,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_bz", - "ico": "pr_ing_bz", "intr": { "key": "pr_ing_132001", "text": "需要面粉和肉" @@ -10341,11 +7801,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132001", - "text": "粗盐不足" - } + "decompose_deplete": [] }, { "id": "132002", @@ -10359,6 +7815,7 @@ "index": 1, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10367,12 +7824,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_tdnr", - "ico": "pr_ing_tdnr", "intr": { "key": "pr_ing_132002", "text": "需要土豆和肉" @@ -10385,11 +7837,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132002", - "text": "青椒不足" - } + "decompose_deplete": [] }, { "id": "132003", @@ -10403,6 +7851,7 @@ "index": 2, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10411,12 +7860,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_ljcr", - "ico": "pr_ing_ljcr", "intr": { "key": "pr_ing_132003", "text": "需要青椒和肉" @@ -10429,11 +7873,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132003", - "text": "面粉不足" - } + "decompose_deplete": [] }, { "id": "132004", @@ -10447,6 +7887,7 @@ "index": 3, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10455,12 +7896,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_hp", - "ico": "pr_ing_hp", "intr": { "key": "pr_ing_132004", "text": "需要青椒和盐" @@ -10473,11 +7909,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132004", - "text": "肉不足" - } + "decompose_deplete": [] }, { "id": "132005", @@ -10491,6 +7923,7 @@ "index": 4, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10499,12 +7932,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_mt", - "ico": "pr_ing_mt", "intr": { "key": "pr_ing_132005", "text": "需要面粉" @@ -10517,11 +7945,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132005", - "text": "肉包子不足" - } + "decompose_deplete": [] }, { "id": "132006", @@ -10535,6 +7959,7 @@ "index": 5, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10543,12 +7968,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_gbr", - "ico": "pr_ing_gbr", "intr": { "key": "pr_ing_132006", "text": "需要面粉和肉" @@ -10561,11 +7981,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132006", - "text": "土豆炖肉不足" - } + "decompose_deplete": [] }, { "id": "132007", @@ -10579,6 +7995,7 @@ "index": 6, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -10587,12 +8004,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_kr", - "ico": "pr_ing_kr", "intr": { "key": "pr_ing_132007", "text": "需要肉" @@ -10605,11 +8017,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132007", - "text": "青椒炒肉不足" - } + "decompose_deplete": [] }, { "id": "132008", @@ -10623,6 +8031,7 @@ "index": 7, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "effect_ui_wuping_1", "box_id": 0, "synthetize_num": 0, @@ -10631,12 +8040,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_ykr", - "ico": "pr_ing_ykr", "intr": { "key": "pr_ing_132008", "text": "需要粗盐和肉" @@ -10649,11 +8053,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132008", - "text": "虎皮青椒不足" - } + "decompose_deplete": [] }, { "id": "132009", @@ -10667,6 +8067,7 @@ "index": 8, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10675,12 +8076,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_ktd", - "ico": "pr_ing_ktd", "intr": { "key": "pr_ing_132009", "text": "需要土豆" @@ -10693,11 +8089,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_132009", - "text": "面条不足" - } + "decompose_deplete": [] }, { "id": "131001", @@ -10711,6 +8103,7 @@ "index": 9, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10719,12 +8112,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_td", - "ico": "pr_ing_td", "intr": { "key": "pr_ing_131001", "text": "就是土豆" @@ -10737,11 +8125,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_131001", - "text": "锅包肉不足" - } + "decompose_deplete": [] }, { "id": "131002", @@ -10755,6 +8139,7 @@ "index": 10, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10763,12 +8148,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_y", - "ico": "pr_ing_y", "intr": { "key": "pr_ing_131002", "text": "就是粗盐" @@ -10781,11 +8161,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_131002", - "text": "烤肉不足" - } + "decompose_deplete": [] }, { "id": "131003", @@ -10799,6 +8175,7 @@ "index": 11, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10807,12 +8184,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_qj", - "ico": "pr_ing_qj", "intr": { "key": "pr_ing_131003", "text": "就是青椒" @@ -10825,11 +8197,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_131003", - "text": "岩盐烤肉不足" - } + "decompose_deplete": [] }, { "id": "131004", @@ -10843,6 +8211,7 @@ "index": 12, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10851,12 +8220,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_mf", - "ico": "pr_ing_mf", "intr": { "key": "pr_ing_131004", "text": "就是面粉" @@ -10869,11 +8233,7 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_131004", - "text": "烤土豆不足" - } + "decompose_deplete": [] }, { "id": "131005", @@ -10887,6 +8247,7 @@ "index": 13, "special_type": 0, "time": 0, + "reddottype": 0, "effects": "", "box_id": 0, "synthetize_num": 0, @@ -10895,12 +8256,7 @@ ], "use_skip": 166, "upper_limit": 999, - "uselv": 0, - "isani": 0, - "star": 0, - "race": 0, "img": "pr_ing_r", - "ico": "pr_ing_r", "intr": { "key": "pr_ing_131005", "text": "就是肉" @@ -10913,10 +8269,6 @@ } ], "synthetize_deplete": [], - "decompose_deplete": [], - "tipstxt": { - "key": "item_tipstxt_131005", - "text": "垃圾菜不足" - } + "decompose_deplete": [] } ] \ No newline at end of file diff --git a/bin/json/game_pandamasjx.json b/bin/json/game_pandamasjx.json index 33e884016..78eedc34a 100644 --- a/bin/json/game_pandamasjx.json +++ b/bin/json/game_pandamasjx.json @@ -12,7 +12,6 @@ "access": 0, "heroid": "13002", "img": "sbkp_js_13002", - "ico": "", "intr": { "key": "shirenyu10001", "text": "作为教习,食人鱼一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" @@ -41,7 +40,6 @@ "access": 0, "heroid": "13001", "img": "sbkp_js_13001", - "ico": "", "intr": { "key": "shirenyu10002", "text": "闪闪" @@ -70,7 +68,6 @@ "access": 0, "heroid": "44002", "img": "sbkp_js_44002", - "ico": "", "intr": { "key": "shirenyu10003", "text": "蛇先生" @@ -99,7 +96,6 @@ "access": 0, "heroid": "24005", "img": "sbkp_js_24005", - "ico": "", "intr": { "key": "shirenyu10004", "text": "金猴" @@ -139,7 +135,6 @@ "access": 0, "heroid": "14005", "img": "sbkp_js_14005", - "ico": "", "intr": { "key": "shirenyu10005", "text": "鹤大师" @@ -168,7 +163,6 @@ "access": 0, "heroid": "44006", "img": "sbkp_js_44006", - "ico": "", "intr": { "key": "shirenyu10006", "text": "悍娇虎" @@ -197,7 +191,6 @@ "access": 0, "heroid": "43001", "img": "sbkp_js_43001", - "ico": "", "intr": { "key": "shirenyu10007", "text": "盖" @@ -226,7 +219,6 @@ "access": 0, "heroid": "35002", "img": "sbkp_js_35002", - "ico": "", "intr": { "key": "shirenyu10008", "text": "希卡普" @@ -255,7 +247,6 @@ "access": 0, "heroid": "45004", "img": "sbkp_js_45004", - "ico": "", "intr": { "key": "shirenyu10009", "text": "穿靴猫" @@ -295,7 +286,6 @@ "access": 0, "heroid": "35001", "img": "sbkp_js_35001", - "ico": "", "intr": { "key": "shirenyu10010", "text": "师父" @@ -335,7 +325,6 @@ "access": 0, "heroid": "25001", "img": "sbkp_js_25001", - "ico": "", "intr": { "key": "shirenyu10011", "text": "阿宝" @@ -375,7 +364,6 @@ "access": 0, "heroid": "45001", "img": "sbkp_js_45001", - "ico": "", "intr": { "key": "shirenyu10012", "text": "乌龟大师" @@ -415,7 +403,6 @@ "access": 0, "heroid": "", "img": "wg_icon_ss", - "ico": "", "intr": { "key": "shirenyu20001", "text": "石锁,传闻是师父在训练阿宝时经常使用到的道具" @@ -455,7 +442,6 @@ "access": 0, "heroid": "", "img": "wg_icon_kz", - "ico": "", "intr": { "key": "shirenyu20002", "text": "双头空竹" @@ -484,7 +470,6 @@ "access": 0, "heroid": "", "img": "wg_icon_pj", - "ico": "", "intr": { "key": "shirenyu20003", "text": "木爬架" @@ -513,7 +498,6 @@ "access": 0, "heroid": "", "img": "wg_icon_bdw", - "ico": "", "intr": { "key": "shirenyu20004", "text": "不倒翁" @@ -542,7 +526,6 @@ "access": 0, "heroid": "", "img": "wg_icon_pc", - "ico": "", "intr": { "key": "shirenyu20005", "text": "棒槌" @@ -571,7 +554,6 @@ "access": 0, "heroid": "", "img": "wg_icon_tl", - "ico": "", "intr": { "key": "shirenyu20006", "text": "铜铃" @@ -600,7 +582,6 @@ "access": 0, "heroid": "", "img": "wg_icon_tj", - "ico": "", "intr": { "key": "shirenyu20007", "text": "尖刺吊环" @@ -629,7 +610,6 @@ "access": 0, "heroid": "", "img": "wg_icon_tj01", - "ico": "", "intr": { "key": "shirenyu20008", "text": "陀螺" @@ -658,7 +638,6 @@ "access": 0, "heroid": "", "img": "wg_icon_zl", - "ico": "", "intr": { "key": "shirenyu20009", "text": "大转轮" @@ -698,7 +677,6 @@ "access": 0, "heroid": "", "img": "wg_icon_mp", - "ico": "", "intr": { "key": "shirenyu20010", "text": "木头牌" @@ -738,7 +716,6 @@ "access": 0, "heroid": "", "img": "wg_icon_sjg", - "ico": "", "intr": { "key": "shirenyu20011", "text": "双节棍" @@ -778,7 +755,6 @@ "access": 0, "heroid": "", "img": "wg_icon_yd", - "ico": "", "intr": { "key": "shirenyu20012", "text": "练功带" @@ -818,7 +794,6 @@ "access": 0, "heroid": "", "img": "wg_icon_tj", - "ico": "", "intr": { "key": "shirenyu20013", "text": "七彩花棍" @@ -858,7 +833,6 @@ "access": 0, "heroid": "", "img": "wg_icon_fb", - "ico": "", "intr": { "key": "shirenyu20014", "text": "流星飞镖" @@ -887,7 +861,6 @@ "access": 0, "heroid": "", "img": "wg_icon_mxl", - "ico": "", "intr": { "key": "shirenyu20015", "text": "冥想锣" @@ -916,7 +889,6 @@ "access": 0, "heroid": "", "img": "wg_icon_ct", - "ico": "", "intr": { "key": "shirenyu20016", "text": "彩条龙" @@ -945,7 +917,6 @@ "access": 0, "heroid": "", "img": "wg_icon_kqms", - "ico": "", "intr": { "key": "shirenyu20017", "text": "孔雀毛扇" @@ -983,7 +954,6 @@ "access": 0, "heroid": "", "img": "wg_icon_ph", - "ico": "", "intr": { "key": "shirenyu20018", "text": "平衡木" @@ -1021,7 +991,6 @@ "access": 0, "heroid": "", "img": "wg_icon_th", - "ico": "", "intr": { "key": "shirenyu20019", "text": "铁环" @@ -1059,7 +1028,6 @@ "access": 0, "heroid": "", "img": "wg_icon_tj", - "ico": "", "intr": { "key": "shirenyu20020", "text": "太极球" diff --git a/sys/configure/structs/Game.PandamasJxData.go b/sys/configure/structs/Game.PandamasJxData.go index ba114184c..c0e2d5bd9 100644 --- a/sys/configure/structs/Game.PandamasJxData.go +++ b/sys/configure/structs/Game.PandamasJxData.go @@ -20,7 +20,6 @@ type GamePandamasJxData struct { Access int32 Heroid string Img string - Ico string Intr string Description string Duration int32 @@ -47,7 +46,6 @@ func (_v *GamePandamasJxData)Deserialize(_buf map[string]interface{}) (err error { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["access"].(float64); !_ok_ { err = errors.New("access error"); return }; _v.Access = int32(_tempNum_) } { var _ok_ bool; if _v.Heroid, _ok_ = _buf["heroid"].(string); !_ok_ { err = errors.New("heroid error"); return } } { var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } } - { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["intr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Intr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Intr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["description"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Description error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Description, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["duration"].(float64); !_ok_ { err = errors.New("duration error"); return }; _v.Duration = int32(_tempNum_) } diff --git a/sys/configure/structs/game.coinData.go b/sys/configure/structs/game.coinData.go index ed4efd9ad..b72ccc6e7 100644 --- a/sys/configure/structs/game.coinData.go +++ b/sys/configure/structs/game.coinData.go @@ -16,12 +16,8 @@ type GameCoinData struct { Color int32 Effects string Access int32 - Star int32 - Race int32 Img string - Ico string Intr string - Tipstxt string } const TypeId_GameCoinData = 1416227927 @@ -36,12 +32,8 @@ func (_v *GameCoinData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) } { var _ok_ bool; if _v.Effects, _ok_ = _buf["effects"].(string); !_ok_ { err = errors.New("effects error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["access"].(float64); !_ok_ { err = errors.New("access error"); return }; _v.Access = int32(_tempNum_) } - { 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["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) } { var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } } - { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } { var _ok_ bool; if _v.Intr, _ok_ = _buf["intr"].(string); !_ok_ { err = errors.New("intr error"); return } } - { var _ok_ bool; if _v.Tipstxt, _ok_ = _buf["tipstxt"].(string); !_ok_ { err = errors.New("tipstxt error"); return } } return } diff --git a/sys/configure/structs/game.itemData.go b/sys/configure/structs/game.itemData.go index da0e0b352..96dad2e81 100644 --- a/sys/configure/structs/game.itemData.go +++ b/sys/configure/structs/game.itemData.go @@ -19,23 +19,18 @@ type GameItemData struct { Index int32 SpecialType int32 Time int32 + Reddottype int32 Effects string BoxId int32 SynthetizeNum int32 Access []int32 UseSkip int32 UpperLimit int32 - Uselv int32 - Isani int32 - Star int32 - Race int32 Img string - Ico string Intr string Sale []*Gameatn SynthetizeDeplete []*Gameatn DecomposeDeplete []*Gameatn - Tipstxt string } const TypeId_GameItemData = -984700967 @@ -53,6 +48,7 @@ func (_v *GameItemData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["index"].(float64); !_ok_ { err = errors.New("index error"); return }; _v.Index = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["special_type"].(float64); !_ok_ { err = errors.New("special_type error"); return }; _v.SpecialType = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reddottype"].(float64); !_ok_ { err = errors.New("reddottype error"); return }; _v.Reddottype = int32(_tempNum_) } { var _ok_ bool; if _v.Effects, _ok_ = _buf["effects"].(string); !_ok_ { err = errors.New("effects error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["box_id"].(float64); !_ok_ { err = errors.New("box_id error"); return }; _v.BoxId = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["synthetize_num"].(float64); !_ok_ { err = errors.New("synthetize_num error"); return }; _v.SynthetizeNum = int32(_tempNum_) } @@ -72,12 +68,7 @@ func (_v *GameItemData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["use_skip"].(float64); !_ok_ { err = errors.New("use_skip error"); return }; _v.UseSkip = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["upper_limit"].(float64); !_ok_ { err = errors.New("upper_limit error"); return }; _v.UpperLimit = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["uselv"].(float64); !_ok_ { err = errors.New("uselv error"); return }; _v.Uselv = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["isani"].(float64); !_ok_ { err = errors.New("isani error"); return }; _v.Isani = int32(_tempNum_) } - { 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["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) } { var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } } - { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["intr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Intr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Intr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _arr_ []interface{} @@ -121,7 +112,6 @@ func (_v *GameItemData)Deserialize(_buf map[string]interface{}) (err error) { } } - {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["tipstxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Tipstxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Tipstxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } return } From 07cd30e7a04b1d2aace73c74b162fa4f0e4c91d3 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 13 Apr 2023 11:31:52 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=8A=A0=E8=BE=93=E5=87=BA=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comp_configure.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/comp_configure.go b/modules/comp_configure.go index 91c124dfb..97acd945d 100644 --- a/modules/comp_configure.go +++ b/modules/comp_configure.go @@ -166,7 +166,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } groupID = szID[comm.GetRandW(szW)] // 获得小组ID - fmt.Printf("获得小组ID :%d", groupID) + fmt.Printf("大组类型为1的,获得小组ID :%d,dropID:%d", groupID, lotteryId) key := int64(lotteryId)<<31 + int64(groupID) // 小组ID 类型判断 if this.Stype[key] == 1 { // 该小组的道具为权重掉落,必定从N个道具中随机出1个道具 @@ -197,6 +197,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) for _, v := range this._groupType2[key] { if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + fmt.Printf("大组类型1小组类型2获得道具 :%v, 该道具Cid:%d", _data.Itemid, v) if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 count := comm.GetRandNum(_data.Min, _data.Max) items = append(items, &cfg.Gameatn{ @@ -222,8 +223,10 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } } } + // 类型为2 可能会同时获得多个组id for k, v := range gourp { + fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id) if v.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 szGroupID = append(szGroupID, k) key := int64(lotteryId)<<31 + int64(k) @@ -254,6 +257,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, } else if this.Stype[key] == 2 { for _, v := range this._groupType2[key] { if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + fmt.Printf("大组类型2小组类型2获得道具 :%v,该道具Cid:%d", _data.Itemid, v) if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 count := comm.GetRandNum(_data.Min, _data.Max) items = append(items, &cfg.Gameatn{ From f2d17bed05f2aaa55394edaa33f8ad269c445118 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 13 Apr 2023 12:27:19 +0800 Subject: [PATCH 4/7] update --- pb/smithy_db.pb.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pb/smithy_db.pb.go b/pb/smithy_db.pb.go index 17f2bf217..6bd6c33f5 100644 --- a/pb/smithy_db.pb.go +++ b/pb/smithy_db.pb.go @@ -88,7 +88,7 @@ type DBStove struct { Skill map[int32]int32 `protobuf:"bytes,5,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 台子技能 Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数 Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 - RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 + RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime" bson:"recoveTime"` //恢复满时间 Hit map[int32]int32 `protobuf:"bytes,9,rep,name=hit,proto3" json:"hit" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } From 105d377e9f642e2169dab446e334d0cf988e204a Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 13 Apr 2023 16:37:43 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0cmd=20=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E6=97=B6=E9=97=B4=E4=BF=AE=E6=94=B9=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/cmd/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cmd/main.go b/services/cmd/main.go index 2820f8936..6fda36747 100644 --- a/services/cmd/main.go +++ b/services/cmd/main.go @@ -360,7 +360,7 @@ func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip str sseting.Sys["configure"] = map[string]interface{}{ "ConfigurePath": "./json", - "TimestampFile": "./timestamp.text", + "TimestampFile": fmt.Sprintf("/home/www/default/changetime/_data_dreamworksserver_s%s.txt", config.AreaId), } sseting.Sys["wordfilter"] = map[string]interface{}{ "WorldFile": "./wordfilter.json", From 4a8c9566d6c4b3782319df9a39e858a9358a5b61 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 13 Apr 2023 17:46:36 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/const.go | 1 + comm/imodule.go | 5 + modules/arena/api_challenge.go | 6 +- modules/arena/api_info.go | 2 +- modules/arena/api_plot.go | 6 +- modules/arena/modelarena.go | 6 +- modules/arena/module.go | 2 +- modules/combat/api_drop.go | 5 +- modules/comp_configure.go | 32 +- modules/dispatch/api_do.go | 2 +- modules/dispatch/api_notice.go | 8 +- modules/dispatch/api_refresh.go | 4 +- modules/dispatch/api_week.go | 2 +- modules/dispatch/model_dispatch.go | 2 +- modules/equipment/api_wash.go | 2 +- modules/friend/api_cross_getreward.go | 2 +- modules/friend/module.go | 2 +- modules/hero/api_buy.go | 2 +- modules/hero/api_drawCard.go | 10 +- modules/hero/api_talentlearn.go | 2 +- modules/hero/api_talentreset.go | 2 +- modules/hero/model_hero.go | 2 +- modules/hero/module.go | 18 +- modules/horoscope/api_rest.go | 2 +- modules/items/api_buyphysical.go | 2 +- modules/items/configure.go | 4 +- modules/items/modelitems.go | 4 +- modules/modulebase.go | 5 + modules/moonfantasy/api_battle.go | 4 +- modules/moonfantasy/modelDream.go | 4 +- modules/moonfantasy/modelUserMF.go | 4 +- modules/pagoda/api_challengeover.go | 13 +- modules/practice/api_gymrefresh.go | 2 +- modules/practice/api_info.go | 2 +- modules/practice/api_npcbattklefinish.go | 2 +- modules/practice/module.go | 8 +- modules/smithy/api_forgeequip.go | 6 +- modules/smithy/api_getCustomer.go | 2 +- modules/smithy/api_rise.go | 4 +- modules/sociaty/api_cross_Formation.go | 2 +- modules/sociaty/api_cross_bossmain.go | 2 +- modules/sociaty/api_cross_buy.go | 2 +- modules/sociaty/module.go | 2 +- modules/tools/comp_configure.go | 589 +++++++++++++++++++++++ modules/tools/module.go | 50 ++ modules/user/model_expand.go | 2 +- modules/user/module.go | 6 +- modules/viking/module.go | 2 +- modules/worldtask/model_worldtask.go | 4 +- services/worker/main.go | 2 + 50 files changed, 755 insertions(+), 101 deletions(-) create mode 100644 modules/tools/comp_configure.go create mode 100644 modules/tools/module.go diff --git a/comm/const.go b/comm/const.go index f92fcb518..90ce3e853 100644 --- a/comm/const.go +++ b/comm/const.go @@ -83,6 +83,7 @@ const ( ModulePractice core.M_Modules = "practice" //熊猫武馆 练功系统 ModulePandaAtlas core.M_Modules = "atlas" //熊猫图鉴 ModuleParkour core.M_Modules = "parkour" //跑酷系统 + ModuleTools core.M_Modules = "tools" //工具 ) // 数据表名定义处 diff --git a/comm/imodule.go b/comm/imodule.go index e70d68a58..1255ae87e 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -451,4 +451,9 @@ type ( //pvp切磋结果通知 ChallengeResults(bid, red, bule string, winSide int32) } + + ITools interface { + GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) + GetGlobalConf() *cfg.GameGlobalData + } ) diff --git a/modules/arena/api_challenge.go b/modules/arena/api_challenge.go index 70e3b1a7f..e4a37d4ab 100644 --- a/modules/arena/api_challenge.go +++ b/modules/arena/api_challenge.go @@ -55,11 +55,11 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.ArenaChallenge return } this.module.modelArena.recoverTicket(session, red) - if cd = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.configure.GetGlobalConf().ArenaTicketCos}, true); cd != pb.ErrorCode_Success { + if cd = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.ModuleTools.GetGlobalConf().ArenaTicketCos}, true); cd != pb.ErrorCode_Success { return } - // if red.Ticket > this.module.configure.GetGlobalConf().ArenaTicketCos { - // red.Ticket -= this.module.configure.GetGlobalConf().ArenaTicketCos + // if red.Ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos { + // red.Ticket -= this.module.ModuleTools.GetGlobalConf().ArenaTicketCos // } else { // code = pb.ErrorCode_ArenaTicketNotEnough // return diff --git a/modules/arena/api_info.go b/modules/arena/api_info.go index e62ea5c21..5ace53d97 100644 --- a/modules/arena/api_info.go +++ b/modules/arena/api_info.go @@ -34,7 +34,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (code return } if err == mgo.MongodbNil { - global = this.module.configure.GetGlobalConf() + global = this.module.ModuleTools.GetGlobalConf() if model, err = this.module.GetDBNodule(session, comm.TableUser, time.Hour); err != nil { code = pb.ErrorCode_DBError this.module.Errorln(err) diff --git a/modules/arena/api_plot.go b/modules/arena/api_plot.go index b1f5d8a60..b9af3f8ea 100644 --- a/modules/arena/api_plot.go +++ b/modules/arena/api_plot.go @@ -59,11 +59,11 @@ func (this *apiComp) Plot(session comm.IUserSession, req *pb.ArenaPlotReq) (code return } this.module.modelArena.recoverTicket(session, info) - if cd = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.configure.GetGlobalConf().ArenaTicketCos}, true); cd != pb.ErrorCode_Success { + if cd = this.module.ConsumeRes(session, []*cfg.Gameatn{this.module.ModuleTools.GetGlobalConf().ArenaTicketCos}, true); cd != pb.ErrorCode_Success { return } - // if info.Ticket > this.module.configure.GetGlobalConf().ArenaTicketCos { - // info.Ticket -= this.module.configure.GetGlobalConf().ArenaTicketCos + // if info.Ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos { + // info.Ticket -= this.module.ModuleTools.GetGlobalConf().ArenaTicketCos // } else { // code = pb.ErrorCode_ArenaTicketNotEnough // return diff --git a/modules/arena/modelarena.go b/modules/arena/modelarena.go index 0d7da5fbf..3e2073f05 100644 --- a/modules/arena/modelarena.go +++ b/modules/arena/modelarena.go @@ -394,7 +394,7 @@ func (this *modelArena) recoverTicket(session comm.IUserSession, info *pb.DBAren ticket int32 ticketNum int32 ) - global := this.module.configure.GetGlobalConf() + global := this.module.ModuleTools.GetGlobalConf() ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.ArenaTicket)) if ticket < global.ArenaTicketMax && info.Lastrtickettime > 0 { duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0)) @@ -422,14 +422,14 @@ func (this *modelArena) reddot(session comm.IUserSession) bool { return false } if err == mgo.MongodbNil { - global := this.module.configure.GetGlobalConf() + global := this.module.ModuleTools.GetGlobalConf() if global.ArenaTicketMax >= global.ArenaTicketCos.N { return true } return false } ticket := int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.ArenaTicket)) - if ticket > this.module.configure.GetGlobalConf().ArenaTicketCos.N { + if ticket > this.module.ModuleTools.GetGlobalConf().ArenaTicketCos.N { return true } return false diff --git a/modules/arena/module.go b/modules/arena/module.go index b046245e2..45c9d0f45 100644 --- a/modules/arena/module.go +++ b/modules/arena/module.go @@ -130,7 +130,7 @@ func (this *Arena) GetMatcheBattleRoles(uid string) (captain int32, rules []*pb. ais []*pb.ArenaPlayer code pb.ErrorCode ) - global = this.configure.GetGlobalConf() + global = this.ModuleTools.GetGlobalConf() if info, err = this.modelArena.queryPlayerInfo(uid); err != nil && err != mgo.MongodbNil { return } diff --git a/modules/combat/api_drop.go b/modules/combat/api_drop.go index 75d1b60c4..63bcb8a23 100644 --- a/modules/combat/api_drop.go +++ b/modules/combat/api_drop.go @@ -59,8 +59,9 @@ func (this *apiComp) Drop(session comm.IUserSession, req *pb.CombatDropReq) (cod code = pb.ErrorCode_DBError return } - - reward := this.module.configure.GetDropReward(box.Drop) + user := this.module.ModuleUser.GetUser(session.GetUserId()) + reward := this.module.ModuleTools.GetGroupDataByLottery(box.Drop, user.Vip, user.Lv) + //reward := this.module.configure.GetDropReward(box.Drop) this.module.DispenseRes(session, reward, true) atns = make([]*pb.UserAssets, len(reward)) for i, v := range reward { diff --git a/modules/comp_configure.go b/modules/comp_configure.go index 97acd945d..adfae337b 100644 --- a/modules/comp_configure.go +++ b/modules/comp_configure.go @@ -324,22 +324,22 @@ func (this *MCompConfigure) GetConfigure(name string) (v interface{}, err error) } //全局配置 -func (this *MCompConfigure) GetGlobalConf() *cfg.GameGlobalData { - var ( - configure *cfg.GameGlobal - ok bool - ) - if v, err := this.GetConfigure(game_global); err != nil { - log.Errorf("get global conf err:%v", err) - return nil - } else { - if configure, ok = v.(*cfg.GameGlobal); !ok { - log.Errorf("%T no is *cfg.Game_global", v) - return nil - } - } - return configure.GetDataList()[0] // 返回对象信息 -} +// func (this *MCompConfigure) GetGlobalConf() *cfg.GameGlobalData { +// var ( +// configure *cfg.GameGlobal +// ok bool +// ) +// if v, err := this.GetConfigure(game_global); err != nil { +// log.Errorf("get global conf err:%v", err) +// return nil +// } else { +// if configure, ok = v.(*cfg.GameGlobal); !ok { +// log.Errorf("%T no is *cfg.Game_global", v) +// return nil +// } +// } +// return configure.GetDataList()[0] // 返回对象信息 +// } func (this *MCompConfigure) GetGlobalInitConf() (configure *cfg.GameInitial, err error) { var ( diff --git a/modules/dispatch/api_do.go b/modules/dispatch/api_do.go index f37736421..11ece36f3 100644 --- a/modules/dispatch/api_do.go +++ b/modules/dispatch/api_do.go @@ -56,7 +56,7 @@ func (a *apiComp) Do(session comm.IUserSession, req *pb.DispatchDoReq) (code pb. } //校验门票 - ticketAtn := a.module.configure.GetGlobalConf().DispatchNumtools + ticketAtn := a.module.ModuleTools.GetGlobalConf().DispatchNumtools if code = a.module.CheckRes(session, []*cfg.Gameatn{ticketAtn}); code != pb.ErrorCode_Success { code = pb.ErrorCode_DispatchTicketNoEnough return diff --git a/modules/dispatch/api_notice.go b/modules/dispatch/api_notice.go index f80529975..26b956bd0 100644 --- a/modules/dispatch/api_notice.go +++ b/modules/dispatch/api_notice.go @@ -35,7 +35,7 @@ func (a *apiComp) Notice(session comm.IUserSession, req *pb.DispatchNoticeReq) ( return } - freeCount := a.module.configure.GetGlobalConf().DispatchFreecheck + freeCount := a.module.ModuleTools.GetGlobalConf().DispatchFreecheck nb := &pb.Noticeboard{ Lv: 1, //公告初始升级 FreeCount: freeCount, @@ -55,9 +55,9 @@ func (a *apiComp) Notice(session comm.IUserSession, req *pb.DispatchNoticeReq) ( //恢复门票 one := utils.DiffDays(d.Nb.UpdateTime, configure.Now().Unix()) if one >= 1 { - itemId := a.module.configure.GetGlobalConf().DispatchNumtools.T + itemId := a.module.ModuleTools.GetGlobalConf().DispatchNumtools.T left := a.module.ModuleItems.QueryItemAmount(uid, itemId) - limit := a.module.configure.GetGlobalConf().DispatchNumoftimes + limit := a.module.ModuleTools.GetGlobalConf().DispatchNumoftimes if int32(left) < limit { add := limit - int32(left) atn := &cfg.Gameatn{A: "item", T: itemId, N: add} @@ -66,7 +66,7 @@ func (a *apiComp) Notice(session comm.IUserSession, req *pb.DispatchNoticeReq) ( } //周任务重置 n := utils.DiffDays(d.Nb.UpdateTime, configure.Now().Unix()) - day := a.module.configure.GetGlobalConf().DispatchWeektaskcheck + day := a.module.ModuleTools.GetGlobalConf().DispatchWeektaskcheck if int32(n) >= day { d.Nb.WeekCount = 0 d.Nb.WeekReceived = []int32{} diff --git a/modules/dispatch/api_refresh.go b/modules/dispatch/api_refresh.go index 75bc6ebda..c2d21acf2 100644 --- a/modules/dispatch/api_refresh.go +++ b/modules/dispatch/api_refresh.go @@ -36,13 +36,13 @@ func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) return } } else { - refreshCount := a.module.configure.GetGlobalConf().DispatchRefreshtimes + refreshCount := a.module.ModuleTools.GetGlobalConf().DispatchRefreshtimes if d.Nb.RefreshCount >= refreshCount { code = pb.ErrorCode_DispatchRefreshMax return } //消耗金币 - money := a.module.configure.GetGlobalConf().DispatchCheckmoney + money := a.module.ModuleTools.GetGlobalConf().DispatchCheckmoney if code = a.module.CheckRes(session, []*cfg.Gameatn{money}); code != pb.ErrorCode_Success { return } diff --git a/modules/dispatch/api_week.go b/modules/dispatch/api_week.go index fd7dbf2f9..e8e7fe997 100644 --- a/modules/dispatch/api_week.go +++ b/modules/dispatch/api_week.go @@ -27,7 +27,7 @@ func (a *apiComp) Weekrecive(session comm.IUserSession, req *pb.DispatchWeekReci } //派发奖励 - wr := a.module.configure.GetGlobalConf().DispatchWeektaskreward + wr := a.module.ModuleTools.GetGlobalConf().DispatchWeektaskreward for i, v := range wr { if req.Idx == int32(i+1) { if d.Nb.WeekCount >= v.N { diff --git a/modules/dispatch/model_dispatch.go b/modules/dispatch/model_dispatch.go index 1cffd0d68..07733d246 100644 --- a/modules/dispatch/model_dispatch.go +++ b/modules/dispatch/model_dispatch.go @@ -42,7 +42,7 @@ func (this *modelDispatch) initDispatch(uid string, dispatch *pb.DBDispatch) *pb return nil } - freeCount := this.module.configure.GetGlobalConf().DispatchFreecheck + freeCount := this.module.ModuleTools.GetGlobalConf().DispatchFreecheck dis := &pb.DBDispatch{ Uid: uid, Nb: &pb.Noticeboard{ diff --git a/modules/equipment/api_wash.go b/modules/equipment/api_wash.go index 49aeebf0c..e7888f1e5 100644 --- a/modules/equipment/api_wash.go +++ b/modules/equipment/api_wash.go @@ -40,7 +40,7 @@ func (this *apiComp) Wash(session comm.IUserSession, req *pb.EquipmentWashReq) ( code = pb.ErrorCode_ConfigNoFound return } - gole := this.module.configure.GetGlobalConf().EquipmentConsumption[conf.Color-1] + gole := this.module.ModuleTools.GetGlobalConf().EquipmentConsumption[conf.Color-1] if code = this.module.ConsumeRes(session, []*cfg.Gameatn{{A: comm.AttrType, T: comm.ResGold, N: gole}}, true); code != pb.ErrorCode_Success { return } diff --git a/modules/friend/api_cross_getreward.go b/modules/friend/api_cross_getreward.go index 9e2d99ff3..19825cd08 100644 --- a/modules/friend/api_cross_getreward.go +++ b/modules/friend/api_cross_getreward.go @@ -40,7 +40,7 @@ func (this *apiComp) Getreward(session comm.IUserSession, req *pb.FriendGetrewar return } - globalConf := this.moduleFriend.configure.GetGlobalConf() + globalConf := this.moduleFriend.ModuleTools.GetGlobalConf() if code = this.moduleFriend.DispenseRes(session, globalConf.FriendPeize, true); code != pb.ErrorCode_Success { this.moduleFriend.Error("好友领奖励", log.Field{Key: "uid", Value: uid}, diff --git a/modules/friend/module.go b/modules/friend/module.go index f5babd2f7..98280e65d 100644 --- a/modules/friend/module.go +++ b/modules/friend/module.go @@ -61,7 +61,7 @@ func (this *Friend) Start() (err error) { err = this.ModuleBase.Start() this.service.RegisterFunctionName(string(comm.Rpc_ModuleFriendUseAssitHero), this.RpcUseAssisHero) this.service.RegisterFunctionName(string(comm.Rpc_ModuleFriendDB), this.RpcFriendDB) - this.globalConf = this.configure.GetGlobalConf() + this.globalConf = this.ModuleTools.GetGlobalConf() if this.globalConf == nil { err = errors.New("global config not found") } diff --git a/modules/hero/api_buy.go b/modules/hero/api_buy.go index 5f59ae77c..ae7da09b7 100644 --- a/modules/hero/api_buy.go +++ b/modules/hero/api_buy.go @@ -52,7 +52,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.HeroBuyReq) (code pb code = pb.ErrorCode_SystemError return } - global = this.module.configure.GetGlobalConf() + global = this.module.ModuleTools.GetGlobalConf() for _, v := range conf.Salelist { price = append(price, v) } diff --git a/modules/hero/api_drawCard.go b/modules/hero/api_drawCard.go index c479a3eb9..ebf4a8703 100644 --- a/modules/hero/api_drawCard.go +++ b/modules/hero/api_drawCard.go @@ -36,7 +36,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq normalDraw bool // 是否是普通抽 ) update = make(map[string]interface{}) - cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件 + cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件 if cfgDraw == nil { return } @@ -81,7 +81,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq starIndex := this.module.modelHero.GetRandW(starWeight) // 3 4 5 星索引 // 特殊规则 DrawCard_5StarsInRange 第2-30次抽奖必出一个5星英雄(普通卡池) - inRangeConf := this.module.configure.GetGlobalConf().DrawCard5StarsInRange + inRangeConf := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange if len(inRangeConf) == 3 { iStart := inRangeConf[0] // 抽卡开始 iEnd := inRangeConf[1] // 抽卡结束 @@ -121,7 +121,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq } } } - inRangeConf1 := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1 + inRangeConf1 := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1 if len(inRangeConf1) == 3 { iStart := inRangeConf1[0] // 抽卡开始 iEnd := inRangeConf1[1] // 抽卡结束 @@ -142,7 +142,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq heroRecord.Star5 = 0 } // 修改卡池 - newPoll := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1Pool + newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool if newPoll != "" { strPool[len(strPool)-1] = newPoll } @@ -163,7 +163,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq heroRecord.Star5 = 0 } // 修改卡池 - newPoll := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1Pool + newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool if newPoll != "" { strPool[len(strPool)-1] = newPoll } diff --git a/modules/hero/api_talentlearn.go b/modules/hero/api_talentlearn.go index fd387c690..bb2aa3abb 100644 --- a/modules/hero/api_talentlearn.go +++ b/modules/hero/api_talentlearn.go @@ -89,7 +89,7 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe curItemCount := int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), t)) if curItemCount < talentConf.Point { // 如果数量不够 则取找其他物品替代 leftCount := talentConf.Point - curItemCount // 需要其他物品的数量 - generaltp := this.module.configure.GetGlobalConf().Generaltp + generaltp := this.module.ModuleTools.GetGlobalConf().Generaltp fp := &cfg.Gameatn{ A: generaltp.A, T: generaltp.T, diff --git a/modules/hero/api_talentreset.go b/modules/hero/api_talentreset.go index 5560293d1..2e5e70a7f 100644 --- a/modules/hero/api_talentreset.go +++ b/modules/hero/api_talentreset.go @@ -39,7 +39,7 @@ func (this *apiComp) TalentReset(session comm.IUserSession, req *pb.HeroTalentRe chanegCard = make([]*pb.DBHero, 0) // 检查消耗够不够 - if code = this.module.ConsumeRes(session, this.module.configure.GetGlobalConf().TalentReset, true); code != pb.ErrorCode_Success { + if code = this.module.ConsumeRes(session, this.module.ModuleTools.GetGlobalConf().TalentReset, true); code != pb.ErrorCode_Success { return } diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 7126ad553..43e8a47ba 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -879,7 +879,7 @@ func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, c // 如果技能是满级 则转成其他道具 if this.checkHeroAllSkillMax(hero) { - list := this.moduleHero.configure.GetGlobalConf().Moonshopmoney + list := this.moduleHero.ModuleTools.GetGlobalConf().Moonshopmoney if list != nil { for pos, v := range list { diff --git a/modules/hero/module.go b/modules/hero/module.go index 196c242ee..f8f99f29f 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -460,7 +460,7 @@ func (this *Hero) PushHeroProperty(session comm.IUserSession, heros []*pb.DBHero // 充值了多少钱 func (this *Hero) RechargeMoney(uid string, money int32) { - conf := this.configure.GetGlobalConf() + conf := this.ModuleTools.GetGlobalConf() if conf != nil { if len(conf.DrawCardRechargeReward) != 2 { return @@ -489,7 +489,7 @@ func (this *Hero) RechargeMoney(uid string, money int32) { // 多少天没登录 func (this *Hero) NoLoginDay(uid string, day int32) { - conf := this.configure.GetGlobalConf() + conf := this.ModuleTools.GetGlobalConf() if conf != nil { if len(conf.DrawCardRegressionReward) != 2 { return @@ -533,7 +533,7 @@ func (this *Hero) ContinuousRestriction(uid string, heroCid string, drawCount in } for heroid, index := range record.Star5Hero { if heroid == heroCid { - conf := this.configure.GetGlobalConf() //. + conf := this.ModuleTools.GetGlobalConf() //. iMaxCOunt := conf.DrawCardContinuousRestrictionStar5 if drawCount-index <= iMaxCOunt { // 连续n次还获得该英雄 直接替换其他英雄 @@ -577,7 +577,7 @@ func (this *Hero) CheckCondition(uid string) bool { defer this.modelRecord.ChangeHeroRecord(uid, update) record, _ := this.modelRecord.GetHeroRecord(uid) if v, ok := record.Condition["recharge"]; ok { - conf := this.configure.GetGlobalConf() //. + conf := this.ModuleTools.GetGlobalConf() //. if len(conf.DrawCardRechargeReward) == 2 { curCount = conf.DrawCardRechargeReward[1] } @@ -597,7 +597,7 @@ func (this *Hero) CheckCondition(uid string) bool { } } if v, ok := record.Condition["login"]; ok { - conf := this.configure.GetGlobalConf() //. + conf := this.ModuleTools.GetGlobalConf() //. if len(conf.DrawCardRegressionReward) == 2 { curCount = conf.DrawCardRegressionReward[1] } @@ -763,7 +763,7 @@ func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCou } func (this *Hero) newCondition(heroRecord *pb.DBHeroRecord) (get bool, starIndex int32) { - inRangeConf := this.configure.GetGlobalConf().DrawCard5StarsInRange + inRangeConf := this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange if len(inRangeConf) == 3 { iStart := inRangeConf[0] // 抽卡开始 iEnd := inRangeConf[1] // 抽卡结束 @@ -796,8 +796,8 @@ func (this *Hero) newCondition(heroRecord *pb.DBHeroRecord) (get bool, starIndex func (this *Hero) InRange(heroRecord *pb.DBHeroRecord, strPool []string, update map[string]interface{}) (starIndex int32, pool string) { starIndex = 3 // 默认3星 - inRangeConf1 := this.configure.GetGlobalConf().DrawCard5StarsInRange1 - pool = this.configure.GetGlobalConf().DrawCard5StarsInRange1Pool + inRangeConf1 := this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1 + pool = this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool if len(inRangeConf1) == 3 { iStart := inRangeConf1[0] // 抽卡开始 iEnd := inRangeConf1[1] // 抽卡结束 @@ -914,7 +914,7 @@ func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid []string //DrawCard_ContinuousRestriction_Camp func (this *Hero) DrawCardContinuousRestrictionCamp(cardId string, race map[int32]int32, sz []int32, data []*cfg.GameDrawCardData) (card string) { card = cardId - cfgDraw := this.configure.GetGlobalConf() // 读取抽卡配置文件 + cfgDraw := this.ModuleTools.GetGlobalConf() // 读取抽卡配置文件 if cfgDraw == nil || race == nil { return } diff --git a/modules/horoscope/api_rest.go b/modules/horoscope/api_rest.go index a5c7cffb5..bfecf18ff 100644 --- a/modules/horoscope/api_rest.go +++ b/modules/horoscope/api_rest.go @@ -30,7 +30,7 @@ func (this *apiComp) Reset(session comm.IUserSession, req *pb.HoroscopeResetReq) code = pb.ErrorCode_DBError return } - conf = this.module.configure.GetGlobalConf() + conf = this.module.ModuleTools.GetGlobalConf() if info.Lastrest > 0 { if configure.Now().Sub(time.Unix(info.Lastrest, 0)).Seconds() < float64(conf.HoroscopeResetCd) { code = pb.ErrorCode_HoroscopeRestCDNoEnd diff --git a/modules/items/api_buyphysical.go b/modules/items/api_buyphysical.go index 9882b10a5..883e638e1 100644 --- a/modules/items/api_buyphysical.go +++ b/modules/items/api_buyphysical.go @@ -34,7 +34,7 @@ func (this *apiComp) BuyPhysical(session comm.IUserSession, req *pb.ItemsBuyPhys return } - if needs = this.module.configure.GetGlobalConf().PsBuy; needs == nil && len(needs) == 0 { + if needs = this.module.ModuleTools.GetGlobalConf().PsBuy; needs == nil && len(needs) == 0 { code = pb.ErrorCode_ConfigNoFound return } diff --git a/modules/items/configure.go b/modules/items/configure.go index 26b9d60d5..8f25e72ab 100644 --- a/modules/items/configure.go +++ b/modules/items/configure.go @@ -137,12 +137,12 @@ func (this *ConfigureComp) GetPackItemByType(itmes []*pb.DB_UserItemData, bagtyp } func (this *ConfigureComp) GetchallengeDataCount() (count int, err error) { - count = len(this.GetGlobalConf().CopsBuy) + count = len(this.module.ModuleTools.GetGlobalConf().CopsBuy) return } func (this *ConfigureComp) GetchallengeData(buy int) (result *cfg.Gameatn) { - for i, v := range this.GetGlobalConf().CopsBuy { + for i, v := range this.module.ModuleTools.GetGlobalConf().CopsBuy { if i == buy-1 { result = v return diff --git a/modules/items/modelitems.go b/modules/items/modelitems.go index 1b517bda3..ce0ff9b87 100644 --- a/modules/items/modelitems.go +++ b/modules/items/modelitems.go @@ -502,7 +502,7 @@ func (this *ModelItemsComp) buyTicket(session comm.IUserSession, buy int32) (inf return } - atn := this.module.configure.GetGlobalConf().CopsBuyGet + atn := this.module.ModuleTools.GetGlobalConf().CopsBuyGet res := &cfg.Gameatn{ A: atn.A, @@ -543,7 +543,7 @@ func (this *ModelItemsComp) recoverTicket(session comm.IUserSession) (code pb.Er info.Lasttimeunifiedticket = configure.Now().Unix() info.Buyunifiedticket = 0 } - global := this.module.configure.GetGlobalConf() + global := this.module.ModuleTools.GetGlobalConf() playerlv := this.module.configure.GetPlayerlvConf(user.Lv) ticket = int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), comm.UnifiedTicket)) if ticket < global.DreamlandFightnum && info.Recovertimeunifiedticket > 0 { diff --git a/modules/modulebase.go b/modules/modulebase.go index 2375d7cda..9fd820803 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -40,6 +40,7 @@ type ModuleBase struct { ModulePrivilege comm.IPrivilege // 月卡 ModuleSmithy comm.ISmithy // ModulePractice comm.IPractice //练功房 + ModuleTools comm.ITools //工具类 获取一些通用配置 } //重构模块配置对象 @@ -125,6 +126,10 @@ func (this *ModuleBase) Start() (err error) { return } this.ModulePractice = module.(comm.IPractice) + if module, err = this.service.GetModule(comm.ModuleTools); err != nil { + return + } + this.ModuleTools = module.(comm.ITools) return } diff --git a/modules/moonfantasy/api_battle.go b/modules/moonfantasy/api_battle.go index 89f00e630..a5acd22c2 100644 --- a/modules/moonfantasy/api_battle.go +++ b/modules/moonfantasy/api_battle.go @@ -84,10 +84,10 @@ func (this *apiComp) Battle(session comm.IUserSession, req *pb.MoonfantasyBattle // cd = pb.ErrorCode_CacheReadError // } - // if umfantasy.Ticket < this.module.configure.GetGlobalConf().DreamlandCos { + // if umfantasy.Ticket < this.module.ModuleTools.GetGlobalConf().DreamlandCos { // cd = pb.ErrorCode_MoonfantasyNotEnoughbattles // } - // umfantasy.Ticket -= this.module.configure.GetGlobalConf().DreamlandCos + // umfantasy.Ticket -= this.module.ModuleTools.GetGlobalConf().DreamlandCos if boss, err = this.module.configure.GetMonsterById(mdata.Monster); err != nil { cd = pb.ErrorCode_ConfigNoFound return diff --git a/modules/moonfantasy/modelDream.go b/modules/moonfantasy/modelDream.go index 7938b0785..bfc3d3b6e 100644 --- a/modules/moonfantasy/modelDream.go +++ b/modules/moonfantasy/modelDream.go @@ -95,7 +95,7 @@ func (this *modelDreamComp) trigger(session comm.IUserSession) { chat *pb.DBChat err error ) - globalconf = this.module.configure.GetGlobalConf() + globalconf = this.module.ModuleTools.GetGlobalConf() if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { return @@ -149,7 +149,7 @@ func (this *modelDreamComp) triggerbyid(session comm.IUserSession, boosid string mdata *pb.DBMoonFantasy chat *pb.DBChat ) - globalconf = this.module.configure.GetGlobalConf() + globalconf = this.module.ModuleTools.GetGlobalConf() if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { return diff --git a/modules/moonfantasy/modelUserMF.go b/modules/moonfantasy/modelUserMF.go index b7373f29c..4efe691e5 100644 --- a/modules/moonfantasy/modelUserMF.go +++ b/modules/moonfantasy/modelUserMF.go @@ -41,7 +41,7 @@ func (this *modelUserMF) queryUsermfantasy(uId string) (info *pb.DBUserMFantasy, this.module.Errorf("err:%v", err) } if err == mgo.MongodbNil { - global := this.module.configure.GetGlobalConf() + global := this.module.ModuleTools.GetGlobalConf() info = &pb.DBUserMFantasy{ Id: primitive.NewObjectID().Hex(), Uid: uId, @@ -83,7 +83,7 @@ func (this *modelUserMF) recoverTicket(session comm.IUserSession, info *pb.DBUse info.BuyNum = 0 } // this.module.ModuleItems.RecoverTicket(session) - global := this.module.configure.GetGlobalConf() + global := this.module.ModuleTools.GetGlobalConf() ticket = int32(this.module.ModuleItems.QueryItemAmount(info.Uid, comm.MoonFantasyTicket)) if ticket < global.DreamlandFightnum && info.Lastrtickettime > 0 { duration = configure.Now().Sub(time.Unix(info.Lastrtickettime, 0)) diff --git a/modules/pagoda/api_challengeover.go b/modules/pagoda/api_challengeover.go index 4a7d1173e..08b65df54 100644 --- a/modules/pagoda/api_challengeover.go +++ b/modules/pagoda/api_challengeover.go @@ -107,14 +107,14 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal // 记录爬塔明细数据 if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { - sz := make([]*pb.LineUp, 5) - for i, v := range req.Report.Info.Redflist[0].Team { + szLine := make([]*pb.LineUp, 0) + for _, v := range req.Report.Info.Redflist[0].Team { if v != nil { - sz[i] = &pb.LineUp{ + szLine = append(szLine, &pb.LineUp{ Cid: v.HeroID, Star: v.Star, Lv: v.Lv, - } + }) } } // 数据直接插入跨服数据库中 @@ -126,9 +126,10 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal PagodaId: pagoda.PagodaId, Type: pagoda.Type, Nickname: userinfo.Name, - Icon: "", // icon 暂无 + Icon: "", Lv: userinfo.Lv, - CostTime: req.Report.Costtime, + Leadpos: 0, + Line: szLine, //[]*pb.LineUp{}, } costTime = newData.CostTime // 数据写到跨服中 diff --git a/modules/practice/api_gymrefresh.go b/modules/practice/api_gymrefresh.go index 53221c5e1..186dc1039 100644 --- a/modules/practice/api_gymrefresh.go +++ b/modules/practice/api_gymrefresh.go @@ -30,7 +30,7 @@ func (this *apiComp) GymRefresh(session comm.IUserSession, req *pb.PracticeGymRe code = pb.ErrorCode_DBError return } - refreshAtns = this.module.configure.GetGlobalConf().MrylFlushed + refreshAtns = this.module.ModuleTools.GetGlobalConf().MrylFlushed if len(refreshAtns) == 0 { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/practice/api_info.go b/modules/practice/api_info.go index d8b83b922..db173e497 100644 --- a/modules/practice/api_info.go +++ b/modules/practice/api_info.go @@ -45,7 +45,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.PracticeInfoReq) (c if room.Npcstate == 3 { //CD中 cd := int32(configure.Now().Sub(time.Unix(room.Refresh, 0)).Seconds()) - if cd >= this.module.configure.GetGlobalConf().PandamasChallengeCd { + if cd >= this.module.ModuleTools.GetGlobalConf().PandamasChallengeCd { if err = this.module.modelPandata.refreshnpc(room); err != nil { this.module.Errorln(err) code = pb.ErrorCode_DBError diff --git a/modules/practice/api_npcbattklefinish.go b/modules/practice/api_npcbattklefinish.go index 5e5686dc0..df7fe408e 100644 --- a/modules/practice/api_npcbattklefinish.go +++ b/modules/practice/api_npcbattklefinish.go @@ -51,7 +51,7 @@ func (this *apiComp) NPCBattkleFinish(session comm.IUserSession, req *pb.Practic room.Npcstate = 1 room.Battlenum++ - if room.Battlenum >= this.module.configure.GetGlobalConf().PandamasFightNum { + if room.Battlenum >= this.module.ModuleTools.GetGlobalConf().PandamasFightNum { room.Npcstate = 3 room.Refresh = configure.Now().Unix() this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{ diff --git a/modules/practice/module.go b/modules/practice/module.go index fb6d24153..70b8acb85 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -252,7 +252,7 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { if v.Uid == red { v.Unionname = redsociaty v.Figure = reduser.Figure - v.End = configure.Now().Add(time.Minute * time.Duration(this.configure.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix() + v.End = configure.Now().Add(time.Minute * time.Duration(this.ModuleTools.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix() keep = true break } @@ -263,7 +263,7 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { Name: reduser.Name, Unionname: redsociaty, Figure: reduser.Figure, - End: configure.Now().Add(time.Minute * time.Duration(this.configure.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix(), + End: configure.Now().Add(time.Minute * time.Duration(this.ModuleTools.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix(), }) } @@ -280,7 +280,7 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { if v.Uid == bule { v.Unionname = bulesociaty v.Figure = buleuser.Figure - v.End = configure.Now().Add(time.Minute * time.Duration(this.configure.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix() + v.End = configure.Now().Add(time.Minute * time.Duration(this.ModuleTools.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix() keep = true break } @@ -291,7 +291,7 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { Name: buleuser.Name, Unionname: bulesociaty, Figure: buleuser.Figure, - End: configure.Now().Add(time.Minute * time.Duration(this.configure.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix(), + End: configure.Now().Add(time.Minute * time.Duration(this.ModuleTools.GetGlobalConf().PandamasTiguandiaoxiangCd)).Unix(), }) } for i, v := range buleroom.Statuers { diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go index f26306c76..378a51ae5 100644 --- a/modules/smithy/api_forgeequip.go +++ b/modules/smithy/api_forgeequip.go @@ -88,8 +88,8 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq needTemperatureCos = reelcfg.TemperatureCos * (1000 - t) / 1000 // 千分比 if req.Lava > 0 { // 熔岩打造 - exemption := this.module.configure.GetGlobalConf().ExemptionTemperatureCos // 预计消耗温度 - gloabNum := this.module.configure.GetGlobalConf().ExemptionTemperatureCosNum + exemption := this.module.ModuleTools.GetGlobalConf().ExemptionTemperatureCos // 预计消耗温度 + gloabNum := this.module.ModuleTools.GetGlobalConf().ExemptionTemperatureCosNum if needTemperatureCos > req.Lava*gloabNum { code = pb.ErrorCode_SmithyLackLava // 缺少熔岩 return @@ -155,7 +155,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq } // 总次数校验 - maxHitCount := this.module.configure.GetGlobalConf().GameMakeTunkNum + maxHitCount := this.module.ModuleTools.GetGlobalConf().GameMakeTunkNum if hitLen > maxHitCount { code = pb.ErrorCode_ReqParameterError this.module.Errorf("铁匠铺小游戏打造次数超过上限,当前打造次数:%d, 配置总次数:%d", hitLen, maxHitCount) diff --git a/modules/smithy/api_getCustomer.go b/modules/smithy/api_getCustomer.go index 69c844f4e..abb0838a4 100644 --- a/modules/smithy/api_getCustomer.go +++ b/modules/smithy/api_getCustomer.go @@ -14,7 +14,7 @@ func (this *apiComp) CustomerCheck(session comm.IUserSession, req *pb.SmithyCust } func (this *apiComp) Customer(session comm.IUserSession, req *pb.SmithyCustomerReq) (code pb.ErrorCode, data proto.Message) { - customerCount := this.module.configure.GetGlobalConf().SmithyMaxNpc + customerCount := this.module.ModuleTools.GetGlobalConf().SmithyMaxNpc if customerCount <= 0 { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/smithy/api_rise.go b/modules/smithy/api_rise.go index f80aaf14b..2a704ba84 100644 --- a/modules/smithy/api_rise.go +++ b/modules/smithy/api_rise.go @@ -36,8 +36,8 @@ func (this *apiComp) Rise(session comm.IUserSession, req *pb.SmithyRiseReq) (cod code = pb.ErrorCode_SmithyMaxTemperature return } - raise := this.module.configure.GetGlobalConf().RaiseTemperature - raise_temperatureNum := this.module.configure.GetGlobalConf().RaiseTemperatureNum + raise := this.module.ModuleTools.GetGlobalConf().RaiseTemperature + raise_temperatureNum := this.module.ModuleTools.GetGlobalConf().RaiseTemperatureNum cost = append(cost, &cfg.Gameatn{ A: raise.A, T: raise.T, diff --git a/modules/sociaty/api_cross_Formation.go b/modules/sociaty/api_cross_Formation.go index 100945174..c335c87e9 100644 --- a/modules/sociaty/api_cross_Formation.go +++ b/modules/sociaty/api_cross_Formation.go @@ -28,7 +28,7 @@ func (this *apiComp) Formation(session comm.IUserSession, req *pb.SociatyBFormat return } - ggd := this.module.configure.GetGlobalConf() + ggd := this.module.ModuleTools.GetGlobalConf() if ggd == nil { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/sociaty/api_cross_bossmain.go b/modules/sociaty/api_cross_bossmain.go index f3c1905de..f7b2b847e 100644 --- a/modules/sociaty/api_cross_bossmain.go +++ b/modules/sociaty/api_cross_bossmain.go @@ -18,7 +18,7 @@ func (this *apiComp) BossmainCheck(session comm.IUserSession, req *pb.SociatyBMa func (this *apiComp) Bossmain(session comm.IUserSession, req *pb.SociatyBMainReq) (code pb.ErrorCode, data proto.Message) { uid := session.GetUserId() - ggd := this.module.configure.GetGlobalConf() + ggd := this.module.ModuleTools.GetGlobalConf() if ggd == nil { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/sociaty/api_cross_buy.go b/modules/sociaty/api_cross_buy.go index 2b0a22cca..e3a83f9af 100644 --- a/modules/sociaty/api_cross_buy.go +++ b/modules/sociaty/api_cross_buy.go @@ -21,7 +21,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.SociatyBuyReq) (code return } - ggd := this.module.configure.GetGlobalConf() + ggd := this.module.ModuleTools.GetGlobalConf() if ggd == nil { code = pb.ErrorCode_ConfigNoFound return diff --git a/modules/sociaty/module.go b/modules/sociaty/module.go index 1edcf36d4..51d7f64fa 100644 --- a/modules/sociaty/module.go +++ b/modules/sociaty/module.go @@ -68,7 +68,7 @@ func (this *Sociaty) Start() (err error) { this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyUpdate), this.RpcUpdateSociaty) this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyTask), this.RpcUpdateUserTask) this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyGetTask), this.RpcGetUserTask) - this.globalConf = this.configure.GetGlobalConf() + this.globalConf = this.ModuleTools.GetGlobalConf() if this.globalConf == nil { err = errors.New("global config not found") return diff --git a/modules/tools/comp_configure.go b/modules/tools/comp_configure.go new file mode 100644 index 000000000..b073fe192 --- /dev/null +++ b/modules/tools/comp_configure.go @@ -0,0 +1,589 @@ +package tools + +import ( + "fmt" + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/core/cbase" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" + "sync" +) + +const ( + game_global = "game_global.json" //全局配置表 + game_initial = "game_initial.json" //初始化表 + game_gamecolor = "game_gamecolor.json" //颜色表 + game_playerlv = "game_playerlv.json" //玩家等级 + game_facemod = "game_facemod.json" //形象配置表 + game_drop = "game_drop.json" //掉落 + new_hero = "game_hero.json" + // 签到 + game_signreset = "game_signreset.json" + game_sign = "game_sign.json" + + game_item = "game_item.json" + game_vip = "game_vip.json" + + game_equip = "game_equip.json" //装备信息表 + + game_lottery = "game_lottery.json" +) + +///配置管理基础组件 +type MCompConfigure struct { + cbase.ModuleCompBase + hlock sync.RWMutex + _dropMap map[int32][]*cfg.GameDropData // 掉落表 key 是DiropId + _sign map[int32]*cfg.GameSignData + + _group map[int64][]int32 // key 小组ID value cid + + // 类型为1 的数据 该大组中的小组为权重掉落,必定从N个小组中随机出1个小组 + _lotteryType1 map[int32][]int32 // key 大组ID value cid + // 类型为2 的数据 有多个小组ID + _lotteryType2 map[int32][]int32 // key 大组ID value 小组ID + // 小组类型为1 + _groupType1 map[int64][]int32 //value cid + // 小组类型为2 + _groupType2 map[int64][]int32 //value cid + Btype map[int32]int32 + Stype map[int64]int32 // subtype + SNum map[int64]int32 // 小组产出数量 +} + +//组件初始化接口 +func (this *MCompConfigure) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + err = this.ModuleCompBase.Init(service, module, comp, options) + err = this.LoadConfigure(game_global, cfg.NewGameGlobal) + err = this.LoadConfigure(game_initial, cfg.NewGameInitial) + err = this.LoadConfigure(game_gamecolor, cfg.NewGameGameColor) + err = this.LoadConfigure(new_hero, cfg.NewGameHero) + err = this.LoadConfigure(game_playerlv, cfg.NewGamePlayerlv) + err = this.LoadConfigure(game_facemod, cfg.NewGameFacemod) + err = this.LoadConfigure(game_signreset, cfg.NewGameSignReset) + err = this.LoadConfigure(game_equip, cfg.NewGameEquip) + //err = this.LoadConfigure(game_sign, cfg.NewGameSign) + err = this.LoadConfigure(game_item, cfg.NewGameItem) + err = this.LoadConfigure(game_vip, cfg.NewGameVip) + err = this.LoadConfigure(game_lottery, cfg.NewGameLottery) + this._dropMap = make(map[int32][]*cfg.GameDropData, 0) + this._sign = make(map[int32]*cfg.GameSignData, 0) + configure.RegisterConfigure(game_drop, cfg.NewGameDrop, this.LoadDropData) + configure.RegisterConfigure(game_sign, cfg.NewGameSign, this.LoadSignData) + + this._group = make(map[int64][]int32, 0) + this._lotteryType1 = make(map[int32][]int32, 0) + this._lotteryType2 = make(map[int32][]int32, 0) + this._groupType1 = make(map[int64][]int32, 0) + this._groupType2 = make(map[int64][]int32, 0) + this.Btype = make(map[int32]int32, 0) + this.Stype = make(map[int64]int32, 0) + this.SNum = make(map[int64]int32, 0) + configure.RegisterConfigure(game_lottery, cfg.NewGameLottery, this.LoadGroupData) + + return +} + +func (this *MCompConfigure) LoadGroupData() { + if v, err := this.GetConfigure(game_lottery); err == nil { + if configure, ok := v.(*cfg.GameLottery); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + this._group = make(map[int64][]int32, 0) + this._lotteryType1 = make(map[int32][]int32, 0) + this._lotteryType2 = make(map[int32][]int32, 0) + this._groupType1 = make(map[int64][]int32, 0) + this._groupType2 = make(map[int64][]int32, 0) + this.Btype = make(map[int32]int32, 0) + this.Stype = make(map[int64]int32, 0) + this.SNum = make(map[int64]int32, 0) + for _, value := range configure.GetDataList() { + key := int64(value.Lotteryid)<<31 + int64(value.Groupid) + this._group[key] = append(this._group[key], value.Id) + + if _, ok := this.Btype[value.Lotteryid]; !ok { + this.Btype[value.Lotteryid] = value.Type + } + + if _, ok := this.Stype[key]; !ok { + this.Stype[key] = value.Subtype + } + if _, ok := this.SNum[key]; !ok { + this.SNum[key] = value.Groupnum + } + if this.Btype[value.Lotteryid] == 1 { + this._lotteryType1[value.Lotteryid] = append(this._lotteryType1[value.Lotteryid], value.Id) + } else if this.Btype[value.Lotteryid] == 2 { + this._lotteryType2[value.Lotteryid] = append(this._lotteryType2[value.Lotteryid], value.Id) + } + + if this.Stype[key] == 1 { // 小组ID为1 + this._groupType1[key] = append(this._groupType1[key], value.Id) + } else if this.Stype[key] == 2 { + this._groupType2[key] = append(this._groupType2[key], value.Id) + } + } + return + } + } else { + log.Errorf("get LoadGroupData conf err:%v", err) + } + return +} + +// 实际掉落逻辑 (传入 掉落组ID vip等级 玩家等级 返回获得的道具) +func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) { + + if _, ok := this._lotteryType1[lotteryId]; !ok { + if _, ok := this._lotteryType2[lotteryId]; !ok { + fmt.Printf("not found config lotterId:%d", lotteryId) + return + } + } + // 优先校验大组ID 的类型 + if this.Btype[lotteryId] == 1 { // 该大组中的小组为权重掉落,必定从N个小组中随机出1个小组 + var ( + szW []int32 // 权重数组 + szID []int32 // 小组ID 数组 + groupID int32 + gourp map[int32]int32 // key 小组ID value 权重 + ) + + gourp = make(map[int32]int32, 0) + // 随机小组id + for _, v := range this._lotteryType1[lotteryId] { + if _data := this.GetLotterConfById(v); _data != nil { + if (_data.Playerlvmax == 0 || _data.Playerlvmin <= lv && lv <= _data.Playerlvmax) && (_data.VIPmax == 0 || _data.VIPmin <= vipLv && vipLv <= _data.VIPmax) { // 过滤等级等条件 + if _, ok := gourp[_data.Groupid]; !ok { + gourp[_data.Groupid] = _data.Groupwt // 小组ID 权重赋值 + szW = append(szW, _data.Groupwt) + szID = append(szID, _data.Groupid) + } + } + } + } + + groupID = szID[comm.GetRandW(szW)] // 获得小组ID + fmt.Printf("大组类型为1的,获得小组ID :%d,dropID:%d", groupID, lotteryId) + key := int64(lotteryId)<<31 + int64(groupID) + // 小组ID 类型判断 + if this.Stype[key] == 1 { // 该小组的道具为权重掉落,必定从N个道具中随机出1个道具 + for i := 0; i < int(this.SNum[key]); i++ { + szW = make([]int32, 0) + szID = make([]int32, 0) + gourp = make(map[int32]int32, 0) + for _, v := range this._groupType1[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _, ok := gourp[_data.Groupid]; !ok { + szW = append(szW, _data.Itemwt) + szID = append(szID, _data.Id) + } + } + } + index := comm.GetRandW(szW) + _data := this.GetLotterConfById(szID[index]) + fmt.Printf("获得最终的道具 :%d", _data.Id) + count := comm.GetRandNum(_data.Min, _data.Max) + // 随机获得的数量 + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, + }) + } + return + } else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) + for _, v := range this._groupType2[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + fmt.Printf("大组类型1小组类型2获得道具 :%v, 该道具Cid:%d", _data.Itemid, v) + if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max) + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, // 小组产出数量 + }) + } + } + } + return + } + } else if this.Btype[lotteryId] == 2 { // 该大组中的小组为概率掉落,每个小组都会随机一次是否会掉落(单位为千分比) + // 每个小组id 都随机取一次 + var szGroupID []int32 // 获得的权重数组 + gourp := make(map[int32]*cfg.GameLotteryData, 0) // key 小组ID value 权重 + for _, v := range this._lotteryType2[lotteryId] { + if _data := this.GetLotterConfById(v); _data != nil { + if (_data.Playerlvmax == 0 || _data.Playerlvmin <= lv && lv <= _data.Playerlvmax) && (_data.VIPmax == 0 || _data.VIPmin <= vipLv && vipLv <= _data.VIPmax) { // 过滤等级等条件 + if _, ok := gourp[_data.Groupid]; !ok { + gourp[_data.Groupid] = _data // 小组ID 权重赋值 + } + } + } + } + + // 类型为2 可能会同时获得多个组id + for k, v := range gourp { + fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id) + if v.Itemwt >= comm.GetRandNum(0, 1000) { // 命中 + szGroupID = append(szGroupID, k) + key := int64(lotteryId)<<31 + int64(k) + if this.Stype[key] == 1 { // 随机一组数据 + for i := 0; i < int(this.SNum[key]); i++ { + szW := make([]int32, 0) + szID := make([]int32, 0) + gourp := make(map[int32]int32, 0) + for _, v := range this._groupType1[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + if _, ok := gourp[_data.Groupid]; !ok { + szW = append(szW, _data.Itemwt) + szID = append(szID, _data.Id) + } + } + } + index := comm.GetRandW(szW) + _data := this.GetLotterConfById(szID[index]) + fmt.Printf("获得最终的道具 :%d", _data.Id) + count := comm.GetRandNum(_data.Min, _data.Max) + // 随机获得的数量 + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, + }) + } + } else if this.Stype[key] == 2 { + for _, v := range this._groupType2[key] { + if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 + fmt.Printf("大组类型2小组类型2获得道具 :%v,该道具Cid:%d", _data.Itemid, v) + if _data.Itemwt >= comm.GetRandNum(1, 1000) { // 命中 + count := comm.GetRandNum(_data.Min, _data.Max) + items = append(items, &cfg.Gameatn{ + A: _data.Itemid.A, + T: _data.Itemid.T, + N: _data.Itemid.N * count, // 小组产出数量 + }) + } + } + } + } + } + } + } + return +} + +func (this *MCompConfigure) LoadConfigure(name string, fn interface{}) (err error) { + return configure.RegisterConfigure(name, fn, nil) +} + +//加载一个配置文件 +func (this *MCompConfigure) LoadDropData() { + if v, err := this.GetConfigure(game_drop); err == nil { + if configure, ok := v.(*cfg.GameDrop); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + for _, value := range configure.GetDataList() { + + if value.Condition == 0 { + this._dropMap[value.Dropid] = append(this._dropMap[value.Dropid], value) + } else { + key := value.Condition + key = value.Dropid*100 + key + this._dropMap[key] = append(this._dropMap[key], value) + for _, v1 := range this._dropMap[value.Dropid] { + this._dropMap[key] = append(this._dropMap[key], v1) + } + } + } + return + } + } else { + log.Errorf("get game_pagoda conf err:%v", err) + } + return +} + +//加载多个配置文件 +func (this *MCompConfigure) LoadMultiConfigure(confs map[string]interface{}) (err error) { + for k, v := range confs { + err = configure.RegisterConfigure(k, v, nil) + if err != nil { + log.Errorf("配置文件:%s解析失败!", k) + break + } + } + return +} + +//读取配置数据 +func (this *MCompConfigure) GetConfigure(name string) (v interface{}, err error) { + return configure.GetConfigure(name) +} + +//全局配置 +func (this *MCompConfigure) GetGlobalConf() *cfg.GameGlobalData { + var ( + configure *cfg.GameGlobal + ok bool + ) + if v, err := this.GetConfigure(game_global); err != nil { + log.Errorf("get global conf err:%v", err) + return nil + } else { + if configure, ok = v.(*cfg.GameGlobal); !ok { + log.Errorf("%T no is *cfg.Game_global", v) + return nil + } + } + return configure.GetDataList()[0] // 返回对象信息 +} + +func (this *MCompConfigure) GetGlobalInitConf() (configure *cfg.GameInitial, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_initial); err == nil { + if configure, ok = v.(*cfg.GameInitial); !ok { + err = fmt.Errorf("%T no is *cfg.Game_comInitial", v) + return + } + } + return +} + +// 主角等级经验配置列表 +func (this *MCompConfigure) GetPlayerlvConfList() (list []*cfg.GamePlayerlvData) { + if v, err := this.GetConfigure(game_playerlv); err != nil { + return + } else { + if configure, ok := v.(*cfg.GamePlayerlv); !ok { + err = fmt.Errorf("%T no is *cfg.Game_playerlv", v) + return + } else { + if configure != nil { + list = configure.GetDataList() + } + } + } + return +} + +// 玩家等级经验配置表 +func (this *MCompConfigure) GetPlayerlvConf(lv int32) (data *cfg.GamePlayerlvData) { + if v, err := this.GetConfigure(game_playerlv); err != nil { + return + } else { + if configure, ok := v.(*cfg.GamePlayerlv); !ok { + err = fmt.Errorf("%T no is *cfg.Game_playerlv", v) + return + } else { + if configure != nil { + data = configure.GetDataMap()[lv] + } + } + } + return +} + +// 玩家形象预设配置 +func (this *MCompConfigure) GetPlayerFigureConf() (list []*cfg.GameFacemodData) { + if v, err := this.GetConfigure(game_facemod); err != nil { + return + } else { + if configure, ok := v.(*cfg.GameFacemod); !ok { + err = fmt.Errorf("%T no is *cfg.Game_playerlv", v) + return + } else { + if configure != nil { + list = configure.GetDataList() + } + } + } + return +} + +func (this *MCompConfigure) GetDropData(dropId int32) (data []*cfg.GameDropData) { + data = this._dropMap[dropId] + return +} + +func (this *MCompConfigure) GetDropReward(dropId int32) (result []*cfg.Gameatn) { + result = make([]*cfg.Gameatn, 0) + + data := this.GetDropData(dropId) + if len(data) == 0 { + return + } + szW := make([]int32, 0) + for _, value := range data { + szW = append(szW, value.P) + } + index := comm.GetRandW(szW) + result = append(result, data[index].Prize...) + + return +} + +func (this *MCompConfigure) GetColor(id int32) (item *cfg.GameGameColorData, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_gamecolor); err == nil { + return + } else { + if item, ok = v.(*cfg.GameGameColor).GetDataMap()[id]; !ok { + err = fmt.Errorf("on found color:%d", id) + } + } + return +} + +// 获取英雄原始星级 +func (this *MCompConfigure) GetHeroConfig(heroCfgId string) *cfg.GameHeroData { + if v, err := this.GetConfigure(new_hero); err == nil { + if configure, ok := v.(*cfg.GameHero); ok { + if v, ok := configure.GetDataMap()[heroCfgId]; ok { + return v + } + } + } + return nil +} + +// 获取英雄原始星级 +func (this *MCompConfigure) GetHeroConfigStar(heroCfgId string) int32 { + if v, err := this.GetConfigure(new_hero); err == nil { + if configure, ok := v.(*cfg.GameHero); ok { + if v, ok := configure.GetDataMap()[heroCfgId]; ok { + return v.Star + } + } + } + return 0 +} + +// 获取签到信息 +func (this *MCompConfigure) GetSignConf(day, group int32) *cfg.GameSignData { + if v, ok := this._sign[day<<8+group]; ok { + return v + } + return nil +} + +// 获取组id +func (this *MCompConfigure) GetSignResetConf(id int32) int32 { + if v, err := this.GetConfigure(game_signreset); err == nil { + if configure, ok := v.(*cfg.GameSignReset); ok { + if configure != nil { + return configure.Get(id).Groups + } + } + } + return -1 +} +func (this *MCompConfigure) LoadSignData() { + if v, err := this.GetConfigure(game_sign); err == nil { + if configure, ok := v.(*cfg.GameSign); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + for _, value := range configure.GetDataList() { + this._sign[value.Day<<8+value.Group] = value + } + return + } + } else { + log.Errorf("get game_sign conf err:%v", err) + } + return +} +func (this *MCompConfigure) GetHeroConfigData() (data []*cfg.GameHeroData) { + if v, err := this.GetConfigure(new_hero); err == nil { + if configure, ok := v.(*cfg.GameHero); ok { + return configure.GetDataList() + } + } + return nil +} + +//读取物品配置 +func (this *MCompConfigure) GetItemConfigureData(id string) (item *cfg.GameItemData, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_item); err != nil { + log.Errorf("err:%v", err) + return + } else { + if item, ok = v.(*cfg.GameItem).GetDataMap()[id]; !ok { + err = fmt.Errorf("no found item:%s configure", id) + log.Errorf("err:%v", err) + return + } + } + return +} + +func (this *MCompConfigure) GetVipConfigureData(lv int32) (item *cfg.GameVipData) { + + if v, err := this.GetConfigure(game_vip); err == nil { + + if configure, ok := v.(*cfg.GameVip); ok { + item = configure.Get(lv) + } + } + + return +} + +func (this *MCompConfigure) GetItemConfigureByType(useType int32) (item []*cfg.GameItemData) { + if v, err := this.GetConfigure(game_item); err == nil { + for _, v1 := range v.(*cfg.GameItem).GetDataMap() { + if v1.Usetype == useType { + item = append(item, v1) + } + } + } + return +} +func (this *MCompConfigure) GetEquipmentConfigureById(equipmentId string) (configure *cfg.GameEquipData) { + + if v, err := this.GetConfigure(game_equip); err == nil { + configure = v.(*cfg.GameEquip).Get(equipmentId) + return + } + return +} +func (this *MCompConfigure) GetAllItemConfigure() (item []*cfg.GameItemData) { + if v, err := this.GetConfigure(game_item); err == nil { + for _, v1 := range v.(*cfg.GameItem).GetDataMap() { + item = append(item, v1) + } + } + return +} + +func (this *MCompConfigure) GetAllEquipmentConfigure() (configure []*cfg.GameEquipData) { + + if v, err := this.GetConfigure(game_equip); err == nil { + for _, v1 := range v.(*cfg.GameEquip).GetDataMap() { + configure = append(configure, v1) + } + return + } + return +} + +func (this *MCompConfigure) GetLotterConfById(id int32) (data *cfg.GameLotteryData) { + if v, err := this.GetConfigure(game_lottery); err == nil { + if configure, ok := v.(*cfg.GameLottery); ok { + return configure.Get(id) + } + } + return +} diff --git a/modules/tools/module.go b/modules/tools/module.go new file mode 100644 index 000000000..11d649801 --- /dev/null +++ b/modules/tools/module.go @@ -0,0 +1,50 @@ +package tools + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/modules" + cfg "go_dreamfactory/sys/configure/structs" +) + +func NewModule() core.IModule { + m := new(Tools) + return m +} + +type Tools struct { + modules.ModuleBase + configure *MCompConfigure +} + +//模块名 +func (this *Tools) GetType() core.M_Modules { + return comm.ModuleTools +} + +//模块初始化接口 注册用户创建角色事件 +func (this *Tools) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { + err = this.ModuleBase.Init(service, module, options) + return +} + +//模块初始化接口 注册用户创建角色事件 +func (this *Tools) Start() (err error) { + err = this.ModuleBase.Start() + return +} + +//装备组件 +func (this *Tools) OnInstallComp() { + this.ModuleBase.OnInstallComp() + this.configure = this.RegisterComp(new(MCompConfigure)).(*MCompConfigure) +} + +func (this *Tools) GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) { + items = this.configure.GetGroupDataByLottery(lotteryId, vipLv, lv) + return +} + +func (this *Tools) GetGlobalConf() *cfg.GameGlobalData { + return this.configure.GetGlobalConf() +} diff --git a/modules/user/model_expand.go b/modules/user/model_expand.go index 4e156e495..e3c6af25c 100644 --- a/modules/user/model_expand.go +++ b/modules/user/model_expand.go @@ -44,7 +44,7 @@ func (this *ModelExpand) GetUserExpand(uid string) (result *pb.DBUserExpand, err } } else { if err = this.Get(uid, result); err != nil && mongo.ErrNoDocuments == err { - globalConf := this.module.configure.GetGlobalConf() + globalConf := this.module.ModuleTools.GetGlobalConf() initUpdate := map[string]interface{}{ "uid": uid, "modifynameCount": 1, //修改名称1次 diff --git a/modules/user/module.go b/modules/user/module.go index 63afa0af7..c920bcac8 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -85,7 +85,7 @@ func (this *User) Start() (err error) { this.service.RegisterFunctionName(Rpc_QueryUser, this.RpcQueryUser) //date 3.10 this.service.RegisterFunctionName(Rpc_CreateSociaty, this.RpcCreateSociaty) - this.globalConf = this.configure.GetGlobalConf() + this.globalConf = this.ModuleTools.GetGlobalConf() if this.globalConf == nil { err = errors.New("global config not found") } @@ -479,7 +479,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha return } } - ggd := this.configure.GetGlobalConf() + ggd := this.ModuleTools.GetGlobalConf() if ggd == nil { return } @@ -808,7 +808,7 @@ func (this *User) recoverUserPs(uid string) { if u == nil { return } - ggd := this.configure.GetGlobalConf() + ggd := this.ModuleTools.GetGlobalConf() if ggd == nil { return } diff --git a/modules/viking/module.go b/modules/viking/module.go index 46974d199..0e6d5c56a 100644 --- a/modules/viking/module.go +++ b/modules/viking/module.go @@ -256,7 +256,7 @@ func (this *Viking) AutoBattleOver(session comm.IUserSession, Report *pb.BattleR atno = make([]*pb.UserAtno, 0) conf := this.configure.GetVikingBossConfigData(bossId, difficulty) tasks := make([]*comm.TaskParam, 0) - // costRes := this.configure.GetGlobalConf().VikingExpeditionCos + // costRes := this.ModuleTools.GetGlobalConf().VikingExpeditionCos // if costRes == nil { // code = pb.ErrorCode_ConfigNoFound // return diff --git a/modules/worldtask/model_worldtask.go b/modules/worldtask/model_worldtask.go index 3a3041dfd..397da73c1 100644 --- a/modules/worldtask/model_worldtask.go +++ b/modules/worldtask/model_worldtask.go @@ -329,9 +329,9 @@ func (this *ModelWorldtask) filterTask(userLv, des int32, wt *pb.DBWorldtask) (t func (this *ModelWorldtask) randomTask(userLv, des int32, wt *pb.DBWorldtask) (taskIds []int32) { var num int32 if des == 1 { - num = this.moduleWorldtask.configure.GetGlobalConf().DailyNum + num = this.moduleWorldtask.ModuleTools.GetGlobalConf().DailyNum } else if des == 4 { - num = this.moduleWorldtask.configure.GetGlobalConf().WeekNum + num = this.moduleWorldtask.ModuleTools.GetGlobalConf().WeekNum } tIds := this.filterTask(userLv, des, wt) diff --git a/services/worker/main.go b/services/worker/main.go index 49a5ccb78..c976ff828 100644 --- a/services/worker/main.go +++ b/services/worker/main.go @@ -39,6 +39,7 @@ import ( "go_dreamfactory/modules/sociaty" "go_dreamfactory/modules/sys" "go_dreamfactory/modules/task" + "go_dreamfactory/modules/tools" "go_dreamfactory/modules/troll" "go_dreamfactory/modules/user" "go_dreamfactory/modules/viking" @@ -115,6 +116,7 @@ func main() { dispatch.NewModule(), atlas.NewModule(), practice.NewModule(), + tools.NewModule(), ) } From 5cac675495de327a6f747cb8fdd3988c82855e8d Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 13 Apr 2023 18:41:27 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E9=98=9F=E9=95=BF=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/api_info.go | 3 ++- modules/pagoda/api_challengeover.go | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/hero/api_info.go b/modules/hero/api_info.go index 389298fc8..582d38da9 100644 --- a/modules/hero/api_info.go +++ b/modules/hero/api_info.go @@ -42,11 +42,12 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.HeroInfoReq) (code if err = dbModel.GetListObj(uid, v, hero); err == nil { rsp.Base = append(rsp.Base, hero) } else { - this.module.Errorf("err:%v", err) + this.module.Errorf("err:%v,heroid:%s,uid:%s", err, v, uid) } } } } + rsp.Uid = uid session.SendMsg(string(this.module.GetType()), HeroSubTypeInfo, rsp) return diff --git a/modules/pagoda/api_challengeover.go b/modules/pagoda/api_challengeover.go index 08b65df54..6bb44a27d 100644 --- a/modules/pagoda/api_challengeover.go +++ b/modules/pagoda/api_challengeover.go @@ -107,6 +107,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal // 记录爬塔明细数据 if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { + leadpos := req.Report.Info.Redflist[0].Leadpos szLine := make([]*pb.LineUp, 0) for _, v := range req.Report.Info.Redflist[0].Team { if v != nil { @@ -128,8 +129,8 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal Nickname: userinfo.Name, Icon: "", Lv: userinfo.Lv, - Leadpos: 0, - Line: szLine, //[]*pb.LineUp{}, + Leadpos: leadpos, + Line: szLine, } costTime = newData.CostTime // 数据写到跨服中