This commit is contained in:
liwei1dao 2023-02-07 18:47:50 +08:00
commit 30239136b6
104 changed files with 9804 additions and 6381 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

@ -364,6 +364,12 @@
29, 29,
5 5
], ],
"DrawCard_5StarsInRange1": [
30,
49,
5
],
"DrawCard_5StarsInRange1_pool": "base_pool7",
"DrawCard_ContinuousRestriction_Star5": 20, "DrawCard_ContinuousRestriction_Star5": 20,
"DrawCard_ContinuousRestriction_Camp": 2, "DrawCard_ContinuousRestriction_Camp": 2,
"EquipmentConsumption": [ "EquipmentConsumption": [
@ -525,6 +531,13 @@
"GuildBoss_MaxBuyNum": 5, "GuildBoss_MaxBuyNum": 5,
"GuildBoss_troop2": 45, "GuildBoss_troop2": 45,
"GuildBoss_troop3": 60, "GuildBoss_troop3": 60,
"zhayantime": 5 "zhayantime": 5,
"rotateAngle": 360,
"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": "gold",
"n": 10000
}
]
},
{
"star": 2,
"needgold": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"star": 3,
"needgold": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"star": 4,
"needgold": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"star": 5,
"needgold": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"star": 6,
"needgold": [
{
"a": "attr",
"t": "gold",
"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

@ -6332,5 +6332,93 @@
"key": "itemtipstxt_10017", "key": "itemtipstxt_10017",
"text": "体力药剂不足" "text": "体力药剂不足"
} }
},
{
"id": "625001",
"name": {
"key": "itemname_90001",
"text": "阿宝碎片"
},
"usetype": 3,
"color": 5,
"bagtype": 1,
"index": 99,
"special_type": 0,
"time": 0,
"effects": "effect_ui_wuping_2",
"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_625001",
"text": "阿宝天赋点"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_625001",
"text": "阿宝的天赋点不足"
}
},
{
"id": "625002",
"name": {
"key": "itemname_90001",
"text": "经验道具"
},
"usetype": 12,
"color": 3,
"bagtype": 1,
"index": 99,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
155
],
"use_skip": 155,
"upper_limit": 999,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "ytx_js_25001",
"ico": "ytx_js_25001",
"intr": {
"key": "itemdesc_625002",
"text": "经验道具"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_625002",
"text": "阿宝的天赋点不足"
}
} }
] ]

View File

@ -14,7 +14,7 @@
}, },
"exp": 60, "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

@ -5164,7 +5164,7 @@
{ {
"Id": 235001113, "Id": 235001113,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -5294,7 +5294,7 @@
{ {
"Id": 235001123, "Id": 235001123,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -5340,7 +5340,7 @@
{ {
"Id": 235001133, "Id": 235001133,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -5386,7 +5386,7 @@
{ {
"Id": 235001143, "Id": 235001143,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -5432,7 +5432,7 @@
{ {
"Id": 235001153, "Id": 235001153,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -5478,7 +5478,7 @@
{ {
"Id": 235001163, "Id": 235001163,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 11,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "Type=Rand",
"Limit": 2, "Limit": 2,
@ -9486,7 +9486,7 @@
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 3, "Type": 3,
"Argu": [ "Argu": [
390001401, 390001008,
1000, 1000,
1, 1,
2 2
@ -10636,7 +10636,7 @@
{ {
"Id": 214003113, "Id": 214003113,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 4,
"Where": [], "Where": [],
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,

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

@ -34,12 +34,6 @@ var (
subType: hero.StrengthenUplv, subType: hero.StrengthenUplv,
req: &pb.HeroStrengthenUplvReq{ req: &pb.HeroStrengthenUplvReq{
HeroObjID: "62e778117cc92ac48c4b2464", HeroObjID: "62e778117cc92ac48c4b2464",
ExpCards: []*pb.MapStringInt32{
{
Key: "62e778117cc92ac48c4b2479",
Value: 1,
},
},
}, },
rsp: &pb.HeroStrengthenUplvResp{}, rsp: &pb.HeroStrengthenUplvResp{},
// enabled: true, // enabled: true,
@ -67,18 +61,6 @@ var (
subType: hero.StrengthenUpStar, subType: hero.StrengthenUpStar,
req: &pb.HeroStrengthenUpStarReq{ req: &pb.HeroStrengthenUpStarReq{
HeroObjID: selHero.Id, HeroObjID: selHero.Id,
HeroRace: []*pb.CostCardData{
{
CostCardObj: heroId,
Amount: 1,
},
},
Hero: []*pb.CostCardData{
{
CostCardObj: heroId,
Amount: 1,
},
},
}, },
rsp: &pb.HeroStrengthenUpStarResp{}, rsp: &pb.HeroStrengthenUpStarResp{},
// enabled: true, // enabled: true,
@ -91,12 +73,6 @@ var (
subType: hero.StrengthenUplv, subType: hero.StrengthenUplv,
req: &pb.HeroStrengthenUplvReq{ req: &pb.HeroStrengthenUplvReq{
HeroObjID: heroId, HeroObjID: heroId,
ExpCards: []*pb.MapStringInt32{
{
Key: "62da19017944b60fd473df61",
Value: 1,
},
},
}, },
rsp: &pb.HeroStrengthenUplvResp{}, rsp: &pb.HeroStrengthenUplvResp{},
enabled: true, enabled: true,
@ -131,7 +107,7 @@ var (
} }
) )
//声明加入到构建器并发起请求 // 声明加入到构建器并发起请求
func (r *Robot) RunHero() { func (r *Robot) RunHero() {
r.addBuilders(heroBuilders) r.addBuilders(heroBuilders)
} }

View File

@ -4,5 +4,5 @@ Website = "http://legu.cc"
Icon = "app.png" Icon = "app.png"
Name = "RobotGUI" Name = "RobotGUI"
ID = "cc.legu.app" ID = "cc.legu.app"
Version = "1.2.7" Version = "1.2.8"
Build = 37 Build = 38

View File

@ -97,6 +97,7 @@ const (
TOOLBAR_PB = "protobuf" TOOLBAR_PB = "protobuf"
TOOLBAR_AUTO = "自动化" TOOLBAR_AUTO = "自动化"
TOOLBAR_PING = "端口扫描" TOOLBAR_PING = "端口扫描"
TOOLBAR_MGODB = "MongoDB"
TOOLBAR_PERF_TIP = "开始" TOOLBAR_PERF_TIP = "开始"
TOOLBAR_PERF_CONF = "配置" TOOLBAR_PERF_CONF = "配置"

View File

@ -1,5 +1,7 @@
package storage package storage
import "go_dreamfactory/pb"
//默认配置 //默认配置
func NewDefaultConfig() *Config { func NewDefaultConfig() *Config {
return &Config{ return &Config{
@ -36,6 +38,17 @@ type Config struct {
SyncConf *SyncConfig `json:"syncConf,omitempty"` //同步配置 SyncConf *SyncConfig `json:"syncConf,omitempty"` //同步配置
UpgradeUrl string `json:"upgradeUrl,omitempty"` //升级服务 UpgradeUrl string `json:"upgradeUrl,omitempty"` //升级服务
Servers []*ServerConfig `json:"servers,omitempty"` //区服配置 Servers []*ServerConfig `json:"servers,omitempty"` //区服配置
MgoDB *MgoDB `json:"mgoDB,omitempty"` //MongoDB配置
ServiceDBInfo *pb.ServiceDBInfo `json:"serviceDBInfo,omitempty"` //
}
type MgoDB struct {
Name string `json:"name,omitempty"` //
Host string `json:"host,omitempty"`
Port int32 `json:"port,omitempty"`
User string `json:"user,omitempty"`
Password string `json:"password,omitempty"`
Database string `json:"database,omitempty"`
} }
//压测配置 //压测配置

View File

@ -33,6 +33,7 @@ var (
&appLock{}, &appLock{},
&appTerm{}, &appTerm{},
&appPing{}, &appPing{},
&appMgo{},
} }
perfRegister = []appInterface{ perfRegister = []appInterface{

View File

@ -10,7 +10,6 @@ import (
"go_dreamfactory/modules/user" "go_dreamfactory/modules/user"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"strings" "strings"
"time"
"fyne.io/fyne/v2" "fyne.io/fyne/v2"
"fyne.io/fyne/v2/container" "fyne.io/fyne/v2/container"
@ -313,14 +312,23 @@ func (ui *MainWindowImpl) createLoginWin(sid, sname string) {
return return
} }
go func() { // go func() {
timer := time.NewTimer(10 * time.Second) // timer := time.NewTimer(10 * time.Second)
for { // for {
timer.Reset(10 * time.Second) // if !timer.Stop() {
<-timer.C // select {
ui.pttService.Ping(sid, account.Text) // case <-timer.C:
} // default:
}() // }
// }
// timer.Reset(10 * time.Second)
// select {
// case <-timer.C:
// ui.pttService.Ping(sid, account.Text)
// continue
// }
// }
// }()
// reset main window title // reset main window title
subTitle := fmt.Sprintf("%s[%s]", sname, sid) subTitle := fmt.Sprintf("%s[%s]", sname, sid)
ui.w.SetTitle(fmt.Sprintf(common.APP_WIN_TITLE, subTitle, ui.app.Metadata().Version, ui.app.Metadata().Build, common.APP_NAME)) ui.w.SetTitle(fmt.Sprintf(common.APP_WIN_TITLE, subTitle, ui.app.Metadata().Version, ui.app.Metadata().Build, common.APP_NAME))

View File

@ -103,12 +103,7 @@ var (
ff(comm.ModulePagoda, "getlist"): &formview.PagodaListView{}, ff(comm.ModulePagoda, "getlist"): &formview.PagodaListView{},
// rtask // rtask
ff(comm.ModuleRtask, rtask.RtaskSubTypeList): &formview.RtaskListView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeList): &formview.RtaskListView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeApply): &formview.RtaskDoitView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose): &formview.RtaskChooseView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward): &formview.RtaskRewardView{},
ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{}, ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart): &formview.RtaskBattlestartView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): &formview.RtaskBattleFinishView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): &formview.RtaskRecordView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): &formview.RtaskRecordView{},
// linestory // linestory
ff(comm.ModuleLinestory, linestory.LinestorySubTypeChapter): &formview.LinestoryMineView{}, ff(comm.ModuleLinestory, linestory.LinestorySubTypeChapter): &formview.LinestoryMineView{},
@ -227,12 +222,6 @@ var (
}, },
"rtask": { "rtask": {
ff(comm.ModuleRtask, rtask.RtaskSubTypeList), ff(comm.ModuleRtask, rtask.RtaskSubTypeList),
ff(comm.ModuleRtask, rtask.RtaskSubTypeApply),
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose),
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish),
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord), ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord),
ff(comm.ModuleRtask, "rtest"), ff(comm.ModuleRtask, "rtest"),
}, },
@ -770,41 +759,6 @@ var (
return "" return ""
}, },
}, },
ff(comm.ModuleRtask, rtask.RtaskSubTypeApply): {
NavLabel: "做任务",
Desc: "执行随机任务",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeApply,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose): {
NavLabel: "情景对答",
Desc: "情景对答",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeChoose,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward): {
NavLabel: "领奖",
Desc: "领奖",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeReward,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart): {
NavLabel: "战斗开始",
Desc: "战斗开始",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeBattleStart,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): {
NavLabel: "战斗结束",
Desc: "战斗结束",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeBattleFinish,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): { ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): {
NavLabel: "任务数据", NavLabel: "任务数据",
Desc: "任务数据", Desc: "任务数据",

246
cmd/v2/ui/tool_mgo.go Normal file
View File

@ -0,0 +1,246 @@
package ui
import (
"context"
"errors"
"fmt"
"go_dreamfactory/cmd/v2/lib/common"
os_storage "go_dreamfactory/cmd/v2/lib/storage"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/pb"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/layout"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
type appMgo struct {
appAdapter
conf *os_storage.Config
storage os_storage.Storage
db *mongo.Database
client *mongo.Client
scriptEntry *widget.Entry
}
func (this *appMgo) LazyInit(ptService service.PttService, obs observer.Observer) error {
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_MGODB, theme.DownloadIcon(), nil)
content := container.NewMax()
content.Objects = []fyne.CanvasObject{}
this.scriptEntry = widget.NewMultiLineEntry()
connWinBtn := widget.NewButton("连接设置", this.showConWin)
openConnBtn := widget.NewButton("打开连接", this.openConn)
closeConnBtn := widget.NewButton("关闭连接", this.closeConn)
createServerConfBtn := widget.NewButton("创建服务配置", this.createServerConf)
btns := container.NewHBox(connWinBtn, openConnBtn, createServerConfBtn, layout.NewSpacer(), closeConnBtn)
content.Objects = append(content.Objects, container.NewBorder(btns, nil, nil, nil, this.scriptEntry))
this.tabItem.Content = content
this.storage, _ = os_storage.NewOSStorage()
var err error
this.conf, err = this.storage.LoadConfig()
if err != nil {
logrus.Error(err)
return err
}
return nil
}
func (this *appMgo) openConn() {
if this.conf.MgoDB == nil {
dialog.ShowError(errors.New("MgoDB没有配置"), toolWin.w)
return
}
var option *options.ClientOptions
if (this.conf.MgoDB.User == "" && this.conf.MgoDB.Password == "") &&
this.conf.MgoDB.Host != "" && this.conf.MgoDB.Port != 0 && this.conf.MgoDB.Database != "" {
option = options.Client().ApplyURI(fmt.Sprintf("mongodb://%s:%d", this.conf.MgoDB.Host, this.conf.MgoDB.Port))
} else {
option = options.Client().ApplyURI(fmt.Sprintf("mongodb://%s:%s@%s:%d", this.conf.MgoDB.User, this.conf.MgoDB.Password,
this.conf.MgoDB.Host, this.conf.MgoDB.Port))
}
client, err := mongo.Connect(context.TODO(), option)
if err != nil {
logrus.Error(err)
return
}
if err2 := client.Ping(context.TODO(), nil); err2 != nil {
logrus.Error("Mongo连接失败", err2)
return
}
this.db = client.Database(this.conf.MgoDB.Database)
this.scriptEntry.Text = this.db.Name() + " 连接成功"
this.scriptEntry.Refresh()
}
func (this *appMgo) closeConn() {
if this.db != nil {
if err := this.db.Client().Disconnect(context.TODO()); err != nil {
this.scriptEntry.Text = "连接关闭失败"
} else {
this.scriptEntry.Text = "连接关闭成功"
}
this.scriptEntry.Refresh()
}
}
func (this *appMgo) createServerConf() {
serverId := widget.NewEntry()
serverName := widget.NewEntry()
owner := widget.NewEntry()
cross := widget.NewEntry()
crossId := widget.NewEntry()
singleserver := widget.NewEntry()
opentime := widget.NewEntry()
redisIsCluster := widget.NewEntry()
redisAddr := widget.NewEntry()
redisPassword := widget.NewEntry()
redisDb := widget.NewEntry()
mongoUrl := widget.NewEntry()
mongoDatabase := widget.NewEntry()
form := widget.NewForm(
widget.NewFormItem("serverid", serverId),
widget.NewFormItem("serverName", serverName),
widget.NewFormItem("owner", owner),
widget.NewFormItem("cross", cross),
widget.NewFormItem("crossId", crossId),
widget.NewFormItem("singleserver", singleserver),
widget.NewFormItem("opentime", opentime),
widget.NewFormItem("redisIsCluster", redisIsCluster),
widget.NewFormItem("redisAddr", redisAddr),
widget.NewFormItem("redisPassword", redisPassword),
widget.NewFormItem("redisDb", redisDb),
widget.NewFormItem("mongoUrl", mongoUrl),
widget.NewFormItem("mongoDatabase", mongoDatabase),
)
if this.conf.ServiceDBInfo != nil {
serverId.Text = this.conf.ServiceDBInfo.Serverid
serverName.Text = this.conf.ServiceDBInfo.ServerName
owner.Text = this.conf.ServiceDBInfo.Owner
cross.Text = this.conf.ServiceDBInfo.Cross
crossId.Text = this.conf.ServiceDBInfo.CrossId
singleserver.Text = this.conf.ServiceDBInfo.Singleserver
opentime.Text = cast.ToString(this.conf.ServiceDBInfo.Opentime)
redisIsCluster.Text = cast.ToString(this.conf.ServiceDBInfo.RedisIsCluster)
redisAddr.Text = strings.Join(this.conf.ServiceDBInfo.RedisAddr, ",")
redisPassword.Text = this.conf.ServiceDBInfo.RedisPassword
redisDb.Text = cast.ToString(this.conf.ServiceDBInfo.RedisDb)
mongoUrl.Text = this.conf.ServiceDBInfo.MongodbUrl
mongoDatabase.Text = this.conf.ServiceDBInfo.MongodbDatabase
}
subBtn := widget.NewButton("保存", func() {
this.conf.ServiceDBInfo = &pb.ServiceDBInfo{
Serverid: serverId.Text,
ServerName: serverName.Text,
Owner: owner.Text,
Cross: cross.Text,
CrossId: crossId.Text,
Singleserver: singleserver.Text,
Opentime: cast.ToInt64(opentime.Text),
RedisIsCluster: cast.ToBool(redisIsCluster.Text),
RedisAddr: strings.Split(redisAddr.Text, ","),
RedisPassword: redisPassword.Text,
RedisDb: cast.ToInt32(redisDb.Text),
MongodbUrl: mongoUrl.Text,
MongodbDatabase: mongoDatabase.Text,
}
if err := this.storage.StoreConfig(this.conf); err != nil {
logrus.Error(err)
}
})
subBtn.Importance = widget.HighImportance
execBtn := widget.NewButton("插入", func() {
if this.db == nil {
common.ShowTip("请先打开连接")
return
}
c := this.db.Collection("serverdata")
if _, err := c.InsertOne(context.TODO(), this.conf.ServiceDBInfo); err != nil {
logrus.Error(err)
return
}
this.scriptEntry.Text = "插入成功"
this.scriptEntry.Refresh()
})
dconf := dialog.NewCustom("配置", "关闭", container.NewVBox(form, container.NewHBox(layout.NewSpacer(), subBtn, execBtn)), toolWin.w)
dconf.Resize(fyne.NewSize(400, 600))
dconf.Show()
}
func (this *appMgo) showConWin() {
connName := widget.NewEntry()
address := widget.NewEntry()
port := widget.NewEntry()
user := widget.NewEntry()
password := widget.NewPasswordEntry()
database := widget.NewEntry()
form := widget.NewForm(
widget.NewFormItem("Name", connName),
widget.NewFormItem("Address", container.NewBorder(nil, nil, nil, port, address)),
widget.NewFormItem("User", user),
widget.NewFormItem("Password", password),
widget.NewFormItem("Database", database),
)
if this.conf.MgoDB != nil {
connName.Text = this.conf.MgoDB.Name
address.Text = this.conf.MgoDB.Host
port.Text = cast.ToString(this.conf.MgoDB.Port)
user.Text = this.conf.MgoDB.User
password.Text = this.conf.MgoDB.Password
database.Text = this.conf.MgoDB.Database
}
form.OnSubmit = func() {
this.conf.MgoDB = &os_storage.MgoDB{
Name: connName.Text,
Host: address.Text,
Port: cast.ToInt32(port.Text),
User: user.Text,
Password: password.Text,
Database: database.Text,
}
if connName.Text == "" || address.Text == "" || port.Text == "" {
common.ShowTip("请填写完整")
return
}
if err := this.storage.StoreConfig(this.conf); err != nil {
logrus.Error(err)
return
}
dialog.ShowInformation("提示", "保存成功", toolWin.w)
}
form.SubmitText = "保存"
dconf := dialog.NewCustom("设置链接", "关闭", form, toolWin.w)
dconf.Resize(fyne.NewSize(400, 200))
dconf.Show()
}
func (a *appMgo) GetAppName() string {
return common.TOOLBAR_MGODB
}

View File

@ -56,6 +56,9 @@ func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
widget.NewToolbarAction(theme.ComputerIcon(), func() { widget.NewToolbarAction(theme.ComputerIcon(), func() {
openApp2(mw.at, common.TOOLBAR_PING) openApp2(mw.at, common.TOOLBAR_PING)
}), }),
widget.NewToolbarAction(theme.SettingsIcon(), func() {
openApp2(mw.at, common.TOOLBAR_MGODB)
}),
widget.NewToolbarSpacer(), widget.NewToolbarSpacer(),
widget.NewToolbarAction(theme.HelpIcon(), func() { widget.NewToolbarAction(theme.HelpIcon(), func() {

View File

@ -37,7 +37,7 @@ func (this *BingoView) CreateView(t *model.TestCase) fyne.CanvasObject {
nEntry.PlaceHolder = "数量" nEntry.PlaceHolder = "数量"
attrSel := &widget.Select{} attrSel := &widget.Select{}
attrSel.Options = []string{"选择", "gold", "diamond", "exp", "friendPoint", "ps", "guildcoin", "arenacoin"} attrSel.Options = []string{"选择", "gold", "diamond", "exp", "moongold", "friendPoint", "ps", "guildcoin", "arenacoin"}
attrSel.SetSelected("选择") attrSel.SetSelected("选择")
attrSel.OnChanged = func(s string) { attrSel.OnChanged = func(s string) {
ttxt = s ttxt = s

View File

@ -10,7 +10,6 @@ import (
"fyne.io/fyne/v2/container" "fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget" "fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/spf13/cast"
) )
type HeroStrengthenUpStarView struct { type HeroStrengthenUpStarView struct {
@ -49,43 +48,9 @@ func (this *HeroStrengthenUpStarView) CreateView(t *model.TestCase) fyne.CanvasO
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_LABEL_CARD, hero)) this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_LABEL_CARD, hero))
this.form.OnSubmit = func() { this.form.OnSubmit = func() {
// heroRace
var heroRace []*pb.CostCardData
if heroRaceId.Text != "" && heroRaceAmount.Text != "" {
heroRace = append(heroRace, &pb.CostCardData{
CostCardObj: heroRaceId.Text,
Amount: cast.ToInt32(heroRaceAmount.Text),
})
}
if heroRaceId2.Text != "" && heroRaceAmount2.Text != "" {
heroRace = append(heroRace, &pb.CostCardData{
CostCardObj: heroRaceId2.Text,
Amount: cast.ToInt32(heroRaceAmount2.Text),
})
}
//hero
var hero []*pb.CostCardData
if heroId.Text != "" && heroAmount.Text != "" {
hero = append(hero, &pb.CostCardData{
CostCardObj: heroId.Text,
Amount: cast.ToInt32(heroAmount.Text),
})
}
if heroId2.Text != "" && heroAmount2.Text != "" {
hero = append(hero, &pb.CostCardData{
CostCardObj: heroId2.Text,
Amount: cast.ToInt32(heroAmount2.Text),
})
}
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
&pb.HeroStrengthenUpStarReq{ &pb.HeroStrengthenUpStarReq{
HeroObjID: heroObjID.Text, HeroObjID: heroObjID.Text,
HeroRace: heroRace,
Hero: hero,
}); err != nil { }); err != nil {
logrus.Error(err) logrus.Error(err)
return return

View File

@ -55,8 +55,7 @@ func (this *HeroStrengthenUplvView) CreateView(t *model.TestCase) fyne.CanvasObj
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
&pb.HeroStrengthenUplvReq{ &pb.HeroStrengthenUplvReq{
HeroObjID: heroObjID.Text, HeroObjID: heroObjID.Text}); err != nil {
ExpCards: cards}); err != nil {
logrus.Error(err) logrus.Error(err)
return return
} }

View File

@ -1,44 +0,0 @@
package formview
import (
"errors"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type RtaskDoitView struct {
BaseformView
}
func (this *RtaskDoitView) CreateView(t *model.TestCase) fyne.CanvasObject {
taskId := widget.NewEntry()
taskId.PlaceHolder = "任务ID"
subTaskId := widget.NewEntry()
subTaskId.PlaceHolder = "支线任务ID"
this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
this.form.AppendItem(widget.NewFormItem("支线任务ID", subTaskId))
this.form.OnSubmit = func() {
if taskId.Text == "" {
dialog.ShowError(errors.New("请填写任务ID"), this.w)
return
}
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskApplyReq{
RtaskId: cast.ToInt32(taskId.Text),
RtaskSubId: cast.ToInt32(subTaskId.Text),
}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -1,33 +0,0 @@
package formview
import (
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type RtaskBattleFinishView struct {
BaseformView
}
func (this *RtaskBattleFinishView) CreateView(t *model.TestCase) fyne.CanvasObject {
taskId := widget.NewEntry()
this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
this.form.OnSubmit = func() {
if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
&pb.RtaskBattleFinishReq{
RtaskId: cast.ToInt32(taskId.Text),
}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -1,43 +0,0 @@
package formview
import (
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type RtaskBattlestartView struct {
BaseformView
}
func (this *RtaskBattlestartView) CreateView(t *model.TestCase) fyne.CanvasObject {
confId := widget.NewEntry()
leadpos := widget.NewEntry()
teamIds := widget.NewEntry()
teamIds.PlaceHolder = ",号分隔"
this.form.AppendItem(widget.NewFormItem("关卡ID", confId))
this.form.AppendItem(widget.NewFormItem("队长位置", leadpos))
this.form.AppendItem(widget.NewFormItem("阵容信息", teamIds))
this.form.OnSubmit = func() {
if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
&pb.RtaskBattleStartReq{
BattleConfId: cast.ToInt32(confId.Text),
Leadpos: cast.ToInt32(leadpos.Text),
Teamids: strings.Split(teamIds.Text, ","),
}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -1,52 +0,0 @@
package formview
import (
"errors"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type RtaskChooseView struct {
BaseformView
}
func (this *RtaskChooseView) CreateView(t *model.TestCase) fyne.CanvasObject {
taskId := widget.NewEntry()
taskId.PlaceHolder = "任务ID"
subTaskId := widget.NewEntry()
subTaskId.PlaceHolder = "支线任务ID"
chooseId := widget.NewEntry()
chooseId.PlaceHolder = "选项ID"
this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
this.form.AppendItem(widget.NewFormItem("支线任务ID", subTaskId))
this.form.AppendItem(widget.NewFormItem("选项ID", chooseId))
this.form.OnSubmit = func() {
if taskId.Text == "" {
dialog.ShowError(errors.New("请填写任务ID"), this.w)
return
}
if chooseId.Text == "" {
dialog.ShowError(errors.New("请填写选项ID"), this.w)
return
}
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskChooseReq{
RtaskId: cast.ToInt32(taskId.Text),
RtaskSubId: cast.ToInt32(subTaskId.Text),
ChooseId: cast.ToInt32(chooseId.Text),
}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -1,37 +0,0 @@
package formview
import (
"errors"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type RtaskRewardView struct {
BaseformView
}
func (this *RtaskRewardView) CreateView(t *model.TestCase) fyne.CanvasObject {
taskId := widget.NewEntry()
taskId.PlaceHolder = "任务ID"
this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
this.form.OnSubmit = func() {
if taskId.Text == "" {
dialog.ShowError(errors.New("请填写任务ID"), this.w)
return
}
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskGetRewardReq{
RtaskId: cast.ToInt32(taskId.Text),
}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -26,13 +26,13 @@ const (
RDS_EMPTY = "" RDS_EMPTY = ""
) )
//ERR // ERR
const ( const (
MainTypeNotify = "notify" //通知 MainTypeNotify = "notify" //通知
SubTypeErrorNotify = "errornotify" //错误通知 SubTypeErrorNotify = "errornotify" //错误通知
) )
//模块名定义处 // 模块名定义处
const ( const (
ModuleSys core.M_Modules = "sys" //系统 ModuleSys core.M_Modules = "sys" //系统
ModuleGate core.M_Modules = "gateway" //gate模块 网关服务模块 ModuleGate core.M_Modules = "gateway" //gate模块 网关服务模块
@ -81,7 +81,7 @@ const (
ModulePvp core.M_Modules = "pvp" //实时pvp ModulePvp core.M_Modules = "pvp" //实时pvp
) )
//数据表名定义处 // 数据表名定义处
const ( const (
TableSys = "sys" TableSys = "sys"
///数据日志表 ///数据日志表
@ -219,7 +219,7 @@ const (
TableMline = "mline" TableMline = "mline"
) )
//RPC服务接口定义处 // RPC服务接口定义处
const ( //Rpc const ( //Rpc
//Gateway 网关消息 //Gateway 网关消息
Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由 Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由
@ -272,7 +272,7 @@ const ( //Rpc
Rpc_Mail core.Rpc_Key = "Rpc_Mail" Rpc_Mail core.Rpc_Key = "Rpc_Mail"
) )
//事件类型定义处 // 事件类型定义处
const ( const (
EventUserLogin core.Event_Key = "Event_UserLogin" //登录事件 EventUserLogin core.Event_Key = "Event_UserLogin" //登录事件
EventCreateUser core.Event_Key = "Event_CreateUser" //创建角色事件 EventCreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
@ -331,13 +331,14 @@ const (
SociatyCoin = "guildcoin" //公会币 SociatyCoin = "guildcoin" //公会币
ArenaCoin = "arenacoin" //竞技场币 ArenaCoin = "arenacoin" //竞技场币
ResPs = "ps" // 体力 ResPs = "ps" // 体力
Moongold = "moongold" //纯净月髓
) )
const ( const (
Gold int32 = 1 //金币 Gold int32 = 1 //金币
Diamond int32 = 2 //钻石 Diamond int32 = 2 //钻石
) )
//门票 // 门票
const ( const (
ArenaTicket string = "100004" //竞技场入场券 ArenaTicket string = "100004" //竞技场入场券
MoonFantasyTicket string = "100003" //梦境场入场券 MoonFantasyTicket string = "100003" //梦境场入场券
@ -345,7 +346,7 @@ const (
UnifiedTicket string = "100100" //统一门票 UnifiedTicket string = "100100" //统一门票
) )
//红点枚举 // 红点枚举
type ReddotType int32 type ReddotType int32
const ( const (
@ -393,7 +394,7 @@ const (
TaskTypeUpHeroLevel TaskType = 103 //获取英雄等级 TaskTypeUpHeroLevel TaskType = 103 //获取英雄等级
) )
//任务标签:日常/周常/成就 // 任务标签:日常/周常/成就
type TaskTag int32 type TaskTag int32
const ( const (
@ -562,6 +563,10 @@ const (
Rtype155 TaskType = 155 //调整助战英雄n次 Rtype155 TaskType = 155 //调整助战英雄n次
Rtype156 TaskType = 156 //完成工会任务n次 Rtype156 TaskType = 156 //完成工会任务n次
Rtype157 TaskType = 157 //战斗在xx系统中完成xx事件 Rtype157 TaskType = 157 //战斗在xx系统中完成xx事件
Rtype158 TaskType = 158 //主线第X章关卡总星数达到N星
Rtype159 TaskType = 159 //主线第X章关卡全部达到三星
Rtype160 TaskType = 160 //主线总星数达到X星
Rtype161 TaskType = 161 //在自动战斗过程中完成另一场战斗
) )
const ( const (
@ -601,7 +606,7 @@ const (
MainLineBoss = 3 MainLineBoss = 3
) )
///聊天消息公告类型 // /聊天消息公告类型
type ChatSystemType int8 type ChatSystemType int8
const ( const (

12
go.mod
View File

@ -9,7 +9,6 @@ require (
github.com/Pallinder/go-randomdata v1.2.0 github.com/Pallinder/go-randomdata v1.2.0
github.com/atotto/clipboard v0.1.4 github.com/atotto/clipboard v0.1.4
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
github.com/boltdb/bolt v1.3.1
github.com/gin-gonic/gin v1.8.1 github.com/gin-gonic/gin v1.8.1
github.com/go-playground/validator/v10 v10.10.1 github.com/go-playground/validator/v10 v10.10.1
github.com/go-redis/redis/v8 v8.11.5 github.com/go-redis/redis/v8 v8.11.5
@ -30,13 +29,11 @@ require (
github.com/spf13/cast v1.5.0 github.com/spf13/cast v1.5.0
github.com/spf13/cobra v1.5.0 github.com/spf13/cobra v1.5.0
github.com/spf13/pflag v1.0.5 github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.12.0
github.com/tidwall/gjson v1.14.1 github.com/tidwall/gjson v1.14.1
github.com/ugorji/go/codec v1.2.7 github.com/ugorji/go/codec v1.2.7
github.com/valyala/fastrand v1.1.0 github.com/valyala/fastrand v1.1.0
go.mongodb.org/mongo-driver v1.5.1 go.mongodb.org/mongo-driver v1.5.1
go.uber.org/multierr v1.6.0 go.uber.org/multierr v1.6.0
golang.design/x/hotkey v0.4.0
golang.org/x/net v0.2.0 golang.org/x/net v0.2.0
google.golang.org/grpc v1.46.2 google.golang.org/grpc v1.46.2
google.golang.org/protobuf v1.28.0 google.golang.org/protobuf v1.28.0
@ -85,7 +82,7 @@ require (
github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-ping/ping v0.0.0-20211130115550-779d1e919534 // indirect github.com/go-ping/ping v0.0.0-20211130115550-779d1e919534
github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-redis/redis_rate/v9 v9.1.2 // indirect github.com/go-redis/redis_rate/v9 v9.1.2 // indirect
@ -107,7 +104,6 @@ require (
github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/serf v0.9.7 // indirect github.com/hashicorp/serf v0.9.7 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect
@ -122,7 +118,6 @@ require (
github.com/leodido/go-urn v1.2.1 // indirect github.com/leodido/go-urn v1.2.1 // indirect
github.com/lucas-clemente/quic-go v0.27.0 // indirect github.com/lucas-clemente/quic-go v0.27.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect
github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect
github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect
@ -135,7 +130,6 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/nxadm/tail v1.4.8 // indirect github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/ginkgo v1.16.5 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.2 // indirect github.com/pelletier/go-toml/v2 v2.0.2 // indirect
github.com/philhofer/fwd v1.1.1 // indirect github.com/philhofer/fwd v1.1.1 // indirect
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
@ -150,12 +144,9 @@ require (
github.com/smallnest/quick v0.0.0-20220103065406-780def6371e6 // indirect github.com/smallnest/quick v0.0.0-20220103065406-780def6371e6 // indirect
github.com/smartystreets/goconvey v1.7.2 github.com/smartystreets/goconvey v1.7.2
github.com/soheilhy/cmux v0.1.5 // indirect github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/afero v1.8.2 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect
github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect
github.com/stretchr/testify v1.8.0 // indirect github.com/stretchr/testify v1.8.0 // indirect
github.com/subosito/gotenv v1.4.0 // indirect
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect
github.com/tevino/abool v1.2.0 // indirect github.com/tevino/abool v1.2.0 // indirect
@ -187,7 +178,6 @@ require (
golang.org/x/sys v0.2.0 // indirect golang.org/x/sys v0.2.0 // indirect
golang.org/x/text v0.4.0 golang.org/x/text v0.4.0
golang.org/x/tools v0.3.0 // indirect golang.org/x/tools v0.3.0 // indirect
gopkg.in/ini.v1 v1.66.6 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1

33
go.sum
View File

@ -5,7 +5,6 @@ cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgo
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
@ -18,7 +17,6 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
@ -40,7 +38,6 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU=
@ -98,8 +95,6 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
@ -330,7 +325,6 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
@ -343,7 +337,6 @@ github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk
github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gopherjs/gopherjs v0.0.0-20211219123610-ec9572f70e60/go.mod h1:cz9oNYuRUWGdHmLF2IodMLkAhcPtXeULvcBNagUrxTI= github.com/gopherjs/gopherjs v0.0.0-20211219123610-ec9572f70e60/go.mod h1:cz9oNYuRUWGdHmLF2IodMLkAhcPtXeULvcBNagUrxTI=
github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g= github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=
@ -401,7 +394,6 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
@ -490,8 +482,6 @@ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
@ -590,8 +580,6 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw=
github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI=
github.com/peterbourgon/g2s v0.0.0-20140925154142-ec76db4c1ac1 h1:5Dl+ADmsGerAqHwWzyLqkNaUBQ+48DQwfDCaW1gHAQM= github.com/peterbourgon/g2s v0.0.0-20140925154142-ec76db4c1ac1 h1:5Dl+ADmsGerAqHwWzyLqkNaUBQ+48DQwfDCaW1gHAQM=
@ -604,7 +592,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pkg/sftp v1.13.5 h1:a3RLUqkyjYRtBTZJZ1VRrKbN3zhuPLlUc3sphVz81go= github.com/pkg/sftp v1.13.5 h1:a3RLUqkyjYRtBTZJZ1VRrKbN3zhuPLlUc3sphVz81go=
github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg= github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@ -713,8 +700,6 @@ github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo=
github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
@ -722,14 +707,11 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=
github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ=
github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI=
github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 h1:HunZiaEKNGVdhTRQOVpMmj5MQnGnv+e8uZNu3xFLgyM= github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 h1:HunZiaEKNGVdhTRQOVpMmj5MQnGnv+e8uZNu3xFLgyM=
github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4= github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4=
github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 h1:m59mIOBO4kfcNCEzJNy71UkeF4XIx2EVmL9KLwDQdmM= github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 h1:m59mIOBO4kfcNCEzJNy71UkeF4XIx2EVmL9KLwDQdmM=
@ -750,8 +732,6 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs=
github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo=
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU=
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
@ -845,9 +825,6 @@ go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=
golang.design/x/hotkey v0.4.0 h1:jmY6QJdakEdYn0KBm48IZRw3emBpDXRhIWUHqPVsWBY=
golang.design/x/hotkey v0.4.0/go.mod h1:M8SGcwFYHnKRa83FpTFQoZvPO5vVT+kWPztFqTQKmXA=
golang.design/x/mainthread v0.3.0 h1:UwFus0lcPodNpMOGoQMe87jSFwbSsEY//CA7yVmu4j8=
golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@ -865,10 +842,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=
@ -960,7 +935,6 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
@ -1062,7 +1036,6 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1071,7 +1044,6 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@ -1167,7 +1139,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
@ -1255,9 +1226,7 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
@ -1318,8 +1287,6 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI=
gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=

View File

@ -125,14 +125,11 @@ 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 resonConfig != nil && resonConfig.Maxnum == _hero.ResonateNum {
if _hero.Lv == _hero.Star*comm.HeroStarLvRatio { if _hero.Lv == _hero.Star*comm.HeroStarLvRatio {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color) this.module.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1) this.module.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
} }
} }
} }
}
return return
} }

View File

@ -29,7 +29,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
cfgDraw *cfg.GameGlobalData cfgDraw *cfg.GameGlobalData
costAtn *cfg.Gameatn costAtn *cfg.Gameatn
heroRecord *pb.DBHeroRecord heroRecord *pb.DBHeroRecord
pool string pool string // 当前抽对应的卡池
_mapAddHero map[string]int32 _mapAddHero map[string]int32
strPool []string // 10连跨多个卡池情况 strPool []string // 10连跨多个卡池情况
update map[string]interface{} update map[string]interface{}
@ -65,8 +65,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
for i := 0; i < int(req.DrawCount); i++ { for i := 0; i < int(req.DrawCount); i++ {
pool = this.module.modelHero.CheckPool(drawCount, cfgDraw)
drawCount += 1 drawCount += 1
pool = this.module.modelHero.CheckPool(drawCount, cfgDraw)
strPool = append(strPool, pool) strPool = append(strPool, pool)
ret := this.module.CheckCondition(session.GetUserId()) ret := this.module.CheckCondition(session.GetUserId())
if ret == true { // 命中插入5星英雄 if ret == true { // 命中插入5星英雄
@ -128,7 +129,56 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
} }
} }
inRangeConf1 := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1
if len(inRangeConf1) == 3 {
iStart := inRangeConf1[0] // 抽卡开始
iEnd := inRangeConf1[1] // 抽卡结束
star := inRangeConf1[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
heroRecord.Inevitable1 = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.configure.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
}
heroRecord.Star4++ // 4星保底数量+1 heroRecord.Star4++ // 4星保底数量+1
heroRecord.Star5++ // 5星保底数量+1 heroRecord.Star5++ // 5星保底数量+1
if starIndex == 1 { if starIndex == 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

@ -25,7 +25,7 @@ func (this *apiComp) GetSpecified(session comm.IUserSession, req *pb.HeroGetSpec
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
hero, err := this.module.modelHero.createOneHero(session.GetUserId(), req.HeroCoinfigID) hero, err := this.module.modelHero.createSpecialHero(session.GetUserId(), req.HeroCoinfigID)
if err == nil { if err == nil {
code = pb.ErrorCode_HeroNoExist code = pb.ErrorCode_HeroNoExist
} }

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
} }
@ -23,15 +24,9 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
var ( var (
upSkillPos int32 // 升级的技能位置 upSkillPos int32 // 升级的技能位置
_hero *pb.DBHero // 操作的英雄 _hero *pb.DBHero // 操作的英雄
ChangeList []*pb.DBHero // 推送 改变的英雄 cost []*cfg.Gameatn // 技能升级消耗
mapCostHero map[string]int32 // 消耗的技能卡
mapCostObj map[string]*pb.DBHero // 消耗的技能卡对象
costGold int64 // 金币消耗
lvUpCount int32 // 技能升级的次数 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
} }
for k, v := range mapCostHero { }
costHero, c := this.module.GetHeroByObjID(session.GetUserId(), k) // 查询消耗卡是否存在 if !bFind {
if c != pb.ErrorCode_Success { code = pb.ErrorCode_ReqParameterError
code = c
return return
} }
if costHero.Block { // 锁定的卡不允许被消耗 cost = append(cost, &cfg.Gameatn{
code = pb.ErrorCode_HeroIsLock A: "item",
return T: v1,
N: 1,
})
} }
if costHero.SameCount < v { // 数量校验 // 消耗获取
code = pb.ErrorCode_HeroNoEnough for i := 0; i < int(lvUpCount); i++ {
return if atn := this.module.configure.GetHeroSkillCost(heroCfg.Star); len(atn) > 0 {
cost = append(cost, atn...)
} }
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 // 检查消耗
} if code = this.module.CheckRes(session, cost); code != pb.ErrorCode_Success {
// 检查金币消耗
curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), comm.ResGold)
if curGold < costGold { // 金币不足
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
} }
@ -22,24 +22,8 @@ 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 // 消耗指定英雄的数量
costRaceHeroCount int32 // 消耗种族英雄的数量
_hero *pb.DBHero // 目标英雄 _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 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
}
// 金币消耗判断
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
} }
@ -28,72 +23,44 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
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,6 +6,7 @@ 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"
@ -21,8 +22,8 @@ const (
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" // 抽卡概率调整
@ -33,15 +34,16 @@ const (
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
} }
@ -60,7 +62,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
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

@ -72,6 +72,12 @@ func GetMonthStartEnd() (int64, int64) {
return _d1, _d2 return _d1, _d2
} }
func Test_Main(t *testing.T) { func Test_Main(t *testing.T) {
sz := make([]string, 0)
for i := 0; i < 10; i++ {
sz = append(sz, "1")
}
sz[len(sz)-1] = "xxxx"
//创建trace文件 //创建trace文件
f, err := os.Create("trace.out") f, err := os.Create("trace.out")
if err != nil { if err != nil {

View File

@ -96,7 +96,14 @@ func (this *ModelHero) initHeroSkill(hero *pb.DBHero) []*pb.SkillData {
} }
//创建一个指定的英雄 //创建一个指定的英雄
func (this *ModelHero) createOneHero(uid string, heroCfgId string) (hero *pb.DBHero, err error) { func (this *ModelHero) createSpecialHero(uid string, heroCfgId string) (hero *pb.DBHero, err error) {
list := this.getHeroList(uid)
for _, v := range list {
if v.HeroID == heroCfgId {
hero = v
return
}
}
hero = this.InitHero(uid, heroCfgId) hero = this.InitHero(uid, heroCfgId)
if hero != nil { if hero != nil {
if err = this.AddList(uid, hero.Id, hero); err != nil { if err = this.AddList(uid, hero.Id, hero); err != nil {
@ -135,7 +142,7 @@ func (this *ModelHero) initHeroOverlying(uid string, heroCfgId string, count int
) )
hero = this.InitHero(uid, heroCfgId) hero = this.InitHero(uid, heroCfgId)
if hero != nil { if hero != nil {
hero.SameCount = count hero.SameCount = 1 // 新需求 不需要判断叠加
if this.moduleHero.IsCross() { if this.moduleHero.IsCross() {
if model, err = this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil { if model, err = this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil {
this.moduleHero.Errorln(err) this.moduleHero.Errorln(err)
@ -171,8 +178,11 @@ func (this *ModelHero) createHeroOverlying(uid string, heroCfgId string, count i
this.moduleHero.Errorf("err:%v", err) this.moduleHero.Errorf("err:%v", err)
} }
} }
for _, obj := range heros {
if len(heros) >= 0 { if obj.HeroID == heroCfgId { // z
return
}
}
for _, h := range heros { for _, h := range heros {
if h.HeroID == heroCfgId && if h.HeroID == heroCfgId &&
h.IsOverlying { h.IsOverlying {
@ -199,7 +209,7 @@ func (this *ModelHero) createHeroOverlying(uid string, heroCfgId string, count i
return return
} }
} }
}
return this.initHeroOverlying(uid, heroCfgId, count) return this.initHeroOverlying(uid, heroCfgId, count)
} }
@ -308,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) {
@ -557,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 // 加经验之后的经验
@ -613,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
@ -648,15 +631,12 @@ 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 resonConfig != nil && resonConfig.Maxnum == hero.ResonateNum { // 共鸣满
if hero.Lv == hero.Star*comm.HeroStarLvRatio { if hero.Lv == hero.Star*comm.HeroStarLvRatio {
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color) this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype37, 1, cfg.Color)
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype38, 1) this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype38, 1)
} }
} }
} }
}
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype33, 1, 1, hero.Lv) this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype33, 1, 1, hero.Lv)
} }
} }
@ -881,3 +861,52 @@ func (this *ModelHero) resetTalentProperty(hero *pb.DBHero) {
} }
} }
// 创建一条英雄信息,如果有这个英雄 则转换成对应的碎片
func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, count int32) (hero *pb.DBHero, bFirst bool, err error) {
heros := make([]*pb.DBHero, 0)
uid := session.GetUserId()
if this.moduleHero.IsCross() {
if dbModel, err := this.moduleHero.GetDBModuleByUid(uid, this.TableName, this.Expired); err != nil {
this.moduleHero.Errorln(err)
} else {
if err = dbModel.GetList(uid, &heros); err != nil {
this.moduleHero.Errorf("err:%v", err)
}
}
} else {
if err = this.GetList(uid, &heros); err != nil {
this.moduleHero.Errorf("err:%v", err)
}
}
bFirst = true
for _, obj := range heros {
if obj.HeroID == heroCfgId {
hero = obj
bFirst = false
break
}
}
if bFirst { // 没有当前英雄
count -= 1
hero, err = this.initHeroOverlying(uid, heroCfgId, 1)
if err != nil {
return
}
}
// 转碎片处理
if count > 0 {
heroCfg := this.moduleHero.configure.GetHeroConfig(heroCfgId)
if heroCfg != nil {
res := make([]*cfg.Gameatn, 0)
for i := 0; i < int(count); i++ {
res = append(res, heroCfg.Herofrag...)
}
this.moduleHero.DispenseRes(session, res, true)
}
}
return
}

View File

@ -76,10 +76,12 @@ func (this *Hero) Start() (err error) {
} }
//创建单个叠加英雄 //创建单个叠加英雄
func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, code pb.ErrorCode) { func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, bFirst bool, code pb.ErrorCode) {
var err error var (
hero, err = this.modelHero.createHeroOverlying(session.GetUserId(), heroCfgId, num) err error
if err == nil { )
hero, bFirst, err = this.modelHero.createHero(session, heroCfgId, num)
if err == nil && bFirst {
//go func(uid string, heroCfgId string) { // 携程处理 图鉴数据 //go func(uid string, heroCfgId string) { // 携程处理 图鉴数据
if db.IsCross() { if db.IsCross() {
this.moduleFetter.SendRpcAddHero(session, heroCfgId) this.moduleFetter.SendRpcAddHero(session, heroCfgId)
@ -216,23 +218,14 @@ 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 {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
hero, err := this.modelHero.createOneHero(session.GetUserId(), heroConfId) hero, err := this.modelHero.createSpecialHero(session.GetUserId(), heroConfId)
if err != nil { if err != nil {
return pb.ErrorCode_HeroCreate return pb.ErrorCode_HeroCreate
} }
@ -267,48 +260,34 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]
var ( var (
changeList []*pb.DBHero changeList []*pb.DBHero
firstGet []string firstGet []string
bFirst bool
) )
for heroCfgId, num := range heros { for heroCfgId, num := range heros {
if num == 0 { // 数量为0 不做处理 if num == 0 { // 数量为0 不做处理
continue continue
} }
if hero, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success { if hero, bFirst, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success {
this.Errorf("create hero %s failed", heroCfgId) this.Errorf("create hero %s failed", heroCfgId)
return continue
} }
if result, err1 := this.ModuleUser.GetUserExpand(session.GetUserId()); err1 == nil { if bFirst {
initUpdate := map[string]interface{}{}
sz := result.GetTujian()
if len(sz) == 0 {
sz = make(map[string]int32, 0)
}
if _, ok := result.GetTujian()[heroCfgId]; !ok {
heroConf := this.modelHero.moduleHero.configure.GetHeroConfig(heroCfgId)
if heroConf != nil {
if heroConf.Handbook == -1 {
sz[heroCfgId] = 0
} else {
sz[heroCfgId] = 1
}
initUpdate["tujian"] = sz
this.ModuleUser.ChangeUserExpand(session.GetUserId(), initUpdate)
firstGet = append(firstGet, heroCfgId) firstGet = append(firstGet, heroCfgId)
}
}
}
changeList = append(changeList, hero) changeList = append(changeList, hero)
} }
}
if bPush && len(changeList) > 0 { //推送 if bPush { //推送
if len(changeList) > 0 {
session.SendMsg("hero", "change", &pb.HeroChangePush{List: changeList}) session.SendMsg("hero", "change", &pb.HeroChangePush{List: changeList})
} }
// 首次获得英雄 则推送 // 首次获得英雄 则推送
if len(firstGet) > 0 { if len(firstGet) > 0 {
session.SendMsg("hero", "firstget", &pb.HeroFirstGetPush{ session.SendMsg("hero", "firstget", &pb.HeroFirstGetPush{
HeroId: firstGet, HeroId: firstGet,
}) })
} }
}
return return
} }
@ -316,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 == "" {
@ -327,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
} }
@ -628,11 +604,7 @@ func (this *Hero) CheckLvNum(uid string, lv int32) int32 {
} }
func (this *Hero) GetTujianHeroNum(uid string) int32 { func (this *Hero) GetTujianHeroNum(uid string) int32 {
if result, err1 := this.ModuleUser.GetUserExpand(uid); err1 == nil { return int32(len(this.modelHero.getHeroList(uid)))
tujian := result.GetTujian()
return int32(len(tujian))
}
return 0
} }
////拥有觉醒至A级的B星英雄N个 ////拥有觉醒至A级的B星英雄N个
@ -672,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) // 最大等级
@ -695,7 +658,7 @@ func (this *Hero) GetAllMaxHero(session comm.IUserSession) (code pb.ErrorCode) {
} }
// 开始创建英雄 // 开始创建英雄
hero, err := this.modelHero.createOneHero(session.GetUserId(), v.Hid) hero, err := this.modelHero.createSpecialHero(session.GetUserId(), v.Hid)
if err != nil { if err != nil {
return pb.ErrorCode_HeroCreate return pb.ErrorCode_HeroCreate
} }
@ -786,3 +749,34 @@ func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCou
} }
this.ModuleRtask.SendToRtask(session, comm.Rtype89, drawCount) this.ModuleRtask.SendToRtask(session, comm.Rtype89, drawCount)
} }
func (this Hero) newCondition(heroRecord *pb.DBHeroRecord) (get bool, starIndex int32) {
inRangeConf := this.configure.GetGlobalConf().DrawCard5StarsInRange
if len(inRangeConf) == 3 {
iStart := inRangeConf[0] // 抽卡开始
iEnd := inRangeConf[1] // 抽卡结束
star := inRangeConf[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
update := make(map[string]interface{})
update["inevitable"] = heroRecord.Drawcount
get = true
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
get = true
}
}
}
get = false
return
}

View File

@ -175,18 +175,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChall
}) })
} }
} }
// 加主角经验
// if stageConf.Exp > 0 {
// res := make([]*cfg.Gameatn, 0)
// res = append(res, &cfg.Gameatn{
// A: "attr",
// T: "exp",
// N: stageConf.Exp,
// })
// if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
// this.module.Debugf("Mline Commonaward DispenseRes err:+%v", res)
// }
// }
// 加英雄经验 // 加英雄经验
if stageConf.HeroExp > 0 { if stageConf.HeroExp > 0 {
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
@ -203,5 +192,38 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChall
// 主线任务统计 Rtype60 // 主线任务统计 Rtype60
this.module.ModuleRtask.SendToRtask(session, comm.Rtype60, 1) this.module.ModuleRtask.SendToRtask(session, comm.Rtype60, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype61, int32(req.StageId)) this.module.ModuleRtask.SendToRtask(session, comm.Rtype61, int32(req.StageId))
var (
ChapterStar int32
bAll3Star bool
allStar int32
)
bAll3Star = true
for _, v1 := range curChapter.Star {
star := 0
for _, v := range szStar {
if v1&v == v {
ChapterStar++
star++
}
}
if star != 3 && bAll3Star {
bAll3Star = false
}
}
this.module.ModuleRtask.SendToRtask(session, comm.Rtype158, curChapter.ChapterId, ChapterStar)
if bAll3Star {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype159, curChapter.ChapterId)
}
for _, v2 := range list {
for _, v1 := range v2.Star {
for _, v := range szStar {
if v1&v == v {
allStar++
}
}
}
}
this.module.ModuleRtask.SendToRtask(session, comm.Rtype160, allStar)
return return
} }

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:
this.Errorf("not found res type") // 找不到资源类型
} }
} else if v.A == comm.ItemType { //道具资源 }
// if resID, err = strconv.Atoi(v.T); err != nil { // 校验数量
// code = pb.ErrorCode_ConfigurationException for k, v := range attrs {
// return if this.ModuleUser.QueryAttributeValue(session.GetUserId(), k) < int64(v) {
// }
if amount := this.ModuleItems.QueryItemAmount(session.GetUserId(), v.T); amount < uint32(v.N) {
code = pb.ErrorCode_ResNoEnough code = pb.ErrorCode_ResNoEnough
this.Warnf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N) this.Warnf("资源不足", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "T", Value: k}, log.Field{Key: "N", Value: v})
return 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

@ -6,13 +6,9 @@ import (
) )
const ( const (
RtaskSubTypeChoose = "choose" //选择
RtaskSubTypeList = "list" //随机任务列表 RtaskSubTypeList = "list" //随机任务列表
RtaskSubTypeApply = "apply" //做任务
RtaskSubTypeReward = "getreward" //奖励
RtaskSubTypeBattleStart = "battlestart" //战斗开始
RtaskSubTypeBattleFinish = "battlefinish" //战斗完成
RtaskSubTypeGetrecord = "getrecord" //任务数据 RtaskSubTypeGetrecord = "getrecord" //任务数据
RtaskSubTypeSend = "send" //触发任务
) )
type apiComp struct { type apiComp struct {

29
modules/rtask/api_send.go Normal file
View File

@ -0,0 +1,29 @@
package rtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) SendCheck(session comm.IUserSession, req *pb.RtaskSendReq) (code pb.ErrorCode) {
if len(req.Params) == 0 || req.TaskType == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) Send(session comm.IUserSession, req *pb.RtaskSendReq) (code pb.ErrorCode, data proto.Message) {
if code = this.moduleRtask.SendToRtask(session, comm.TaskType(req.TaskType), req.Params...); code != pb.ErrorCode_Success {
return
}
rsp := &pb.RtaskSendResp{
IsSucc: true,
}
if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeSend, rsp); err != nil {
code = pb.ErrorCode_SystemError
}
return
}

View File

@ -0,0 +1,52 @@
package sociaty
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
// 取消公会申请
func (this *apiComp) ApplyCancelCheck(session comm.IUserSession, req *pb.SociatyApplyCancelReq) (code pb.ErrorCode) {
if req.SociatyId == "" {
code = pb.ErrorCode_ReqParameterError
this.module.Error("公会申请取消参数错误", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "params", Value: req.String()})
}
return
}
func (this *apiComp) ApplyCancel(session comm.IUserSession, req *pb.SociatyApplyCancelReq) (code pb.ErrorCode, data proto.Message) {
if code = this.ApplyCancelCheck(session, req); code != pb.ErrorCode_Success {
return
}
uid := session.GetUserId()
sociaty := this.module.modelSociaty.getSociaty(req.SociatyId)
if sociaty != nil && sociaty.Id == "" {
code = pb.ErrorCode_SociatyNoFound
this.module.Error("公会未找到", log.Field{Key: "uid", Value: uid}, log.Field{Key: "sociatyId", Value: req.SociatyId})
return
}
if err := this.module.modelSociaty.applyCancel(uid, sociaty); err != nil {
code = pb.ErrorCode_DBError
this.module.Error("申请撤销",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "sociatyId", Value: req.SociatyId},
log.Field{Key: "err", Value: err.Error()},
)
return
}
rsp := &pb.SociatyApplyResp{
Uid: uid,
ScoiatyId: req.SociatyId,
}
if err := session.SendMsg(string(this.module.GetType()), SociatySubTypeApplyCanel, rsp); err != nil {
code = pb.ErrorCode_SystemError
}
return
}

View File

@ -48,7 +48,7 @@ func (this *ModelSys) validCond(uid string, condData *cfg.GameOpencondData) stri
} }
if user.Lv >= conf.Param { if user.Lv >= conf.Param {
flag = true flag = true
}else{ } else {
flag = false flag = false
} }
case 2: //关卡ID case 2: //关卡ID
@ -66,10 +66,10 @@ func (this *ModelSys) validCond(uid string, condData *cfg.GameOpencondData) stri
if v, ok := ex.Mline[1]; ok { if v, ok := ex.Mline[1]; ok {
if v >= conf.Param { if v >= conf.Param {
flag = true flag = true
}else{ } else {
flag = false flag = false
} }
}else{ } else {
flag = false flag = false
} }
@ -82,12 +82,13 @@ func (this *ModelSys) validCond(uid string, condData *cfg.GameOpencondData) stri
} }
if i, ok := module.(comm.IWorldtask); ok { if i, ok := module.(comm.IWorldtask); ok {
d := i.GetMyWorldtask(uid) d := i.GetMyWorldtask(uid)
if _, ok := d.LastTaskIds[conf.Param]; ok { for _, v := range d.LastTaskIds {
if v.TaskId >= conf.Param {
flag = true flag = true
}else{ continue
flag = false
} }
}else{ }
} else {
flag = false flag = false
} }
} }

View File

@ -2,7 +2,6 @@ package user
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
@ -17,21 +16,12 @@ func (this *apiComp) GetTujian(session comm.IUserSession, req *pb.UserGetTujianR
return return
} }
uid := session.GetUserId()
rsp := &pb.UserGetTujianResp{} rsp := &pb.UserGetTujianResp{}
if result, err := this.module.modelExpand.GetUserExpand(uid); err != nil { list := this.module.ModuleHero.GetHeroList(session.GetUserId())
this.module.Error("玩家扩展数据", for _, v := range list {
log.Field{Key: "uid", Value: uid}, rsp.Heroids = append(rsp.Heroids, v.HeroID)
log.Field{Key: "err", Value: err.Error()},
)
return
} else {
for k, v := range result.Tujian {
if v == 0 {
rsp.Heroids = append(rsp.Heroids, k)
}
}
} }
err := session.SendMsg(string(this.module.GetType()), UserGetTujianResp, rsp) err := session.SendMsg(string(this.module.GetType()), UserGetTujianResp, rsp)
if err != nil { if err != nil {
code = pb.ErrorCode_SystemError code = pb.ErrorCode_SystemError

View File

@ -97,7 +97,7 @@ func (this *User) OnInstallComp() {
this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
} }
//获取用户数据 // 获取用户数据
func (this *User) GetUser(uid string) (user *pb.DBUser) { func (this *User) GetUser(uid string) (user *pb.DBUser) {
var err error var err error
if this.IsCross() { if this.IsCross() {
@ -132,7 +132,7 @@ func (this *User) getRemoteUser(uid string) (*pb.DBUser, error) {
return reply, nil return reply, nil
} }
//获取用户会话 // 获取用户会话
func (this *User) GetUserSession(uid string) *pb.CacheUser { func (this *User) GetUserSession(uid string) *pb.CacheUser {
return this.modelSession.getUserSession(uid) return this.modelSession.getUserSession(uid)
} }
@ -211,7 +211,7 @@ func (this *User) CrossUserSession(uid string) *pb.CacheUser {
return cacheUser return cacheUser
} }
//跨服搜索用户 // 跨服搜索用户
func (this *User) CrossSearchUser(nickName string) ([]*pb.DBUser, error) { func (this *User) CrossSearchUser(nickName string) ([]*pb.DBUser, error) {
name := strings.TrimSpace(nickName) name := strings.TrimSpace(nickName)
if name == "" { if name == "" {
@ -236,7 +236,7 @@ func (this *User) SearchRmoteUser(nickname string) ([]*pb.DBUser, error) {
return reply.Users, nil return reply.Users, nil
} }
//查询用户属性值 例如 金币 经验 // 查询用户属性值 例如 金币 经验
func (this *User) QueryAttributeValue(uid string, attr string) (value int64) { func (this *User) QueryAttributeValue(uid string, attr string) (value int64) {
var ( var (
user *pb.DBUser user *pb.DBUser
@ -272,6 +272,8 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int64) {
return int64(userEx.Arenacoin) return int64(userEx.Arenacoin)
case comm.ResFriend: case comm.ResFriend:
return int64(userEx.FriendPoint) return int64(userEx.FriendPoint)
case comm.Moongold:
return int64(user.Moongold)
} }
return return
} }
@ -315,6 +317,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
Guildcoin: userEx.Guildcoin, Guildcoin: userEx.Guildcoin,
Arenacoin: userEx.Arenacoin, Arenacoin: userEx.Arenacoin,
Ps: user.Ps, Ps: user.Ps,
Moongold: user.Moongold,
} }
switch attr { switch attr {
@ -350,6 +353,14 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
} }
} }
change.Diamond += int64(add) change.Diamond += int64(add)
case comm.Moongold:
if add < 0 {
if user.Moongold+int32(add) < 0 {
code = pb.ErrorCode_UserMoongoldNoEnough
pb.ErrorCode_PayRenewTimeErr.Enum().Descriptor().ReservedNames()
}
}
change.Moongold += int32(add)
case comm.ResFriend: case comm.ResFriend:
if add < 0 { if add < 0 {
if userEx.FriendPoint+add < 0 { if userEx.FriendPoint+add < 0 {
@ -411,6 +422,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
comm.VipExp: change.Vipexp, comm.VipExp: change.Vipexp,
comm.StarCoin: change.Starcoin, comm.StarCoin: change.Starcoin,
comm.ResPs: change.Ps, comm.ResPs: change.Ps,
comm.Moongold: change.Moongold,
} }
//user ex //user ex
@ -433,7 +445,7 @@ func (this *User) change(session comm.IUserSession, attr string, add int32) (cha
return return
} }
//用户资源 // 用户资源
func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) { func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) {
var _change *pb.UserResChangedPush var _change *pb.UserResChangedPush
@ -452,7 +464,7 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add
return return
} }
//用户资源 // 用户资源
func (this *User) AddAttributeValues(session comm.IUserSession, attrs map[string]int32, bPush bool) (code pb.ErrorCode) { func (this *User) AddAttributeValues(session comm.IUserSession, attrs map[string]int32, bPush bool) (code pb.ErrorCode) {
for key, add := range attrs { for key, add := range attrs {
var _change *pb.UserResChangedPush var _change *pb.UserResChangedPush
@ -628,16 +640,18 @@ func (this *User) RpcQueryUser(ctx context.Context, req *pb.NameReq, reply *pb.U
} }
func (this *User) CheckTujianHero(session comm.IUserSession, heros []string) []bool { func (this *User) CheckTujianHero(session comm.IUserSession, heros []string) []bool {
sz := make([]bool, len(heros)) sz := make([]bool, len(heros))
index := 0
list := this.ModuleHero.GetHeroList(session.GetUserId())
for _, v1 := range heros {
for _, h := range list {
if v1 == h.HeroID {
sz[index] = true
index++
break
}
}
}
userEx, err := this.GetUserExpand(session.GetUserId())
if err != nil {
return sz
}
for i, heroid := range heros {
if _, ok := userEx.Tujian[heroid]; ok {
sz[i] = true
}
}
return sz return sz
} }

View File

@ -49,8 +49,8 @@ func (this *apiComp) Battlestart(session comm.IUserSession, req *pb.WorldtaskBat
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,
}) })

View File

@ -1292,6 +1292,224 @@ func (x *ArenaPlotRewardResp) GetNpc() map[int32]*DBNpc {
return nil return nil
} }
<<<<<<< HEAD
=======
//实时pvp推送
type ArenaRTimePvpPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RoomId string `protobuf:"bytes,1,opt,name=RoomId,proto3" json:"RoomId"`
ServicePath string `protobuf:"bytes,2,opt,name=servicePath,proto3" json:"servicePath"`
Info *BattleInfo `protobuf:"bytes,3,opt,name=info,proto3" json:"info"`
}
func (x *ArenaRTimePvpPush) Reset() {
*x = ArenaRTimePvpPush{}
if protoimpl.UnsafeEnabled {
mi := &file_arena_arena_msg_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ArenaRTimePvpPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ArenaRTimePvpPush) ProtoMessage() {}
func (x *ArenaRTimePvpPush) ProtoReflect() protoreflect.Message {
mi := &file_arena_arena_msg_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ArenaRTimePvpPush.ProtoReflect.Descriptor instead.
func (*ArenaRTimePvpPush) Descriptor() ([]byte, []int) {
return file_arena_arena_msg_proto_rawDescGZIP(), []int{24}
}
func (x *ArenaRTimePvpPush) GetRoomId() string {
if x != nil {
return x.RoomId
}
return ""
}
func (x *ArenaRTimePvpPush) GetServicePath() string {
if x != nil {
return x.ServicePath
}
return ""
}
func (x *ArenaRTimePvpPush) GetInfo() *BattleInfo {
if x != nil {
return x.Info
}
return nil
}
//实时pvp 指令请求
type ArenaRtPvpCmdReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RoomId string `protobuf:"bytes,1,opt,name=RoomId,proto3" json:"RoomId"`
CmdType string `protobuf:"bytes,2,opt,name=CmdType,proto3" json:"CmdType"`
Cmd []byte `protobuf:"bytes,3,opt,name=Cmd,proto3" json:"Cmd"`
}
func (x *ArenaRtPvpCmdReq) Reset() {
*x = ArenaRtPvpCmdReq{}
if protoimpl.UnsafeEnabled {
mi := &file_arena_arena_msg_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ArenaRtPvpCmdReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ArenaRtPvpCmdReq) ProtoMessage() {}
func (x *ArenaRtPvpCmdReq) ProtoReflect() protoreflect.Message {
mi := &file_arena_arena_msg_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ArenaRtPvpCmdReq.ProtoReflect.Descriptor instead.
func (*ArenaRtPvpCmdReq) Descriptor() ([]byte, []int) {
return file_arena_arena_msg_proto_rawDescGZIP(), []int{25}
}
func (x *ArenaRtPvpCmdReq) GetRoomId() string {
if x != nil {
return x.RoomId
}
return ""
}
func (x *ArenaRtPvpCmdReq) GetCmdType() string {
if x != nil {
return x.CmdType
}
return ""
}
func (x *ArenaRtPvpCmdReq) GetCmd() []byte {
if x != nil {
return x.Cmd
}
return nil
}
//实时pvp 指令请求回应
type ArenaRtPvpCmdResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsSucc bool `protobuf:"varint,1,opt,name=IsSucc,proto3" json:"IsSucc"`
}
func (x *ArenaRtPvpCmdResp) Reset() {
*x = ArenaRtPvpCmdResp{}
if protoimpl.UnsafeEnabled {
mi := &file_arena_arena_msg_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ArenaRtPvpCmdResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ArenaRtPvpCmdResp) ProtoMessage() {}
func (x *ArenaRtPvpCmdResp) ProtoReflect() protoreflect.Message {
mi := &file_arena_arena_msg_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ArenaRtPvpCmdResp.ProtoReflect.Descriptor instead.
func (*ArenaRtPvpCmdResp) Descriptor() ([]byte, []int) {
return file_arena_arena_msg_proto_rawDescGZIP(), []int{26}
}
func (x *ArenaRtPvpCmdResp) GetIsSucc() bool {
if x != nil {
return x.IsSucc
}
return false
}
//实时Pvp 指令推送
type ArenaRtPvpCmdPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ArenaRtPvpCmdPush) Reset() {
*x = ArenaRtPvpCmdPush{}
if protoimpl.UnsafeEnabled {
mi := &file_arena_arena_msg_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ArenaRtPvpCmdPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ArenaRtPvpCmdPush) ProtoMessage() {}
func (x *ArenaRtPvpCmdPush) ProtoReflect() protoreflect.Message {
mi := &file_arena_arena_msg_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ArenaRtPvpCmdPush.ProtoReflect.Descriptor instead.
func (*ArenaRtPvpCmdPush) Descriptor() ([]byte, []int) {
return file_arena_arena_msg_proto_rawDescGZIP(), []int{27}
}
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
var File_arena_arena_msg_proto protoreflect.FileDescriptor var File_arena_arena_msg_proto protoreflect.FileDescriptor
var file_arena_arena_msg_proto_rawDesc = []byte{ var file_arena_arena_msg_proto_rawDesc = []byte{
@ -1406,8 +1624,29 @@ var file_arena_arena_msg_proto_rawDesc = []byte{
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06,
0x2e, 0x44, 0x42, 0x4e, 0x70, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x2e, 0x44, 0x42, 0x4e, 0x70, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
<<<<<<< HEAD
0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33, 0x33,
=======
0x01, 0x22, 0x6e, 0x0a, 0x11, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x54, 0x69, 0x6d, 0x65, 0x50,
0x76, 0x70, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x20,
0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x22, 0x56, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x74, 0x50, 0x76, 0x70, 0x43,
0x6d, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x43, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x43, 0x6d, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6d, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x43, 0x6d, 0x64, 0x22, 0x2b, 0x0a, 0x11, 0x41, 0x72, 0x65,
0x6e, 0x61, 0x52, 0x74, 0x50, 0x76, 0x70, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16,
0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52,
0x74, 0x50, 0x76, 0x70, 0x43, 0x6d, 0x64, 0x50, 0x75, 0x73, 0x68, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
} }
var ( var (
@ -1422,7 +1661,11 @@ func file_arena_arena_msg_proto_rawDescGZIP() []byte {
return file_arena_arena_msg_proto_rawDescData return file_arena_arena_msg_proto_rawDescData
} }
<<<<<<< HEAD
var file_arena_arena_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_arena_arena_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
=======
var file_arena_arena_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
var file_arena_arena_msg_proto_goTypes = []interface{}{ var file_arena_arena_msg_proto_goTypes = []interface{}{
(*ArenaInfoReq)(nil), // 0: ArenaInfoReq (*ArenaInfoReq)(nil), // 0: ArenaInfoReq
(*ArenaInfoResp)(nil), // 1: ArenaInfoResp (*ArenaInfoResp)(nil), // 1: ArenaInfoResp
@ -1448,6 +1691,7 @@ var file_arena_arena_msg_proto_goTypes = []interface{}{
(*ArenaPlotResp)(nil), // 21: ArenaPlotResp (*ArenaPlotResp)(nil), // 21: ArenaPlotResp
(*ArenaPlotRewardReq)(nil), // 22: ArenaPlotRewardReq (*ArenaPlotRewardReq)(nil), // 22: ArenaPlotRewardReq
(*ArenaPlotRewardResp)(nil), // 23: ArenaPlotRewardResp (*ArenaPlotRewardResp)(nil), // 23: ArenaPlotRewardResp
<<<<<<< HEAD
nil, // 24: ArenaPlotRewardResp.NpcEntry nil, // 24: ArenaPlotRewardResp.NpcEntry
(*DBArenaUser)(nil), // 25: DBArenaUser (*DBArenaUser)(nil), // 25: DBArenaUser
(*ArenaPlayer)(nil), // 26: ArenaPlayer (*ArenaPlayer)(nil), // 26: ArenaPlayer
@ -1478,6 +1722,43 @@ var file_arena_arena_msg_proto_depIdxs = []int32{
15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee 15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name 0, // [0:15] is the sub-list for field type_name
=======
(*ArenaRTimePvpPush)(nil), // 24: ArenaRTimePvpPush
(*ArenaRtPvpCmdReq)(nil), // 25: ArenaRtPvpCmdReq
(*ArenaRtPvpCmdResp)(nil), // 26: ArenaRtPvpCmdResp
(*ArenaRtPvpCmdPush)(nil), // 27: ArenaRtPvpCmdPush
nil, // 28: ArenaPlotRewardResp.NpcEntry
(*DBArenaUser)(nil), // 29: DBArenaUser
(*ArenaPlayer)(nil), // 30: ArenaPlayer
(*BattleFormation)(nil), // 31: BattleFormation
(ErrorCode)(0), // 32: ErrorCode
(*BattleInfo)(nil), // 33: BattleInfo
(*BattleReport)(nil), // 34: BattleReport
(*DBNpc)(nil), // 35: DBNpc
}
var file_arena_arena_msg_proto_depIdxs = []int32{
29, // 0: ArenaInfoResp.info:type_name -> DBArenaUser
29, // 1: ArenaOtherInfoResp.info:type_name -> DBArenaUser
30, // 2: ArenaMatcheResp.players:type_name -> ArenaPlayer
31, // 3: ArenaChallengeReq.battle:type_name -> BattleFormation
32, // 4: ArenaChallengeResp.code:type_name -> ErrorCode
33, // 5: ArenaChallengeResp.info:type_name -> BattleInfo
34, // 6: ArenaChallengeRewardReq.report:type_name -> BattleReport
30, // 7: ArenaRankResp.players:type_name -> ArenaPlayer
29, // 8: ArenaRankResp.info:type_name -> DBArenaUser
31, // 9: ArenaPlotReq.battle:type_name -> BattleFormation
32, // 10: ArenaPlotResp.code:type_name -> ErrorCode
33, // 11: ArenaPlotResp.info:type_name -> BattleInfo
34, // 12: ArenaPlotRewardReq.report:type_name -> BattleReport
28, // 13: ArenaPlotRewardResp.npc:type_name -> ArenaPlotRewardResp.NpcEntry
33, // 14: ArenaRTimePvpPush.info:type_name -> BattleInfo
35, // 15: ArenaPlotRewardResp.NpcEntry.value:type_name -> DBNpc
16, // [16:16] is the sub-list for method output_type
16, // [16:16] is the sub-list for method input_type
16, // [16:16] is the sub-list for extension type_name
16, // [16:16] is the sub-list for extension extendee
0, // [0:16] is the sub-list for field type_name
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
} }
func init() { file_arena_arena_msg_proto_init() } func init() { file_arena_arena_msg_proto_init() }
@ -1777,6 +2058,57 @@ func file_arena_arena_msg_proto_init() {
return nil return nil
} }
} }
<<<<<<< HEAD
=======
file_arena_arena_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ArenaRTimePvpPush); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_arena_arena_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ArenaRtPvpCmdReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_arena_arena_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ArenaRtPvpCmdResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_arena_arena_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ArenaRtPvpCmdPush); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -1784,7 +2116,11 @@ func file_arena_arena_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_arena_arena_msg_proto_rawDesc, RawDescriptor: file_arena_arena_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
<<<<<<< HEAD
NumMessages: 25, NumMessages: 25,
=======
NumMessages: 29,
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -69,6 +69,7 @@ const (
ErrorCode_UserArenaCoinNoEnough ErrorCode = 1016 //竞技场币不足 ErrorCode_UserArenaCoinNoEnough ErrorCode = 1016 //竞技场币不足
ErrorCode_UserVitNoEnough ErrorCode = 1017 //体力不足 ErrorCode_UserVitNoEnough ErrorCode = 1017 //体力不足
ErrorCode_UserVitLimit ErrorCode = 1018 //体力达到最大上限 ErrorCode_UserVitLimit ErrorCode = 1018 //体力达到最大上限
ErrorCode_UserMoongoldNoEnough ErrorCode = 1019 //纯净月髓不足
// friend // friend
ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己 ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己
ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量 ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量
@ -355,6 +356,7 @@ var (
1016: "UserArenaCoinNoEnough", 1016: "UserArenaCoinNoEnough",
1017: "UserVitNoEnough", 1017: "UserVitNoEnough",
1018: "UserVitLimit", 1018: "UserVitLimit",
1019: "UserMoongoldNoEnough",
1100: "FriendNotSelf", 1100: "FriendNotSelf",
1101: "FriendSelfMax", 1101: "FriendSelfMax",
1102: "FriendTargetMax", 1102: "FriendTargetMax",
@ -609,6 +611,7 @@ var (
"UserArenaCoinNoEnough": 1016, "UserArenaCoinNoEnough": 1016,
"UserVitNoEnough": 1017, "UserVitNoEnough": 1017,
"UserVitLimit": 1018, "UserVitLimit": 1018,
"UserMoongoldNoEnough": 1019,
"FriendNotSelf": 1100, "FriendNotSelf": 1100,
"FriendSelfMax": 1101, "FriendSelfMax": 1101,
"FriendTargetMax": 1102, "FriendTargetMax": 1102,
@ -851,7 +854,11 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
<<<<<<< HEAD
0x6f, 0x2a, 0xbc, 0x2d, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0xbc, 0x2d, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
=======
0x6f, 0x2a, 0xa6, 0x2d, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -907,172 +914,146 @@ var file_errorcode_proto_rawDesc = []byte{
0x69, 0x6e, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf8, 0x07, 0x12, 0x14, 0x0a, 0x69, 0x6e, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf8, 0x07, 0x12, 0x14, 0x0a,
0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x74, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68,
0x10, 0xf9, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x74, 0x4c, 0x69, 0x10, 0xf9, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x74, 0x4c, 0x69,
0x6d, 0x69, 0x74, 0x10, 0xfa, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6d, 0x69, 0x74, 0x10, 0xfa, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f,
0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xfb,
0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x53, 0x65,
0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53,
0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x72, 0x69,
0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x10, 0xce, 0x08, 0x12,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x6f, 0x44,
0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd0, 0x08, 0x12,
0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, 0x10, 0xd1, 0x08, 0x12,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x59, 0x65,
0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, 0x08, 0x12, 0x19, 0x0a,
0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61,
0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65,
0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd5, 0x08, 0x12,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4d, 0x61,
0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xd7, 0x08,
0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x65, 0x64, 0x10,
0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72,
0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72,
0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xda, 0x08, 0x12, 0x15,
0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x6d,
0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e,
0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, 0x12, 0x12, 0x0a, 0x0d,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xb0, 0x09,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64,
0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73,
0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, 0x09, 0x12,
0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75,
0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74,
0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
0xb5, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x75, 0x79, 0x50, 0x73, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73,
0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xb6, 0x09, 0x12, 0x10, 0x0a, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5, 0x09, 0x12, 0x19, 0x0a,
0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x94, 0x0a, 0x12, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x75, 0x79, 0x50, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72,
0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xb6, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f,
0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65,
0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x72, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a,
0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a,
0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97,
0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72,
0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c,
0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72,
0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12,
0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74,
0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e,
0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11,
0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d,
0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10,
0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55,
0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f,
0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a,
0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a,
0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a,
0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65,
0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74,
0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f,
0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65,
0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12,
0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70,
0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c,
0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44,
0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4b, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61,
0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xac, 0x0a, 0x12, 0x13, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48,
0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75,
0x10, 0xad, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xac, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72,
0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xad, 0x0a, 0x12, 0x1e,
0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75,
0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c,
0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d,
0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x12, 0x14, 0x0a, 0x0f,
0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57, 0x6f, 0x72, 0x6e, 0x10,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e,
0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12, 0x1b, 0x0a, 0x16, 0x4d,
0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68,
0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd, 0x0b, 0x12,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xdf, 0x0b,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x4d,
0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52,
0x68, 0x53, 0x74, 0x61, 0x72, 0x10, 0xe2, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e,
0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, 0x61, 0x72,
0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x10, 0xe2, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10,
0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69,
0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63,
0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64,
0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76,
0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7,
0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45,
0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49,
0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73,
0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12,
0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f,
0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53,
0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61,
0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61,
0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72,
0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e,
0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16,
0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e,
0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72,
0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f,
0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55,
0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61,
0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63,
0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65,
0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10, 0x12, 0x12, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5,
0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c,
0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61,
0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a,
0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x9c, 0x11, 0x12, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74,
0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52,
0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74,
0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d,
0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e,
0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61,
0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16,
0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f,
0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69,
0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a,
0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d,
0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65,
0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74,
0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11,
0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55,
0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74,
0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4,
0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xe5, 0x12, 0x12, 0x16,
0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x4a,
0x6f, 0x69, 0x6e, 0x10, 0xe6, 0x12, 0x12, 0x20, 0x0a, 0x1b, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61,
0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x62, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x73, 0x10, 0xe7, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10,
0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x17,
0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x4f, 0x70,
0x65, 0x6e, 0x10, 0xac, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10,
0xad, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45,
0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d,
0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
<<<<<<< HEAD
0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x6f,
0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x91, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x91,
0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4c, 0x76, 0x45, 0x72, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4c, 0x76, 0x45, 0x72,
@ -1216,6 +1197,177 @@ var file_errorcode_proto_rawDesc = []byte{
0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
=======
0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12,
0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f,
0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66,
0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12,
0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16,
0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xe5, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0xe6,
0x12, 0x12, 0x20, 0x0a, 0x1b, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79,
0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73,
0x10, 0xe7, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46,
0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a,
0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x4c, 0x69, 0x6e,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10,
0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72,
0x10, 0xab, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xac, 0x14,
0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65,
0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xad, 0x14, 0x12, 0x11, 0x0a,
0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15,
0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54,
0x79, 0x70, 0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e,
0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12,
0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x12, 0x1c,
0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c,
0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x91, 0x15, 0x12, 0x11, 0x0a, 0x0c,
0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x97, 0x15, 0x12,
0x14, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79,
0x70, 0x65, 0x10, 0x98, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74,
0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x99, 0x15, 0x12, 0x1d,
0x0a, 0x18, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9a, 0x15, 0x12, 0x1c, 0x0a,
0x17, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9b, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x4c,
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xf1, 0x15, 0x12, 0x12,
0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10,
0xf2, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74,
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf3, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69,
0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf4, 0x15, 0x12, 0x14,
0x0a, 0x0f, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72,
0x64, 0x10, 0xf5, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46,
0x65, 0x74, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64,
0x10, 0xf6, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72,
0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10,
0xf7, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69,
0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x16, 0x12,
0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xd6,
0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f,
0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63,
0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x10, 0xba, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, 0x12, 0x13, 0x0a, 0x0e,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0xbc,
0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x64,
0x64, 0x65, 0x64, 0x10, 0xbd, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, 0x17, 0x12, 0x11, 0x0a,
0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 0x10, 0xc0, 0x17,
0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x66, 0x75, 0x73,
0x65, 0x10, 0xc1, 0x17, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c,
0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0xba, 0xea, 0x01, 0x12, 0x19, 0x0a, 0x13,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x44,
0x69, 0x73, 0x73, 0x10, 0xbb, 0xea, 0x01, 0x12, 0x17, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xbc, 0xea, 0x01,
0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69,
0x6e, 0x67, 0x10, 0xbd, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x75, 0x73, 0x65, 0x10, 0xbe, 0xea, 0x01, 0x12, 0x11, 0x0a,
0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xbf, 0xea, 0x01,
0x12, 0x13, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65,
0x64, 0x10, 0xc0, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc1, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xc2,
0xea, 0x01, 0x12, 0x18, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x6c,
0x66, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xc3, 0xea, 0x01, 0x12, 0x1d, 0x0a, 0x17,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc4, 0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x10, 0xc5, 0xea, 0x01, 0x12, 0x1a, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69,
0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x10, 0xc6, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xc7, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x6f, 0x10, 0xc9,
0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70,
0x6c, 0x69, 0x65, 0x64, 0x10, 0xca, 0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69,
0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67,
0x68, 0x10, 0xcb, 0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x54, 0x61, 0x73, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xcc,
0xea, 0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x74,
0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xcd, 0xea,
0x01, 0x12, 0x1c, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, 0x74,
0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xce, 0xea, 0x01, 0x12,
0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73,
0x73, 0x65, 0x64, 0x10, 0xcf, 0xea, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xd0, 0xea, 0x01, 0x12,
0x1a, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x4e, 0x6f,
0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0xd1, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0xd2,
0xea, 0x01, 0x12, 0x18, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46,
0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd3, 0xea, 0x01, 0x12, 0x1c, 0x0a, 0x16,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4e, 0x6f,
0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xd4, 0xea, 0x01, 0x12, 0x19, 0x0a, 0x13, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4e, 0x6f, 0x69, 0x6e, 0x69,
0x74, 0x10, 0xd5, 0xea, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x53, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x64, 0x10, 0xd6, 0xea, 0x01, 0x12, 0x17, 0x0a,
0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x65, 0x61, 0x6d, 0x55, 0x6e, 0x6c, 0x6f,
0x63, 0x6b, 0x10, 0xd7, 0xea, 0x01, 0x12, 0x18, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xd8, 0xea, 0x01,
0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e,
0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xd9, 0xea, 0x01, 0x12, 0x19, 0x0a,
0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x10, 0xda, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e,
0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, 0x10, 0x9d, 0x18, 0x12,
0x19, 0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f,
0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x72,
0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, 0x49, 0x6e, 0x43, 0x64,
0x10, 0x9f, 0x18, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70,
0x65, 0x61, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, 0x12, 0x0a, 0x0d, 0x54,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0x82, 0x19, 0x12,
0x19, 0x0a, 0x14, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x65,
0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61,
0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x84,
0x19, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78,
0x10, 0xe5, 0x19, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c,
0x4d, 0x61, 0x78, 0x10, 0xe6, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d,
0x61, 0x78, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe7, 0x19, 0x12, 0x16,
0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x10, 0xe8, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x52,
0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x19,
0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4e, 0x6f, 0x74,
0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12, 0x19, 0x0a, 0x14, 0x48,
0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x43, 0x44, 0x4e, 0x6f,
0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c,
0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xad, 0x1b, 0x12, 0x17,
0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x6e, 0x65, 0x77,
0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56, 0x69, 0x70, 0x4c, 0x76,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x47,
0x69, 0x66, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56,
0x69, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, 0xb1, 0x1b, 0x12, 0x14,
0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76,
0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b,
0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12, 0x17, 0x0a,
0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52, 0x65, 0x6e,
0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x16, 0x0a, 0x11,
0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73,
0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f,
0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61,
0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a,
0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64,
0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c,
0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55,
0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1b, 0x0a, 0x16,
0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
0x4e, 0x6f, 0x73, 0x61, 0x6d, 0x65, 0x10, 0xdf, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61,
0x64, 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74,
0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f,
0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74,
0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
>>>>>>> 14d69fdd11a16b463c659ef89af1683c8c04e043
} }
var ( var (

View File

@ -388,6 +388,7 @@ type DBHeroRecord struct {
Onebuy int32 `protobuf:"varint,11,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数 Onebuy int32 `protobuf:"varint,11,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数
Tenbuy int32 `protobuf:"varint,12,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数 Tenbuy int32 `protobuf:"varint,12,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数
Inevitable int32 `protobuf:"varint,13,opt,name=inevitable,proto3" json:"inevitable"` //第2-30次抽奖必出一个5星英雄 Inevitable int32 `protobuf:"varint,13,opt,name=inevitable,proto3" json:"inevitable"` //第2-30次抽奖必出一个5星英雄
Inevitable1 int32 `protobuf:"varint,14,opt,name=inevitable1,proto3" json:"inevitable1"` //第30-50次抽奖必出一个5星英雄
} }
func (x *DBHeroRecord) Reset() { func (x *DBHeroRecord) Reset() {
@ -513,6 +514,13 @@ func (x *DBHeroRecord) GetInevitable() int32 {
return 0 return 0
} }
func (x *DBHeroRecord) GetInevitable1() int32 {
if x != nil {
return x.Inevitable1
}
return 0
}
// 英雄天赋系统 // 英雄天赋系统
type DBHeroTalent struct { type DBHeroTalent struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -693,7 +701,7 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb2, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
@ -718,31 +726,33 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x12, 0x1e, 0x0a, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x12, 0x1e, 0x0a,
0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x3c, 0x0a, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a,
0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x31, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x31, 0x1a,
0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a,
0x0e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c,
0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72,
0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c,
0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x2f, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65,
0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10,
0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
0x38, 0x01, 0x2a, 0x2f, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12,
0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e, 0x67, 0x46,
0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
} }
var ( var (

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -130,6 +130,7 @@ type DBUser struct {
Bgp string `protobuf:"bytes,24,opt,name=bgp,proto3" json:"bgp" bson:"bgp"` //背景 Bgp string `protobuf:"bytes,24,opt,name=bgp,proto3" json:"bgp" bson:"bgp"` //背景
Ps int32 `protobuf:"varint,25,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 Ps int32 `protobuf:"varint,25,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力
LastRecoverPsSec int64 `protobuf:"varint,26,opt,name=lastRecoverPsSec,proto3" json:"lastRecoverPsSec" bson:"lastRecoverPsSec"` // 上次体会恢复时间 LastRecoverPsSec int64 `protobuf:"varint,26,opt,name=lastRecoverPsSec,proto3" json:"lastRecoverPsSec" bson:"lastRecoverPsSec"` // 上次体会恢复时间
Moongold int32 `protobuf:"varint,27,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓
} }
func (x *DBUser) Reset() { func (x *DBUser) Reset() {
@ -346,6 +347,13 @@ func (x *DBUser) GetLastRecoverPsSec() int64 {
return 0 return 0
} }
func (x *DBUser) GetMoongold() int32 {
if x != nil {
return x.Moongold
}
return 0
}
type DBUserSetting struct { type DBUserSetting struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -598,8 +606,8 @@ var file_user_user_db_proto_rawDesc = []byte{
0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0xee, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x8a,
0x04, 0x0a, 0x06, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75,
0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12,
@ -637,39 +645,41 @@ var file_user_user_db_proto_rawDesc = []byte{
0x62, 0x67, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x62, 0x67, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x70, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x02, 0x70, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76,
0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c,
0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x22, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x12,
0xc7, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28,
0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x05, 0x52, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x22, 0xc7, 0x02, 0x0a, 0x0d,
0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18, 0x03, 0x20, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a,
0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6f, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a,
0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x61, 0x6f, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67,
0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18, 0x06, 0x20, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e,
0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e,
0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07,
0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66,
0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x75, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01,
0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18, 0x0b, 0x20, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62,
0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12,
0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x75, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52,
0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f,
0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e,
0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d,
0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xa2, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12,
0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xa2, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e,
0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03,
0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c,
0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x54, 0x69, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x03, 0x63, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20,
0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -594,6 +594,7 @@ type UserResChangedPush struct {
Guildcoin int32 `protobuf:"varint,7,opt,name=guildcoin,proto3" json:"guildcoin" bson:"guildcoin"` //公会币 Guildcoin int32 `protobuf:"varint,7,opt,name=guildcoin,proto3" json:"guildcoin" bson:"guildcoin"` //公会币
Arenacoin int32 `protobuf:"varint,8,opt,name=arenacoin,proto3" json:"arenacoin" bson:"arenacoin"` //竞技场币 Arenacoin int32 `protobuf:"varint,8,opt,name=arenacoin,proto3" json:"arenacoin" bson:"arenacoin"` //竞技场币
Ps int32 `protobuf:"varint,9,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 Ps int32 `protobuf:"varint,9,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力
Moongold int32 `protobuf:"varint,10,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓
} }
func (x *UserResChangedPush) Reset() { func (x *UserResChangedPush) Reset() {
@ -691,6 +692,13 @@ func (x *UserResChangedPush) GetPs() int32 {
return 0 return 0
} }
func (x *UserResChangedPush) GetMoongold() int32 {
if x != nil {
return x.Moongold
}
return 0
}
// 玩家在其它终端登录的通知 // 玩家在其它终端登录的通知
type UserOtherTermLoginPush struct { type UserOtherTermLoginPush struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -2511,7 +2519,7 @@ var file_user_user_msg_proto_rawDesc = []byte{
0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e,
0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0xec, 0x01, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x88, 0x02,
0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x03, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x28, 0x03, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18,
@ -2526,127 +2534,129 @@ var file_user_user_msg_proto_rawDesc = []byte{
0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c,
0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02,
0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08,
0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x69, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x75,
0x50, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x13, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x50, 0x73, 0x43, 0x68,
0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18,
0x65, 0x71, 0x22, 0x3e, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x73, 0x65,
0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x22, 0x3e,
0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18,
0x6e, 0x67, 0x22, 0x40, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65,
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x40,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74,
0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72,
0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65,
0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55,
0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x22, 0x26,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55, 0x73, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65,
0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
0x65, 0x22, 0x24, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73,
0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66,
0x22, 0x50, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x12,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31,
0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74,
0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49,
0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61,
0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x55, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61,
0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x71, 0x12, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61,
0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x4d,
0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x62,
0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x67, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62,
0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x49, 0x64, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49,
0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x31,
0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75,
0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49,
0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66,
0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66,
0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66,
0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47,
0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55,
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x22, 0x47, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70,
0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x11, 0x55, 0x73,
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x65, 0x72, 0x4c, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12,
0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x54, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x56, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
0x69, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x02, 0x6c, 0x76, 0x22, 0x54, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x43, 0x68,
0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x76,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x22, 0x27, 0x0a, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x69, 0x70,
0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x18, 0x03, 0x20, 0x01,
0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65,
0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x26, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12,
0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69,
0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x67, 0x6e, 0x22, 0x26, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x75, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74,
0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04,
0x02, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55,
0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x02, 0x65, 0x78, 0x18,
0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78,
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x6f,
0x6f, 0x72, 0x64, 0x52, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
0x64, 0x12, 0x34, 0x0a, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6e, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a,
0x74, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04,
0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63,
0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0c, 0x76, 0x69, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63,
0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x55, 0x73, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69,
0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x02, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a,
0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52,
0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x10, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f,
0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x01, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a,
0x22, 0x32, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e,
0x0b, 0x32, 0x0a, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20,
0x73, 0x65, 0x72, 0x73, 0x22, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x22, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74,
0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x22, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73,
0x3a, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65,
0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, 0x15, 0x55,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x0d, 0x0a, 0x0b, 0x55, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x43, 0x0a, 0x0c, 0x55, 0x73, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74,
0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x0d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53,
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x43, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69,
0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x42, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64,
0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -33,7 +33,7 @@ type DBUserExpand struct {
InitdataCount uint32 `protobuf:"varint,5,opt,name=initdataCount,proto3" json:"initdataCount"` //今日初始累计次数 InitdataCount uint32 `protobuf:"varint,5,opt,name=initdataCount,proto3" json:"initdataCount"` //今日初始累计次数
Chatchannel int32 `protobuf:"varint,6,opt,name=chatchannel,proto3" json:"chatchannel"` //跨服聊天频道 Chatchannel int32 `protobuf:"varint,6,opt,name=chatchannel,proto3" json:"chatchannel"` //跨服聊天频道
ModifynameCount int32 `protobuf:"varint,7,opt,name=modifynameCount,proto3" json:"modifynameCount"` //修改昵称次数 ModifynameCount int32 `protobuf:"varint,7,opt,name=modifynameCount,proto3" json:"modifynameCount"` //修改昵称次数
Tujian map[string]int32 `protobuf:"bytes,8,rep,name=tujian,proto3" json:"tujian" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //图鉴 //map<string, int32> tujian = 8; //图鉴
Activeday int32 `protobuf:"varint,11,opt,name=activeday,proto3" json:"activeday"` //日活跃度 Activeday int32 `protobuf:"varint,11,opt,name=activeday,proto3" json:"activeday"` //日活跃度
Activeweek int32 `protobuf:"varint,12,opt,name=activeweek,proto3" json:"activeweek"` //周活跃度 Activeweek int32 `protobuf:"varint,12,opt,name=activeweek,proto3" json:"activeweek"` //周活跃度
Sign string `protobuf:"bytes,13,opt,name=sign,proto3" json:"sign"` //用户签名 Sign string `protobuf:"bytes,13,opt,name=sign,proto3" json:"sign"` //用户签名
@ -55,7 +55,7 @@ type DBUserExpand struct {
Recovertimeunifiedticket int64 `protobuf:"varint,31,opt,name=recovertimeunifiedticket,proto3" json:"recovertimeunifiedticket"` //@go_tags(`bson:"recovertimeunifiedticket"`)同意门票恢复时间 Recovertimeunifiedticket int64 `protobuf:"varint,31,opt,name=recovertimeunifiedticket,proto3" json:"recovertimeunifiedticket"` //@go_tags(`bson:"recovertimeunifiedticket"`)同意门票恢复时间
SociatyTicketBuyNum int32 `protobuf:"varint,32,opt,name=sociatyTicketBuyNum,proto3" json:"sociatyTicketBuyNum" bson:"sociatyTicketBuyNum"` //公会boss挑战券购买次数 SociatyTicketBuyNum int32 `protobuf:"varint,32,opt,name=sociatyTicketBuyNum,proto3" json:"sociatyTicketBuyNum" bson:"sociatyTicketBuyNum"` //公会boss挑战券购买次数
SociatyTicket int32 `protobuf:"varint,33,opt,name=sociatyTicket,proto3" json:"sociatyTicket" bson:"sociatyTicket"` //公会boss挑战券数量 SociatyTicket int32 `protobuf:"varint,33,opt,name=sociatyTicket,proto3" json:"sociatyTicket" bson:"sociatyTicket"` //公会boss挑战券数量
Mline map[int32]int32 `protobuf:"bytes,34,rep,name=mline,proto3" json:"mline" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"mline"` //主线关卡最大进度 Mline map[int32]int32 `protobuf:"bytes,34,rep,name=mline,proto3" json:"mline" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"mline"` //主线关卡最大进度 key难度val是关卡ID
} }
func (x *DBUserExpand) Reset() { func (x *DBUserExpand) Reset() {
@ -139,13 +139,6 @@ func (x *DBUserExpand) GetModifynameCount() int32 {
return 0 return 0
} }
func (x *DBUserExpand) GetTujian() map[string]int32 {
if x != nil {
return x.Tujian
}
return nil
}
func (x *DBUserExpand) GetActiveday() int32 { func (x *DBUserExpand) GetActiveday() int32 {
if x != nil { if x != nil {
return x.Activeday return x.Activeday
@ -304,7 +297,7 @@ var File_userexpand_proto protoreflect.FileDescriptor
var file_userexpand_proto_rawDesc = []byte{ var file_userexpand_proto_rawDesc = []byte{
0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0xee, 0x09, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x74, 0x6f, 0x22, 0x80, 0x09, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70,
0x61, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61,
@ -320,71 +313,64 @@ var file_userexpand_proto_rawDesc = []byte{
0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66,
0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x64, 0x61, 0x79, 0x18, 0x0b,
0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x64, 0x61, 0x79, 0x12,
0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x75, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x0c, 0x20,
0x6a, 0x69, 0x61, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x64, 0x61, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x65, 0x65, 0x6b, 0x12,
0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x64, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73,
0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x65, 0x65, 0x6b, 0x69, 0x67, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69,
0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x65, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50,
0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x72,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x69, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x66,
0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x44, 0x18, 0x10, 0x20, 0x01,
0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f,
0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x24, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x75,
0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x44, 0x18, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41,
0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x64, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
0x6e, 0x74, 0x4f, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e,
0x69, 0x6e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x6f, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49,
0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73,
0x74, 0x69, 0x6e, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49, 0x64,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49,
0x49, 0x64, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x48, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x64, 0x18, 0x18,
0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x64, 0x12,
0x79, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x19, 0x20, 0x01,
0x74, 0x79, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a,
0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05,
0x43, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70,
0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x18, 0x1b, 0x20,
0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79,
0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x6e, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62,
0x0a, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x75, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03,
0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x13, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x4c, 0x61, 0x73,
0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x75, 0x79, 0x75, 0x6e, 0x69, 0x66,
0x61, 0x6c, 0x62, 0x75, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52,
0x01, 0x28, 0x03, 0x52, 0x13, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x10, 0x62, 0x75, 0x79, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65,
0x4c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x75, 0x79, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69,
0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03,
0x28, 0x05, 0x52, 0x10, 0x62, 0x75, 0x79, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65,
0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x76,
0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1e, 0x20, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63,
0x01, 0x28, 0x03, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x6b, 0x65, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x76,
0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x72, 0x65, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x74, 0x69, 0x63,
0x63, 0x6f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69,
0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x72, 0x65, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05,
0x63, 0x6f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x13, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42,
0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x20, 0x20, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x6f,
0x01, 0x28, 0x05, 0x52, 0x13, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x6d,
0x65, 0x74, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f, 0x63, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x55,
0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x45,
0x0d, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2e, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x4d,
0x0a, 0x05, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x4d, 0x6c, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x39, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x4d, 0x6c, 0x69,
0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
} }
var ( var (
@ -399,20 +385,18 @@ func file_userexpand_proto_rawDescGZIP() []byte {
return file_userexpand_proto_rawDescData return file_userexpand_proto_rawDescData
} }
var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_userexpand_proto_goTypes = []interface{}{ var file_userexpand_proto_goTypes = []interface{}{
(*DBUserExpand)(nil), // 0: DBUserExpand (*DBUserExpand)(nil), // 0: DBUserExpand
nil, // 1: DBUserExpand.TujianEntry nil, // 1: DBUserExpand.MlineEntry
nil, // 2: DBUserExpand.MlineEntry
} }
var file_userexpand_proto_depIdxs = []int32{ var file_userexpand_proto_depIdxs = []int32{
1, // 0: DBUserExpand.tujian:type_name -> DBUserExpand.TujianEntry 1, // 0: DBUserExpand.mline:type_name -> DBUserExpand.MlineEntry
2, // 1: DBUserExpand.mline:type_name -> DBUserExpand.MlineEntry 1, // [1:1] is the sub-list for method output_type
2, // [2:2] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type
2, // [2:2] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee
2, // [2:2] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name
0, // [0:2] is the sub-list for field type_name
} }
func init() { file_userexpand_proto_init() } func init() { file_userexpand_proto_init() }
@ -440,7 +424,7 @@ func file_userexpand_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_userexpand_proto_rawDesc, RawDescriptor: file_userexpand_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 3, NumMessages: 2,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

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

@ -143,6 +143,8 @@ type GameGlobalData struct {
DrawCardRechargeReward []int32 DrawCardRechargeReward []int32
DrawCardRegressionReward []int32 DrawCardRegressionReward []int32
DrawCard5StarsInRange []int32 DrawCard5StarsInRange []int32
DrawCard5StarsInRange1 []int32
DrawCard5StarsInRange1Pool string
DrawCardContinuousRestrictionStar5 int32 DrawCardContinuousRestrictionStar5 int32
DrawCardContinuousRestrictionCamp int32 DrawCardContinuousRestrictionCamp int32
EquipmentConsumption []int32 EquipmentConsumption []int32
@ -169,6 +171,9 @@ type GameGlobalData struct {
GuildBossTroop2 int32 GuildBossTroop2 int32
GuildBossTroop3 int32 GuildBossTroop3 int32
Zhayantime float32 Zhayantime float32
RotateAngle float32
RotateDizzyTime float32
Moonshopmoney []int32
} }
const TypeId_GameGlobalData = 477542761 const TypeId_GameGlobalData = 477542761
@ -622,6 +627,21 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["DrawCard_5StarsInRange1"].([]interface{}); !_ok_ { err = errors.New("DrawCard_5StarsInRange1 error"); return }
_v.DrawCard5StarsInRange1 = 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.DrawCard5StarsInRange1 = append(_v.DrawCard5StarsInRange1, _list_v_)
}
}
{ var _ok_ bool; if _v.DrawCard5StarsInRange1Pool, _ok_ = _buf["DrawCard_5StarsInRange1_pool"].(string); !_ok_ { err = errors.New("DrawCard_5StarsInRange1_pool error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Star5"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Star5 error"); return }; _v.DrawCardContinuousRestrictionStar5 = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Star5"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Star5 error"); return }; _v.DrawCardContinuousRestrictionStar5 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Camp"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Camp error"); return }; _v.DrawCardContinuousRestrictionCamp = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Camp"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Camp error"); return }; _v.DrawCardContinuousRestrictionCamp = int32(_tempNum_) }
{ {
@ -700,6 +720,22 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["GuildBoss_troop2"].(float64); !_ok_ { err = errors.New("GuildBoss_troop2 error"); return }; _v.GuildBossTroop2 = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["GuildBoss_troop2"].(float64); !_ok_ { err = errors.New("GuildBoss_troop2 error"); return }; _v.GuildBossTroop2 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["GuildBoss_troop3"].(float64); !_ok_ { err = errors.New("GuildBoss_troop3 error"); return }; _v.GuildBossTroop3 = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["GuildBoss_troop3"].(float64); !_ok_ { err = errors.New("GuildBoss_troop3 error"); return }; _v.GuildBossTroop3 = int32(_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["zhayantime"].(float64); !_ok_ { err = errors.New("zhayantime error"); return }; _v.Zhayantime = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rotateAngle"].(float64); !_ok_ { err = errors.New("rotateAngle error"); return }; _v.RotateAngle = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rotateDizzyTime"].(float64); !_ok_ { err = errors.New("rotateDizzyTime error"); return }; _v.RotateDizzyTime = float32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["moonshopmoney"].([]interface{}); !_ok_ { err = errors.New("moonshopmoney error"); return }
_v.Moonshopmoney = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Moonshopmoney = append(_v.Moonshopmoney, _list_v_)
}
}
return 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

@ -43,6 +43,10 @@ type GameHeroData struct {
Angle int32 Angle int32
Deviation int32 Deviation int32
Show int32 Show int32
Herofrag []*Gameatn
Heroskillup []string
Expitem []*Gameatn
Expitemnum int32
} }
const TypeId_GameHeroData = 1513828672 const TypeId_GameHeroData = 1513828672
@ -129,6 +133,49 @@ func (_v *GameHeroData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["angle"].(float64); !_ok_ { err = errors.New("angle error"); return }; _v.Angle = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["angle"].(float64); !_ok_ { err = errors.New("angle error"); return }; _v.Angle = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deviation"].(float64); !_ok_ { err = errors.New("deviation error"); return }; _v.Deviation = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deviation"].(float64); !_ok_ { err = errors.New("deviation error"); return }; _v.Deviation = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["show"].(float64); !_ok_ { err = errors.New("show error"); return }; _v.Show = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["show"].(float64); !_ok_ { err = errors.New("show error"); return }; _v.Show = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["herofrag"].([]interface{}); !_ok_ { err = errors.New("herofrag error"); return }
_v.Herofrag = 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.Herofrag = append(_v.Herofrag, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["heroskillup"].([]interface{}); !_ok_ { err = errors.New("heroskillup error"); return }
_v.Heroskillup = 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.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
} }

Some files were not shown because too many files have changed in this diff Show More