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, "id": 1,
"open_cond": 1, "open_cond": 1,
"open_value": 10, "open_value": 10,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301011, 301011,
301027 301027
@ -33,6 +34,7 @@
"id": 2, "id": 2,
"open_cond": 1, "open_cond": 1,
"open_value": 11, "open_value": 11,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301012 301012
], ],
@ -62,6 +64,7 @@
"id": 3, "id": 3,
"open_cond": 1, "open_cond": 1,
"open_value": 12, "open_value": 12,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301013 301013
], ],
@ -91,6 +94,7 @@
"id": 4, "id": 4,
"open_cond": 1, "open_cond": 1,
"open_value": 13, "open_value": 13,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301014 301014
], ],
@ -120,6 +124,7 @@
"id": 5, "id": 5,
"open_cond": 1, "open_cond": 1,
"open_value": 14, "open_value": 14,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301015 301015
], ],
@ -149,6 +154,7 @@
"id": 6, "id": 6,
"open_cond": 1, "open_cond": 1,
"open_value": 15, "open_value": 15,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301016 301016
], ],
@ -178,6 +184,7 @@
"id": 7, "id": 7,
"open_cond": 1, "open_cond": 1,
"open_value": 16, "open_value": 16,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301017 301017
], ],
@ -207,6 +214,7 @@
"id": 8, "id": 8,
"open_cond": 1, "open_cond": 1,
"open_value": 17, "open_value": 17,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301018 301018
], ],
@ -236,6 +244,7 @@
"id": 9, "id": 9,
"open_cond": 1, "open_cond": 1,
"open_value": 18, "open_value": 18,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301019 301019
], ],
@ -265,6 +274,7 @@
"id": 10, "id": 10,
"open_cond": 1, "open_cond": 1,
"open_value": 19, "open_value": 19,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301020 301020
], ],
@ -294,6 +304,7 @@
"id": 11, "id": 11,
"open_cond": 1, "open_cond": 1,
"open_value": 20, "open_value": 20,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301021 301021
], ],
@ -323,6 +334,7 @@
"id": 12, "id": 12,
"open_cond": 1, "open_cond": 1,
"open_value": 21, "open_value": 21,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301022 301022
], ],
@ -352,6 +364,7 @@
"id": 13, "id": 13,
"open_cond": 1, "open_cond": 1,
"open_value": 22, "open_value": 22,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301023 301023
], ],
@ -381,6 +394,7 @@
"id": 14, "id": 14,
"open_cond": 1, "open_cond": 1,
"open_value": 23, "open_value": 23,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301024 301024
], ],
@ -410,6 +424,7 @@
"id": 15, "id": 15,
"open_cond": 1, "open_cond": 1,
"open_value": 24, "open_value": 24,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301025 301025
], ],
@ -439,6 +454,7 @@
"id": 16, "id": 16,
"open_cond": 1, "open_cond": 1,
"open_value": 25, "open_value": 25,
"BattleReadyID": 110,
"monsterformat_id": [ "monsterformat_id": [
301026 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", "ico": "wp_icon_10009",
"intr": "Currency used to purchase goods", "intr": "Currency used to purchase goods",
"tipstxt": "Lack of experience" "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, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720001 720001
], ],
@ -28,6 +29,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720003 720003
], ],
@ -48,6 +50,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720004 720004
], ],
@ -68,6 +71,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720002 720002
], ],
@ -88,6 +92,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720005 720005
], ],
@ -105,6 +110,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720006 720006
], ],
@ -122,6 +128,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720007 720007
], ],
@ -139,6 +146,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720008 720008
], ],
@ -156,6 +164,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720009 720009
], ],
@ -173,6 +182,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720010 720010
], ],
@ -190,6 +200,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720011 720011
], ],
@ -207,6 +218,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720012 720012
], ],
@ -224,6 +236,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
101072 101072
], ],
@ -241,6 +254,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
101072 101072
], ],
@ -258,6 +272,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
101072 101072
], ],
@ -275,6 +290,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
101072 101072
], ],
@ -292,6 +308,7 @@
"sencenstory": [], "sencenstory": [],
"time": 0, "time": 0,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
101072 101072
], ],
@ -312,6 +329,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 100002, "clickstory": 100002,
"BattleReadyID": 109,
"formatList": [], "formatList": [],
"award": [] "award": []
}, },
@ -324,6 +342,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 100002, "clickstory": 100002,
"BattleReadyID": 109,
"formatList": [], "formatList": [],
"award": [] "award": []
}, },
@ -336,6 +355,7 @@
], ],
"time": 3, "time": 3,
"clickstory": 100002, "clickstory": 100002,
"BattleReadyID": 109,
"formatList": [], "formatList": [],
"award": [] "award": []
}, },
@ -345,6 +365,7 @@
"sencenstory": [], "sencenstory": [],
"time": 3, "time": 3,
"clickstory": 0, "clickstory": 0,
"BattleReadyID": 109,
"formatList": [ "formatList": [
720013 720013
], ],

View File

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

View File

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

View File

@ -11,6 +11,16 @@
}, },
{ {
"index": 2, "index": 2,
"name": {
"key": "server_10002",
"text": "本地测试服2"
},
"ips": "10.0.0.9:7691",
"debug": true,
"sid": "df02"
},
{
"index": 3,
"name": { "name": {
"key": "debug_server_01", "key": "debug_server_01",
"text": "lw" "text": "lw"
@ -20,7 +30,7 @@
"sid": "dfli" "sid": "dfli"
}, },
{ {
"index": 3, "index": 4,
"name": { "name": {
"key": "debug_server_02", "key": "debug_server_02",
"text": "zcy" "text": "zcy"
@ -30,7 +40,7 @@
"sid": "dfz" "sid": "dfz"
}, },
{ {
"index": 4, "index": 5,
"name": { "name": {
"key": "debug_server_03", "key": "debug_server_03",
"text": "mxf" "text": "mxf"
@ -38,45 +48,5 @@
"ips": "10.0.0.85:7891", "ips": "10.0.0.85:7891",
"debug": true, "debug": true,
"sid": "dfmxf" "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, "GuildBoss_troop3": 60,
"zhayantime": 5, "zhayantime": 5,
"rotateAngle": 360, "rotateAngle": 360,
"rotateDizzyTime": 1 "rotateDizzyTime": 1,
"moonshopmoney": [
10,
20,
30
]
} }
] ]

View File

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

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -183,5 +183,37 @@
50006, 50006,
50007 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, "lvmax": 60,
"mapidmin": 101, "mapidmin": 101,
"mapidmax": 9999 "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, "ExecuteCnt": 1,
"Type": 3, "Type": 3,
"Argu": [ "Argu": [
390001401, 390001008,
1000, 1000,
1, 1,
2 2

View File

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

View File

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

View File

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

View File

@ -125,12 +125,9 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
//xx英雄满级、共鸣、觉醒至最高状态 //xx英雄满级、共鸣、觉醒至最高状态
nextAwaken := this.module.configure.GetHeroAwakenConfig(_hero.HeroID, _hero.JuexingLv+1) nextAwaken := this.module.configure.GetHeroAwakenConfig(_hero.HeroID, _hero.JuexingLv+1)
if nextAwaken == nil { // 达到满级觉醒 if nextAwaken == nil { // 达到满级觉醒
resonConfig := this.module.configure.GetHeroResonanceConfig(_hero.HeroID, cfg.Star) if _hero.Lv == _hero.Star*comm.HeroStarLvRatio {
if resonConfig != nil && resonConfig.Maxnum == _hero.ResonateNum { this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
if _hero.Lv == _hero.Star*comm.HeroStarLvRatio { this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
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 ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils" "go_dreamfactory/utils"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
@ -10,7 +11,7 @@ import (
//参数校验 //参数校验
func (this *apiComp) StrengthenUpSkillCheck(session comm.IUserSession, req *pb.HeroStrengthenUpSkillReq) (code pb.ErrorCode) { 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 code = pb.ErrorCode_ReqParameterError
return 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) { func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroStrengthenUpSkillReq) (code pb.ErrorCode, data proto.Message) {
var ( var (
upSkillPos int32 // 升级的技能位置 upSkillPos int32 // 升级的技能位置
_hero *pb.DBHero // 操作的英雄 _hero *pb.DBHero // 操作的英雄
ChangeList []*pb.DBHero // 推送 改变的英雄 cost []*cfg.Gameatn // 技能升级消耗
mapCostHero map[string]int32 // 消耗的技能卡 lvUpCount int32 // 技能升级的次数
mapCostObj map[string]*pb.DBHero // 消耗的技能卡对象
costGold int64 // 金币消耗
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 code = this.StrengthenUpSkillCheck(session, req) // check
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
@ -47,50 +42,36 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
return return
} }
for _, v1 := range req.Item {
for _, v := range req.CostCardObj { // 数组转 map bFind := false
mapCostHero[v]++ 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) // 查询消耗卡是否存在 for i := 0; i < int(lvUpCount); i++ {
if c != pb.ErrorCode_Success { if atn := this.module.configure.GetHeroSkillCost(heroCfg.Star); len(atn) > 0 {
code = c cost = append(cost, atn...)
return
} }
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 { // 金币不足 if code = this.module.CheckRes(session, cost); code != pb.ErrorCode_Success {
code = pb.ErrorCode_GoldNoEnough
return return
} }
for i := 0; i < int(lvUpCount); i++ { // 升级技能 for i := 0; i < int(lvUpCount); i++ { // 升级技能
szIndex := make([]int32, 0) szIndex := make([]int32, 0)
sz := 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 _hero.NormalSkill[szIndex[upSkillPos]].SkillLv += 1
} }
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, -int32(costGold), true) if code = this.module.ConsumeRes(session, cost, true); code != pb.ErrorCode_Success {
if code != pb.ErrorCode_Success { // 金币不足
code = pb.ErrorCode_GoldNoEnough
return 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{}{ _heroMap := map[string]interface{}{
"normalSkill": _hero.NormalSkill, "normalSkill": _hero.NormalSkill,
"isOverlying": false,
"sameCount": 1,
"horoscopeProperty": _hero.HoroscopeProperty, "horoscopeProperty": _hero.HoroscopeProperty,
} }
_hero.SameCount = 1
err1 := this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 err1 := this.module.modelHero.ChangeList(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil { if err1 != nil {
this.module.Errorf("update hero skill failed:%v", err1) this.module.Errorf("update hero skill failed:%v", err1)
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return 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}) session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
//英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级! //英雄技能培养 【玩家名称】已将【英雄名称】技能培养至满级!
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { 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) { 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 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) { func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStrengthenUpStarReq) (code pb.ErrorCode, data proto.Message) {
var ( var (
starConf *cfg.GameHeroStarupData // 配置表目标升星英雄信息 starConf *cfg.GameHeroStarupData // 配置表目标升星英雄信息
costNeedHeroCount int32 // 消耗指定英雄的数量 _hero *pb.DBHero // 目标英雄
costRaceHeroCount int32 // 消耗种族英雄的数量
_hero *pb.DBHero // 目标英雄
tagHero *pb.DBHero // 消耗指定英雄
mapCostHero map[string]int32 // 所有消耗英雄分类
chanegCard []*pb.DBHero // 变化的英雄数据
CostHeroObj map[string]*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 code = this.StrengthenUpStarCheck(session, req) // check
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
@ -63,111 +47,34 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
return return
} }
// 优先校验数量对不对 if code = this.module.ConsumeRes(session, starConf.Needrace, true); code != pb.ErrorCode_Success {
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
return 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 len(starConf.Starup) > 0 {
if code = this.module.DispenseRes(session, starConf.Starup, true); code != pb.ErrorCode_Success { // 加天赋点{ 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) 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.Star += 1
_hero.SameCount = 1 this.module.modelHero.PropertyCompute(_hero) // 重新计算属性
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"star": _hero.Star, "star": _hero.Star,
"sameCount": 1, "talentProperty": _hero.TalentProperty,
"isOverlying": false, "juexProperty": _hero.JuexProperty,
"horoscopeProperty": _hero.HoroscopeProperty, "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) err := this.module.modelHero.ChangeList(session.GetUserId(), _hero.Id, _heroMap)
if err != nil { if err != nil {
code = pb.ErrorCode_DBError 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) // 重新计算属性 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}) session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})
//英雄升星 【玩家名称】已将【英雄名称】培养至6星 //英雄升星 【玩家名称】已将【英雄名称】培养至6星

View File

@ -3,22 +3,17 @@ package hero
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
//参数校验 //参数校验
func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode) { func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode) {
if req.HeroObjID == "" || len(req.ExpCards) == 0 { if req.HeroObjID == "" || len(req.Item) == 0 {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
for _, v := range req.ExpCards {
if v.Value <= 0 || v.Key == "" {
code = pb.ErrorCode_ReqParameterError
return
}
}
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) { func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode, data proto.Message) {
var ( var (
addExp int32 // 需要增加的经验 addExp int32 // 需要增加的经验
costGold int64 // 需要消耗的资源 costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄 _hero *pb.DBHero // 目标英雄
_costExpHero map[string]*pb.DBHero // 消耗英雄 cost []*cfg.Gameatn // 消耗的道具
minAddExp int32
_changeHero []*pb.DBHero // 变化的英雄
_mapCost map[string]int32 //
) )
_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 code = this.StrengthenUplvCheck(session, req) // check
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID) _hero, code = this.module.GetHeroByObjID(session.GetUserId(), req.HeroObjID)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
// 只有英雄卡才能升级 for k, v := range req.Item {
if _hero.CardType != comm.CardTypeHero && _hero.CardType != comm.CardTypeStar { if v == 0 {
code = pb.ErrorCode_HeroTypeErr continue
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
} }
cost = append(cost, &cfg.Gameatn{
A: "item",
T: k,
N: v,
})
// 查询 本次消耗会获得多少经验 // 查询 本次消耗会获得多少经验
expConf := this.module.configure.GetHeroExp(_expHero.HeroID) if expConf := this.module.configure.GetHeroExp(k); expConf != nil {
if expConf != nil { addExp += expConf.Exp * v
addExp += expConf.Heroexp * 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 code = this.module.CheckRes(session, cost); code != pb.ErrorCode_Success {
if curGold < costGold { // 金币不足
code = pb.ErrorCode_GoldNoEnough
return return
} }
if addExp == 0 { if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr code = pb.ErrorCode_HeroExpTypeErr
return return
@ -105,44 +72,27 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
} }
curLv := _hero.Lv 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 { if code != pb.ErrorCode_Success {
return return
} }
iLvUp := _hero.Lv - curLv iLvUp := _hero.Lv - curLv
// 消耗金币 // 消耗金币
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, -int32(costGold), true) if code = this.module.ConsumeRes(session, cost, true); code != pb.ErrorCode_Success { //道具扣除
if code != pb.ErrorCode_Success { // 金币不足 code = pb.ErrorCode_ItemsNoEnough
code = pb.ErrorCode_GoldNoEnough
return 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 { if iLvUp > 0 {
this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性值 this.module.modelHero.ChangeHeroProperty(session, _hero) // 重新计算属性值
} }
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
if newhero != nil {
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
}
//英雄升级 【玩家名称】已将【英雄名称】培养至60级 //英雄升级 【玩家名称】已将【英雄名称】培养至60级
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil {
this.chat.SendSysChatToWorld(comm.ChatSystem7, nil, _hero.Lv, 0, user.Name, _hero.HeroID) this.chat.SendSysChatToWorld(comm.ChatSystem7, nil, _hero.Lv, 0, user.Name, _hero.HeroID)
} else { } else {
this.module.Errorf("no found userdata uid:%s", session.GetUserId()) 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}) session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
return return
} }

View File

@ -6,44 +6,46 @@ import (
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"sync"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/utils" "go_dreamfactory/utils"
) )
const ( const (
equip_suit = "game_equipsuit.json" //装备套装表 equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄 new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数 hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数 hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星 hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性 hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级 hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级 hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能 game_skillatk = "game_skillatk.json" // 英雄技能
hero_resonance = "game_heroresonance.json" // 英雄共鸣 //hero_resonance = "game_heroresonance.json" // 英雄共鸣
hero_comatn = "game_comatn.json" // 英雄共鸣重置 //hero_comatn = "game_comatn.json" // 英雄共鸣重置
hero_awaken = "game_heroawaken.json" // 英雄觉醒 hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡 hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整 hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗 hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合 hero_fusion = "game_herofusion.json" // 卡牌融合
hero_starupsp = "game_herostarupsp.json" // 精灵升星 hero_starupsp = "game_herostarupsp.json" // 精灵升星
hero_talentskill = "game_talentskill.json" // 天赋 hero_talentskill = "game_talentskill.json" // 天赋
hero_talent = "game_herotalent.json" // 天赋详细数据 hero_talent = "game_herotalent.json" // 天赋详细数据
hero_itembox = "game_itembox.json" // 天赋详细数据 hero_itembox = "game_itembox.json" // 天赋详细数据
game_shopitem = "game_shopitem.json" game_shopitem = "game_shopitem.json"
hero_skill = "game_heroskill.json"
) )
///配置管理组件 ///配置管理组件
type configureComp struct { type configureComp struct {
modules.MCompConfigure modules.MCompConfigure
hlock sync.RWMutex
drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级 drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级
//map["base_pool1"]map[3]*cfg.Game_drawCardData awakenMap map[int64]*cfg.GameHeroAwakenData
awakenMap map[int64]*cfg.GameHeroAwakenData
resonanceMap map[int64]*cfg.GameHeroResonanceData starMap map[int64]*cfg.GameHeroStarupData
starMap map[int64]*cfg.GameHeroStarupData module *Hero
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) err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Hero) this.module = module.(*Hero)
err = this.LoadMultiConfigure(map[string]interface{}{ err = this.LoadMultiConfigure(map[string]interface{}{
equip_suit: cfg.NewGameEquipSuit, equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero, new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow, hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow, hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup, hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp, hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel, hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk, game_skillatk: cfg.NewGameSkillAtk,
hero_comatn: cfg.NewGameComAtn, //hero_comatn: cfg.NewGameComAtn,
hero_drawcard: cfg.NewGameDrawCard, hero_drawcard: cfg.NewGameDrawCard,
hero_fusion: cfg.NewGameHerofusion, hero_fusion: cfg.NewGameHerofusion,
hero_starupsp: cfg.NewGameHeroStarupSp, hero_starupsp: cfg.NewGameHeroStarupSp,
@ -68,12 +70,15 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
hero_talent: cfg.NewGameHeroTalent, hero_talent: cfg.NewGameHeroTalent,
hero_itembox: cfg.NewGameItemBox, hero_itembox: cfg.NewGameItemBox,
game_shopitem: cfg.NewGameShopitem, game_shopitem: cfg.NewGameShopitem,
hero_skill: cfg.NewGameHeroSkill,
}) })
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0) this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig) configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0) this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0)
configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() { configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() {
if v, err := this.GetConfigure(hero_awaken); err == nil { if v, err := this.GetConfigure(hero_awaken); err == nil {
this.hlock.Lock()
defer this.hlock.Unlock()
if _configure, ok := v.(*cfg.GameHeroAwaken); ok { if _configure, ok := v.(*cfg.GameHeroAwaken); ok {
for _, v := range _configure.GetDataList() { for _, v := range _configure.GetDataList() {
this.awakenMap[int64(utils.ToInt32(v.Hid)<<8)+int64(v.Phase)] = v 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) 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) this.starMap = make(map[int64]*cfg.GameHeroStarupData, 0)
configure.RegisterConfigure(hero_starup, cfg.NewGameHeroStarup, func() { configure.RegisterConfigure(hero_starup, cfg.NewGameHeroStarup, func() {
if v, err := this.GetConfigure(hero_starup); err == nil { if v, err := this.GetConfigure(hero_starup); err == nil {
if _configure, ok := v.(*cfg.GameHeroStarup); ok { if _configure, ok := v.(*cfg.GameHeroStarup); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, v := range _configure.GetDataList() { for _, v := range _configure.GetDataList() {
this.starMap[int64(utils.ToInt32(v.Id)<<8)+int64(v.Star)] = v 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)] return this.starMap[int64(utils.ToInt32(hid)<<8)+int64(star)]
} }
// 通过英雄配置ID获取共鸣配置信息 // 获取当前英雄最高星级
func (this *configureComp) GetHeroResonanceConfig(hid string, star int32) *cfg.GameHeroResonanceData { func (this *configureComp) GetHeroMaxStar(hid string, curStar int32) int32 {
return this.resonanceMap[int64(utils.ToInt32(hid)<<8)+int64(star)] 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 { func (this *configureComp) GetHeroAwakenConfig(hid string, phase int32) *cfg.GameHeroAwakenData {
@ -376,20 +375,6 @@ func (this *configureComp) GetHeroSkillMaxLvConfig(skillId uint32) int32 {
return 0 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) { func (this *configureComp) GetHeroFucionConfig(cid string) (data *cfg.GameHerofusionData) {
@ -516,3 +501,15 @@ func (this *configureComp) GetEquipsuit(id int32) (configure *cfg.GameEquipSuitD
} }
return 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) { 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 ( var (
preLv int32 //加经验之前的等级 preLv int32 //加经验之前的等级
curExp int32 // 加经验之后的经验 curExp int32 // 加经验之后的经验
@ -623,10 +599,7 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
if curAddExp != 0 { if curAddExp != 0 {
curAddExp = exp // 真正加的经验 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) 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["lv"] = curLv
update["exp"] = curExp update["exp"] = curExp
@ -658,12 +631,9 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
//xx英雄满级、共鸣、觉醒至最高状态 //xx英雄满级、共鸣、觉醒至最高状态
nextAwaken := this.moduleHero.configure.GetHeroAwakenConfig(hero.HeroID, hero.JuexingLv+1) nextAwaken := this.moduleHero.configure.GetHeroAwakenConfig(hero.HeroID, hero.JuexingLv+1)
if nextAwaken == nil { // 达到满级觉醒 if nextAwaken == nil { // 达到满级觉醒
resonConfig := this.moduleHero.configure.GetHeroResonanceConfig(hero.HeroID, cfg.Star) if hero.Lv == hero.Star*comm.HeroStarLvRatio {
if resonConfig != nil && resonConfig.Maxnum == hero.ResonateNum { // 共鸣满 this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
if hero.Lv == hero.Star*comm.HeroStarLvRatio { this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
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 return
} }
// 获取最大星级 // 获取最大星级
for i := 1; ; i++ { maxStar = this.configure.GetHeroMaxStar(cid, conf.Star)
starConf := this.configure.GetHeroStarupConfig(cid, conf.Star+int32(i))
if starConf == nil {
break
}
if starConf != nil && starConf.Gold == 0 {
maxStar = star + int32(i)
break
}
}
maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级 maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级
if star > maxStar || lv > maxLv { 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) { func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp int32) (curAddExp int32, code pb.ErrorCode) {
var ( var (
_hero *pb.DBHero _hero *pb.DBHero
newhero *pb.DBHero
_changeHero []*pb.DBHero // 变化的英雄 _changeHero []*pb.DBHero // 变化的英雄
) )
if heroObjID == "" { if heroObjID == "" {
@ -315,14 +305,12 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
return return
} }
newhero, curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp) curAddExp, code = this.modelHero.AddCardExp(session, _hero, exp)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变 _changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
if newhero != nil {
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
}
session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
return return
} }
@ -656,16 +644,7 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
continue // 走到这里说明配置表没有配置数据 continue // 走到这里说明配置表没有配置数据
} }
// 获取最大星级 // 获取最大星级
for i := 1; ; i++ { maxStar = this.configure.GetHeroMaxStar(cid, v.Star)
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
}
}
maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级 maxLv := this.configure.GetHeroStargrowConfigByStar(maxStar) // 最大等级

View File

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

View File

@ -238,26 +238,38 @@ func (this *ModuleBase) SendMsgToCUsers(mainType, subType string, msg proto.Mess
// 只校验资源 参数 atn格式 // 只校验资源 参数 atn格式
func (this *ModuleBase) CheckRes(session comm.IUserSession, res []*cfg.Gameatn) (code pb.ErrorCode) { 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 { for _, v := range res {
if v.A == comm.AttrType { //用户属性资源 switch v.A {
if amount := this.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T); amount < int64(v.N) { case comm.AttrType:
code = pb.ErrorCode_ResNoEnough attrs[v.T] = v.N
this.Warnf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N) case comm.ItemType:
return items[v.T] = v.N
} default:
} else if v.A == comm.ItemType { //道具资源 this.Errorf("not found res type") // 找不到资源类型
// 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
}
} }
} }
// 校验数量
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 return
} }
@ -274,6 +286,7 @@ func (this *ModuleBase) ConsumeRes(session comm.IUserSession, res []*cfg.Gameatn
switch v.A { switch v.A {
case comm.AttrType: case comm.AttrType:
attrs[v.T] -= v.N attrs[v.T] -= v.N
case comm.ItemType: case comm.ItemType:
items[v.T] -= v.N items[v.T] -= v.N
default: default:

View File

@ -47,11 +47,11 @@ func (this *apiComp) Battlestart(session comm.IUserSession, req *pb.WorldtaskBat
resp *pb.WorldtaskBattleStartResp resp *pb.WorldtaskBattleStartResp
) )
code, record = b.CreateEveBattle(session, &pb.BattleEVEReq{ code, record = b.CreateEveBattle(session, &pb.BattleEVEReq{
Ptype: pb.PlayType_rtask, Ptype: pb.PlayType_rtask,
Format: req.Battle, Format: req.Battle,
Sysformat: []int32{battleConf.DefaultHero}, // Sysformat: []int32{battleConf.DefaultHero},
Backupformat: []int32{battleConf.AssistTeam}, // Backupformat: []int32{battleConf.AssistTeam},
Buleformat: battleConf.FormatList, Buleformat: battleConf.FormatList,
}) })
if code != pb.ErrorCode_Success { 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 Id int32
OpenCond int32 OpenCond int32
OpenValue int32 OpenValue int32
BattleReadyID int32
MonsterformatId []int32 MonsterformatId []int32
StroyIdFront int32 StroyIdFront int32
StroyIdAfter 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["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_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["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 _arr_ []interface{}
var _ok_ bool 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 Sencenstory []int32
Time int32 Time int32
Clickstory int32 Clickstory int32
BattleReadyID int32
FormatList []int32 FormatList []int32
Award []*Gameatn 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["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["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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -16,6 +16,7 @@ type GameDreamlandBoosData struct {
Fightnum int32 Fightnum int32
Challengenum int32 Challengenum int32
Prize []*Gameatn Prize []*Gameatn
BattleReadyID int32
Monsterformatid []int32 Monsterformatid []int32
DreamlandLimit int32 DreamlandLimit int32
PsConsume []*Gameatn 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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -14,6 +14,7 @@ type GameEnchantBossData struct {
Id int32 Id int32
Bossid int32 Bossid int32
Name string Name string
BattleReadyID int32
Grade string Grade string
ScoreLow int32 ScoreLow int32
ScoreUp 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["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 _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 __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; 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_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_) } { 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" import "errors"
type GameComAtnData struct { type GameHeroSkillData struct {
Index string Star int32
Var []*Gameatn Needgold []*Gameatn
} }
const TypeId_GameComAtnData = -2026469472 const TypeId_GameHeroSkillData = 1863510469
func (*GameComAtnData) GetTypeId() int32 { func (*GameHeroSkillData) GetTypeId() int32 {
return -2026469472 return 1863510469
} }
func (_v *GameComAtnData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameHeroSkillData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Index, _ok_ = _buf["index"].(string); !_ok_ { err = errors.New("index 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 _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool 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_ { for _, _e_ := range _arr_ {
var _list_v_ *Gameatn 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 _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 return
} }
func DeserializeGameComAtnData(_buf map[string]interface{}) (*GameComAtnData, error) { func DeserializeGameHeroSkillData(_buf map[string]interface{}) (*GameHeroSkillData, error) {
v := &GameComAtnData{} v := &GameHeroSkillData{}
if err := v.Deserialize(_buf); err == nil { if err := v.Deserialize(_buf); err == nil {
return v, nil return v, nil
} else { } else {

View File

@ -15,6 +15,7 @@ type GameHuntingBossData struct {
Type int32 Type int32
Name string Name string
Difficulty int32 Difficulty int32
BattleReadyID int32
Firstprize []*Gameatn Firstprize []*Gameatn
Dropshow []*Gameatn Dropshow []*Gameatn
Drop int32 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 _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 __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["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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -28,6 +28,7 @@ type GameMainStageData struct {
PsMg []*Gameatn PsMg []*Gameatn
Firstaward []*Gameatn Firstaward []*Gameatn
Commonaward []*Gameatn Commonaward []*Gameatn
BattleReadyID int32
FormatList []int32 FormatList []int32
CaptainId int32 CaptainId int32
Star []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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -23,6 +23,7 @@ type GameMainlineData struct {
Episodelocation serialization.Vector2 Episodelocation serialization.Vector2
FormatList []int32 FormatList []int32
CaptainId string CaptainId string
BattleReadyID int32
Battlescene string Battlescene string
Award []*Gameatn Award []*Gameatn
Exp int32 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; 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 _ok_ bool; if _v.Battlescene, _ok_ = _buf["battlescene"].(string); !_ok_ { err = errors.New("battlescene error"); return } }
{ {
var _arr_ []interface{} var _arr_ []interface{}

View File

@ -16,6 +16,7 @@ type GameVikingBossData struct {
Bossid int32 Bossid int32
Name string Name string
Difficulty int32 Difficulty int32
BattleReadyID int32
Captionrecommend []int32 Captionrecommend []int32
Firstprize []*Gameatn Firstprize []*Gameatn
Dropshow []*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 _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 __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["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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -13,10 +13,7 @@ import "errors"
type GameWorldBattleData struct { type GameWorldBattleData struct {
Id int32 Id int32
FormatList []int32 FormatList []int32
DefaultHero int32 BattleReadyID int32
SelectableHero []string
LockSlots []int32
AssistTeam int32
EventList []int32 EventList []int32
Playexp *Gameatn 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 _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
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 _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -21,6 +21,7 @@ type Tables struct {
HeroStargrow *GameHeroStargrow HeroStargrow *GameHeroStargrow
HeroLevelgrow *GameHeroLevelgrow HeroLevelgrow *GameHeroLevelgrow
HeroStarup *GameHeroStarup HeroStarup *GameHeroStarup
HeroSkill *GameHeroSkill
HeroExp *GameHeroExp HeroExp *GameHeroExp
HeroLevelup *GameHeroLevelup HeroLevelup *GameHeroLevelup
Equip *GameEquip Equip *GameEquip
@ -117,6 +118,7 @@ type Tables struct {
GuildActivity *GameGuildActivity GuildActivity *GameGuildActivity
GuildSign *GameGuildSign GuildSign *GameGuildSign
GuildTask *GameGuildTask GuildTask *GameGuildTask
GuildBossTask *GameGuildBossTask
TrollRule *GameTrollRule TrollRule *GameTrollRule
TrollGoods *GameTrollGoods TrollGoods *GameTrollGoods
TrollTrain *GameTrollTrain TrollTrain *GameTrollTrain
@ -146,7 +148,7 @@ type Tables struct {
CombatBox *GameCombatBox CombatBox *GameCombatBox
Help *GameHelp Help *GameHelp
GM *GameGM GM *GameGM
Newguide *GameNewguide Guide *GameGuide
Vip *GameVip Vip *GameVip
EnchantShop *GameEnchantShop EnchantShop *GameEnchantShop
EnchantBoss *GameEnchantBoss EnchantBoss *GameEnchantBoss
@ -156,6 +158,7 @@ type Tables struct {
MainStarreward *GameMainStarreward MainStarreward *GameMainStarreward
MainStartype *GameMainStartype MainStartype *GameMainStartype
Battletasktesting *GameBattletasktesting Battletasktesting *GameBattletasktesting
BattleReady *GameBattleReady
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -223,6 +226,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil { if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
return nil, err 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 { if buf, err = loader("game_heroexp") ; err != nil {
return nil, err return nil, err
} }
@ -799,6 +808,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.GuildTask, err = NewGameGuildTask(buf) ; err != nil { if tables.GuildTask, err = NewGameGuildTask(buf) ; err != nil {
return nil, err 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 { if buf, err = loader("game_trollrule") ; err != nil {
return nil, err return nil, err
} }
@ -973,10 +988,10 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.GM, err = NewGameGM(buf) ; err != nil { if tables.GM, err = NewGameGM(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_newguide") ; err != nil { if buf, err = loader("game_guide") ; err != nil {
return nil, err return nil, err
} }
if tables.Newguide, err = NewGameNewguide(buf) ; err != nil { if tables.Guide, err = NewGameGuide(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_vip") ; err != nil { 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 { if tables.Battletasktesting, err = NewGameBattletasktesting(buf) ; err != nil {
return nil, err 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 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 Zhayantime float32
RotateAngle float32 RotateAngle float32
RotateDizzyTime float32 RotateDizzyTime float32
Moonshopmoney []int32
} }
const TypeId_GameGlobalData = 477542761 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["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["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 _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 return
} }

View File

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

View File

@ -44,7 +44,9 @@ type GameHeroData struct {
Deviation int32 Deviation int32
Show int32 Show int32
Herofrag []*Gameatn Herofrag []*Gameatn
Heroskillup []*Gameatn Heroskillup []string
Expitem []*Gameatn
Expitemnum int32
} }
const TypeId_GameHeroData = 1513828672 const TypeId_GameHeroData = 1513828672
@ -150,15 +152,30 @@ func (_v *GameHeroData)Deserialize(_buf map[string]interface{}) (err error) {
var _ok_ bool var _ok_ bool
if _arr_, _ok_ = _buf["heroskillup"].([]interface{}); !_ok_ { err = errors.New("heroskillup error"); return } 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_ { for _, _e_ := range _arr_ {
var _list_v_ *Gameatn var _list_v_ string
{ 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 } } { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Heroskillup = append(_v.Heroskillup, _list_v_) _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 return
} }

View File

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

View File

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

View File

@ -14,13 +14,7 @@ type GameHeroStarupData struct {
Key int32 Key int32
Id string Id string
Star int32 Star int32
Needhero string Needrace []*Gameatn
Needherostar int32
Needheronum int32
Needrace []int32
Needracestar int32
Needracenum int32
Gold int32
Starup []*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; 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; 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; 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 _arr_ []interface{}
var _ok_ bool var _ok_ bool
if _arr_, _ok_ = _buf["needrace"].([]interface{}); !_ok_ { err = errors.New("needrace error"); return } 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_ { for _, _e_ := range _arr_ {
var _list_v_ int32 var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } { 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_) _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 _arr_ []interface{}
var _ok_ bool var _ok_ bool

View File

@ -15,6 +15,7 @@ type GamePagodaData struct {
PagodaType int32 PagodaType int32
LevelType int32 LevelType int32
LayerNum int32 LayerNum int32
BattleReadyID int32
MonsterId []int32 MonsterId []int32
Reward []*Gameatn Reward []*Gameatn
Exp int32 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["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["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["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 _arr_ []interface{}
var _ok_ bool var _ok_ bool