This commit is contained in:
liwei1dao 2022-07-15 20:08:19 +08:00
commit f8653cdd3d
49 changed files with 8351 additions and 1993 deletions

57
bin/json/game_com.json Normal file
View File

@ -0,0 +1,57 @@
[
{
"index": "max_hy",
"var": "30",
"intr": "最大好友数"
},
{
"index": "max_getreward",
"var": "10002,99",
"intr": "领取/赠送奖励"
},
{
"index": "max_get",
"var": "30",
"intr": "每日领取/赠送次数"
},
{
"index": "max_char",
"var": "100",
"intr": "聊天最大输入字符数量"
},
{
"index": "max_hmd",
"var": "30",
"intr": "最大黑名单数"
},
{
"index": "task_reset",
"var": "8",
"intr": "日/周常任务刷新时间8点"
},
{
"index": "init_gold",
"var": "100000",
"intr": "初始金币"
},
{
"index": "init_hero",
"var": "15001,25001",
"intr": "初始英雄"
},
{
"index": "cameramin",
"var": "0,0,0",
"intr": "镜头坐标最小值"
},
{
"index": "cameramax",
"var": "-1.53,1.1,-8",
"intr": "镜头坐标最大值"
},
{
"index": "heroshownum",
"var": "2",
"intr": "播放开场动作角色数量"
}
]

View File

@ -46,7 +46,7 @@
}, },
{ {
"index": "cameramax", "index": "cameramax",
"var": "0,1.54,-2.62", "var": "-1.53,1.1,-8",
"intr": "镜头坐标最大值" "intr": "镜头坐标最大值"
}, },
{ {

View File

@ -1,7 +1,10 @@
[ [
{ {
"id": 11001, "id": 11001,
"name": "阿宝", "name": {
"key": "11001",
"text": "阿宝"
},
"star": 4, "star": 4,
"color": 3, "color": 3,
"race": 1, "race": 1,
@ -30,7 +33,10 @@
}, },
{ {
"id": 11002, "id": 11002,
"name": "原始人", "name": {
"key": "11002",
"text": "原始人"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 1, "race": 1,
@ -59,7 +65,10 @@
}, },
{ {
"id": 11003, "id": 11003,
"name": "波比", "name": {
"key": "11003",
"text": "波比"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -90,7 +99,10 @@
}, },
{ {
"id": 11004, "id": 11004,
"name": "布兰", "name": {
"key": "11004",
"text": "布兰"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 1, "race": 1,
@ -119,7 +131,10 @@
}, },
{ {
"id": 11005, "id": 11005,
"name": "无牙仔", "name": {
"key": "11005",
"text": "无牙仔"
},
"star": 4, "star": 4,
"color": 3, "color": 3,
"race": 1, "race": 1,
@ -148,7 +163,10 @@
}, },
{ {
"id": 11006, "id": 11006,
"name": "亚丝翠", "name": {
"key": "11006",
"text": "亚丝翠"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 1, "race": 1,
@ -177,7 +195,10 @@
}, },
{ {
"id": 11009, "id": 11009,
"name": "希卡普", "name": {
"key": "11009",
"text": "希卡普"
},
"star": 4, "star": 4,
"color": 3, "color": 3,
"race": 3, "race": 3,
@ -206,7 +227,10 @@
}, },
{ {
"id": 22002, "id": 22002,
"name": "沈王爷青春版", "name": {
"key": "22002",
"text": "沈王爷青春版"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -235,7 +259,10 @@
}, },
{ {
"id": 90001, "id": 90001,
"name": "邪恶阿宝", "name": {
"key": "90001",
"text": "邪恶阿宝"
},
"star": 4, "star": 4,
"color": 3, "color": 3,
"race": 1, "race": 1,
@ -264,7 +291,10 @@
}, },
{ {
"id": 11011, "id": 11011,
"name": "浣熊", "name": {
"key": "11011",
"text": "浣熊"
},
"star": 4, "star": 4,
"color": 3, "color": 3,
"race": 2, "race": 2,
@ -293,7 +323,10 @@
}, },
{ {
"id": 11008, "id": 11008,
"name": "悍娇虎", "name": {
"key": "11008",
"text": "悍娇虎"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -322,7 +355,10 @@
}, },
{ {
"id": 11017, "id": 11017,
"name": "冰霜杰克", "name": {
"key": "11017",
"text": "冰霜杰克"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 4, "race": 4,
@ -353,7 +389,10 @@
}, },
{ {
"id": 11018, "id": 11018,
"name": "睡神", "name": {
"key": "11018",
"text": "睡神"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 4, "race": 4,
@ -385,7 +424,10 @@
}, },
{ {
"id": 11019, "id": 11019,
"name": "莫甘娜", "name": {
"key": "11019",
"text": "莫甘娜"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -414,7 +456,10 @@
}, },
{ {
"id": 11020, "id": 11020,
"name": "莫甘娜二阶段", "name": {
"key": "11020",
"text": "莫甘娜二阶段"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -443,7 +488,10 @@
}, },
{ {
"id": 11021, "id": 11021,
"name": "莫甘娜巨怪", "name": {
"key": "11021",
"text": "莫甘娜巨怪"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -472,7 +520,10 @@
}, },
{ {
"id": 11099, "id": 11099,
"name": "触手", "name": {
"key": "11099",
"text": "触手"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -501,7 +552,10 @@
}, },
{ {
"id": 12001, "id": 12001,
"name": "黑化阿宝", "name": {
"key": "12001",
"text": "黑化阿宝"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -530,7 +584,10 @@
}, },
{ {
"id": 12003, "id": 12003,
"name": "黑化包比", "name": {
"key": "12003",
"text": "黑化包比"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -561,7 +618,10 @@
}, },
{ {
"id": 12009, "id": 12009,
"name": "黑化希卡普", "name": {
"key": "12009",
"text": "黑化希卡普"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -590,7 +650,10 @@
}, },
{ {
"id": 12017, "id": 12017,
"name": "黑化杰克", "name": {
"key": "12017",
"text": "黑化杰克"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -621,7 +684,10 @@
}, },
{ {
"id": 12018, "id": 12018,
"name": "黑化睡神", "name": {
"key": "12018",
"text": "黑化睡神"
},
"star": 5, "star": 5,
"color": 4, "color": 4,
"race": 2, "race": 2,
@ -647,5 +713,37 @@
"skill3": 0, "skill3": 0,
"enteranivalue": 0, "enteranivalue": 0,
"camerainterval": 0.6 "camerainterval": 0.6
},
{
"id": 44005,
"name": {
"key": "44005",
"text": "小伊"
},
"star": 4,
"color": 4,
"race": 4,
"job": 3,
"type": 1,
"prefab": "Person/44005.prefab",
"icon": 44005,
"sound": 44005,
"tujing": [
1
],
"intr": "",
"events": "EventDataSet/Hero_44005.asset",
"cite": "",
"effectstay": [],
"hpspace": {
"x": 0,
"y": 0,
"z": 0
},
"skill1": 0,
"skill2": 0,
"skill3": 0,
"enteranivalue": 0,
"camerainterval": 0.6
} }
] ]

View File

@ -5,7 +5,8 @@
"star": 2, "star": 2,
"color": 1, "color": 1,
"heroexp": 1000, "heroexp": 1000,
"skilllevelup": 0 "skilllevelup": 0,
"needgold": 1000
}, },
{ {
"hid": 43911, "hid": 43911,
@ -13,7 +14,8 @@
"star": 3, "star": 3,
"color": 2, "color": 2,
"heroexp": 5000, "heroexp": 5000,
"skilllevelup": 0 "skilllevelup": 0,
"needgold": 5000
}, },
{ {
"hid": 44911, "hid": 44911,
@ -21,7 +23,8 @@
"star": 4, "star": 4,
"color": 3, "color": 3,
"heroexp": 20000, "heroexp": 20000,
"skilllevelup": 0 "skilllevelup": 0,
"needgold": 20000
}, },
{ {
"hid": 43921, "hid": 43921,
@ -29,7 +32,8 @@
"star": 3, "star": 3,
"color": 2, "color": 2,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1 "skilllevelup": 1,
"needgold": 1000
}, },
{ {
"hid": 44921, "hid": 44921,
@ -37,7 +41,8 @@
"star": 4, "star": 4,
"color": 3, "color": 3,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1 "skilllevelup": 1,
"needgold": 1000
}, },
{ {
"hid": 45921, "hid": 45921,
@ -45,6 +50,7 @@
"star": 5, "star": 5,
"color": 4, "color": 4,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1 "skilllevelup": 1,
"needgold": 1000
} }
] ]

View File

@ -8,13 +8,6 @@
"n": 300 "n": 300
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 300
}
],
"hp": 1857, "hp": 1857,
"atk": 137, "atk": 137,
"def": 137 "def": 137
@ -28,13 +21,6 @@
"n": 320 "n": 320
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 320
}
],
"hp": 1953, "hp": 1953,
"atk": 142.7, "atk": 142.7,
"def": 143.7 "def": 143.7
@ -48,13 +34,6 @@
"n": 340 "n": 340
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 340
}
],
"hp": 2049, "hp": 2049,
"atk": 148.4, "atk": 148.4,
"def": 150.4 "def": 150.4
@ -68,13 +47,6 @@
"n": 360 "n": 360
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 360
}
],
"hp": 2145, "hp": 2145,
"atk": 154.1, "atk": 154.1,
"def": 157.1 "def": 157.1
@ -88,13 +60,6 @@
"n": 380 "n": 380
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 380
}
],
"hp": 2241, "hp": 2241,
"atk": 159.8, "atk": 159.8,
"def": 163.8 "def": 163.8
@ -108,13 +73,6 @@
"n": 400 "n": 400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 400
}
],
"hp": 2337, "hp": 2337,
"atk": 165.5, "atk": 165.5,
"def": 170.5 "def": 170.5
@ -128,13 +86,6 @@
"n": 420 "n": 420
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 420
}
],
"hp": 2433, "hp": 2433,
"atk": 171.2, "atk": 171.2,
"def": 177.2 "def": 177.2
@ -148,13 +99,6 @@
"n": 440 "n": 440
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 440
}
],
"hp": 2529, "hp": 2529,
"atk": 176.9, "atk": 176.9,
"def": 183.9 "def": 183.9
@ -168,13 +112,6 @@
"n": 460 "n": 460
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 460
}
],
"hp": 2625, "hp": 2625,
"atk": 182.6, "atk": 182.6,
"def": 190.6 "def": 190.6
@ -188,13 +125,6 @@
"n": 480 "n": 480
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 480
}
],
"hp": 2721, "hp": 2721,
"atk": 188.3, "atk": 188.3,
"def": 197.3 "def": 197.3
@ -208,13 +138,6 @@
"n": 1100 "n": 1100
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1100
}
],
"hp": 2817, "hp": 2817,
"atk": 194, "atk": 194,
"def": 204 "def": 204
@ -228,13 +151,6 @@
"n": 1200 "n": 1200
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1200
}
],
"hp": 2913, "hp": 2913,
"atk": 199.7, "atk": 199.7,
"def": 210.7 "def": 210.7
@ -248,13 +164,6 @@
"n": 1300 "n": 1300
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1300
}
],
"hp": 3009, "hp": 3009,
"atk": 205.4, "atk": 205.4,
"def": 217.4 "def": 217.4
@ -268,13 +177,6 @@
"n": 1400 "n": 1400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1400
}
],
"hp": 3105, "hp": 3105,
"atk": 211.1, "atk": 211.1,
"def": 224.1 "def": 224.1
@ -288,13 +190,6 @@
"n": 1500 "n": 1500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1500
}
],
"hp": 3201, "hp": 3201,
"atk": 216.8, "atk": 216.8,
"def": 230.8 "def": 230.8
@ -308,13 +203,6 @@
"n": 1600 "n": 1600
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1600
}
],
"hp": 3297, "hp": 3297,
"atk": 222.5, "atk": 222.5,
"def": 237.5 "def": 237.5
@ -328,13 +216,6 @@
"n": 1700 "n": 1700
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1700
}
],
"hp": 3393, "hp": 3393,
"atk": 228.2, "atk": 228.2,
"def": 244.2 "def": 244.2
@ -348,13 +229,6 @@
"n": 1800 "n": 1800
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1800
}
],
"hp": 3489, "hp": 3489,
"atk": 233.9, "atk": 233.9,
"def": 250.9 "def": 250.9
@ -368,13 +242,6 @@
"n": 1900 "n": 1900
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 1900
}
],
"hp": 3585, "hp": 3585,
"atk": 239.6, "atk": 239.6,
"def": 257.6 "def": 257.6
@ -388,13 +255,6 @@
"n": 2000 "n": 2000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 2000
}
],
"hp": 3681, "hp": 3681,
"atk": 245.3, "atk": 245.3,
"def": 264.3 "def": 264.3
@ -408,13 +268,6 @@
"n": 6300 "n": 6300
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 6300
}
],
"hp": 3777, "hp": 3777,
"atk": 251, "atk": 251,
"def": 271 "def": 271
@ -428,13 +281,6 @@
"n": 6600 "n": 6600
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 6600
}
],
"hp": 3873, "hp": 3873,
"atk": 256.7, "atk": 256.7,
"def": 277.7 "def": 277.7
@ -448,13 +294,6 @@
"n": 6900 "n": 6900
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 6900
}
],
"hp": 3969, "hp": 3969,
"atk": 262.4, "atk": 262.4,
"def": 284.4 "def": 284.4
@ -468,13 +307,6 @@
"n": 7200 "n": 7200
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 7200
}
],
"hp": 4065, "hp": 4065,
"atk": 268.1, "atk": 268.1,
"def": 291.1 "def": 291.1
@ -488,13 +320,6 @@
"n": 7500 "n": 7500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 7500
}
],
"hp": 4161, "hp": 4161,
"atk": 273.8, "atk": 273.8,
"def": 297.8 "def": 297.8
@ -508,13 +333,6 @@
"n": 7800 "n": 7800
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 7800
}
],
"hp": 4257, "hp": 4257,
"atk": 279.5, "atk": 279.5,
"def": 304.5 "def": 304.5
@ -528,13 +346,6 @@
"n": 8100 "n": 8100
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 8100
}
],
"hp": 4353, "hp": 4353,
"atk": 285.2, "atk": 285.2,
"def": 311.2 "def": 311.2
@ -548,13 +359,6 @@
"n": 8400 "n": 8400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 8400
}
],
"hp": 4449, "hp": 4449,
"atk": 290.9, "atk": 290.9,
"def": 317.9 "def": 317.9
@ -568,13 +372,6 @@
"n": 8700 "n": 8700
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 8700
}
],
"hp": 4545, "hp": 4545,
"atk": 296.6, "atk": 296.6,
"def": 324.6 "def": 324.6
@ -588,13 +385,6 @@
"n": 9000 "n": 9000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 9000
}
],
"hp": 4641, "hp": 4641,
"atk": 302.3, "atk": 302.3,
"def": 331.3 "def": 331.3
@ -608,13 +398,6 @@
"n": 15500 "n": 15500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 15500
}
],
"hp": 4737, "hp": 4737,
"atk": 308, "atk": 308,
"def": 338 "def": 338
@ -628,13 +411,6 @@
"n": 16000 "n": 16000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 16000
}
],
"hp": 4833, "hp": 4833,
"atk": 313.7, "atk": 313.7,
"def": 344.7 "def": 344.7
@ -648,13 +424,6 @@
"n": 16500 "n": 16500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 16500
}
],
"hp": 4929, "hp": 4929,
"atk": 319.4, "atk": 319.4,
"def": 351.4 "def": 351.4
@ -668,13 +437,6 @@
"n": 17000 "n": 17000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 17000
}
],
"hp": 5025, "hp": 5025,
"atk": 325.1, "atk": 325.1,
"def": 358.1 "def": 358.1
@ -688,13 +450,6 @@
"n": 17500 "n": 17500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 17500
}
],
"hp": 5121, "hp": 5121,
"atk": 330.8, "atk": 330.8,
"def": 364.8 "def": 364.8
@ -708,13 +463,6 @@
"n": 18000 "n": 18000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 18000
}
],
"hp": 5217, "hp": 5217,
"atk": 336.5, "atk": 336.5,
"def": 371.5 "def": 371.5
@ -728,13 +476,6 @@
"n": 18500 "n": 18500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 18500
}
],
"hp": 5313, "hp": 5313,
"atk": 342.2, "atk": 342.2,
"def": 378.2 "def": 378.2
@ -748,13 +489,6 @@
"n": 19000 "n": 19000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 19000
}
],
"hp": 5409, "hp": 5409,
"atk": 347.9, "atk": 347.9,
"def": 384.9 "def": 384.9
@ -768,13 +502,6 @@
"n": 19500 "n": 19500
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 19500
}
],
"hp": 5505, "hp": 5505,
"atk": 353.6, "atk": 353.6,
"def": 391.6 "def": 391.6
@ -788,13 +515,6 @@
"n": 20000 "n": 20000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 20000
}
],
"hp": 5601, "hp": 5601,
"atk": 359.3, "atk": 359.3,
"def": 398.3 "def": 398.3
@ -808,13 +528,6 @@
"n": 24600 "n": 24600
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 24600
}
],
"hp": 5697, "hp": 5697,
"atk": 365, "atk": 365,
"def": 405 "def": 405
@ -828,13 +541,6 @@
"n": 25200 "n": 25200
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 25200
}
],
"hp": 5793, "hp": 5793,
"atk": 370.7, "atk": 370.7,
"def": 411.7 "def": 411.7
@ -848,13 +554,6 @@
"n": 25800 "n": 25800
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 25800
}
],
"hp": 5889, "hp": 5889,
"atk": 376.4, "atk": 376.4,
"def": 418.4 "def": 418.4
@ -868,13 +567,6 @@
"n": 26400 "n": 26400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 26400
}
],
"hp": 5985, "hp": 5985,
"atk": 382.1, "atk": 382.1,
"def": 425.1 "def": 425.1
@ -888,13 +580,6 @@
"n": 27000 "n": 27000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 27000
}
],
"hp": 6081, "hp": 6081,
"atk": 387.8, "atk": 387.8,
"def": 431.8 "def": 431.8
@ -908,13 +593,6 @@
"n": 27600 "n": 27600
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 27600
}
],
"hp": 6177, "hp": 6177,
"atk": 393.5, "atk": 393.5,
"def": 438.5 "def": 438.5
@ -928,13 +606,6 @@
"n": 28200 "n": 28200
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 28200
}
],
"hp": 6273, "hp": 6273,
"atk": 399.2, "atk": 399.2,
"def": 445.2 "def": 445.2
@ -948,13 +619,6 @@
"n": 28800 "n": 28800
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 28800
}
],
"hp": 6369, "hp": 6369,
"atk": 404.9, "atk": 404.9,
"def": 451.9 "def": 451.9
@ -968,13 +632,6 @@
"n": 29400 "n": 29400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 29400
}
],
"hp": 6465, "hp": 6465,
"atk": 410.6, "atk": 410.6,
"def": 458.6 "def": 458.6
@ -988,13 +645,6 @@
"n": 30000 "n": 30000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 30000
}
],
"hp": 6561, "hp": 6561,
"atk": 416.3, "atk": 416.3,
"def": 465.3 "def": 465.3
@ -1008,13 +658,6 @@
"n": 48450 "n": 48450
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 48450
}
],
"hp": 6657, "hp": 6657,
"atk": 422, "atk": 422,
"def": 472 "def": 472
@ -1028,13 +671,6 @@
"n": 49400 "n": 49400
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 49400
}
],
"hp": 6753, "hp": 6753,
"atk": 427.7, "atk": 427.7,
"def": 478.7 "def": 478.7
@ -1048,13 +684,6 @@
"n": 50350 "n": 50350
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 50350
}
],
"hp": 6849, "hp": 6849,
"atk": 433.4, "atk": 433.4,
"def": 485.4 "def": 485.4
@ -1068,13 +697,6 @@
"n": 51300 "n": 51300
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 51300
}
],
"hp": 6945, "hp": 6945,
"atk": 439.1, "atk": 439.1,
"def": 492.1 "def": 492.1
@ -1088,13 +710,6 @@
"n": 52250 "n": 52250
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 52250
}
],
"hp": 7041, "hp": 7041,
"atk": 444.8, "atk": 444.8,
"def": 498.8 "def": 498.8
@ -1108,13 +723,6 @@
"n": 53200 "n": 53200
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 53200
}
],
"hp": 7137, "hp": 7137,
"atk": 450.5, "atk": 450.5,
"def": 505.5 "def": 505.5
@ -1128,13 +736,6 @@
"n": 54150 "n": 54150
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 54150
}
],
"hp": 7233, "hp": 7233,
"atk": 456.2, "atk": 456.2,
"def": 512.2 "def": 512.2
@ -1148,13 +749,6 @@
"n": 55100 "n": 55100
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 55100
}
],
"hp": 7329, "hp": 7329,
"atk": 461.9, "atk": 461.9,
"def": 518.9 "def": 518.9
@ -1168,13 +762,6 @@
"n": 56050 "n": 56050
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 56050
}
],
"hp": 7425, "hp": 7425,
"atk": 467.6, "atk": 467.6,
"def": 525.6 "def": 525.6
@ -1188,13 +775,6 @@
"n": 57000 "n": 57000
} }
], ],
"gold": [
{
"a": "attr",
"t": "gold",
"n": 57000
}
],
"hp": 7521, "hp": 7521,
"atk": 473.3, "atk": 473.3,
"def": 532.3 "def": 532.3

View File

@ -2,6 +2,7 @@
{ {
"star": 1, "star": 1,
"level": 1, "level": 1,
"maxlevel": 10,
"starup_hp": 0, "starup_hp": 0,
"starup_atk": 0, "starup_atk": 0,
"starup_def": 0, "starup_def": 0,
@ -10,6 +11,7 @@
{ {
"star": 2, "star": 2,
"level": 10, "level": 10,
"maxlevel": 20,
"starup_hp": 9.5, "starup_hp": 9.5,
"starup_atk": 9.5, "starup_atk": 9.5,
"starup_def": 9.5, "starup_def": 9.5,
@ -18,6 +20,7 @@
{ {
"star": 3, "star": 3,
"level": 20, "level": 20,
"maxlevel": 30,
"starup_hp": 19, "starup_hp": 19,
"starup_atk": 19, "starup_atk": 19,
"starup_def": 19, "starup_def": 19,
@ -26,6 +29,7 @@
{ {
"star": 4, "star": 4,
"level": 30, "level": 30,
"maxlevel": 40,
"starup_hp": 28.5, "starup_hp": 28.5,
"starup_atk": 28.5, "starup_atk": 28.5,
"starup_def": 28.5, "starup_def": 28.5,
@ -34,6 +38,7 @@
{ {
"star": 5, "star": 5,
"level": 40, "level": 40,
"maxlevel": 50,
"starup_hp": 38, "starup_hp": 38,
"starup_atk": 38, "starup_atk": 38,
"starup_def": 38, "starup_def": 38,
@ -42,6 +47,7 @@
{ {
"star": 6, "star": 6,
"level": 50, "level": 50,
"maxlevel": 60,
"starup_hp": 47.5, "starup_hp": 47.5,
"starup_atk": 47.5, "starup_atk": 47.5,
"starup_def": 47.5, "starup_def": 47.5,

View File

@ -3,7 +3,6 @@
"key": 1, "key": 1,
"id": 25001, "id": 25001,
"star": 4, "star": 4,
"maxlevel": 40,
"needhero": 25001, "needhero": 25001,
"needherostar": 4, "needherostar": 4,
"needheronum": 1, "needheronum": 1,
@ -18,7 +17,6 @@
"key": 2, "key": 2,
"id": 25001, "id": 25001,
"star": 5, "star": 5,
"maxlevel": 50,
"needhero": 25001, "needhero": 25001,
"needherostar": 5, "needherostar": 5,
"needheronum": 1, "needheronum": 1,
@ -33,7 +31,6 @@
"key": 3, "key": 3,
"id": 25001, "id": 25001,
"star": 6, "star": 6,
"maxlevel": 60,
"needhero": 0, "needhero": 0,
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -46,7 +43,6 @@
"key": 4, "key": 4,
"id": 25002, "id": 25002,
"star": 5, "star": 5,
"maxlevel": 50,
"needhero": 25002, "needhero": 25002,
"needherostar": 5, "needherostar": 5,
"needheronum": 1, "needheronum": 1,
@ -61,7 +57,6 @@
"key": 5, "key": 5,
"id": 25002, "id": 25002,
"star": 6, "star": 6,
"maxlevel": 60,
"needhero": 0, "needhero": 0,
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -74,7 +69,6 @@
"key": 6, "key": 6,
"id": 25003, "id": 25003,
"star": 5, "star": 5,
"maxlevel": 50,
"needhero": 25003, "needhero": 25003,
"needherostar": 5, "needherostar": 5,
"needheronum": 1, "needheronum": 1,
@ -89,7 +83,6 @@
"key": 7, "key": 7,
"id": 25003, "id": 25003,
"star": 6, "star": 6,
"maxlevel": 60,
"needhero": 0, "needhero": 0,
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -102,7 +95,6 @@
"key": 8, "key": 8,
"id": 15004, "id": 15004,
"star": 5, "star": 5,
"maxlevel": 50,
"needhero": 15004, "needhero": 15004,
"needherostar": 5, "needherostar": 5,
"needheronum": 1, "needheronum": 1,
@ -117,7 +109,6 @@
"key": 9, "key": 9,
"id": 15004, "id": 15004,
"star": 6, "star": 6,
"maxlevel": 60,
"needhero": 0, "needhero": 0,
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -130,7 +121,6 @@
"key": 10, "key": 10,
"id": 43901, "id": 43901,
"star": 3, "star": 3,
"maxlevel": 30,
"needhero": 43901, "needhero": 43901,
"needherostar": 3, "needherostar": 3,
"needheronum": 1, "needheronum": 1,
@ -148,7 +138,6 @@
"key": 11, "key": 11,
"id": 43901, "id": 43901,
"star": 4, "star": 4,
"maxlevel": 40,
"needhero": 43901, "needhero": 43901,
"needherostar": 4, "needherostar": 4,
"needheronum": 1, "needheronum": 1,
@ -166,7 +155,6 @@
"key": 12, "key": 12,
"id": 43901, "id": 43901,
"star": 5, "star": 5,
"maxlevel": 50,
"needhero": 43901, "needhero": 43901,
"needherostar": 5, "needherostar": 5,
"needheronum": 1, "needheronum": 1,
@ -184,7 +172,6 @@
"key": 13, "key": 13,
"id": 43901, "id": 43901,
"star": 6, "star": 6,
"maxlevel": 60,
"needhero": 0, "needhero": 0,
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,

View File

@ -1,278 +1,282 @@
[ [
{ {
"itemid": 10001, "id": 1,
"name": "1阵营觉醒材料", "name": "绿色材料",
"usetype": 9, "usetype": 1,
"color": 2, "color": 1,
"bagtype": 1,
"index": 1,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 10,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 10,
"isani": 0,
"star": 2,
"race": 1, "race": 1,
"bagtype": false, "synthetize_hero": 0,
"index": 10001, "img": "item1",
"texiao": "", "ico": "item1",
"dlp": 0, "intr": "绿色材料,可以合成蓝色材料",
"composenum": 0, "sale": [
"htype": 0, {
"tujing": 0, "a": "attr",
"usetz": 0, "t": "gold",
"maxnum": 999, "n": 2000
"uselv": 1, }
"ismutil": 1, ],
"type": 0, "boxhero": []
"img": "",
"ico": "",
"intr": "",
"sale": ""
}, },
{ {
"itemid": 10002, "id": 2,
"name": "1阵营觉醒材料", "name": "蓝色材料",
"usetype": 9, "usetype": 1,
"color": 2,
"bagtype": 2,
"index": 2,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 20,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 3,
"race": 2,
"synthetize_hero": 0,
"img": "item2",
"ico": "item2",
"intr": "蓝色材料,可以合成紫色材料",
"sale": [
{
"a": "attr",
"t": "gold",
"n": 3000
}
],
"boxhero": []
},
{
"id": 3,
"name": "紫色材料",
"usetype": 1,
"color": 3, "color": 3,
"bagtype": 3,
"index": 3,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 30,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 4,
"race": 3,
"synthetize_hero": 0,
"img": "item3",
"ico": "item3",
"intr": "紫色材料,可以合成橙色材料",
"sale": [
{
"a": "attr",
"t": "gold",
"n": 4000
}
],
"boxhero": []
},
{
"id": 4,
"name": "橙色材料",
"usetype": 1,
"color": 4,
"bagtype": 3,
"index": 4,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 40,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 5,
"race": 4,
"synthetize_hero": 0,
"img": "item4",
"ico": "item4",
"intr": "橙色材料,可以合成红色材料",
"sale": [
{
"a": "attr",
"t": "gold",
"n": 5000
}
],
"boxhero": []
},
{
"id": 5,
"name": "红色材料",
"usetype": 2,
"color": 5,
"bagtype": 3,
"index": 5,
"special_type": 0,
"effects": "effects1",
"drop": 0,
"synthetize_num": 0,
"access": 0,
"use_skip": 0,
"upper_limit": 1,
"uselv": 0,
"isani": 1,
"star": 6,
"race": 4,
"synthetize_hero": 0,
"img": "item5",
"ico": "item5",
"intr": "红色材料,最顶级的材料",
"sale": [
{
"a": "attr",
"t": "gold",
"n": 6000
}
],
"boxhero": []
},
{
"id": 6,
"name": "金币箱子",
"usetype": 4,
"color": 4,
"bagtype": 1,
"index": 6,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 0,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 5,
"race": 0,
"synthetize_hero": 0,
"img": "item6",
"ico": "item6",
"intr": "可以在以下道具中选择任选1个",
"sale": [],
"boxhero": []
},
{
"id": 7,
"name": "随机金币箱子",
"usetype": 7,
"color": 4,
"bagtype": 1,
"index": 7,
"special_type": 0,
"effects": "",
"drop": 1,
"synthetize_num": 0,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 5,
"race": 0,
"synthetize_hero": 0,
"img": "item7",
"ico": "item7",
"intr": "可以下一下道具中随机获取1个",
"sale": [],
"boxhero": []
},
{
"id": 8,
"name": "2小时金币",
"usetype": 5,
"color": 4,
"bagtype": 1,
"index": 8,
"special_type": 120,
"effects": "",
"drop": 0,
"synthetize_num": 0,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 5,
"race": 0,
"synthetize_hero": 0,
"img": "item8",
"ico": "item8",
"intr": "使用后获得2小时金币收益",
"sale": [],
"boxhero": []
},
{
"id": 9,
"name": "1分钟就不见",
"usetype": 6,
"color": 4,
"bagtype": 1,
"index": 9,
"special_type": 1,
"effects": "",
"drop": 0,
"synthetize_num": 0,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 5,
"race": 0,
"synthetize_hero": 0,
"img": "item9",
"ico": "item9",
"intr": "获得1分钟后该道具消失",
"sale": [],
"boxhero": []
},
{
"id": 10001,
"name": "绿色材料",
"usetype": 1,
"color": 1,
"bagtype": 1,
"index": 1,
"special_type": 0,
"effects": "",
"drop": 0,
"synthetize_num": 10,
"access": 0,
"use_skip": 0,
"upper_limit": 999,
"uselv": 10,
"isani": 0,
"star": 2,
"race": 1, "race": 1,
"bagtype": false, "synthetize_hero": 0,
"index": 10001, "img": "item1",
"texiao": "", "ico": "item1",
"dlp": 0, "intr": "绿色材料,可以合成蓝色材料",
"composenum": 0, "sale": [],
"htype": 0, "boxhero": []
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10003,
"name": "1阵营觉醒材料",
"usetype": 9,
"color": 4,
"race": 1,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10011,
"name": "2阵营觉醒材料",
"usetype": 9,
"color": 2,
"race": 2,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10012,
"name": "2阵营觉醒材料",
"usetype": 9,
"color": 3,
"race": 2,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10013,
"name": "2阵营觉醒材料",
"usetype": 9,
"color": 4,
"race": 2,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10021,
"name": "3阵营觉醒材料",
"usetype": 9,
"color": 2,
"race": 3,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10022,
"name": "3阵营觉醒材料",
"usetype": 9,
"color": 3,
"race": 3,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10023,
"name": "3阵营觉醒材料",
"usetype": 9,
"color": 4,
"race": 3,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10031,
"name": "4阵营觉醒材料",
"usetype": 9,
"color": 2,
"race": 4,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10032,
"name": "4阵营觉醒材料",
"usetype": 9,
"color": 3,
"race": 4,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
},
{
"itemid": 10033,
"name": "4阵营觉醒材料",
"usetype": 9,
"color": 4,
"race": 4,
"bagtype": false,
"index": 10001,
"texiao": "",
"dlp": 0,
"composenum": 0,
"htype": 0,
"tujing": 0,
"usetz": 0,
"maxnum": 999,
"uselv": 1,
"ismutil": 1,
"type": 0,
"img": "",
"ico": "",
"intr": "",
"sale": ""
} }
] ]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,210 +1,496 @@
[ [
{ {
"Id": 390001001, "Id": 390001001,
"Type": "ProBuff", "Type": "Type=ProBuff",
"Name": "攻击提升", "Name": "攻击提升",
"Desc": "攻击提升40%", "Desc": "攻击提升40%",
"Tags": [ "Tags": [
"201" "201"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
}, },
{ {
"Id": 390001002, "Id": 390001002,
"Type": "ProBuff", "Type": "Type=ProBuff",
"Name": "攻击下降",
"Desc": "攻击下降40%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001003,
"Type": "ProBuff",
"Name": "防御提升", "Name": "防御提升",
"Desc": "防御提升60%", "Desc": "防御提升60%",
"Tags": [ "Tags": [
"201" "201"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
}, },
{ {
"Id": 390001004, "Id": 390001003,
"Type": "ProBuff", "Type": "Type=ProBuff",
"Name": "防御下降",
"Desc": "防御下降60%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001005,
"Type": "ProBuff",
"Name": "速度提升", "Name": "速度提升",
"Desc": "速度提升30%", "Desc": "速度提升30%",
"Tags": [ "Tags": [
"201" "201"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
}, },
{ {
"Id": 390001006, "Id": 390001004,
"Type": "ProBuff", "Type": "Type=ProBuff",
"Name": "速度下降",
"Desc": "速度下降30%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001007,
"Type": "ProBuff",
"Name": "暴击提升", "Name": "暴击提升",
"Desc": "暴击率提升30%", "Desc": "暴击率提升30%",
"Tags": [ "Tags": [
"201" "201"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
}, },
{ {
"Id": 390001008, "Id": 390001005,
"Type": "ProBuff", "Type": "Type=ProBuff",
"Name": "暴击下降",
"Desc": "暴击率下降30%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001009,
"Type": "ProBuff",
"Name": "烙印",
"Desc": "被攻击时受到的伤害提高25%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001010,
"Type": "ProBuff",
"Name": "失手率提升",
"Desc": "失手率提升50%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390001011,
"Type": "ProBuff",
"Name": "叹息之力",
"Desc": "无法驱散类状态每层使自身攻击力提升5%每10层使自身受到伤害降低3%。最高可叠加50层",
"Tags": [
"201",
"301"
],
"OverlayTimes": 50,
"SameID": true
},
{
"Id": 390001012,
"Type": "ProBuff",
"Name": "暴击抵抗", "Name": "暴击抵抗",
"Desc": "受到暴击概率降低30%", "Desc": "受到暴击概率降低30%",
"Tags": [ "Tags": [
"201" "201"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390001006,
"Type": "Type=ProBuff",
"Name": "叹息之力",
"Desc": "无法驱散类状态每层使自身攻击力提升5%每10层使自身受到伤害降低3%。最高可叠加50层",
"Tags": [
"303"
],
"OverlayTimes": 50,
"SameID": true,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390001007,
"Type": "Type=ProBuff",
"Name": "公牛之怒",
"Desc": "每层使自身基础防御提升10%效果抵抗提升5%最多可叠加10层。",
"Tags": [
"201"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390001008,
"Type": "Type=ProBuff",
"Name": "雷之庇佑",
"Desc": "每次受到攻击提升20%的防御最多叠加5层",
"Tags": [
"201"
],
"OverlayTimes": 5,
"SameID": true,
"RelyTags": [],
"NoRelyTags": [
"402"
]
}, },
{ {
"Id": 390002001, "Id": 390002001,
"Type": "TagBuff", "Type": "Type=ProBuff",
"Name": "眩晕", "Name": "攻击下降",
"Desc": "无法进行任务行动", "Desc": "攻击下降40%",
"Tags": [
"202",
"302"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002002,
"Type": "TagBuff",
"Name": "冰冻",
"Desc": "无法进行任何行动",
"Tags": [
"202",
"302"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002003,
"Type": "TagBuff",
"Name": "无法获得增益效果",
"Desc": "无法附加增益状态(不可驱散)(不配置标签)",
"Tags": [],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002004,
"Type": "TagBuff",
"Name": "无法获得减益效果",
"Desc": "无法获得减益效果(不可驱散)(不配置标签)",
"Tags": [],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002005,
"Type": "TagBuff",
"Name": "免疫",
"Desc": "无法获得减益效果",
"Tags": [
"201"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002006,
"Type": "TagBuff",
"Name": "无敌",
"Desc": "无法受到任何伤害",
"Tags": [
"201"
],
"OverlayTimes": 0,
"SameID": false
},
{
"Id": 390002007,
"Type": "TagBuff",
"Name": "禁疗",
"Desc": "无法恢复生命",
"Tags": [ "Tags": [
"202" "202"
], ],
"OverlayTimes": 0, "OverlayTimes": 0,
"SameID": false "SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390002002,
"Type": "Type=ProBuff",
"Name": "防御下降",
"Desc": "防御下降60%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390002003,
"Type": "Type=ProBuff",
"Name": "速度下降",
"Desc": "速度下降30%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390002004,
"Type": "Type=ProBuff",
"Name": "暴击下降",
"Desc": "暴击率下降30%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390002005,
"Type": "Type=ProBuff",
"Name": "烙印",
"Desc": "被攻击时受到的伤害提高25%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390002006,
"Type": "Type=ProBuff",
"Name": "失手率提升",
"Desc": "失手率提升50%",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390003001,
"Type": "Type=TagBuff",
"Name": "无敌",
"Desc": "不会受到任何伤害",
"Tags": [
"201",
"301"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390003002,
"Type": "Type=TagBuff",
"Name": "对峙",
"Desc": "生命最低降为1",
"Tags": [
"201",
"501"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390003003,
"Type": "Type=TagBuff",
"Name": "免疫控制效果",
"Desc": "无法被附加任何控制效果",
"Tags": [
"304"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 390003004,
"Type": "Type=TagBuff",
"Name": "免除死亡",
"Desc": "",
"Tags": [
"501"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 390004001,
"Type": "Type=TagBuff",
"Name": "眩晕",
"Desc": "无法进行任务行动",
"Tags": [
"202",
"604"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390004002,
"Type": "Type=TagBuff",
"Name": "冰冻",
"Desc": "无法进行任何行动",
"Tags": [
"202",
"604"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390004003,
"Type": "Type=TagBuff",
"Name": "禁疗",
"Desc": "无法恢复生命",
"Tags": [
"202",
"401"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390004004,
"Type": "Type=TagBuff",
"Name": "石化",
"Desc": "无法进行任何行动,不会随着回合到来降低技能冷却",
"Tags": [
"202",
"604",
"602",
"204"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302",
"304"
]
},
{
"Id": 390004005,
"Type": "Type=TagBuff",
"Name": "沉默",
"Desc": "只能释放基础技能",
"Tags": [
"202",
"603",
"204"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302",
"304"
]
},
{
"Id": 390004006,
"Type": "Type=TagBuff",
"Name": "吞噬",
"Desc": "无法进行任何行动,无法被选中,无法被攻击,无法获得任何强化及弱化效果",
"Tags": [
"202",
"604",
"606",
"204"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302",
"304"
]
},
{
"Id": 390004007,
"Type": "Type=TagBuff",
"Name": "挑衅",
"Desc": "回合开始时,会被迫发起攻击,向附加状态者释放基础技能",
"Tags": [
"202",
"204"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302",
"304"
]
},
{
"Id": 390004008,
"Type": "Type=TagBuff",
"Name": "猫猫威慑 ",
"Desc": "携带者阵亡时清除此状态并对携带者一方全体造成崔佛释放者攻击力40%的效果附加伤害每层使伤害系数提升40%最多可叠加5层。",
"Tags": [
"202"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": [
"302"
]
},
{
"Id": 390005001,
"Type": "Type=TagBuff",
"Name": "炎阳",
"Desc": "(无法驱散类状态)可以增强炎阳灼射的威力。",
"Tags": [
"201",
"303"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 390005002,
"Type": "Type=TagBuff",
"Name": "无法获得减益",
"Desc": "无法获得减益效果(不可驱散)(不配置标签)",
"Tags": [
"302"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 390005003,
"Type": "Type=TagBuff",
"Name": "不会失手",
"Desc": "不会失手",
"Tags": [
"502"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 390006001,
"Type": "Type=TagBuff",
"Name": "无法获得增益",
"Desc": "无法附加增益状态(不可驱散)(不配置标签)",
"Tags": [
"302"
],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 300102103,
"Type": "Type=ProBuff",
"Name": "",
"Desc": "受到的所有伤害降低10%",
"Tags": [],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 300162105,
"Type": "Type=CallShieldBuff",
"Name": "",
"Desc": "",
"Tags": [],
"OverlayTimes": 0,
"SameID": false,
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 300192114,
"Type": "Type=ProBuff",
"Name": "猫猫推理",
"Desc": "每层为崔佛释放者提供15%伤害减免",
"Tags": [
"201"
],
"OverlayTimes": 2,
"SameID": true,
"RelyTags": [],
"NoRelyTags": []
} }
] ]

View File

@ -1 +1,624 @@
[] [
{
"Id": 490001001,
"Desc": "免疫",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [
"302"
],
"RelyTags": [],
"NoRelyTags": [
"402"
]
},
{
"Id": 490067001,
"Desc": "被动1 每回合行动前对敌方全体造成80%攻击力伤害",
"When": "RouFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490068001,
"Desc": "被动1 每回合行动前对敌方全体造成80%攻击力伤害",
"When": "RouFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490069001,
"Desc": "每次攻击前对敌方全体造成80%攻击力伤害",
"When": "EffFro",
"Where": "Target=3,EffType=1,EffID=101",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490070001,
"Desc": "每次受到攻击前对敌方全体造成80%攻击力伤害",
"When": "SufEffFro",
"Where": "Target=3,EffType=1,EffID=101",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490071001,
"Desc": "暴击时回复自身5%最大生命值血量",
"When": "CriCal",
"Where": "Target=3,CriRely=1,TesLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490072001,
"Desc": "被暴击时回复自身5%最大生命值血量",
"When": "CovCriCal",
"Where": "Target=3,CriRely=1,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490073001,
"Desc": "受到致死伤害后免除死亡每场战斗最多1次",
"When": "SufDmg",
"Where": "Target=3,LetDmg=1,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490074001,
"Desc": "击破护盾时对敌方全体造成80%攻击力伤害",
"When": "BreShield",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490075001,
"Desc": "护盾被击破时对敌方全体造成80%攻击力伤害",
"When": "ShieldBro",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490076001,
"Desc": "攻击时对敌方全体造成80%攻击力伤害",
"When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490077001,
"Desc": "受到攻击时对敌方全体造成80%攻击力伤害",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490078001,
"Desc": "击杀敌人后对敌方全体造成80%攻击力伤害",
"When": "Kill",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490079001,
"Desc": "死亡后,立即复活",
"When": "Dead",
"Where": "Target=3,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490080001,
"Desc": "复活后对敌方全体造成80%攻击力伤害",
"When": "Resurrection",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490081001,
"Desc": "BUFF结束对敌方全体造成80%攻击力伤害",
"When": "BuffEnd",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490082001,
"Desc": "回合结束后对敌方全体造成80%攻击力伤害",
"When": "RouEnd",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490083001,
"Desc": "行动结束前对敌方全体造成80%攻击力伤害",
"When": "ActEndFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 490084001,
"Desc": "行动结束后对敌方全体造成80%攻击力伤害",
"When": "ActEnd",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400012101,
"Desc": "主被动1 每回合结束后,调用子技能的触发类效果 调用引雷123",
"When": "RouFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400012102,
"Desc": "主被动2 自身的任意主动技能命中敌人触发暴击时调用子技能",
"When": "CriCal",
"Where": "Target=3,CriRely=1,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400012103,
"Desc": "引雷1 在自身新回合开始时,调用子技能的触发类效果",
"When": "RouFro",
"Where": "Target=3,CriRely=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [
"1001"
],
"NoRelyTags": []
},
{
"Id": 400012104,
"Desc": "引雷2 但出于不可行动状态时,调用子技能的触发类效果",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=604,EffTakeRel=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [
"1001"
],
"NoRelyTags": []
},
{
"Id": 400012105,
"Desc": "引雷3 【引雷】期间自身每次受到攻击时,调用子技能的触发类效果",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=101",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [
"1001"
],
"NoRelyTags": []
},
{
"Id": 400022102,
"Desc": "加被动2 每回合行动前为己方全体清除任意一个非无法行动状态的减益状态并回复其5%最大生命值",
"When": "RouFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400022103,
"Desc": "加被动3 且在任意队友获得减益状态时自身获得20%行动值提升每回合仅触发1次。",
"When": "SufEff",
"Where": "Target=1,EffType=1,EffID=202,EffTakeRel=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400092102,
"Desc": "被动2 当敌方单位使其友方减益状态提前结束时令该单位失去30%当前生命值同时失去全部增益状态并获得1回合【石化】效果。",
"When": "ImpEff",
"Where": "Target=2,EffType=1,EffID=105,EffTakeRel=1,EffCovType=1,EffCovId=201,EffCovOp=0,EffReVal=1,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102104,
"Desc": "被动4 每次被施加增益状态时自身获得1层【叹息之力】",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=201",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102105,
"Desc": "被动5 每次被施加减益状态时自身获得1层【叹息之力】",
"When": "SufEff",
"Where": "Target=3,EffType=1,EffID=202",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102106,
"Desc": "被动6 每有1个队友死亡时自身获得10层【叹息之力】",
"When": "Dead",
"Where": "Target=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102107,
"Desc": "被动7 每次战斗中首次受到致命伤害时,免除本次死亡",
"When": "SufDmg",
"Where": "Target=3,LetDmg=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102108,
"Desc": "被动8 每次战斗中首次受到致命伤害时根据当前【叹息之力】层数回复自身生命值状态每层回复自身1%最大生命值状态。",
"When": "SufDmg",
"Where": "Target=3,LetDmg=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400102113,
"Desc": "敌方行动结束前,移除免除死亡",
"When": "ActEndFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400162101,
"Desc": "被动1 对己方任意目标造成治疗效果时会同时为其净化2个减益效果若目标没有减益效果则额外为其施加1回合【免疫】效果。",
"When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=103",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400162102,
"Desc": "被动2 对己方任意目标造成治疗效果时同时自身治疗量溢出的120%将转变为【护盾】效果持续2回合。",
"When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=103",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400191102,
"Desc": "猫猫威慑 敌方死亡后触发调用子技能",
"When": "Dead",
"Where": "Target=2",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400192101,
"Desc": "被动1 每次攻击后没有Buff5且标的生命值比例高于50%则给自己添加行动结束前触发的被动6。每回合仅触发1次 同时修改被动2回合CD",
"When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1",
"AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=1,Val=1",
"Type=ProJudge,JudgeType=1,Key=NowHp_Per,Op=0,Val=500"
],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400192102,
"Desc": "被动2 每次攻击后没有Buff5且目标的生命值比例小于等于50%自身获得1层【猫猫推理】。每回合仅触发1次同时修改被动1回合CD",
"When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1",
"AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=1,Val=1",
"Type=ProJudge,JudgeType=1,Key=NowHp_Per,Op=5,Val=500"
],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400192103,
"Desc": "被动3 每次攻击后若有Buff5则给自己添加行动结束前触发的被动6并修改被动1,2的回合CD",
"When": "ImpEff",
"Where": "Target=3,EffType=1,EffID=101,TriLim=1",
"AddCon": [
"Type=BuffRely,RelyType=0,Key=300192112,Op=0,Val=0"
],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400192104,
"Desc": "被动4 检测猫猫推理层数达到2层立即重置全部技能的冷却时间并且给自身加下一回合必定对目标进行重复攻击的标记Buff5之后清除猫猫推理",
"When": "ImpEff",
"Where": "Target=3,EffType=0,EffID=300192114",
"AddCon": [
"Type=BuffRely,RelyType=0,Key=300192114,Op=0,Val=1"
],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400192112,
"Desc": "被动6 行动结束前触发,对该目标重复释放一次本次攻击所用技能,触发后移除",
"When": "ActEndFro",
"Where": "Target=3",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400622101,
"Desc": "被动1 当队友向敌方任意1个目标发起攻击时给自己加被动2",
"When": "ImpEff",
"Where": "Target=1,EffType=1,EffID=101,TriLim=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
},
{
"Id": 400622102,
"Desc": "被动2 友军行动结束前触发跟随队友对目标造成攻击力40%的伤害",
"When": "ActEndFro",
"Where": "Target=1,TarActTar=1",
"AddCon": [],
"Type": "CallSkillPas",
"MaxEmitTimes": 0,
"OverlayTimes": 0,
"SameID": false,
"Tags": [],
"RelyTags": [],
"NoRelyTags": []
}
]

View File

@ -35,18 +35,6 @@
"comname": "useragreement", "comname": "useragreement",
"des": "登录界面用户隐私协议" "des": "登录界面用户隐私协议"
}, },
{
"id": "notice",
"file": "LoginNoticeWindow",
"unloadpkg": 0,
"loadtype": 1,
"full": 0,
"blur": 1,
"package": "login/login",
"packagename": "login",
"comname": "notice",
"des": "登录界面公告"
},
{ {
"id": "serverlist", "id": "serverlist",
"file": "ServerListWindow", "file": "ServerListWindow",
@ -442,5 +430,29 @@
"packagename": "roledetails", "packagename": "roledetails",
"comname": "main", "comname": "main",
"des": "英雄详细信息" "des": "英雄详细信息"
},
{
"id": "bag",
"file": "BagWindow",
"unloadpkg": 0,
"loadtype": 1,
"full": 1,
"blur": 0,
"package": "bag/bag",
"packagename": "bag",
"comname": "main",
"des": "背包"
},
{
"id": "notice",
"file": "NoticeWindow",
"unloadpkg": 0,
"loadtype": 1,
"full": 0,
"blur": 0,
"package": "notice/notice",
"packagename": "notice",
"comname": "main",
"des": "背包"
} }
] ]

View File

@ -68,7 +68,7 @@ var (
mainType: string(comm.ModuleHero), mainType: string(comm.ModuleHero),
subType: hero.HeroSubTypeChouka, subType: hero.HeroSubTypeChouka,
req: &pb.HeroChoukaReq{ req: &pb.HeroChoukaReq{
HeroIds: []int32{42911}, HeroIds: []int32{14001, 14002, 14003, 14004, 14005, 14006, 14007},
}, },
rsp: &pb.HeroChoukaResp{}, rsp: &pb.HeroChoukaResp{},
// enabled: true, // enabled: true,
@ -78,7 +78,7 @@ var (
subType: hero.HeroSubTypeList, subType: hero.HeroSubTypeList,
req: &pb.HeroListReq{}, req: &pb.HeroListReq{},
rsp: &pb.HeroListResp{}, rsp: &pb.HeroListResp{},
enabled: true, // enabled: true,
next: func(robot *Robot, rsp proto.Message) { next: func(robot *Robot, rsp proto.Message) {
if r, ok := rsp.(*pb.HeroListResp); ok { if r, ok := rsp.(*pb.HeroListResp); ok {
tcs := []*TestCase{} tcs := []*TestCase{}
@ -94,11 +94,13 @@ var (
HeroRace: []*pb.CostCardData{ HeroRace: []*pb.CostCardData{
{ {
CostCardObj: heroId, CostCardObj: heroId,
Amount: 1,
}, },
}, },
Hero: []*pb.CostCardData{ Hero: []*pb.CostCardData{
{ {
CostCardObj: heroId, CostCardObj: heroId,
Amount: 1,
}, },
}, },
}, },
@ -111,18 +113,35 @@ var (
} }
}, },
}, { }, {
desc: "英雄列表",
// enabled: true, mainType: string(comm.ModuleHero),
}, { subType: hero.HeroSubTypeList,
req: &pb.HeroListReq{},
rsp: &pb.HeroListResp{},
enabled: true,
next: func(robot *Robot, rsp proto.Message) {
if r, ok := rsp.(*pb.HeroListResp); ok {
tcs := []*TestCase{}
// selHero := r.List[0] //选中的英雄
for _, v := range r.List {
heroId := v.Id
tc := &TestCase{
desc: "英雄升级",
mainType: string(comm.ModuleHero), mainType: string(comm.ModuleHero),
subType: hero.StrengthenUplv, subType: hero.StrengthenUplv,
req: &pb.HeroStrengthenUplvReq{ req: &pb.HeroStrengthenUplvReq{
HeroObjID: "62bd0489ff6632434a7d0d1f", HeroObjID: heroId,
ExpCardID: "62bd0b4eca37634b8230d4be", ExpCardID: "62d124700625e43054ba307d",
Amount: 1, Amount: 1,
}, },
rsp: &pb.HeroStrengthenUplvResp{}, rsp: &pb.HeroStrengthenUplvResp{},
// enabled: true, enabled: true,
}
tcs = append(tcs, tc)
}
robot.addBuilders(tcs)
}
},
}, },
} }
) )

View File

@ -53,6 +53,7 @@ func initlog() {
writers := []io.Writer{ writers := []io.Writer{
file, file,
os.Stdout} os.Stdout}
//同时写文件和屏幕 //同时写文件和屏幕
fileAndStdoutWriter := io.MultiWriter(writers...) fileAndStdoutWriter := io.MultiWriter(writers...)
if err == nil { if err == nil {
@ -93,12 +94,6 @@ func (r *Robot) Run() {
r.AccountLogin() r.AccountLogin()
} }
// go func() {
// for {
// r.handleRsp()
// }
// }()
ticker := time.NewTicker(time.Second * 5) ticker := time.NewTicker(time.Second * 5)
go func() { go func() {
for { for {
@ -129,7 +124,6 @@ type TestCase struct {
enabled bool //是否启用 enabled bool //是否启用
start time.Time //启用时间 start time.Time //启用时间
hs time.Duration //耗时 hs time.Duration //耗时
// requested bool //是否是请求的case
print func(rsp proto.Message) //定义打印 print func(rsp proto.Message) //定义打印
next func(robot *Robot, rsp proto.Message) //处理下一层用例请求 next func(robot *Robot, rsp proto.Message) //处理下一层用例请求
} }
@ -162,7 +156,6 @@ func (r *Robot) handleReq() {
for _, b := range r.builderMap { for _, b := range r.builderMap {
if b.enabled && b.req != nil { if b.enabled && b.req != nil {
time.Sleep(time.Millisecond * 500) time.Sleep(time.Millisecond * 500)
// r.reqCh <- b.id
b.start = time.Now() b.start = time.Now()
r.start = time.Now() r.start = time.Now()
head := &pb.UserMessage{MainType: b.mainType, SubType: b.subType} head := &pb.UserMessage{MainType: b.mainType, SubType: b.subType}
@ -229,7 +222,6 @@ func (r *Robot) handleRsp(id string) {
uuid = id uuid = id
} }
// uuid := <-r.reqCh
r.handleNotify(uuid, msg) r.handleNotify(uuid, msg)
if v, ok := r.builderMap[uuid]; ok { if v, ok := r.builderMap[uuid]; ok {
if v.enabled && if v.enabled &&

View File

@ -1,7 +1,6 @@
package robot package robot
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/modules/task" "go_dreamfactory/modules/task"
"go_dreamfactory/pb" "go_dreamfactory/pb"
@ -12,7 +11,6 @@ import (
var ( var (
taskBuilders = []*TestCase{ taskBuilders = []*TestCase{
{ {
//list
desc: "任务列表", desc: "任务列表",
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeList, subType: task.TaskSubTypeList,
@ -20,13 +18,19 @@ var (
TaskTag: int32(comm.TASK_DAILY), TaskTag: int32(comm.TASK_DAILY),
}, },
rsp: &pb.TaskListResp{}, rsp: &pb.TaskListResp{},
print: func(rsp proto.Message) { // print: func(rsp proto.Message) {
out := rsp.(*pb.TaskListResp) // out := rsp.(*pb.TaskListResp)
for _, v := range out.List { // for _, v := range out.List {
fmt.Printf("%v \n", v) // fmt.Printf("%v \n", v)
} // }
}, // },
// enabled: true, // enabled: true,
next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{}
if _, ok := rsp.(*pb.TaskListResp); ok {
}
robot.addBuilders(tcs)
},
}, { }, {
desc: "领取任务奖励", desc: "领取任务奖励",
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),

View File

@ -69,13 +69,13 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
} }
for _, value := range tagHeroConfig.GetDataList() { for _, value := range tagHeroConfig.GetDataList() {
if _hero.HeroID == value.Id && _hero.Star == value.Star && _hero.Lv >= value.Maxlevel { // 找到了 满足升星条件 if _hero.HeroID == value.Id && _hero.Star == value.Star { //&& _hero.Lv >= value.Maxlevel { // 找到了 满足升星条件
target = value target = value
break break
} }
} }
if target == nil { if target == nil {
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroStarErr //升星条件不满足
return return
} }
// 优先校验数量对不对 // 优先校验数量对不对

View File

@ -10,11 +10,16 @@ import (
//参数校验 //参数校验
func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode) { func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || req.ExpCardID == "" || req.Amount <= 0 { if req.HeroObjID == "" || len(req.ExpCards) == 0 {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
for k, v := range req.ExpCards {
if v <= 0 || k == "" {
code = pb.ErrorCode_ReqParameterError
return
}
}
return return
} }
@ -25,11 +30,11 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
curLv int32 curLv int32
curExp int32 // 当前英雄的经验 curExp int32 // 当前英雄的经验
addExp int32 // 需要增加的经验 addExp int32 // 需要增加的经验
costRes map[string][]*cfg.Game_atn // 需要消耗的资源 costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄 _hero *pb.DBHero // 目标英雄
_expHero *pb.DBHero // 消耗英雄 _expHero *pb.DBHero // 消耗英雄
) )
costRes = make(map[string][]*cfg.Game_atn, 0)
code = this.StrengthenUplvCheck(session, req) // check code = this.StrengthenUplvCheck(session, req) // check
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
@ -38,31 +43,43 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
// 只有英雄卡才能升级
_expHero, code = this.module.GetHero(session.GetUserId(), req.ExpCardID) // 校验需要消耗经验卡牌的对象是否存在 if _hero.CardType != comm.CardTypeHero {
if code != pb.ErrorCode_Success { code = pb.ErrorCode_HeroTypeErr
return return
} }
if req.Amount <= 0 { // 消耗数量校验 for k, v := range req.ExpCards {
code = pb.ErrorCode_HeroNoExist _expHero, code = this.module.GetHero(session.GetUserId(), k) // 校验需要消耗经验卡牌的对象是否存在
if code != pb.ErrorCode_Success {
return return
} }
if _expHero.Block { // 锁定的卡不允许被消耗 if _expHero.Block { // 锁定的卡不允许被消耗
code = pb.ErrorCode_HeroIsLock code = pb.ErrorCode_HeroIsLock
return return
} }
curLv = _hero.Lv
curExp = _hero.Exp // 当前英雄的经验 if v > _expHero.SameCount { // 校验数量
addExp = 1000
// 查询 本次消耗会获得多少经验
expConf := this.module.configure.GetHeroExp(_expHero.HeroID)
if expConf != nil {
addExp = expConf.Heroexp * req.Amount
}
if _expHero.SameCount < req.Amount { // 消耗经验卡片数量不足
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
return return
} }
// 查询 本次消耗会获得多少经验
expConf := this.module.configure.GetHeroExp(_expHero.HeroID)
if expConf != nil {
addExp += expConf.Heroexp * v
}
costGold = expConf.Needgold * v // 需要消耗的金币
if _expHero.SameCount < v { // 消耗经验卡片数量不足
code = pb.ErrorCode_HeroNoEnough
return
}
}
if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr
return
}
curLv = _hero.Lv
curExp = _hero.Exp // 当前英雄的经验
// 校验当前能不能升级 // 校验当前能不能升级
if _hero.Lv >= _hero.Star*comm.HeroStarLvRatio { // 达到最大等级 if _hero.Lv >= _hero.Star*comm.HeroStarLvRatio { // 达到最大等级
@ -78,40 +95,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = pb.ErrorCode_HeroMaxLv code = pb.ErrorCode_HeroMaxLv
return return
} }
curExp += addExp // 先把经验加上
for { // 死循环判断一键升级
if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
curLv = maxLv
curExp = _data.Heroexp[0].N
break
}
if _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
break
} else { // 升级操作
curExp -= _data.Heroexp[0].N
curLv += 1 // 经验够了 那么等级+1
_data = this.module.configure.GetHeroLv(curLv)
if _data == nil { // 等级加失败了 回到原来的等级
curLv -= 1
break
}
for _, v := range _data.Gold {
if _, ok := costRes[v.T]; !ok {
costRes[v.T] = append(costRes[v.T], v)
} else {
for _, v1 := range costRes[v.T] {
if v1.T == v.T && v1.A == v.A {
v1.N += v.N
}
}
}
}
}
}
} else { } else {
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
return return
@ -121,29 +104,39 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return return
} }
this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costRes["gold"], addExp) this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costGold, addExp)
// 消耗金币
res := make([]*cfg.Game_atn, 0)
_d := &cfg.Game_atn{
A: "attr",
T: "gold",
N: costGold,
}
res = append(res, _d)
code = this.module.CheckConsumeRes(session.GetUserId(), res, true)
if code != pb.ErrorCode_Success {
return
}
// 执行升级逻辑 // 执行升级逻辑
code = this.module.AddCardExp(session.GetUserId(), req.HeroObjID, addExp) // 加经验 code = this.module.AddCardExp(session.GetUserId(), req.HeroObjID, addExp) // 加经验
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
// 升级失败资源回退
code = this.module.DispenseRes(session.GetUserId(), res, true)
return return
} }
// 消耗道具
for _, v := range costRes {
code = this.module.CheckConsumeRes(session.GetUserId(), v, true)
if code != pb.ErrorCode_Success {
return
}
}
// 删除经验卡 // 删除经验卡
err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), req.ExpCardID, req.Amount) for k, v := range req.ExpCards {
err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), k, v)
if err1 != nil { if err1 != nil {
code = pb.ErrorCode_HeroNoEnough code = pb.ErrorCode_HeroNoEnough
this.module.Errorf("delete err failed err:%T!", err1) this.module.Errorf("delete err failed err:%T!", err1)
return return
} }
}
err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
if err1 != nil { if err1 != nil {
this.module.Errorf("PushHeroProperty err!") this.module.Errorf("PushHeroProperty err!")
} }

View File

@ -236,7 +236,7 @@ func (this *ModelItemsComp) Pack_AddItemToUserPackByGrid(uId string, gridid stri
if num < 0 { if num < 0 {
err = ItemNotEnoughError err = ItemNotEnoughError
} else { } else {
if num > int64(conf.Maxnum) { if num > int64(conf.UpperLimit) {
err = GirdAmountUpper err = GirdAmountUpper
return return
} else { } else {
@ -281,15 +281,15 @@ func (this *ModelItemsComp) pack_addItemToUserPack(uid string, items []*pb.DB_Us
update = append(update, v) update = append(update, v)
break break
} else if num > 0 && num > int64(v.Amount) { } else if num > 0 && num > int64(v.Amount) {
if num <= int64(conf.Maxnum) { if num <= int64(conf.UpperLimit) {
leftnum = 0 leftnum = 0
v.Amount = uint32(num) v.Amount = uint32(num)
update = append(update, v) update = append(update, v)
break break
} else { } else {
if v.Amount < uint32(conf.Maxnum) { if v.Amount < uint32(conf.UpperLimit) {
leftnum = int64(num - int64(conf.Maxnum)) leftnum = int64(num - int64(conf.UpperLimit))
v.Amount = uint32(conf.Maxnum) v.Amount = uint32(conf.UpperLimit)
update = append(update, v) update = append(update, v)
} }
} }
@ -306,7 +306,7 @@ func (this *ModelItemsComp) pack_addItemToUserPack(uid string, items []*pb.DB_Us
if leftnum > 0 { //还没有放完 寻找空的格子填充 if leftnum > 0 { //还没有放完 寻找空的格子填充
index := int32(len(items)) index := int32(len(items))
for leftnum > 0 { //需要补充格子 for leftnum > 0 { //需要补充格子
if leftnum <= int64(conf.Maxnum) { if leftnum <= int64(conf.UpperLimit) {
grid := &pb.DB_UserItemData{ grid := &pb.DB_UserItemData{
GridId: primitive.NewObjectID().Hex(), GridId: primitive.NewObjectID().Hex(),
UId: uid, UId: uid,
@ -320,12 +320,12 @@ func (this *ModelItemsComp) pack_addItemToUserPack(uid string, items []*pb.DB_Us
leftnum = 0 leftnum = 0
break break
} else { } else {
leftnum -= int64(conf.Maxnum) leftnum -= int64(conf.UpperLimit)
grid := &pb.DB_UserItemData{ grid := &pb.DB_UserItemData{
GridId: primitive.NewObjectID().Hex(), GridId: primitive.NewObjectID().Hex(),
UId: uid, UId: uid,
ItemId: itemId, ItemId: itemId,
Amount: uint32(conf.Maxnum), Amount: uint32(conf.UpperLimit),
CTime: time.Now().Unix(), CTime: time.Now().Unix(),
IsNewItem: isNew, IsNewItem: isNew,
} }

View File

@ -84,6 +84,10 @@ const (
ErrorCode_HeroMaxAwaken ErrorCode = 1312 // 达到最大觉醒等级 ErrorCode_HeroMaxAwaken ErrorCode = 1312 // 达到最大觉醒等级
ErrorCode_HeroIsLock ErrorCode = 1313 // 英雄被锁定不能被消耗 ErrorCode_HeroIsLock ErrorCode = 1313 // 英雄被锁定不能被消耗
ErrorCode_HeroMaxCount ErrorCode = 1314 // 英雄达到最大数量 ErrorCode_HeroMaxCount ErrorCode = 1314 // 英雄达到最大数量
ErrorCode_HeroCostTypeErr ErrorCode = 1315 // 消耗英雄参数不匹配
ErrorCode_HeroStarErr ErrorCode = 1316 // 不满足升星条件
ErrorCode_HeroTypeErr ErrorCode = 1317 // 升级英雄类型不对
ErrorCode_HeroExpTypeErr ErrorCode = 1318 // 技能升级卡类型不对
// equipment // equipment
ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器 ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器
ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限 ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限
@ -160,6 +164,10 @@ var (
1312: "HeroMaxAwaken", 1312: "HeroMaxAwaken",
1313: "HeroIsLock", 1313: "HeroIsLock",
1314: "HeroMaxCount", 1314: "HeroMaxCount",
1315: "HeroCostTypeErr",
1316: "HeroStarErr",
1317: "HeroTypeErr",
1318: "HeroExpTypeErr",
1400: "EquipmentOnFoundEquipment", 1400: "EquipmentOnFoundEquipment",
1401: "EquipmentLvlimitReached", 1401: "EquipmentLvlimitReached",
1500: "StoryNotFindChapter", 1500: "StoryNotFindChapter",
@ -230,6 +238,10 @@ var (
"HeroMaxAwaken": 1312, "HeroMaxAwaken": 1312,
"HeroIsLock": 1313, "HeroIsLock": 1313,
"HeroMaxCount": 1314, "HeroMaxCount": 1314,
"HeroCostTypeErr": 1315,
"HeroStarErr": 1316,
"HeroTypeErr": 1317,
"HeroExpTypeErr": 1318,
"EquipmentOnFoundEquipment": 1400, "EquipmentOnFoundEquipment": 1400,
"EquipmentLvlimitReached": 1401, "EquipmentLvlimitReached": 1401,
"StoryNotFindChapter": 1500, "StoryNotFindChapter": 1500,
@ -275,7 +287,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0x87, 0x0b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0xd6, 0x0b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -348,23 +360,28 @@ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10,
0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b,
0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f,
0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, 0x10, 0x0a, 0x0b,
0x65, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10,
0x65, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a,
0x64, 0x10, 0xf9, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x74, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45,
0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x12, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0xdd, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64,
0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0x10, 0xf9, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x74, 0x46,
0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x12, 0x0a,
0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd,
0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc6, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c,
0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c,
0xc4, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2,
0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc5, 0x0c, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69,
0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc6, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73,
0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc4,
0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e,
0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc5, 0x0c, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -263,8 +263,7 @@ type HeroStrengthenUplvReq struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
HeroObjID string `protobuf:"bytes,1,opt,name=heroObjID,proto3" json:"heroObjID"` // 英雄对象ID HeroObjID string `protobuf:"bytes,1,opt,name=heroObjID,proto3" json:"heroObjID"` // 英雄对象ID
ExpCardID string `protobuf:"bytes,2,opt,name=expCardID,proto3" json:"expCardID"` // 经验卡对象ID ExpCards map[string]int32 `protobuf:"bytes,2,rep,name=expCards,proto3" json:"expCards" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
Amount int32 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount"` // 消耗经验卡数量}
} }
func (x *HeroStrengthenUplvReq) Reset() { func (x *HeroStrengthenUplvReq) Reset() {
@ -306,18 +305,11 @@ func (x *HeroStrengthenUplvReq) GetHeroObjID() string {
return "" return ""
} }
func (x *HeroStrengthenUplvReq) GetExpCardID() string { func (x *HeroStrengthenUplvReq) GetExpCards() map[string]int32 {
if x != nil { if x != nil {
return x.ExpCardID return x.ExpCards
} }
return "" return nil
}
func (x *HeroStrengthenUplvReq) GetAmount() int32 {
if x != nil {
return x.Amount
}
return 0
} }
// 卡牌升级返回 // 卡牌升级返回
@ -1389,114 +1381,118 @@ var file_hero_hero_msg_proto_rawDesc = []byte{
0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a,
0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74,
0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x6c, 0x76, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x6c, 0x76, 0x52, 0x65, 0x71, 0x12,
0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09,
0x65, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x65, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75,
0x6e, 0x74, 0x22, 0x35, 0x0a, 0x16, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x6c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04,
0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48,
0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x48, 0x0a, 0x0c, 0x43, 0x6f, 0x73,
0x74, 0x43, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x73,
0x74, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x63, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x12, 0x16, 0x0a, 0x06, 0x61,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f,
0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65,
0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12,
0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x21, 0x0a, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x40, 0x0a,
0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x6f, 0x08, 0x65, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x24, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e,
0x12, 0x29, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x55, 0x70, 0x6c, 0x76, 0x52, 0x65, 0x71, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x73,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x73, 0x1a,
0x61, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x61, 0x63, 0x65, 0x22, 0x37, 0x0a, 0x18, 0x48, 0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x43, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x74, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x35, 0x0a, 0x16,
0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70,
0x6c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68,
0x65, 0x72, 0x6f, 0x22, 0x48, 0x0a, 0x0c, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x44,
0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4f,
0x62, 0x6a, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x61,
0x72, 0x64, 0x4f, 0x62, 0x6a, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01,
0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e,
0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72,
0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65,
0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x21, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64,
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x29, 0x0a, 0x08, 0x68, 0x65,
0x72, 0x6f, 0x52, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43,
0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x68, 0x65, 0x72,
0x6f, 0x52, 0x61, 0x63, 0x65, 0x22, 0x37, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72,
0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73,
0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x5a,
0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e,
0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65,
0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68,
0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74,
0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x22, 0x38, 0x0a, 0x19, 0x48, 0x65,
0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04,
0x68, 0x65, 0x72, 0x6f, 0x22, 0x5a, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x4e, 0x0a, 0x10, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f,
0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f,
0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72,
0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x4f, 0x62,
0x6a, 0x49, 0x44, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x4f,
0x62, 0x6a, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f,
0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72,
0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x27,
0x0a, 0x0a, 0x75, 0x70, 0x53, 0x74, 0x61, 0x72, 0x43, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x0a, 0x75, 0x70, 0x53,
0x74, 0x61, 0x72, 0x43, 0x61, 0x72, 0x64, 0x22, 0x35, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71,
0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x4d,
0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x18, 0x02, 0x20, 0x0a, 0x16, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f,
0x22, 0x38, 0x0a, 0x19, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18,
0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x71, 0x0a,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x4e, 0x0a, 0x10, 0x48, 0x65, 0x19, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x73,
0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65,
0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68,
0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x45,
0x63, 0x6f, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65,
0x09, 0x63, 0x6f, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x11, 0x48, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x54, 0x79, 0x70,
0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x22, 0x39, 0x0a, 0x1a, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x55, 0x73, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b,
0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e,
0x65, 0x72, 0x67, 0x79, 0x12, 0x27, 0x0a, 0x0a, 0x75, 0x70, 0x53, 0x74, 0x61, 0x72, 0x43, 0x61,
0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x0a, 0x75, 0x70, 0x53, 0x74, 0x61, 0x72, 0x43, 0x61, 0x72, 0x64, 0x22, 0x35, 0x0a,
0x15, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65,
0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62,
0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f,
0x62, 0x6a, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x16, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f,
0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b,
0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0d, 0x48,
0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x65, 0x72, 0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09,
0x72, 0x67, 0x79, 0x22, 0x71, 0x0a, 0x19, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x61, 0x6e, 0x63, 0x65, 0x55, 0x73, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x71, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x72, 0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04,
0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x1c, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48,
0x0a, 0x09, 0x75, 0x73, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x29, 0x0a, 0x0d, 0x48, 0x65, 0x72,
0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x43, 0x68, 0x6f, 0x75, 0x6b, 0x61, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65,
0x75, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72,
0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x1a, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x31, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x6f, 0x75,
0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x73, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x6b, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f,
0x6f, 0x22, 0x2d, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f,
0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03,
0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x64, 0x64,
0x29, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x6f, 0x75, 0x6b, 0x61, 0x52, 0x65, 0x71, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x41, 0x64,
0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x22, 0x31, 0x0a, 0x0e, 0x48, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
0x72, 0x6f, 0x43, 0x68, 0x6f, 0x75, 0x6b, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50,
0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x9e, 0x02, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50,
0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f,
0x40, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22,
0x72, 0x74, 0x79, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x2b, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e,
0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0e,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x41, 0x64, 0x64, 0x4e, 0x65, 0x77, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25,
0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68,
0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63,
0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65,
0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x4e, 0x65, 0x77, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72,
0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
} }
var ( var (
@ -1511,7 +1507,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte {
return file_hero_hero_msg_proto_rawDescData return file_hero_hero_msg_proto_rawDescData
} }
var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_hero_hero_msg_proto_goTypes = []interface{}{ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroInfoReq)(nil), // 0: HeroInfoReq (*HeroInfoReq)(nil), // 0: HeroInfoReq
(*HeroInfoResp)(nil), // 1: HeroInfoResp (*HeroInfoResp)(nil), // 1: HeroInfoResp
@ -1539,33 +1535,35 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroLockReq)(nil), // 23: HeroLockReq (*HeroLockReq)(nil), // 23: HeroLockReq
(*HeroLockResp)(nil), // 24: HeroLockResp (*HeroLockResp)(nil), // 24: HeroLockResp
(*AddNewHeroPush)(nil), // 25: AddNewHeroPush (*AddNewHeroPush)(nil), // 25: AddNewHeroPush
nil, // 26: HeroProperty.PropertyEntry nil, // 26: HeroStrengthenUplvReq.ExpCardsEntry
nil, // 27: HeroProperty.AddPropertyEntry nil, // 27: HeroProperty.PropertyEntry
(*DBHero)(nil), // 28: DBHero nil, // 28: HeroProperty.AddPropertyEntry
(*DBHero)(nil), // 29: DBHero
} }
var file_hero_hero_msg_proto_depIdxs = []int32{ var file_hero_hero_msg_proto_depIdxs = []int32{
28, // 0: HeroInfoResp.base:type_name -> DBHero 29, // 0: HeroInfoResp.base:type_name -> DBHero
28, // 1: HeroListResp.list:type_name -> DBHero 29, // 1: HeroListResp.list:type_name -> DBHero
28, // 2: HeroStrengthenUplvResp.hero:type_name -> DBHero 26, // 2: HeroStrengthenUplvReq.expCards:type_name -> HeroStrengthenUplvReq.ExpCardsEntry
7, // 3: HeroStrengthenUpStarReq.hero:type_name -> CostCardData 29, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
7, // 4: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData 7, // 4: HeroStrengthenUpStarReq.hero:type_name -> CostCardData
28, // 5: HeroStrengthenUpStarResp.hero:type_name -> DBHero 7, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData
28, // 6: HeroStrengthenUpSkillResp.hero:type_name -> DBHero 29, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
28, // 7: HeroResonanceResp.hero:type_name -> DBHero 29, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
28, // 8: HeroResonanceResp.upStarCard:type_name -> DBHero 29, // 8: HeroResonanceResp.hero:type_name -> DBHero
28, // 9: HeroResonanceResetResp.hero:type_name -> DBHero 29, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
28, // 10: HeroResonanceUseEnergyResp.hero:type_name -> DBHero 29, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
28, // 11: HeroAwakenResp.hero:type_name -> DBHero 29, // 11: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
28, // 12: HeroChoukaResp.heroes:type_name -> DBHero 29, // 12: HeroAwakenResp.hero:type_name -> DBHero
26, // 13: HeroProperty.property:type_name -> HeroProperty.PropertyEntry 29, // 13: HeroChoukaResp.heroes:type_name -> DBHero
27, // 14: HeroProperty.addProperty:type_name -> HeroProperty.AddPropertyEntry 27, // 14: HeroProperty.property:type_name -> HeroProperty.PropertyEntry
28, // 15: HeroLockResp.hero:type_name -> DBHero 28, // 15: HeroProperty.addProperty:type_name -> HeroProperty.AddPropertyEntry
28, // 16: AddNewHeroPush.hero:type_name -> DBHero 29, // 16: HeroLockResp.hero:type_name -> DBHero
17, // [17:17] is the sub-list for method output_type 29, // 17: AddNewHeroPush.hero:type_name -> DBHero
17, // [17:17] is the sub-list for method input_type 18, // [18:18] is the sub-list for method output_type
17, // [17:17] is the sub-list for extension type_name 18, // [18:18] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension extendee 18, // [18:18] is the sub-list for extension type_name
0, // [0:17] is the sub-list for field type_name 18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
} }
func init() { file_hero_hero_msg_proto_init() } func init() { file_hero_hero_msg_proto_init() }
@ -1894,7 +1892,7 @@ func file_hero_hero_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_msg_proto_rawDesc, RawDescriptor: file_hero_hero_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 28, NumMessages: 29,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -68,6 +68,9 @@ enum ErrorCode {
HeroIsLock = 1313; // HeroIsLock = 1313; //
HeroMaxCount = 1314; // HeroMaxCount = 1314; //
HeroCostTypeErr = 1315; // HeroCostTypeErr = 1315; //
HeroStarErr = 1316; //
HeroTypeErr = 1317; //
HeroExpTypeErr = 1318; //
// equipment // equipment
EquipmentOnFoundEquipment = 1400; // EquipmentOnFoundEquipment = 1400; //

View File

@ -25,8 +25,7 @@ message ItemData {
// //
message HeroStrengthenUplvReq { message HeroStrengthenUplvReq {
string heroObjID = 1; // ID string heroObjID = 1; // ID
string expCardID = 2; // ID map<string, int32> expCards = 2;
int32 amount = 3; // }
} }
// //

View File

@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type _ALocalizeConfig struct {
Key string
}
func New_ALocalizeConfig(_buf map[string]interface{}) (_v interface{}, err error) {
var id string
var _ok_ bool
if id, _ok_ = _buf["__type__"].(string) ; !_ok_ {
return nil, errors.New("type id missing")
}
switch id {
case "LocalizeConfig_CN": return New_LocalizeConfig_CN(_buf);
case "LocalizeConfig_EN": return New_LocalizeConfig_EN(_buf);
case "LocalizeConfig_TW": return New_LocalizeConfig_TW(_buf);
default: return nil, errors.New("unknown type id")
}
return
}
func New_ALocalizeConfig_Body(_buf map[string]interface{}) (_v *_ALocalizeConfig, err error) {
_v = &_ALocalizeConfig{}
{ var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
return
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,29 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type _LocalizeConfig_CN struct {
_ALocalizeConfig
TextCn string
}
func (_LocalizeConfig_CN) GetTypeId() int {
return 2049582687
}
func New_LocalizeConfig_CN(_buf map[string]interface{}) (_v *_LocalizeConfig_CN, err error) {
_v = &_LocalizeConfig_CN{}
var _p *_ALocalizeConfig
if _p, err = New_ALocalizeConfig_Body(_buf) ; err != nil { return }
_v._ALocalizeConfig = *_p
{ var _ok_ bool; if _v.TextCn, _ok_ = _buf["text_cn"].(string); !_ok_ { err = errors.New("text_cn error"); return } }
return
}

View File

@ -0,0 +1,29 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type _LocalizeConfig_EN struct {
_ALocalizeConfig
TextEn string
}
func (_LocalizeConfig_EN) GetTypeId() int {
return 2049582749
}
func New_LocalizeConfig_EN(_buf map[string]interface{}) (_v *_LocalizeConfig_EN, err error) {
_v = &_LocalizeConfig_EN{}
var _p *_ALocalizeConfig
if _p, err = New_ALocalizeConfig_Body(_buf) ; err != nil { return }
_v._ALocalizeConfig = *_p
{ var _ok_ bool; if _v.TextEn, _ok_ = _buf["text_en"].(string); !_ok_ { err = errors.New("text_en error"); return } }
return
}

View File

@ -0,0 +1,29 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type _LocalizeConfig_TW struct {
_ALocalizeConfig
TextTw string
}
func (_LocalizeConfig_TW) GetTypeId() int {
return 2049583223
}
func New_LocalizeConfig_TW(_buf map[string]interface{}) (_v *_LocalizeConfig_TW, err error) {
_v = &_LocalizeConfig_TW{}
var _p *_ALocalizeConfig
if _p, err = New_ALocalizeConfig_Body(_buf) ; err != nil { return }
_v._ALocalizeConfig = *_p
{ var _ok_ bool; if _v.TextTw, _ok_ = _buf["text_tw"].(string); !_ok_ { err = errors.New("text_tw error"); return } }
return
}

View File

@ -12,12 +12,14 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error) type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct { type Tables struct {
LocalizeConfig_CNCategory *Localize_LocalizeConfig_CNCategory
LocalizeConfig_ENCategory *Localize_LocalizeConfig_ENCategory
LocalizeConfig_TWCategory *Localize_LocalizeConfig_TWCategory
global *Game_global global *Game_global
hero *Game_hero hero *Game_hero
ui *Game_ui ui *Game_ui
skill *Game_skill skill *Game_skill
plot *Game_plot plot *Game_plot
language *Game_language
extservers *Game_extservers extservers *Game_extservers
skillAtk *Game_skillAtk skillAtk *Game_skillAtk
skillAfteratk *Game_skillAfteratk skillAfteratk *Game_skillAfteratk
@ -47,6 +49,9 @@ type Tables struct {
storyHard *Game_storyHard storyHard *Game_storyHard
storyPurgatory *Game_storyPurgatory storyPurgatory *Game_storyPurgatory
serverList *Game_serverList serverList *Game_serverList
com *Game_com
newSkill *Game_newSkill
model *Game_model
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -54,6 +59,24 @@ func NewTables(loader JsonLoader) (*Tables, error) {
var buf []map[string]interface{} var buf []map[string]interface{}
tables := &Tables{} tables := &Tables{}
if buf, err = loader("LocalizeConfig_CN") ; err != nil {
return nil, err
}
if tables.LocalizeConfig_CNCategory, err = NewLocalize_LocalizeConfig_CNCategory(buf) ; err != nil {
return nil, err
}
if buf, err = loader("LocalizeConfig_EN") ; err != nil {
return nil, err
}
if tables.LocalizeConfig_ENCategory, err = NewLocalize_LocalizeConfig_ENCategory(buf) ; err != nil {
return nil, err
}
if buf, err = loader("LocalizeConfig_TW") ; err != nil {
return nil, err
}
if tables.LocalizeConfig_TWCategory, err = NewLocalize_LocalizeConfig_TWCategory(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_global") ; err != nil { if buf, err = loader("game_global") ; err != nil {
return nil, err return nil, err
} }
@ -84,12 +107,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.plot, err = NewGame_plot(buf) ; err != nil { if tables.plot, err = NewGame_plot(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_language") ; err != nil {
return nil, err
}
if tables.language, err = NewGame_language(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_extservers") ; err != nil { if buf, err = loader("game_extservers") ; err != nil {
return nil, err return nil, err
} }
@ -264,5 +281,23 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.serverList, err = NewGame_serverList(buf) ; err != nil { if tables.serverList, err = NewGame_serverList(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_com") ; err != nil {
return nil, err
}
if tables.com, err = NewGame_com(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_newskill") ; err != nil {
return nil, err
}
if tables.newSkill, err = NewGame_newSkill(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_model") ; err != nil {
return nil, err
}
if tables.model, err = NewGame_model(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -9,15 +9,15 @@
package cfg package cfg
type Game_com struct { type Game_com struct {
_dataMap map[string]*Game_gameComData _dataMap map[string]*Game_comData
_dataList []*Game_gameComData _dataList []*Game_comData
} }
func NewGame_com(_buf []map[string]interface{}) (*Game_com, error) { func NewGame_com(_buf []map[string]interface{}) (*Game_com, error) {
_dataList := make([]*Game_gameComData, 0, len(_buf)) _dataList := make([]*Game_comData, 0, len(_buf))
dataMap := make(map[string]*Game_gameComData) dataMap := make(map[string]*Game_comData)
for _, _ele_ := range _buf { for _, _ele_ := range _buf {
if _v, err2 := NewGame_gameComData(_ele_); err2 != nil { if _v, err2 := NewGame_comData(_ele_); err2 != nil {
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
@ -27,15 +27,15 @@ func NewGame_com(_buf []map[string]interface{}) (*Game_com, error) {
return &Game_com{_dataList:_dataList, _dataMap:dataMap}, nil return &Game_com{_dataList:_dataList, _dataMap:dataMap}, nil
} }
func (table *Game_com) GetDataMap() map[string]*Game_gameComData { func (table *Game_com) GetDataMap() map[string]*Game_comData {
return table._dataMap return table._dataMap
} }
func (table *Game_com) GetDataList() []*Game_gameComData { func (table *Game_com) GetDataList() []*Game_comData {
return table._dataList return table._dataList
} }
func (table *Game_com) Get(key string) *Game_gameComData { func (table *Game_com) Get(key string) *Game_comData {
return table._dataMap[key] return table._dataMap[key]
} }

View File

@ -42,7 +42,7 @@ func (Game_heroData) GetTypeId() int {
func NewGame_heroData(_buf map[string]interface{}) (_v *Game_heroData, err error) { func NewGame_heroData(_buf map[string]interface{}) (_v *Game_heroData, err error) {
_v = &Game_heroData{} _v = &Game_heroData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name 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 _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["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) }

View File

@ -17,6 +17,7 @@ type Game_heroExpData struct {
Color int32 Color int32
Heroexp int32 Heroexp int32
Skilllevelup int32 Skilllevelup int32
Needgold int32
} }
func (Game_heroExpData) GetTypeId() int { func (Game_heroExpData) GetTypeId() int {
@ -31,5 +32,6 @@ func NewGame_heroExpData(_buf map[string]interface{}) (_v *Game_heroExpData, err
{ 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["heroexp"].(float64); !_ok_ { err = errors.New("heroexp error"); return }; _v.Heroexp = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["heroexp"].(float64); !_ok_ { err = errors.New("heroexp error"); return }; _v.Heroexp = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skilllevelup"].(float64); !_ok_ { err = errors.New("skilllevelup error"); return }; _v.Skilllevelup = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skilllevelup"].(float64); !_ok_ { err = errors.New("skilllevelup error"); return }; _v.Skilllevelup = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needgold"].(float64); !_ok_ { err = errors.New("needgold error"); return }; _v.Needgold = int32(_tempNum_) }
return return
} }

View File

@ -13,7 +13,6 @@ import "errors"
type Game_heroLevelupData struct { type Game_heroLevelupData struct {
Level int32 Level int32
Heroexp []*Game_atn Heroexp []*Game_atn
Gold []*Game_atn
Hp float32 Hp float32
Atk float32 Atk float32
Def float32 Def float32
@ -40,20 +39,6 @@ func NewGame_heroLevelupData(_buf map[string]interface{}) (_v *Game_heroLevelupD
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["gold"].([]interface{}); !_ok_ { err = errors.New("gold error"); return }
_v.Gold = make([]*Game_atn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_atn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = NewGame_atn(_x_); err != nil { return } }
_v.Gold = append(_v.Gold, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["def"].(float64); !_ok_ { err = errors.New("def error"); return }; _v.Def = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["def"].(float64); !_ok_ { err = errors.New("def error"); return }; _v.Def = float32(_tempNum_) }

View File

@ -13,6 +13,7 @@ import "errors"
type Game_heroStargrowData struct { type Game_heroStargrowData struct {
Star int32 Star int32
Level int32 Level int32
Maxlevel int32
StarupHp float32 StarupHp float32
StarupAtk float32 StarupAtk float32
StarupDef float32 StarupDef float32
@ -27,6 +28,7 @@ func NewGame_heroStargrowData(_buf map[string]interface{}) (_v *Game_heroStargro
_v = &Game_heroStargrowData{} _v = &Game_heroStargrowData{}
{ 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["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxlevel"].(float64); !_ok_ { err = errors.New("maxlevel error"); return }; _v.Maxlevel = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_hp"].(float64); !_ok_ { err = errors.New("starup_hp error"); return }; _v.StarupHp = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_hp"].(float64); !_ok_ { err = errors.New("starup_hp error"); return }; _v.StarupHp = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_atk"].(float64); !_ok_ { err = errors.New("starup_atk error"); return }; _v.StarupAtk = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_atk"].(float64); !_ok_ { err = errors.New("starup_atk error"); return }; _v.StarupAtk = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_def"].(float64); !_ok_ { err = errors.New("starup_def error"); return }; _v.StarupDef = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_def"].(float64); !_ok_ { err = errors.New("starup_def error"); return }; _v.StarupDef = float32(_tempNum_) }

View File

@ -14,7 +14,6 @@ type Game_heroStarupData struct {
Key int32 Key int32
Id int32 Id int32
Star int32 Star int32
Maxlevel int32
Needhero int32 Needhero int32
Needherostar int32 Needherostar int32
Needheronum int32 Needheronum int32
@ -33,7 +32,6 @@ func NewGame_heroStarupData(_buf map[string]interface{}) (_v *Game_heroStarupDat
{ 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = 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["maxlevel"].(float64); !_ok_ { err = errors.New("maxlevel error"); return }; _v.Maxlevel = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needhero"].(float64); !_ok_ { err = errors.New("needhero error"); return }; _v.Needhero = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needhero"].(float64); !_ok_ { err = errors.New("needhero error"); return }; _v.Needhero = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needherostar"].(float64); !_ok_ { err = errors.New("needherostar error"); return }; _v.Needherostar = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needherostar"].(float64); !_ok_ { err = errors.New("needherostar error"); return }; _v.Needherostar = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needheronum"].(float64); !_ok_ { err = errors.New("needheronum error"); return }; _v.Needheronum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needheronum"].(float64); !_ok_ { err = errors.New("needheronum error"); return }; _v.Needheronum = int32(_tempNum_) }

View File

@ -21,7 +21,7 @@ func NewGame_item(_buf []map[string]interface{}) (*Game_item, error) {
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
dataMap[_v.Itemid] = _v dataMap[_v.Id] = _v
} }
} }
return &Game_item{_dataList:_dataList, _dataMap:dataMap}, nil return &Game_item{_dataList:_dataList, _dataMap:dataMap}, nil

View File

@ -11,27 +11,29 @@ package cfg
import "errors" import "errors"
type Game_itemData struct { type Game_itemData struct {
Itemid int32 Id int32
Name string Name string
Usetype int32 Usetype int32
Color int32 Color int32
Race int32 Bagtype int32
Bagtype bool
Index int32 Index int32
Texiao string SpecialType int32
Dlp int32 Effects string
Composenum int32 Drop int32
Htype int32 SynthetizeNum int32
Tujing int32 Access int32
Usetz int32 UseSkip int32
Maxnum int32 UpperLimit int32
Uselv int32 Uselv int32
Ismutil int32 Isani int32
Type int32 Star int32
Race int32
SynthetizeHero int32
Img string Img string
Ico string Ico string
Intr string Intr string
Sale string Sale []*Game_atn
Boxhero []*Game_atn
} }
func (Game_itemData) GetTypeId() int { func (Game_itemData) GetTypeId() int {
@ -40,26 +42,54 @@ func (Game_itemData) GetTypeId() int {
func NewGame_itemData(_buf map[string]interface{}) (_v *Game_itemData, err error) { func NewGame_itemData(_buf map[string]interface{}) (_v *Game_itemData, err error) {
_v = &Game_itemData{} _v = &Game_itemData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["itemid"].(float64); !_ok_ { err = errors.New("itemid error"); return }; _v.Itemid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } } { var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["usetype"].(float64); !_ok_ { err = errors.New("usetype error"); return }; _v.Usetype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["usetype"].(float64); !_ok_ { err = errors.New("usetype error"); return }; _v.Usetype = int32(_tempNum_) }
{ 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["bagtype"].(float64); !_ok_ { err = errors.New("bagtype error"); return }; _v.Bagtype = int32(_tempNum_) }
{ var _ok_ bool; if _v.Bagtype, _ok_ = _buf["bagtype"].(bool); !_ok_ { err = errors.New("bagtype error"); return } }
{ 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["index"].(float64); !_ok_ { err = errors.New("index error"); return }; _v.Index = int32(_tempNum_) }
{ var _ok_ bool; if _v.Texiao, _ok_ = _buf["texiao"].(string); !_ok_ { err = errors.New("texiao error"); return } } { 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["dlp"].(float64); !_ok_ { err = errors.New("dlp error"); return }; _v.Dlp = 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["composenum"].(float64); !_ok_ { err = errors.New("composenum error"); return }; _v.Composenum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["drop"].(float64); !_ok_ { err = errors.New("drop error"); return }; _v.Drop = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["htype"].(float64); !_ok_ { err = errors.New("htype error"); return }; _v.Htype = 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_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tujing"].(float64); !_ok_ { err = errors.New("tujing error"); return }; _v.Tujing = int32(_tempNum_) } { 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["usetz"].(float64); !_ok_ { err = errors.New("usetz error"); return }; _v.Usetz = int32(_tempNum_) } { 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["maxnum"].(float64); !_ok_ { err = errors.New("maxnum error"); return }; _v.Maxnum = 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["uselv"].(float64); !_ok_ { err = errors.New("uselv error"); return }; _v.Uselv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ismutil"].(float64); !_ok_ { err = errors.New("ismutil error"); return }; _v.Ismutil = 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["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["synthetize_hero"].(float64); !_ok_ { err = errors.New("synthetize_hero error"); return }; _v.SynthetizeHero = int32(_tempNum_) }
{ 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; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico 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.Intr, _ok_ = _buf["intr"].(string); !_ok_ { err = errors.New("intr error"); return } }
{ var _ok_ bool; if _v.Sale, _ok_ = _buf["sale"].(string); !_ok_ { err = errors.New("sale error"); return } } {
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["sale"].([]interface{}); !_ok_ { err = errors.New("sale error"); return }
_v.Sale = make([]*Game_atn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_atn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = NewGame_atn(_x_); err != nil { return } }
_v.Sale = append(_v.Sale, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["boxhero"].([]interface{}); !_ok_ { err = errors.New("boxhero error"); return }
_v.Boxhero = make([]*Game_atn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_atn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = NewGame_atn(_x_); err != nil { return } }
_v.Boxhero = append(_v.Boxhero, _list_v_)
}
}
return return
} }

View File

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

View File

@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type Game_modelData struct {
Id int32
Preson string
Ico string
Img string
Heroimg string
Portrait string
}
func (Game_modelData) GetTypeId() int {
return -1307411593
}
func NewGame_modelData(_buf map[string]interface{}) (_v *Game_modelData, err error) {
_v = &Game_modelData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } }
{ var _ok_ bool; if _v.Heroimg, _ok_ = _buf["heroimg"].(string); !_ok_ { err = errors.New("heroimg error"); return } }
{ var _ok_ bool; if _v.Portrait, _ok_ = _buf["portrait"].(string); !_ok_ { err = errors.New("portrait error"); return } }
return
}

View File

@ -21,7 +21,7 @@ type Game_newHeroData struct {
Type int32 Type int32
Prefab string Prefab string
Icon int32 Icon int32
Sound int32 Sound string
Tujing []int32 Tujing []int32
Intr string Intr string
Events string Events string
@ -41,7 +41,7 @@ func (Game_newHeroData) GetTypeId() int {
func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err error) { func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err error) {
_v = &Game_newHeroData{} _v = &Game_newHeroData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name 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 _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["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = 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; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) }
@ -49,7 +49,7 @@ func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; if _v.Prefab, _ok_ = _buf["prefab"].(string); !_ok_ { err = errors.New("prefab error"); return } } { var _ok_ bool; if _v.Prefab, _ok_ = _buf["prefab"].(string); !_ok_ { err = errors.New("prefab error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icon"].(float64); !_ok_ { err = errors.New("icon error"); return }; _v.Icon = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icon"].(float64); !_ok_ { err = errors.New("icon error"); return }; _v.Icon = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sound"].(float64); !_ok_ { err = errors.New("sound error"); return }; _v.Sound = int32(_tempNum_) } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["sound"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Sound error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Sound, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -64,7 +64,7 @@ func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err
} }
} }
{ var _ok_ bool; if _v.Intr, _ok_ = _buf["intr"].(string); !_ok_ { err = errors.New("intr 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; if _v.Events, _ok_ = _buf["events"].(string); !_ok_ { err = errors.New("events error"); return } } { var _ok_ bool; if _v.Events, _ok_ = _buf["events"].(string); !_ok_ { err = errors.New("events error"); return } }
{ var _ok_ bool; if _v.Cite, _ok_ = _buf["cite"].(string); !_ok_ { err = errors.New("cite error"); return } } { var _ok_ bool; if _v.Cite, _ok_ = _buf["cite"].(string); !_ok_ { err = errors.New("cite error"); return } }
{ {

View File

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

View File

@ -0,0 +1,80 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type Game_newSkillData struct {
Id int32
Name string
Ico string
Type int32
MaxLV int32
CD []int32
Target int32
ChildSkill []*Game_ChildSkills
Desc []string
}
func (Game_newSkillData) GetTypeId() int {
return -1344126889
}
func NewGame_newSkillData(_buf map[string]interface{}) (_v *Game_newSkillData, err error) {
_v = &Game_newSkillData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["Name"].(string); !_ok_ { err = errors.New("Name error"); return } }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["CD"].([]interface{}); !_ok_ { err = errors.New("CD error"); return }
_v.CD = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.CD = append(_v.CD, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Target"].(float64); !_ok_ { err = errors.New("Target error"); return }; _v.Target = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["ChildSkill"].([]interface{}); !_ok_ { err = errors.New("ChildSkill error"); return }
_v.ChildSkill = make([]*Game_ChildSkills, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_ChildSkills
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = NewGame_ChildSkills(_x_); err != nil { return } }
_v.ChildSkill = append(_v.ChildSkill, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return }
_v.Desc = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Desc = append(_v.Desc, _list_v_)
}
}
return
}

View File

@ -22,9 +22,12 @@ type Game_skillAfteratkData struct {
Argu string Argu string
AddEffect bool AddEffect bool
FollowSK []int32 FollowSK []int32
SucFollowSK []string
FailFollowSK []string FailFollowSK []string
MustHit bool MustHit bool
Tags []string Tags []string
RelyTags []string
NoRelyTags []string
} }
func (Game_skillAfteratkData) GetTypeId() int { func (Game_skillAfteratkData) GetTypeId() int {
@ -83,6 +86,20 @@ func NewGame_skillAfteratkData(_buf map[string]interface{}) (_v *Game_skillAfter
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["SucFollowSK"].([]interface{}); !_ok_ { err = errors.New("SucFollowSK error"); return }
_v.SucFollowSK = 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.SucFollowSK = append(_v.SucFollowSK, _list_v_)
}
}
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -112,5 +129,33 @@ func NewGame_skillAfteratkData(_buf map[string]interface{}) (_v *Game_skillAfter
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["RelyTags"].([]interface{}); !_ok_ { err = errors.New("RelyTags error"); return }
_v.RelyTags = 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.RelyTags = append(_v.RelyTags, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["NoRelyTags"].([]interface{}); !_ok_ { err = errors.New("NoRelyTags error"); return }
_v.NoRelyTags = 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.NoRelyTags = append(_v.NoRelyTags, _list_v_)
}
}
return return
} }

View File

@ -13,12 +13,13 @@ import "errors"
type Game_skillAtkData struct { type Game_skillAtkData struct {
Id int32 Id int32
Name string Name string
Ico string
Type int32 Type int32
Desc string
MaxLV int32 MaxLV int32
CD []int32 CD []int32
Target int32 Target int32
ChildSkill []*Game_ChildSkills ChildSkill []*Game_ChildSkills
Desc []string
} }
func (Game_skillAtkData) GetTypeId() int { func (Game_skillAtkData) GetTypeId() int {
@ -29,8 +30,8 @@ func NewGame_skillAtkData(_buf map[string]interface{}) (_v *Game_skillAtkData, e
_v = &Game_skillAtkData{} _v = &Game_skillAtkData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["Name"].(string); !_ok_ { err = errors.New("Name error"); return } } { var _ok_ bool; if _v.Name, _ok_ = _buf["Name"].(string); !_ok_ { err = errors.New("Name error"); return } }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}
@ -61,5 +62,19 @@ func NewGame_skillAtkData(_buf map[string]interface{}) (_v *Game_skillAtkData, e
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return }
_v.Desc = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Desc = append(_v.Desc, _list_v_)
}
}
return return
} }

View File

@ -18,6 +18,8 @@ type Game_skillBuffData struct {
Tags []string Tags []string
OverlayTimes byte OverlayTimes byte
SameID bool SameID bool
RelyTags []string
NoRelyTags []string
} }
func (Game_skillBuffData) GetTypeId() int { func (Game_skillBuffData) GetTypeId() int {
@ -46,5 +48,33 @@ func NewGame_skillBuffData(_buf map[string]interface{}) (_v *Game_skillBuffData,
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["OverlayTimes"].(float64); !_ok_ { err = errors.New("OverlayTimes error"); return }; _v.OverlayTimes = byte(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["OverlayTimes"].(float64); !_ok_ { err = errors.New("OverlayTimes error"); return }; _v.OverlayTimes = byte(_tempNum_) }
{ var _ok_ bool; if _v.SameID, _ok_ = _buf["SameID"].(bool); !_ok_ { err = errors.New("SameID error"); return } } { var _ok_ bool; if _v.SameID, _ok_ = _buf["SameID"].(bool); !_ok_ { err = errors.New("SameID error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["RelyTags"].([]interface{}); !_ok_ { err = errors.New("RelyTags error"); return }
_v.RelyTags = 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.RelyTags = append(_v.RelyTags, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["NoRelyTags"].([]interface{}); !_ok_ { err = errors.New("NoRelyTags error"); return }
_v.NoRelyTags = 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.NoRelyTags = append(_v.NoRelyTags, _list_v_)
}
}
return return
} }

View File

@ -14,10 +14,15 @@ type Game_skillPassiveData struct {
Id int32 Id int32
Desc string Desc string
When string When string
Where string
AddCon []string
Type string Type string
Argu []string
MaxEmitTimes int32 MaxEmitTimes int32
OverlayTimes byte
SameID bool
Tags []string Tags []string
RelyTags []string
NoRelyTags []string
} }
func (Game_skillPassiveData) GetTypeId() int { func (Game_skillPassiveData) GetTypeId() int {
@ -29,22 +34,25 @@ func NewGame_skillPassiveData(_buf map[string]interface{}) (_v *Game_skillPassiv
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } } { var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } }
{ var _ok_ bool; if _v.When, _ok_ = _buf["When"].(string); !_ok_ { err = errors.New("When error"); return } } { var _ok_ bool; if _v.When, _ok_ = _buf["When"].(string); !_ok_ { err = errors.New("When error"); return } }
{ var _ok_ bool; if _v.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } } { var _ok_ bool; if _v.Where, _ok_ = _buf["Where"].(string); !_ok_ { err = errors.New("Where error"); return } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
if _arr_, _ok_ = _buf["Argu"].([]interface{}); !_ok_ { err = errors.New("Argu error"); return } if _arr_, _ok_ = _buf["AddCon"].([]interface{}); !_ok_ { err = errors.New("AddCon error"); return }
_v.Argu = make([]string, 0, len(_arr_)) _v.AddCon = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ { for _, _e_ := range _arr_ {
var _list_v_ string var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Argu = append(_v.Argu, _list_v_) _v.AddCon = append(_v.AddCon, _list_v_)
} }
} }
{ var _ok_ bool; if _v.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxEmitTimes"].(float64); !_ok_ { err = errors.New("MaxEmitTimes error"); return }; _v.MaxEmitTimes = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxEmitTimes"].(float64); !_ok_ { err = errors.New("MaxEmitTimes error"); return }; _v.MaxEmitTimes = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["OverlayTimes"].(float64); !_ok_ { err = errors.New("OverlayTimes error"); return }; _v.OverlayTimes = byte(_tempNum_) }
{ var _ok_ bool; if _v.SameID, _ok_ = _buf["SameID"].(bool); !_ok_ { err = errors.New("SameID error"); return } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -59,5 +67,33 @@ func NewGame_skillPassiveData(_buf map[string]interface{}) (_v *Game_skillPassiv
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["RelyTags"].([]interface{}); !_ok_ { err = errors.New("RelyTags error"); return }
_v.RelyTags = 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.RelyTags = append(_v.RelyTags, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["NoRelyTags"].([]interface{}); !_ok_ { err = errors.New("NoRelyTags error"); return }
_v.NoRelyTags = 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.NoRelyTags = append(_v.NoRelyTags, _list_v_)
}
}
return return
} }