This commit is contained in:
wh_zcy 2023-05-29 15:23:52 +08:00
commit 982697ea1c
89 changed files with 8717 additions and 20022 deletions

View File

@ -6,7 +6,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
], ],
@ -20,7 +20,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 2 "n": 2
} }
], ],
@ -34,7 +34,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 3 "n": 3
} }
], ],
@ -48,7 +48,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 4 "n": 4
} }
], ],

View File

@ -1,102 +0,0 @@
[
{
"num": 1,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 20
}
]
},
{
"num": 2,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 30
}
]
},
{
"num": 3,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 30
}
]
},
{
"num": 4,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 50
}
]
},
{
"num": 5,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 50
}
]
},
{
"num": 6,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 50
}
]
},
{
"num": 7,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
},
{
"num": 8,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 150
}
]
},
{
"num": 9,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
},
{
"num": 10,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 250
}
]
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -54,7 +54,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
}, },
{ {

View File

@ -8,7 +8,7 @@
"cityticket": [ "cityticket": [
{ {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 1 "n": 1
} }
], ],
@ -60,7 +60,7 @@
"cityticket": [ "cityticket": [
{ {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 1 "n": 1
} }
], ],
@ -113,7 +113,7 @@
"cityticket": [ "cityticket": [
{ {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 1 "n": 1
} }
], ],
@ -166,7 +166,7 @@
"cityticket": [ "cityticket": [
{ {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 1 "n": 1
} }
], ],
@ -218,7 +218,7 @@
"cityticket": [ "cityticket": [
{ {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 1 "n": 1
} }
], ],

View File

@ -6,7 +6,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 40 "n": 40
}, },
"moneynumtop": { "moneynumtop": {
@ -25,7 +25,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 45 "n": 45
}, },
"moneynumtop": { "moneynumtop": {
@ -50,7 +50,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 50 "n": 50
}, },
"moneynumtop": { "moneynumtop": {
@ -75,7 +75,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 55 "n": 55
}, },
"moneynumtop": { "moneynumtop": {
@ -100,7 +100,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 60 "n": 60
}, },
"moneynumtop": { "moneynumtop": {
@ -125,7 +125,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 65 "n": 65
}, },
"moneynumtop": { "moneynumtop": {
@ -150,7 +150,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 70 "n": 70
}, },
"moneynumtop": { "moneynumtop": {
@ -175,7 +175,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 75 "n": 75
}, },
"moneynumtop": { "moneynumtop": {
@ -200,7 +200,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 80 "n": 80
}, },
"moneynumtop": { "moneynumtop": {
@ -225,7 +225,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 85 "n": 85
}, },
"moneynumtop": { "moneynumtop": {
@ -250,7 +250,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 90 "n": 90
}, },
"moneynumtop": { "moneynumtop": {
@ -275,7 +275,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 95 "n": 95
}, },
"moneynumtop": { "moneynumtop": {
@ -300,7 +300,7 @@
"bagtagnum": 100, "bagtagnum": 100,
"tickettop": { "tickettop": {
"a": "item", "a": "item",
"t": "141002", "t": "10000005",
"n": 100 "n": 100
}, },
"moneynumtop": { "moneynumtop": {

View File

@ -1,33 +0,0 @@
[
{
"id": 1001,
"eventtype": 1,
"mustdo": 1,
"citystory": 101,
"citynormal": 102,
"cityabnormal": 103,
"worldtask": 210,
"traintips": {
"key": "caravan_caravan_event_traintips_1",
"text": "列车上来了外人,这个人看上去有很急切的事情,我们必须先解决这个再离开这里。"
},
"trainstory": 888,
"trainstorybad": 777,
"trainstorygood": 888,
"reword": [
{
"a": "item",
"t": "141001",
"n": 10
}
],
"exreword": [
10001
],
"unreword": [
1,
40
],
"eventtime": 500
}
]

View File

@ -5,7 +5,7 @@
"type": 1, "type": 1,
"datatype": 0, "datatype": 0,
"text": { "text": {
"key": "chat_expression_text_1", "key": "chat_system_text_1",
"text": "<font color=#ff3f3f>【system】</font> Good afternoon !" "text": "<font color=#ff3f3f>【system】</font> Good afternoon !"
}, },
"data": 0, "data": 0,
@ -28,7 +28,7 @@
"type": 1, "type": 1,
"datatype": 0, "datatype": 0,
"text": { "text": {
"key": "chat_expression_text_2", "key": "chat_system_text_2",
"text": "<font color=#ff3f3f>【system】</font> Good afternoon !" "text": "<font color=#ff3f3f>【system】</font> Good afternoon !"
}, },
"data": 0, "data": 0,
@ -49,7 +49,7 @@
"type": 1, "type": 1,
"datatype": 0, "datatype": 0,
"text": { "text": {
"key": "chat_expression_text_3", "key": "chat_system_text_3",
"text": "<font color=#ff3f3f>【system】</font> Good afternoon !" "text": "<font color=#ff3f3f>【system】</font> Good afternoon !"
}, },
"data": 0, "data": 0,
@ -70,7 +70,7 @@
"type": 2, "type": 2,
"datatype": 0, "datatype": 0,
"text": { "text": {
"key": "chat_expression_text_4", "key": "chat_system_text_4",
"text": "<font color=#ff3f3f>【system】</font> Welcome Dream Works !" "text": "<font color=#ff3f3f>【system】</font> Welcome Dream Works !"
}, },
"data": 0, "data": 0,
@ -85,7 +85,7 @@
"type": 3, "type": 3,
"datatype": 2, "datatype": 2,
"text": { "text": {
"key": "chat_expression_text_5", "key": "chat_system_text_5",
"text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 13!" "text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 13!"
}, },
"data": 13, "data": 13,
@ -100,7 +100,7 @@
"type": 3, "type": 3,
"datatype": 2, "datatype": 2,
"text": { "text": {
"key": "chat_expression_text_6", "key": "chat_system_text_6",
"text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 14!" "text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 14!"
}, },
"data": 14, "data": 14,
@ -115,7 +115,7 @@
"type": 3, "type": 3,
"datatype": 2, "datatype": 2,
"text": { "text": {
"key": "chat_expression_text_7", "key": "chat_system_text_7",
"text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 15!" "text": "<font color=#ffc73f>【hearsay】%v</font> through unremitting efforts, the %vhas been strengthened to level 15!"
}, },
"data": 15, "data": 15,
@ -130,7 +130,7 @@
"type": 4, "type": 4,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_8", "key": "chat_system_text_8",
"text": "<font color=#ffc73f>【hearsay】%v</font> breakthrough 100 floors of the tower!" "text": "<font color=#ffc73f>【hearsay】%v</font> breakthrough 100 floors of the tower!"
}, },
"data": 100, "data": 100,
@ -145,7 +145,7 @@
"type": 5, "type": 5,
"datatype": 0, "datatype": 0,
"text": { "text": {
"key": "chat_expression_text_9", "key": "chat_system_text_9",
"text": "服务器即将维护,请及时下线避免数据丢失!" "text": "服务器即将维护,请及时下线避免数据丢失!"
}, },
"data": 5, "data": 5,
@ -160,7 +160,7 @@
"type": 6, "type": 6,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_10", "key": "chat_system_text_10",
"text": "【传闻】%v通关了赛季塔50层" "text": "【传闻】%v通关了赛季塔50层"
}, },
"data": 50, "data": 50,
@ -175,7 +175,7 @@
"type": 7, "type": 7,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_11", "key": "chat_system_text_11",
"text": "【传闻】%v已经%v培养至60级" "text": "【传闻】%v已经%v培养至60级"
}, },
"data": 60, "data": 60,
@ -190,7 +190,7 @@
"type": 8, "type": 8,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_12", "key": "chat_system_text_12",
"text": "【传闻】%v已经%v培养至6星" "text": "【传闻】%v已经%v培养至6星"
}, },
"data": 5, "data": 5,
@ -205,7 +205,7 @@
"type": 9, "type": 9,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_13", "key": "chat_system_text_13",
"text": "【传闻】%v已经%v技能培养至满级" "text": "【传闻】%v已经%v技能培养至满级"
}, },
"data": 5, "data": 5,
@ -220,7 +220,7 @@
"type": 10, "type": 10,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_14", "key": "chat_system_text_14",
"text": "【传闻】%v已经%v共鸣至满级" "text": "【传闻】%v已经%v共鸣至满级"
}, },
"data": 5, "data": 5,
@ -235,7 +235,7 @@
"type": 11, "type": 11,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_15", "key": "chat_system_text_15",
"text": "【传闻】%v已经%v觉醒至满级" "text": "【传闻】%v已经%v觉醒至满级"
}, },
"data": 5, "data": 5,
@ -250,7 +250,7 @@
"type": 12, "type": 12,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_16", "key": "chat_system_text_16",
"text": "【传闻】%v已经达到了60级!" "text": "【传闻】%v已经达到了60级!"
}, },
"data": 60, "data": 60,
@ -265,7 +265,7 @@
"type": 13, "type": 13,
"datatype": 3, "datatype": 3,
"text": { "text": {
"key": "chat_expression_text_17", "key": "chat_system_text_17",
"text": "【传闻】%v在招募中获得了v%!" "text": "【传闻】%v在招募中获得了v%!"
}, },
"data": 5, "data": 5,
@ -280,7 +280,7 @@
"type": 14, "type": 14,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_18", "key": "chat_system_text_18",
"text": "【传闻】%v通关了维京远征火焰泰坦难度10" "text": "【传闻】%v通关了维京远征火焰泰坦难度10"
}, },
"data": 10, "data": 10,
@ -295,7 +295,7 @@
"type": 14, "type": 14,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_19", "key": "chat_system_text_19",
"text": "【传闻】%v通关了维京远征冰霜泰坦难度10" "text": "【传闻】%v通关了维京远征冰霜泰坦难度10"
}, },
"data": 10, "data": 10,
@ -310,7 +310,7 @@
"type": 14, "type": 14,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_20", "key": "chat_system_text_20",
"text": "【传闻】%v通关了维京远征森林泰坦难度10" "text": "【传闻】%v通关了维京远征森林泰坦难度10"
}, },
"data": 10, "data": 10,
@ -325,7 +325,7 @@
"type": 14, "type": 14,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_21", "key": "chat_system_text_21",
"text": "【传闻】%v通关了维京远征冰霜泰坦武器难度10" "text": "【传闻】%v通关了维京远征冰霜泰坦武器难度10"
}, },
"data": 10, "data": 10,
@ -340,7 +340,7 @@
"type": 14, "type": 14,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_22", "key": "chat_system_text_22",
"text": "【传闻】%v通关了维京远征森林泰坦饰品难度10" "text": "【传闻】%v通关了维京远征森林泰坦饰品难度10"
}, },
"data": 10, "data": 10,
@ -355,7 +355,7 @@
"type": 15, "type": 15,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_23", "key": "chat_system_text_23",
"text": "【传闻】%v通关了狩猎巨型猩猩难度10" "text": "【传闻】%v通关了狩猎巨型猩猩难度10"
}, },
"data": 10, "data": 10,
@ -370,7 +370,7 @@
"type": 15, "type": 15,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_24", "key": "chat_system_text_24",
"text": "【传闻】%v通关了狩猎火龙难度10" "text": "【传闻】%v通关了狩猎火龙难度10"
}, },
"data": 10, "data": 10,
@ -385,7 +385,7 @@
"type": 15, "type": 15,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_25", "key": "chat_system_text_25",
"text": "【传闻】%v通关了狩猎大厨难度10" "text": "【传闻】%v通关了狩猎大厨难度10"
}, },
"data": 10, "data": 10,
@ -400,7 +400,7 @@
"type": 15, "type": 15,
"datatype": 1, "datatype": 1,
"text": { "text": {
"key": "chat_expression_text_26", "key": "chat_system_text_26",
"text": "【传闻】%v通关了狩猎太空海星难度10" "text": "【传闻】%v通关了狩猎太空海星难度10"
}, },
"data": 10, "data": 10,

View File

@ -17,7 +17,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -29,7 +29,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -55,7 +55,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -67,7 +67,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -93,7 +93,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -105,7 +105,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -131,7 +131,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -143,7 +143,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -169,7 +169,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -181,7 +181,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -207,7 +207,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -219,7 +219,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -245,7 +245,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -257,7 +257,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -283,7 +283,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -295,7 +295,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -321,7 +321,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -333,7 +333,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -359,7 +359,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -371,7 +371,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],

View File

@ -26,7 +26,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -70,7 +70,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],

View File

@ -8,7 +8,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 166, "tasktime": 132,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_1", "key": "pandamas_pandamas_dispatch_tasktxt_1",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -56,7 +56,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 142, "tasktime": 152,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_2", "key": "pandamas_pandamas_dispatch_tasktxt_2",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -104,7 +104,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 175,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_3", "key": "pandamas_pandamas_dispatch_tasktxt_3",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -152,7 +152,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 88, "tasktime": 130,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_4", "key": "pandamas_pandamas_dispatch_tasktxt_4",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -200,7 +200,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 96, "tasktime": 89,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_5", "key": "pandamas_pandamas_dispatch_tasktxt_5",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -248,7 +248,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 104, "tasktime": 72,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_6", "key": "pandamas_pandamas_dispatch_tasktxt_6",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -296,7 +296,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 102, "tasktime": 173,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_7", "key": "pandamas_pandamas_dispatch_tasktxt_7",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -344,7 +344,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 84, "tasktime": 106,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_8", "key": "pandamas_pandamas_dispatch_tasktxt_8",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -392,7 +392,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 131, "tasktime": 81,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_9", "key": "pandamas_pandamas_dispatch_tasktxt_9",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -440,7 +440,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 164, "tasktime": 157,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_10", "key": "pandamas_pandamas_dispatch_tasktxt_10",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -488,7 +488,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 112, "tasktime": 115,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_11", "key": "pandamas_pandamas_dispatch_tasktxt_11",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -536,7 +536,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 135, "tasktime": 158,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_12", "key": "pandamas_pandamas_dispatch_tasktxt_12",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -584,7 +584,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 68, "tasktime": 100,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_13", "key": "pandamas_pandamas_dispatch_tasktxt_13",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -632,7 +632,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 163, "tasktime": 152,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_14", "key": "pandamas_pandamas_dispatch_tasktxt_14",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -680,7 +680,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 159, "tasktime": 100,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_15", "key": "pandamas_pandamas_dispatch_tasktxt_15",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -728,7 +728,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 60, "tasktime": 177,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_16", "key": "pandamas_pandamas_dispatch_tasktxt_16",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -776,7 +776,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 100, "tasktime": 68,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_17", "key": "pandamas_pandamas_dispatch_tasktxt_17",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -824,7 +824,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 123, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_18", "key": "pandamas_pandamas_dispatch_tasktxt_18",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -872,7 +872,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 104, "tasktime": 118,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_19", "key": "pandamas_pandamas_dispatch_tasktxt_19",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -920,7 +920,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 110, "tasktime": 163,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_20", "key": "pandamas_pandamas_dispatch_tasktxt_20",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -968,7 +968,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 150, "tasktime": 67,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_21", "key": "pandamas_pandamas_dispatch_tasktxt_21",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1016,7 +1016,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 164, "tasktime": 65,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_22", "key": "pandamas_pandamas_dispatch_tasktxt_22",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1064,7 +1064,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 63, "tasktime": 86,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_23", "key": "pandamas_pandamas_dispatch_tasktxt_23",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1112,7 +1112,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 76, "tasktime": 73,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_24", "key": "pandamas_pandamas_dispatch_tasktxt_24",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1160,7 +1160,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 130, "tasktime": 61,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_25", "key": "pandamas_pandamas_dispatch_tasktxt_25",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1208,7 +1208,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 71, "tasktime": 75,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_26", "key": "pandamas_pandamas_dispatch_tasktxt_26",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1256,7 +1256,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 101, "tasktime": 172,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_27", "key": "pandamas_pandamas_dispatch_tasktxt_27",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1304,7 +1304,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 94, "tasktime": 140,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_28", "key": "pandamas_pandamas_dispatch_tasktxt_28",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1352,7 +1352,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 168, "tasktime": 80,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_29", "key": "pandamas_pandamas_dispatch_tasktxt_29",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1400,7 +1400,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 83, "tasktime": 85,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_30", "key": "pandamas_pandamas_dispatch_tasktxt_30",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1448,7 +1448,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 109, "tasktime": 112,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_31", "key": "pandamas_pandamas_dispatch_tasktxt_31",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1496,7 +1496,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 63, "tasktime": 151,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_32", "key": "pandamas_pandamas_dispatch_tasktxt_32",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1544,7 +1544,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 137, "tasktime": 88,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_33", "key": "pandamas_pandamas_dispatch_tasktxt_33",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1592,7 +1592,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 68, "tasktime": 111,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_34", "key": "pandamas_pandamas_dispatch_tasktxt_34",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1640,7 +1640,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 153, "tasktime": 64,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_35", "key": "pandamas_pandamas_dispatch_tasktxt_35",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1688,7 +1688,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 113, "tasktime": 117,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_36", "key": "pandamas_pandamas_dispatch_tasktxt_36",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1736,7 +1736,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 142,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_37", "key": "pandamas_pandamas_dispatch_tasktxt_37",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1784,7 +1784,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 133, "tasktime": 87,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_38", "key": "pandamas_pandamas_dispatch_tasktxt_38",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1832,7 +1832,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 126, "tasktime": 178,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_39", "key": "pandamas_pandamas_dispatch_tasktxt_39",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1880,7 +1880,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 103, "tasktime": 76,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_40", "key": "pandamas_pandamas_dispatch_tasktxt_40",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1928,7 +1928,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 62, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_41", "key": "pandamas_pandamas_dispatch_tasktxt_41",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1976,7 +1976,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 60,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_42", "key": "pandamas_pandamas_dispatch_tasktxt_42",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2024,7 +2024,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 138, "tasktime": 63,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_43", "key": "pandamas_pandamas_dispatch_tasktxt_43",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2072,7 +2072,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 158, "tasktime": 92,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_44", "key": "pandamas_pandamas_dispatch_tasktxt_44",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2120,7 +2120,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 152, "tasktime": 100,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_45", "key": "pandamas_pandamas_dispatch_tasktxt_45",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2168,7 +2168,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 117, "tasktime": 109,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_46", "key": "pandamas_pandamas_dispatch_tasktxt_46",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2216,7 +2216,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 79, "tasktime": 96,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_47", "key": "pandamas_pandamas_dispatch_tasktxt_47",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2264,7 +2264,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 167, "tasktime": 141,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_48", "key": "pandamas_pandamas_dispatch_tasktxt_48",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2312,7 +2312,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 154, "tasktime": 167,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_49", "key": "pandamas_pandamas_dispatch_tasktxt_49",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2360,7 +2360,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 75, "tasktime": 162,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_50", "key": "pandamas_pandamas_dispatch_tasktxt_50",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2408,7 +2408,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 115, "tasktime": 89,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_51", "key": "pandamas_pandamas_dispatch_tasktxt_51",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2456,7 +2456,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 145, "tasktime": 159,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_52", "key": "pandamas_pandamas_dispatch_tasktxt_52",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2552,7 +2552,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 97, "tasktime": 122,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_54", "key": "pandamas_pandamas_dispatch_tasktxt_54",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2600,7 +2600,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 100, "tasktime": 67,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_55", "key": "pandamas_pandamas_dispatch_tasktxt_55",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2648,7 +2648,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 127, "tasktime": 88,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_56", "key": "pandamas_pandamas_dispatch_tasktxt_56",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2696,7 +2696,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 153, "tasktime": 103,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_57", "key": "pandamas_pandamas_dispatch_tasktxt_57",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2744,7 +2744,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 173, "tasktime": 159,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_58", "key": "pandamas_pandamas_dispatch_tasktxt_58",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2792,7 +2792,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 140, "tasktime": 72,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_59", "key": "pandamas_pandamas_dispatch_tasktxt_59",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2840,7 +2840,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 157, "tasktime": 66,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_60", "key": "pandamas_pandamas_dispatch_tasktxt_60",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2888,7 +2888,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 164, "tasktime": 167,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_61", "key": "pandamas_pandamas_dispatch_tasktxt_61",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2936,7 +2936,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 145, "tasktime": 61,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_62", "key": "pandamas_pandamas_dispatch_tasktxt_62",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2984,7 +2984,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 148, "tasktime": 77,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_63", "key": "pandamas_pandamas_dispatch_tasktxt_63",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3032,7 +3032,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 164, "tasktime": 169,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_64", "key": "pandamas_pandamas_dispatch_tasktxt_64",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3080,7 +3080,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 68, "tasktime": 142,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_65", "key": "pandamas_pandamas_dispatch_tasktxt_65",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3128,7 +3128,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 92, "tasktime": 73,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_66", "key": "pandamas_pandamas_dispatch_tasktxt_66",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3176,7 +3176,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 91, "tasktime": 90,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_67", "key": "pandamas_pandamas_dispatch_tasktxt_67",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3224,7 +3224,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 157, "tasktime": 82,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_68", "key": "pandamas_pandamas_dispatch_tasktxt_68",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3272,7 +3272,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 65, "tasktime": 142,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_69", "key": "pandamas_pandamas_dispatch_tasktxt_69",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3320,7 +3320,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 152, "tasktime": 147,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_70", "key": "pandamas_pandamas_dispatch_tasktxt_70",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3368,7 +3368,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 99, "tasktime": 162,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_71", "key": "pandamas_pandamas_dispatch_tasktxt_71",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3416,7 +3416,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 84, "tasktime": 110,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_72", "key": "pandamas_pandamas_dispatch_tasktxt_72",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3464,7 +3464,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 142, "tasktime": 180,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_73", "key": "pandamas_pandamas_dispatch_tasktxt_73",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3512,7 +3512,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 105, "tasktime": 139,
"tasktxt": { "tasktxt": {
"key": "pandamas_pandamas_dispatch_tasktxt_74", "key": "pandamas_pandamas_dispatch_tasktxt_74",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"

View File

@ -7,7 +7,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "90001", "t": "11025001",
"n": 1 "n": 1
} }
], ],
@ -19,14 +19,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 3 "n": 3
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 2 "n": 2
} }
] ]
@ -39,7 +39,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "535001", "t": "11035001",
"n": 1 "n": 1
} }
], ],
@ -51,14 +51,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]

View File

@ -804,7 +804,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
} }
], ],
@ -818,7 +818,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
} }
], ],
@ -832,7 +832,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
} }
], ],
@ -846,7 +846,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
} }
], ],
@ -860,7 +860,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
} }
], ],
@ -874,7 +874,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -2260,7 +2260,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "524004", "t": "11024004",
"n": 100 "n": 100
} }
], ],
@ -2274,7 +2274,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "525001", "t": "11025001",
"n": 100 "n": 100
} }
], ],
@ -2288,7 +2288,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "525004", "t": "11025004",
"n": 100 "n": 100
} }
], ],
@ -2302,7 +2302,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "524008", "t": "11024008",
"n": 100 "n": 100
} }
], ],
@ -2316,7 +2316,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "524003", "t": "11024003",
"n": 100 "n": 100
} }
], ],
@ -2330,7 +2330,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "515005", "t": "11015005",
"n": 100 "n": 100
} }
], ],
@ -2344,7 +2344,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "514001", "t": "11014001",
"n": 100 "n": 100
} }
], ],
@ -2358,7 +2358,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "514003", "t": "11014003",
"n": 100 "n": 100
} }
], ],
@ -2372,7 +2372,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "534006", "t": "11034006",
"n": 100 "n": 100
} }
], ],
@ -2386,7 +2386,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "534002", "t": "11034002",
"n": 100 "n": 100
} }
], ],
@ -2400,7 +2400,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "524002", "t": "11024002",
"n": 100 "n": 100
} }
], ],
@ -2414,7 +2414,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "535001", "t": "11035001",
"n": 100 "n": 100
} }
], ],
@ -2428,7 +2428,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "515004", "t": "11015004",
"n": 100 "n": 100
} }
], ],
@ -2442,7 +2442,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "544005", "t": "11044005",
"n": 100 "n": 100
} }
], ],
@ -2456,7 +2456,7 @@
"prize": [ "prize": [
{ {
"a": "item", "a": "item",
"t": "544006", "t": "11044006",
"n": 100 "n": 100
} }
], ],

View File

@ -98,14 +98,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -209,14 +209,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -320,14 +320,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -431,14 +431,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -542,14 +542,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -653,14 +653,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -764,14 +764,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -875,14 +875,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -986,14 +986,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1097,14 +1097,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1208,14 +1208,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1319,14 +1319,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1430,14 +1430,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1541,14 +1541,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1652,14 +1652,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1763,14 +1763,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1874,14 +1874,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -1985,14 +1985,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -2096,14 +2096,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -2207,14 +2207,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]
@ -2318,14 +2318,14 @@
"ps_consume": [ "ps_consume": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 6 "n": 6
} }
], ],
"ps_mg": [ "ps_mg": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 5 "n": 5
} }
] ]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -51,7 +51,7 @@
"duplicate_removal": 1, "duplicate_removal": 1,
"base_pool_cost": { "base_pool_cost": {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
}, },
"camp1_pool_cost": { "camp1_pool_cost": {
@ -76,7 +76,7 @@
}, },
"base_pool_10cost": { "base_pool_10cost": {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
"camp1_pool_10cost": { "camp1_pool_10cost": {
@ -217,7 +217,7 @@
"ArenaTicket_RecoveryTime": 144, "ArenaTicket_RecoveryTime": 144,
"ArenaTicket_cos": { "ArenaTicket_cos": {
"a": "item", "a": "item",
"t": "100004", "t": "18000004",
"n": 1 "n": 1
}, },
"VikingExpedition_RecoveryTime": 144, "VikingExpedition_RecoveryTime": 144,
@ -277,7 +277,7 @@
], ],
"cops_BuyGet": { "cops_BuyGet": {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 1 "n": 1
}, },
"cops_MaxBuyNum": 10, "cops_MaxBuyNum": 10,
@ -435,7 +435,7 @@
], ],
"ps_item": { "ps_item": {
"a": "item", "a": "item",
"t": "10017", "t": "10000003",
"n": 1 "n": 1
}, },
"Inletopening": 1, "Inletopening": 1,
@ -456,7 +456,7 @@
}, },
"recruit": { "recruit": {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 0 "n": 0
}, },
"GuildBoss_buy": [ "GuildBoss_buy": [
@ -514,7 +514,7 @@
"GuildBoss_InitialNum": 5, "GuildBoss_InitialNum": 5,
"GuildBoss_BuyGet": { "GuildBoss_BuyGet": {
"a": "item", "a": "item",
"t": "100006", "t": "18000006",
"n": 1 "n": 1
}, },
"GuildBoss_MaxBuyNum": 5, "GuildBoss_MaxBuyNum": 5,
@ -530,7 +530,7 @@
], ],
"generaltp": { "generaltp": {
"a": "item", "a": "item",
"t": "500000", "t": "10000002",
"n": 0 "n": 0
}, },
"smithy_PurchaseType": [ "smithy_PurchaseType": [
@ -539,13 +539,13 @@
], ],
"raise_temperature": { "raise_temperature": {
"a": "item", "a": "item",
"t": "120104", "t": "13000004",
"n": 1 "n": 1
}, },
"raise_temperatureNum": 50, "raise_temperatureNum": 50,
"exemption_TemperatureCos": { "exemption_TemperatureCos": {
"a": "item", "a": "item",
"t": "120103", "t": "13000003",
"n": 1 "n": 1
}, },
"exemption_TemperatureCosNum": 50, "exemption_TemperatureCosNum": 50,
@ -561,7 +561,7 @@
"dispatch_numoftimes": 60, "dispatch_numoftimes": 60,
"dispatch_numtools": { "dispatch_numtools": {
"a": "item", "a": "item",
"t": "100001", "t": "18000001",
"n": 1 "n": 1
}, },
"dispatch_npctimes": 2, "dispatch_npctimes": 2,
@ -571,7 +571,7 @@
"g": [ "g": [
{ {
"a": "item", "a": "item",
"t": "120003", "t": "13001003",
"n": 1 "n": 1
}, },
{ {
@ -586,7 +586,7 @@
"g": [ "g": [
{ {
"a": "item", "a": "item",
"t": "120003", "t": "13001003",
"n": 2 "n": 2
}, },
{ {
@ -601,7 +601,7 @@
"g": [ "g": [
{ {
"a": "item", "a": "item",
"t": "120003", "t": "13001003",
"n": 4 "n": 4
} }
] ]
@ -656,7 +656,7 @@
"puzzlePromptNum": 5, "puzzlePromptNum": 5,
"Daily_Tips": { "Daily_Tips": {
"a": "item", "a": "item",
"t": "151001", "t": "10000006",
"n": 1 "n": 1
}, },
"Daily_Num": 2, "Daily_Num": 2,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,12 +18,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -66,12 +66,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -114,12 +114,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -162,12 +162,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -210,12 +210,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -258,12 +258,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -306,12 +306,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -354,12 +354,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -402,12 +402,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020101", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020102", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -450,12 +450,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010111", "t": "15000101",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010111", "t": "15000201",
"n": 1 "n": 1
} }
], ],
@ -498,12 +498,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -546,12 +546,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -594,12 +594,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -642,12 +642,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -690,12 +690,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -738,12 +738,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -786,12 +786,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -834,12 +834,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -882,12 +882,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -930,12 +930,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030203", "t": "15000204",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030204", "t": "15000204",
"n": 1 "n": 1
} }
], ],
@ -978,12 +978,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1026,12 +1026,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1074,12 +1074,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1122,12 +1122,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1170,12 +1170,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1218,12 +1218,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1266,12 +1266,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1314,12 +1314,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1362,12 +1362,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1410,12 +1410,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030305", "t": "15000302",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030305", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1458,12 +1458,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1506,12 +1506,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1554,12 +1554,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1602,12 +1602,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14010407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1650,12 +1650,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1698,12 +1698,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1746,12 +1746,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1794,12 +1794,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14020407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1842,12 +1842,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030407", "t": "15000303",
"n": 1 "n": 1
} }
], ],
@ -1890,12 +1890,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "14030407", "t": "15000304",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "14030407", "t": "15000303",
"n": 1 "n": 1
} }
], ],

View File

@ -1,102 +0,0 @@
[
{
"buynum": 1,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 10
}
]
},
{
"buynum": 2,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 20
}
]
},
{
"buynum": 3,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 30
}
]
},
{
"buynum": 4,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 40
}
]
},
{
"buynum": 5,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 50
}
]
},
{
"buynum": 6,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 60
}
]
},
{
"buynum": 7,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 70
}
]
},
{
"buynum": 8,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 80
}
]
},
{
"buynum": 9,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 90
}
]
},
{
"buynum": 10,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
}
]

View File

@ -24,7 +24,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 100 "n": 100
} }
] ]
@ -74,7 +74,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600001", "t": "10000004",
"n": 100 "n": 100
} }
] ]
@ -84,7 +84,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "10017", "t": "10000003",
"n": 100 "n": 100
} }
] ]
@ -94,7 +94,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "100100", "t": "18000007",
"n": 100 "n": 100
} }
] ]
@ -104,7 +104,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "100004", "t": "18000004",
"n": 10 "n": 10
} }
] ]
@ -114,7 +114,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 100 "n": 100
} }
] ]
@ -124,7 +124,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 100 "n": 100
} }
] ]
@ -134,7 +134,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 100 "n": 100
} }
] ]
@ -144,7 +144,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600005", "t": "10000011",
"n": 100 "n": 100
} }
] ]
@ -154,7 +154,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600006", "t": "10000012",
"n": 100 "n": 100
} }
] ]
@ -164,7 +164,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "600007", "t": "10000013",
"n": 100 "n": 100
} }
] ]
@ -224,7 +224,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120001", "t": "13001001",
"n": 300 "n": 300
} }
] ]
@ -234,7 +234,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120002", "t": "13001002",
"n": 300 "n": 300
} }
] ]
@ -244,7 +244,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120003", "t": "13001003",
"n": 300 "n": 300
} }
] ]
@ -254,7 +254,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120004", "t": "13002001",
"n": 300 "n": 300
} }
] ]
@ -264,7 +264,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120005", "t": "13002002",
"n": 300 "n": 300
} }
] ]
@ -274,7 +274,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120006", "t": "13002003",
"n": 300 "n": 300
} }
] ]
@ -284,7 +284,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120007", "t": "13003001",
"n": 300 "n": 300
} }
] ]
@ -294,7 +294,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120008", "t": "13003002",
"n": 300 "n": 300
} }
] ]
@ -304,7 +304,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120009", "t": "13003003",
"n": 300 "n": 300
} }
] ]
@ -314,7 +314,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120101", "t": "13000001",
"n": 300 "n": 300
} }
] ]
@ -324,7 +324,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120102", "t": "13000002",
"n": 300 "n": 300
} }
] ]
@ -334,7 +334,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120103", "t": "13000003",
"n": 300 "n": 300
} }
] ]
@ -344,7 +344,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "120104", "t": "13000004",
"n": 300 "n": 300
} }
] ]
@ -354,7 +354,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "100001", "t": "18000001",
"n": 60 "n": 60
} }
] ]
@ -384,7 +384,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132001", "t": "14020001",
"n": 50 "n": 50
} }
] ]
@ -394,7 +394,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132002", "t": "14020002",
"n": 50 "n": 50
} }
] ]
@ -404,7 +404,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132003", "t": "14020003",
"n": 50 "n": 50
} }
] ]
@ -414,7 +414,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132004", "t": "14020004",
"n": 50 "n": 50
} }
] ]
@ -424,7 +424,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132005", "t": "14020005",
"n": 50 "n": 50
} }
] ]
@ -434,7 +434,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132006", "t": "14020006",
"n": 50 "n": 50
} }
] ]
@ -444,7 +444,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132007", "t": "14020007",
"n": 50 "n": 50
} }
] ]
@ -454,7 +454,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132008", "t": "14020008",
"n": 50 "n": 50
} }
] ]
@ -464,7 +464,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "132009", "t": "14020009",
"n": 50 "n": 50
} }
] ]
@ -474,7 +474,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "131001", "t": "14010001",
"n": 50 "n": 50
} }
] ]
@ -484,7 +484,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "131002", "t": "14010002",
"n": 50 "n": 50
} }
] ]
@ -494,7 +494,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "131003", "t": "14010003",
"n": 50 "n": 50
} }
] ]
@ -504,7 +504,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "131004", "t": "14010004",
"n": 50 "n": 50
} }
] ]
@ -514,7 +514,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "131005", "t": "14010005",
"n": 50 "n": 50
} }
] ]
@ -1614,7 +1614,7 @@
"var": [ "var": [
{ {
"a": "item", "a": "item",
"t": "151001", "t": "10000006",
"n": 10 "n": 10
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132000", "t": "14020000",
"n": 1 "n": 1
}, },
"itemdes": "体力", "itemdes": "体力",
@ -34,7 +34,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132001", "t": "14020001",
"n": 1 "n": 1
}, },
"itemdes": "精力", "itemdes": "精力",
@ -58,7 +58,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132002", "t": "14020002",
"n": 1 "n": 1
}, },
"itemdes": "凤文君", "itemdes": "凤文君",
@ -82,7 +82,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132003", "t": "14020003",
"n": 1 "n": 1
}, },
"itemdes": "月清", "itemdes": "月清",
@ -106,7 +106,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132004", "t": "14020004",
"n": 1 "n": 1
}, },
"itemdes": "曹漫野", "itemdes": "曹漫野",
@ -130,7 +130,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132005", "t": "14020005",
"n": 1 "n": 1
}, },
"itemdes": "璐璐", "itemdes": "璐璐",
@ -154,7 +154,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132006", "t": "14020006",
"n": 1 "n": 1
}, },
"itemdes": "柳名传", "itemdes": "柳名传",
@ -178,7 +178,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132007", "t": "14020007",
"n": 1 "n": 1
}, },
"itemdes": "薛浅浅", "itemdes": "薛浅浅",
@ -202,7 +202,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132008", "t": "14020008",
"n": 1 "n": 1
}, },
"itemdes": "白素素", "itemdes": "白素素",
@ -226,7 +226,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "132009", "t": "14020009",
"n": 1 "n": 1
}, },
"itemdes": "晴紫", "itemdes": "晴紫",
@ -250,7 +250,7 @@
"groupnum": 2, "groupnum": 2,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131001", "t": "14010001",
"n": 1 "n": 1
}, },
"itemdes": "测试道具1", "itemdes": "测试道具1",
@ -274,7 +274,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131002", "t": "14010002",
"n": 1 "n": 1
}, },
"itemdes": "测试道具2", "itemdes": "测试道具2",
@ -298,7 +298,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131003", "t": "14010003",
"n": 1 "n": 1
}, },
"itemdes": "测试道具3", "itemdes": "测试道具3",
@ -322,7 +322,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131004", "t": "14010004",
"n": 1 "n": 1
}, },
"itemdes": "测试道具4", "itemdes": "测试道具4",
@ -346,7 +346,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131005", "t": "14010005",
"n": 1 "n": 1
}, },
"itemdes": "测试道具5", "itemdes": "测试道具5",
@ -658,7 +658,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131003", "t": "14010003",
"n": 1 "n": 1
}, },
"itemdes": "测试道具18", "itemdes": "测试道具18",
@ -682,7 +682,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131004", "t": "14010004",
"n": 1 "n": 1
}, },
"itemdes": "测试道具19", "itemdes": "测试道具19",
@ -706,7 +706,7 @@
"groupnum": 0, "groupnum": 0,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "131005", "t": "14010005",
"n": 1 "n": 1
}, },
"itemdes": "测试道具20", "itemdes": "测试道具20",
@ -730,7 +730,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14010111", "t": "15000101",
"n": 1 "n": 1
}, },
"itemdes": "热火药剂", "itemdes": "热火药剂",
@ -754,7 +754,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14020111", "t": "15000201",
"n": 1 "n": 1
}, },
"itemdes": "烈焰精华", "itemdes": "烈焰精华",
@ -778,7 +778,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14030111", "t": "15000301",
"n": 1 "n": 1
}, },
"itemdes": "爆炸神水", "itemdes": "爆炸神水",
@ -802,7 +802,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14010212", "t": "15000102",
"n": 1 "n": 1
}, },
"itemdes": "冷水药剂", "itemdes": "冷水药剂",
@ -826,7 +826,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14020212", "t": "15000202",
"n": 1 "n": 1
}, },
"itemdes": "凝露精华", "itemdes": "凝露精华",
@ -850,7 +850,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14030212", "t": "15000302",
"n": 1 "n": 1
}, },
"itemdes": "深渊神水", "itemdes": "深渊神水",
@ -874,7 +874,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14010313", "t": "15000103",
"n": 1 "n": 1
}, },
"itemdes": "古木药剂", "itemdes": "古木药剂",
@ -898,7 +898,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14020313", "t": "15000203",
"n": 1 "n": 1
}, },
"itemdes": "荆棘精华", "itemdes": "荆棘精华",
@ -922,7 +922,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14030313", "t": "15000303",
"n": 1 "n": 1
}, },
"itemdes": "魔森神水", "itemdes": "魔森神水",
@ -946,7 +946,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14010414", "t": "15000104",
"n": 1 "n": 1
}, },
"itemdes": "微尘药剂", "itemdes": "微尘药剂",
@ -970,7 +970,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14020414", "t": "15000204",
"n": 1 "n": 1
}, },
"itemdes": "曙光精华", "itemdes": "曙光精华",
@ -994,7 +994,7 @@
"groupnum": 1, "groupnum": 1,
"itemid": { "itemid": {
"a": "item", "a": "item",
"t": "14030414", "t": "15000304",
"n": 1 "n": 1
}, },
"itemdes": "秘境神水", "itemdes": "秘境神水",

View File

@ -133,7 +133,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -221,7 +221,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -309,7 +309,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -397,7 +397,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -485,7 +485,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -573,7 +573,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -661,7 +661,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -749,7 +749,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -838,7 +838,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -927,7 +927,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1016,7 +1016,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1105,7 +1105,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1193,7 +1193,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1281,7 +1281,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1370,7 +1370,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1459,7 +1459,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1548,7 +1548,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1637,7 +1637,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1725,7 +1725,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1813,7 +1813,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1902,7 +1902,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -1991,7 +1991,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {
@ -2080,7 +2080,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
}, },
{ {

File diff suppressed because it is too large Load Diff

View File

@ -3131,7 +3131,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],

View File

@ -6,7 +6,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
}, },
{ {
@ -33,7 +33,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -50,7 +50,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
}, },
{ {
@ -77,7 +77,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -94,7 +94,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -116,7 +116,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -138,7 +138,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -160,7 +160,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -182,7 +182,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -204,7 +204,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -226,7 +226,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -248,7 +248,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -270,7 +270,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -292,7 +292,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -314,7 +314,7 @@
"reward": [ "reward": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {

View File

@ -134,7 +134,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -315,7 +315,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -360,7 +360,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -495,7 +495,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -778,7 +778,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -823,7 +823,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -1105,7 +1105,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -1148,7 +1148,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -1191,7 +1191,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -1234,7 +1234,7 @@
"ants": [ "ants": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],

View File

@ -5,7 +5,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -16,7 +16,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -27,7 +27,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -38,7 +38,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -49,7 +49,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -60,7 +60,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -71,7 +71,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -82,7 +82,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -93,7 +93,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -104,7 +104,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -115,7 +115,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -126,7 +126,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -137,7 +137,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -148,7 +148,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -159,7 +159,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]
@ -170,7 +170,7 @@
"item_id": [ "item_id": [
{ {
"a": "item", "a": "item",
"t": "100101", "t": "18000008",
"n": 1 "n": 1
} }
] ]

View File

@ -91,7 +91,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60001", "t": "17010001",
"n": 1 "n": 1
} }
] ]
@ -113,7 +113,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
] ]
@ -135,7 +135,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
] ]
@ -157,7 +157,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
] ]
@ -179,7 +179,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
] ]
@ -201,7 +201,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
] ]
@ -223,7 +223,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60003", "t": "17030001",
"n": 1 "n": 1
} }
] ]
@ -245,7 +245,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60003", "t": "17030001",
"n": 1 "n": 1
} }
] ]
@ -267,7 +267,7 @@
"item": [ "item": [
{ {
"a": "item", "a": "item",
"t": "60003", "t": "17030001",
"n": 1 "n": 1
} }
] ]

View File

@ -67,21 +67,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14010111", "t": "15000101",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14010111", "t": "15000101",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14010111", "t": "15000101",
"n": 5 "n": 5
} }
] ]
@ -154,21 +154,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14010212", "t": "15000102",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14010212", "t": "15000102",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14010212", "t": "15000102",
"n": 5 "n": 5
} }
] ]
@ -241,21 +241,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14010313", "t": "15000103",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14010313", "t": "15000103",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14010313", "t": "15000103",
"n": 5 "n": 5
} }
] ]
@ -328,21 +328,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14010414", "t": "15000104",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14010414", "t": "15000104",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14010414", "t": "15000104",
"n": 5 "n": 5
} }
] ]
@ -415,21 +415,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14020111", "t": "15000201",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14020111", "t": "15000201",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14020111", "t": "15000201",
"n": 5 "n": 5
} }
] ]
@ -502,21 +502,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14020212", "t": "15000202",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14020212", "t": "15000202",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14020212", "t": "15000202",
"n": 5 "n": 5
} }
] ]
@ -589,21 +589,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14020313", "t": "15000203",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14020313", "t": "15000203",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14020313", "t": "15000203",
"n": 5 "n": 5
} }
] ]
@ -676,21 +676,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14020414", "t": "15000204",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14020414", "t": "15000204",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14020414", "t": "15000204",
"n": 5 "n": 5
} }
] ]
@ -763,21 +763,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14030111", "t": "15000301",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14030111", "t": "15000301",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14030111", "t": "15000301",
"n": 5 "n": 5
} }
] ]
@ -850,21 +850,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14030212", "t": "15000302",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14030212", "t": "15000302",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14030212", "t": "15000302",
"n": 5 "n": 5
} }
] ]
@ -937,21 +937,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14030313", "t": "15000303",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14030313", "t": "15000303",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14030313", "t": "15000303",
"n": 5 "n": 5
} }
] ]
@ -1024,21 +1024,21 @@
"standard_yield": [ "standard_yield": [
{ {
"a": "item", "a": "item",
"t": "14030414", "t": "15000304",
"n": 3 "n": 3
} }
], ],
"low_yield": [ "low_yield": [
{ {
"a": "item", "a": "item",
"t": "14030414", "t": "15000304",
"n": 1 "n": 1
} }
], ],
"high_yield": [ "high_yield": [
{ {
"a": "item", "a": "item",
"t": "14030414", "t": "15000304",
"n": 5 "n": 5
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -725,7 +725,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -2237,7 +2237,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -2993,7 +2993,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -3749,7 +3749,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -4505,7 +4505,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -5261,7 +5261,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6017,7 +6017,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6053,7 +6053,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6125,7 +6125,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 10 "n": 10
} }
], ],
@ -6161,7 +6161,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "10017", "t": "10000003",
"n": 10 "n": 10
} }
], ],
@ -6197,7 +6197,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600001", "t": "10000004",
"n": 10 "n": 10
} }
], ],
@ -6233,7 +6233,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "1000001", "t": "17030002",
"n": 1 "n": 1
} }
], ],
@ -6413,7 +6413,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
} }
], ],
@ -6449,7 +6449,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
} }
], ],
@ -6485,7 +6485,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -6521,7 +6521,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600005", "t": "10000011",
"n": 1 "n": 1
} }
], ],
@ -6557,7 +6557,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600006", "t": "10000012",
"n": 1 "n": 1
} }
], ],
@ -6593,7 +6593,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600007", "t": "10000013",
"n": 1 "n": 1
} }
], ],
@ -6629,7 +6629,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6773,7 +6773,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6809,7 +6809,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
], ],
@ -6845,7 +6845,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "600001", "t": "10000004",
"n": 10 "n": 10
} }
], ],
@ -6917,7 +6917,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
], ],
@ -6953,7 +6953,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120001", "t": "13001001",
"n": 100 "n": 100
} }
], ],
@ -6989,7 +6989,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120002", "t": "13001002",
"n": 100 "n": 100
} }
], ],
@ -7025,7 +7025,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120003", "t": "13001003",
"n": 100 "n": 100
} }
], ],
@ -7061,7 +7061,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120004", "t": "13002001",
"n": 100 "n": 100
} }
], ],
@ -7097,7 +7097,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120005", "t": "13002002",
"n": 100 "n": 100
} }
], ],
@ -7133,7 +7133,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120006", "t": "13002003",
"n": 100 "n": 100
} }
], ],
@ -7169,7 +7169,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120007", "t": "13003001",
"n": 100 "n": 100
} }
], ],
@ -7205,7 +7205,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120008", "t": "13003002",
"n": 100 "n": 100
} }
], ],
@ -7241,7 +7241,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120009", "t": "13003003",
"n": 100 "n": 100
} }
], ],
@ -7277,7 +7277,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120101", "t": "13000001",
"n": 100 "n": 100
} }
], ],
@ -7313,7 +7313,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120102", "t": "13000002",
"n": 100 "n": 100
} }
], ],
@ -7349,7 +7349,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120103", "t": "13000003",
"n": 100 "n": 100
} }
], ],
@ -7385,7 +7385,7 @@
"iteminfo": [ "iteminfo": [
{ {
"a": "item", "a": "item",
"t": "120104", "t": "13000004",
"n": 100 "n": 100
} }
], ],

View File

@ -44,14 +44,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
] ]
@ -158,14 +158,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
] ]
@ -272,14 +272,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
] ]
@ -386,14 +386,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -633,14 +633,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
] ]
@ -747,14 +747,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
] ]
@ -861,14 +861,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
] ]
@ -975,14 +975,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -1222,14 +1222,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
] ]
@ -1336,14 +1336,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
] ]
@ -1450,14 +1450,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
] ]
@ -1564,14 +1564,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -1640,14 +1640,14 @@
"loopgift": [ "loopgift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
], ],
"gamegift": [ "gamegift": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
] ]

View File

@ -10,7 +10,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90001", "t": "11025001",
"n": 10 "n": 10
} }
] ]
@ -26,7 +26,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90002", "t": "11025004",
"n": 10 "n": 10
} }
] ]
@ -42,7 +42,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90003", "t": "11044005",
"n": 10 "n": 10
} }
] ]
@ -58,7 +58,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90001", "t": "11025001",
"n": 10 "n": 10
} }
] ]
@ -74,7 +74,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90002", "t": "11025004",
"n": 10 "n": 10
} }
] ]
@ -90,7 +90,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90003", "t": "11044005",
"n": 10 "n": 10
} }
] ]
@ -106,7 +106,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90001", "t": "11025001",
"n": 10 "n": 10
} }
] ]
@ -122,7 +122,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90002", "t": "11025004",
"n": 10 "n": 10
} }
] ]
@ -138,7 +138,7 @@
"extra": [ "extra": [
{ {
"a": "item", "a": "item",
"t": "90003", "t": "11044005",
"n": 10 "n": 10
} }
] ]

View File

@ -11398,10 +11398,10 @@
1, 1,
55 55
], ],
"FollowSK": [], "FollowSK": [
"SucFollowSK": [
245003112 245003112
], ],
"SucFollowSK": [],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
"DpsRevisiType": 0, "DpsRevisiType": 0,

View File

@ -27,7 +27,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
], ],
@ -54,7 +54,7 @@
"goods": [ "goods": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
], ],

View File

@ -6,7 +6,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 1 "n": 1
} }
], ],
@ -20,7 +20,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 2 "n": 2
} }
], ],
@ -34,7 +34,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 3 "n": 3
} }
], ],
@ -48,7 +48,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "60002", "t": "17020001",
"n": 4 "n": 4
} }
], ],

View File

@ -10,7 +10,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
@ -31,7 +31,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
@ -52,7 +52,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
@ -73,7 +73,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
@ -94,7 +94,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],
@ -115,7 +115,7 @@
}, },
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
} }
], ],

View File

@ -4226,7 +4226,7 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
} }
], ],
@ -4285,12 +4285,12 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
} }
], ],
@ -4349,17 +4349,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4418,17 +4418,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4487,17 +4487,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4556,17 +4556,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4625,17 +4625,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4694,17 +4694,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4763,17 +4763,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4832,17 +4832,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4901,17 +4901,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],
@ -4970,17 +4970,17 @@
"dropshow": [ "dropshow": [
{ {
"a": "item", "a": "item",
"t": "600002", "t": "10000008",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600003", "t": "10000009",
"n": 1 "n": 1
}, },
{ {
"a": "item", "a": "item",
"t": "600004", "t": "10000010",
"n": 1 "n": 1
} }
], ],

View File

@ -1,102 +0,0 @@
[
{
"buynum": 1,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 10
}
]
},
{
"buynum": 2,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 20
}
]
},
{
"buynum": 3,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 30
}
]
},
{
"buynum": 4,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 40
}
]
},
{
"buynum": 5,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 50
}
]
},
{
"buynum": 6,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 60
}
]
},
{
"buynum": 7,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 70
}
]
},
{
"buynum": 8,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 80
}
]
},
{
"buynum": 9,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 90
}
]
},
{
"buynum": 10,
"need": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
}
]

View File

@ -13,7 +13,7 @@
"key": "vikingexpedition_entrance_unlock_1", "key": "vikingexpedition_entrance_unlock_1",
"text": "Level {0} unlocking" "text": "Level {0} unlocking"
}, },
"bg": "fb_rk_wjyz1", "bg": "fb_rk_wj3",
"open": "vikingexpedition" "open": "vikingexpedition"
}, },
{ {
@ -30,7 +30,7 @@
"key": "vikingexpedition_entrance_unlock_2", "key": "vikingexpedition_entrance_unlock_2",
"text": "Level {0} unlocking" "text": "Level {0} unlocking"
}, },
"bg": "fb_rk_wjyz2", "bg": "fb_rk_zysp",
"open": "vikingexpedition2" "open": "vikingexpedition2"
}, },
{ {
@ -47,7 +47,7 @@
"key": "vikingexpedition_entrance_unlock_3", "key": "vikingexpedition_entrance_unlock_3",
"text": "Level {0} unlocking" "text": "Level {0} unlocking"
}, },
"bg": "fb_rk_wjyz3", "bg": "fb_rk_zywq",
"open": "vikingexpedition3" "open": "vikingexpedition3"
} }
] ]

View File

@ -21,7 +21,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -63,7 +63,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -106,7 +106,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -149,7 +149,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -193,7 +193,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -237,7 +237,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -281,7 +281,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -326,7 +326,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -371,7 +371,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -416,7 +416,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -463,7 +463,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -510,7 +510,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -557,7 +557,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -605,7 +605,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {
@ -653,7 +653,7 @@
"giftinfo": [ "giftinfo": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
}, },
{ {

View File

@ -13,7 +13,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -32,7 +32,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -51,7 +51,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -75,7 +75,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -99,7 +99,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -123,7 +123,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -147,7 +147,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -171,7 +171,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 2 "n": 2
}, },
{ {
@ -195,7 +195,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 3 "n": 3
} }
] ]
@ -214,7 +214,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 4 "n": 4
} }
] ]
@ -233,7 +233,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 5 "n": 5
} }
] ]
@ -252,7 +252,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 6 "n": 6
} }
] ]
@ -271,7 +271,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 7 "n": 7
} }
] ]
@ -290,7 +290,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 8 "n": 8
} }
] ]
@ -309,7 +309,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 9 "n": 9
} }
] ]
@ -328,7 +328,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 10 "n": 10
} }
] ]
@ -347,7 +347,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 11 "n": 11
} }
] ]
@ -366,7 +366,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 12 "n": 12
} }
] ]
@ -385,7 +385,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 13 "n": 13
} }
] ]
@ -404,7 +404,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 14 "n": 14
} }
] ]
@ -423,7 +423,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 15 "n": 15
} }
] ]
@ -442,7 +442,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 16 "n": 16
} }
] ]
@ -461,7 +461,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 17 "n": 17
} }
] ]
@ -480,7 +480,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 18 "n": 18
} }
] ]
@ -499,7 +499,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 19 "n": 19
} }
] ]
@ -518,7 +518,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 20 "n": 20
} }
] ]
@ -537,7 +537,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 21 "n": 21
} }
] ]
@ -556,7 +556,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 22 "n": 22
} }
] ]
@ -575,7 +575,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 23 "n": 23
} }
] ]
@ -594,7 +594,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 24 "n": 24
} }
] ]
@ -613,7 +613,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 25 "n": 25
} }
] ]
@ -632,7 +632,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 26 "n": 26
} }
] ]
@ -651,7 +651,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 27 "n": 27
} }
] ]
@ -670,7 +670,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 28 "n": 28
} }
] ]
@ -689,7 +689,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 29 "n": 29
} }
] ]
@ -708,7 +708,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 30 "n": 30
} }
] ]
@ -727,7 +727,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 31 "n": 31
} }
] ]
@ -746,7 +746,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 32 "n": 32
} }
] ]
@ -765,7 +765,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
] ]
@ -784,7 +784,7 @@
"reword": [ "reword": [
{ {
"a": "item", "a": "item",
"t": "30001", "t": "10000001",
"n": 1 "n": 1
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -483,7 +483,9 @@ type (
ITools interface { ITools interface {
GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn) GetGroupDataByLottery(lotteryId int32, vipLv int32, lv int32) (items []*cfg.Gameatn)
GetGlobalConf() *cfg.GameGlobalData GetGlobalConf() *cfg.GameGlobalData
GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn, err error)
GetPriceGroupLen(pricegroupId int32) (count int32, err error)
} }
IReputation interface { IReputation interface {

View File

@ -21,7 +21,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
// global *cfg.GameGlobalData // global *cfg.GameGlobalData
info *pb.DBArenaUser info *pb.DBArenaUser
need []*cfg.Gameatn need []*cfg.Gameatn
maxbuy, vipbuy int maxbuy, vipbuy int32
err error err error
) )
if code = this.BuyCheck(session, req); code != pb.ErrorCode_Success { if code = this.BuyCheck(session, req); code != pb.ErrorCode_Success {
@ -33,18 +33,18 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ArenaBuyReq) (code p
} }
this.module.modelArena.recoverTicket(session, info) this.module.modelArena.recoverTicket(session, info)
if maxbuy, err = this.module.configure.GetchallengeDataCount(); err != nil { if maxbuy, err = this.module.ModuleTools.GetPriceGroupLen(comm.ArenaBuyType); err != nil {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
vipbuy = int(this.module.privilege.GetCountByPrivilegeId(session.GetUserId(), comm.PrivilegeType5)) vipbuy = this.module.privilege.GetCountByPrivilegeId(session.GetUserId(), comm.PrivilegeType5)
need = make([]*cfg.Gameatn, 0) need = make([]*cfg.Gameatn, 0)
for i := int32(0); i < req.BuyNum; i++ { for i := int32(0); i < req.BuyNum; i++ {
if int(info.Buynum+i+1) > maxbuy+vipbuy { if info.Buynum+i+1 > maxbuy+vipbuy {
code = pb.ErrorCode_ArenaTicketBuyUp code = pb.ErrorCode_ArenaTicketBuyUp
return return
} }
if res := this.module.ModuleTools.GetPriceGroupCost(comm.ArenaBuyType, info.Buynum+i+1); len(res) > 0 { if res, _ := this.module.ModuleTools.GetPriceGroupCost(comm.ArenaBuyType, info.Buynum+i+1); len(res) > 0 {
need = append(need, res...) need = append(need, res...)
} else { } else {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound

View File

@ -34,7 +34,6 @@ type configureComp struct {
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.MCompConfigure.Init(service, module, comp, options) this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Arena) this.module = module.(*Arena)
this.LoadConfigure(game_arenabuychallenge, cfg.NewGameArenaBuyChallenge)
this.LoadConfigure(game_arenaactivereward, cfg.NewGameArenaActiveReward) this.LoadConfigure(game_arenaactivereward, cfg.NewGameArenaActiveReward)
configure.RegisterConfigure(game_arenarobot, cfg.NewGameArenaRobot, this.updateArenaRobot) configure.RegisterConfigure(game_arenarobot, cfg.NewGameArenaRobot, this.updateArenaRobot)
this.LoadConfigure(game_arenarankreward, cfg.NewGameArenaRankReward) this.LoadConfigure(game_arenarankreward, cfg.NewGameArenaRankReward)
@ -62,40 +61,6 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
return return
} }
///获取月之秘境触购买表
func (this *configureComp) GetchallengeDataCount() (count int, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_arenabuychallenge); err != nil {
this.module.Errorln(err)
return
} else {
count = len(v.(*cfg.GameArenaBuyChallenge).GetDataList())
}
return
}
///获取月之秘境触购买表
func (this *configureComp) GetchallengeData(buynum int32) (result *cfg.GameArenaBuyChallengeData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_arenabuychallenge); err != nil {
this.module.Errorln(err)
return
} else {
for _, v := range v.(*cfg.GameArenaBuyChallenge).GetDataList() {
if v.Num == buynum {
result = v
return
}
result = v
}
}
return
}
//查询积分段位信息 //查询积分段位信息
func (this *configureComp) getActiveReward(integral int32) (result *cfg.GameArenaActiveRewardData, err error) { func (this *configureComp) getActiveReward(integral int32) (result *cfg.GameArenaActiveRewardData, err error) {
var ( var (

View File

@ -1,7 +1,6 @@
package buried package buried
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
@ -146,7 +145,7 @@ func (this *Buried) updateAndCheckBuried(bdata *pb.DBBuried, collec *comm.Buried
bitem = &pb.DBBuriedItem{ bitem = &pb.DBBuriedItem{
Conid: cond.Id, Conid: cond.Id,
State: pb.BuriedItemState_Activated, State: pb.BuriedItemState_Activated,
Value: 0, Value: make([]int32, 0),
Timestamp: time.Now().Unix(), Timestamp: time.Now().Unix(),
} }
} else { } else {
@ -158,25 +157,25 @@ func (this *Buried) updateAndCheckBuried(bdata *pb.DBBuried, collec *comm.Buried
return return
} }
switch cond.Vtype { //数据接入方式 // switch cond.Vtype { //数据接入方式
case overlay: //累加数据 // case overlay: //累加数据
bitem.Value += collec.Value // bitem.Value[0] += collec.Value
case cover: // case cover:
bitem.Value = collec.Value // bitem.Value[0] = collec.Value
case query: // case query:
switch collec.Btype { // switch collec.Btype {
case comm.Rtype1: // case comm.Rtype1:
default: // default:
err = fmt.Errorf("未实现的数据查询类型 埋点类型:%d", collec.Btype) // err = fmt.Errorf("未实现的数据查询类型 埋点类型:%d", collec.Btype)
return // return
} // }
default: // default:
err = fmt.Errorf("未知的埋点数据处理类型:%d", cond.Vtype) // err = fmt.Errorf("未知的埋点数据处理类型:%d", cond.Vtype)
return // return
} // }
if bitem.Value >= cond.Value { //完成进度 if bitem.Value[0] >= cond.Value { //完成进度
complete = true complete = true
} }
return return

View File

@ -12,7 +12,7 @@ import (
const ( const (
game_equip = "game_equip.json" //装备信息表 game_equip = "game_equip.json" //装备信息表
equip_attrlibrary = "game_equipattrlibrary.json" //装备属性配置表 equip_attrlibrary = "game_equipattrlibrarys.json" //装备属性配置表
equip_intensify = "game_equipintensify.json" //装备等级消耗表 equip_intensify = "game_equipintensify.json" //装备等级消耗表
equip_suit = "game_equipsuit.json" //装备套装表 equip_suit = "game_equipsuit.json" //装备套装表
game_equipcompose = "game_equipscompose.json" //装备锻造 game_equipcompose = "game_equipscompose.json" //装备锻造

View File

@ -86,6 +86,7 @@ locp:
Timestamp: configure.Now().Unix(), Timestamp: configure.Now().Unix(),
}) })
this.WriteMsg(&pb.UserMessage{ this.WriteMsg(&pb.UserMessage{
MsgId: msg.MsgId,
MainType: string(comm.ModuleGate), MainType: string(comm.ModuleGate),
SubType: "heartbeat", SubType: "heartbeat",
Data: data, Data: data,
@ -99,6 +100,7 @@ locp:
if err = this.messageDistribution(msg); err != nil { if err = this.messageDistribution(msg); err != nil {
this.gateway.Errorf("messageDistribution err:%v", err) this.gateway.Errorf("messageDistribution err:%v", err)
data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ data, _ := anypb.New(&pb.NotifyErrorNotifyPush{
MsgId: msg.MsgId,
ReqMainType: msg.MainType, ReqMainType: msg.MainType,
ReqSubType: msg.SubType, ReqSubType: msg.SubType,
Arg: msg.Data, Arg: msg.Data,
@ -106,6 +108,7 @@ locp:
Err: &pb.ErrorData{Title: "用户消息处理失败!", Datastring: err.Error()}, Err: &pb.ErrorData{Title: "用户消息处理失败!", Datastring: err.Error()},
}) })
err = this.WriteMsg(&pb.UserMessage{ err = this.WriteMsg(&pb.UserMessage{
MsgId: msg.MsgId,
MainType: comm.MainTypeNotify, MainType: comm.MainTypeNotify,
SubType: comm.SubTypeErrorNotify, SubType: comm.SubTypeErrorNotify,
Data: data, Data: data,
@ -116,8 +119,15 @@ locp:
} else { } else {
this.gateway.Errorf("agent:%s uId:%s 密钥无效 err:%v", this.sessionId, this.uId, err) this.gateway.Errorf("agent:%s uId:%s 密钥无效 err:%v", this.sessionId, this.uId, err)
data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ReqMainType: msg.MainType, ReqSubType: msg.SubType, Code: code, Err: &pb.ErrorData{Title: "用户消息验证失败!", Datastring: err.Error()}}) data, _ := anypb.New(&pb.NotifyErrorNotifyPush{
MsgId: msg.MsgId,
ReqMainType: msg.MainType,
ReqSubType: msg.SubType,
Code: code,
Err: &pb.ErrorData{Title: "用户消息验证失败!", Datastring: err.Error()},
})
if err = this.WriteMsg(&pb.UserMessage{ if err = this.WriteMsg(&pb.UserMessage{
MsgId: msg.MsgId,
MainType: comm.MainTypeNotify, MainType: comm.MainTypeNotify,
SubType: comm.SubTypeErrorNotify, SubType: comm.SubTypeErrorNotify,
Data: data, Data: data,
@ -363,12 +373,14 @@ func (this *Agent) messageDistribution(msg *pb.UserMessage) (err error) {
// } // }
if reply.Code != pb.ErrorCode_Success { if reply.Code != pb.ErrorCode_Success {
data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ data, _ := anypb.New(&pb.NotifyErrorNotifyPush{
MsgId: msg.MsgId,
ReqMainType: msg.MainType, ReqMainType: msg.MainType,
ReqSubType: msg.SubType, ReqSubType: msg.SubType,
Arg: msg.Data, Arg: msg.Data,
Code: pb.ErrorCode(reply.Code.Number()), Code: pb.ErrorCode(reply.Code.Number()),
Err: reply.ErrorData}) Err: reply.ErrorData})
err = this.WriteMsg(&pb.UserMessage{ err = this.WriteMsg(&pb.UserMessage{
MsgId: msg.MsgId,
MainType: comm.MainTypeNotify, MainType: comm.MainTypeNotify,
SubType: comm.SubTypeErrorNotify, SubType: comm.SubTypeErrorNotify,
Data: data, Data: data,
@ -376,6 +388,9 @@ func (this *Agent) messageDistribution(msg *pb.UserMessage) (err error) {
return return
} else { } else {
for _, v := range reply.Reply { for _, v := range reply.Reply {
if v.MainType == msg.MainType && v.SubType == msg.SubType {
v.MsgId = msg.MsgId
}
if err = this.WriteMsg(v); err != nil { if err = this.WriteMsg(v); err != nil {
return return
} }

View File

@ -11,7 +11,7 @@ import (
const ( const (
game_huntingboss = "game_huntingboss.json" game_huntingboss = "game_huntingboss.json"
game_challenge = "game_huntingchallenge.json" // game_challenge = "game_huntingchallenge.json"
) )
///配置管理基础组件 ///配置管理基础组件
@ -43,7 +43,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
} }
return return
}) })
err = this.LoadConfigure(game_challenge, cfg.NewGameHuntingChallenge) // err = this.LoadConfigure(game_challenge, cfg.NewGameHuntingChallenge)
return return
} }
@ -90,29 +90,29 @@ func (this *configureComp) GetHuntingBossTypeConfigData() (mapType map[int32]str
return return
} }
func (this *configureComp) GetBuyChallengeCount(index int32) (data *cfg.GameHuntingChallengeData) { // func (this *configureComp) GetBuyChallengeCount(index int32) (data *cfg.GameHuntingChallengeData) {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameHuntingChallenge); ok { // if configure, ok := v.(*cfg.GameHuntingChallenge); ok {
data = configure.Get(index) // data = configure.Get(index)
return // return
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return // return
} // }
func (this *configureComp) GetMaxBuyChallengeCount() int32 { // func (this *configureComp) GetMaxBuyChallengeCount() int32 {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameHuntingChallenge); ok { // if configure, ok := v.(*cfg.GameHuntingChallenge); ok {
return int32(len(configure.GetDataList())) // return int32(len(configure.GetDataList()))
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return 0 // return 0
} // }
// 获取boss 最大难点 // 获取boss 最大难点
func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 { func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 {
@ -123,15 +123,15 @@ func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 {
} }
// 获取最后一条数据 // 获取最后一条数据
func (this *configureComp) GetLastBuyChallenge() (data *cfg.GameHuntingChallengeData) { // func (this *configureComp) GetLastBuyChallenge() (data *cfg.GameHuntingChallengeData) {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameHuntingChallenge); ok && len(configure.GetDataList()) > 0 { // if configure, ok := v.(*cfg.GameHuntingChallenge); ok && len(configure.GetDataList()) > 0 {
data = configure.GetDataList()[len(configure.GetDataList())-1] // data = configure.GetDataList()[len(configure.GetDataList())-1]
return // return
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return // return
} // }

View File

@ -612,11 +612,25 @@ func (this *MCompConfigure) GetPriceGroup(pricegroupId int32) (sz []*cfg.GamePri
return this._price[pricegroupId] return this._price[pricegroupId]
} }
func (this *MCompConfigure) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn) { func (this *MCompConfigure) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn, err error) {
if _, ok := this._price[pricegroupId]; !ok {
err = comm.NewNotFoundConfErr("tools", game_price, pricegroupId)
return
}
for _, v := range this._price[pricegroupId] { for _, v := range this._price[pricegroupId] {
if v.Purchasemin <= purchase && purchase <= v.Purchasemax { if v.Purchasemin <= purchase && purchase <= v.Purchasemax {
return v.Cost res = v.Cost
return
} }
} }
return return
} }
func (this *MCompConfigure) GetPriceGroupLen(pricegroupId int32) (count int32, err error) {
if _, ok := this._price[pricegroupId]; !ok {
err = comm.NewNotFoundConfErr("tools", game_price, pricegroupId)
}
count = int32(len(this._price[pricegroupId]))
return
}

View File

@ -49,6 +49,10 @@ func (this *Tools) GetGlobalConf() *cfg.GameGlobalData {
return this.configure.GetGlobalConf() return this.configure.GetGlobalConf()
} }
func (this *Tools) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn) { func (this *Tools) GetPriceGroupCost(pricegroupId int32, purchase int32) (res []*cfg.Gameatn, err error) {
return this.configure.GetPriceGroupCost(pricegroupId, purchase) return this.configure.GetPriceGroupCost(pricegroupId, purchase)
} }
func (this *Tools) GetPriceGroupLen(pricegroupId int32) (count int32, err error) {
return this.configure.GetPriceGroupLen(pricegroupId)
}

View File

@ -1,37 +0,0 @@
package troll
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
const (
TrollGetListResp = "getlist"
TrollBuyOrSellResp = "buyorsell"
TrollNpcRewardResp = "npcreward"
TrollRankListResp = "ranklist"
TrollRecordListResp = "recordlist"
TrollAfkSetResp = "afkset"
TrollSurpriseIdResp = "surpriseid"
)
type apiComp struct {
modules.MCompGate
service core.IService
configure *configureComp
module *Troll
}
//组件初始化接口
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Troll)
this.service = service
return
}
func (this *apiComp) Start() (err error) {
err = this.MCompGate.Start()
return
}

View File

@ -1,35 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
func (this *apiComp) AfkSetCheck(session comm.IUserSession, req *pb.TrollAfkSetReq) (code pb.ErrorCode) {
return
}
// 设置挂机规则
func (this *apiComp) AfkSet(session comm.IUserSession, req *pb.TrollAfkSetReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
update map[string]interface{}
)
update = make(map[string]interface{})
code = this.AfkSetCheck(session, req)
troll, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
troll.Buy = req.Buy //this.configure.GetTrollRule(comm.TrollBuy)
troll.Sell = req.Sell //this.configure.GetTrollRule(comm.TrollSell)
//troll.AiCount = req.Count
update["buy"] = troll.Buy
update["sell"] = troll.Sell
//update["aiCount"] = troll.AiCount
this.module.ModifyTrollData(session.GetUserId(), update)
session.SendMsg(string(this.module.GetType()), TrollAfkSetResp, &pb.TrollAfkSetResp{Data: troll})
return
}

View File

@ -1,174 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"math"
)
//参数校验
func (this *apiComp) BuyOrSellCheck(session comm.IUserSession, req *pb.TrollBuyOrSellReq) (code pb.ErrorCode) {
if len(req.Items) == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSellReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
bSell bool // 是否有出售
gold int32 // 当次交易 获得的金币
earn int32 // 只统计赚的金币
update map[string]interface{}
gridNum int32 // 格子数量
)
update = make(map[string]interface{})
if code = this.BuyOrSellCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
dayMaxCount := this.configure.GetTrollRule(comm.TrollBuyCount)
aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
for k, v := range req.Items {
if v == 0 { // 过滤数量为0 的消息
continue
}
if trolltrain.RangeId == 0 {
trolltrain.RangeId = 1
update["rangeId"] = trolltrain.RangeId
}
if v < 0 {
if !bSell {
bSell = true
trolltrain.SellCount += 1 // 交易次数+1
if trolltrain.SellCount > dayMaxCount || (trolltrain.SellCount+trolltrain.AiCount) > aiMaxCount {
code = pb.ErrorCode_TrollMaxSellCount // 达到最大交易次数 直接返回
return
}
update["sellCount"] = trolltrain.SellCount
}
}
if _, ok := trolltrain.Shop[k]; !ok {
if v > 0 {
trolltrain.Shop[k] = v // 限购
}
} else {
if v > 0 {
trolltrain.Shop[k] += v // 限购
}
}
// 校验 是否大于买入最大限制
goods := this.configure.GetTrollGoods(k)
if goods == nil {
return
}
if trolltrain.Shop[k] > goods.Max { // 判断是否有效交易
// 买入上限 直接返回
code = pb.ErrorCode_TrollBuyMax
return
} else if trolltrain.Items[k]+v < 0 { //卖出数量不足
code = pb.ErrorCode_TrollSellMax
return
}
// 第一次购买商品
if trolltrain.TarinPos == 0 {
if _, ok := trolltrain.Price[k]; !ok {
trolltrain.Price[k] = 0
}
trolltrain.Price[k] = goods.Goodsprice * goods.StarMoney / 1000
trolltrain.RefreshTime = configure.Now().Unix()
//消耗的金币
gold -= trolltrain.Price[k] * trolltrain.Items[k]
} else {
p := this.configure.GetTrollCoefficient(trolltrain.RangeId)
if p == nil {
return
}
var sellPrice int32 // 交易价格
if trolltrain.TarinPos == 0 {
sellPrice = goods.Goodsprice * goods.StarMoney / 1000
} else {
sellPrice = int32(p.Coefficient) * goods.Goodsprice / 1000
}
// 校验是不是惊喜价格
if d1, ok := trolltrain.SurpriseID[trolltrain.TarinPos-1]; ok {
if d1 == k {
sellPrice = this.configure.GetTrollRule(comm.TrollSurprise) / 1000
}
}
if v < 0 { // 卖出
trolltrain.Items[k] += v
if sellPrice > trolltrain.Price[k] { // 赚了
earn += (sellPrice - trolltrain.Price[k]) * v
}
gold -= sellPrice * v
} else { // 买入 计算平均价格
totalGold := trolltrain.Items[k] * trolltrain.Price[k]
totalGold += v * sellPrice
trolltrain.Items[k] += v
trolltrain.Price[k] = totalGold / trolltrain.Items[k]
gold -= v * sellPrice
}
}
}
// 重新计算格子数量
grid := this.configure.GetTrollRule(comm.TrollItemCount)
for _, v := range trolltrain.Items {
if v > 0 {
gridNum += int32(math.Ceil(float64(v) / float64(grid)))
}
}
trolltrain.GridNum = gridNum
if gridNum > this.configure.GetTrollRule(comm.TrollGridCount) { // 背包格子上限
code = pb.ErrorCode_TrollMaxItemCount
return
}
code = this.module.ModuleUser.AddAttributeValue(session, comm.ResGold, int32(gold), true)
if code != pb.ErrorCode_Success { // 金币不足
code = pb.ErrorCode_GoldNoEnough
return
}
// 清除数量为0 的
for k, v := range trolltrain.Items {
if v == 0 {
delete(trolltrain.Items, k)
if _, ok := trolltrain.Price[k]; ok {
delete(trolltrain.Price, k) // 清除价格
}
}
}
trolltrain.TotalEarn += -int64(earn) // 累计获得的金币
// check npc level
if confLv := this.configure.GetTrollLv(trolltrain.GetNpcLv() + 1); confLv != nil {
if trolltrain.TotalEarn >= int64(confLv.Money) {
trolltrain.NpcLv += 1 // npc levelUp
update["npcLv"] = trolltrain.NpcLv
}
}
update["items"] = trolltrain.Items
update["price"] = trolltrain.Price
update["totalEarn"] = trolltrain.TotalEarn
update["gridNum"] = trolltrain.GridNum
update["shop"] = trolltrain.Shop
this.module.ModifyTrollData(session.GetUserId(), update)
this.module.SeTrollRankList(trolltrain.TotalEarn, session.GetUserId())
session.SendMsg(string(this.module.GetType()), TrollBuyOrSellResp, &pb.TrollBuyOrSellResp{Data: trolltrain})
if gold != 0 {
this.module.record.AddTrollRecord(session.GetUserId(), gold, trolltrain.TarinPos)
}
// this.module.ModuleRtask.SendToRtask(session, comm.Rtype153, 1)
go this.module.ModuleRtask.TriggerTask(session.GetUserId(), comm.GettaskParam(comm.Rtype153, 1))
return
}

View File

@ -1,49 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) NpcRewardCheck(session comm.IUserSession, req *pb.TrollNpcRewardReq) (code pb.ErrorCode) {
return
}
///美食城领取奖励
func (this *apiComp) NpcReward(session comm.IUserSession, req *pb.TrollNpcRewardReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
update map[string]interface{}
)
code = this.NpcRewardCheck(session, req)
_troll, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
conf := this.module.configure.GetTrollLv(req.RewardId)
if conf == nil {
code = pb.ErrorCode_ReqParameterError
}
if confLv := this.configure.GetTrollLv(req.RewardId); confLv != nil {
if _troll.TotalEarn >= int64(confLv.Money) {
if _, ok := _troll.NpcReward[req.RewardId]; !ok {
if code = this.module.DispenseRes(session, conf.Reword, true); code != pb.ErrorCode_Success {
return
}
_troll.NpcReward[req.RewardId] = 1
update = make(map[string]interface{}, 0)
update["npcReward"] = _troll.NpcReward
this.module.ModifyTrollData(session.GetUserId(), update)
} else {
code = pb.ErrorCode_TrollRepeatedReward
return
}
}
}
session.SendMsg(string(this.module.GetType()), TrollNpcRewardResp, &pb.TrollNpcRewardResp{Data: _troll})
return
}

View File

@ -1,111 +0,0 @@
package troll
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/utils"
"math/big"
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.TrollGetListReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
update map[string]interface{}
maxCoefficient int32
)
update = make(map[string]interface{})
if code = this.GetListCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
// 自动交易
this.module.TrollAI(session, trolltrain)
maxCoefficient = this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值
if maxCoefficient == 0 {
code = pb.ErrorCode_ConfigNoFound
return
}
// 跨天 则清除 每日交易次数
if !utils.IsToday(trolltrain.ResetTime) {
trolltrain.ResetTime = configure.Now().Unix()
update["resetTime"] = trolltrain.ResetTime
trolltrain.SellCount = 0
update["sellCount"] = trolltrain.SellCount // 重置每日交易次数
trolltrain.AiCount = 0
update["aiCount"] = trolltrain.AiCount // 重置ai 交易次数
this.module.ModifyTrollData(session.GetUserId(), update)
}
/// 计算经过了多少个周期
szTrain := this.configure.GetTrollAllTrain()
var (
circletime int32 // 循环一个周期的时间
circleCount int32 // 循环的次数
leftTime int32 // 离到达最后一站剩余的时间
index int32 // 总共经过了多少次车站
)
for _, v := range szTrain {
circletime += v
}
if int32(len(szTrain)) < trolltrain.TarinPos {
this.module.Errorf("TarinPos error: TarinPos:%d,maxLen:%d", trolltrain.TarinPos, len(szTrain))
code = pb.ErrorCode_ConfigNoFound
return
}
if configure.Now().Unix()-trolltrain.RefreshTime < int64(szTrain[trolltrain.TarinPos-1]) {
session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain})
return
}
trainNum := this.configure.GetTrollMaxTraintNum()
trolltrain.Shop = make(map[int32]int32) // 清空商人的购买数据
update["shop"] = trolltrain.Shop
t := int32(configure.Now().Unix() - trolltrain.Ctime)
circleCount = t / circletime // 经过的周期数
leftTime = t % circletime
if trolltrain.Circle != circleCount {
trolltrain.SurpriseID = make(map[int32]int32, 0)
n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum)))
// 只算当前商人所属的货物
g := this.configure.GetTrollGoodsFor(int32(n.Int64()) + 1)
n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(g))))
trolltrain.SurpriseID[int32(n.Int64())+1] = g[int32(n2.Int64())]
update["surpriseID"] = trolltrain.SurpriseID
trolltrain.Circle = circleCount
update["circle"] = trolltrain.Circle
}
index = circleCount * trainNum // 计算火车的位置信息
for _, v := range szTrain {
if leftTime <= v {
trolltrain.RefreshTime = configure.Now().Unix() - int64(leftTime) //trolltrain.Ctime + int64(circleCount*circletime+leftTime)
trolltrain.RangeId = (index % maxCoefficient) + 1
trolltrain.TarinPos = (index % trainNum) + 1
break
}
index += 1
leftTime -= v
}
update["aiCount"] = trolltrain.AiCount
update["refreshTime"] = trolltrain.RefreshTime
update["tarinPos"] = trolltrain.TarinPos
update["rangeId"] = trolltrain.RangeId
update["shop"] = trolltrain.Shop
update["items"] = trolltrain.Items
update["price"] = trolltrain.Price
this.module.ModifyTrollData(session.GetUserId(), update)
session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain})
return
}

View File

@ -1,38 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.TrollRankListReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) RankList(session comm.IUserSession, req *pb.TrollRankListReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
rank []*pb.RankData
)
list, gold, err := this.module.QueryRankList()
if err == nil {
for index, v := range list {
if user := this.module.ModuleUser.GetUser(v); user != nil {
rank = append(rank, &pb.RankData{
RankId: int32(index + 1),
Uid: v,
Name: user.Name,
Gold: gold[index],
Figure: user.Figure,
Title: user.Title,
})
}
}
}
session.SendMsg(string(this.module.GetType()), TrollRankListResp, &pb.TrollRankListResp{
Data: rank,
})
return
}

View File

@ -1,20 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
func (this *apiComp) RecordListCheck(session comm.IUserSession, req *pb.TrollRecordListReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) RecordList(session comm.IUserSession, req *pb.TrollRecordListReq) (code pb.ErrorCode, data *pb.ErrorData) {
if list, err := this.module.record.GetTrollRecord(session.GetUserId()); err == nil {
session.SendMsg(string(this.module.GetType()), TrollRecordListResp, &pb.TrollRecordListResp{
Data: list,
})
}
return
}

View File

@ -1,65 +0,0 @@
package troll
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"math/big"
)
//参数校验
func (this *apiComp) SurpriseIdCheck(session comm.IUserSession, req *pb.TrollSurpriseIdReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) SurpriseId(session comm.IUserSession, req *pb.TrollSurpriseIdReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
circletime int32 // 循环一个周期的时间
circleCount int32 // 循环的次数
update map[string]interface{}
)
update = make(map[string]interface{})
trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
/// 计算经过了多少个周期
szTrain := this.configure.GetTrollAllTrain()
for _, v := range szTrain {
circletime += v
}
if int32(len(szTrain)) < trolltrain.TarinPos {
this.module.Errorf("TarinPos error: TarinPos:%d,maxLen:%d", trolltrain.TarinPos, len(szTrain))
code = pb.ErrorCode_ConfigNoFound
return
}
if int32(configure.Now().Unix()-trolltrain.RefreshTime) >= szTrain[trolltrain.TarinPos-1] {
trainNum := this.configure.GetTrollMaxTraintNum()
t := int32(configure.Now().Unix() - trolltrain.Ctime)
circleCount = t / circletime // 经过的周期数
if trolltrain.Circle != circleCount {
trolltrain.SurpriseID = make(map[int32]int32, 0)
n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum)))
// 只算当前商人所属的货物
g := this.configure.GetTrollGoodsFor(int32(n.Int64()) + 1)
n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(g))))
trolltrain.SurpriseID[int32(n.Int64())+1] = g[int32(n2.Int64())]
update["surpriseID"] = trolltrain.SurpriseID
trolltrain.Circle = circleCount
update["circle"] = trolltrain.Circle
this.module.ModifyTrollData(session.GetUserId(), update)
}
return
}
session.SendMsg(string(this.module.GetType()), TrollSurpriseIdResp, &pb.TrollSurpriseIdResp{
SurpriseID: trolltrain.SurpriseID,
})
return
}

View File

@ -1,185 +0,0 @@
package troll
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"sync"
)
const (
game_trollgoods = "game_trollgoods.json"
game_trollcoefficient = "game_trollcoefficient.json"
game_trolltrain = "game_trolltrain.json"
game_trollrule = "game_trollrule.json"
game_trolllv = "game_trolllv.json"
)
///配置管理基础组件
type configureComp struct {
hlock sync.RWMutex
modules.MCompConfigure
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
this.LoadConfigure(game_trollgoods, cfg.NewGameTrollGoods)
this.LoadConfigure(game_trollcoefficient, cfg.NewGameTrollCoefficient)
this.LoadConfigure(game_trolltrain, cfg.NewGameTrollTrain)
this.LoadConfigure(game_trollrule, cfg.NewGameTrollRule)
this.LoadConfigure(game_trolllv, cfg.NewGameTrollLv)
return
}
//加载多个配置文件
func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err error) {
for k, v := range confs {
err = configure.RegisterConfigure(k, v, nil)
if err != nil {
log.Errorf("配置文件:%s解析失败!", k)
break
}
}
return
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
// 获取列车货物信息
func (this *configureComp) GetTrollGoods(itemId int32) (data *cfg.GameTrollGoodsData) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
data = configure.Get(itemId)
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}
// 获取商人位置信息
func (this *configureComp) GetTrollTrain(id int32) (data *cfg.GameTrollTrainData) {
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return
}
// 获取基本规则
func (this *configureComp) GetTrollRule(id int32) int32 {
if v, err := this.GetConfigure(game_trollrule); err == nil {
if configure, ok := v.(*cfg.GameTrollRule); ok {
return configure.Get(id).Quantity
}
}
log.Errorf("get GetTrollRule conf err:%d", id)
return 1
}
func (this *configureComp) GetTrollCoefficient(id int32) (data *cfg.GameTrollCoefficientData) {
if v, err := this.GetConfigure(game_trollcoefficient); err == nil {
if configure, ok := v.(*cfg.GameTrollCoefficient); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollCoefficientData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollLv(id int32) (data *cfg.GameTrollLvData) {
if v, err := this.GetConfigure(game_trolllv); err == nil {
if configure, ok := v.(*cfg.GameTrollLv); ok {
data = configure.Get(id)
return
}
} else {
log.Errorf("get GameTrollCoefficientData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollAllTrain() (data []int32) {
data = make([]int32, 0)
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
for _, v := range configure.GetDataList() {
time := v.Time
data = append(data, time)
}
return
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return
}
func (this *configureComp) GetTrollMaxCoefficientNux() int32 {
if v, err := this.GetConfigure(game_trollcoefficient); err == nil {
if configure, ok := v.(*cfg.GameTrollCoefficient); ok {
return int32(len(configure.GetDataList()))
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return 0
}
// 获取车站的数量
func (this *configureComp) GetTrollMaxTraintNum() int32 {
if v, err := this.GetConfigure(game_trolltrain); err == nil {
if configure, ok := v.(*cfg.GameTrollTrain); ok {
return int32(len(configure.GetDataList()))
}
} else {
log.Errorf("get GameTrollTrainData conf err:%v", err)
}
return 1 // 至少有1个车站
}
func (this *configureComp) GetTrollAllGoods() (data []*cfg.GameTrollGoodsData) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
data = configure.GetDataList()
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}
// 返回商人货物信息
func (this *configureComp) GetTrollGoodsFor(trainID int32) (data []int32) {
if v, err := this.GetConfigure(game_trollgoods); err == nil {
if configure, ok := v.(*cfg.GameTrollGoods); ok {
for _, v := range configure.GetDataList() {
if v.Goodsfor == trainID {
data = append(data, v.Id)
}
}
return
}
} else {
log.Errorf("get GameTrollGoodsData conf err:%v", err)
}
return
}

View File

@ -1,55 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type ModelRecord struct {
modules.MCompModel
module *Troll
}
func (this *ModelRecord) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = comm.TableTrollRecord
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Troll)
//创建uid索引
this.DB.CreateIndex(core.SqlTable(comm.TableMail), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
// 获取列表信息
func (this *ModelRecord) GetTrollRecord(uid string) (result []*pb.DBTrollRecord, err error) {
result = make([]*pb.DBTrollRecord, 0)
if err = this.GetList(uid, &result); err != nil {
return
}
err = nil
return result, err
}
// 添加收益列表
func (this *ModelRecord) AddTrollRecord(uid string, gold, pos int32) (err error) {
troll := &pb.DBTrollRecord{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Gold: gold,
Pos: pos,
Time: configure.Now().Unix(),
}
if err = this.AddList(uid, troll.Id, troll); err != nil {
this.module.Errorf("%v", err)
return
}
return
}

View File

@ -1,65 +0,0 @@
package troll
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelTroll struct {
modules.MCompModel
module *Troll
}
func (this *modelTroll) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableTroll)
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Troll)
// uid 创建索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
func (this *modelTroll) getTrollList(uid string) (result *pb.DBTrollTrain, err error) {
result = &pb.DBTrollTrain{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Items: map[int32]int32{},
Price: map[int32]int32{},
GridNum: 0,
TarinPos: 1,
RangeId: 0,
Buy: 0,
Sell: 0,
NpcLv: 0,
NpcReward: map[int32]int32{},
TotalEarn: 0,
SellCount: 0,
RefreshTime: configure.Now().Unix(),
AiCount: 0,
Shop: map[int32]int32{},
Ctime: configure.Now().Unix(),
Circle: 0,
SurpriseID: map[int32]int32{},
ResetTime: configure.Now().Unix(),
}
if err = this.Get(uid, result); err != nil && mgo.MongodbNil == err {
// 创建一条数据
err = this.Add(uid, result)
return
}
err = nil
return result, err
}
func (this *modelTroll) modifyTrollDataByObjId(uid string, data map[string]interface{}) error {
return this.Change(uid, data)
}

View File

@ -1,310 +0,0 @@
/*
模块名:Troll
描述:巨怪商队
开发:梅雄风
*/
package troll
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"math"
"github.com/go-redis/redis/v8"
)
type Troll struct {
modules.ModuleBase
modelTroll *modelTroll
api *apiComp
configure *configureComp
record *ModelRecord
}
func NewModule() core.IModule {
return &Troll{}
}
func (this *Troll) GetType() core.M_Modules {
return comm.ModuleTroll
}
func (this *Troll) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
func (this *Troll) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelTroll = this.RegisterComp(new(modelTroll)).(*modelTroll)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
this.record = this.RegisterComp(new(ModelRecord)).(*ModelRecord)
}
// 接口信息
func (this *Troll) ModifyTrollData(uid string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelTroll.modifyTrollDataByObjId(uid, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
func (this *Troll) TrollAI(session comm.IUserSession, troll *pb.DBTrollTrain) (code pb.ErrorCode) {
var (
sellPrice map[int32]int32 // 出售货物价格
totalGold int32
index int32
update map[string]interface{}
rangeId int32 // 增幅ID
tarinPos int32 // 火车位置
refreshTime int64 // 刷新时间
)
if troll.Buy == 0 && troll.Sell == 0 {
return
}
update = make(map[string]interface{})
sellPrice = make(map[int32]int32)
now := configure.Now().Unix()
trainNum := this.configure.GetTrollMaxTraintNum()
maxCoefficient := this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值
if maxCoefficient == 0 {
code = pb.ErrorCode_ConfigNoFound
return
}
rangeId = troll.RangeId
tarinPos = troll.TarinPos
refreshTime = troll.RefreshTime
goods := this.configure.GetTrollAllGoods()
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice
}
sz := this.configure.GetTrollAllTrain()
if len(sz) == 0 {
this.Errorf("GetTrollAllTrain configure err") // 配置异常 打个日志
return
}
iCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
for index = 0; ; index++ {
if index < tarinPos-1 { // 起始位置
continue
}
index := int32(index) % trainNum
refreshTime += int64(sz[index])
if now >= refreshTime {
rangeId = (rangeId % maxCoefficient) + 1
tarinPos = (tarinPos % trainNum) + 1
coefficient := this.configure.GetTrollCoefficient(rangeId) // 获取当前级别的涨幅数据
if coefficient == nil {
return
}
if troll.Sell <= coefficient.Coefficient { // 可以出售
var preGold int32 // 成本价
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice * coefficient.Coefficient / 1000
preGold += troll.Price[v.Id] * troll.Items[v.Id]
}
// 出售之前算成本
if len(troll.Items) > 0 {
sellGold := this.SellAllItem(session.GetUserId(), troll, sellPrice, tarinPos)
if sellGold != 0 {
if code = this.ModuleUser.AddAttributeValue(session, comm.ResGold, sellGold, true); code != pb.ErrorCode_Success {
this.Errorf("玩家 uid:%s 金币不足,获得金币%d", session.GetUserId(), sellGold)
} // 一次交易完成做一次结算
}
totalGold += sellGold
// 计算本次出售赚的金币
if sellGold-preGold > 0 {
troll.TotalEarn += int64(sellGold - preGold)
}
this.SeTrollRankList(troll.TotalEarn, session.GetUserId()) // 设置排行数据
troll.AiCount++
aiMaxCount := this.configure.GetTrollRule(comm.TrollAIBuyCount)
if troll.AiCount+troll.SellCount > aiMaxCount { //达到最大交易次数
break
}
}
} else if troll.Buy >= coefficient.Coefficient { // 可以购买
for _, v := range goods {
sellPrice[v.Id] = v.Goodsprice * coefficient.Coefficient / 1000
}
troll.Shop = make(map[int32]int32) // 买之前清除购买上限
buyGold := this.BuyAllItem(session.GetUserId(), troll, sellPrice, tarinPos)
if buyGold != 0 {
if code = this.ModuleUser.AddAttributeValue(session, comm.ResGold, buyGold, true); code != pb.ErrorCode_Success {
this.Errorf("玩家 uid:%s 金币不足,获得金币%d", session.GetUserId(), buyGold)
}
}
totalGold += buyGold
}
} else { // 超过当前时间
refreshTime -= int64(sz[index])
break
}
if index > iCount*maxCoefficient { // ai挂机最大限制
break
}
}
update["shop"] = troll.Shop
update["items"] = troll.Items
update["price"] = troll.Price
update["aiCount"] = troll.AiCount
update["gridNum"] = troll.GridNum
update["totalEarn"] = troll.TotalEarn
if confLv := this.configure.GetTrollLv(troll.GetNpcLv() + 1); confLv != nil {
if troll.TotalEarn >= int64(confLv.Money) {
troll.NpcLv += 1 // npc levelUp
update["npcLv"] = troll.NpcLv
}
}
this.ModifyTrollData(session.GetUserId(), update)
return
}
// 出售所有货物
func (this *Troll) SellAllItem(uid string, troll *pb.DBTrollTrain, price map[int32]int32, tarinPos int32) (gold int32) {
for k, v := range troll.Items {
if _, ok := price[k]; ok {
gold += price[k] * v
}
delete(troll.Items, k) // 清除数据
}
troll.Price = make(map[int32]int32, 0) // 原来的价格也清除
troll.GridNum = 0 // 清空格子
// 写统计
if gold != 0 {
this.record.AddTrollRecord(uid, gold, tarinPos)
}
return
}
// 可以购买商品
func (this *Troll) BuyAllItem(uid string, troll *pb.DBTrollTrain, price map[int32]int32, tarinPos int32) (gold int32) {
var (
box map[int32]int32 // 盒子 存放可购买的物品
leftGirdNum int32 // 剩余可购买格子数量
costGold int32
buyBox map[int32]int32 // 盒子 存放可购买的物品
)
maxGirdNum := this.configure.GetTrollRule(comm.TrollGridCount) // 获取背包最大格子数量
maxgoods := this.configure.GetTrollRule(comm.TrollItemCount) // 获取单个物品最大上限 20个
leftGirdNum = maxGirdNum - troll.GridNum
box = make(map[int32]int32, 0)
buyBox = make(map[int32]int32, 0)
goods := this.configure.GetTrollAllGoods()
for _, v := range goods {
for {
if leftGirdNum > 0 && troll.Shop[v.Id] < v.Max {
leftGirdNum--
troll.Shop[v.Id] += maxgoods
box[v.Id] += maxgoods // 加入篮子
} else {
break
}
}
// 检查该位置的格子没有补满
full := (troll.Items[v.Id] + box[v.Id]) % maxgoods
if full != 0 {
box[v.Id] += (maxgoods - full) // 格子补满
}
}
// 通过金币来校验哪些物品可以买
curGold := this.ModuleUser.QueryAttributeValue(uid, comm.ResGold)
for k, v := range box {
for i := 0; i < int(v); i++ { //0 1 2 3
curGold -= int64(price[k])
costGold -= price[k]
if curGold < 0 {
box[k] = int32(i)
costGold += price[k] // 返还之前扣的
break
}
buyBox[k]++
}
}
if len(buyBox) == 0 {
return // 没有可购买的直接返回
}
for _, v := range goods { // 计算购买后的平均价格
g := troll.Items[v.Id] * troll.Price[v.Id]
g += buyBox[v.Id] * price[v.Id]
troll.Items[v.Id] += buyBox[v.Id]
if troll.Items[v.Id] != 0 {
troll.Price[v.Id] = g / troll.Items[v.Id]
}
}
gold = costGold
// 统计格子
troll.GridNum = 0
for _, v := range troll.Items {
if v > 0 {
troll.GridNum += int32(math.Ceil(float64(v) / float64(maxgoods)))
}
}
// 写统计
if gold != 0 {
this.record.AddTrollRecord(uid, gold, tarinPos)
}
return
}
func (this *Troll) SeTrollRankList(gold int64, uid string) {
tableName := "trollRank"
var (
pipe *pipe.RedisPipe = this.modelTroll.Redis.RedisPipe(context.TODO())
menbers *redis.Z
)
menbers = &redis.Z{Score: float64(gold), Member: uid}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
dock, err1 := cmd.Result()
if err1 != nil {
this.Errorln(dock, err1)
}
}
if _, err := pipe.Exec(); err != nil {
this.Errorln(err)
return
}
}
func (this *Troll) QueryRankList() (ranks []string, gold []int64, err error) {
var (
result []string
)
tableName := "trollRank"
if result, err = this.modelTroll.Redis.ZRevRange(tableName, 0, comm.MaxRankList).Result(); err != nil {
this.Errorln(err)
return
}
ranks = make([]string, 0)
for i := 0; i < len(result); i++ {
if _d, err := this.modelTroll.Redis.ZScore(tableName, result[i]); err == nil {
gold = append(gold, int64(_d))
ranks = append(ranks, result[i])
}
}
return
}

View File

@ -22,12 +22,12 @@ func (this *apiComp) CreateCheck(session comm.IUserSession, req *pb.UserCreateRe
} }
// 创角 // 创角
func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (code pb.ErrorCode, edata *pb.ErrorData) {
if code = this.CreateCheck(session, req); code != pb.ErrorCode_Success { if code = this.CreateCheck(session, req); code != pb.ErrorCode_Success {
return return
} }
resp := &pb.UserCreateResp{} // resp := &pb.UserCreateResp{}
uid := session.GetUserId() uid := session.GetUserId()
//获取用户 //获取用户
self := this.module.modelUser.GetUser(session.GetUserId()) self := this.module.modelUser.GetUser(session.GetUserId())
@ -44,8 +44,8 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c
//查询昵称是否重复 //查询昵称是否重复
if ok := this.module.modelUser.NickNameIsExist(req.NickName); !ok { if ok := this.module.modelUser.NickNameIsExist(req.NickName); !ok {
resp.Code = pb.ErrorCode_UserNickNameExist code = pb.ErrorCode_UserNickNameExist
this.sendMsg(session, UserSubTypeCreate, resp) // this.sendMsg(session, UserSubTypeCreate, resp)
return return
} }
@ -118,13 +118,12 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c
// } // }
// }() // }()
resp.IsSucc = true // resp.IsSucc = true
this.sendMsg(session, UserSubTypeCreate, resp) // this.sendMsg(session, UserSubTypeCreate, resp)
session.SendMsg(string(this.module.GetType()), UserSubTypeCreate, &pb.UserCreateResp{})
if req.Figure != 0 { if req.Figure != 0 {
go this.module.ModuleRtask.TriggerTask(uid, comm.GettaskParam(comm.Rtype72, 1)) go this.module.ModuleRtask.TriggerTask(uid, comm.GettaskParam(comm.Rtype72, 1))
} }
this.mail.SendMailByCid(session, comm.Welcomemail, nil) this.mail.SendMailByCid(session, comm.Welcomemail, nil)
return return
} }

View File

@ -11,7 +11,7 @@ import (
const ( const (
game_vikingboss = "game_vikingboss.json" game_vikingboss = "game_vikingboss.json"
game_challenge = "game_vikingchallenge.json" // game_challenge = "game_vikingchallenge.json"
) )
///配置管理基础组件 ///配置管理基础组件
@ -43,7 +43,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
log.Errorf("get game_viking conf err:%v", err) log.Errorf("get game_viking conf err:%v", err)
return return
}) })
err = this.LoadConfigure(game_challenge, cfg.NewGameVikingChallenge) // err = this.LoadConfigure(game_challenge, cfg.NewGameVikingChallenge)
// _data := this.GetVikingBossTypeConfigData() // _data := this.GetVikingBossTypeConfigData()
// log.Debugf("%v", _data) // log.Debugf("%v", _data)
@ -92,30 +92,30 @@ func (this *configureComp) GetVikingBossTypeConfigData() map[int32]struct{} {
return mapType return mapType
} }
func (this *configureComp) GetBuyChallengeCount(index int32) (data *cfg.GameVikingChallengeData) { // func (this *configureComp) GetBuyChallengeCount(index int32) (data *cfg.GameVikingChallengeData) {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameVikingChallenge); ok { // if configure, ok := v.(*cfg.GameVikingChallenge); ok {
data = configure.Get(index) // data = configure.Get(index)
return // return
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return // return
} // }
func (this *configureComp) GetMaxBuyChallengeCount() int32 { // func (this *configureComp) GetMaxBuyChallengeCount() int32 {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameVikingChallenge); ok { // if configure, ok := v.(*cfg.GameVikingChallenge); ok {
return int32(len(configure.GetDataList())) // return int32(len(configure.GetDataList()))
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return 0 // return 0
} // }
// 获取boss 最大难点 // 获取boss 最大难点
func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 { func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 {
@ -126,15 +126,15 @@ func (this *configureComp) GetMaxDifficultyByBossID(bossId int32) int32 {
} }
// 获取最后一条数据 // 获取最后一条数据
func (this *configureComp) GetLastBuyChallenge() (data *cfg.GameVikingChallengeData) { // func (this *configureComp) GetLastBuyChallenge() (data *cfg.GameVikingChallengeData) {
if v, err := this.GetConfigure(game_challenge); err == nil { // if v, err := this.GetConfigure(game_challenge); err == nil {
if configure, ok := v.(*cfg.GameVikingChallenge); ok && len(configure.GetDataList()) > 0 { // if configure, ok := v.(*cfg.GameVikingChallenge); ok && len(configure.GetDataList()) > 0 {
data = configure.GetDataList()[len(configure.GetDataList())-1] // data = configure.GetDataList()[len(configure.GetDataList())-1]
return // return
} // }
} else { // } else {
log.Errorf("get game_challenge conf err:%v", err) // log.Errorf("get game_challenge conf err:%v", err)
} // }
return // return
} // }

View File

@ -81,8 +81,8 @@ type DBBuriedItem struct {
Conid int32 `protobuf:"varint,1,opt,name=conid,proto3" json:"conid" bson:"conid"` //条件id Conid int32 `protobuf:"varint,1,opt,name=conid,proto3" json:"conid" bson:"conid"` //条件id
State BuriedItemState `protobuf:"varint,2,opt,name=state,proto3,enum=BuriedItemState" json:"state" bson:"state"` //状态 State BuriedItemState `protobuf:"varint,2,opt,name=state,proto3,enum=BuriedItemState" json:"state" bson:"state"` //状态
Value int32 `protobuf:"varint,3,opt,name=value,proto3" json:"value" bson:"value"` //条件值 Value []int32 `protobuf:"varint,3,rep,packed,name=value,proto3" json:"value" bson:"value"` //条件值
Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp" bson:"timestamp"` //最后一次操作时间 Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp" bson:"timestamp"` //最后一次操作时间
} }
func (x *DBBuriedItem) Reset() { func (x *DBBuriedItem) Reset() {
@ -131,11 +131,11 @@ func (x *DBBuriedItem) GetState() BuriedItemState {
return BuriedItemState_Inactivated return BuriedItemState_Inactivated
} }
func (x *DBBuriedItem) GetValue() int32 { func (x *DBBuriedItem) GetValue() []int32 {
if x != nil { if x != nil {
return x.Value return x.Value
} }
return 0 return nil
} }
func (x *DBBuriedItem) GetTimestamp() int64 { func (x *DBBuriedItem) GetTimestamp() int64 {
@ -227,8 +227,8 @@ var file_buried_buried_db_proto_rawDesc = []byte{
0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10,
0x2e, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65,
0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a,
0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x08, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x08,
0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 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, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,

View File

@ -154,12 +154,13 @@ type UserMessage struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
MainType string `protobuf:"bytes,1,opt,name=MainType,proto3" json:"MainType"` //用户消息处理 模块名 例如:user 对应项目中 user的模块 MsgId uint32 `protobuf:"varint,1,opt,name=MsgId,proto3" json:"MsgId"` //消息id 客户端标记
SubType string `protobuf:"bytes,2,opt,name=SubType,proto3" json:"SubType"` //用户消息处理函数名 例如:login 对应项目中 user的模块中 MainType string `protobuf:"bytes,2,opt,name=MainType,proto3" json:"MainType"` //用户消息处理 模块名 例如:user 对应项目中 user的模块
SubType string `protobuf:"bytes,3,opt,name=SubType,proto3" json:"SubType"` //用户消息处理函数名 例如:login 对应项目中 user的模块中
// api_login 的处理函数 // api_login 的处理函数
ServicePath string `protobuf:"bytes,3,opt,name=servicePath,proto3" json:"servicePath"` // 消息路由地址 部分消息前端确定转发给谁 \worker\worker0 ServicePath string `protobuf:"bytes,4,opt,name=servicePath,proto3" json:"servicePath"` // 消息路由地址 部分消息前端确定转发给谁 \worker\worker0
Data *anypb.Any `protobuf:"bytes,4,opt,name=data,proto3" json:"data"` Data *anypb.Any `protobuf:"bytes,5,opt,name=data,proto3" json:"data"`
Sec string `protobuf:"bytes,5,opt,name=sec,proto3" json:"sec"` //密文 Sec string `protobuf:"bytes,6,opt,name=sec,proto3" json:"sec"` //密文
} }
func (x *UserMessage) Reset() { func (x *UserMessage) Reset() {
@ -194,6 +195,13 @@ func (*UserMessage) Descriptor() ([]byte, []int) {
return file_comm_proto_rawDescGZIP(), []int{1} return file_comm_proto_rawDescGZIP(), []int{1}
} }
func (x *UserMessage) GetMsgId() uint32 {
if x != nil {
return x.MsgId
}
return 0
}
func (x *UserMessage) GetMainType() string { func (x *UserMessage) GetMainType() string {
if x != nil { if x != nil {
return x.MainType return x.MainType
@ -1938,197 +1946,198 @@ var file_comm_proto_rawDesc = []byte{
0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
0xa1, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70,
0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70,
0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73,
0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x73, 0x65, 0x63, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, 0x06,
0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x63, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x41, 0x67,
0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76,
0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01,
0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65,
0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65,
0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x4d, 0x65,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x73, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x73, 0x73, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x79, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0f, 0x52,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x50, 0x43, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e,
0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45,
0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x0a, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x72, 0x72, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18,
0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05,
0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73,
0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79,
0x22, 0x69, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65,
0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0f, 0x41,
0x67, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24,
0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e,
0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55,
0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05,
0x6b, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d,
0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65,
0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a,
0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18,
0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74,
0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x61, 0x22, 0x75, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x73, 0x74, 0x4d, 0x65,
0x99, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e,
0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e,
0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x55, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28,
0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e,
0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73,
0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x13, 0x42, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x72, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c,
0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53,
0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69,
0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49,
0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72,
0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18,
0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65,
0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72,
0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77,
0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73,
0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70,
0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73,
0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65,
0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65,
0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01,
0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x63, 0x65, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74,
0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73,
0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x65, 0x74, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54,
0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x3f,
0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22,
0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x0c, 0x0a,
0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x41,
0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01,
0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12,
0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x12, 0x0c, 0x0a, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a,
0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x4f, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x08, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01,
0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x01, 0x4e, 0x12, 0x0c, 0x0a, 0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01,
0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x4f, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14,
0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a,
0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x1a, 0x0a, 0x06, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61,
0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x6d, 0x33, 0x22, 0x1a, 0x0a, 0x06, 0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03,
0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d,
0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x0a, 0x07, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a,
0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x08, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70,
0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x32, 0x12, 0x16, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e,
0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x22, 0x59, 0x31, 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52,
0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x65, 0x71, 0x41, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01,
0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06,
0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61,
0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x72, 0x61, 0x6d, 0x32, 0x22, 0x59, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72,
0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x71, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x41, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01,
0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x18, 0x04, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x22, 0x51, 0x0a, 0x0b, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61,
0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x72, 0x61, 0x6d, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61,
0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x6d, 0x34, 0x22, 0x51, 0x0a, 0x0b, 0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x42, 0x49, 0x6e, 0x66, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18,
0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12,
0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05,
0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x65, 0x44, 0x42, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65,
0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65,
0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x72, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d,
0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x6f, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e,
0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x73, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f,
0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12,
0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e,
0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a,
0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64,
0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28,
0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09,
0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12,
0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73,
0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62,
0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12,
0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20,
0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12,
0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, 0x10, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64,
0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72,
0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x06, 0x0a, 0x02, 0x48, 0x70, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01,
0x12, 0x07, 0x0a, 0x03, 0x44, 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65,
0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -27,12 +27,13 @@ type NotifyErrorNotifyPush struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
ReqMainType string `protobuf:"bytes,1,opt,name=ReqMainType,proto3" json:"ReqMainType"` // 请求协议模块 模块名 例如:user 对应项目中 user的模块 MsgId uint32 `protobuf:"varint,1,opt,name=MsgId,proto3" json:"MsgId"` //消息id 客户端标记
ReqSubType string `protobuf:"bytes,2,opt,name=ReqSubType,proto3" json:"ReqSubType"` // 请求协议函数 例如:login 对应项目中 user的模块中 ReqMainType string `protobuf:"bytes,2,opt,name=ReqMainType,proto3" json:"ReqMainType"` // 请求协议模块 模块名 例如:user 对应项目中 user的模块
ReqSubType string `protobuf:"bytes,3,opt,name=ReqSubType,proto3" json:"ReqSubType"` // 请求协议函数 例如:login 对应项目中 user的模块中
// api_login 的处理函数 // api_login 的处理函数
Code ErrorCode `protobuf:"varint,3,opt,name=Code,proto3,enum=ErrorCode" json:"Code"` // 执行返回错误码 对应 errorcode.proto 枚举 Code ErrorCode `protobuf:"varint,4,opt,name=Code,proto3,enum=ErrorCode" json:"Code"` // 执行返回错误码 对应 errorcode.proto 枚举
Arg *anypb.Any `protobuf:"bytes,4,opt,name=arg,proto3" json:"arg"` //参数信息 Arg *anypb.Any `protobuf:"bytes,5,opt,name=arg,proto3" json:"arg"` //参数信息
Err *ErrorData `protobuf:"bytes,5,opt,name=err,proto3" json:"err"` //错误数据 Err *ErrorData `protobuf:"bytes,6,opt,name=err,proto3" json:"err"` //错误数据
} }
func (x *NotifyErrorNotifyPush) Reset() { func (x *NotifyErrorNotifyPush) Reset() {
@ -67,6 +68,13 @@ func (*NotifyErrorNotifyPush) Descriptor() ([]byte, []int) {
return file_notify_notify_msg_proto_rawDescGZIP(), []int{0} return file_notify_notify_msg_proto_rawDescGZIP(), []int{0}
} }
func (x *NotifyErrorNotifyPush) GetMsgId() uint32 {
if x != nil {
return x.MsgId
}
return 0
}
func (x *NotifyErrorNotifyPush) GetReqMainType() string { func (x *NotifyErrorNotifyPush) GetReqMainType() string {
if x != nil { if x != nil {
return x.ReqMainType return x.ReqMainType
@ -206,28 +214,29 @@ var file_notify_notify_msg_proto_rawDesc = []byte{
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2f, 0x6e,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x4e, 0x6f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd5, 0x01, 0x0a, 0x15, 0x4e, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x74, 0x69, 0x66, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50,
0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x75, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x28, 0x0d, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x71,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x75, 0x62, 0x54, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x75, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52,
0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x65, 0x71, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x43,
0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f,
0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x72, 0x67, 0x12, 0x1c, 0x0a, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x03, 0x65, 0x72, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03,
0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x65, 0x72, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x4e, 0x61, 0x72, 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x65, 0x72,
0x66, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69,
0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x66, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x47,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x61,
0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x09, 0x53, 0x79, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28,
0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x66, 0x79, 0x52, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x06, 0x5a,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -568,9 +568,6 @@ type UserCreateResp struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
IsSucc bool `protobuf:"varint,1,opt,name=IsSucc,proto3" json:"IsSucc"`
Code ErrorCode `protobuf:"varint,2,opt,name=code,proto3,enum=ErrorCode" json:"code"`
} }
func (x *UserCreateResp) Reset() { func (x *UserCreateResp) Reset() {
@ -605,20 +602,6 @@ func (*UserCreateResp) Descriptor() ([]byte, []int) {
return file_user_user_msg_proto_rawDescGZIP(), []int{10} return file_user_user_msg_proto_rawDescGZIP(), []int{10}
} }
func (x *UserCreateResp) GetIsSucc() bool {
if x != nil {
return x.IsSucc
}
return false
}
func (x *UserCreateResp) GetCode() ErrorCode {
if x != nil {
return x.Code
}
return ErrorCode_Success
}
// 玩家资源变更推送 // 玩家资源变更推送
type UserResChangedPush struct { type UserResChangedPush struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -3105,199 +3088,195 @@ var file_user_user_msg_proto_rawDesc = []byte{
0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
0x67, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x67, 0x75, 0x67, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x67, 0x75,
0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0e, 0x55, 0x73, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x73,
0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x03, 0x0a,
0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50,
0x53, 0x75, 0x63, 0x63, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x03, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02,
0x63, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x03, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70,
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x65, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x69, 0x70, 0x65, 0x78,
0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01,
0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x28, 0x03, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66,
0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x65, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x72, 0x69,
0x03, 0x52, 0x06, 0x76, 0x69, 0x70, 0x65, 0x78, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x63, 0x6f, 0x69, 0x6e, 0x18,
0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x63, 0x6f, 0x69, 0x6e, 0x12,
0x6f, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01,
0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a,
0x74, 0x61, 0x72, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
0x74, 0x61, 0x72, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x70,
0x63, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
0x64, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d,
0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x63, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e,
0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x74, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x02, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x18, 0x0c, 0x20, 0x01,
0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x74,
0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61,
0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34,
0x65, 0x6e, 0x74, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, 0x12,
0x6e, 0x74, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x18, 0x0d, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x12, 0x18, 0x0a, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74,
0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x2a, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68,
0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12,
0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x2a, 0x0a, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x50, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x16, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01,
0x67, 0x69, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x12, 0x55,
0x72, 0x50, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73,
0x0a, 0x02, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x22, 0x13, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01,
0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69,
0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x40, 0x0a, 0x14, 0x55,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01,
0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74,
0x69, 0x6e, 0x67, 0x22, 0x40, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0a,
0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69,
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55,
0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64,
0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x55, 0x73,
0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61,
0x52, 0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x12, 0x55, 0x73, 0x65,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
0x64, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x63,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f,
0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52,
0x65, 0x22, 0x70, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x01,
0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x44,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74,
0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74,
0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x61, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74,
0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69,
0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49,
0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x3b,
0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52,
0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x64, 0x69, 0x66, 0x79, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x02,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x13, 0x55,
0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52,
0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01,
0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x71, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x44,
0x12, 0x14, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75,
0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x64, 0x69, 0x66, 0x79, 0x62, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x72, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75,
0x05, 0x62, 0x67, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x67, 0x72, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54,
0x70, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72,
0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a,
0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4c,
0x64, 0x69, 0x66, 0x79, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10,
0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x70,
0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76,
0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x54, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x45,
0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73, 0x22, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70,
0x47, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f,
0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73,
0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x54, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x28, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67,
0x56, 0x69, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71,
0x52, 0x06, 0x76, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x69, 0x70, 0x4c, 0x76, 0x22, 0x27, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64,
0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73,
0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x28, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x02,
0x6f, 0x64, 0x69, 0x66, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70,
0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64,
0x6e, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x0d,
0x73, 0x65, 0x72, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20,
0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52,
0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f,
0x12, 0x1d, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f,
0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x02, 0x65, 0x78, 0x12, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b,
0x33, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68,
0x63, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13, 0x55,
0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0d, 0x68, 0x75, 0x6e, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65,
0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77,
0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53,
0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x68,
0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x55,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a,
0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x43,
0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65,
0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, 0x15, 0x55, 0x73,
0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x72,
0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x31, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44,
0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x75,
0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55,
0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x73,
0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
0x65, 0x71, 0x22, 0x3a, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x53, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x0d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69,
0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x0d, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2b, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67,
0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2b, 0x0a, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
0x0c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61,
0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, 0x65,
0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x12, 0x55, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65,
0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2b,
0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x50, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, 0x72,
0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2b, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x50, 0x75, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02,
0x7a, 0x7a, 0x6c, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x27, 0x0a, 0x11, 0x55,
0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71,
0x64, 0x65, 0x78, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x74, 0x69, 0x70, 0x73, 0x22, 0x31, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x31, 0x0a, 0x12, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61,
0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x52, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67,
0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53,
0x32, 0x07, 0x2e, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e,
0x2f, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x52, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74,
0x71, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x22, 0x48, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72,
0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x03, 0x61,
0x22, 0x48, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x52, 0x74, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41,
0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x03, 0x61, 0x74, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x74, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73,
0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x53, 0x75, 0x63, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75,
0x74, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x02, 0x20, 0x01, 0x63, 0x63, 0x22, 0x63, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68,
0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x63, 0x0a, 0x13, 0x55, 0x73, 0x44, 0x65, 0x66, 0x50, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72,
0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x66, 0x50, 0x65, 0x72, 0x52, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53,
0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x6b, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f,
0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x52, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x22, 0x7c, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x53,
0x42, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x22, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x66, 0x50, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
0x7c, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x66, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x50, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b,
0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12,
0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72,
0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75,
0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x22, 0x76, 0x0a,
0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x73,
0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b,
0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69,
0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x63, 0x75, 0x72, 0x42, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x63, 0x75, 0x72, 0x42, 0x67, 0x22, 0x76, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6b, 0x69,
0x72, 0x6f, 0x74, 0x6f, 0x33, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69,
0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12,
0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72,
0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75,
0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x42, 0x06, 0x5a,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -3391,27 +3370,26 @@ var file_user_user_msg_proto_depIdxs = []int32{
58, // 3: UserInfoResp.ex:type_name -> DBUserExpand 58, // 3: UserInfoResp.ex:type_name -> DBUserExpand
59, // 4: UserRegisterResp.Code:type_name -> ErrorCode 59, // 4: UserRegisterResp.Code:type_name -> ErrorCode
60, // 5: UserLoadResp.data:type_name -> CacheUser 60, // 5: UserLoadResp.data:type_name -> CacheUser
59, // 6: UserCreateResp.code:type_name -> ErrorCode 61, // 6: UserGetSettingResp.setting:type_name -> DBUserSetting
61, // 7: UserGetSettingResp.setting:type_name -> DBUserSetting 61, // 7: UserUpdateSettingReq.setting:type_name -> DBUserSetting
61, // 8: UserUpdateSettingReq.setting:type_name -> DBUserSetting 59, // 8: UserModifynameResp.code:type_name -> ErrorCode
59, // 9: UserModifynameResp.code:type_name -> ErrorCode 57, // 9: UserBattlerecordResp.data:type_name -> DBUser
57, // 10: UserBattlerecordResp.data:type_name -> DBUser 58, // 10: UserBattlerecordResp.ex:type_name -> DBUserExpand
58, // 11: UserBattlerecordResp.ex:type_name -> DBUserExpand 62, // 11: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord
62, // 12: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord 63, // 12: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank
63, // 13: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank 64, // 13: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank
64, // 14: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank 60, // 14: UserOnlineResp.users:type_name -> CacheUser
60, // 15: UserOnlineResp.users:type_name -> CacheUser 57, // 15: UserDataListResp.users:type_name -> DBUser
57, // 16: UserDataListResp.users:type_name -> DBUser 65, // 16: UserGetServerDataResp.data:type_name -> DBServerData
65, // 17: UserGetServerDataResp.data:type_name -> DBServerData 66, // 17: UserSignResp.data:type_name -> DBSign
66, // 18: UserSignResp.data:type_name -> DBSign 66, // 18: UserChangeTipsResp.data:type_name -> DBSign
66, // 19: UserChangeTipsResp.data:type_name -> DBSign 67, // 19: UserSellResReq.atno:type_name -> UserAtno
67, // 20: UserSellResReq.atno:type_name -> UserAtno 68, // 20: UserSellResResp.atn:type_name -> UserAssets
68, // 21: UserSellResResp.atn:type_name -> UserAssets 21, // [21:21] is the sub-list for method output_type
22, // [22:22] is the sub-list for method output_type 21, // [21:21] is the sub-list for method input_type
22, // [22:22] is the sub-list for method input_type 21, // [21:21] is the sub-list for extension type_name
22, // [22:22] is the sub-list for extension type_name 21, // [21:21] is the sub-list for extension extendee
22, // [22:22] is the sub-list for extension extendee 0, // [0:21] is the sub-list for field type_name
0, // [0:22] is the sub-list for field type_name
} }
func init() { file_user_user_msg_proto_init() } func init() { file_user_user_msg_proto_init() }

View File

@ -44,7 +44,6 @@ import (
"go_dreamfactory/modules/sys" "go_dreamfactory/modules/sys"
"go_dreamfactory/modules/task" "go_dreamfactory/modules/task"
"go_dreamfactory/modules/tools" "go_dreamfactory/modules/tools"
"go_dreamfactory/modules/troll"
"go_dreamfactory/modules/user" "go_dreamfactory/modules/user"
"go_dreamfactory/modules/viking" "go_dreamfactory/modules/viking"
"go_dreamfactory/modules/worldtask" "go_dreamfactory/modules/worldtask"
@ -103,7 +102,6 @@ func main() {
linestory.NewModule(), linestory.NewModule(),
library.NewModule(), library.NewModule(),
arena.NewModule(), arena.NewModule(),
troll.NewModule(),
sociaty.NewModule(), sociaty.NewModule(),
horoscope.NewModule(), horoscope.NewModule(),
pay.NewModule(), pay.NewModule(),

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

View File

@ -1,50 +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
import "errors"
type GameArenaBuyChallengeData struct {
Num int32
Need []*Gameatn
}
const TypeId_GameArenaBuyChallengeData = -706156046
func (*GameArenaBuyChallengeData) GetTypeId() int32 {
return -706156046
}
func (_v *GameArenaBuyChallengeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["need"].([]interface{}); !_ok_ { err = errors.New("need error"); return }
_v.Need = 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.Need = append(_v.Need, _list_v_)
}
}
return
}
func DeserializeGameArenaBuyChallengeData(_buf map[string]interface{}) (*GameArenaBuyChallengeData, error) {
v := &GameArenaBuyChallengeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -18,7 +18,6 @@ type GameBuriedCondiData struct {
Type int32 Type int32
Valid int32 Valid int32
NPC int32 NPC int32
Vtype int32
Value int32 Value int32
Filter []*Gamecompare Filter []*Gamecompare
} }
@ -37,7 +36,6 @@ func (_v *GameBuriedCondiData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["valid"].(float64); !_ok_ { err = errors.New("valid error"); return }; _v.Valid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["valid"].(float64); !_ok_ { err = errors.New("valid error"); return }; _v.Valid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["NPC"].(float64); !_ok_ { err = errors.New("NPC error"); return }; _v.NPC = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["NPC"].(float64); !_ok_ { err = errors.New("NPC error"); return }; _v.NPC = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["vtype"].(float64); !_ok_ { err = errors.New("vtype error"); return }; _v.Vtype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value"].(float64); !_ok_ { err = errors.New("value error"); return }; _v.Value = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value"].(float64); !_ok_ { err = errors.New("value error"); return }; _v.Value = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}

View File

@ -13,11 +13,6 @@ import "errors"
type GameBuriedTypeData struct { type GameBuriedTypeData struct {
Id int32 Id int32
Insert int32 Insert int32
Desc string
Data1 string
Data2 string
Data3 string
Data4 string
} }
const TypeId_GameBuriedTypeData = -452590967 const TypeId_GameBuriedTypeData = -452590967
@ -29,11 +24,6 @@ func (*GameBuriedTypeData) GetTypeId() int32 {
func (_v *GameBuriedTypeData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameBuriedTypeData)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["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["insert"].(float64); !_ok_ { err = errors.New("insert error"); return }; _v.Insert = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["insert"].(float64); !_ok_ { err = errors.New("insert error"); return }; _v.Insert = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["desc"].(string); !_ok_ { err = errors.New("desc error"); return } }
{ var _ok_ bool; if _v.Data1, _ok_ = _buf["data1"].(string); !_ok_ { err = errors.New("data1 error"); return } }
{ var _ok_ bool; if _v.Data2, _ok_ = _buf["data2"].(string); !_ok_ { err = errors.New("data2 error"); return } }
{ var _ok_ bool; if _v.Data3, _ok_ = _buf["data3"].(string); !_ok_ { err = errors.New("data3 error"); return } }
{ var _ok_ bool; if _v.Data4, _ok_ = _buf["data4"].(string); !_ok_ { err = errors.New("data4 error"); return } }
return return
} }

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

View File

@ -1,50 +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
import "errors"
type GameHuntingChallengeData struct {
Buynum int32
Need []*Gameatn
}
const TypeId_GameHuntingChallengeData = 1005265914
func (*GameHuntingChallengeData) GetTypeId() int32 {
return 1005265914
}
func (_v *GameHuntingChallengeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["buynum"].(float64); !_ok_ { err = errors.New("buynum error"); return }; _v.Buynum = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["need"].([]interface{}); !_ok_ { err = errors.New("need error"); return }
_v.Need = 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.Need = append(_v.Need, _list_v_)
}
}
return
}
func DeserializeGameHuntingChallengeData(_buf map[string]interface{}) (*GameHuntingChallengeData, error) {
v := &GameHuntingChallengeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

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

View File

@ -1,50 +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
import "errors"
type GameVikingChallengeData struct {
Buynum int32
Need []*Gameatn
}
const TypeId_GameVikingChallengeData = 1311823367
func (*GameVikingChallengeData) GetTypeId() int32 {
return 1311823367
}
func (_v *GameVikingChallengeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["buynum"].(float64); !_ok_ { err = errors.New("buynum error"); return }; _v.Buynum = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["need"].([]interface{}); !_ok_ { err = errors.New("need error"); return }
_v.Need = 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.Need = append(_v.Need, _list_v_)
}
}
return
}
func DeserializeGameVikingChallengeData(_buf map[string]interface{}) (*GameVikingChallengeData, error) {
v := &GameVikingChallengeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -65,14 +65,12 @@ type Tables struct {
Gourmet *GameGourmet Gourmet *GameGourmet
Drop *GameDrop Drop *GameDrop
VikingBoss *GameVikingBoss VikingBoss *GameVikingBoss
VikingChallenge *GameVikingChallenge
VikingLineup *GameVikingLineup VikingLineup *GameVikingLineup
VikingEntrance *GameVikingEntrance VikingEntrance *GameVikingEntrance
DreamlandBoos *GameDreamlandBoos DreamlandBoos *GameDreamlandBoos
DreamlandChallenge *GameDreamlandChallenge DreamlandChallenge *GameDreamlandChallenge
DreamlandTrigger *GameDreamlandTrigger DreamlandTrigger *GameDreamlandTrigger
HuntingBoss *GameHuntingBoss HuntingBoss *GameHuntingBoss
HuntingChallenge *GameHuntingChallenge
HuntingOpenTime *GameHuntingOpenTime HuntingOpenTime *GameHuntingOpenTime
HuntingLineup *GameHuntingLineup HuntingLineup *GameHuntingLineup
MonsterFormat *GameMonsterFormat MonsterFormat *GameMonsterFormat
@ -87,7 +85,6 @@ type Tables struct {
Herofusion *GameHerofusion Herofusion *GameHerofusion
PlayerInfor *GamePlayerInfor PlayerInfor *GamePlayerInfor
PlayerInfor_overview *GamePlayerInfor_overview PlayerInfor_overview *GamePlayerInfor_overview
ArenaBuyChallenge *GameArenaBuyChallenge
ArenaActiveReward *GameArenaActiveReward ArenaActiveReward *GameArenaActiveReward
ArenaRobot *GameArenaRobot ArenaRobot *GameArenaRobot
ArenaRankReward *GameArenaRankReward ArenaRankReward *GameArenaRankReward
@ -529,12 +526,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.VikingBoss, err = NewGameVikingBoss(buf) ; err != nil { if tables.VikingBoss, err = NewGameVikingBoss(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_vikingchallenge") ; err != nil {
return nil, err
}
if tables.VikingChallenge, err = NewGameVikingChallenge(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_vikinglineup") ; err != nil { if buf, err = loader("game_vikinglineup") ; err != nil {
return nil, err return nil, err
} }
@ -571,12 +562,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil { if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_huntingchallenge") ; err != nil {
return nil, err
}
if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_huntingopentime") ; err != nil { if buf, err = loader("game_huntingopentime") ; err != nil {
return nil, err return nil, err
} }
@ -661,12 +646,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.PlayerInfor_overview, err = NewGamePlayerInfor_overview(buf) ; err != nil { if tables.PlayerInfor_overview, err = NewGamePlayerInfor_overview(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_arenabuychallenge") ; err != nil {
return nil, err
}
if tables.ArenaBuyChallenge, err = NewGameArenaBuyChallenge(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_arenaactivereward") ; err != nil { if buf, err = loader("game_arenaactivereward") ; err != nil {
return nil, err return nil, err
} }

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

View File

@ -1,60 +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
import "errors"
type GameEquipAttrlibraryData struct {
Key int32
Libraryid int32
Attrkey string
Attrvar int32
AttrvarCorrect int32
Probability int32
Addition []int32
}
const TypeId_GameEquipAttrlibraryData = 1806205600
func (*GameEquipAttrlibraryData) GetTypeId() int32 {
return 1806205600
}
func (_v *GameEquipAttrlibraryData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["libraryid"].(float64); !_ok_ { err = errors.New("libraryid error"); return }; _v.Libraryid = int32(_tempNum_) }
{ var _ok_ bool; if _v.Attrkey, _ok_ = _buf["attrkey"].(string); !_ok_ { err = errors.New("attrkey error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["attrvar"].(float64); !_ok_ { err = errors.New("attrvar error"); return }; _v.Attrvar = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["attrvar_correct"].(float64); !_ok_ { err = errors.New("attrvar_correct error"); return }; _v.AttrvarCorrect = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Addition"].([]interface{}); !_ok_ { err = errors.New("Addition error"); return }
_v.Addition = 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.Addition = append(_v.Addition, _list_v_)
}
}
return
}
func DeserializeGameEquipAttrlibraryData(_buf map[string]interface{}) (*GameEquipAttrlibraryData, error) {
v := &GameEquipAttrlibraryData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}