Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2023-02-06 16:36:09 +08:00
commit 64c928112b
67 changed files with 6129 additions and 4552 deletions

View File

@ -3,6 +3,7 @@
"id": 1,
"open_cond": 1,
"open_value": 10,
"BattleReadyID": 110,
"monsterformat_id": [
301011,
301027
@ -33,6 +34,7 @@
"id": 2,
"open_cond": 1,
"open_value": 11,
"BattleReadyID": 110,
"monsterformat_id": [
301012
],
@ -62,6 +64,7 @@
"id": 3,
"open_cond": 1,
"open_value": 12,
"BattleReadyID": 110,
"monsterformat_id": [
301013
],
@ -91,6 +94,7 @@
"id": 4,
"open_cond": 1,
"open_value": 13,
"BattleReadyID": 110,
"monsterformat_id": [
301014
],
@ -120,6 +124,7 @@
"id": 5,
"open_cond": 1,
"open_value": 14,
"BattleReadyID": 110,
"monsterformat_id": [
301015
],
@ -149,6 +154,7 @@
"id": 6,
"open_cond": 1,
"open_value": 15,
"BattleReadyID": 110,
"monsterformat_id": [
301016
],
@ -178,6 +184,7 @@
"id": 7,
"open_cond": 1,
"open_value": 16,
"BattleReadyID": 110,
"monsterformat_id": [
301017
],
@ -207,6 +214,7 @@
"id": 8,
"open_cond": 1,
"open_value": 17,
"BattleReadyID": 110,
"monsterformat_id": [
301018
],
@ -236,6 +244,7 @@
"id": 9,
"open_cond": 1,
"open_value": 18,
"BattleReadyID": 110,
"monsterformat_id": [
301019
],
@ -265,6 +274,7 @@
"id": 10,
"open_cond": 1,
"open_value": 19,
"BattleReadyID": 110,
"monsterformat_id": [
301020
],
@ -294,6 +304,7 @@
"id": 11,
"open_cond": 1,
"open_value": 20,
"BattleReadyID": 110,
"monsterformat_id": [
301021
],
@ -323,6 +334,7 @@
"id": 12,
"open_cond": 1,
"open_value": 21,
"BattleReadyID": 110,
"monsterformat_id": [
301022
],
@ -352,6 +364,7 @@
"id": 13,
"open_cond": 1,
"open_value": 22,
"BattleReadyID": 110,
"monsterformat_id": [
301023
],
@ -381,6 +394,7 @@
"id": 14,
"open_cond": 1,
"open_value": 23,
"BattleReadyID": 110,
"monsterformat_id": [
301024
],
@ -410,6 +424,7 @@
"id": 15,
"open_cond": 1,
"open_value": 24,
"BattleReadyID": 110,
"monsterformat_id": [
301025
],
@ -439,6 +454,7 @@
"id": 16,
"open_cond": 1,
"open_value": 25,
"BattleReadyID": 110,
"monsterformat_id": [
301026
],

View File

@ -0,0 +1,112 @@
[
{
"id": 100,
"PlayType": "WorldTask",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 1
},
{
"id": 101,
"PlayType": "MysteryMoon",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 102,
"PlayType": "MainLine",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 103,
"PlayType": "Pagoda",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 104,
"PlayType": "ViKing",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 105,
"PlayType": "Arena",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 106,
"PlayType": "ArenaDef",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 107,
"PlayType": "Hunting",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 108,
"PlayType": "EnchantBoss",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 109,
"PlayType": "Combat",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
},
{
"id": 110,
"PlayType": "ArenaNpc",
"HeroCount": 5,
"DefaultHero": 0,
"DisableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"CanFriendHelp": 0
}
]

View File

@ -167,5 +167,18 @@
"ico": "wp_icon_10009",
"intr": "Currency used to purchase goods",
"tipstxt": "Lack of experience"
},
{
"key": "moongold",
"name": "moongold",
"color": 5,
"effects": "",
"access": 107,
"star": 0,
"race": 0,
"img": "wp_icon_10009",
"ico": "wp_icon_10009",
"intr": "Currency used to purchase goods",
"tipstxt": "Lack of experience"
}
]

View File

@ -8,6 +8,7 @@
],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720001
],
@ -28,6 +29,7 @@
],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720003
],
@ -48,6 +50,7 @@
],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720004
],
@ -68,6 +71,7 @@
],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720002
],
@ -88,6 +92,7 @@
],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720005
],
@ -105,6 +110,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720006
],
@ -122,6 +128,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720007
],
@ -139,6 +146,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720008
],
@ -156,6 +164,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720009
],
@ -173,6 +182,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720010
],
@ -190,6 +200,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720011
],
@ -207,6 +218,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720012
],
@ -224,6 +236,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
101072
],
@ -241,6 +254,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
101072
],
@ -258,6 +272,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
101072
],
@ -275,6 +290,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
101072
],
@ -292,6 +308,7 @@
"sencenstory": [],
"time": 0,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
101072
],
@ -312,6 +329,7 @@
],
"time": 3,
"clickstory": 100002,
"BattleReadyID": 109,
"formatList": [],
"award": []
},
@ -324,6 +342,7 @@
],
"time": 3,
"clickstory": 100002,
"BattleReadyID": 109,
"formatList": [],
"award": []
},
@ -336,6 +355,7 @@
],
"time": 3,
"clickstory": 100002,
"BattleReadyID": 109,
"formatList": [],
"award": []
},
@ -345,6 +365,7 @@
"sencenstory": [],
"time": 3,
"clickstory": 0,
"BattleReadyID": 109,
"formatList": [
720013
],

View File

@ -11,6 +11,7 @@
"n": 1
}
],
"BattleReadyID": 101,
"monsterformatid": [
201011
],
@ -42,6 +43,7 @@
"n": 1
}
],
"BattleReadyID": 101,
"monsterformatid": [
201012
],

View File

@ -6,6 +6,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "SSS",
"score_low": 6666667,
"score_up": 99999999,
@ -116,6 +117,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "SS",
"score_low": 3500001,
"score_up": 6666666,
@ -226,6 +228,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "S",
"score_low": 1800001,
"score_up": 3500000,
@ -336,6 +339,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "A+",
"score_low": 800001,
"score_up": 1800000,
@ -446,6 +450,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "A",
"score_low": 350001,
"score_up": 800000,
@ -556,6 +561,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "B",
"score_low": 100001,
"score_up": 350000,
@ -666,6 +672,7 @@
"key": "viking_boss_1001",
"text": "火焰泰坦"
},
"BattleReadyID": 108,
"grade": "C",
"score_low": 0,
"score_up": 100000,
@ -776,6 +783,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "SSS",
"score_low": 6666667,
"score_up": 99999999,
@ -886,6 +894,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "SS",
"score_low": 3500001,
"score_up": 6666666,
@ -996,6 +1005,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "S",
"score_low": 1800001,
"score_up": 3500000,
@ -1106,6 +1116,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "A+",
"score_low": 800001,
"score_up": 1800000,
@ -1216,6 +1227,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "A",
"score_low": 350001,
"score_up": 800000,
@ -1326,6 +1338,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "B",
"score_low": 100001,
"score_up": 350000,
@ -1436,6 +1449,7 @@
"key": "viking_boss_1002",
"text": "冰霜泰坦"
},
"BattleReadyID": 108,
"grade": "C",
"score_low": 0,
"score_up": 100000,
@ -1546,6 +1560,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "SSS",
"score_low": 6666667,
"score_up": 99999999,
@ -1656,6 +1671,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "SS",
"score_low": 3500001,
"score_up": 6666666,
@ -1766,6 +1782,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "S",
"score_low": 1800001,
"score_up": 3500000,
@ -1876,6 +1893,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "A+",
"score_low": 800001,
"score_up": 1800000,
@ -1986,6 +2004,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "A",
"score_low": 350001,
"score_up": 800000,
@ -2096,6 +2115,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "B",
"score_low": 100001,
"score_up": 350000,
@ -2206,6 +2226,7 @@
"key": "viking_boss_1003",
"text": "森林泰坦"
},
"BattleReadyID": 108,
"grade": "C",
"score_low": 0,
"score_up": 100000,

View File

@ -11,6 +11,16 @@
},
{
"index": 2,
"name": {
"key": "server_10002",
"text": "本地测试服2"
},
"ips": "10.0.0.9:7691",
"debug": true,
"sid": "df02"
},
{
"index": 3,
"name": {
"key": "debug_server_01",
"text": "lw"
@ -20,7 +30,7 @@
"sid": "dfli"
},
{
"index": 3,
"index": 4,
"name": {
"key": "debug_server_02",
"text": "zcy"
@ -30,7 +40,7 @@
"sid": "dfz"
},
{
"index": 4,
"index": 5,
"name": {
"key": "debug_server_03",
"text": "mxf"
@ -38,45 +48,5 @@
"ips": "10.0.0.85:7891",
"debug": true,
"sid": "dfmxf"
},
{
"index": 5,
"name": {
"key": "server_10004",
"text": "凤凰城"
},
"ips": "119.3.89.14:9891",
"debug": true,
"sid": "df01"
},
{
"index": 6,
"name": {
"key": "server_10005",
"text": "翡翠宫"
},
"ips": "119.3.89.14:9891",
"debug": true,
"sid": "df01"
},
{
"index": 7,
"name": {
"key": "server_10006",
"text": "乌鸦岭"
},
"ips": "119.3.89.14:9891",
"debug": true,
"sid": "df01"
},
{
"index": 8,
"name": {
"key": "server_10003",
"text": "和平谷"
},
"ips": "119.3.89.14:7891",
"debug": false,
"sid": "df02"
}
]

View File

@ -533,6 +533,11 @@
"GuildBoss_troop3": 60,
"zhayantime": 5,
"rotateAngle": 360,
"rotateDizzyTime": 1
"rotateDizzyTime": 1,
"moonshopmoney": [
10,
20,
30
]
}
]

View File

@ -9,11 +9,11 @@
"onetask": 0,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
"text": "冒险从这一步开始"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"jump": 113,
"reward": [
{
"a": "attr",
@ -32,15 +32,15 @@
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-2"
"text": "累计登录1天"
},
"onetask": 1,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
"text": "冒险从这一步开始"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"fstask": 108,
"jump": 107,
"reward": [
{
@ -65,11 +65,11 @@
"onetask": 2,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
"text": "冒险从这一步开始"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"jump": 113,
"reward": [
{
"a": "attr",
@ -93,11 +93,11 @@
"onetask": 3,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
"text": "冒险从这一步开始"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"jump": 113,
"reward": [
{
"a": "attr",
@ -121,151 +121,11 @@
"onetask": 4,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
"text": "冒险从这一步开始"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 6,
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-6"
},
"onetask": 5,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 7,
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-7"
},
"onetask": 6,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 8,
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-8"
},
"onetask": 7,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 9,
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-9"
},
"onetask": 8,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 10,
"type": 1,
"title": {
"key": "ClearanceThread",
"text": "通关1-10"
},
"onetask": 9,
"txt": {
"key": "Growtxtone",
"text": "位置的丛林充满了危险,赶快带上你的小伙伴去探索一番吧~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"jump": 113,
"reward": [
{
"a": "attr",
@ -284,15 +144,15 @@
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升1级"
"text": "获得阿宝"
},
"onetask": 10,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
"text": "去寻找那个会武功的熊猫吧。"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"fstask": 101,
"jump": 107,
"reward": [
{
@ -312,7 +172,7 @@
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升2级"
"text": "将一名3星英雄升到4星"
},
"onetask": 11,
"txt": {
@ -320,8 +180,8 @@
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 126,
"jump": 127,
"reward": [
{
"a": "attr",
@ -340,7 +200,7 @@
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升3级"
"text": "将一名4星英雄升到5星"
},
"onetask": 12,
"txt": {
@ -348,8 +208,8 @@
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 127,
"jump": 127,
"reward": [
{
"a": "attr",
@ -368,7 +228,7 @@
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升4级"
"text": "将一名5星英雄升到6星"
},
"onetask": 13,
"txt": {
@ -376,8 +236,8 @@
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 128,
"jump": 127,
"reward": [
{
"a": "attr",
@ -396,7 +256,7 @@
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升5级"
"text": "消耗1000枚金币"
},
"onetask": 14,
"txt": {
@ -404,148 +264,8 @@
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 16,
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升6级"
},
"onetask": 15,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 17,
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升7级"
},
"onetask": 16,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 18,
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升8级"
},
"onetask": 17,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 19,
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升9级"
},
"onetask": 18,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 20,
"type": 2,
"title": {
"key": "CharacterGrowth",
"text": "阿宝升10级"
},
"onetask": 19,
"txt": {
"key": "Growtxttwo",
"text": "阿宝需要变强,快去帮助他把~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 168,
"jump": 122,
"reward": [
{
"a": "attr",
@ -564,7 +284,7 @@
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升1级"
"text": "强化成功一次装备"
},
"onetask": 20,
"txt": {
@ -572,8 +292,8 @@
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 2047001,
"jump": 127,
"reward": [
{
"a": "attr",
@ -592,7 +312,7 @@
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升2级"
"text": "通关主线1-9"
},
"onetask": 21,
"txt": {
@ -600,8 +320,8 @@
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 161,
"jump": 113,
"reward": [
{
"a": "attr",
@ -620,7 +340,7 @@
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升3级"
"text": "在铁匠铺获得1次1星装备"
},
"onetask": 22,
"txt": {
@ -628,8 +348,8 @@
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 151,
"jump": 129,
"reward": [
{
"a": "attr",
@ -648,7 +368,7 @@
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升4级"
"text": "将2件装备强化到2级"
},
"onetask": 23,
"txt": {
@ -656,8 +376,8 @@
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 143,
"jump": 113,
"reward": [
{
"a": "attr",
@ -676,7 +396,7 @@
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升5级"
"text": "5个英雄觉醒到2阶"
},
"onetask": 24,
"txt": {
@ -684,148 +404,8 @@
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 26,
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升6级"
},
"onetask": 25,
"txt": {
"key": "Growtxtthree",
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 27,
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升7级"
},
"onetask": 26,
"txt": {
"key": "Growtxtthree",
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 28,
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升8级"
},
"onetask": 27,
"txt": {
"key": "Growtxtthree",
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 29,
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升9级"
},
"onetask": 28,
"txt": {
"key": "Growtxtthree",
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"reward": [
{
"a": "attr",
"t": "gold",
"n": 1000
},
{
"a": "attr",
"t": "diamond",
"n": 1000
}
]
},
{
"id": 30,
"type": 3,
"title": {
"key": "CharacterIpgrading",
"text": "波比升9级"
},
"onetask": 29,
"txt": {
"key": "Growtxtthree",
"text": "你们都变强了,我也需要变强,请助我一臂之力~"
},
"portrait": "N6_0002_图层-31253",
"fstask": 106,
"jump": 107,
"fstask": 134,
"jump": 113,
"reward": [
{
"a": "attr",

871
bin/json/game_guide.json Normal file
View File

@ -0,0 +1,871 @@
[
{
"id": 10,
"group": 10,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20011",
"followtj": "",
"followguide": 20,
"finger": [],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "500",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 20,
"group": 20,
"type": 5,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "GuideFinish10",
"followtj": "",
"followguide": 0,
"finger": [
"gesture",
"circle"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 1,
"lock": 1,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 40,
"group": 40,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20050",
"followtj": "",
"followguide": 0,
"finger": [],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "501",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 50,
"group": 50,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20060",
"followtj": "",
"followguide": 0,
"finger": [],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "503",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 60,
"group": 60,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20170",
"followtj": "OpenRecruit",
"followguide": 70,
"finger": [
"3d",
"Root/程序/EntityInteraction/Middle/Recruit"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 1,
"objSize": {
"x": 200,
"y": 200
},
"objOffset": {
"x": -100,
"y": -100
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 70,
"group": 60,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "OpenRecruittendraw",
"followguide": 80,
"finger": [
"recruit",
"btn_onedraw$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 1,
"reward": []
},
{
"id": 80,
"group": 60,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 90,
"finger": [
"recruittendraw",
"btn_return$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 90,
"group": 60,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "OpenMaininterFace",
"followguide": 0,
"finger": [
"recruit",
"btn_back$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 1,
"reward": []
},
{
"id": 120,
"group": 70,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20190",
"followtj": "",
"followguide": 130,
"finger": [
"swipe",
"right"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 1,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 130,
"group": 70,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "OpenSmithyMain",
"followguide": 140,
"finger": [
"3d",
"Root/程序/EntityInteraction/Right/GeBoTieJiangPu"
],
"offset": {
"x": 0,
"y": -15
},
"fingerTime": 1,
"objSize": {
"x": 300,
"y": 300
},
"objOffset": {
"x": -150,
"y": -150
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 140,
"group": 70,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 0,
"finger": [
"3d",
"暴夫纳特铁匠铺"
],
"offset": {
"x": 0,
"y": -15
},
"fingerTime": 1,
"objSize": {
"x": 200,
"y": 200
},
"objOffset": {
"x": -150,
"y": -200
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 150,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20200",
"followtj": "",
"followguide": 160,
"finger": [
"3d",
"Root/程序/Interaction/Workbench0"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.8,
"objSize": {
"x": 200,
"y": 200
},
"objOffset": {
"x": -100,
"y": -100
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 160,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 170,
"finger": [
"smithy",
"btn_order$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 170,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 180,
"finger": [
"smithy",
"right$.listForgingTable$",
"0",
"laAdd$.btnPlus$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 180,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 190,
"finger": [
"smithy",
"right$.btnUp$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 190,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 200,
"finger": [
"smithy",
"comPrompt$.comPromptitem$.btnDetermine$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 200,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 210,
"finger": [
"smithy",
"btn_back$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 210,
"group": 80,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 0,
"finger": [
"3d",
"暴夫纳特铁匠铺"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 200,
"y": 200
},
"objOffset": {
"x": -150,
"y": -200
},
"txt": "303",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 10000,
"skip": 0,
"skipgroup": 1,
"reward": []
},
{
"id": 220,
"group": 90,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "worldtask_20150",
"followtj": "",
"followguide": 230,
"finger": [
"maininterface",
"btn_card$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 0,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 230,
"group": 90,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 240,
"finger": [
"herocard",
"roleListCom$.heroList.heroList$",
"1"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 1.5,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 0,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 240,
"group": 90,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 250,
"finger": [
"herocard",
"com_heroInfo$.upenter"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.8,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 0,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 250,
"group": 90,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 260,
"finger": [
"herocard",
"heroInfoCom$.chooselistgcom$.list",
"0"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.8,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 0,
"skip": 0,
"skipgroup": 0,
"reward": []
},
{
"id": 260,
"group": 90,
"type": 3,
"startPar": "",
"parameter": "",
"interface": "",
"condition": "",
"followtj": "",
"followguide": 0,
"finger": [
"herocard",
"heroInfoCom$.upbtn$"
],
"offset": {
"x": 0,
"y": 0
},
"fingerTime": 0.8,
"objSize": {
"x": 0,
"y": 0
},
"objOffset": {
"x": 0,
"y": 0
},
"txt": "",
"speakerface": 0,
"sound": "",
"mask": 0,
"lock": 0,
"uishow": 0,
"skiptime": 0,
"skip": 0,
"skipgroup": 0,
"reward": []
}
]

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +1,7 @@
[
{
"hid": "42911",
"name": "初级经验精灵",
"star": 2,
"color": 1,
"heroexp": 4630,
"skilllevelup": 0,
"needgold": 5663
},
{
"hid": "43911",
"name": "中级经验精灵",
"star": 3,
"color": 2,
"heroexp": 9259,
"skilllevelup": 0,
"needgold": 11951
},
{
"hid": "44911",
"name": "高级经验精灵",
"star": 4,
"color": 3,
"heroexp": 18510,
"skilllevelup": 0,
"needgold": 23324
},
{
"hid": "43921",
"name": "技能精灵·稀有",
"star": 3,
"color": 2,
"heroexp": 0,
"skilllevelup": 1,
"needgold": 5663
},
{
"hid": "44921",
"name": "技能精灵·史诗",
"star": 4,
"color": 3,
"heroexp": 0,
"skilllevelup": 1,
"needgold": 11951
},
{
"hid": "45921",
"name": "技能精灵·传说",
"star": 5,
"color": 4,
"heroexp": 0,
"skilllevelup": 1,
"needgold": 23324
"itemid": "625002",
"exp": 1000,
"needgold": 10000
}
]

View File

@ -0,0 +1,62 @@
[
{
"star": 1,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
},
{
"star": 2,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
},
{
"star": 3,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
},
{
"star": 4,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
},
{
"star": 5,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
},
{
"star": 6,
"needgold": [
{
"a": "attr",
"t": "glod",
"n": 10000
}
]
}
]

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@
"text": "巨型猩猩"
},
"difficulty": 1,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -51,6 +52,7 @@
"text": "巨型猩猩"
},
"difficulty": 2,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -100,6 +102,7 @@
"text": "巨型猩猩"
},
"difficulty": 3,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -149,6 +152,7 @@
"text": "巨型猩猩"
},
"difficulty": 4,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -198,6 +202,7 @@
"text": "巨型猩猩"
},
"difficulty": 5,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -252,6 +257,7 @@
"text": "巨型猩猩"
},
"difficulty": 6,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -306,6 +312,7 @@
"text": "巨型猩猩"
},
"difficulty": 7,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -360,6 +367,7 @@
"text": "巨型猩猩"
},
"difficulty": 8,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -414,6 +422,7 @@
"text": "巨型猩猩"
},
"difficulty": 9,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -468,6 +477,7 @@
"text": "巨型猩猩"
},
"difficulty": 10,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -522,6 +532,7 @@
"text": "火龙"
},
"difficulty": 1,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -566,6 +577,7 @@
"text": "火龙"
},
"difficulty": 2,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -615,6 +627,7 @@
"text": "火龙"
},
"difficulty": 3,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -664,6 +677,7 @@
"text": "火龙"
},
"difficulty": 4,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -713,6 +727,7 @@
"text": "火龙"
},
"difficulty": 5,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -767,6 +782,7 @@
"text": "火龙"
},
"difficulty": 6,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -821,6 +837,7 @@
"text": "火龙"
},
"difficulty": 7,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -875,6 +892,7 @@
"text": "火龙"
},
"difficulty": 8,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -929,6 +947,7 @@
"text": "火龙"
},
"difficulty": 9,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -983,6 +1002,7 @@
"text": "火龙"
},
"difficulty": 10,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1037,6 +1057,7 @@
"text": "大厨"
},
"difficulty": 1,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1081,6 +1102,7 @@
"text": "大厨"
},
"difficulty": 2,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1130,6 +1152,7 @@
"text": "大厨"
},
"difficulty": 3,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1179,6 +1202,7 @@
"text": "大厨"
},
"difficulty": 4,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1228,6 +1252,7 @@
"text": "大厨"
},
"difficulty": 5,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1282,6 +1307,7 @@
"text": "大厨"
},
"difficulty": 6,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1336,6 +1362,7 @@
"text": "大厨"
},
"difficulty": 7,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1390,6 +1417,7 @@
"text": "大厨"
},
"difficulty": 8,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1444,6 +1472,7 @@
"text": "大厨"
},
"difficulty": 9,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1498,6 +1527,7 @@
"text": "大厨"
},
"difficulty": 10,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1552,6 +1582,7 @@
"text": "太空海星"
},
"difficulty": 1,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1596,6 +1627,7 @@
"text": "太空海星"
},
"difficulty": 2,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1645,6 +1677,7 @@
"text": "太空海星"
},
"difficulty": 3,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1694,6 +1727,7 @@
"text": "太空海星"
},
"difficulty": 4,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1743,6 +1777,7 @@
"text": "太空海星"
},
"difficulty": 5,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1797,6 +1832,7 @@
"text": "太空海星"
},
"difficulty": 6,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1851,6 +1887,7 @@
"text": "太空海星"
},
"difficulty": 7,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1905,6 +1942,7 @@
"text": "太空海星"
},
"difficulty": 8,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -1959,6 +1997,7 @@
"text": "太空海星"
},
"difficulty": 9,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",
@ -2013,6 +2052,7 @@
"text": "太空海星"
},
"difficulty": 10,
"BattleReadyID": 107,
"firstprize": [
{
"a": "attr",

View File

@ -6376,5 +6376,49 @@
"key": "itemtipstxt_625001",
"text": "阿宝的天赋点不足"
}
},
{
"id": "625002",
"name": {
"key": "itemname_90001",
"text": "经验道具"
},
"usetype": 12,
"color": 3,
"bagtype": 1,
"index": 99,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
155
],
"use_skip": 155,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "ytx_js_25001",
"ico": "ytx_js_25001",
"intr": {
"key": "itemdesc_625002",
"text": "经验道具"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_625002",
"text": "阿宝的天赋点不足"
}
}
]

View File

@ -14,7 +14,7 @@
},
"exp": 60,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln1",
"text": "教习效率+50%"
@ -52,7 +52,7 @@
},
"exp": 120,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln2",
"text": "教习效率+51%"
@ -90,7 +90,7 @@
},
"exp": 240,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln3",
"text": "教习效率+52%"
@ -128,7 +128,7 @@
},
"exp": 480,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln4",
"text": "教习效率+53%"
@ -166,7 +166,7 @@
},
"exp": 1020,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln5",
"text": "教习效率+50%"
@ -204,7 +204,7 @@
},
"exp": 1080,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln6",
"text": "教习效率+51%"
@ -242,7 +242,7 @@
},
"exp": 2940,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln13",
"text": "教习效率+50%"
@ -280,7 +280,7 @@
},
"exp": 3000,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln14",
"text": "教习效率+51%"
@ -318,7 +318,7 @@
},
"exp": 3120,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln15",
"text": "教习效率+52%"
@ -356,7 +356,7 @@
},
"exp": 3360,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln16",
"text": "教习效率+53%"
@ -394,7 +394,7 @@
},
"exp": 3900,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln17",
"text": "教习效率+50%"
@ -432,7 +432,7 @@
},
"exp": 3960,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln18",
"text": "教习效率+51%"
@ -470,7 +470,7 @@
},
"exp": 5820,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln25",
"text": "教习效率+50%"
@ -508,7 +508,7 @@
},
"exp": 5880,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln26",
"text": "教习效率+51%"
@ -546,7 +546,7 @@
},
"exp": 6000,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln27",
"text": "教习效率+52%"
@ -584,7 +584,7 @@
},
"exp": 6240,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln28",
"text": "教习效率+53%"
@ -622,7 +622,7 @@
},
"exp": 6780,
"model": "35001",
"ornament": "Muzhuang1",
"ornament": "Level1",
"affix": {
"key": "gourmet_ln29",
"text": "教习效率+50%"
@ -660,7 +660,7 @@
},
"exp": 6840,
"model": "35001",
"ornament": "Muzhuang2",
"ornament": "Level2",
"affix": {
"key": "gourmet_ln30",
"text": "教习效率+51%"

File diff suppressed because it is too large Load Diff

View File

@ -58,6 +58,7 @@
"n": 1650
}
],
"BattleReadyID": 102,
"FormatList": [
101011
],
@ -142,6 +143,7 @@
"n": 2640
}
],
"BattleReadyID": 102,
"FormatList": [
101021
],
@ -226,6 +228,7 @@
"n": 3630
}
],
"BattleReadyID": 102,
"FormatList": [
101031,
101032
@ -311,6 +314,7 @@
"n": 20395
}
],
"BattleReadyID": 102,
"FormatList": [
101041,
101042
@ -396,6 +400,7 @@
"n": 22675
}
],
"BattleReadyID": 102,
"FormatList": [
101051,
101052
@ -481,6 +486,7 @@
"n": 18140
}
],
"BattleReadyID": 102,
"FormatList": [
101061,
101062
@ -566,6 +572,7 @@
"n": 20560
}
],
"BattleReadyID": 102,
"FormatList": [
102011
],
@ -650,6 +657,7 @@
"n": 26930
}
],
"BattleReadyID": 102,
"FormatList": [
102021
],
@ -734,6 +742,7 @@
"n": 33260
}
],
"BattleReadyID": 102,
"FormatList": [
102031,
102032
@ -819,6 +828,7 @@
"n": 39600
}
],
"BattleReadyID": 102,
"FormatList": [
102041,
102042
@ -904,6 +914,7 @@
"n": 45935
}
],
"BattleReadyID": 102,
"FormatList": [
102051,
102052
@ -989,6 +1000,7 @@
"n": 57650
}
],
"BattleReadyID": 102,
"FormatList": [
102061,
102062
@ -1074,6 +1086,7 @@
"n": 68615
}
],
"BattleReadyID": 102,
"FormatList": [
103011
],
@ -1158,6 +1171,7 @@
"n": 76035
}
],
"BattleReadyID": 102,
"FormatList": [
103021
],
@ -1242,6 +1256,7 @@
"n": 83455
}
],
"BattleReadyID": 102,
"FormatList": [
103031,
103032
@ -1327,6 +1342,7 @@
"n": 90875
}
],
"BattleReadyID": 102,
"FormatList": [
103041,
103042
@ -1412,6 +1428,7 @@
"n": 106640
}
],
"BattleReadyID": 102,
"FormatList": [
103051,
103052
@ -1497,6 +1514,7 @@
"n": 128695
}
],
"BattleReadyID": 102,
"FormatList": [
103061,
103062
@ -1582,6 +1600,7 @@
"n": 137725
}
],
"BattleReadyID": 102,
"FormatList": [
104011
],
@ -1666,6 +1685,7 @@
"n": 146755
}
],
"BattleReadyID": 102,
"FormatList": [
104021
],
@ -1750,6 +1770,7 @@
"n": 155795
}
],
"BattleReadyID": 102,
"FormatList": [
104031,
104032
@ -1835,6 +1856,7 @@
"n": 179335
}
],
"BattleReadyID": 102,
"FormatList": [
104041,
104042
@ -1920,6 +1942,7 @@
"n": 220415
}
],
"BattleReadyID": 102,
"FormatList": [
104051,
104052
@ -2005,6 +2028,7 @@
"n": 241915
}
],
"BattleReadyID": 102,
"FormatList": [
104061,
104062

View File

@ -9,6 +9,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -31,6 +35,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -53,6 +61,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -75,6 +87,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -97,6 +113,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -119,6 +139,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -141,6 +165,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -163,6 +191,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -185,6 +217,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -207,6 +243,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -229,6 +269,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -251,6 +295,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -273,6 +321,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -295,6 +347,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -317,6 +373,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -339,6 +399,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -361,6 +425,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -383,6 +451,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -405,6 +477,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -427,6 +503,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -449,6 +529,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -471,6 +555,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -493,6 +581,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -515,6 +607,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -537,6 +633,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -559,6 +659,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -581,6 +685,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -603,6 +711,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -647,6 +759,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -669,6 +785,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -691,6 +811,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -713,6 +837,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -735,6 +863,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -757,6 +889,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -779,6 +915,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -801,6 +941,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -823,6 +967,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -845,6 +993,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -867,6 +1019,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -889,6 +1045,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -911,6 +1071,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -933,6 +1097,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -955,6 +1123,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -977,6 +1149,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -999,6 +1175,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1021,6 +1201,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1109,6 +1293,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1131,6 +1319,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1153,6 +1345,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1175,6 +1371,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1197,6 +1397,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1219,6 +1423,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1241,6 +1449,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1263,6 +1475,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1285,6 +1501,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1307,6 +1527,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1329,6 +1553,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",

File diff suppressed because it is too large Load Diff

View File

@ -13,66 +13,66 @@
"privilege_parameter": 60
},
{
"privilege_id": 10201,
"privilege_id": 10102,
"privilege_type": 2,
"privilege_DescribeFront": {
"key": "privilege_10201",
"key": "privilege_10102",
"text": "金币商店每日"
},
"privilege_DescribeAfter": {
"key": "PrivilegeAfter_10201",
"key": "PrivilegeAfter_10102",
"text": "免费刷新次数+1"
},
"privilege_parameter": 1
},
{
"privilege_id": 10301,
"privilege_id": 10103,
"privilege_type": 7,
"privilege_DescribeFront": {
"key": "privilege_10301",
"key": "privilege_10103",
"text": "巨怪商队"
},
"privilege_DescribeAfter": {
"key": "PrivilegeAfter_10301",
"key": "PrivilegeAfter_10103",
"text": "背包容量+1"
},
"privilege_parameter": 1
},
{
"privilege_id": 10104,
"privilege_id": 10201,
"privilege_type": 1,
"privilege_DescribeFront": {
"key": "privilege_10104",
"key": "privilege_10201",
"text": "每日获得"
},
"privilege_DescribeAfter": {
"key": "PrivilegeAfter_10104",
"key": "PrivilegeAfter_10201",
"text": "90钻石"
},
"privilege_parameter": 0
"privilege_parameter": 90
},
{
"privilege_id": 10205,
"privilege_id": 10202,
"privilege_type": 2,
"privilege_DescribeFront": {
"key": "privilege_10205",
"key": "privilege_10202",
"text": "金币商店每日"
},
"privilege_DescribeAfter": {
"key": "PrivilegeAfter_10205",
"key": "PrivilegeAfter_10202",
"text": "免费刷新次数+1"
},
"privilege_parameter": 1
},
{
"privilege_id": 10306,
"privilege_id": 10203,
"privilege_type": 7,
"privilege_DescribeFront": {
"key": "privilege_10306",
"key": "privilege_10203",
"text": "巨怪商队"
},
"privilege_DescribeAfter": {
"key": "PrivilegeAfter_10306",
"key": "PrivilegeAfter_10203",
"text": "背包容量+1"
},
"privilege_parameter": 1

View File

@ -21,8 +21,8 @@
],
"privilege_id": [
10101,
10201,
10301
10102,
10103
]
},
{
@ -46,9 +46,9 @@
}
],
"privilege_id": [
10401,
10501,
10601
10201,
10202,
10203
]
},
{

View File

@ -183,5 +183,37 @@
50006,
50007
]
},
{
"shopid": 6,
"tab": 6,
"shopname": {
"key": "shop_6",
"text": "英雄商店"
},
"upper_shop": {
"key": "shop_title1",
"text": "玩法商店"
},
"needshow": [
{
"a": "attr",
"t": "moongold",
"n": 1
}
],
"rtype": 3,
"rtime": 1,
"rnum": -1,
"rneed": [],
"shopitem": [
50001,
50002,
50003,
50004,
50005,
50006,
50007
]
}
]

View File

@ -7054,5 +7054,41 @@
"lvmax": 60,
"mapidmin": 101,
"mapidmax": 9999
},
{
"key": 197,
"id": 60001,
"iteminfo": [
{
"a": "item",
"t": "30001",
"n": 10
}
],
"preview": false,
"probability": 1000,
"need": [
{
"a": "attr",
"t": "moongold",
"n": 1
}
],
"sale": 1000,
"salelist": [
1000,
1000,
1000,
1000,
1000,
1000
],
"buyminnum": 1,
"buymaxnum": 1,
"vip": 0,
"lvmin": 1,
"lvmax": 60,
"mapidmin": 101,
"mapidmax": 9999
}
]

View File

@ -9486,7 +9486,7 @@
"ExecuteCnt": 1,
"Type": 3,
"Argu": [
390001401,
390001008,
1000,
1,
2

View File

@ -2376,7 +2376,7 @@
"ico": "jn_icon_x002",
"CorrectPos": 0,
"IsMelee": 1,
"act": "Skill_1",
"act": "Skill_2",
"Type": 0,
"CD": 0,
"Target": 1,
@ -2404,7 +2404,7 @@
"ico": "jn_icon_x002",
"CorrectPos": 0,
"IsMelee": 1,
"act": "Skill_1",
"act": "Skill_2",
"Type": 0,
"CD": 0,
"Target": 1,
@ -2432,7 +2432,7 @@
"ico": "jn_icon_x002",
"CorrectPos": 0,
"IsMelee": 1,
"act": "Skill_1",
"act": "Skill_2",
"Type": 0,
"CD": 0,
"Target": 1,
@ -2460,7 +2460,7 @@
"ico": "jn_icon_x002",
"CorrectPos": 0,
"IsMelee": 1,
"act": "Skill_1",
"act": "Skill_2",
"Type": 0,
"CD": 0,
"Target": 1,
@ -2488,7 +2488,7 @@
"ico": "jn_icon_x002",
"CorrectPos": 0,
"IsMelee": 1,
"act": "Skill_1",
"act": "Skill_2",
"Type": 0,
"CD": 0,
"Target": 1,
@ -6322,13 +6322,12 @@
"Target": 1,
"ChildSkill": {
"Id": [
224002211,
224002212
224002211
]
},
"Desc": {
"key": "skill_1240022111",
"text": "攻击时若目标有【童真】附加2回合【中毒】。受击时若攻击者有【童真】50%概率反击。"
"text": "攻击时若目标有【童真】附加2回合【速度下降】。受击时若攻击者有【童真】50%概率反击。"
},
"buffid": [],
"map": ""

View File

@ -8,6 +8,7 @@
"text": "火焰泰坦"
},
"difficulty": 1,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -85,6 +86,7 @@
"text": "火焰泰坦"
},
"difficulty": 2,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -162,6 +164,7 @@
"text": "火焰泰坦"
},
"difficulty": 3,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -239,6 +242,7 @@
"text": "火焰泰坦"
},
"difficulty": 4,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -316,6 +320,7 @@
"text": "火焰泰坦"
},
"difficulty": 5,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -393,6 +398,7 @@
"text": "火焰泰坦"
},
"difficulty": 6,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -470,6 +476,7 @@
"text": "火焰泰坦"
},
"difficulty": 7,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -547,6 +554,7 @@
"text": "火焰泰坦"
},
"difficulty": 8,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -624,6 +632,7 @@
"text": "火焰泰坦"
},
"difficulty": 9,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -701,6 +710,7 @@
"text": "火焰泰坦"
},
"difficulty": 10,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -778,6 +788,7 @@
"text": "冰之泰坦"
},
"difficulty": 1,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -855,6 +866,7 @@
"text": "冰之泰坦"
},
"difficulty": 2,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -932,6 +944,7 @@
"text": "冰之泰坦"
},
"difficulty": 3,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1009,6 +1022,7 @@
"text": "冰之泰坦"
},
"difficulty": 4,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1086,6 +1100,7 @@
"text": "冰之泰坦"
},
"difficulty": 5,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1163,6 +1178,7 @@
"text": "冰之泰坦"
},
"difficulty": 6,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1240,6 +1256,7 @@
"text": "冰之泰坦"
},
"difficulty": 7,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1317,6 +1334,7 @@
"text": "冰之泰坦"
},
"difficulty": 8,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1394,6 +1412,7 @@
"text": "冰之泰坦"
},
"difficulty": 9,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1471,6 +1490,7 @@
"text": "冰之泰坦"
},
"difficulty": 10,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1548,6 +1568,7 @@
"text": "森林泰坦"
},
"difficulty": 1,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1625,6 +1646,7 @@
"text": "森林泰坦"
},
"difficulty": 2,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1702,6 +1724,7 @@
"text": "森林泰坦"
},
"difficulty": 3,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1779,6 +1802,7 @@
"text": "森林泰坦"
},
"difficulty": 4,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1856,6 +1880,7 @@
"text": "森林泰坦"
},
"difficulty": 5,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -1933,6 +1958,7 @@
"text": "森林泰坦"
},
"difficulty": 6,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2010,6 +2036,7 @@
"text": "森林泰坦"
},
"difficulty": 7,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2087,6 +2114,7 @@
"text": "森林泰坦"
},
"difficulty": 8,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2164,6 +2192,7 @@
"text": "森林泰坦"
},
"difficulty": 9,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2241,6 +2270,7 @@
"text": "森林泰坦"
},
"difficulty": 10,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2318,6 +2348,7 @@
"text": "武器BOSS"
},
"difficulty": 1,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2385,6 +2416,7 @@
"text": "武器BOSS"
},
"difficulty": 2,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2452,6 +2484,7 @@
"text": "武器BOSS"
},
"difficulty": 3,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2519,6 +2552,7 @@
"text": "武器BOSS"
},
"difficulty": 4,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2586,6 +2620,7 @@
"text": "武器BOSS"
},
"difficulty": 5,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2653,6 +2688,7 @@
"text": "武器BOSS"
},
"difficulty": 6,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2720,6 +2756,7 @@
"text": "武器BOSS"
},
"difficulty": 7,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2787,6 +2824,7 @@
"text": "武器BOSS"
},
"difficulty": 8,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2854,6 +2892,7 @@
"text": "武器BOSS"
},
"difficulty": 9,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2921,6 +2960,7 @@
"text": "武器BOSS"
},
"difficulty": 10,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -2988,6 +3028,7 @@
"text": "饰品BOSS"
},
"difficulty": 1,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3055,6 +3096,7 @@
"text": "饰品BOSS"
},
"difficulty": 2,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3122,6 +3164,7 @@
"text": "饰品BOSS"
},
"difficulty": 3,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3189,6 +3232,7 @@
"text": "饰品BOSS"
},
"difficulty": 4,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3256,6 +3300,7 @@
"text": "饰品BOSS"
},
"difficulty": 5,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3323,6 +3368,7 @@
"text": "饰品BOSS"
},
"difficulty": 6,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3390,6 +3436,7 @@
"text": "饰品BOSS"
},
"difficulty": 7,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3457,6 +3504,7 @@
"text": "饰品BOSS"
},
"difficulty": 8,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3524,6 +3572,7 @@
"text": "饰品BOSS"
},
"difficulty": 9,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,
@ -3591,6 +3640,7 @@
"text": "饰品BOSS"
},
"difficulty": 10,
"BattleReadyID": 104,
"captionrecommend": [
25001,
25004,

View File

@ -4,10 +4,7 @@
"FormatList": [
700011
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [
21
],
@ -22,10 +19,7 @@
"FormatList": [
700012
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -38,10 +32,7 @@
"FormatList": [
700013
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -54,10 +45,7 @@
"FormatList": [
700014
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -70,10 +58,7 @@
"FormatList": [
700015
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -86,10 +71,7 @@
"FormatList": [
700016
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -102,10 +84,7 @@
"FormatList": [
700017
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -118,10 +97,7 @@
"FormatList": [
700018
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -134,10 +110,7 @@
"FormatList": [
700019
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -150,10 +123,7 @@
"FormatList": [
700020
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -166,10 +136,7 @@
"FormatList": [
700021
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -182,10 +149,7 @@
"FormatList": [
700022
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -198,10 +162,7 @@
"FormatList": [
700023
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",
@ -214,10 +175,7 @@
"FormatList": [
700024
],
"DefaultHero": 0,
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"BattleReadyID": 100,
"EventList": [],
"playexp": {
"a": "attr",

View File

@ -125,12 +125,9 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
//xx英雄满级、共鸣、觉醒至最高状态
nextAwaken := this.module.configure.GetHeroAwakenConfig(_hero.HeroID, _hero.JuexingLv+1)
if nextAwaken == nil { // 达到满级觉醒
resonConfig := this.module.configure.GetHeroResonanceConfig(_hero.HeroID, cfg.Star)
if resonConfig != nil && resonConfig.Maxnum == _hero.ResonateNum {
if _hero.Lv == _hero.Star*comm.HeroStarLvRatio {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
}
if _hero.Lv == _hero.Star*comm.HeroStarLvRatio {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
}
}
}

View File

@ -1,180 +0,0 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ResonanceCheck(session comm.IUserSession, req *pb.HeroResonanceReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || len(req.CostObjID) == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
/// 英雄共鸣
func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceReq) (code pb.ErrorCode, data proto.Message) {
var (
szCostHero map[string]int32 // k 卡牌配置id v 数量
_hero *pb.DBHero
ChangeList []*pb.DBHero // 变化的英雄数据
_costMaphero map[string]*pb.DBHero
count int32 // 共鸣升级次数
)
ChangeList = make([]*pb.DBHero, 0)
szCostHero = make(map[string]int32, 0)
_costMaphero = make(map[string]*pb.DBHero, 0)
code = this.ResonanceCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success {
return
}
//获取原始星级
conf := this.module.configure.GetHeroConfig(_hero.HeroID)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
// 共鸣次数判断
resonConfig := this.module.configure.GetHeroResonanceConfig(_hero.HeroID, conf.Star)
if resonConfig == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
for _, k := range req.CostObjID {
_costHero, c := this.module.GetHeroByObjID(session.GetUserId(), k) // 查询消耗卡是否存在
if c != pb.ErrorCode_Success {
code = c // 英雄被锁不能消耗
return
}
if _costHero.Block {
code = pb.ErrorCode_HeroIsLock
}
_costMaphero[k] = _costHero
szCostHero[_costHero.HeroID] += 1
}
// 一次升级多级
for _, v := range resonConfig.Heroneed {
for k, v1 := range szCostHero {
if k == v.T {
if v1%v.N == 0 {
if count == 0 {
count = v1 / v.N
}
if count != v1/v.N {
code = pb.ErrorCode_ReqParameterError
return
}
} else {
code = pb.ErrorCode_ReqParameterError
return
}
}
}
}
if count == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
if resonConfig.Maxnum < _hero.ResonateNum+count {
code = pb.ErrorCode_HeroMaxResonate // 共鸣次数已满
return
}
for k, v := range _costMaphero {
code = this.module.DelCard(session.GetUserId(), v, szCostHero[v.HeroID])
if code != pb.ErrorCode_Success {
return
}
ChangeList = append(ChangeList, _costMaphero[k])
}
sz := make([]*cfg.Gameatn, 0) // 计算升级多次的消耗
for _, v := range resonConfig.Need {
sz = append(sz, &cfg.Gameatn{
A: v.A,
T: v.T,
N: v.N * count,
})
}
code = this.module.ConsumeRes(session, sz, true)
if code != pb.ErrorCode_Success {
return
}
for k := range _costMaphero {
if k == _hero.Id {
_hero.SameCount = _costMaphero[k].SameCount
break
}
}
if _hero.SameCount == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
if _hero.SameCount > 1 {
_hero.SameCount -= 1
newHero := this.module.modelHero.CloneNewHero(session.GetUserId(), _hero)
ChangeList = append(ChangeList, newHero)
}
_hero.SameCount = 1
_hero.ResonateNum += count
_hero.DistributionResonate += resonConfig.Energy * count
_hero.IsOverlying = false
_heroMap := map[string]interface{}{
"resonateNum": _hero.ResonateNum,
"distributionResonate": _hero.DistributionResonate,
"isOverlying": false,
"sameCount": 1,
"horoscopeProperty": _hero.HoroscopeProperty,
}
err := this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err != nil {
this.module.Errorf("update hero skill failed:%v", err)
code = pb.ErrorCode_DBError
return
}
// 返还对应初始星级的卡
ChangeList = append(ChangeList, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
this.module.DispenseRes(session, resonConfig.Prize, true)
session.SendMsg(string(this.module.GetType()), Resonance, &pb.HeroResonanceResp{Hero: _hero})
//英雄共鸣 【玩家名称】已将【英雄名称】共鸣至满级!
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
this.chat.SendSysChatToWorld(comm.ChatSystem10, nil, _hero.ResonateNum, 0, user.Name, _hero.HeroID)
} else {
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
}
// 任务相关
this.module.ModuleRtask.SendToRtask(session, comm.Rtype39, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype127, _hero.Star, utils.ToInt32(_hero.HeroID), _hero.ResonateNum) //A星英雄共鸣N级
this.module.ModuleRtask.SendToRtask(session, comm.Rtype40, 1, 1)
cfg := this.module.configure.GetHeroConfig(_hero.HeroID)
if cfg != nil {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype126, cfg.Race, _hero.ResonateNum)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype36, 1, cfg.Color, cfg.Job, cfg.Race, _hero.ResonateNum)
//xx英雄满级、共鸣、觉醒至最高状态
nextAwaken := this.module.configure.GetHeroAwakenConfig(_hero.HeroID, _hero.JuexingLv+1)
if nextAwaken == nil { // 达到满级觉醒
resonConfig := this.module.configure.GetHeroResonanceConfig(_hero.HeroID, cfg.Star)
if resonConfig != nil && resonConfig.Maxnum == _hero.ResonateNum { // 共鸣满
if _hero.Lv == _hero.Star*comm.HeroStarLvRatio {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
}
}
}
}
return
}

View File

@ -1,87 +0,0 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ResonanceResetCheck(session comm.IUserSession, req *pb.HeroResonanceResetReq) (code pb.ErrorCode) {
if req.HeroObjID == "" {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
/// 英雄共鸣
func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroResonanceResetReq) (code pb.ErrorCode, data proto.Message) {
var (
_hero *pb.DBHero
)
code = this.ResonanceResetCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success {
code = pb.ErrorCode_HeroNoExist
return
}
if _hero.ResonateNum <= 0 { // 没有共鸣 不允许重置
code = pb.ErrorCode_HeroNoResonate
return
}
// 共鸣次数判断
//获取原始星级
conf := this.module.configure.GetHeroConfig(_hero.HeroID)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
resonConfig := this.module.configure.GetHeroResonanceConfig(_hero.HeroID, conf.Star)
if resonConfig == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
if _hero.ResonateNum*resonConfig.Energy == _hero.DistributionResonate {
code = pb.ErrorCode_HeroNotNeedResonate // 已经是重置状态
return
}
_costConfig, err1 := this.module.configure.GetHeroResonanceRestConfig()
if err1 != nil {
code = pb.ErrorCode_ConfigNoFound // 没找到配置消耗
return
}
// 消耗校验
code = this.module.ConsumeRes(session, _costConfig.Var, true)
if code != pb.ErrorCode_Success {
return
}
_hero.EnergyProperty = make(map[string]int32, 0)
_hero.Energy = make(map[string]int32)
_hero.DistributionResonate = _hero.ResonateNum * resonConfig.Energy
_heroMap := map[string]interface{}{
"distributionResonate": _hero.DistributionResonate,
"energy": _hero.Energy,
"isOverlying": false,
"energyProperty": _hero.EnergyProperty,
}
err1 = this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil {
this.module.Errorf("update hero skill failed:%v", err1)
code = pb.ErrorCode_DBError
return
}
session.SendMsg(string(this.module.GetType()), ResonanceReset, &pb.HeroResonanceResetResp{Hero: _hero, Energy: _hero.ResonateNum})
return
}

View File

@ -1,65 +0,0 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ResonanceUseEnergyCheck(session comm.IUserSession, req *pb.HeroResonanceUseEnergyReq) (code pb.ErrorCode) {
if len(req.HeroObjID) == 0 || len(req.Energy) == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
func (this *apiComp) ResonanceUseEnergy(session comm.IUserSession, req *pb.HeroResonanceUseEnergyReq) (code pb.ErrorCode, data proto.Message) {
var (
_hero *pb.DBHero
totalEnergy int32
)
code = this.ResonanceUseEnergyCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) // 查询目标卡是否存在
if code != pb.ErrorCode_Success {
return
}
for _, v := range req.Energy {
totalEnergy += v.UseEnergy
}
if _hero.DistributionResonate < totalEnergy { // 能量点数不够
code = pb.ErrorCode_HeroNoEnergy
return
}
for _, v := range req.Energy {
if v.UseEnergy > 0 {
_hero.Energy[v.UseType] += v.UseEnergy
}
}
_hero.DistributionResonate -= totalEnergy
_heroMap := map[string]interface{}{
"distributionResonate": _hero.DistributionResonate, // 减没有分配的能量
"energy": _hero.Energy,
"isOverlying": false,
}
err1 := this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil {
code = pb.ErrorCode_DBError
this.module.Errorf("update hero skill failed:%v", err1)
return
}
conf := this.module.configure.GetHeroConfig(_hero.HeroID)
// 计算属性
this.module.modelHero.setEnergyProperty(_hero, conf.Star)
session.SendMsg(string(this.module.GetType()), ResonanceUseEnergy, &pb.HeroResonanceUseEnergyResp{Hero: _hero})
return
}

View File

@ -3,6 +3,7 @@ package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
"google.golang.org/protobuf/proto"
@ -10,7 +11,7 @@ import (
//参数校验
func (this *apiComp) StrengthenUpSkillCheck(session comm.IUserSession, req *pb.HeroStrengthenUpSkillReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || len(req.CostCardObj) == 0 {
if req.HeroObjID == "" || len(req.Item) == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
@ -21,17 +22,11 @@ func (this *apiComp) StrengthenUpSkillCheck(session comm.IUserSession, req *pb.H
/// 英雄技能升级
func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroStrengthenUpSkillReq) (code pb.ErrorCode, data proto.Message) {
var (
upSkillPos int32 // 升级的技能位置
_hero *pb.DBHero // 操作的英雄
ChangeList []*pb.DBHero // 推送 改变的英雄
mapCostHero map[string]int32 // 消耗的技能卡
mapCostObj map[string]*pb.DBHero // 消耗的技能卡对象
costGold int64 // 金币消耗
lvUpCount int32 // 技能升级的次数
upSkillPos int32 // 升级的技能位置
_hero *pb.DBHero // 操作的英雄
cost []*cfg.Gameatn // 技能升级消耗
lvUpCount int32 // 技能升级的次数
)
mapCostHero = make(map[string]int32, 0)
mapCostObj = make(map[string]*pb.DBHero, 0)
ChangeList = make([]*pb.DBHero, 0)
code = this.StrengthenUpSkillCheck(session, req) // check
if code != pb.ErrorCode_Success {
@ -47,50 +42,36 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
code = pb.ErrorCode_HeroNoExist
return
}
for _, v := range req.CostCardObj { // 数组转 map
mapCostHero[v]++
for _, v1 := range req.Item {
bFind := false
for _, v := range heroCfg.Heroskillup {
if v == v1 {
bFind = true
lvUpCount++ // 升级次数
break
}
}
if !bFind {
code = pb.ErrorCode_ReqParameterError
return
}
cost = append(cost, &cfg.Gameatn{
A: "item",
T: v1,
N: 1,
})
}
for k, v := range mapCostHero {
costHero, c := this.module.GetHeroByObjID(session.GetUserId(), k) // 查询消耗卡是否存在
if c != pb.ErrorCode_Success {
code = c
return
// 消耗获取
for i := 0; i < int(lvUpCount); i++ {
if atn := this.module.configure.GetHeroSkillCost(heroCfg.Star); len(atn) > 0 {
cost = append(cost, atn...)
}
if costHero.Block { // 锁定的卡不允许被消耗
code = pb.ErrorCode_HeroIsLock
return
}
if costHero.SameCount < v { // 数量校验
code = pb.ErrorCode_HeroNoEnough
return
}
tmp := this.module.configure.GetHeroConfig(costHero.HeroID) // 星级校验
if tmp.Color != heroCfg.Color {
code = pb.ErrorCode_HeroColorErr
return
}
if tmp.Type != comm.CardTypeSkill { // 查看是不是升级卡
code = pb.ErrorCode_HeroTypeErr
return
}
expConf := this.module.configure.GetHeroExp(costHero.HeroID) // 消耗多少金币
if expConf != nil {
costGold += int64(expConf.Needgold * v)
lvUpCount += expConf.Skilllevelup * v
} else {
lvUpCount += v // 计算技能升级次数
}
mapCostObj[k] = costHero
}
// 检查金币消耗
curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), comm.ResGold)
if curGold < costGold { // 金币不足
code = pb.ErrorCode_GoldNoEnough
// 检查消耗
if code = this.module.CheckRes(session, cost); code != pb.ErrorCode_Success {
return
}
for i := 0; i < int(lvUpCount); i++ { // 升级技能
szIndex := make([]int32, 0)
sz := make([]int32, 0)
@ -115,54 +96,20 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
_hero.NormalSkill[szIndex[upSkillPos]].SkillLv += 1
}
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, -int32(costGold), true)
if code != pb.ErrorCode_Success { // 金币不足
code = pb.ErrorCode_GoldNoEnough
if code = this.module.ConsumeRes(session, cost, true); code != pb.ErrorCode_Success {
return
}
for k, v := range mapCostObj {
code = this.module.DelCard(session.GetUserId(), v, mapCostHero[k])
if code != pb.ErrorCode_Success {
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, int32(costGold), true)
return
}
ChangeList = append(ChangeList, v)
}
// 堆叠情况
if _hero.SameCount > 1 {
_hero.SameCount -= 1
sz := make([]*pb.SkillData, 0)
for _, v := range _hero.NormalSkill {
sz = append(sz, &pb.SkillData{
SkillID: v.SkillID,
SkillLv: v.SkillLv,
})
v.SkillLv = 1
}
newHero := this.module.modelHero.CloneNewHero(session.GetUserId(), _hero)
ChangeList = append(ChangeList, newHero)
_hero.NormalSkill = sz
}
_heroMap := map[string]interface{}{
"normalSkill": _hero.NormalSkill,
"isOverlying": false,
"sameCount": 1,
"horoscopeProperty": _hero.HoroscopeProperty,
}
_hero.SameCount = 1
err1 := this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil {
this.module.Errorf("update hero skill failed:%v", err1)
code = pb.ErrorCode_DBError
return
}
//this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
ChangeList = append(ChangeList, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
//英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {

View File

@ -11,7 +11,7 @@ import (
//参数校验
func (this *apiComp) StrengthenUpStarCheck(session comm.IUserSession, req *pb.HeroStrengthenUpStarReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || len(req.HeroRace) == 0 {
if req.HeroObjID == "" {
code = pb.ErrorCode_ReqParameterError
}
@ -21,25 +21,9 @@ func (this *apiComp) StrengthenUpStarCheck(session comm.IUserSession, req *pb.He
/// 英雄升星
func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStrengthenUpStarReq) (code pb.ErrorCode, data proto.Message) {
var (
starConf *cfg.GameHeroStarupData // 配置表目标升星英雄信息
costNeedHeroCount int32 // 消耗指定英雄的数量
costRaceHeroCount int32 // 消耗种族英雄的数量
_hero *pb.DBHero // 目标英雄
tagHero *pb.DBHero // 消耗指定英雄
mapCostHero map[string]int32 // 所有消耗英雄分类
chanegCard []*pb.DBHero // 变化的英雄数据
CostHeroObj map[string]*pb.DBHero // 所有消耗英雄分类
starConf *cfg.GameHeroStarupData // 配置表目标升星英雄信息
_hero *pb.DBHero // 目标英雄
)
mapCostHero = make(map[string]int32, 0)
CostHeroObj = make(map[string]*pb.DBHero, 0)
for _, v := range req.Hero {
mapCostHero[v.CostCardObj] += v.Amount
costNeedHeroCount += v.Amount
}
for _, v := range req.HeroRace {
mapCostHero[v.CostCardObj] += v.Amount
costRaceHeroCount += v.Amount
}
code = this.StrengthenUpStarCheck(session, req) // check
if code != pb.ErrorCode_Success {
@ -63,111 +47,34 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
return
}
// 优先校验数量对不对
if starConf.Needheronum != costNeedHeroCount || starConf.Needracenum != costRaceHeroCount {
code = pb.ErrorCode_ReqParameterError
return
}
costNeedHeroCount = 0
costRaceHeroCount = 0
// 遍历所有消耗英雄
for k, v := range mapCostHero {
if tagHero, code = this.module.GetHeroByObjID(session.GetUserId(), k); code != pb.ErrorCode_Success { // 没有这个英雄
return
} else {
if tagHero.Block { // 锁定的卡不允许被消耗
code = pb.ErrorCode_HeroIsLock
return
}
if tagHero.SameCount < v { // 校验数量
code = pb.ErrorCode_ReqParameterError
return
}
if tagHero.HeroID == starConf.Needhero && tagHero.Star == starConf.Needherostar && tagHero.SameCount >= starConf.Needheronum {
costNeedHeroCount += v
}
for _, value := range starConf.Needrace { // 阵营校验
// 获取配置表英雄阵营
cfg := this.module.configure.GetHeroConfig(tagHero.HeroID)
if cfg != nil {
if cfg.Race == value {
costRaceHeroCount += v
}
}
}
}
CostHeroObj[k] = tagHero
}
if starConf.Needheronum > costNeedHeroCount || starConf.Needracenum > costRaceHeroCount {
code = pb.ErrorCode_ReqParameterError
if code = this.module.ConsumeRes(session, starConf.Needrace, true); code != pb.ErrorCode_Success {
return
}
// 金币消耗判断
curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), comm.ResGold)
if curGold < int64(starConf.Gold) { // 金币不足
code = pb.ErrorCode_GoldNoEnough
return
}
// 消耗道具
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, -starConf.Gold, true) // 减少金币
if code != pb.ErrorCode_Success {
this.module.Errorf("cost gold failed ,count = %d", starConf.Gold)
code = pb.ErrorCode_GoldNoEnough
return
}
for k, v := range mapCostHero {
code = this.module.DelCard(session.GetUserId(), CostHeroObj[k], v)
if code != pb.ErrorCode_Success {
this.module.Errorf("del hero err card:%s,count = %d", k, v)
this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, starConf.Gold, true) // 回退金币
return
}
chanegCard = append(chanegCard, CostHeroObj[k])
}
// 加对应的天赋点数
if len(starConf.Starup) > 0 {
if code = this.module.DispenseRes(session, starConf.Starup, true); code != pb.ErrorCode_Success { // 加天赋点{
this.module.Errorf("DispenseRes err:uid:%s,res:%v", session.GetUserId(), starConf.Starup)
}
}
if _hero.SameCount > 1 { //有堆叠的情况
// 克隆一个新的
_hero.SameCount -= 1
newHero := this.module.modelHero.CloneNewHero(session.GetUserId(), _hero)
chanegCard = append(chanegCard, newHero)
}
_hero.Star += 1
_hero.SameCount = 1
this.module.modelHero.PropertyCompute(_hero) // 重新计算属性
_heroMap := map[string]interface{}{
"star": _hero.Star,
"sameCount": 1,
"isOverlying": false,
"talentProperty": _hero.TalentProperty,
"juexProperty": _hero.JuexProperty,
"horoscopeProperty": _hero.HoroscopeProperty,
}
if heroConf != nil && heroConf.Type == comm.CardTypeStar { // 升星卡升星 修改heroid
hid := this.module.configure.GetHeroSpriteStar(_hero.HeroID)
if hid != "" {
_hero.HeroID = hid
_heroMap["heroID"] = _hero.HeroID
}
}
// 保存数据
err := this.module.modelHero.ChangeList(session.GetUserId(), _hero.Id, _heroMap)
if err != nil {
code = pb.ErrorCode_DBError
this.module.Errorf("update hero skill failed:%v", err)
this.module.Errorf("update hero star failed:%v", err)
}
this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性
chanegCard = append(chanegCard, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})
//英雄升星 【玩家名称】已将【英雄名称】培养至6星

View File

@ -3,22 +3,17 @@ package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || len(req.ExpCards) == 0 {
if req.HeroObjID == "" || len(req.Item) == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
for _, v := range req.ExpCards {
if v.Value <= 0 || v.Key == "" {
code = pb.ErrorCode_ReqParameterError
return
}
}
return
}
@ -27,73 +22,45 @@ func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.Hero
func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode, data proto.Message) {
var (
addExp int32 // 需要增加的经验
costGold int64 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄
_costExpHero map[string]*pb.DBHero // 消耗英雄
minAddExp int32
_changeHero []*pb.DBHero // 变化的英雄
_mapCost map[string]int32 //
addExp int32 // 需要增加的经验
costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄
cost []*cfg.Gameatn // 消耗的道具
)
_costExpHero = make(map[string]*pb.DBHero, 0)
_mapCost = make(map[string]int32, 0)
for _, v := range req.ExpCards { // 数组转map
_mapCost[v.Key] += v.Value
}
code = this.StrengthenUplvCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success {
return
}
// 只有英雄卡才能升级
if _hero.CardType != comm.CardTypeHero && _hero.CardType != comm.CardTypeStar {
code = pb.ErrorCode_HeroTypeErr
return
}
for k, v := range _mapCost {
_expHero, c := this.module.GetHeroByObjID(session.GetUserId(), k) // 校验需要消耗经验卡牌的对象是否存在
code = c
if code != pb.ErrorCode_Success {
return
}
if _expHero.Block { // 锁定的卡不允许被消耗
code = pb.ErrorCode_HeroIsLock
return
}
if _expHero.CardType != comm.CardTypeLevel {
code = pb.ErrorCode_HeroTypeErr
return
}
if v > _expHero.SameCount { // 校验数量
code = pb.ErrorCode_HeroNoEnough
return
for k, v := range req.Item {
if v == 0 {
continue
}
cost = append(cost, &cfg.Gameatn{
A: "item",
T: k,
N: v,
})
// 查询 本次消耗会获得多少经验
expConf := this.module.configure.GetHeroExp(_expHero.HeroID)
if expConf != nil {
addExp += expConf.Heroexp * v
if expConf := this.module.configure.GetHeroExp(k); expConf != nil {
addExp += expConf.Exp * v
costGold += expConf.Needgold * v
}
costGold += int64(expConf.Needgold * v) // 需要消耗的金币
if _expHero.SameCount < v { // 消耗经验卡片数量不足
code = pb.ErrorCode_HeroNoEnough
return
}
if minAddExp == 0 {
minAddExp = expConf.Heroexp //初始化
} else if minAddExp > expConf.Heroexp {
minAddExp = expConf.Heroexp // 取出最小的经验卡
}
_costExpHero[k] = _expHero
}
cost = append(cost, &cfg.Gameatn{
A: "attr",
T: "gold",
N: costGold,
})
// 金币消耗判断
curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), comm.ResGold)
if curGold < costGold { // 金币不足
code = pb.ErrorCode_GoldNoEnough
if code = this.module.CheckRes(session, cost); code != pb.ErrorCode_Success {
return
}
if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr
return
@ -105,44 +72,27 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
}
curLv := _hero.Lv
// 执行升级逻辑
newhero, _, code := this.module.modelHero.AddCardExp(session, _hero, addExp) // 加经验
_, code = this.module.modelHero.AddCardExp(session, _hero, addExp) // 加经验
if code != pb.ErrorCode_Success {
return
}
iLvUp := _hero.Lv - curLv
// 消耗金币
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, -int32(costGold), true)
if code != pb.ErrorCode_Success { // 金币不足
code = pb.ErrorCode_GoldNoEnough
if code = this.module.ConsumeRes(session, cost, true); code != pb.ErrorCode_Success { //道具扣除
code = pb.ErrorCode_ItemsNoEnough
return
}
// 删除经验卡
for k, v := range _mapCost {
err1 := this.module.modelHero.consumeHeroCard(session.GetUserId(), _costExpHero[k], v)
if err1 != nil {
code = pb.ErrorCode_HeroNoEnough
this.module.Errorf("delete err failed err:%T!", err1)
this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, int32(costGold), true) // 回退金币
return
}
_changeHero = append(_changeHero, _costExpHero[k])
}
if iLvUp > 0 {
this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性值
}
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
if newhero != nil {
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
}
//英雄升级 【玩家名称】已将【英雄名称】培养至60级
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
this.chat.SendSysChatToWorld(comm.ChatSystem7, nil, _hero.Lv, 0, user.Name, _hero.HeroID)
} else {
this.module.Errorf("no found userdata uid:%s", session.GetUserId())
}
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
return
}

View File

@ -6,44 +6,46 @@ import (
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"sync"
"go_dreamfactory/lego/core"
"go_dreamfactory/utils"
)
const (
equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_resonance = "game_heroresonance.json" // 英雄共鸣
hero_comatn = "game_comatn.json" // 英雄共鸣重置
hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合
hero_starupsp = "game_herostarupsp.json" // 精灵升星
hero_talentskill = "game_talentskill.json" // 天赋
hero_talent = "game_herotalent.json" // 天赋详细数据
hero_itembox = "game_itembox.json" // 天赋详细数据
equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
//hero_resonance = "game_heroresonance.json" // 英雄共鸣
//hero_comatn = "game_comatn.json" // 英雄共鸣重置
hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合
hero_starupsp = "game_herostarupsp.json" // 精灵升星
hero_talentskill = "game_talentskill.json" // 天赋
hero_talent = "game_herotalent.json" // 天赋详细数据
hero_itembox = "game_itembox.json" // 天赋详细数据
game_shopitem = "game_shopitem.json"
hero_skill = "game_heroskill.json"
)
///配置管理组件
type configureComp struct {
modules.MCompConfigure
hlock sync.RWMutex
drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级
//map["base_pool1"]map[3]*cfg.Game_drawCardData
awakenMap map[int64]*cfg.GameHeroAwakenData
resonanceMap map[int64]*cfg.GameHeroResonanceData
starMap map[int64]*cfg.GameHeroStarupData
module *Hero
awakenMap map[int64]*cfg.GameHeroAwakenData
starMap map[int64]*cfg.GameHeroStarupData
module *Hero
}
//组件初始化接口
@ -52,15 +54,15 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Hero)
err = this.LoadMultiConfigure(map[string]interface{}{
equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk,
hero_comatn: cfg.NewGameComAtn,
equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk,
//hero_comatn: cfg.NewGameComAtn,
hero_drawcard: cfg.NewGameDrawCard,
hero_fusion: cfg.NewGameHerofusion,
hero_starupsp: cfg.NewGameHeroStarupSp,
@ -68,12 +70,15 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
hero_talent: cfg.NewGameHeroTalent,
hero_itembox: cfg.NewGameItemBox,
game_shopitem: cfg.NewGameShopitem,
hero_skill: cfg.NewGameHeroSkill,
})
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0)
configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() {
if v, err := this.GetConfigure(hero_awaken); err == nil {
this.hlock.Lock()
defer this.hlock.Unlock()
if _configure, ok := v.(*cfg.GameHeroAwaken); ok {
for _, v := range _configure.GetDataList() {
this.awakenMap[int64(utils.ToInt32(v.Hid)<<8)+int64(v.Phase)] = v
@ -85,26 +90,14 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
}
})
// 共鸣
this.resonanceMap = make(map[int64]*cfg.GameHeroResonanceData, 0)
configure.RegisterConfigure(hero_resonance, cfg.NewGameHeroResonance, func() {
if v, err := this.GetConfigure(hero_resonance); err == nil {
if _configure, ok := v.(*cfg.GameHeroResonance); ok {
for _, v := range _configure.GetDataList() {
this.resonanceMap[int64(utils.ToInt32(v.Hid)<<8)+int64(v.Star)] = v
}
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
}
})
// 升星
this.starMap = make(map[int64]*cfg.GameHeroStarupData, 0)
configure.RegisterConfigure(hero_starup, cfg.NewGameHeroStarup, func() {
if v, err := this.GetConfigure(hero_starup); err == nil {
if _configure, ok := v.(*cfg.GameHeroStarup); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, v := range _configure.GetDataList() {
this.starMap[int64(utils.ToInt32(v.Id)<<8)+int64(v.Star)] = v
}
@ -124,9 +117,15 @@ func (this *configureComp) GetHeroStarupConfig(hid string, star int32) *cfg.Game
return this.starMap[int64(utils.ToInt32(hid)<<8)+int64(star)]
}
// 通过英雄配置ID获取共鸣配置信息
func (this *configureComp) GetHeroResonanceConfig(hid string, star int32) *cfg.GameHeroResonanceData {
return this.resonanceMap[int64(utils.ToInt32(hid)<<8)+int64(star)]
// 获取当前英雄最高星级
func (this *configureComp) GetHeroMaxStar(hid string, curStar int32) int32 {
var star int32
for star = curStar; star < 100; star++ {
if _, ok := this.starMap[int64(utils.ToInt32(hid)<<8)+int64(star+1)]; !ok {
return star
}
}
return star
}
func (this *configureComp) GetHeroAwakenConfig(hid string, phase int32) *cfg.GameHeroAwakenData {
@ -376,20 +375,6 @@ func (this *configureComp) GetHeroSkillMaxLvConfig(skillId uint32) int32 {
return 0
}
func (this *configureComp) GetHeroResonanceRestConfig() (data *cfg.GameComAtnData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(hero_comatn); err == nil {
if configure, ok := v.(*cfg.GameComAtn); ok {
data = configure.Get("hero_reset")
return
}
}
this.module.Errorf("cfg.GameComAtnData GetHeroResonanceRestConfig:id = hero_reset")
return
}
// 获取卡牌合成配置
func (this *configureComp) GetHeroFucionConfig(cid string) (data *cfg.GameHerofusionData) {
@ -516,3 +501,15 @@ func (this *configureComp) GetEquipsuit(id int32) (configure *cfg.GameEquipSuitD
}
return
}
func (this *configureComp) GetHeroSkillCost(star int32) (cost []*cfg.Gameatn) {
if v, err := this.GetConfigure(hero_skill); err == nil {
if configure, ok := v.(*cfg.GameHeroSkill); ok {
return configure.Get(star).Needgold
}
} else {
err = fmt.Errorf("%T no is *cfg.GameHeroExp", v)
}
return
}

View File

@ -318,30 +318,6 @@ func (this *ModelHero) setJuexingProperty(hero *pb.DBHero, key string, value int
}
}
// 设置共鸣能量点数属性
func (this *ModelHero) setEnergyProperty(hero *pb.DBHero, star int32) {
resonConfig := this.moduleHero.configure.GetHeroResonanceConfig(hero.HeroID, star)
if resonConfig == nil {
return
}
EnergyProperty := make(map[string]int32) //副属性
for k, v := range hero.Energy {
if k == comm.ResonanceHpPro {
EnergyProperty[comm.Hp] += int32(math.Floor(float64(resonConfig.Hppro*v) / 1000 * float64(hero.Property[comm.Hp])))
} else if k == comm.ResonanceAtkPro {
EnergyProperty[comm.Atk] += int32(math.Floor(float64(resonConfig.Atkpro*v) / 1000 * float64(hero.Property[comm.Atk])))
} else if k == comm.ResonanceDefPro {
EnergyProperty[comm.Def] += int32(math.Floor(float64(resonConfig.Defpro*v) / 1000 * float64(hero.Property[comm.Def])))
}
}
_heroMap := make(map[string]interface{}, 0)
_heroMap["enegryProperty"] = EnergyProperty
if err := this.ChangeList(hero.Uid, hero.Id, _heroMap); err != nil {
this.moduleHero.Errorf("mergeenegryProperty err %v", err)
}
}
// 设置装备属性
func (this *ModelHero) setEquipProperty(hero *pb.DBHero, equip []*pb.DB_Equipment) {
@ -567,7 +543,7 @@ func (this *ModelHero) cleanData(uid string) {
}
}
func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, exp int32) (newhero *pb.DBHero, curAddExp int32, code pb.ErrorCode) {
func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, exp int32) (curAddExp int32, code pb.ErrorCode) {
var (
preLv int32 //加经验之前的等级
curExp int32 // 加经验之后的经验
@ -623,10 +599,7 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
if curAddExp != 0 {
curAddExp = exp // 真正加的经验
}
if hero.SameCount > 1 { //有堆叠的情况
hero.SameCount -= 1
newhero = this.CloneNewHero(session.GetUserId(), hero) // 克隆一个新的
}
this.moduleHero.Debugf("add hero exp :old lv:%d,old exp:%d,new lv:%d,new exp:%d,addexp:%d", hero.Lv, hero.Exp, curLv, curExp, exp)
update["lv"] = curLv
update["exp"] = curExp
@ -658,12 +631,9 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
//xx英雄满级、共鸣、觉醒至最高状态
nextAwaken := this.moduleHero.configure.GetHeroAwakenConfig(hero.HeroID, hero.JuexingLv+1)
if nextAwaken == nil { // 达到满级觉醒
resonConfig := this.moduleHero.configure.GetHeroResonanceConfig(hero.HeroID, cfg.Star)
if resonConfig != nil && resonConfig.Maxnum == hero.ResonateNum { // 共鸣满
if hero.Lv == hero.Star*comm.HeroStarLvRatio {
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
}
if hero.Lv == hero.Star*comm.HeroStarLvRatio {
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
}
}
}

View File

@ -218,16 +218,7 @@ func (this *Hero) GetSpecifiedHero(session comm.IUserSession, heroConfId string,
return
}
// 获取最大星级
for i := 1; ; i++ {
starConf := this.configure.GetHeroStarupConfig(cid, conf.Star+int32(i))
if starConf == nil {
break
}
if starConf != nil && starConf.Gold == 0 {
maxStar = star + int32(i)
break
}
}
maxStar = this.configure.GetHeroMaxStar(cid, conf.Star)
maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级
if star > maxStar || lv > maxLv {
@ -304,7 +295,6 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]
func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp int32) (curAddExp int32, code pb.ErrorCode) {
var (
_hero *pb.DBHero
newhero *pb.DBHero
_changeHero []*pb.DBHero // 变化的英雄
)
if heroObjID == "" {
@ -315,14 +305,12 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
return
}
newhero, curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp)
curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp)
if code != pb.ErrorCode_Success {
return
}
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
if newhero != nil {
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
}
session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
return
}
@ -656,16 +644,7 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
continue // 走到这里说明配置表没有配置数据
}
// 获取最大星级
for i := 1; ; i++ {
starConf := this.configure.GetHeroStarupConfig(cid, v.Star+int32(i))
if starConf == nil {
break
}
if starConf != nil && starConf.Gold == 0 {
maxStar = v.Star + int32(i)
break
}
}
maxStar = this.configure.GetHeroMaxStar(cid, v.Star)
maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级

View File

@ -5,7 +5,6 @@ import (
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"sync"
)
const (
@ -18,7 +17,6 @@ const (
type configureComp struct {
modules.MCompConfigure
module *Mline
hlock sync.RWMutex
}
//组件初始化接口

View File

@ -238,26 +238,38 @@ func (this *ModuleBase) SendMsgToCUsers(mainType, subType string, msg proto.Mess
// 只校验资源 参数 atn格式
func (this *ModuleBase) CheckRes(session comm.IUserSession, res []*cfg.Gameatn) (code pb.ErrorCode) {
//校验消费资源是否充足
var (
items map[string]int32 // 道具背包 批量处理
attrs map[string]int32 // 属性
)
items = make(map[string]int32, 0)
attrs = make(map[string]int32, 0)
for _, v := range res {
if v.A == comm.AttrType { //用户属性资源
if amount := this.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T); amount < int64(v.N) {
code = pb.ErrorCode_ResNoEnough
this.Warnf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N)
return
}
} else if v.A == comm.ItemType { //道具资源
// if resID, err = strconv.Atoi(v.T); err != nil {
// code = pb.ErrorCode_ConfigurationException
// return
// }
if amount := this.ModuleItems.QueryItemAmount(session.GetUserId(), v.T); amount < uint32(v.N) {
code = pb.ErrorCode_ResNoEnough
this.Warnf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N)
return
}
switch v.A {
case comm.AttrType:
attrs[v.T] = v.N
case comm.ItemType:
items[v.T] = v.N
default:
this.Errorf("not found res type") // 找不到资源类型
}
}
// 校验数量
for k, v := range attrs {
if this.ModuleUser.QueryAttributeValue(session.GetUserId(), k) < int64(v) {
code = pb.ErrorCode_ResNoEnough
this.Warnf("资源不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v})
return
}
}
for k, v := range items { //校验消费资源是否充足
if int32(this.ModuleItems.QueryItemAmount(session.GetUserId(), k)) < v {
code = pb.ErrorCode_ResNoEnough
this.Warnf("道具不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v})
return
}
}
return
}
@ -274,6 +286,7 @@ func (this *ModuleBase) ConsumeRes(session comm.IUserSession, res []*cfg.Gameatn
switch v.A {
case comm.AttrType:
attrs[v.T] -= v.N
case comm.ItemType:
items[v.T] -= v.N
default:

View File

@ -47,11 +47,11 @@ func (this *apiComp) Battlestart(session comm.IUserSession, req *pb.WorldtaskBat
resp *pb.WorldtaskBattleStartResp
)
code, record = b.CreateEveBattle(session, &pb.BattleEVEReq{
Ptype: pb.PlayType_rtask,
Format: req.Battle,
Sysformat: []int32{battleConf.DefaultHero},
Backupformat: []int32{battleConf.AssistTeam},
Buleformat: battleConf.FormatList,
Ptype: pb.PlayType_rtask,
Format: req.Battle,
// Sysformat: []int32{battleConf.DefaultHero},
// Backupformat: []int32{battleConf.AssistTeam},
Buleformat: battleConf.FormatList,
})
if code != pb.ErrorCode_Success {

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@ type GameArenaChallengeNpcData struct {
Id int32
OpenCond int32
OpenValue int32
BattleReadyID int32
MonsterformatId []int32
StroyIdFront int32
StroyIdAfter int32
@ -33,6 +34,7 @@ func (_v *GameArenaChallengeNpcData)Deserialize(_buf map[string]interface{}) (er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["open_cond"].(float64); !_ok_ { err = errors.New("open_cond error"); return }; _v.OpenCond = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["open_value"].(float64); !_ok_ { err = errors.New("open_value error"); return }; _v.OpenValue = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

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 GameBattleReady struct {
_dataMap map[int32]*GameBattleReadyData
_dataList []*GameBattleReadyData
}
func NewGameBattleReady(_buf []map[string]interface{}) (*GameBattleReady, error) {
_dataList := make([]*GameBattleReadyData, 0, len(_buf))
dataMap := make(map[int32]*GameBattleReadyData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameBattleReadyData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameBattleReady{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameBattleReady) GetDataMap() map[int32]*GameBattleReadyData {
return table._dataMap
}
func (table *GameBattleReady) GetDataList() []*GameBattleReadyData {
return table._dataList
}
func (table *GameBattleReady) Get(key int32) *GameBattleReadyData {
return table._dataMap[key]
}

View File

@ -0,0 +1,75 @@
//------------------------------------------------------------------------------
// <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 GameBattleReadyData struct {
Id int32
PlayType string
HeroCount int32
DefaultHero int32
DisableHero []string
LockSlots []int32
AssistTeam int32
CanFriendHelp int32
}
const TypeId_GameBattleReadyData = -266091495
func (*GameBattleReadyData) GetTypeId() int32 {
return -266091495
}
func (_v *GameBattleReadyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.PlayType, _ok_ = _buf["PlayType"].(string); !_ok_ { err = errors.New("PlayType error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["HeroCount"].(float64); !_ok_ { err = errors.New("HeroCount error"); return }; _v.HeroCount = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DefaultHero"].(float64); !_ok_ { err = errors.New("DefaultHero error"); return }; _v.DefaultHero = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["DisableHero"].([]interface{}); !_ok_ { err = errors.New("DisableHero error"); return }
_v.DisableHero = 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.DisableHero = append(_v.DisableHero, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["LockSlots"].([]interface{}); !_ok_ { err = errors.New("LockSlots error"); return }
_v.LockSlots = 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.LockSlots = append(_v.LockSlots, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["AssistTeam"].(float64); !_ok_ { err = errors.New("AssistTeam error"); return }; _v.AssistTeam = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CanFriendHelp"].(float64); !_ok_ { err = errors.New("CanFriendHelp error"); return }; _v.CanFriendHelp = int32(_tempNum_) }
return
}
func DeserializeGameBattleReadyData(_buf map[string]interface{}) (*GameBattleReadyData, error) {
v := &GameBattleReadyData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -16,6 +16,7 @@ type GameCombatMansterData struct {
Sencenstory []int32
Time int32
Clickstory int32
BattleReadyID int32
FormatList []int32
Award []*Gameatn
}
@ -45,6 +46,7 @@ func (_v *GameCombatMansterData)Deserialize(_buf map[string]interface{}) (err er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["clickstory"].(float64); !_ok_ { err = errors.New("clickstory error"); return }; _v.Clickstory = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -16,6 +16,7 @@ type GameDreamlandBoosData struct {
Fightnum int32
Challengenum int32
Prize []*Gameatn
BattleReadyID int32
Monsterformatid []int32
DreamlandLimit int32
PsConsume []*Gameatn
@ -47,6 +48,7 @@ func (_v *GameDreamlandBoosData)Deserialize(_buf map[string]interface{}) (err er
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -14,6 +14,7 @@ type GameEnchantBossData struct {
Id int32
Bossid int32
Name string
BattleReadyID int32
Grade string
ScoreLow int32
ScoreUp int32
@ -41,6 +42,7 @@ func (_v *GameEnchantBossData)Deserialize(_buf map[string]interface{}) (err erro
{ 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["bossid"].(float64); !_ok_ { err = errors.New("bossid error"); return }; _v.Bossid = int32(_tempNum_) }
{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["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{ var _ok_ bool; if _v.Grade, _ok_ = _buf["grade"].(string); !_ok_ { err = errors.New("grade error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["score_low"].(float64); !_ok_ { err = errors.New("score_low error"); return }; _v.ScoreLow = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["score_up"].(float64); !_ok_ { err = errors.New("score_up error"); return }; _v.ScoreUp = int32(_tempNum_) }

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 GameGuide struct {
_dataMap map[int32]*GameGuideData
_dataList []*GameGuideData
}
func NewGameGuide(_buf []map[string]interface{}) (*GameGuide, error) {
_dataList := make([]*GameGuideData, 0, len(_buf))
dataMap := make(map[int32]*GameGuideData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameGuideData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameGuide{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameGuide) GetDataMap() map[int32]*GameGuideData {
return table._dataMap
}
func (table *GameGuide) GetDataList() []*GameGuideData {
return table._dataList
}
func (table *GameGuide) Get(key int32) *GameGuideData {
return table._dataMap[key]
}

View File

@ -0,0 +1,126 @@
//------------------------------------------------------------------------------
// <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"
import "bright/serialization"
type GameGuideData struct {
Id int32
Group int32
Type int32
StartPar string
Parameter string
Interface string
Condition string
Followtj string
Followguide int32
Finger []string
Offset serialization.Vector2
FingerTime float32
ObjSize serialization.Vector2
ObjOffset serialization.Vector2
Txt string
Speakerface int32
Sound string
Mask int32
Lock int32
Uishow int32
Skiptime int32
Skip int32
Skipgroup int32
Reward []*Gameatn
}
const TypeId_GameGuideData = -371227190
func (*GameGuideData) GetTypeId() int32 {
return -371227190
}
func (_v *GameGuideData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = 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.StartPar, _ok_ = _buf["startPar"].(string); !_ok_ { err = errors.New("startPar error"); return } }
{ var _ok_ bool; if _v.Parameter, _ok_ = _buf["parameter"].(string); !_ok_ { err = errors.New("parameter error"); return } }
{ var _ok_ bool; if _v.Interface, _ok_ = _buf["interface"].(string); !_ok_ { err = errors.New("interface error"); return } }
{ var _ok_ bool; if _v.Condition, _ok_ = _buf["condition"].(string); !_ok_ { err = errors.New("condition error"); return } }
{ var _ok_ bool; if _v.Followtj, _ok_ = _buf["followtj"].(string); !_ok_ { err = errors.New("followtj error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["followguide"].(float64); !_ok_ { err = errors.New("followguide error"); return }; _v.Followguide = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["finger"].([]interface{}); !_ok_ { err = errors.New("finger error"); return }
_v.Finger = 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.Finger = append(_v.Finger, _list_v_)
}
}
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["offset"].(map[string]interface{}); !_ok_ { err = errors.New("offset error"); return }
var _x_, _y_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
_v.Offset = serialization.NewVector2(_x_, _y_)
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["fingerTime"].(float64); !_ok_ { err = errors.New("fingerTime error"); return }; _v.FingerTime = float32(_tempNum_) }
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["objSize"].(map[string]interface{}); !_ok_ { err = errors.New("objSize error"); return }
var _x_, _y_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
_v.ObjSize = serialization.NewVector2(_x_, _y_)
}
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["objOffset"].(map[string]interface{}); !_ok_ { err = errors.New("objOffset error"); return }
var _x_, _y_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
_v.ObjOffset = serialization.NewVector2(_x_, _y_)
}
{ var _ok_ bool; if _v.Txt, _ok_ = _buf["txt"].(string); !_ok_ { err = errors.New("txt error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["speakerface"].(float64); !_ok_ { err = errors.New("speakerface error"); return }; _v.Speakerface = int32(_tempNum_) }
{ var _ok_ bool; if _v.Sound, _ok_ = _buf["sound"].(string); !_ok_ { err = errors.New("sound error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["mask"].(float64); !_ok_ { err = errors.New("mask error"); return }; _v.Mask = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lock"].(float64); !_ok_ { err = errors.New("lock error"); return }; _v.Lock = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["uishow"].(float64); !_ok_ { err = errors.New("uishow error"); return }; _v.Uishow = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skiptime"].(float64); !_ok_ { err = errors.New("skiptime error"); return }; _v.Skiptime = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skip"].(float64); !_ok_ { err = errors.New("skip error"); return }; _v.Skip = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skipgroup"].(float64); !_ok_ { err = errors.New("skipgroup error"); return }; _v.Skipgroup = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
_v.Reward = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Reward = append(_v.Reward, _list_v_)
}
}
return
}
func DeserializeGameGuideData(_buf map[string]interface{}) (*GameGuideData, error) {
v := &GameGuideData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

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 GameHeroSkill struct {
_dataMap map[int32]*GameHeroSkillData
_dataList []*GameHeroSkillData
}
func NewGameHeroSkill(_buf []map[string]interface{}) (*GameHeroSkill, error) {
_dataList := make([]*GameHeroSkillData, 0, len(_buf))
dataMap := make(map[int32]*GameHeroSkillData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameHeroSkillData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Star] = _v
}
}
return &GameHeroSkill{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameHeroSkill) GetDataMap() map[int32]*GameHeroSkillData {
return table._dataMap
}
func (table *GameHeroSkill) GetDataList() []*GameHeroSkillData {
return table._dataList
}
func (table *GameHeroSkill) Get(key int32) *GameHeroSkillData {
return table._dataMap[key]
}

View File

@ -10,38 +10,38 @@ package cfg
import "errors"
type GameComAtnData struct {
Index string
Var []*Gameatn
type GameHeroSkillData struct {
Star int32
Needgold []*Gameatn
}
const TypeId_GameComAtnData = -2026469472
const TypeId_GameHeroSkillData = 1863510469
func (*GameComAtnData) GetTypeId() int32 {
return -2026469472
func (*GameHeroSkillData) GetTypeId() int32 {
return 1863510469
}
func (_v *GameComAtnData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Index, _ok_ = _buf["index"].(string); !_ok_ { err = errors.New("index error"); return } }
func (_v *GameHeroSkillData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["var"].([]interface{}); !_ok_ { err = errors.New("var error"); return }
if _arr_, _ok_ = _buf["needgold"].([]interface{}); !_ok_ { err = errors.New("needgold error"); return }
_v.Var = make([]*Gameatn, 0, len(_arr_))
_v.Needgold = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Var = append(_v.Var, _list_v_)
_v.Needgold = append(_v.Needgold, _list_v_)
}
}
return
}
func DeserializeGameComAtnData(_buf map[string]interface{}) (*GameComAtnData, error) {
v := &GameComAtnData{}
func DeserializeGameHeroSkillData(_buf map[string]interface{}) (*GameHeroSkillData, error) {
v := &GameHeroSkillData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {

View File

@ -15,6 +15,7 @@ type GameHuntingBossData struct {
Type int32
Name string
Difficulty int32
BattleReadyID int32
Firstprize []*Gameatn
Dropshow []*Gameatn
Drop int32
@ -35,6 +36,7 @@ func (_v *GameHuntingBossData)Deserialize(_buf map[string]interface{}) (err erro
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["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["difficulty"].(float64); !_ok_ { err = errors.New("difficulty error"); return }; _v.Difficulty = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -28,6 +28,7 @@ type GameMainStageData struct {
PsMg []*Gameatn
Firstaward []*Gameatn
Commonaward []*Gameatn
BattleReadyID int32
FormatList []int32
CaptainId int32
Star []int32
@ -117,6 +118,7 @@ func (_v *GameMainStageData)Deserialize(_buf map[string]interface{}) (err error)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -23,6 +23,7 @@ type GameMainlineData struct {
Episodelocation serialization.Vector2
FormatList []int32
CaptainId string
BattleReadyID int32
Battlescene string
Award []*Gameatn
Exp int32
@ -71,6 +72,7 @@ func (_v *GameMainlineData)Deserialize(_buf map[string]interface{}) (err error)
}
{ var _ok_ bool; if _v.CaptainId, _ok_ = _buf["captainId"].(string); !_ok_ { err = errors.New("captainId error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{ var _ok_ bool; if _v.Battlescene, _ok_ = _buf["battlescene"].(string); !_ok_ { err = errors.New("battlescene error"); return } }
{
var _arr_ []interface{}

View File

@ -16,6 +16,7 @@ type GameVikingBossData struct {
Bossid int32
Name string
Difficulty int32
BattleReadyID int32
Captionrecommend []int32
Firstprize []*Gameatn
Dropshow []*Gameatn
@ -40,6 +41,7 @@ func (_v *GameVikingBossData)Deserialize(_buf map[string]interface{}) (err error
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["bossid"].(float64); !_ok_ { err = errors.New("bossid error"); return }; _v.Bossid = int32(_tempNum_) }
{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["difficulty"].(float64); !_ok_ { err = errors.New("difficulty error"); return }; _v.Difficulty = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -13,10 +13,7 @@ import "errors"
type GameWorldBattleData struct {
Id int32
FormatList []int32
DefaultHero int32
SelectableHero []string
LockSlots []int32
AssistTeam int32
BattleReadyID int32
EventList []int32
Playexp *Gameatn
}
@ -43,36 +40,7 @@ func (_v *GameWorldBattleData)Deserialize(_buf map[string]interface{}) (err erro
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DefaultHero"].(float64); !_ok_ { err = errors.New("DefaultHero error"); return }; _v.DefaultHero = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["SelectableHero"].([]interface{}); !_ok_ { err = errors.New("SelectableHero error"); return }
_v.SelectableHero = 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.SelectableHero = append(_v.SelectableHero, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["LockSlots"].([]interface{}); !_ok_ { err = errors.New("LockSlots error"); return }
_v.LockSlots = 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.LockSlots = append(_v.LockSlots, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["AssistTeam"].(float64); !_ok_ { err = errors.New("AssistTeam error"); return }; _v.AssistTeam = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -21,6 +21,7 @@ type Tables struct {
HeroStargrow *GameHeroStargrow
HeroLevelgrow *GameHeroLevelgrow
HeroStarup *GameHeroStarup
HeroSkill *GameHeroSkill
HeroExp *GameHeroExp
HeroLevelup *GameHeroLevelup
Equip *GameEquip
@ -117,6 +118,7 @@ type Tables struct {
GuildActivity *GameGuildActivity
GuildSign *GameGuildSign
GuildTask *GameGuildTask
GuildBossTask *GameGuildBossTask
TrollRule *GameTrollRule
TrollGoods *GameTrollGoods
TrollTrain *GameTrollTrain
@ -146,7 +148,7 @@ type Tables struct {
CombatBox *GameCombatBox
Help *GameHelp
GM *GameGM
Newguide *GameNewguide
Guide *GameGuide
Vip *GameVip
EnchantShop *GameEnchantShop
EnchantBoss *GameEnchantBoss
@ -156,6 +158,7 @@ type Tables struct {
MainStarreward *GameMainStarreward
MainStartype *GameMainStartype
Battletasktesting *GameBattletasktesting
BattleReady *GameBattleReady
}
func NewTables(loader JsonLoader) (*Tables, error) {
@ -223,6 +226,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroskill") ; err != nil {
return nil, err
}
if tables.HeroSkill, err = NewGameHeroSkill(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heroexp") ; err != nil {
return nil, err
}
@ -799,6 +808,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.GuildTask, err = NewGameGuildTask(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_guildbosstask") ; err != nil {
return nil, err
}
if tables.GuildBossTask, err = NewGameGuildBossTask(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_trollrule") ; err != nil {
return nil, err
}
@ -973,10 +988,10 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.GM, err = NewGameGM(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_newguide") ; err != nil {
if buf, err = loader("game_guide") ; err != nil {
return nil, err
}
if tables.Newguide, err = NewGameNewguide(buf) ; err != nil {
if tables.Guide, err = NewGameGuide(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_vip") ; err != nil {
@ -1033,5 +1048,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.Battletasktesting, err = NewGameBattletasktesting(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_battleready") ; err != nil {
return nil, err
}
if tables.BattleReady, err = NewGameBattleReady(buf) ; err != nil {
return nil, err
}
return tables, nil
}

View File

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <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 GameComAtn struct {
_dataMap map[string]*GameComAtnData
_dataList []*GameComAtnData
}
func NewGameComAtn(_buf []map[string]interface{}) (*GameComAtn, error) {
_dataList := make([]*GameComAtnData, 0, len(_buf))
dataMap := make(map[string]*GameComAtnData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameComAtnData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Index] = _v
}
}
return &GameComAtn{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameComAtn) GetDataMap() map[string]*GameComAtnData {
return table._dataMap
}
func (table *GameComAtn) GetDataList() []*GameComAtnData {
return table._dataList
}
func (table *GameComAtn) Get(key string) *GameComAtnData {
return table._dataMap[key]
}

View File

@ -173,6 +173,7 @@ type GameGlobalData struct {
Zhayantime float32
RotateAngle float32
RotateDizzyTime float32
Moonshopmoney []int32
}
const TypeId_GameGlobalData = 477542761
@ -721,6 +722,20 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["zhayantime"].(float64); !_ok_ { err = errors.New("zhayantime error"); return }; _v.Zhayantime = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rotateAngle"].(float64); !_ok_ { err = errors.New("rotateAngle error"); return }; _v.RotateAngle = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rotateDizzyTime"].(float64); !_ok_ { err = errors.New("rotateDizzyTime error"); return }; _v.RotateDizzyTime = float32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["moonshopmoney"].([]interface{}); !_ok_ { err = errors.New("moonshopmoney error"); return }
_v.Moonshopmoney = 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.Moonshopmoney = append(_v.Moonshopmoney, _list_v_)
}
}
return
}

View File

@ -9,34 +9,26 @@
package cfg
type GameHeroAwaken struct {
_dataMap map[int32]*GameHeroAwakenData
_dataList []*GameHeroAwakenData
}
func NewGameHeroAwaken(_buf []map[string]interface{}) (*GameHeroAwaken, error) {
_dataList := make([]*GameHeroAwakenData, 0, len(_buf))
dataMap := make(map[int32]*GameHeroAwakenData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameHeroAwakenData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameHeroAwaken{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameHeroAwaken) GetDataMap() map[int32]*GameHeroAwakenData {
return table._dataMap
return &GameHeroAwaken{_dataList:_dataList}, nil
}
func (table *GameHeroAwaken) GetDataList() []*GameHeroAwakenData {
return table._dataList
}
func (table *GameHeroAwaken) Get(key int32) *GameHeroAwakenData {
return table._dataMap[key]
func (table *GameHeroAwaken) Get(index int) *GameHeroAwakenData {
return table._dataList[index]
}

View File

@ -44,7 +44,9 @@ type GameHeroData struct {
Deviation int32
Show int32
Herofrag []*Gameatn
Heroskillup []*Gameatn
Heroskillup []string
Expitem []*Gameatn
Expitemnum int32
}
const TypeId_GameHeroData = 1513828672
@ -150,15 +152,30 @@ func (_v *GameHeroData)Deserialize(_buf map[string]interface{}) (err error) {
var _ok_ bool
if _arr_, _ok_ = _buf["heroskillup"].([]interface{}); !_ok_ { err = errors.New("heroskillup error"); return }
_v.Heroskillup = make([]*Gameatn, 0, len(_arr_))
_v.Heroskillup = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Heroskillup = append(_v.Heroskillup, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["expitem"].([]interface{}); !_ok_ { err = errors.New("expitem error"); return }
_v.Expitem = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Expitem = append(_v.Expitem, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["expitemnum"].(float64); !_ok_ { err = errors.New("expitemnum error"); return }; _v.Expitemnum = int32(_tempNum_) }
return
}

View File

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

View File

@ -11,12 +11,8 @@ package cfg
import "errors"
type GameHeroExpData struct {
Hid string
Name string
Star int32
Color int32
Heroexp int32
Skilllevelup int32
Itemid string
Exp int32
Needgold int32
}
@ -27,12 +23,8 @@ func (*GameHeroExpData) GetTypeId() int32 {
}
func (_v *GameHeroExpData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Hid, _ok_ = _buf["hid"].(string); !_ok_ { err = errors.New("hid 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["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["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; if _v.Itemid, _ok_ = _buf["itemid"].(string); !_ok_ { err = errors.New("itemid error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exp"].(float64); !_ok_ { err = errors.New("exp error"); return }; _v.Exp = 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
}

View File

@ -14,13 +14,7 @@ type GameHeroStarupData struct {
Key int32
Id string
Star int32
Needhero string
Needherostar int32
Needheronum int32
Needrace []int32
Needracestar int32
Needracenum int32
Gold int32
Needrace []*Gameatn
Starup []*Gameatn
}
@ -34,26 +28,20 @@ func (_v *GameHeroStarupData)Deserialize(_buf map[string]interface{}) (err error
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id 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; if _v.Needhero, _ok_ = _buf["needhero"].(string); !_ok_ { err = errors.New("needhero error"); return } }
{ 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 _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["needrace"].([]interface{}); !_ok_ { err = errors.New("needrace error"); return }
_v.Needrace = make([]int32, 0, len(_arr_))
_v.Needrace = make([]*Gameatn, 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_) }
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Needrace = append(_v.Needrace, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracestar"].(float64); !_ok_ { err = errors.New("needracestar error"); return }; _v.Needracestar = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracenum"].(float64); !_ok_ { err = errors.New("needracenum error"); return }; _v.Needracenum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gold"].(float64); !_ok_ { err = errors.New("gold error"); return }; _v.Gold = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -15,6 +15,7 @@ type GamePagodaData struct {
PagodaType int32
LevelType int32
LayerNum int32
BattleReadyID int32
MonsterId []int32
Reward []*Gameatn
Exp int32
@ -34,6 +35,7 @@ func (_v *GamePagodaData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["pagoda_type"].(float64); !_ok_ { err = errors.New("pagoda_type error"); return }; _v.PagodaType = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Level_type"].(float64); !_ok_ { err = errors.New("Level_type error"); return }; _v.LevelType = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["layer_num"].(float64); !_ok_ { err = errors.New("layer_num error"); return }; _v.LayerNum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool