This commit is contained in:
meixiongfeng 2023-07-03 17:37:43 +08:00
commit 2d88b0ba5c
22 changed files with 826 additions and 533 deletions

View File

@ -1143,5 +1143,15 @@
"id": 200, "id": 200,
"insert": 2, "insert": 2,
"filter": [] "filter": []
},
{
"id": 201,
"insert": 2,
"filter": []
},
{
"id": 202,
"insert": 2,
"filter": []
} }
] ]

View File

@ -3,7 +3,7 @@
"id": 1001, "id": 1001,
"eventtype": 1, "eventtype": 1,
"mustdo": 1, "mustdo": 1,
"citystory": 50002010, "citystory": 50020010,
"citynormal": 50020030, "citynormal": 50020030,
"cityabnormal": 50020020, "cityabnormal": 50020020,
"worldtask": 500, "worldtask": 500,
@ -31,7 +31,7 @@
"id": 1002, "id": 1002,
"eventtype": 1, "eventtype": 1,
"mustdo": 2, "mustdo": 2,
"citystory": 50002010, "citystory": 50020011,
"citynormal": 50020030, "citynormal": 50020030,
"cityabnormal": 50020020, "cityabnormal": 50020020,
"worldtask": 510, "worldtask": 510,
@ -59,7 +59,7 @@
"id": 1003, "id": 1003,
"eventtype": 1, "eventtype": 1,
"mustdo": 1, "mustdo": 1,
"citystory": 50002010, "citystory": 50020012,
"citynormal": 50020030, "citynormal": 50020030,
"cityabnormal": 50020020, "cityabnormal": 50020020,
"worldtask": 520, "worldtask": 520,

View File

@ -6,7 +6,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 40 "n": 40
}, },
"moneynumtop": { "moneynumtop": {
@ -25,8 +25,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 45 "n": 41
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -50,8 +50,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 50 "n": 42
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -75,8 +75,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 55 "n": 43
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -100,8 +100,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 60 "n": 44
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -125,8 +125,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 65 "n": 45
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -150,8 +150,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 70 "n": 46
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -175,8 +175,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 75 "n": 47
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -200,8 +200,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 80 "n": 48
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -225,8 +225,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 85 "n": 49
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -250,8 +250,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 90 "n": 50
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -275,8 +275,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 95 "n": 51
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",
@ -300,8 +300,8 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "10000005", "t": "21000001",
"n": 100 "n": 52
}, },
"moneynumtop": { "moneynumtop": {
"a": "attr", "a": "attr",

View File

@ -12661,5 +12661,42 @@
"text": "用于商城购买消耗的礼卷" "text": "用于商城购买消耗的礼卷"
}, },
"sale": [] "sale": []
},
{
"id": "21000001",
"name": {
"key": "item_item_name_348",
"text": "巨怪魔法车票"
},
"usetype": 2,
"color": 5,
"bagtype": 1,
"index": 1,
"special_type": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 0,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [],
"use_skip": 11001,
"upper_limit": 0,
"img": "icon_mcs",
"intr": {
"key": "item_item_intr_356",
"text": "用于巨怪商队内移动列车的消耗品"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
]
} }
] ]

View File

@ -3,7 +3,7 @@
"id": "16010101", "id": "16010101",
"sex": 1, "sex": 1,
"type": 1, "type": 1,
"icon": "icon/sbkp_js_nz", "icon": "sbkp_js_nz",
"tujing": [ "tujing": [
107 107
], ],
@ -21,7 +21,7 @@
"id": "16010101", "id": "16010101",
"sex": 2, "sex": 2,
"type": 1, "type": 1,
"icon": "icon/sbkp_js_nvz", "icon": "sbkp_js_nvz",
"tujing": [ "tujing": [
107 107
], ],
@ -39,7 +39,7 @@
"id": "16010201", "id": "16010201",
"sex": 1, "sex": 1,
"type": 2, "type": 2,
"icon": "icon/zj_dz_001", "icon": "zj_dz_001",
"tujing": [ "tujing": [
107 107
], ],
@ -57,7 +57,7 @@
"id": "16010201", "id": "16010201",
"sex": 2, "sex": 2,
"type": 2, "type": 2,
"icon": "icon/zj_dz_001", "icon": "zj_dz_002",
"tujing": [ "tujing": [
107 107
], ],
@ -75,7 +75,7 @@
"id": "16010301", "id": "16010301",
"sex": 1, "sex": 1,
"type": 3, "type": 3,
"icon": "protagonistsystem/zj_bg_xk", "icon": "zj_dz_003",
"tujing": [ "tujing": [
107 107
], ],
@ -93,7 +93,7 @@
"id": "16010301", "id": "16010301",
"sex": 2, "sex": 2,
"type": 3, "type": 3,
"icon": "protagonistsystem/zj_bg_xk", "icon": "zj_dz_004",
"tujing": [ "tujing": [
107 107
], ],

322
bin/json/game_robot.json Normal file
View File

@ -0,0 +1,322 @@
[
{
"robotid": 10001,
"lvshow": 60,
"name": "激奋的布卢尔",
"sex": 1,
"showid": "16010101",
"betterid": 800002
},
{
"robotid": 10002,
"lvshow": 60,
"name": "快乐的艾丽莎",
"sex": 2,
"showid": "16010101",
"betterid": 800003
},
{
"robotid": 10003,
"lvshow": 60,
"name": "朴素的希伯来",
"sex": 1,
"showid": "16010101",
"betterid": 800004
},
{
"robotid": 10004,
"lvshow": 60,
"name": "庄重的布卢姆",
"sex": 1,
"showid": "16010101",
"betterid": 800005
},
{
"robotid": 10005,
"lvshow": 60,
"name": "和谐的哈莉特",
"sex": 1,
"showid": "16010101",
"betterid": 800006
},
{
"robotid": 10006,
"lvshow": 60,
"name": "坦然的乔伊斯",
"sex": 1,
"showid": "16010101",
"betterid": 800007
},
{
"robotid": 10007,
"lvshow": 60,
"name": "苗条的赫瑟尔",
"sex": 1,
"showid": "16010101",
"betterid": 800008
},
{
"robotid": 10008,
"lvshow": 60,
"name": "可人的博斯韦",
"sex": 1,
"showid": "16010101",
"betterid": 800009
},
{
"robotid": 10009,
"lvshow": 60,
"name": "青春的罗瑞尔",
"sex": 1,
"showid": "16010101",
"betterid": 800010
},
{
"robotid": 10010,
"lvshow": 60,
"name": "开心的茉莉",
"sex": 2,
"showid": "16010101",
"betterid": 801001
},
{
"robotid": 10011,
"lvshow": 60,
"name": "幸运的蒂安娜",
"sex": 2,
"showid": "16010101",
"betterid": 801002
},
{
"robotid": 10012,
"lvshow": 60,
"name": "踊跃的波伊尔",
"sex": 1,
"showid": "16010101",
"betterid": 801003
},
{
"robotid": 10013,
"lvshow": 60,
"name": "愉快的爱罗拉",
"sex": 2,
"showid": "16010101",
"betterid": 801004
},
{
"robotid": 10014,
"lvshow": 60,
"name": "神奇的塔利娅",
"sex": 2,
"showid": "16010101",
"betterid": 801005
},
{
"robotid": 10015,
"lvshow": 60,
"name": "不凡的埃达",
"sex": 1,
"showid": "16010101",
"betterid": 801006
},
{
"robotid": 10016,
"lvshow": 60,
"name": "进步的汉塞尔",
"sex": 2,
"showid": "16010101",
"betterid": 801007
},
{
"robotid": 10017,
"lvshow": 60,
"name": "业余的桃乐丝",
"sex": 2,
"showid": "16010101",
"betterid": 801008
},
{
"robotid": 10018,
"lvshow": 60,
"name": "整洁的薇薇安",
"sex": 1,
"showid": "16010101",
"betterid": 801009
},
{
"robotid": 10019,
"lvshow": 60,
"name": "认真的塞尔特",
"sex": 1,
"showid": "16010101",
"betterid": 801010
},
{
"robotid": 10020,
"lvshow": 60,
"name": "友爱的白雪",
"sex": 2,
"showid": "16010101",
"betterid": 802001
},
{
"robotid": 10021,
"lvshow": 60,
"name": "聪明的玛娅",
"sex": 2,
"showid": "16010101",
"betterid": 802002
},
{
"robotid": 10022,
"lvshow": 60,
"name": "细心的阿拉丁",
"sex": 2,
"showid": "16010101",
"betterid": 802003
},
{
"robotid": 10023,
"lvshow": 60,
"name": "娇美的布赖特",
"sex": 1,
"showid": "16010101",
"betterid": 802004
},
{
"robotid": 10024,
"lvshow": 60,
"name": "无知的伊凡",
"sex": 2,
"showid": "16010101",
"betterid": 802005
},
{
"robotid": 10025,
"lvshow": 60,
"name": "冷魅的梅根",
"sex": 1,
"showid": "16010101",
"betterid": 802006
},
{
"robotid": 10026,
"lvshow": 60,
"name": "雍容的布罗德",
"sex": 1,
"showid": "16010101",
"betterid": 802007
},
{
"robotid": 10027,
"lvshow": 60,
"name": "害羞的夏洛特",
"sex": 2,
"showid": "16010101",
"betterid": 802008
},
{
"robotid": 10028,
"lvshow": 60,
"name": "热情的海洛伊",
"sex": 2,
"showid": "16010101",
"betterid": 802009
},
{
"robotid": 10029,
"lvshow": 60,
"name": "开朗的克莱儿",
"sex": 2,
"showid": "16010101",
"betterid": 802010
},
{
"robotid": 10030,
"lvshow": 60,
"name": "唠叨的巴比特",
"sex": 2,
"showid": "16010101",
"betterid": 800001
},
{
"robotid": 10031,
"lvshow": 60,
"name": "娇媚的波比",
"sex": 1,
"showid": "16010101",
"betterid": 800009
},
{
"robotid": 10032,
"lvshow": 60,
"name": "绝美的艾薇",
"sex": 1,
"showid": "16010101",
"betterid": 800010
},
{
"robotid": 10033,
"lvshow": 60,
"name": "职业的艾尔玛",
"sex": 2,
"showid": "16010101",
"betterid": 801001
},
{
"robotid": 10034,
"lvshow": 60,
"name": "佩服的布鲁克",
"sex": 1,
"showid": "16010101",
"betterid": 801002
},
{
"robotid": 10035,
"lvshow": 60,
"name": "迷茫的鲍德温",
"sex": 2,
"showid": "16010101",
"betterid": 801003
},
{
"robotid": 10036,
"lvshow": 60,
"name": "摩登的鲁思",
"sex": 1,
"showid": "16010101",
"betterid": 801004
},
{
"robotid": 10037,
"lvshow": 60,
"name": "火红的巴纳德",
"sex": 2,
"showid": "16010101",
"betterid": 802003
},
{
"robotid": 10038,
"lvshow": 60,
"name": "好动的杰奎琳",
"sex": 2,
"showid": "16010101",
"betterid": 802004
},
{
"robotid": 10039,
"lvshow": 60,
"name": "娇艳的丝特勒",
"sex": 1,
"showid": "16010101",
"betterid": 802005
},
{
"robotid": 10040,
"lvshow": 60,
"name": "欢闹的妮莉雅",
"sex": 2,
"showid": "16010101",
"betterid": 802006
}
]

View File

@ -8,7 +8,7 @@
"key": "skill_skill_atk_Name_125004011", "key": "skill_skill_atk_Name_125004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0014", "ico": "dzj_buff_dkts_pink",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -477,7 +477,7 @@
"key": "skill_skill_atk_Name_135002011", "key": "skill_skill_atk_Name_135002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0020", "ico": "dzj_buff_mzts_orange",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -1076,7 +1076,7 @@
"key": "skill_skill_atk_Name_124003011", "key": "skill_skill_atk_Name_124003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0006", "ico": "dzj_buff_mzts_orange",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -1598,7 +1598,7 @@
"key": "skill_skill_atk_Name_134006011", "key": "skill_skill_atk_Name_134006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0024", "ico": "dzj_buff_sdts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -2242,7 +2242,7 @@
"key": "skill_skill_atk_Name_125001011", "key": "skill_skill_atk_Name_125001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0029", "ico": "dzj_buff_fyts_green",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -3063,7 +3063,7 @@
"key": "skill_skill_atk_Name_144005011", "key": "skill_skill_atk_Name_144005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0019", "ico": "dzj_buff_gjts_red",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -3707,7 +3707,7 @@
"key": "skill_skill_atk_Name_135001011", "key": "skill_skill_atk_Name_135001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0026", "ico": "dzj_buff_gjts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -4418,7 +4418,7 @@
"key": "skill_skill_atk_Name_124004011", "key": "skill_skill_atk_Name_124004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0027", "ico": "dzj_buff_mzts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -4902,7 +4902,7 @@
"key": "skill_skill_atk_Name_144006011", "key": "skill_skill_atk_Name_144006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0019", "ico": "dzj_buff_gjts_red",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -5590,7 +5590,7 @@
"key": "skill_skill_atk_Name_115005011", "key": "skill_skill_atk_Name_115005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0001", "ico": "dzj_buff_fyts_red",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -5968,7 +5968,7 @@
"key": "skill_skill_atk_Name_115004011", "key": "skill_skill_atk_Name_115004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0020", "ico": "dzj_buff_mzts_orange",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -6602,7 +6602,7 @@
"key": "skill_skill_atk_Name_124002011", "key": "skill_skill_atk_Name_124002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0029", "ico": "dzj_buff_fyts_green",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -7048,7 +7048,7 @@
"key": "skill_skill_atk_Name_114007011", "key": "skill_skill_atk_Name_114007011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0029", "ico": "dzj_buff_fyts_green",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -7563,7 +7563,7 @@
"key": "skill_skill_atk_Name_114003011", "key": "skill_skill_atk_Name_114003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0031", "ico": "dzj_buff_sdts_red",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -8047,7 +8047,7 @@
"key": "skill_skill_atk_Name_145003011", "key": "skill_skill_atk_Name_145003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0016", "ico": "dzj_buff_smts_red",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -8507,7 +8507,7 @@
"key": "skill_skill_atk_Name_135003011", "key": "skill_skill_atk_Name_135003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -8866,7 +8866,7 @@
"key": "skill_skill_atk_Name_113003011", "key": "skill_skill_atk_Name_113003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -9365,7 +9365,7 @@
"key": "skill_skill_atk_Name_135005011", "key": "skill_skill_atk_Name_135005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -9859,7 +9859,7 @@
"key": "skill_skill_atk_Name_115001011", "key": "skill_skill_atk_Name_115001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -9985,7 +9985,7 @@
"key": "skill_skill_atk_Name_145001011", "key": "skill_skill_atk_Name_145001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -10856,7 +10856,7 @@
"key": "skill_skill_atk_Name_124008011", "key": "skill_skill_atk_Name_124008011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -11375,7 +11375,7 @@
"key": "skill_skill_atk_Name_134008011", "key": "skill_skill_atk_Name_134008011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -12479,7 +12479,7 @@
"key": "skill_skill_atk_Name_143002011", "key": "skill_skill_atk_Name_143002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -12837,7 +12837,7 @@
"key": "skill_skill_atk_Name_114006011", "key": "skill_skill_atk_Name_114006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -12956,7 +12956,7 @@
"key": "skill_skill_atk_Name_135006011", "key": "skill_skill_atk_Name_135006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -13374,7 +13374,7 @@
"key": "skill_skill_atk_Name_134002011", "key": "skill_skill_atk_Name_134002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -13758,7 +13758,7 @@
"key": "skill_skill_atk_Name_124005011", "key": "skill_skill_atk_Name_124005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -14190,7 +14190,7 @@
"key": "skill_skill_atk_Name_125003011", "key": "skill_skill_atk_Name_125003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -14771,7 +14771,7 @@
"key": "skill_skill_atk_Name_133003011", "key": "skill_skill_atk_Name_133003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -15617,7 +15617,7 @@
"key": "skill_skill_atk_Name_134003011", "key": "skill_skill_atk_Name_134003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -16101,7 +16101,7 @@
"key": "skill_skill_atk_Name_144004011", "key": "skill_skill_atk_Name_144004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -16544,7 +16544,7 @@
"key": "skill_skill_atk_Name_134007011", "key": "skill_skill_atk_Name_134007011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -17472,7 +17472,7 @@
"key": "skill_skill_atk_Name_113001011", "key": "skill_skill_atk_Name_113001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -17959,7 +17959,7 @@
"key": "skill_skill_atk_Name_114005011", "key": "skill_skill_atk_Name_114005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -18531,7 +18531,7 @@
"key": "skill_skill_atk_Name_143003011", "key": "skill_skill_atk_Name_143003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -19104,7 +19104,7 @@
"key": "skill_skill_atk_Name_115002011", "key": "skill_skill_atk_Name_115002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -19468,7 +19468,7 @@
"key": "skill_skill_atk_Name_113005011", "key": "skill_skill_atk_Name_113005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -19775,7 +19775,7 @@
"key": "skill_skill_atk_Name_124009011", "key": "skill_skill_atk_Name_124009011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -20294,7 +20294,7 @@
"key": "skill_skill_atk_Name_124001011", "key": "skill_skill_atk_Name_124001011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -22882,7 +22882,7 @@
"key": "skill_skill_atk_Name_124007011", "key": "skill_skill_atk_Name_124007011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -23002,7 +23002,7 @@
"key": "skill_skill_atk_Name_123002011", "key": "skill_skill_atk_Name_123002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -23120,7 +23120,7 @@
"key": "skill_skill_atk_Name_123004011", "key": "skill_skill_atk_Name_123004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -24114,7 +24114,7 @@
"key": "skill_skill_atk_Name_115003011", "key": "skill_skill_atk_Name_115003011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -24583,7 +24583,7 @@
"key": "skill_skill_atk_Name_143004011", "key": "skill_skill_atk_Name_143004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -24877,7 +24877,7 @@
"key": "skill_skill_atk_Name_135004011", "key": "skill_skill_atk_Name_135004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -24993,7 +24993,7 @@
"key": "skill_skill_atk_Name_124006011", "key": "skill_skill_atk_Name_124006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -25109,7 +25109,7 @@
"key": "skill_skill_atk_Name_114004011", "key": "skill_skill_atk_Name_114004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -25225,7 +25225,7 @@
"key": "skill_skill_atk_Name_133004011", "key": "skill_skill_atk_Name_133004011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -25342,7 +25342,7 @@
"key": "skill_skill_atk_Name_134005011", "key": "skill_skill_atk_Name_134005011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -25712,7 +25712,7 @@
"key": "skill_skill_atk_Name_133006011", "key": "skill_skill_atk_Name_133006011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -25830,7 +25830,7 @@
"key": "skill_skill_atk_Name_125002011", "key": "skill_skill_atk_Name_125002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -26242,7 +26242,7 @@
"key": "skill_skill_atk_Name_144002011", "key": "skill_skill_atk_Name_144002011",
"text": "队长技" "text": "队长技"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",
@ -26362,7 +26362,7 @@
"key": "skill_skill_atk_Name_111021011", "key": "skill_skill_atk_Name_111021011",
"text": "友方无法受到控制" "text": "友方无法受到控制"
}, },
"ico": "jn_dzj_0021", "ico": "dzj_buff_dkts_blue",
"CorrectPos": 0, "CorrectPos": 0,
"IsMelee": 0, "IsMelee": 0,
"act": "", "act": "",

View File

@ -490,6 +490,7 @@ type (
GetGlobalConf() *cfg.GameGlobalData GetGlobalConf() *cfg.GameGlobalData
GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn, err error) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn, err error)
RandRobotConfig(num int32) (confs []*cfg.GameRobotData, err error)
GetHeroConfig(heroCfgId string) (conf *cfg.GameHeroData, err error) GetHeroConfig(heroCfgId string) (conf *cfg.GameHeroData, err error)
GetPriceGroupLen(pricegroupId int32) (count int32, err error) GetPriceGroupLen(pricegroupId int32) (count int32, err error)
GetGrormetLlame(id string) (data int32, err error) GetGrormetLlame(id string) (data int32, err error)

View File

@ -48,8 +48,10 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (errd
info = &pb.DBArenaUser{ info = &pb.DBArenaUser{
Uid: session.GetUserId(), Uid: session.GetUserId(),
Name: user.Name, Name: user.Name,
Avatar: user.Avatar, // Avatar: user.Avatar,
Lv: user.Lv, Lv: user.Lv,
Sex: user.Gender,
Skin: user.CurSkin,
Integral: global.ArenaInitiaIntegral, Integral: global.ArenaInitiaIntegral,
Streak: 0, Streak: 0,
Record: make([]*pb.DBArenaBattleRecord, 0), Record: make([]*pb.DBArenaBattleRecord, 0),
@ -72,7 +74,9 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ArenaInfoReq) (errd
} else { } else {
info.Lv = user.Lv info.Lv = user.Lv
info.Name = user.Name info.Name = user.Name
info.Avatar = user.Avatar // info.Avatar = user.Avatar
info.Sex = user.Gender
info.Skin = user.CurSkin
this.module.modelArena.recoverTicket(session, info) this.module.modelArena.recoverTicket(session, info)
if err = this.module.modelArena.updateArenaUserInfo(info); err != nil { if err = this.module.modelArena.updateArenaUserInfo(info); err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{

View File

@ -54,7 +54,7 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.ArenaRankReq) (errd
players[i] = &pb.ArenaPlayer{ players[i] = &pb.ArenaPlayer{
Uid: v.Uid, Uid: v.Uid,
Name: v.Name, Name: v.Name,
Avatar: v.Avatar, // Avatar: v.Avatar,
Lv: v.Lv, Lv: v.Lv,
Dan: v.Dan, Dan: v.Dan,
Rank: rank, Rank: rank,

View File

@ -78,8 +78,10 @@ func (this *modelArena) queryArenaPlayer(uId string) (result *pb.ArenaPlayer, er
result = &pb.ArenaPlayer{ result = &pb.ArenaPlayer{
Uid: temp.Uid, Uid: temp.Uid,
Name: temp.Name, Name: temp.Name,
Avatar: temp.Avatar, // Avatar: temp.Avatar,
Lv: temp.Lv, Lv: temp.Lv,
Sex: temp.Sex,
Skin: temp.Skin,
Dan: temp.Dan, Dan: temp.Dan,
Integral: temp.Integral, Integral: temp.Integral,
Defend: temp.Defend, Defend: temp.Defend,
@ -132,8 +134,9 @@ func (this *modelArena) updateArenaUserInfo(info *pb.DBArenaUser) (err error) {
"loc": []float64{float64(dan), float64(rand.Int31n(100)) / 1000.0}, "loc": []float64{float64(dan), float64(rand.Int31n(100)) / 1000.0},
"isdef": info.Isdef, "isdef": info.Isdef,
"name": info.Name, "name": info.Name,
"avatar": info.Avatar,
"lv": info.Lv, "lv": info.Lv,
"sex": info.Sex,
"skin": info.Skin,
}) })
return return
} }
@ -203,7 +206,7 @@ func (this *modelArena) matcheAI(dan, num int32) (results []*pb.ArenaPlayer, err
active *cfg.GameArenaActiveRewardData active *cfg.GameArenaActiveRewardData
ais []*cfg.GameArenaRobotData ais []*cfg.GameArenaRobotData
formats []*cfg.GameMonsterFormatData formats []*cfg.GameMonsterFormatData
// monst *cfg.GameMonsterData robots []*cfg.GameRobotData
rank []int32 rank []int32
targets []int32 targets []int32
) )
@ -225,17 +228,22 @@ func (this *modelArena) matcheAI(dan, num int32) (results []*pb.ArenaPlayer, err
targets[i] = index targets[i] = index
} }
results = make([]*pb.ArenaPlayer, num) results = make([]*pb.ArenaPlayer, num)
if robots, err = this.module.ModuleTools.RandRobotConfig(int32(len(targets))); err != nil {
return
}
for i, v := range targets { for i, v := range targets {
aiconf := ais[v] aiconf := ais[v]
if formats, err = this.module.configure.getMonsterFormat(aiconf.MonsterformatId); err != nil { if formats, err = this.module.configure.getMonsterFormat(aiconf.MonsterformatId); err != nil {
this.module.Errorln(err) this.module.Errorln(err)
return return
} }
results[i] = &pb.ArenaPlayer{ results[i] = &pb.ArenaPlayer{
Uid: fmt.Sprintf("ai_%s", id.NewXId()), Uid: fmt.Sprintf("ai_%s", id.NewXId()),
Name: this.randUserName(), Name: robots[i].Name,
Avatar: fmt.Sprintf("tx_js_3300%d", rand.Int31n(3)+3), Lv: robots[i].Lvshow,
Lv: rand.Int31n(10) + 10, Sex: robots[i].Sex,
Skin: robots[i].Showid,
Dan: dan, Dan: dan,
Integral: int32(rand.Intn(int(active.ScoreUp)-int(active.ScoreLow))) + active.ScoreLow, Integral: int32(rand.Intn(int(active.ScoreUp)-int(active.ScoreLow))) + active.ScoreLow,
Isai: true, Isai: true,
@ -308,7 +316,7 @@ func (this *modelArena) matchePlayer(uid string, dan, num int32) (results []*pb.
results = append(results, &pb.ArenaPlayer{ results = append(results, &pb.ArenaPlayer{
Uid: temp.Uid, Uid: temp.Uid,
Name: temp.Name, Name: temp.Name,
Avatar: temp.Avatar, // Avatar: temp.Avatar,
Lv: temp.Lv, Lv: temp.Lv,
Dan: temp.Dan, Dan: temp.Dan,
Integral: temp.Integral, Integral: temp.Integral,

View File

@ -15,6 +15,7 @@ const (
game_global = "game_global.json" //全局配置表 game_global = "game_global.json" //全局配置表
game_initial = "game_initial.json" //初始化表 game_initial = "game_initial.json" //初始化表
//game_gamecolor = "game_gamecolor.json" //颜色表 //game_gamecolor = "game_gamecolor.json" //颜色表
new_robot = "game_robot.json"
game_playerlv = "game_playerlv.json" //玩家等级 game_playerlv = "game_playerlv.json" //玩家等级
game_drop = "game_drop.json" //掉落 game_drop = "game_drop.json" //掉落
new_hero = "game_hero.json" new_hero = "game_hero.json"
@ -64,6 +65,7 @@ func (this *MCompConfigure) Init(service core.IService, module core.IModule, com
err = this.LoadConfigure(new_hero, cfg.NewGameHero) err = this.LoadConfigure(new_hero, cfg.NewGameHero)
err = this.LoadConfigure(game_playerlv, cfg.NewGamePlayerlv) err = this.LoadConfigure(game_playerlv, cfg.NewGamePlayerlv)
err = this.LoadConfigure(new_robot, cfg.NewGameRobot)
err = this.LoadConfigure(game_signreset, cfg.NewGameSignReset) err = this.LoadConfigure(game_signreset, cfg.NewGameSignReset)
err = this.LoadConfigure(game_equip, cfg.NewGameEquip) err = this.LoadConfigure(game_equip, cfg.NewGameEquip)
err = this.LoadConfigure(game_item, cfg.NewGameItem) err = this.LoadConfigure(game_item, cfg.NewGameItem)
@ -449,6 +451,23 @@ func (this *MCompConfigure) GetHeroConfigStar(heroCfgId string) int32 {
return 0 return 0
} }
// 获取机器人信息
func (this *MCompConfigure) RandRobotConfig(num int32) (confs []*cfg.GameRobotData, err error) {
var (
v interface{}
)
confs = make([]*cfg.GameRobotData, num)
if v, err = this.GetConfigure(new_robot); err == nil {
if configure, ok := v.(*cfg.GameRobot); ok && len(configure.GetDataList()) > 0 {
for i, index := range comm.RandShuffle(len(configure.GetDataList()))[:num] {
confs[i] = configure.GetDataList()[index]
}
return
}
}
return nil, comm.NewNotFoundConfErr("工具模块", new_robot, "没有可用机器人")
}
// 获取签到信息 // 获取签到信息
func (this *MCompConfigure) GetSignConf(day, group int32) *cfg.GameSignData { func (this *MCompConfigure) GetSignConf(day, group int32) *cfg.GameSignData {
if v, ok := this._sign[day<<8+group]; ok { if v, ok := this._sign[day<<8+group]; ok {

View File

@ -40,6 +40,12 @@ func (this *Tools) OnInstallComp() {
this.configure = this.RegisterComp(new(MCompConfigure)).(*MCompConfigure) this.configure = this.RegisterComp(new(MCompConfigure)).(*MCompConfigure)
} }
// 随机机器人
func (this *Tools) RandRobotConfig(num int32) (confs []*cfg.GameRobotData, err error) {
confs, err = this.configure.RandRobotConfig(num)
return
}
// 读取英雄配置 // 读取英雄配置
func (this *Tools) GetHeroConfig(heroCfgId string) (conf *cfg.GameHeroData, err error) { func (this *Tools) GetHeroConfig(heroCfgId string) (conf *cfg.GameHeroData, err error) {
conf, err = this.configure.GetHeroConfig(heroCfgId) conf, err = this.configure.GetHeroConfig(heroCfgId)

View File

@ -267,12 +267,21 @@ func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{
nextLvConf = this.module.configure.GetPlayerlvConf(curLv + 1) nextLvConf = this.module.configure.GetPlayerlvConf(curLv + 1)
} }
// 最大等级经验封顶
curLvConf := this.module.configure.GetPlayerlvConf(curLv)
if curExp > int64(curLvConf.Exp) {
if nextLvConf == nil { if nextLvConf == nil {
curExp = int64(curLvConf.Exp) curLvConf := this.module.configure.GetPlayerlvConf(curLv)
reward := this.module.globalConf.OverexpReward
var gold int32
if curExp < int64(curLvConf.Exp) {
gold = int32(curExp) * reward
} else {
yu := int32(curExp) - curLvConf.Exp
gold = yu * reward
} }
this.module.DispenseRes(ul.session, []*cfg.Gameatn{{A: "attr", T: "gold", N: gold}}, true)
curExp = int64(curLvConf.Exp)
} }
// 等级有递增时再更新 // 等级有递增时再更新

View File

@ -1,57 +0,0 @@
package version
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/core/cbase"
"go_dreamfactory/lego/sys/gin"
"go_dreamfactory/lego/sys/gin/engine"
"reflect"
"strings"
)
/*
web api 服务组件
*/
type Api_Comp struct {
cbase.ModuleCompBase
options *Options //模块参数
module *Version //当前模块对象
gin gin.ISys //gin 框架 web的热门框架
}
// 组件初始化接口 启动web服务 并注册api
func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.ModuleCompBase.Init(service, module, comp, options)
this.options = options.(*Options)
this.module = module.(*Version)
if this.gin, err = gin.NewSys(gin.SetListenPort(this.options.Port)); err != nil {
return
}
this.suitableMethods() //发射注册api
return
}
func (this *Api_Comp) suitableMethods() {
typ := reflect.TypeOf(this)
vof := reflect.ValueOf(this)
for m := 0; m < typ.NumMethod(); m++ {
method := typ.Method(m)
mname := method.Name
mtype := method.Type
if method.PkgPath != "" {
continue
}
if mtype.NumIn() != 2 {
continue
}
context := mtype.In(1)
if context.String() != "*engine.Context" {
continue
}
if mtype.NumOut() != 0 {
continue
}
this.gin.POST(strings.ToLower(mname), vof.MethodByName(mname).Interface().(func(*engine.Context)))
this.gin.GET(strings.ToLower(mname), vof.MethodByName(mname).Interface().(func(*engine.Context)))
}
}

View File

@ -1,47 +0,0 @@
package version
import (
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/core/cbase"
)
/*
模块名:资源版本管理记录
描述:提供客户端查询版本接口 内部使用
开发:李伟
*/
func NewModule() core.IModule {
m := new(Version)
return m
}
type Version struct {
cbase.ModuleBase
options *Options
service base.IRPCXService
api_comp *Api_Comp //提供weba pi服务的组件
}
// 模块名
func (this *Version) GetType() core.M_Modules {
return "version"
}
// 模块自定义参数
func (this *Version) NewOptions() (options core.IModuleOptions) {
return new(Options)
}
func (this *Version) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.service = service.(base.IRPCXService)
this.options = options.(*Options)
return
}
func (this *Version) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api_comp = this.RegisterComp(new(Api_Comp)).(*Api_Comp)
}

View File

@ -1,24 +0,0 @@
package version
import (
"go_dreamfactory/lego/utils/mapstructure"
"go_dreamfactory/modules"
)
type (
Options struct {
modules.Options
Port int
Key string
}
)
func (this *Options) LoadConfig(settings map[string]interface{}) (err error) {
if settings != nil {
if err = this.Options.LoadConfig(settings); err != nil {
return
}
err = mapstructure.Decode(settings, this)
}
return
}

View File

@ -148,15 +148,17 @@ type ArenaPlayer struct {
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar" bson:"avatar"` //头像 // string avatar = 3; //@go_tags(`bson:"avatar"`) 头像
Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级 Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级
Dan int32 `protobuf:"varint,5,opt,name=dan,proto3" json:"dan"` //段位 Sex int32 `protobuf:"varint,5,opt,name=sex,proto3" json:"sex"` //性别
Integral int32 `protobuf:"varint,6,opt,name=integral,proto3" json:"integral"` Skin string `protobuf:"bytes,6,opt,name=skin,proto3" json:"skin"` //时装
Rank int32 `protobuf:"varint,7,opt,name=rank,proto3" json:"rank"` //排名 Dan int32 `protobuf:"varint,7,opt,name=dan,proto3" json:"dan"` //段位
Defend *DBPlayerBattleFormt `protobuf:"bytes,8,opt,name=defend,proto3" json:"defend"` //防守 Integral int32 `protobuf:"varint,8,opt,name=integral,proto3" json:"integral"`
Isai bool `protobuf:"varint,9,opt,name=isai,proto3" json:"isai"` //是否是ai Rank int32 `protobuf:"varint,9,opt,name=rank,proto3" json:"rank"` //排名
Mformatid int32 `protobuf:"varint,10,opt,name=mformatid,proto3" json:"mformatid"` // AIId Defend *DBPlayerBattleFormt `protobuf:"bytes,10,opt,name=defend,proto3" json:"defend"` //防守
Changeintegral int32 `protobuf:"varint,11,opt,name=changeintegral,proto3" json:"changeintegral"` //变化积分 Isai bool `protobuf:"varint,11,opt,name=isai,proto3" json:"isai"` //是否是ai
Mformatid int32 `protobuf:"varint,12,opt,name=mformatid,proto3" json:"mformatid"` // AIId
Changeintegral int32 `protobuf:"varint,13,opt,name=changeintegral,proto3" json:"changeintegral"` //变化积分
} }
func (x *ArenaPlayer) Reset() { func (x *ArenaPlayer) Reset() {
@ -205,13 +207,6 @@ func (x *ArenaPlayer) GetName() string {
return "" return ""
} }
func (x *ArenaPlayer) GetAvatar() string {
if x != nil {
return x.Avatar
}
return ""
}
func (x *ArenaPlayer) GetLv() int32 { func (x *ArenaPlayer) GetLv() int32 {
if x != nil { if x != nil {
return x.Lv return x.Lv
@ -219,6 +214,20 @@ func (x *ArenaPlayer) GetLv() int32 {
return 0 return 0
} }
func (x *ArenaPlayer) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *ArenaPlayer) GetSkin() string {
if x != nil {
return x.Skin
}
return ""
}
func (x *ArenaPlayer) GetDan() int32 { func (x *ArenaPlayer) GetDan() int32 {
if x != nil { if x != nil {
return x.Dan return x.Dan
@ -523,28 +532,29 @@ type DBArenaUser struct {
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //玩家名称 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //玩家名称
Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar" bson:"avatar"` //头像 // string avatar = 3; //@go_tags(`bson:"avatar"`) 头像
Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级 Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级
Integral int32 `protobuf:"varint,5,opt,name=integral,proto3" json:"integral"` //积分 Integral int32 `protobuf:"varint,5,opt,name=integral,proto3" json:"integral"` //积分
// int32 ticket = 6; //挑战券 Sex int32 `protobuf:"varint,6,opt,name=sex,proto3" json:"sex"` //性别
Dan int32 `protobuf:"varint,7,opt,name=dan,proto3" json:"dan"` //段位 Skin string `protobuf:"bytes,7,opt,name=skin,proto3" json:"skin"` //时装
Attack *DBPlayerBattleFormt `protobuf:"bytes,8,opt,name=attack,proto3" json:"attack"` //进攻阵型 Dan int32 `protobuf:"varint,8,opt,name=dan,proto3" json:"dan"` //段位
Defend *DBPlayerBattleFormt `protobuf:"bytes,9,opt,name=defend,proto3" json:"defend"` //防守阵型 Attack *DBPlayerBattleFormt `protobuf:"bytes,9,opt,name=attack,proto3" json:"attack"` //进攻阵型
Streak int32 `protobuf:"varint,10,opt,name=streak,proto3" json:"streak"` //连胜 Defend *DBPlayerBattleFormt `protobuf:"bytes,10,opt,name=defend,proto3" json:"defend"` //防守阵型
Attackrate int32 `protobuf:"varint,11,opt,name=attackrate,proto3" json:"attackrate"` //进攻胜率 Streak int32 `protobuf:"varint,11,opt,name=streak,proto3" json:"streak"` //连胜
Defendrate int32 `protobuf:"varint,12,opt,name=defendrate,proto3" json:"defendrate"` //防守胜率 Attackrate int32 `protobuf:"varint,12,opt,name=attackrate,proto3" json:"attackrate"` //进攻胜率
Rank int32 `protobuf:"varint,13,opt,name=rank,proto3" json:"rank"` //排名 Defendrate int32 `protobuf:"varint,13,opt,name=defendrate,proto3" json:"defendrate"` //防守胜率
Buynum int32 `protobuf:"varint,14,opt,name=buynum,proto3" json:"buynum"` //购买次数 Rank int32 `protobuf:"varint,14,opt,name=rank,proto3" json:"rank"` //排名
Record []*DBArenaBattleRecord `protobuf:"bytes,15,rep,name=record,proto3" json:"record"` //战斗记录 Buynum int32 `protobuf:"varint,15,opt,name=buynum,proto3" json:"buynum"` //购买次数
Lastrtickettime int64 `protobuf:"varint,16,opt,name=lastrtickettime,proto3" json:"lastrtickettime"` //最后领劵时间 Record []*DBArenaBattleRecord `protobuf:"bytes,16,rep,name=record,proto3" json:"record"` //战斗记录
Attackwinuum int32 `protobuf:"varint,17,opt,name=attackwinuum,proto3" json:"attackwinuum"` //进攻胜利次数 Lastrtickettime int64 `protobuf:"varint,17,opt,name=lastrtickettime,proto3" json:"lastrtickettime"` //最后领劵时间
Attacktotaluum int32 `protobuf:"varint,18,opt,name=attacktotaluum,proto3" json:"attacktotaluum"` //进攻总次数 Attackwinuum int32 `protobuf:"varint,18,opt,name=attackwinuum,proto3" json:"attackwinuum"` //进攻胜利次数
Defendwinuum int32 `protobuf:"varint,19,opt,name=defendwinuum,proto3" json:"defendwinuum"` //防守胜利 Attacktotaluum int32 `protobuf:"varint,19,opt,name=attacktotaluum,proto3" json:"attacktotaluum"` //进攻总次数
Defendtotaluum int32 `protobuf:"varint,20,opt,name=defendtotaluum,proto3" json:"defendtotaluum"` //防守总 Defendwinuum int32 `protobuf:"varint,20,opt,name=defendwinuum,proto3" json:"defendwinuum"` //防守胜利
Loc []float64 `protobuf:"fixed64,21,rep,packed,name=loc,proto3" json:"loc"` //地图索引 匹配系统使用 Defendtotaluum int32 `protobuf:"varint,21,opt,name=defendtotaluum,proto3" json:"defendtotaluum"` //防守总
Isdef bool `protobuf:"varint,22,opt,name=isdef,proto3" json:"isdef"` //是否设置防守 Loc []float64 `protobuf:"fixed64,22,rep,packed,name=loc,proto3" json:"loc"` //地图索引 匹配系统使用
Npc map[int32]*DBNpc `protobuf:"bytes,23,rep,name=npc,proto3" json:"npc" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // npc Cd Isdef bool `protobuf:"varint,23,opt,name=isdef,proto3" json:"isdef"` //是否设置防守
Prededuction int32 `protobuf:"varint,24,opt,name=prededuction,proto3" json:"prededuction"` //预扣字段 Npc map[int32]*DBNpc `protobuf:"bytes,24,rep,name=npc,proto3" json:"npc" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // npc Cd
Prededuction int32 `protobuf:"varint,25,opt,name=prededuction,proto3" json:"prededuction"` //预扣字段
} }
func (x *DBArenaUser) Reset() { func (x *DBArenaUser) Reset() {
@ -593,13 +603,6 @@ func (x *DBArenaUser) GetName() string {
return "" return ""
} }
func (x *DBArenaUser) GetAvatar() string {
if x != nil {
return x.Avatar
}
return ""
}
func (x *DBArenaUser) GetLv() int32 { func (x *DBArenaUser) GetLv() int32 {
if x != nil { if x != nil {
return x.Lv return x.Lv
@ -614,6 +617,20 @@ func (x *DBArenaUser) GetIntegral() int32 {
return 0 return 0
} }
func (x *DBArenaUser) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *DBArenaUser) GetSkin() string {
if x != nil {
return x.Skin
}
return ""
}
func (x *DBArenaUser) GetDan() int32 { func (x *DBArenaUser) GetDan() int32 {
if x != nil { if x != nil {
return x.Dan return x.Dan
@ -871,170 +888,172 @@ var file_arena_arena_db_proto_rawDesc = []byte{
0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x22, 0xa5, 0x02, 0x0a, 0x0b, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x22, 0xb3, 0x02, 0x0a, 0x0b, 0x41, 0x72, 0x65, 0x6e, 0x61,
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03,
0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x12,
0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6b,
0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x18, 0x0a,
0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x06, 0x64, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42,
0x66, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x61, 0x69, 0x18, 0x09, 0x20, 0x01, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x06, 0x64, 0x65, 0x66, 0x65,
0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x66, 0x6f, 0x72, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x61, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08,
0x6d, 0x61, 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x66, 0x6f, 0x72, 0x6d, 0x61,
0x72, 0x6d, 0x61, 0x74, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x74, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x66, 0x6f, 0x72, 0x6d,
0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x74, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x69, 0x6e,
0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x8e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x68,
0x07, 0x0a, 0x0a, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x61, 0x6e, 0x67, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x8e, 0x07, 0x0a,
0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x0a, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f,
0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12,
0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73,
0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x35, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x02, 0x6c, 0x76, 0x12, 0x35, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18,
0x42, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61,
0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0b, 0x61, 0x64,
0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64,
0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61,
0x6a, 0x75, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0c, 0x6a, 0x75,
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
0x4a, 0x75, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x32, 0x1d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x4a, 0x75,
0x79, 0x52, 0x0c, 0x6a, 0x75, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x47, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x0c, 0x6a, 0x75, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x47, 0x0a,
0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18,
0x42, 0x61, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61,
0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x68, 0x6f, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72,
0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x09, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x68, 0x6f, 0x72, 0x6f, 0x73, 0x63,
0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28,
0x2e, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x0b, 0x32, 0x22, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x48,
0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x68, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x68, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65,
0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x65, 0x74, 0x74,
0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e,
0x0a, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x0b,
0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x03, 0x28,
0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, 0x3b, 0x0a, 0x0d, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6e,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4a, 0x75, 0x65, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4a, 0x75, 0x65, 0x78, 0x50,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, 0x65,
0x6e, 0x74, 0x50, 0x72, 0x6f, 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, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x48,
0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 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, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 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, 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, 0x44, 0x0a, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xae, 0x02,
0x16, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x0a, 0x13, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52,
0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x28, 0x09, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x73, 0x77, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x77, 0x69,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x07, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0xae, 0x02, 0x0a, 0x13, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x69, 0x76, 0x61, 0x6c,
0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x01, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, 0x76, 0x61,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12,
0x05, 0x69, 0x73, 0x77, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x21, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
0x77, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x52, 0x05, 0x66, 0x6f, 0x72,
0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x12, 0x6d, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
0x18, 0x0a, 0x07, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x74, 0x65,
0x52, 0x07, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x69, 0x76, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20,
0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f,
0x76, 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9c,
0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x06, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10,
0x73, 0x12, 0x21, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
0x32, 0x0b, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x61, 0x73, 0x65, 0x52, 0x05, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6f, 0x72, 0x6d, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x72, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73,
0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x22, 0x8e, 0x06, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x6e, 0x18, 0x08, 0x20,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61,
0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x50, 0x6c, 0x61,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x79, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x06,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64,
0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x1a, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x06, 0x64, 0x65,
0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x66, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x0b,
0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x1e, 0x0a, 0x0a,
0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05,
0x42, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
0x6d, 0x74, 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05,
0x66, 0x65, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x50, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b,
0x52, 0x06, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05,
0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x52, 0x06, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f,
0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x72, 0x64, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x41, 0x72, 0x65,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06,
0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x74,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52,
0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65,
0x72, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x18, 0x0e, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x77, 0x69, 0x6e, 0x75, 0x75, 0x6d,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x77, 0x69,
0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x6e, 0x75, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x74, 0x6f,
0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x74,
0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x61, 0x63, 0x6b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c,
0x73, 0x74, 0x72, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x6e, 0x75, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01,
0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x6e, 0x75, 0x75, 0x6d,
0x74, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x77, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75,
0x6e, 0x75, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64,
0x63, 0x6b, 0x77, 0x69, 0x6e, 0x75, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x63, 0x18,
0x63, 0x6b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x16, 0x20, 0x03, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73,
0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x64, 0x65, 0x66, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x64, 0x65, 0x66,
0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x6e, 0x75, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x03, 0x6e, 0x70, 0x63, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e,
0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x4e, 0x70, 0x63, 0x45,
0x6e, 0x75, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x64, 0x74, 0x6f, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6e, 0x70, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65,
0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52,
0x66, 0x65, 0x6e, 0x64, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x75, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3e, 0x0a,
0x6c, 0x6f, 0x63, 0x18, 0x15, 0x20, 0x03, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x63, 0x12, 0x14, 0x08, 0x4e, 0x70, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x0a, 0x05, 0x69, 0x73, 0x64, 0x65, 0x66, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05, 0x76,
0x73, 0x64, 0x65, 0x66, 0x12, 0x27, 0x0a, 0x03, 0x6e, 0x70, 0x63, 0x18, 0x17, 0x20, 0x03, 0x28, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x44, 0x42, 0x4e,
0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3d, 0x0a,
0x4e, 0x70, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6e, 0x70, 0x63, 0x12, 0x22, 0x0a, 0x05, 0x44, 0x42, 0x4e, 0x70, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x0c, 0x70, 0x72, 0x65, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x64, 0x18, 0x02, 0x20, 0x01,
0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x28, 0x03, 0x52, 0x02, 0x63, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
0x6e, 0x1a, 0x3e, 0x0a, 0x08, 0x4e, 0x70, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x44, 0x0a, 0x14,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x50, 0x43, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x2e, 0x44, 0x42, 0x4e, 0x70, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72,
0x01, 0x22, 0x3d, 0x0a, 0x05, 0x44, 0x42, 0x4e, 0x70, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x64, 0x61, 0x6c, 0x2a, 0x9f, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x63, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x61,
0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x63, 0x6b, 0x57, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x61, 0x63,
0x22, 0x44, 0x0a, 0x14, 0x52, 0x50, 0x43, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x74, 0x6b, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x65, 0x6e,
0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x64, 0x6b, 0x57, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x65, 0x6e,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x61, 0x69, 0x74, 0x69,
0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x6e, 0x67, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x52,
0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x2a, 0x9f, 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x14,
0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64,
0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x45,
0x74, 0x74, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6e, 0x64, 0x10, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x65, 0x66, 0x65, 0x6e, 0x64, 0x6b, 0x57, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x66, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x57,
0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x10, 0x04, 0x12,
0x11, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x63,
0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x65,
0x6e, 0x67, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -1,59 +0,0 @@
package main
import (
"flag"
"fmt"
"go_dreamfactory/modules/version"
"go_dreamfactory/services"
"go_dreamfactory/sys/db"
"go_dreamfactory/lego"
"go_dreamfactory/lego/base/rpcx"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
)
/*
服务类型:mainte
服务描述:数据库维护以及GM后台接口 服务
*/
var (
conf = flag.String("conf", "./conf/version.yaml", "获取需要启动的服务配置文件") //启动服务的Id
)
/*服务启动的入口函数*/
func main() {
flag.Parse()
s := NewService(
rpcx.SetConfPath(*conf),
rpcx.SetVersion("1.0.0.0"),
)
s.OnInstallComp( //装备组件
//services.NewGateRouteComp(), //此服务需要接受用户的消息 需要装备网关组件
)
lego.Run(s, //运行模块
version.NewModule(),
)
}
func NewService(ops ...rpcx.Option) core.IService {
s := new(Service)
s.Configure(ops...)
return s
}
// worker 的服务对象定义
type Service struct {
services.ServiceBase
}
// 初始化worker需要的一些系统工具
func (this *Service) InitSys() {
this.ServiceBase.InitSys()
//存储系统
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
} else {
log.Infof("init sys.db success!")
}
}

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

View File

@ -8,35 +8,38 @@
package cfg package cfg
import "errors"
type GameRobotData struct { type GameRobotData struct {
_dataMap map[int32]*GameRobotDataData Robotid int32
_dataList []*GameRobotDataData Lvshow int32
Name string
Sex int32
Showid string
Betterid int32
} }
func NewGameRobotData(_buf []map[string]interface{}) (*GameRobotData, error) { const TypeId_GameRobotData = 2060865080
_dataList := make([]*GameRobotDataData, 0, len(_buf))
dataMap := make(map[int32]*GameRobotDataData) func (*GameRobotData) GetTypeId() int32 {
for _, _ele_ := range _buf { return 2060865080
if _v, err2 := DeserializeGameRobotDataData(_ele_); err2 != nil { }
return nil, err2
func (_v *GameRobotData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["robotid"].(float64); !_ok_ { err = errors.New("robotid error"); return }; _v.Robotid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lvshow"].(float64); !_ok_ { err = errors.New("lvshow error"); return }; _v.Lvshow = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sex"].(float64); !_ok_ { err = errors.New("sex error"); return }; _v.Sex = int32(_tempNum_) }
{ var _ok_ bool; if _v.Showid, _ok_ = _buf["showid"].(string); !_ok_ { err = errors.New("showid error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["betterid"].(float64); !_ok_ { err = errors.New("betterid error"); return }; _v.Betterid = int32(_tempNum_) }
return
}
func DeserializeGameRobotData(_buf map[string]interface{}) (*GameRobotData, error) {
v := &GameRobotData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else { } else {
_dataList = append(_dataList, _v) return nil, err
dataMap[_v.Robotid] = _v
} }
} }
return &GameRobotData{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameRobotData) GetDataMap() map[int32]*GameRobotDataData {
return table._dataMap
}
func (table *GameRobotData) GetDataList() []*GameRobotDataData {
return table._dataList
}
func (table *GameRobotData) Get(key int32) *GameRobotDataData {
return table._dataMap[key]
}

View File

@ -182,7 +182,7 @@ type Tables struct {
DrawPool *GameDrawPool DrawPool *GameDrawPool
DrawWeight *GameDrawWeight DrawWeight *GameDrawWeight
CardPool *GameCardPool CardPool *GameCardPool
RobotData *GameRobotData Robot *GameRobot
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -1216,10 +1216,10 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.CardPool, err = NewGameCardPool(buf) ; err != nil { if tables.CardPool, err = NewGameCardPool(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_robotdata") ; err != nil { if buf, err = loader("game_robot") ; err != nil {
return nil, err return nil, err
} }
if tables.RobotData, err = NewGameRobotData(buf) ; err != nil { if tables.Robot, err = NewGameRobot(buf) ; err != nil {
return nil, err return nil, err
} }
return tables, nil return tables, nil