#43369 子任务 【梦工场系统】 <-后端-> 驯龙养成道具提升后端逻辑修改

This commit is contained in:
meixiongfeng 2024-01-09 18:56:24 +08:00
parent 67d41e42f2
commit 1bb72317a3
15 changed files with 460 additions and 252 deletions

View File

@ -8,7 +8,12 @@
"text": "酒吧新人" "text": "酒吧新人"
}, },
"hero": 33003, "hero": 33003,
"iconimg": "xxtx_js_33003",
"img": "tx_js_33003", "img": "tx_js_33003",
"name": {
"key": "consume_consume_hero_name_01",
"text": "胡德"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_01", "key": "consume_consume_hero_intr_01",
"text": "胡德的毒苹果酒吧桌游卡" "text": "胡德的毒苹果酒吧桌游卡"
@ -21,6 +26,7 @@
"key": "consume_consume_hero_skilltxt_01", "key": "consume_consume_hero_skilltxt_01",
"text": "随机消除7个方块" "text": "随机消除7个方块"
}, },
"get": 107,
"consume": [], "consume": [],
"skilltype": 1, "skilltype": 1,
"skillload": 6, "skillload": 6,
@ -45,7 +51,12 @@
"text": "酒吧新人" "text": "酒吧新人"
}, },
"hero": 44003, "hero": 44003,
"iconimg": "xxtx_js_44003",
"img": "tx_js_44003", "img": "tx_js_44003",
"name": {
"key": "consume_consume_hero_name_02",
"text": "匹诺曹"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_02", "key": "consume_consume_hero_intr_02",
"text": "匹诺曹的毒苹果酒吧桌游卡" "text": "匹诺曹的毒苹果酒吧桌游卡"
@ -58,6 +69,7 @@
"key": "consume_consume_hero_skilltxt_02", "key": "consume_consume_hero_skilltxt_02",
"text": "消除中间的一列宝石" "text": "消除中间的一列宝石"
}, },
"get": 107,
"consume": [], "consume": [],
"skilltype": 1, "skilltype": 1,
"skillload": 7, "skillload": 7,
@ -82,7 +94,12 @@
"text": "酒吧新人" "text": "酒吧新人"
}, },
"hero": 43004, "hero": 43004,
"iconimg": "xxtx_js_43004",
"img": "tx_js_43004", "img": "tx_js_43004",
"name": {
"key": "consume_consume_hero_name_03",
"text": "姜饼人"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_03", "key": "consume_consume_hero_intr_03",
"text": "姜饼人的毒苹果酒吧桌游卡" "text": "姜饼人的毒苹果酒吧桌游卡"
@ -95,6 +112,7 @@
"key": "consume_consume_hero_skilltxt_03", "key": "consume_consume_hero_skilltxt_03",
"text": "将随机6个宝石染成当前盘面上颜色最多的宝石" "text": "将随机6个宝石染成当前盘面上颜色最多的宝石"
}, },
"get": 107,
"consume": [], "consume": [],
"skilltype": 1, "skilltype": 1,
"skillload": 7, "skillload": 7,
@ -119,7 +137,12 @@
"text": "老手" "text": "老手"
}, },
"hero": 13004, "hero": 13004,
"iconimg": "xxtx_js_13004",
"img": "tx_js_13004", "img": "tx_js_13004",
"name": {
"key": "consume_consume_hero_name_04",
"text": "法夸德勋爵"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_04", "key": "consume_consume_hero_intr_04",
"text": "法夸德勋爵的毒苹果酒吧桌游卡" "text": "法夸德勋爵的毒苹果酒吧桌游卡"
@ -132,6 +155,7 @@
"key": "consume_consume_hero_skilltxt_04", "key": "consume_consume_hero_skilltxt_04",
"text": "选中一个方块,消除以该方块为中心,两条斜线上的所有方块(选中的方块也会被消除)。" "text": "选中一个方块,消除以该方块为中心,两条斜线上的所有方块(选中的方块也会被消除)。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -162,7 +186,12 @@
"text": "老手" "text": "老手"
}, },
"hero": 13005, "hero": 13005,
"iconimg": "xxtx_js_13005",
"img": "tx_js_13005", "img": "tx_js_13005",
"name": {
"key": "consume_consume_hero_name_05",
"text": "大大"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_05", "key": "consume_consume_hero_intr_05",
"text": "大大的毒苹果酒吧桌游卡" "text": "大大的毒苹果酒吧桌游卡"
@ -175,6 +204,7 @@
"key": "consume_consume_hero_skilltxt_05", "key": "consume_consume_hero_skilltxt_05",
"text": "随机用炸弹代替一个方块,并直接引爆炸弹(炸弹是特殊方块,这里就是用炸弹代替,然后直接消掉该炸弹)。" "text": "随机用炸弹代替一个方块,并直接引爆炸弹(炸弹是特殊方块,这里就是用炸弹代替,然后直接消掉该炸弹)。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -205,7 +235,12 @@
"text": "老手" "text": "老手"
}, },
"hero": 15002, "hero": 15002,
"iconimg": "xxtx_js_15002",
"img": "tx_js_15002", "img": "tx_js_15002",
"name": {
"key": "consume_consume_hero_name_06",
"text": "船长"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_06", "key": "consume_consume_hero_intr_06",
"text": "船长的毒苹果酒吧桌游卡" "text": "船长的毒苹果酒吧桌游卡"
@ -218,6 +253,7 @@
"key": "consume_consume_hero_skilltxt_06", "key": "consume_consume_hero_skilltxt_06",
"text": "指定盘面上2中颜色最多的方块将其中一种颜色全部集中到右方另一种全部集中到左方然后执行消除。" "text": "指定盘面上2中颜色最多的方块将其中一种颜色全部集中到右方另一种全部集中到左方然后执行消除。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -248,7 +284,12 @@
"text": "老手" "text": "老手"
}, },
"hero": 24001, "hero": 24001,
"iconimg": "xxtx_js_24001",
"img": "tx_js_24001", "img": "tx_js_24001",
"name": {
"key": "consume_consume_hero_name_07",
"text": "警长"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_07", "key": "consume_consume_hero_intr_07",
"text": "警长的毒苹果酒吧桌游卡" "text": "警长的毒苹果酒吧桌游卡"
@ -261,6 +302,7 @@
"key": "consume_consume_hero_skilltxt_07", "key": "consume_consume_hero_skilltxt_07",
"text": "使用技能后,玩家下一次行动不会消耗步骤,如果下一次行动消除了一组方块,那么会直接消除该组方块左右三行/三列区域内的所有方块。" "text": "使用技能后,玩家下一次行动不会消耗步骤,如果下一次行动消除了一组方块,那么会直接消除该组方块左右三行/三列区域内的所有方块。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -291,7 +333,12 @@
"text": "靠谱的家伙" "text": "靠谱的家伙"
}, },
"hero": 25001, "hero": 25001,
"iconimg": "xxtx_js_25001",
"img": "tx_js_25001", "img": "tx_js_25001",
"name": {
"key": "consume_consume_hero_name_08",
"text": "阿宝"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_08", "key": "consume_consume_hero_intr_08",
"text": "阿宝的毒苹果酒吧桌游卡" "text": "阿宝的毒苹果酒吧桌游卡"
@ -304,6 +351,7 @@
"key": "consume_consume_hero_skilltxt_08", "key": "consume_consume_hero_skilltxt_08",
"text": "随机选择2中颜色然后消除盘面上所有对应颜色的方块" "text": "随机选择2中颜色然后消除盘面上所有对应颜色的方块"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -334,7 +382,12 @@
"text": "靠谱的家伙" "text": "靠谱的家伙"
}, },
"hero": 35001, "hero": 35001,
"iconimg": "xxtx_js_35001",
"img": "tx_js_35001", "img": "tx_js_35001",
"name": {
"key": "consume_consume_hero_name_09",
"text": "师父"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_09", "key": "consume_consume_hero_intr_09",
"text": "师父的毒苹果酒吧桌游卡" "text": "师父的毒苹果酒吧桌游卡"
@ -347,6 +400,7 @@
"key": "consume_consume_hero_skilltxt_09", "key": "consume_consume_hero_skilltxt_09",
"text": "选择一种颜色所有对应颜色的棋子随机变成象棋里的马并按照对应的象棋规则走3次被该方块踩中的方块消除然后对应方块也消除。" "text": "选择一种颜色所有对应颜色的棋子随机变成象棋里的马并按照对应的象棋规则走3次被该方块踩中的方块消除然后对应方块也消除。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -377,7 +431,12 @@
"text": "靠谱的家伙" "text": "靠谱的家伙"
}, },
"hero": 44004, "hero": 44004,
"iconimg": "xxtx_js_44004",
"img": "tx_js_44004", "img": "tx_js_44004",
"name": {
"key": "consume_consume_hero_name_10",
"text": "骇客蛛"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_10", "key": "consume_consume_hero_intr_10",
"text": "骇客蛛的毒苹果酒吧桌游卡" "text": "骇客蛛的毒苹果酒吧桌游卡"
@ -390,6 +449,7 @@
"key": "consume_consume_hero_skilltxt_10", "key": "consume_consume_hero_skilltxt_10",
"text": "选中不相连的3列一起向左/向右复制这3列的宝石(覆盖原方块)" "text": "选中不相连的3列一起向左/向右复制这3列的宝石(覆盖原方块)"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -420,7 +480,12 @@
"text": "靠谱的家伙" "text": "靠谱的家伙"
}, },
"hero": 44006, "hero": 44006,
"iconimg": "xxtx_js_44006",
"img": "tx_js_44006", "img": "tx_js_44006",
"name": {
"key": "consume_consume_hero_name_11",
"text": "悍娇虎"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_11", "key": "consume_consume_hero_intr_11",
"text": "悍娇虎的毒苹果酒吧桌游卡" "text": "悍娇虎的毒苹果酒吧桌游卡"
@ -433,6 +498,7 @@
"key": "consume_consume_hero_skilltxt_11", "key": "consume_consume_hero_skilltxt_11",
"text": "选中一个方块,然后消除盘面上所有相同颜色的方块。" "text": "选中一个方块,然后消除盘面上所有相同颜色的方块。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -463,7 +529,12 @@
"text": "身怀绝技之人" "text": "身怀绝技之人"
}, },
"hero": 45003, "hero": 45003,
"iconimg": "xxtx_js_45003",
"img": "tx_js_45003", "img": "tx_js_45003",
"name": {
"key": "consume_consume_hero_name_12",
"text": "盖"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_12", "key": "consume_consume_hero_intr_12",
"text": "盖的毒苹果酒吧桌游卡" "text": "盖的毒苹果酒吧桌游卡"
@ -476,6 +547,7 @@
"key": "consume_consume_hero_skilltxt_12", "key": "consume_consume_hero_skilltxt_12",
"text": "随机将盘面内8个方块变为“烟火”并从消除通过该技能生成的4个烟火。" "text": "随机将盘面内8个方块变为“烟火”并从消除通过该技能生成的4个烟火。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -506,7 +578,12 @@
"text": "身怀绝技之人" "text": "身怀绝技之人"
}, },
"hero": 34007, "hero": 34007,
"iconimg": "xxtx_js_34007",
"img": "tx_js_34007", "img": "tx_js_34007",
"name": {
"key": "consume_consume_hero_name_13",
"text": "菲奥娜"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_13", "key": "consume_consume_hero_intr_13",
"text": "菲奥娜的毒苹果酒吧桌游卡" "text": "菲奥娜的毒苹果酒吧桌游卡"
@ -519,6 +596,7 @@
"key": "consume_consume_hero_skilltxt_13", "key": "consume_consume_hero_skilltxt_13",
"text": "随机标记三个处于最左边的方块,然后消除这三个方块所在的三行的所有方块。" "text": "随机标记三个处于最左边的方块,然后消除这三个方块所在的三行的所有方块。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -549,7 +627,12 @@
"text": "身怀绝技之人" "text": "身怀绝技之人"
}, },
"hero": 45004, "hero": 45004,
"iconimg": "xxtx_js_45004",
"img": "tx_js_45004", "img": "tx_js_45004",
"name": {
"key": "consume_consume_hero_name_14",
"text": "穿靴子的猫"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_14", "key": "consume_consume_hero_intr_14",
"text": "穿靴子的猫的毒苹果酒吧桌游卡" "text": "穿靴子的猫的毒苹果酒吧桌游卡"
@ -562,6 +645,7 @@
"key": "consume_consume_hero_skilltxt_14", "key": "consume_consume_hero_skilltxt_14",
"text": "选中一个方块,然后消除改方块行列上的所有宝石。" "text": "选中一个方块,然后消除改方块行列上的所有宝石。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -592,7 +676,12 @@
"text": "传奇牌手!" "text": "传奇牌手!"
}, },
"hero": 45001, "hero": 45001,
"iconimg": "xxtx_js_45001",
"img": "tx_js_45001", "img": "tx_js_45001",
"name": {
"key": "consume_consume_hero_name_15",
"text": "乌龟大师"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_15", "key": "consume_consume_hero_intr_15",
"text": "乌龟大师的毒苹果酒吧桌游卡" "text": "乌龟大师的毒苹果酒吧桌游卡"
@ -605,6 +694,7 @@
"key": "consume_consume_hero_skilltxt_15", "key": "consume_consume_hero_skilltxt_15",
"text": "选择一种宝石颜色,场内所有对应颜色左右上下的宝石均变成改颜色。" "text": "选择一种宝石颜色,场内所有对应颜色左右上下的宝石均变成改颜色。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -635,7 +725,12 @@
"text": "传奇牌手!" "text": "传奇牌手!"
}, },
"hero": 34006, "hero": 34006,
"iconimg": "xxtx_js_34006",
"img": "tx_js_34006", "img": "tx_js_34006",
"name": {
"key": "consume_consume_hero_name_16",
"text": "冰霜杰克"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_16", "key": "consume_consume_hero_intr_16",
"text": "冰霜杰克的毒苹果酒吧桌游卡" "text": "冰霜杰克的毒苹果酒吧桌游卡"
@ -648,6 +743,7 @@
"key": "consume_consume_hero_skilltxt_16", "key": "consume_consume_hero_skilltxt_16",
"text": "随机选中一种颜色的宝石首尾相连,连线路上的宝石也变成该颜色,然后随机引爆一个泥巴方块。" "text": "随机选中一种颜色的宝石首尾相连,连线路上的宝石也变成该颜色,然后随机引爆一个泥巴方块。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",
@ -678,7 +774,12 @@
"text": "传奇牌手!" "text": "传奇牌手!"
}, },
"hero": 35003, "hero": 35003,
"iconimg": "xxtx_js_35003",
"img": "tx_js_35003", "img": "tx_js_35003",
"name": {
"key": "consume_consume_hero_name_17",
"text": "漆黑"
},
"intr": { "intr": {
"key": "consume_consume_hero_intr_17", "key": "consume_consume_hero_intr_17",
"text": "漆黑的毒苹果酒吧桌游卡" "text": "漆黑的毒苹果酒吧桌游卡"
@ -691,6 +792,7 @@
"key": "consume_consume_hero_skilltxt_17", "key": "consume_consume_hero_skilltxt_17",
"text": "随机选中棋盘内的一种颜色,将该颜色方块随机变成另一种颜色,然后执行一次消除,然后再执行一次该逻辑(变2次消除2次)。" "text": "随机选中棋盘内的一种颜色,将该颜色方块随机变成另一种颜色,然后执行一次消除,然后再执行一次该逻辑(变2次消除2次)。"
}, },
"get": 107,
"consume": [ "consume": [
{ {
"a": "attr", "a": "attr",

View File

@ -1,297 +1,371 @@
[ [
{ {
"key": 1, "key": 1,
"attribute": "stime", "id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1, "lv": 1,
"num": 0, "num": [],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 2, "key": 2,
"attribute": "stime", "id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2, "lv": 2,
"num": 2, "num": [
2,
2,
2,
2,
2
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 3, "key": 3,
"attribute": "stime", "id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3, "lv": 3,
"num": 4, "num": [
4,
4,
4,
4,
4
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 4, "key": 4,
"attribute": "stime", "id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4, "lv": 4,
"num": 6, "num": [
6,
6,
6,
6,
6
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 5, "key": 5,
"attribute": "stime", "id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5, "lv": 5,
"num": 8, "num": [
"item": [] 8,
8,
8,
8,
8
],
"item": [],
"uplv": 0
}, },
{ {
"key": 6, "key": 6,
"attribute": "hp", "id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1, "lv": 1,
"num": 0, "num": [],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 7, "key": 7,
"attribute": "hp", "id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2, "lv": 2,
"num": 2, "num": [
2,
2,
2,
2,
2
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 8, "key": 8,
"attribute": "hp", "id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3, "lv": 3,
"num": 4, "num": [
4,
4,
4,
4,
4
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 9, "key": 9,
"attribute": "hp", "id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4, "lv": 4,
"num": 6, "num": [
6,
6,
6,
6,
6
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 10, "key": 10,
"attribute": "hp", "id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5, "lv": 5,
"num": 8, "num": [
"item": [] 8,
8,
8,
8,
8
],
"item": [],
"uplv": 0
}, },
{ {
"key": 11, "key": 11,
"attribute": "sprinttime", "id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1, "lv": 1,
"num": 0, "num": [],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 12, "key": 12,
"attribute": "sprinttime", "id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2, "lv": 2,
"num": 2, "num": [
2,
2,
2,
2,
2
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 13, "key": 13,
"attribute": "sprinttime", "id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3, "lv": 3,
"num": 4, "num": [
4,
4,
4,
4,
4
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 14, "key": 14,
"attribute": "sprinttime", "id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4, "lv": 4,
"num": 6, "num": [
6,
6,
6,
6,
6
],
"item": [ "item": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "gold",
"n": 10000 "n": 10000
} }
] ],
"uplv": 0
}, },
{ {
"key": 15, "key": 15,
"attribute": "sprinttime", "id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5, "lv": 5,
"num": 8, "num": [
"item": [] 8,
}, 8,
{ 8,
"key": 16, 8,
"attribute": "energyrecover", 8
"lv": 1, ],
"num": 0, "item": [],
"item": [ "uplv": 0
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 17,
"attribute": "energyrecover",
"lv": 2,
"num": 2,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 18,
"attribute": "energyrecover",
"lv": 3,
"num": 4,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 19,
"attribute": "energyrecover",
"lv": 4,
"num": 6,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 20,
"attribute": "energyrecover",
"lv": 5,
"num": 8,
"item": []
},
{
"key": 21,
"attribute": "etime",
"lv": 1,
"num": 0,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 22,
"attribute": "etime",
"lv": 2,
"num": 2,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 23,
"attribute": "etime",
"lv": 3,
"num": 4,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 24,
"attribute": "etime",
"lv": 4,
"num": 6,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 25,
"attribute": "etime",
"lv": 5,
"num": 8,
"item": []
} }
] ]

View File

@ -3440,7 +3440,7 @@
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 3, "Type": 3,
"Argu": [ "Argu": [
390001209, 390001209,
@ -7240,7 +7240,7 @@
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 8, "Type": 8,
"Argu": [ "Argu": [
1, 1,
@ -10712,7 +10712,7 @@
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 32, "Type": 32,
"Argu": [ "Argu": [
150 150
@ -33066,7 +33066,7 @@
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Buff",
"Type": 3, "Type": 3,
"Argu": [ "Argu": [
391000107, 391000107,
@ -35697,7 +35697,7 @@
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 8, "Type": 8,
"Argu": [ "Argu": [
1, 1,
@ -38632,7 +38632,7 @@
"Order": "HasBuffDown=3", "Order": "HasBuffDown=3",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 8, "Type": 8,
"Argu": [ "Argu": [
3, 3,
@ -40328,7 +40328,7 @@
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"TriggerAnim": "", "TriggerAnim": "Passive",
"Type": 8, "Type": 8,
"Argu": [ "Argu": [
1, 1,

View File

@ -21,6 +21,7 @@ type modelCaravan struct {
module *Caravan module *Caravan
} }
// 本服模块
func (this *modelCaravan) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *modelCaravan) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableCaravan) this.TableName = string(comm.TableCaravan)
err = this.MCompModel.Init(service, module, comp, options) err = this.MCompModel.Init(service, module, comp, options)

View File

@ -58,11 +58,9 @@ func (this *apiComp) LvItem(session comm.IUserSession, req *pb.DragonLvItemReq)
} }
return return
} }
if _, ok := dragon.Lvitem[req.Attribute]; !ok { // 默认1级
dragon.Lvitem[req.Attribute] = 1 if curLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Itemlv); err == nil {
} if upLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Itemlv+1); err != nil {
if curLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Lvitem[req.Attribute]); err == nil {
if upLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Lvitem[req.Attribute]+1); err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_DragonMaxLvItem, Code: pb.ErrorCode_DragonMaxLvItem,
Title: pb.ErrorCode_DragonMaxLvItem.ToString(), Title: pb.ErrorCode_DragonMaxLvItem.ToString(),
@ -73,9 +71,12 @@ func (this *apiComp) LvItem(session comm.IUserSession, req *pb.DragonLvItemReq)
if errdata = this.module.CheckRes(session, curLvConf.Item); errdata != nil { // 校验消耗 if errdata = this.module.CheckRes(session, curLvConf.Item); errdata != nil { // 校验消耗
return return
} }
dragon.Lvitem[req.Attribute] += 1 // 升级 dragon.Itemlv += 1 // 升级
update["lvitem"] = dragon.Lvitem update["lvitem"] = dragon.Itemlv
dragon.Property[req.Attribute] += upLvConf.Num for pos, v := range upLvConf.Attribute {
dragon.Property[v] += upLvConf.Num[pos]
}
update["property"] = dragon.Property update["property"] = dragon.Property
} }

View File

@ -24,13 +24,12 @@ const (
// /配置管理组件 // /配置管理组件
type configureComp struct { type configureComp struct {
modules.MCompConfigure modules.MCompConfigure
module *Dragon module *Dragon
hlock sync.RWMutex hlock sync.RWMutex
dragon map[string]*cfg.GameTrainlvData dragon map[string]*cfg.GameTrainlvData
play map[string]*cfg.GameDragonPlayData play map[string]*cfg.GameDragonPlayData
mount map[string]*cfg.GameBuzkashiMountData mount map[string]*cfg.GameBuzkashiMountData
lvItem map[string]*cfg.GameDragonLvItemData lvItem map[string]*cfg.GameDragonLvItemData
attribute map[string]struct{}
} }
// 组件初始化接口 // 组件初始化接口
@ -154,14 +153,11 @@ func (this *configureComp) LoadDragonLvItem() {
if v, err := this.GetConfigure(game_dragonlvitem); err == nil { if v, err := this.GetConfigure(game_dragonlvitem); err == nil {
this.hlock.Lock() this.hlock.Lock()
defer this.hlock.Unlock() defer this.hlock.Unlock()
this.attribute = make(map[string]struct{}, 0)
this.lvItem = make(map[string]*cfg.GameDragonLvItemData) this.lvItem = make(map[string]*cfg.GameDragonLvItemData)
if _configure, ok := v.(*cfg.GameDragonLvItem); ok { if _configure, ok := v.(*cfg.GameDragonLvItem); ok {
for _, v := range _configure.GetDataList() { for _, v := range _configure.GetDataList() {
this.lvItem[v.Attribute+"-"+strconv.Itoa(int(v.Lv))] = v key := v.Id + "-" + strconv.Itoa(int(v.Lv))
if _, ok := this.attribute[v.Attribute]; !ok { this.lvItem[key] = v
this.attribute[v.Attribute] = struct{}{}
}
} }
return return
} }
@ -170,21 +166,14 @@ func (this *configureComp) LoadDragonLvItem() {
} }
} }
func (this *configureComp) GetDragonLvItemConf(attribute string, lv int32) (conf *cfg.GameDragonLvItemData, err error) { func (this *configureComp) GetDragonLvItemConf(dragonId string, lv int32) (conf *cfg.GameDragonLvItemData, err error) {
key := attribute + "-" + strconv.Itoa(int(lv)) key := dragonId + "-" + strconv.Itoa(int(lv))
this.hlock.RLock() this.hlock.RLock()
defer this.hlock.RUnlock() defer this.hlock.RUnlock()
ok := false ok := false
if conf, ok = this.lvItem[key]; ok { if conf, ok = this.lvItem[key]; ok {
return return
} }
err = comm.NewNotFoundConfErr(moduleName, dragon_trainlv, fmt.Sprintf("id:%s,lv:%d", attribute, lv)) err = comm.NewNotFoundConfErr(moduleName, dragon_trainlv, fmt.Sprintf("id:%s,lv:%d", dragonId, lv))
return return
} }
func (this *configureComp) GetDragonAttributeConf() (conf map[string]struct{}) {
this.hlock.RLock()
defer this.hlock.RUnlock()
return this.attribute
}

View File

@ -88,6 +88,7 @@ func (this *ModelDragon) CreateDragon(session comm.IUserSession, dragons map[str
Play: map[int32]*pb.PlayData{}, Play: map[int32]*pb.PlayData{},
Rtime: configure.Now().Unix(), Rtime: configure.Now().Unix(),
Lvitem: map[string]int32{}, Lvitem: map[string]int32{},
Itemlv: 1,
} }
for _, obj := range dragonList { for _, obj := range dragonList {
if obj.Dragonid == dragonCfgId { // 重复获得 直接返回 if obj.Dragonid == dragonCfgId { // 重复获得 直接返回
@ -121,10 +122,6 @@ func (this *ModelDragon) CreateDragon(session comm.IUserSession, dragons map[str
} }
} }
for k := range this.module.configure.GetDragonAttributeConf() {
dragon.Lvitem[k] = 1
}
if bNewDragon { if bNewDragon {
if dbModel != nil { if dbModel != nil {
err = dbModel.AddList(uid, dragon.Id, dragon) err = dbModel.AddList(uid, dragon.Id, dragon)
@ -200,8 +197,19 @@ func (this *ModelDragon) UpdateDragonData(uid string, oid string, data map[strin
func (this *ModelDragon) GetDragonByOid(uid string, oid string) (dragon *pb.DBDragon, err error) { func (this *ModelDragon) GetDragonByOid(uid string, oid string) (dragon *pb.DBDragon, err error) {
dragon = &pb.DBDragon{} dragon = &pb.DBDragon{}
if err = this.GetListObj(uid, oid, dragon); err != nil { if db.IsCross() {
this.module.Errorf("err:%v", err) if dbModel, err1 := this.module.GetDBModelByUid(uid, this.TableName); err1 == nil {
if err = dbModel.GetListObj(uid, oid, dragon); err != nil {
this.module.Errorf("err:%v", err)
}
} else {
this.module.Errorln(err) // 获取跨服对象失败
return
}
} else {
if err = this.GetListObj(uid, oid, dragon); err != nil {
this.module.Errorf("err:%v", err)
}
} }
return return
} }

View File

@ -80,6 +80,7 @@ func (this *Dragon) CreateRobotDragon(dragonid string, lv int32) (dragon *pb.DBD
Exp: 0, Exp: 0,
Property: map[string]int32{}, Property: map[string]int32{},
Play: map[int32]*pb.PlayData{}, Play: map[int32]*pb.PlayData{},
Lvitem: map[string]int32{},
Rtime: configure.Now().Unix(), Rtime: configure.Now().Unix(),
} }

View File

@ -51,7 +51,6 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
configure.RegisterConfigure(game_passcheck, cfg.NewGamePassCheck, this.updatePassCheck) configure.RegisterConfigure(game_passcheck, cfg.NewGamePassCheck, this.updatePassCheck)
configure.RegisterConfigure(game_consumeIntegral, cfg.NewGameConsumeIntegral, this.loadConsumeIntegral) configure.RegisterConfigure(game_consumeIntegral, cfg.NewGameConsumeIntegral, this.loadConsumeIntegral)
this.GetConsumeResetIntegral()
return return
} }

View File

@ -43,16 +43,14 @@ func (this *modelComp) queryPlayers(uIds []string) (result []*pb.DBXXLData, err
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) { func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
var ( var (
conn *db.DBConn
dbModel *db.DBModel dbModel *db.DBModel
) )
if db.IsCross() { if db.IsCross() {
dbModel = this.DBModel dbModel = this.DBModel
} else { } else {
if conn, err = db.Cross(); err != nil { if dbModel, err = this.module.GetCrossDBModel(this.TableName); err != nil {
return return
} }
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
} }
result = &pb.DBXXLData{ result = &pb.DBXXLData{
@ -104,17 +102,15 @@ func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err
//支持本服数据变更操作 //支持本服数据变更操作
func (this *modelComp) modifyEntertainmList(uid string, data map[string]interface{}) error { func (this *modelComp) modifyEntertainmList(uid string, data map[string]interface{}) error {
var ( var (
conn *db.DBConn
dbModel *db.DBModel dbModel *db.DBModel
err error err error
) )
if db.IsCross() { if db.IsCross() {
dbModel = this.DBModel dbModel = this.DBModel
} else { } else {
if conn, err = db.Cross(); err != nil { if dbModel, err = this.module.GetCrossDBModel(this.TableName); err != nil {
return err return err
} }
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
} }
return dbModel.Change(uid, data) return dbModel.Change(uid, data)
} }

View File

@ -29,12 +29,13 @@ func (this *modelRank) Init(service core.IService, module core.IModule, comp cor
// 更新排名 // 更新排名
func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) { func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
var ( var (
pipe *pipe.RedisPipe = this.DBModel.Redis.RedisPipe(context.TODO()) pipe *pipe.RedisPipe = this.DBModel.Redis.RedisPipe(context.TODO())
menbers []*redis.Z menbers []*redis.Z
cmd *redis.IntCmd cmd *redis.IntCmd
menbersCmd []*redis.IntCmd = make([]*redis.IntCmd, len(users))
rank int64 strName string
) )
strName = fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName)
if len(users) == 0 { if len(users) == 0 {
return return
} }
@ -42,12 +43,9 @@ func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
for i, v := range users { for i, v := range users {
menbers[i] = &redis.Z{Score: float64(v.Consumeexp), Member: v.Uinfo.Uid} menbers[i] = &redis.Z{Score: float64(v.Consumeexp), Member: v.Uinfo.Uid}
} }
if cmd = pipe.ZAdd(this.TableName, menbers...); err != nil { if cmd = pipe.ZAdd(strName, menbers...); err != nil {
this.module.Errorln(err) this.module.Errorln(err)
} }
for i, v := range users {
menbersCmd[i] = pipe.ZRevRank(this.TableName, v.Uinfo.Uid)
}
if _, err = pipe.Exec(); err != nil { if _, err = pipe.Exec(); err != nil {
this.module.Errorln(err) this.module.Errorln(err)
return return
@ -56,22 +54,17 @@ func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
this.module.Errorln(err) this.module.Errorln(err)
return return
} }
for i, v := range menbersCmd {
if rank, err = v.Result(); err != nil {
this.module.Errorln(err)
return
}
users[i].Rank = int32(rank + 1)
}
return return
} }
// 获取排行榜前50的用户名单 // 获取排行榜前50的用户名单
func (this *modelRank) queryRankUser() (ranks []string, err error) { func (this *modelRank) queryRankUser() (ranks []string, err error) {
var ( var (
result []string result []string
strName string
) )
if result, err = this.DBModel.Redis.ZRevRange(fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName), 0, 50).Result(); err != nil { strName = fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName)
if result, err = this.DBModel.Redis.ZRevRange(strName, 0, comm.MaxRankList).Result(); err != nil {
this.module.Errorln(err) this.module.Errorln(err)
return return
} }

View File

@ -310,7 +310,6 @@ func (this *ModelUser) changelv(session comm.IUserSession, lv int32, exp int64,
} }
func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err error) { func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err error) {
// 获取本服的数据 // 获取本服的数据
if m, e := this.module.GetDBModelByUid(session.GetUserId(), this.TableName); e == nil { if m, e := this.module.GetDBModelByUid(session.GetUserId(), this.TableName); e == nil {
user := &pb.DBUser{} user := &pb.DBUser{}

View File

@ -88,7 +88,8 @@ type DBDragon struct {
Property map[string]int32 `protobuf:"bytes,6,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 坐骑属性 Property map[string]int32 `protobuf:"bytes,6,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 坐骑属性
Play map[int32]*PlayData `protobuf:"bytes,7,rep,name=play,proto3" json:"play" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 坐骑训练次数 Play map[int32]*PlayData `protobuf:"bytes,7,rep,name=play,proto3" json:"play" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 坐骑训练次数
Rtime int64 `protobuf:"varint,8,opt,name=rtime,proto3" json:"rtime"` // 刷新时间 用来清除 每日训练次数 Rtime int64 `protobuf:"varint,8,opt,name=rtime,proto3" json:"rtime"` // 刷新时间 用来清除 每日训练次数
Lvitem map[string]int32 `protobuf:"bytes,9,rep,name=lvitem,proto3" json:"lvitem" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // Lvitem map[string]int32 `protobuf:"bytes,9,rep,name=lvitem,proto3" json:"lvitem" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 等前端同步删除此字段
Itemlv int32 `protobuf:"varint,10,opt,name=itemlv,proto3" json:"itemlv"` // 道具提升等级
} }
func (x *DBDragon) Reset() { func (x *DBDragon) Reset() {
@ -186,6 +187,13 @@ func (x *DBDragon) GetLvitem() map[string]int32 {
return nil return nil
} }
func (x *DBDragon) GetItemlv() int32 {
if x != nil {
return x.Itemlv
}
return 0
}
var File_dragon_dragon_db_proto protoreflect.FileDescriptor var File_dragon_dragon_db_proto protoreflect.FileDescriptor
var file_dragon_dragon_db_proto_rawDesc = []byte{ var file_dragon_dragon_db_proto_rawDesc = []byte{
@ -194,7 +202,7 @@ var file_dragon_dragon_db_proto_rawDesc = []byte{
0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x64, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x64,
0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63,
0x64, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x44, 0x64, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe1, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x44,
0x72, 0x61, 0x67, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x67, 0x6f, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x67, 0x6f,
@ -211,20 +219,21 @@ var file_dragon_dragon_db_proto_rawDesc = []byte{
0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x6c, 0x76, 0x69, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x6c, 0x76, 0x69,
0x74, 0x65, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x44, 0x72, 0x74, 0x65, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x44, 0x72,
0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x6c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x06, 0x6c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d,
0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x6c, 0x76, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x6c, 0x76,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x74, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x50, 0x6c,
0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x6f, 0x74, 0x6f, 0x33, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -16,10 +16,13 @@ type GameConsumeHeroData struct {
Herocolor int32 Herocolor int32
Herotitel string Herotitel string
Hero int32 Hero int32
Iconimg string
Img string Img string
Name string
Intr string Intr string
Skillname string Skillname string
Skilltxt string Skilltxt string
Get int32
Consume []*Gameatn Consume []*Gameatn
Skilltype int32 Skilltype int32
Skillload int32 Skillload int32
@ -40,10 +43,13 @@ func (_v *GameConsumeHeroData)Deserialize(_buf map[string]interface{}) (err erro
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["herocolor"].(float64); !_ok_ { err = errors.New("herocolor error"); return }; _v.Herocolor = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["herocolor"].(float64); !_ok_ { err = errors.New("herocolor error"); return }; _v.Herocolor = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["herotitel"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Herotitel error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Herotitel, _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["herotitel"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Herotitel error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Herotitel, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero"].(float64); !_ok_ { err = errors.New("hero error"); return }; _v.Hero = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero"].(float64); !_ok_ { err = errors.New("hero error"); return }; _v.Hero = int32(_tempNum_) }
{ var _ok_ bool; if _v.Iconimg, _ok_ = _buf["iconimg"].(string); !_ok_ { err = errors.New("iconimg error"); return } }
{ var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } } { var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["intr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Intr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Intr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __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["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _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["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _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["skilltxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skilltxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skilltxt, _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["skilltxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skilltxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skilltxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["get"].(float64); !_ok_ { err = errors.New("get error"); return }; _v.Get = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -12,10 +12,12 @@ import "errors"
type GameDragonLvItemData struct { type GameDragonLvItemData struct {
Key int32 Key int32
Attribute string Id string
Attribute []string
Lv int32 Lv int32
Num int32 Num []int32
Item []*Gameatn Item []*Gameatn
Uplv int32
} }
const TypeId_GameDragonLvItemData = -767946250 const TypeId_GameDragonLvItemData = -767946250
@ -26,9 +28,36 @@ func (*GameDragonLvItemData) GetTypeId() int32 {
func (_v *GameDragonLvItemData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameDragonLvItemData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; if _v.Attribute, _ok_ = _buf["attribute"].(string); !_ok_ { err = errors.New("attribute error"); return } } { var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["attribute"].([]interface{}); !_ok_ { err = errors.New("attribute error"); return }
_v.Attribute = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Attribute = append(_v.Attribute, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } {
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["num"].([]interface{}); !_ok_ { err = errors.New("num error"); return }
_v.Num = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Num = append(_v.Num, _list_v_)
}
}
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -43,6 +72,7 @@ func (_v *GameDragonLvItemData)Deserialize(_buf map[string]interface{}) (err err
} }
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["uplv"].(float64); !_ok_ { err = errors.New("uplv error"); return }; _v.Uplv = int32(_tempNum_) }
return return
} }