好感度

This commit is contained in:
meixiongfeng 2023-04-19 18:01:53 +08:00
parent 62cf386449
commit 0e6aba2b9e
20 changed files with 681 additions and 744 deletions

View File

@ -6,21 +6,31 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 0, "favor_lv": 1,
"favor_exp": 100, "favor_exp": 100,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_0", "key": "favorability_favorability_lv_name_1",
"text": "萍水相逢" "text": "萍水相逢"
}, },
"privilege_type": 0, "privilege_type": 0,
"privilege_value": 0, "privilege_value": 0,
"return_reward": [], "return_reward": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"return_txt": { "return_txt": {
"key": "", "key": "favorability_favorability_return_txt",
"text": "" "text": "达到好感度{0}级可领取"
}, },
"likes_food": [], "likes_food": [
"disliking_food": [], 1001
],
"disliking_food": [
1001
],
"likes_txt": { "likes_txt": {
"key": "favorability_favorability_likes_txt_14002", "key": "favorability_favorability_likes_txt_14002",
"text": "我很喜欢,谢谢!" "text": "我很喜欢,谢谢!"
@ -104,10 +114,116 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 1, "favor_lv": 2,
"favor_exp": 200, "favor_exp": 200,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_1", "key": "favorability_favorability_lv_name_2",
"text": "点头之交"
},
"privilege_type": 0,
"privilege_value": 0,
"return_reward": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"return_txt": {
"key": "favorability_favorability_return_txt",
"text": "达到好感度{0}级可领取"
},
"likes_food": [
1001
],
"disliking_food": [],
"likes_txt": {
"key": "favorability_favorability_likes_txt_14002",
"text": "我很喜欢,谢谢!"
},
"ordinary_txt": {
"key": "favorability_favorability_ordinary_txt_14002",
"text": "送我的?谢谢!"
},
"disliking_txt": {
"key": "favorability_favorabilit_disliking_txt_14002",
"text": "这味道,一言难尽......"
},
"favorlv": [
1,
3,
5
],
"biography_name": [
"140021",
"140022",
"140023"
],
"biography_txt": [
"140021",
"140022",
"140023"
],
"biography_reward1": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"biography_reward2": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"biography_reward3": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"plot_unlock": [
2,
4,
6,
8
],
"startid": 300001,
"endid": [
3000015,
3000017,
3000018
],
"rightend": 3000014,
"stroyprize": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"special_stroyprize": [
{
"a": "attr",
"t": "gold",
"n": 2000
}
]
},
{
"id": 3,
"hid": "14002",
"name": {
"key": "hero_14002",
"text": "大龙"
},
"favor_lv": 3,
"favor_exp": 300,
"lv_name": {
"key": "favorability_favorability_lv_name_3",
"text": "点头之交" "text": "点头之交"
}, },
"privilege_type": 0, "privilege_type": 0,
@ -201,104 +317,6 @@
} }
] ]
}, },
{
"id": 3,
"hid": "14002",
"name": {
"key": "hero_14002",
"text": "大龙"
},
"favor_lv": 2,
"favor_exp": 300,
"lv_name": {
"key": "favorability_favorability_lv_name_2",
"text": "点头之交"
},
"privilege_type": 0,
"privilege_value": 0,
"return_reward": [],
"return_txt": {
"key": "",
"text": ""
},
"likes_food": [],
"disliking_food": [],
"likes_txt": {
"key": "favorability_favorability_likes_txt_14002",
"text": "我很喜欢,谢谢!"
},
"ordinary_txt": {
"key": "favorability_favorability_ordinary_txt_14002",
"text": "送我的?谢谢!"
},
"disliking_txt": {
"key": "favorability_favorabilit_disliking_txt_14002",
"text": "这味道,一言难尽......"
},
"favorlv": [
1,
3,
5
],
"biography_name": [
"140021",
"140022",
"140023"
],
"biography_txt": [
"140021",
"140022",
"140023"
],
"biography_reward1": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"biography_reward2": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"biography_reward3": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"plot_unlock": [
2,
4,
6,
8
],
"startid": 300001,
"endid": [
3000015,
3000017,
3000018
],
"rightend": 3000014,
"stroyprize": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"special_stroyprize": [
{
"a": "attr",
"t": "gold",
"n": 2000
}
]
},
{ {
"id": 4, "id": 4,
"hid": "14002", "hid": "14002",
@ -306,10 +324,10 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 3, "favor_lv": 4,
"favor_exp": 400, "favor_exp": 400,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_3", "key": "favorability_favorability_lv_name_4",
"text": "点头之交" "text": "点头之交"
}, },
"privilege_type": 0, "privilege_type": 0,
@ -410,18 +428,24 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 4, "favor_lv": 5,
"favor_exp": 500, "favor_exp": 500,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_4", "key": "favorability_favorability_lv_name_5",
"text": "点头之交" "text": "点头之交"
}, },
"privilege_type": 0, "privilege_type": 0,
"privilege_value": 0, "privilege_value": 0,
"return_reward": [], "return_reward": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"return_txt": { "return_txt": {
"key": "", "key": "favorability_favorability_return_txt",
"text": "" "text": "达到好感度{0}级可领取"
}, },
"likes_food": [], "likes_food": [],
"disliking_food": [], "disliking_food": [],
@ -508,10 +532,10 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 5, "favor_lv": 6,
"favor_exp": 600, "favor_exp": 600,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_5", "key": "favorability_favorability_lv_name_6",
"text": "点头之交" "text": "点头之交"
}, },
"privilege_type": 0, "privilege_type": 0,
@ -612,18 +636,24 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 6, "favor_lv": 7,
"favor_exp": 700, "favor_exp": 700,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_6", "key": "favorability_favorability_lv_name_7",
"text": "情投意合" "text": "情投意合"
}, },
"privilege_type": 0, "privilege_type": 0,
"privilege_value": 0, "privilege_value": 0,
"return_reward": [], "return_reward": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"return_txt": { "return_txt": {
"key": "", "key": "favorability_favorability_return_txt",
"text": "" "text": "达到好感度{0}级可领取"
}, },
"likes_food": [], "likes_food": [],
"disliking_food": [], "disliking_food": [],
@ -710,10 +740,10 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 7, "favor_lv": 8,
"favor_exp": 800, "favor_exp": 800,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_7", "key": "favorability_favorability_lv_name_8",
"text": "情投意合" "text": "情投意合"
}, },
"privilege_type": 0, "privilege_type": 0,
@ -814,18 +844,24 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 8, "favor_lv": 9,
"favor_exp": 900, "favor_exp": 900,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_8", "key": "favorability_favorability_lv_name_9",
"text": "情投意合" "text": "情投意合"
}, },
"privilege_type": 0, "privilege_type": 0,
"privilege_value": 0, "privilege_value": 0,
"return_reward": [], "return_reward": [
{
"a": "item",
"t": "30001",
"n": 1
}
],
"return_txt": { "return_txt": {
"key": "", "key": "favorability_favorability_return_txt",
"text": "" "text": "达到好感度{0}级可领取"
}, },
"likes_food": [], "likes_food": [],
"disliking_food": [], "disliking_food": [],
@ -912,10 +948,10 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 9, "favor_lv": 10,
"favor_exp": 1000, "favor_exp": 1000,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_9", "key": "favorability_favorability_lv_name_10",
"text": "情投意合" "text": "情投意合"
}, },
"privilege_type": 0, "privilege_type": 0,
@ -1016,10 +1052,10 @@
"key": "hero_14002", "key": "hero_14002",
"text": "大龙" "text": "大龙"
}, },
"favor_lv": 10, "favor_lv": 11,
"favor_exp": 0, "favor_exp": 0,
"lv_name": { "lv_name": {
"key": "favorability_favorability_lv_name_10", "key": "favorability_favorability_lv_name_11",
"text": "情投意合" "text": "情投意合"
}, },
"privilege_type": 0, "privilege_type": 0,

View File

@ -14,7 +14,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 1, "friends_lv": 1,
"favorability_lv": 1, "favorability_lv": 1,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -41,7 +41,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 1, "friends_lv": 1,
"favorability_lv": 1, "favorability_lv": 1,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -68,7 +68,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 2, "friends_lv": 2,
"favorability_lv": 9, "favorability_lv": 9,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -95,7 +95,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 2, "friends_lv": 2,
"favorability_lv": 9, "favorability_lv": 9,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -122,7 +122,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 3, "friends_lv": 3,
"favorability_lv": 15, "favorability_lv": 15,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -149,7 +149,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 3, "friends_lv": 3,
"favorability_lv": 15, "favorability_lv": 15,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -176,7 +176,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 1, "friends_lv": 1,
"favorability_lv": 1, "favorability_lv": 1,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -203,7 +203,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 1, "friends_lv": 1,
"favorability_lv": 1, "favorability_lv": 1,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -230,7 +230,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 1, "friends_lv": 1,
"favorability_lv": 1, "favorability_lv": 1,
"hid": 15004, "hid": "15004",
"attribute": [ "attribute": [
{ {
"a": "HP", "a": "HP",
@ -257,7 +257,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 2, "friends_lv": 2,
"favorability_lv": 9, "favorability_lv": 9,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -284,7 +284,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 2, "friends_lv": 2,
"favorability_lv": 9, "favorability_lv": 9,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -311,7 +311,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 2, "friends_lv": 2,
"favorability_lv": 9, "favorability_lv": 9,
"hid": 15004, "hid": "15004",
"attribute": [ "attribute": [
{ {
"a": "HP", "a": "HP",
@ -338,7 +338,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 3, "friends_lv": 3,
"favorability_lv": 15, "favorability_lv": 15,
"hid": 25001, "hid": "25001",
"attribute": [ "attribute": [
{ {
"a": "atkpro", "a": "atkpro",
@ -365,7 +365,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 3, "friends_lv": 3,
"favorability_lv": 15, "favorability_lv": 15,
"hid": 35001, "hid": "35001",
"attribute": [ "attribute": [
{ {
"a": "atk", "a": "atk",
@ -392,7 +392,7 @@
"png": "jiban_img_zu02", "png": "jiban_img_zu02",
"friends_lv": 3, "friends_lv": 3,
"favorability_lv": 15, "favorability_lv": 15,
"hid": 15004, "hid": "15004",
"attribute": [ "attribute": [
{ {
"a": "HP", "a": "HP",

View File

@ -298,5 +298,15 @@
}, },
"data": "", "data": "",
"prefix": "bingo:{0}" "prefix": "bingo:{0}"
},
{
"id": 31,
"type": 1,
"text": {
"key": "GM_31",
"text": "清除踢馆NPC需刷新"
},
"data": "",
"prefix": "bingo:cleannpc"
} }
] ]

View File

@ -2158,7 +2158,7 @@
"box_id": 0, "box_id": 0,
"synthetize_num": 0, "synthetize_num": 0,
"access": [ "access": [
123 1128
], ],
"use_skip": 139, "use_skip": 139,
"upper_limit": -1, "upper_limit": -1,
@ -2188,7 +2188,7 @@
"box_id": 0, "box_id": 0,
"synthetize_num": 0, "synthetize_num": 0,
"access": [ "access": [
123 1128
], ],
"use_skip": 139, "use_skip": 139,
"upper_limit": -1, "upper_limit": -1,
@ -2218,7 +2218,7 @@
"box_id": 0, "box_id": 0,
"synthetize_num": 0, "synthetize_num": 0,
"access": [ "access": [
123 1128
], ],
"use_skip": 139, "use_skip": 139,
"upper_limit": -1, "upper_limit": -1,
@ -2248,7 +2248,7 @@
"box_id": 0, "box_id": 0,
"synthetize_num": 0, "synthetize_num": 0,
"access": [ "access": [
123 1128
], ],
"use_skip": 139, "use_skip": 139,
"upper_limit": -1, "upper_limit": -1,

View File

@ -235,7 +235,7 @@
"key": "opencond_prompt_trials", "key": "opencond_prompt_trials",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 166,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },
@ -283,7 +283,7 @@
"key": "opencond_prompt_story", "key": "opencond_prompt_story",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 169,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },
@ -715,7 +715,7 @@
"key": "opencond_prompt_hunting", "key": "opencond_prompt_hunting",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 168,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },
@ -907,7 +907,7 @@
"key": "opencond_prompt_arena", "key": "opencond_prompt_arena",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 156,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },
@ -1435,7 +1435,7 @@
"key": "opencond_prompt_vikingexpedition_entrance", "key": "opencond_prompt_vikingexpedition_entrance",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 167,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },
@ -1555,7 +1555,7 @@
"key": "opencond_prompt_Master_challenges_the_tower", "key": "opencond_prompt_Master_challenges_the_tower",
"text": "功能暂未开启" "text": "功能暂未开启"
}, },
"uiid": 0, "uiid": 10004,
"activateType": 0, "activateType": 0,
"notify": [] "notify": []
}, },

View File

@ -13,7 +13,7 @@
"heroid": "13002", "heroid": "13002",
"img": "sbkp_js_13002", "img": "sbkp_js_13002",
"intr": { "intr": {
"key": "shirenyu10001", "key": "miaosushirenyu10001",
"text": "作为教习,食人鱼一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,食人鱼一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -47,7 +47,7 @@
"heroid": "13001", "heroid": "13001",
"img": "sbkp_js_13001", "img": "sbkp_js_13001",
"intr": { "intr": {
"key": "shirenyu10002", "key": "miaosushirenyu10002",
"text": "作为教习,闪闪一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,闪闪一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -81,7 +81,7 @@
"heroid": "44002", "heroid": "44002",
"img": "sbkp_js_44002", "img": "sbkp_js_44002",
"intr": { "intr": {
"key": "shirenyu10003", "key": "miaosushirenyu10003",
"text": "作为教习,蛇先生一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,蛇先生一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -115,7 +115,7 @@
"heroid": "24005", "heroid": "24005",
"img": "sbkp_js_24005", "img": "sbkp_js_24005",
"intr": { "intr": {
"key": "shirenyu10004", "key": "miaosushirenyu10004",
"text": "作为教习,金猴一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,金猴一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -160,7 +160,7 @@
"heroid": "14005", "heroid": "14005",
"img": "sbkp_js_14005", "img": "sbkp_js_14005",
"intr": { "intr": {
"key": "shirenyu10005", "key": "miaosushirenyu10005",
"text": "作为教习,鹤大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,鹤大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -194,7 +194,7 @@
"heroid": "44006", "heroid": "44006",
"img": "sbkp_js_44006", "img": "sbkp_js_44006",
"intr": { "intr": {
"key": "shirenyu10006", "key": "miaosushirenyu10006",
"text": "作为教习,悍娇虎一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,悍娇虎一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -228,7 +228,7 @@
"heroid": "43001", "heroid": "43001",
"img": "sbkp_js_43001", "img": "sbkp_js_43001",
"intr": { "intr": {
"key": "shirenyu10007", "key": "miaosushirenyu10007",
"text": "作为教习,盖一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,盖一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -262,7 +262,7 @@
"heroid": "35002", "heroid": "35002",
"img": "sbkp_js_35002", "img": "sbkp_js_35002",
"intr": { "intr": {
"key": "shirenyu10008", "key": "miaosushirenyu10008",
"text": "作为教习,希卡普一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,希卡普一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -296,7 +296,7 @@
"heroid": "45004", "heroid": "45004",
"img": "sbkp_js_45004", "img": "sbkp_js_45004",
"intr": { "intr": {
"key": "shirenyu10009", "key": "miaosushirenyu10009",
"text": "作为教习,穿靴猫一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,穿靴猫一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -341,7 +341,7 @@
"heroid": "35001", "heroid": "35001",
"img": "sbkp_js_35001", "img": "sbkp_js_35001",
"intr": { "intr": {
"key": "shirenyu10010", "key": "miaosushirenyu10010",
"text": "作为教习,师父一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,师父一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -386,7 +386,7 @@
"heroid": "25001", "heroid": "25001",
"img": "sbkp_js_25001", "img": "sbkp_js_25001",
"intr": { "intr": {
"key": "shirenyu10011", "key": "miaosushirenyu10011",
"text": "作为教习,阿宝一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,阿宝一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -431,7 +431,7 @@
"heroid": "45001", "heroid": "45001",
"img": "sbkp_js_45001", "img": "sbkp_js_45001",
"intr": { "intr": {
"key": "shirenyu10012", "key": "miaosushirenyu10012",
"text": "作为教习,乌龟大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升" "text": "作为教习,乌龟大师一直秉承着严厉的教习态度,在他手下训练的英雄可以获得巨大提升"
}, },
"standard_text": 25001, "standard_text": 25001,
@ -476,7 +476,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_ss", "img": "wg_icon_ss",
"intr": { "intr": {
"key": "shirenyu20001", "key": "miaosushirenyu20001",
"text": "石锁,传闻是师父在训练阿宝时经常使用到的道具" "text": "石锁,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -521,7 +521,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_kz", "img": "wg_icon_kz",
"intr": { "intr": {
"key": "shirenyu20002", "key": "miaosushirenyu20002",
"text": "双头空竹,传闻是师父在训练阿宝时经常使用到的道具" "text": "双头空竹,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -555,7 +555,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_pj", "img": "wg_icon_pj",
"intr": { "intr": {
"key": "shirenyu20003", "key": "miaosushirenyu20003",
"text": "木爬架,传闻是师父在训练阿宝时经常使用到的道具" "text": "木爬架,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -589,7 +589,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_bdw", "img": "wg_icon_bdw",
"intr": { "intr": {
"key": "shirenyu20004", "key": "miaosushirenyu20004",
"text": "不倒翁,传闻是师父在训练阿宝时经常使用到的道具" "text": "不倒翁,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -623,7 +623,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_pc", "img": "wg_icon_pc",
"intr": { "intr": {
"key": "shirenyu20005", "key": "miaosushirenyu20005",
"text": "棒槌,传闻是师父在训练阿宝时经常使用到的道具" "text": "棒槌,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -657,7 +657,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_tl", "img": "wg_icon_tl",
"intr": { "intr": {
"key": "shirenyu20006", "key": "miaosushirenyu20006",
"text": "铜铃,传闻是师父在训练阿宝时经常使用到的道具" "text": "铜铃,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -691,7 +691,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20007", "key": "miaosushirenyu20007",
"text": "尖刺吊环,传闻是师父在训练阿宝时经常使用到的道具" "text": "尖刺吊环,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -725,7 +725,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_tj01", "img": "wg_icon_tj01",
"intr": { "intr": {
"key": "shirenyu20008", "key": "miaosushirenyu20008",
"text": "陀螺,传闻是师父在训练阿宝时经常使用到的道具" "text": "陀螺,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -759,7 +759,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_zl", "img": "wg_icon_zl",
"intr": { "intr": {
"key": "shirenyu20009", "key": "miaosushirenyu20009",
"text": "大转轮,传闻是师父在训练阿宝时经常使用到的道具" "text": "大转轮,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -804,7 +804,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_mp", "img": "wg_icon_mp",
"intr": { "intr": {
"key": "shirenyu20010", "key": "miaosushirenyu20010",
"text": "木头牌,传闻是师父在训练阿宝时经常使用到的道具" "text": "木头牌,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -849,7 +849,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_sjg", "img": "wg_icon_sjg",
"intr": { "intr": {
"key": "shirenyu20011", "key": "miaosushirenyu20011",
"text": "双节棍,传闻是师父在训练阿宝时经常使用到的道具" "text": "双节棍,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -894,7 +894,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_yd", "img": "wg_icon_yd",
"intr": { "intr": {
"key": "shirenyu20012", "key": "miaosushirenyu20012",
"text": "练功带,传闻是师父在训练阿宝时经常使用到的道具" "text": "练功带,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -939,7 +939,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20013", "key": "miaosushirenyu20013",
"text": "七彩花棍,传闻是师父在训练阿宝时经常使用到的道具" "text": "七彩花棍,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -984,7 +984,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_fb", "img": "wg_icon_fb",
"intr": { "intr": {
"key": "shirenyu20014", "key": "miaosushirenyu20014",
"text": "流星飞镖,传闻是师父在训练阿宝时经常使用到的道具" "text": "流星飞镖,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1018,7 +1018,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_mxl", "img": "wg_icon_mxl",
"intr": { "intr": {
"key": "shirenyu20015", "key": "miaosushirenyu20015",
"text": "冥想锣,传闻是师父在训练阿宝时经常使用到的道具" "text": "冥想锣,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1052,7 +1052,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_ct", "img": "wg_icon_ct",
"intr": { "intr": {
"key": "shirenyu20016", "key": "miaosushirenyu20016",
"text": "彩条龙,传闻是师父在训练阿宝时经常使用到的道具" "text": "彩条龙,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1086,7 +1086,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_kqms", "img": "wg_icon_kqms",
"intr": { "intr": {
"key": "shirenyu20017", "key": "miaosushirenyu20017",
"text": "孔雀毛扇,传闻是师父在训练阿宝时经常使用到的道具" "text": "孔雀毛扇,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1129,7 +1129,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_ph", "img": "wg_icon_ph",
"intr": { "intr": {
"key": "shirenyu20018", "key": "miaosushirenyu20018",
"text": "平衡木,传闻是师父在训练阿宝时经常使用到的道具" "text": "平衡木,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1172,7 +1172,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_th", "img": "wg_icon_th",
"intr": { "intr": {
"key": "shirenyu20019", "key": "miaosushirenyu20019",
"text": "铁环,传闻是师父在训练阿宝时经常使用到的道具" "text": "铁环,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,
@ -1215,7 +1215,7 @@
"heroid": "", "heroid": "",
"img": "wg_icon_tj", "img": "wg_icon_tj",
"intr": { "intr": {
"key": "shirenyu20020", "key": "miaosushirenyu20020",
"text": "太极球,传闻是师父在训练阿宝时经常使用到的道具" "text": "太极球,传闻是师父在训练阿宝时经常使用到的道具"
}, },
"standard_text": 0, "standard_text": 0,

View File

@ -13566,7 +13566,7 @@
{ {
"Id": 214001112, "Id": 214001112,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 4,
"Where": [], "Where": [],
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,

View File

@ -60,6 +60,7 @@ func (this *ModelHero) InitHero(uid string, heroCfgId string) *pb.DBHero {
JuexProperty: make(map[string]int32), JuexProperty: make(map[string]int32),
TalentProperty: make(map[string]int32), TalentProperty: make(map[string]int32),
HoroscopeProperty: make(map[string]int32), HoroscopeProperty: make(map[string]int32),
Fetters: make(map[string]int32),
} }
this.PropertyCompute(newHero) this.PropertyCompute(newHero)
this.initHeroSkill(newHero) this.initHeroSkill(newHero)

View File

@ -33,26 +33,7 @@ func (this *apiComp) ActivationFetter(session comm.IUserSession, req *pb.Library
fetter.Activation = true fetter.Activation = true
mapData := make(map[string]interface{}, 0) mapData := make(map[string]interface{}, 0)
mapData["activation"] = fetter.Activation mapData["activation"] = fetter.Activation
// 激活的时候算一下 当前羁绊等级
list := this.module.modelFetter.getHeroFetterList(session.GetUserId())
conf := this.module.configure.GetLibraryFetter(fetter.Fid, 1)
var minLv int32
for _, v1 := range conf.Hid {
for _, v := range list {
if v.Heroid == v1 {
if minLv == 0 {
minLv = v.Favorlv
}
if minLv > v.Favorlv {
minLv = v.Favorlv
}
break
}
}
}
fetter.Fetterlv = minLv
mapData["fetterlv"] = fetter.Fetterlv
this.module.modelLibrary.modifyLibraryDataByObjId(session.GetUserId(), fetter.Id, mapData)
rsp.Data = fetter rsp.Data = fetter
return return
} }

View File

@ -26,44 +26,9 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.LibraryGetRewa
code = pb.ErrorCode_LibraryNoData code = pb.ErrorCode_LibraryNoData
return return
} }
// fetterlv check
var minLv int32
conf := this.module.configure.GetLibraryFetter(fetter.Fid, req.Fetterlv)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound
}
for _, v := range conf.Hid { // 获取羁绊等级
_d := this.module.modelFetter.GetFetterByHeroId(session.GetUserId(), v)
if _d != nil {
if minLv == 0 {
minLv = _d.Favorlv
}
if _d.Favorlv > minLv {
minLv = _d.Favorlv
}
}
}
if minLv < req.Fetterlv {
code = pb.ErrorCode_LibraryLvReward
return
}
for k := range fetter.Prize {
if k == req.Fetterlv {
code = pb.ErrorCode_LibraryReward
return
}
}
fetter.Prize[req.Fetterlv] = 1 fetter.Prize[req.Fetterlv] = 1
// 发奖 // 发奖
if len(conf.Prize) != 0 {
if code = this.module.DispenseRes(session, conf.Prize, true); code != pb.ErrorCode_Success { //
return
}
}
mapData := make(map[string]interface{}, 0) mapData := make(map[string]interface{}, 0)
mapData["prize"] = fetter.Prize mapData["prize"] = fetter.Prize

View File

@ -7,104 +7,53 @@ package library
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
"strconv"
) )
//参数校验 //参数校验
func (this *apiComp) GetStoryRewardCheck(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode) { func (this *apiComp) GetStoryRewardCheck(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode) {
if req.Hid == "" { if req.Oid == "" {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
} }
return return
} }
func (this *apiComp) GetStoryReward(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) GetStoryReward(session comm.IUserSession, req *pb.LibraryGetStoryRewardReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
update map[string]interface{}
)
update = make(map[string]interface{}, 0)
resp := &pb.LibraryGetStoryRewardResp{} resp := &pb.LibraryGetStoryRewardResp{}
code = this.GetStoryRewardCheck(session, req) code = this.GetStoryRewardCheck(session, req)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回 return // 参数校验失败直接返回
} }
_heroFetter := this.module.modelFetter.getOneHeroFetter(session.GetUserId(), req.Hid) _heroFetter := this.module.modelFetter.getOneHeroFetter(session.GetUserId(), req.Oid)
if _heroFetter == nil { if _heroFetter == nil {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
if req.History != 0 { // 领取传记往事id
conf := this.module.configure.GetLibraryHero(_heroFetter.Heroid) for _, v := range _heroFetter.History {
if req.History != 0 { if v == req.History { // 已经领取过奖励
for index, v := range conf.History { code = pb.ErrorCode_LibraryReward
if utils.ToInt32(v) == req.History && conf.Favorlv[index] >= _heroFetter.Favorlv { return
for _, v1 := range _heroFetter.History {
if v1 == req.History {
code = pb.ErrorCode_ReqParameterError
return
}
}
} }
_heroFetter.History = append(_heroFetter.History, req.History)
// 发奖
historyConf := this.configure.GetLibraryHistory(strconv.Itoa(int(req.History)))
if historyConf != nil {
this.module.DispenseRes(session, historyConf.Prize, true)
}
mapData := make(map[string]interface{}, 0)
mapData["history"] = _heroFetter.History
this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, mapData)
resp.Data = _heroFetter
break
} }
} else if req.Rightend != 0 { // 剧情奖励 _heroFetter.History = append(_heroFetter.History, req.History)
bRepeadGetReawrd := false update["history"] = _heroFetter.History
sz := conf.Endid } else if req.Story != 0 { // 领取故事ID
for _, id := range sz { for _, v := range _heroFetter.Stroyprize {
if req.Rightend == conf.Rightend || req.Rightend == id { if v == req.Story { // 已经领取过奖励
if len(conf.PlotUnlock) >= len(_heroFetter.Stroyprize)+1 { code = pb.ErrorCode_LibraryReward
// 校验等级 return
lv := conf.PlotUnlock[len(_heroFetter.Stroyprize)]
if _heroFetter.Favorlv < lv {
code = pb.ErrorCode_LibraryLvReward
return
}
} else {
code = pb.ErrorCode_LibraryLvReward
return
}
for _, v := range _heroFetter.Stroyprize {
if v == req.Rightend {
bRepeadGetReawrd = true
break
}
}
if bRepeadGetReawrd { // 重复领奖
code = pb.ErrorCode_LibraryReward
return
}
var res []*cfg.Gameatn //
if req.Rightend == conf.Rightend {
res = conf.Stroyprize
} else {
res = conf.SpecialStroyprize
}
_heroFetter.Stroyprize = append(_heroFetter.Stroyprize, req.Rightend)
// 发奖
code = this.module.DispenseRes(session, res, true)
if code != pb.ErrorCode_Success {
this.module.Errorf("GetStoryReward err:add item : %v", res)
}
mapData := make(map[string]interface{}, 0)
mapData["stroyprize"] = _heroFetter.Stroyprize
this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, mapData)
resp.Data = _heroFetter
break
} }
} }
_heroFetter.Stroyprize = append(_heroFetter.Stroyprize, req.History)
update["stroyprize"] = _heroFetter.Stroyprize
} }
this.module.modelFetter.modifyHeroFetterDataByObjId(session.GetUserId(), _heroFetter.Id, update)
resp.Data = _heroFetter
session.SendMsg(string(this.module.GetType()), LibraryGetStoryRewardResp, resp) session.SendMsg(string(this.module.GetType()), LibraryGetStoryRewardResp, resp)
return return
} }

View File

@ -17,6 +17,7 @@ func (this *apiComp) LvRewardCheck(session comm.IUserSession, req *pb.LibraryLvR
return return
} }
// 英雄回礼
func (this *apiComp) LvReward(session comm.IUserSession, req *pb.LibraryLvRewardReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) LvReward(session comm.IUserSession, req *pb.LibraryLvRewardReq) (code pb.ErrorCode, data *pb.ErrorData) {
resp := &pb.LibraryLvRewardResp{} resp := &pb.LibraryLvRewardResp{}
@ -29,28 +30,25 @@ func (this *apiComp) LvReward(session comm.IUserSession, req *pb.LibraryLvReward
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
curStar := this.module.configure.GetHeroConfigStar(_heroFetter.Heroid) // 查询原始星级 if _heroFetter.Lvprize == nil {
if curStar == 0 { _heroFetter.Lvprize = map[int32]int32{}
code = pb.ErrorCode_ConfigNoFound }
if _, ok := _heroFetter.Lvprize[req.Lv]; ok {
code = pb.ErrorCode_LibraryReward // 重复领奖
return return
} }
confData := this.module.configure.GetLibraryFavorData(curStar, req.Lv) confData := this.module.configure.GetFavorability(_heroFetter.Heroid, req.Lv)
if len(confData.Prize) == 0 { if confData == nil {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
return return
} }
for _, v := range _heroFetter.Lvprize { _heroFetter.Lvprize[req.Lv] = 1
if v == req.Lv {
code = pb.ErrorCode_LibraryReward // 重复领奖
break
}
}
_heroFetter.Lvprize = append(_heroFetter.Lvprize, req.Lv)
// 发奖 // 发奖
code = this.module.DispenseRes(session, confData.Prize, true) code = this.module.DispenseRes(session, confData.ReturnReward, true)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
this.module.Errorf("GetStoryReward err:add item : %v", confData.Prize) this.module.Errorf("GetStoryReward err:add item : %v", confData.ReturnReward)
} }
mapData := make(map[string]interface{}, 0) mapData := make(map[string]interface{}, 0)
mapData["lvprize"] = _heroFetter.Lvprize mapData["lvprize"] = _heroFetter.Lvprize

View File

@ -15,6 +15,7 @@ func (this *apiComp) UseGiftCheck(session comm.IUserSession, req *pb.LibraryUseG
return return
} }
// 给英雄赠送美食
func (this *apiComp) UseGift(session comm.IUserSession, req *pb.LibraryUseGiftReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) UseGift(session comm.IUserSession, req *pb.LibraryUseGiftReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
res []*cfg.Gameatn res []*cfg.Gameatn
@ -40,8 +41,8 @@ func (this *apiComp) UseGift(session comm.IUserSession, req *pb.LibraryUseGiftRe
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
favorConf := this.configure.GetLibraryFavor(curStar) // favorConf := this.configure.GetLibraryFavor(curStar)
maxLv = int32(len(favorConf)) // 获取当前星级羁绊最大等级 // maxLv = int32(len(favorConf)) // 获取当前星级羁绊最大等级
// 达到最大等级不让继续升级 // 达到最大等级不让继续升级
if _heroObj.Favorlv >= maxLv { if _heroObj.Favorlv >= maxLv {
code = pb.ErrorCode_LibraryMaxLv code = pb.ErrorCode_LibraryMaxLv
@ -73,13 +74,13 @@ func (this *apiComp) UseGift(session comm.IUserSession, req *pb.LibraryUseGiftRe
code = pb.ErrorCode_LibraryMaxLv code = pb.ErrorCode_LibraryMaxLv
break break
} }
if favorConf[_heroObj.Favorlv] <= _heroObj.Favorexp { // if favorConf[_heroObj.Favorlv] <= _heroObj.Favorexp {
_heroObj.Favorexp -= favorConf[_heroObj.Favorlv] // _heroObj.Favorexp -= favorConf[_heroObj.Favorlv]
_heroObj.Favorlv += 1 // _heroObj.Favorlv += 1
upLv++ // upLv++
} else { // } else {
break // break
} // }
} }
if code = this.module.ConsumeRes(session, res, true); code != pb.ErrorCode_Success { //真正消耗 if code = this.module.ConsumeRes(session, res, true); code != pb.ErrorCode_Success { //真正消耗
return return

View File

@ -7,73 +7,102 @@ import (
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"strconv"
"sync"
) )
const ( const (
game_libraryhero = "game_libraryhero.json" // 英雄对应的羁绊id信息 // game_libraryhero = "game_libraryhero.json" // 英雄对应的羁绊id信息
game_libraryfetter = "game_libraryfetter.json" // 羁绊信息表 // game_libraryfetter = "game_libraryfetter.json" // 羁绊信息表
game_libraryhistory = "game_libraryhistory.json" // 往事id 对应的奖励 // game_libraryhistory = "game_libraryhistory.json" // 往事id 对应的奖励
game_libraryfavor = "game_libraryfavor.json" // 英雄好感度升级所需的经验 // game_libraryfavor = "game_libraryfavor.json" // 英雄好感度升级所需的经验
game_librarystory = "game_librarystory.json" // 羁绊id对应剧情奖励 // game_librarystory = "game_librarystory.json" // 羁绊id对应剧情奖励
game_librarycomplot = "game_librarycomplot.json" // game_librarycomplot = "game_librarycomplot.json"
game_favorability = "game_favorability.json" // 好感度
game_friends = "game_friends.json" // 好感度
) )
///配置管理基础组件 ///配置管理基础组件
type configureComp struct { type configureComp struct {
modules.MCompConfigure modules.MCompConfigure
fetter map[int64]*cfg.GameLibraryFetterData hlock sync.RWMutex
favor map[int64]*cfg.GameLibraryFavorData // fetter map[int64]*cfg.GameLibraryFetterData
// favor map[int64]*cfg.GameLibraryFavorData
favorability map[string]*cfg.GameFavorabilityData
favorLvExp map[string][]int32 // key 英雄id value 每级升级所需要的经验值
friend map[int64][]*cfg.GameFriendsData
heroFetter map[string][]int32 // key 英雄id value 羁绊id
} }
//组件初始化接口 //组件初始化接口
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) {
err = this.MCompConfigure.Init(service, module, comp, options) err = this.MCompConfigure.Init(service, module, comp, options)
err = this.LoadMultiConfigure(map[string]interface{}{ // err = this.LoadMultiConfigure(map[string]interface{}{
game_libraryhero: cfg.NewGameLibraryHero, // game_libraryhero: cfg.NewGameLibraryHero,
game_libraryhistory: cfg.NewGameLibraryHistory, // game_libraryhistory: cfg.NewGameLibraryHistory,
game_libraryfavor: cfg.NewGameLibraryFavor, // game_libraryfavor: cfg.NewGameLibraryFavor,
game_librarystory: cfg.NewGameLibraryStory, // game_librarystory: cfg.NewGameLibraryStory,
game_librarycomplot: cfg.NewGameLibraryComplot, // game_librarycomplot: cfg.NewGameLibraryComplot,
}) // })
this.fetter = make(map[int64]*cfg.GameLibraryFetterData, 0) // this.fetter = make(map[int64]*cfg.GameLibraryFetterData, 0)
configure.RegisterConfigure(game_libraryfetter, cfg.NewGameLibraryFetter, this.SetLibraryFetter) // configure.RegisterConfigure(game_libraryfetter, cfg.NewGameLibraryFetter, this.SetLibraryFetter)
this.favor = make(map[int64]*cfg.GameLibraryFavorData, 0) // this.favor = make(map[int64]*cfg.GameLibraryFavorData, 0)
configure.RegisterConfigure(game_libraryfetter, cfg.NewGameLibraryFetter, this.SetLibraryFavor) // configure.RegisterConfigure(game_libraryfetter, cfg.NewGameLibraryFetter, this.SetLibraryFavor)
configure.RegisterConfigure(game_favorability, cfg.NewGameFavorability, this.SetFavorability)
configure.RegisterConfigure(game_friends, cfg.NewGameLibraryFetter, this.SetFriendData)
return return
} }
func (this *configureComp) SetFavorability() {
func (this *configureComp) SetLibraryFavor() { if v, err := this.GetConfigure(game_favorability); err == nil {
if v, err := this.GetConfigure(game_libraryfavor); err == nil { this.favorability = make(map[string]*cfg.GameFavorabilityData, 0)
if _configure, ok := v.(*cfg.GameLibraryFavor); ok { this.favorLvExp = make(map[string][]int32)
if _configure, ok := v.(*cfg.GameFavorability); ok {
for _, v1 := range _configure.GetDataList() { for _, v1 := range _configure.GetDataList() {
this.favor[int64(v1.Star<<8)+int64(v1.Favorlv)] = v1 lv := strconv.Itoa(int(v1.FavorLv))
this.favorLvExp[v1.Hid] = append(this.favorLvExp[v1.Hid], v1.FavorExp)
this.favorability[v1.Hid+"-"+lv] = v1
} }
return return
} }
} else { } else {
err = fmt.Errorf("%T no is *cfg.GameLibraryFavor", v) err = fmt.Errorf("%T no is *cfg.SetFavorability", err)
} }
} }
func (this *configureComp) GetLibraryFavorData(star, favorlv int32) (data *cfg.GameLibraryFavorData) {
return this.favor[int64(star<<8)+int64(favorlv)]
}
func (this *configureComp) SetLibraryFetter() { func (this *configureComp) GetFavorability(hid string, lv int32) *cfg.GameFavorabilityData {
if v, err := this.GetConfigure(game_libraryfetter); err == nil {
if _configure, ok := v.(*cfg.GameLibraryFetter); ok { return this.favorability[hid+"-"+strconv.Itoa(int(lv))]
for _, v := range _configure.GetDataList() { }
this.fetter[int64(v.Fid<<8)+int64(v.Favorlv)] = v func (this *configureComp) SetFriendData() {
if v, err := this.GetConfigure(game_friends); err == nil {
this.friend = make(map[int64][]*cfg.GameFriendsData, 0)
this.heroFetter = make(map[string][]int32)
if _configure, ok := v.(*cfg.GameFriends); ok {
for _, v1 := range _configure.GetDataList() {
key := int64(v1.FriendId)<<8 + int64(v1.FriendsLv)
this.friend[key] = append(this.friend[key], v1)
this.heroFetter[v1.Hid] = append(this.heroFetter[v1.Hid], v1.FriendId)
} }
return return
} }
} else { } else {
err = fmt.Errorf("%T no is *cfg.GameLibraryFetter", v) err = fmt.Errorf("%T no is *cfg.SetFavorability", err)
} }
} }
func (this *configureComp) GetLibraryFetter(fid, favorlv int32) (data *cfg.GameLibraryFetterData) { // id:羁绊id lv 羁绊等级
return this.fetter[int64(fid<<8)+int64(favorlv)] func (this *configureComp) GetFriendData(id int32, lv int32) []*cfg.GameFriendsData {
return this.friend[int64(id)<<8+int64(lv)]
}
// 通过英雄获取当前英雄的所有羁绊ID
func (this *configureComp) GetHeroFetterID(hid string) []int32 {
return this.heroFetter[hid]
} }
//加载多个配置文件 //加载多个配置文件
@ -93,80 +122,7 @@ func (this *configureComp) GetConfigure(name string) (v interface{}, err error)
return configure.GetConfigure(name) return configure.GetConfigure(name)
} }
func (this *configureComp) GetLibraryHero(hid string) (data *cfg.GameLibraryHeroData) { func (this *configureComp) GetFavorabilityExp(hid string) []int32 {
if v, err := this.GetConfigure(game_libraryhero); err == nil {
if configure, ok := v.(*cfg.GameLibraryHero); ok {
data = configure.Get(hid)
}
} else {
log.Errorf("get GetLibraryHero conf err:%v", err)
}
return
}
// 获取当前星级的好感度 return this.favorLvExp[hid]
func (this *configureComp) GetLibraryFavor(star int32) (data []int32) {
if v, err := this.GetConfigure(game_libraryfavor); err == nil {
if configure, ok := v.(*cfg.GameLibraryFavor); ok {
for _, v := range configure.GetDataList() {
if v.Star == star {
data = append(data, v.Expneed)
}
}
}
} else {
log.Errorf("GetLibraryFavor conf err:%v", err)
}
return
} }
func (this *configureComp) GetLibraryHistory(id string) (data *cfg.GameLibraryHistoryData) {
if v, err := this.GetConfigure(game_libraryhistory); err == nil {
if configure, ok := v.(*cfg.GameLibraryHistory); ok {
data = configure.Get(id)
}
} else {
log.Errorf("GetLibraryHistory conf err:%v", err)
}
return
}
func (this *configureComp) GetLibraryStory(fid int32) (data *cfg.GameLibraryStoryData) {
if v, err := this.GetConfigure(game_librarystory); err == nil {
if configure, ok := v.(*cfg.GameLibraryStory); ok {
data = configure.Get(fid)
}
} else {
log.Errorf("GetLibraryStory conf err:%v", err)
}
return
}
func (this *configureComp) getFetterstoryTaskCfg() (data *cfg.GameLibraryComplot, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(game_librarycomplot); err != nil {
return
} else {
if data, ok = v.(*cfg.GameLibraryComplot); !ok {
err = fmt.Errorf("%T no is *cfg.GameLibraryComplot", v)
return
}
}
return
}
func(c *configureComp)getMainTaskCfgByFetter(fetterId int32)(list []*cfg.GameLibraryComplotData) {
glc, err := c.getFetterstoryTaskCfg()
if err!=nil{
return nil
}
for _, v:=range glc.GetDataList(){
if v.FetterId == fetterId{
list = append(list, v)
}
}
return
}

View File

@ -6,7 +6,6 @@ import (
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
@ -56,17 +55,17 @@ func (this *modelFetterstory) getFetterTasks(uid string, fetterId int32) *pb.Fet
// 校验前置任务是否完成 // 校验前置任务是否完成
// true完成 false未完成 // true完成 false未完成
func (this *modelFetterstory) isPreFinished(finishTasks []int32, taskId int32) bool { func (this *modelFetterstory) isPreFinished(finishTasks []int32, taskId int32) bool {
maintaskConf, ok := this.module.confComplot.GetDataMap()[taskId] // maintaskConf, ok := this.module.confComplot.GetDataMap()[taskId]
if !ok { // if !ok {
return false // return false
} // }
if maintaskConf.SubTask == 0 { // if maintaskConf.SubTask == 0 {
return true // return true
} // }
if _, ok := utils.Findx(finishTasks, maintaskConf.SubTask); ok { // if _, ok := utils.Findx(finishTasks, maintaskConf.SubTask); ok {
return true // return true
} // }
return false return false
} }

View File

@ -9,7 +9,6 @@ import (
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils" "go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
@ -23,7 +22,6 @@ type Library struct {
modelFetterstory *modelFetterstory modelFetterstory *modelFetterstory
api *apiComp api *apiComp
configure *configureComp configure *configureComp
confComplot *cfg.GameLibraryComplot
} }
func NewModule() core.IModule { func NewModule() core.IModule {
@ -52,9 +50,7 @@ func (this *Library) OnInstallComp() {
func (this *Library) Start() (err error) { func (this *Library) Start() (err error) {
err = this.ModuleBase.Start() err = this.ModuleBase.Start()
this.service.RegisterFunctionName(string(comm.Rpc_ModuleFetter), this.Rpc_ModuleFetter) this.service.RegisterFunctionName(string(comm.Rpc_ModuleFetter), this.Rpc_ModuleFetter)
if this.confComplot, err = this.configure.getFetterstoryTaskCfg(); err != nil {
return err
}
return return
} }
@ -83,28 +79,81 @@ func (this *Library) GetLibraryListByFid(uid string, fid int32) *pb.DBLibrary {
return nil return nil
} }
// 通过英雄ID 查询羁绊信息
func (this *Library) GetLibraryListByHid(uid string, hid string) *pb.DBLibrary {
list := this.modelLibrary.getLibraryList(uid)
for _, v := range list {
if _, ok := v.Herofetter[hid]; ok {
return v
}
}
return nil
}
//
func (this *Library) CheckFetter(uid string, hid string) (dbLibrary []*pb.DBLibrary, fetter []*pb.DBHeroFetter) {
szFid := this.configure.GetHeroFetterID(hid)
for _, fid := range szFid {
conf := this.configure.GetFriendData(fid, 1)
if len(conf) == 0 {
this.modelFetter.module.Errorf("can't foun conf fid:%d", fid)
continue
}
if list := this.GetLibraryListByFid(uid, fid); list == nil { // 没有这条羁绊数据
tmp := &pb.DBLibrary{ // 创建一条羁绊数据
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Fid: fid,
Herofetter: map[string]string{},
Prize: map[int32]int32{},
}
for _, v := range conf {
if _d := this.CheckHeroFetter(uid, v.Hid); _d != nil { // check DBHeroFetter
tmp.Herofetter[v.Hid] = _d.Id
fetter = append(fetter, _d)
}
}
if err := this.modelLibrary.createLibrary(uid, tmp); err != nil {
this.modelFetter.module.Errorf("createLibrary error: %v,obj:%v", err, tmp)
continue
}
dbLibrary = append(dbLibrary, tmp)
} else { // 有这条羁绊数据
dbLibrary = append(dbLibrary, list)
for _, v := range conf {
if _, ok := list.Herofetter[v.Hid]; !ok {
if _d := this.CheckHeroFetter(uid, v.Hid); _d == nil {
list.Herofetter[v.Hid] = _d.Id
fetter = append(fetter, _d)
}
mapData := make(map[string]interface{}, 0)
mapData["herofetter"] = list.Herofetter
this.modelLibrary.modifyLibraryDataByObjId(uid, list.Id, mapData) // 更新新的羁绊信息
}
}
}
}
return
}
//通过羁绊id 创建多个羁绊信息 //通过羁绊id 创建多个羁绊信息
func (this *Library) CreateLibrary(uid string, fid int32, heroConfId string) (code pb.ErrorCode, obj *pb.DBLibrary) { func (this *Library) CreateLibrary(uid string, fid int32, heroConfId string) (code pb.ErrorCode, obj *pb.DBLibrary) {
obj = &pb.DBLibrary{ obj = &pb.DBLibrary{
Id: primitive.NewObjectID().Hex(), Id: primitive.NewObjectID().Hex(),
Uid: uid, Uid: uid,
Fid: fid, Fid: fid,
Hero: map[string]int32{}, Herofetter: map[string]string{},
Prize: map[int32]int32{}, Prize: map[int32]int32{},
Fetterlv: 0,
} }
conf := this.configure.GetLibraryFetter(fid, 1) conf := this.configure.GetFriendData(fid, 1)
if conf != nil { if conf != nil {
for _, v := range conf.Hid {
obj.Hero[v] = 0 // 默认值
if v == heroConfId {
obj.Hero[heroConfId] = 1 // 获得的英雄好感度等级为1级
}
}
if err := this.modelLibrary.createLibrary(uid, obj); err != nil { if err := this.modelLibrary.createLibrary(uid, obj); err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
} }
obj.Herofetter[heroConfId] = obj.Id
} }
return return
@ -120,8 +169,31 @@ func (this *Library) GetHeroFetterList(uid string) []*pb.DBHeroFetter {
return this.modelFetter.getHeroFetterList(uid) return this.modelFetter.getHeroFetterList(uid)
} }
// 校验羁绊数据 如果没有 则创建
func (this *Library) CheckHeroFetter(uid string, hid string) (obj *pb.DBHeroFetter) {
var (
sz []*pb.DBHeroFetter
bFound bool
err error
)
sz = this.modelFetter.getHeroFetterList(uid)
for _, v := range sz {
if v.Heroid == hid {
bFound = true
break
}
}
if !bFound { // 创建一条英雄数据
if obj, err = this.createHeroFetter(uid, hid); err != nil {
obj = nil
return
}
}
return
}
// 创建一条英雄羁绊信息 // 创建一条英雄羁绊信息
func (this *Library) createHeroFetter(uid string, heroConfId string) (obj *pb.DBHeroFetter, code pb.ErrorCode) { func (this *Library) createHeroFetter(uid string, heroConfId string) (obj *pb.DBHeroFetter, err error) {
this.modelFetter.getHeroFetterList(uid) this.modelFetter.getHeroFetterList(uid)
obj = &pb.DBHeroFetter{ obj = &pb.DBHeroFetter{
Id: primitive.NewObjectID().Hex(), Id: primitive.NewObjectID().Hex(),
@ -130,11 +202,9 @@ func (this *Library) createHeroFetter(uid string, heroConfId string) (obj *pb.DB
History: make([]int32, 0), History: make([]int32, 0),
Favorlv: 1, Favorlv: 1,
Stroyprize: make([]int32, 0), Stroyprize: make([]int32, 0),
Lvprize: make([]int32, 0), Lvprize: make(map[int32]int32, 0),
}
if err := this.modelFetter.createHeroFetter(uid, obj); err != nil {
code = pb.ErrorCode_DBError
} }
err = this.modelFetter.createHeroFetter(uid, obj)
return return
} }
@ -174,64 +244,9 @@ func (this *Library) SendRpcAddHero(uid string, heroConfId string, serverTag str
// 创建一条羁绊信息 // 创建一条羁绊信息
func (this *Library) AddHeroFetterData(uid, heroConfId string) (code pb.ErrorCode) { func (this *Library) AddHeroFetterData(uid, heroConfId string) (code pb.ErrorCode) {
_conf := this.configure.GetLibraryHero(heroConfId) // 配置表中没有这个英雄数据 直接返回
if _conf == nil {
return
}
var (
objFetter *pb.DBHeroFetter // 详细羁绊信息数据
)
rsp := &pb.LibraryChangePush{} rsp := &pb.LibraryChangePush{}
_data := this.QueryOneHeroFetter(uid, heroConfId) rsp.Data, rsp.Fetter = this.CheckFetter(uid, heroConfId)
if _data == nil {
objFetter, code = this.createHeroFetter(uid, heroConfId)
if code == pb.ErrorCode_Success {
rsp.Fetter = append(rsp.Fetter, objFetter)
} else {
this.Errorf("createHeroFetter failed:%v,uid:%s,heroid:%s", code, uid, heroConfId)
}
}
for _, fid := range _conf.Fid {
// 查询是否存在这个羁绊对象
obj := this.GetLibraryListByFid(uid, fid)
if obj == nil { // 没有羁绊信息
code, obj = this.CreateLibrary(uid, fid, heroConfId)
if code != pb.ErrorCode_Success {
this.Errorf("CreateLibrary failed: %v,uid:%s,fid:%d", code, uid, fid)
}
rsp.Data = append(rsp.Data, obj)
} else { // 羁绊信息中没有这个heroid 也需要加进来
// 同步数据
mapData := make(map[string]interface{}, 0)
if obj.Activation {
// 重新计算最低等级
var minLv int32
conf := this.configure.GetLibraryFetter(obj.Fid, 1)
list := this.GetHeroFetterList(uid)
for _, v1 := range conf.Hid {
for _, v := range list {
if v.Heroid == v1 {
if minLv == 0 {
minLv = v.Favorlv
}
if minLv > v.Favorlv {
minLv = v.Favorlv
}
break
}
}
}
obj.Fetterlv = minLv
mapData["fetterlv"] = obj.Fetterlv
}
mapData["hero"] = obj.Hero
this.modelLibrary.modifyLibraryDataByObjId(uid, obj.Id, mapData)
rsp.Data = append(rsp.Data, obj)
}
}
if len(rsp.Data) != 0 || len(rsp.Fetter) != 0 { if len(rsp.Data) != 0 || len(rsp.Fetter) != 0 {
this.SendMsgToUser(string(this.GetType()), LibraryChangePush, rsp, uid) this.SendMsgToUser(string(this.GetType()), LibraryChangePush, rsp, uid)
} }

View File

@ -101,6 +101,7 @@ type DBHero struct {
HoroscopeProperty map[string]int32 `protobuf:"bytes,28,rep,name=horoscopeProperty,proto3" json:"horoscopeProperty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"horoscopeProperty"` ////星座属性加成 HoroscopeProperty map[string]int32 `protobuf:"bytes,28,rep,name=horoscopeProperty,proto3" json:"horoscopeProperty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"horoscopeProperty"` ////星座属性加成
Fulllvenr int32 `protobuf:"varint,29,opt,name=fulllvenr,proto3" json:"fulllvenr" bson:"fulllvenr"` ////满级登记分组 武馆使用 Fulllvenr int32 `protobuf:"varint,29,opt,name=fulllvenr,proto3" json:"fulllvenr" bson:"fulllvenr"` ////满级登记分组 武馆使用
KongfuUid string `protobuf:"bytes,30,opt,name=kongfuUid,proto3" json:"kongfuUid"` //@go_tags(`bson:"kongfuUid"`)// 英雄在谁家练功 KongfuUid string `protobuf:"bytes,30,opt,name=kongfuUid,proto3" json:"kongfuUid"` //@go_tags(`bson:"kongfuUid"`)// 英雄在谁家练功
Fetters map[string]int32 `protobuf:"bytes,31,rep,name=fetters,proto3" json:"fetters" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"horoscopeProperty"` ////羁绊属性加成
} }
func (x *DBHero) Reset() { func (x *DBHero) Reset() {
@ -345,6 +346,13 @@ func (x *DBHero) GetKongfuUid() string {
return "" return ""
} }
func (x *DBHero) GetFetters() map[string]int32 {
if x != nil {
return x.Fetters
}
return nil
}
//英雄扩展数据 //英雄扩展数据
type DBHeroRecord struct { type DBHeroRecord struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -582,7 +590,7 @@ var File_hero_hero_db_proto protoreflect.FileDescriptor
var file_hero_hero_db_proto_rawDesc = []byte{ var file_hero_hero_db_proto_rawDesc = []byte{
0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xc7, 0x0a, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x22, 0xb3, 0x0b, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68,
@ -646,7 +654,10 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x76, 0x65, 0x6e, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x76, 0x65, 0x6e, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x75, 0x6c, 0x6c,
0x6c, 0x76, 0x65, 0x6e, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x6f, 0x6e, 0x67, 0x66, 0x75, 0x55, 0x6c, 0x76, 0x65, 0x6e, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x6f, 0x6e, 0x67, 0x66, 0x75, 0x55,
0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x6f, 0x6e, 0x67, 0x66, 0x75, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x6f, 0x6e, 0x67, 0x66, 0x75,
0x55, 0x69, 0x64, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x1f,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x2e, 0x46, 0x65,
0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x65, 0x74, 0x74,
0x65, 0x72, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
@ -666,64 +677,68 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x05, 0x0a, 0x0c, 0x44, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x46, 0x65,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x05, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72,
0x61, 0x72, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x04, 0x20, 0x01, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x72, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x12,
0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05,
0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6e,
0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x64,
0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64,
0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65,
0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x72, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72,
0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72,
0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e,
0x62, 0x75, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20,
0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a,
0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f,
0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x31, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x12, 0x1e, 0x0a,
0x6c, 0x65, 0x31, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a,
0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x31, 0x18, 0x0e, 0x20, 0x01,
0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x31, 0x12,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x63,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x1a, 0x3c, 0x0a, 0x0e,
0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x74,
0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x52, 0x61, 0x63, 0x65,
0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65,
0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x03,
0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x6c, 0x65,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x2f, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x1a,
0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x65, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x2f, 0x0a, 0x08, 0x48, 0x65,
0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79,
0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54,
0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -739,7 +754,7 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte {
} }
var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_hero_hero_db_proto_goTypes = []interface{}{ var file_hero_hero_db_proto_goTypes = []interface{}{
(HeroType)(0), // 0: HeroType (HeroType)(0), // 0: HeroType
(*DBHero)(nil), // 1: DBHero (*DBHero)(nil), // 1: DBHero
@ -750,30 +765,32 @@ var file_hero_hero_db_proto_goTypes = []interface{}{
nil, // 6: DBHero.JuexPropertyEntry nil, // 6: DBHero.JuexPropertyEntry
nil, // 7: DBHero.TalentPropertyEntry nil, // 7: DBHero.TalentPropertyEntry
nil, // 8: DBHero.HoroscopePropertyEntry nil, // 8: DBHero.HoroscopePropertyEntry
nil, // 9: DBHeroRecord.ConditionEntry nil, // 9: DBHero.FettersEntry
nil, // 10: DBHeroRecord.Star5HeroEntry nil, // 10: DBHeroRecord.ConditionEntry
nil, // 11: DBHeroRecord.RaceEntry nil, // 11: DBHeroRecord.Star5HeroEntry
nil, // 12: DBHeroTalent.TalentEntry nil, // 12: DBHeroRecord.RaceEntry
(*SkillData)(nil), // 13: SkillData nil, // 13: DBHeroTalent.TalentEntry
(*SkillData)(nil), // 14: SkillData
} }
var file_hero_hero_db_proto_depIdxs = []int32{ var file_hero_hero_db_proto_depIdxs = []int32{
13, // 0: DBHero.normalSkill:type_name -> SkillData 14, // 0: DBHero.normalSkill:type_name -> SkillData
4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry 4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry
5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry 5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry
6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry 6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry
0, // 4: DBHero.status:type_name -> HeroType 0, // 4: DBHero.status:type_name -> HeroType
7, // 5: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry 7, // 5: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry
13, // 6: DBHero.equipSkill:type_name -> SkillData 14, // 6: DBHero.equipSkill:type_name -> SkillData
8, // 7: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry 8, // 7: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry
9, // 8: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry 9, // 8: DBHero.fetters:type_name -> DBHero.FettersEntry
10, // 9: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry 10, // 9: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry
11, // 10: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry 11, // 10: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry
12, // 11: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry 12, // 11: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry
12, // [12:12] is the sub-list for method output_type 13, // 12: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry
12, // [12:12] is the sub-list for method input_type 13, // [13:13] is the sub-list for method output_type
12, // [12:12] is the sub-list for extension type_name 13, // [13:13] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension extendee 13, // [13:13] is the sub-list for extension type_name
0, // [0:12] is the sub-list for field type_name 13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
} }
func init() { file_hero_hero_db_proto_init() } func init() { file_hero_hero_db_proto_init() }
@ -826,7 +843,7 @@ func file_hero_hero_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_db_proto_rawDesc, RawDescriptor: file_hero_hero_db_proto_rawDesc,
NumEnums: 1, NumEnums: 1,
NumMessages: 12, NumMessages: 13,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -25,14 +25,14 @@ type DBLibrary struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id
Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: id Herofetter map[string]string `protobuf:"bytes,4,rep,name=herofetter,proto3" json:"herofetter" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // key: hid value: DBHeroFetter ObjID
Prize map[int32]int32 `protobuf:"bytes,5,rep,name=prize,proto3" json:"prize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //是否领奖 key 好感度等级 Prize map[int32]int32 `protobuf:"bytes,5,rep,name=prize,proto3" json:"prize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //是否领奖 key 好感度等级
Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级 Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级
Storyid int32 `protobuf:"varint,7,opt,name=storyid,proto3" json:"storyid"` // 故事id 用来判断是否领奖 Storyid int32 `protobuf:"varint,7,opt,name=storyid,proto3" json:"storyid"` // 故事id 用来判断是否领奖
Activation bool `protobuf:"varint,8,opt,name=activation,proto3" json:"activation"` // 是否激活 Activation bool `protobuf:"varint,8,opt,name=activation,proto3" json:"activation"` // 是否激活
} }
func (x *DBLibrary) Reset() { func (x *DBLibrary) Reset() {
@ -88,9 +88,9 @@ func (x *DBLibrary) GetFid() int32 {
return 0 return 0
} }
func (x *DBLibrary) GetHero() map[string]int32 { func (x *DBLibrary) GetHerofetter() map[string]string {
if x != nil { if x != nil {
return x.Hero return x.Herofetter
} }
return nil return nil
} }
@ -129,14 +129,14 @@ type DBHeroFetter struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Heroid string `protobuf:"bytes,3,opt,name=heroid,proto3" json:"heroid"` // 英雄配置表id Heroid string `protobuf:"bytes,3,opt,name=heroid,proto3" json:"heroid"` // 英雄配置表id
History []int32 `protobuf:"varint,4,rep,packed,name=history,proto3" json:"history"` // 传记往事ID History []int32 `protobuf:"varint,4,rep,packed,name=history,proto3" json:"history"` // 传记往事ID
Favorlv int32 `protobuf:"varint,5,opt,name=favorlv,proto3" json:"favorlv"` // 好感度等级 Favorlv int32 `protobuf:"varint,5,opt,name=favorlv,proto3" json:"favorlv"` // 好感度等级
Favorexp int32 `protobuf:"varint,6,opt,name=favorexp,proto3" json:"favorexp"` // 好感度经验 Favorexp int32 `protobuf:"varint,6,opt,name=favorexp,proto3" json:"favorexp"` // 好感度经验
Stroyprize []int32 `protobuf:"varint,7,rep,packed,name=stroyprize,proto3" json:"stroyprize"` // 剧情奖励 Stroyprize []int32 `protobuf:"varint,7,rep,packed,name=stroyprize,proto3" json:"stroyprize"` // 剧情奖励
Lvprize []int32 `protobuf:"varint,8,rep,packed,name=lvprize,proto3" json:"lvprize"` // 等级奖励 Lvprize map[int32]int32 `protobuf:"bytes,8,rep,name=lvprize,proto3" json:"lvprize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 等级奖励
} }
func (x *DBHeroFetter) Reset() { func (x *DBHeroFetter) Reset() {
@ -220,7 +220,7 @@ func (x *DBHeroFetter) GetStroyprize() []int32 {
return nil return nil
} }
func (x *DBHeroFetter) GetLvprize() []int32 { func (x *DBHeroFetter) GetLvprize() map[int32]int32 {
if x != nil { if x != nil {
return x.Lvprize return x.Lvprize
} }
@ -398,43 +398,50 @@ var File_library_library_db_proto protoreflect.FileDescriptor
var file_library_library_db_proto_rawDesc = []byte{ var file_library_library_db_proto_rawDesc = []byte{
0x0a, 0x18, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x0a, 0x18, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72,
0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x02, 0x0a, 0x09, 0x44, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x02, 0x0a, 0x09, 0x44,
0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 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,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0a,
0x68, 0x65, 0x72, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4c, 0x68, 0x65, 0x72, 0x6f, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x32, 0x1a, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x48, 0x65, 0x72,
0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x6f, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x68, 0x65,
0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x72, 0x6f, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a,
0x79, 0x2e, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70, 0x72, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72,
0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c,
0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c,
0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01,
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61,
0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x48,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x72, 0x6f, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x72,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd2, 0x01, 0x0a, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46,
0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x65, 0x74, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69,
0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12,
0x79, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x18, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05,
0x28, 0x05, 0x52, 0x07, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x76,
0x61, 0x76, 0x6f, 0x72, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x61, 0x76, 0x6f,
0x61, 0x76, 0x6f, 0x72, 0x65, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x72, 0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x65, 0x78, 0x70, 0x18,
0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x65, 0x78, 0x70, 0x12,
0x6f, 0x79, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x76, 0x70, 0x72, 0x69, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20,
0x7a, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x76, 0x70, 0x72, 0x69, 0x7a, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12,
0x65, 0x22, 0xbe, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x74, 0x34, 0x0a, 0x07, 0x6c, 0x76, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x2e,
0x4c, 0x76, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6c, 0x76,
0x70, 0x72, 0x69, 0x7a, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x4c, 0x76, 0x70, 0x72, 0x69, 0x7a, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x22, 0xbe, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x66, 0x65, 0x65, 0x74, 0x65, 0x72, 0x54, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x66, 0x65, 0x65, 0x74, 0x65, 0x72, 0x54,
@ -468,27 +475,29 @@ func file_library_library_db_proto_rawDescGZIP() []byte {
return file_library_library_db_proto_rawDescData return file_library_library_db_proto_rawDescData
} }
var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_library_library_db_proto_goTypes = []interface{}{ var file_library_library_db_proto_goTypes = []interface{}{
(*DBLibrary)(nil), // 0: DBLibrary (*DBLibrary)(nil), // 0: DBLibrary
(*DBHeroFetter)(nil), // 1: DBHeroFetter (*DBHeroFetter)(nil), // 1: DBHeroFetter
(*DBFetterstory)(nil), // 2: DBFetterstory (*DBFetterstory)(nil), // 2: DBFetterstory
(*FetterTasks)(nil), // 3: FetterTasks (*FetterTasks)(nil), // 3: FetterTasks
(*FetterTask)(nil), // 4: FetterTask (*FetterTask)(nil), // 4: FetterTask
nil, // 5: DBLibrary.HeroEntry nil, // 5: DBLibrary.HerofetterEntry
nil, // 6: DBLibrary.PrizeEntry nil, // 6: DBLibrary.PrizeEntry
nil, // 7: DBFetterstory.FeeterTaskEntry nil, // 7: DBHeroFetter.LvprizeEntry
nil, // 8: DBFetterstory.FeeterTaskEntry
} }
var file_library_library_db_proto_depIdxs = []int32{ var file_library_library_db_proto_depIdxs = []int32{
5, // 0: DBLibrary.hero:type_name -> DBLibrary.HeroEntry 5, // 0: DBLibrary.herofetter:type_name -> DBLibrary.HerofetterEntry
6, // 1: DBLibrary.prize:type_name -> DBLibrary.PrizeEntry 6, // 1: DBLibrary.prize:type_name -> DBLibrary.PrizeEntry
7, // 2: DBFetterstory.feeterTask:type_name -> DBFetterstory.FeeterTaskEntry 7, // 2: DBHeroFetter.lvprize:type_name -> DBHeroFetter.LvprizeEntry
3, // 3: DBFetterstory.FeeterTaskEntry.value:type_name -> FetterTasks 8, // 3: DBFetterstory.feeterTask:type_name -> DBFetterstory.FeeterTaskEntry
4, // [4:4] is the sub-list for method output_type 3, // 4: DBFetterstory.FeeterTaskEntry.value:type_name -> FetterTasks
4, // [4:4] is the sub-list for method input_type 5, // [5:5] is the sub-list for method output_type
4, // [4:4] is the sub-list for extension type_name 5, // [5:5] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension extendee 5, // [5:5] is the sub-list for extension type_name
0, // [0:4] is the sub-list for field type_name 5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
} }
func init() { file_library_library_db_proto_init() } func init() { file_library_library_db_proto_init() }
@ -564,7 +573,7 @@ func file_library_library_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_library_library_db_proto_rawDesc, RawDescriptor: file_library_library_db_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 8, NumMessages: 9,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -301,9 +301,9 @@ type LibraryGetStoryRewardReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Hid string `protobuf:"bytes,1,opt,name=hid,proto3" json:"hid"` // 英雄ID Oid string `protobuf:"bytes,1,opt,name=oid,proto3" json:"oid"` // DBHeroFetter oid
History int32 `protobuf:"varint,2,opt,name=history,proto3" json:"history"` // 传记往事id History int32 `protobuf:"varint,2,opt,name=history,proto3" json:"history"` // 传记往事id
Rightend int32 `protobuf:"varint,3,opt,name=rightend,proto3" json:"rightend"` // 对应配置表 rightend Story int32 `protobuf:"varint,3,opt,name=story,proto3" json:"story"` // 剧情id
} }
func (x *LibraryGetStoryRewardReq) Reset() { func (x *LibraryGetStoryRewardReq) Reset() {
@ -338,9 +338,9 @@ func (*LibraryGetStoryRewardReq) Descriptor() ([]byte, []int) {
return file_library_library_msg_proto_rawDescGZIP(), []int{6} return file_library_library_msg_proto_rawDescGZIP(), []int{6}
} }
func (x *LibraryGetStoryRewardReq) GetHid() string { func (x *LibraryGetStoryRewardReq) GetOid() string {
if x != nil { if x != nil {
return x.Hid return x.Oid
} }
return "" return ""
} }
@ -352,9 +352,9 @@ func (x *LibraryGetStoryRewardReq) GetHistory() int32 {
return 0 return 0
} }
func (x *LibraryGetStoryRewardReq) GetRightend() int32 { func (x *LibraryGetStoryRewardReq) GetStory() int32 {
if x != nil { if x != nil {
return x.Rightend return x.Story
} }
return 0 return 0
} }
@ -882,59 +882,59 @@ var file_library_library_msg_proto_rawDesc = []byte{
0x72, 0x6c, 0x76, 0x22, 0x36, 0x0a, 0x14, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65, 0x72, 0x6c, 0x76, 0x22, 0x36, 0x0a, 0x14, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65,
0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x4c, 0x69,
0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x62, 0x0a, 0x18, 0x4c, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5c, 0x0a, 0x18, 0x4c,
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65,
0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x69, 0x64, 0x18, 0x01, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x68, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x69, 0x67, 0x68, 0x74, 0x65, 0x6e, 0x64, 0x18, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x69, 0x67, 0x68, 0x74, 0x65, 0x6e, 0x64, 0x22, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x3e, 0x0a, 0x19, 0x4c, 0x69, 0x62,
0x3e, 0x0a, 0x19, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x77, 0x61,
0x72, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74,
0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x4c, 0x69,
0x62, 0x72, 0x61, 0x72, 0x79, 0x55, 0x73, 0x65, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x12,
0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
0x55, 0x73, 0x65, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x38, 0x0a, 0x0a,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x12, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
0x79, 0x55, 0x73, 0x65, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04,
0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48,
0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
0x9a, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x55, 0x73, 0x65, 0x47, 0x69, 0x2e, 0x0a, 0x1a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61,
0x66, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22,
0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4c, 0x3d, 0x0a, 0x1b, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61,
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x55, 0x73, 0x65, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e,
0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44,
0x6d, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5a,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x12, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x04, 0x64,
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x55, 0x73, 0x65, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20,
0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74,
0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x72, 0x52, 0x06, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x12, 0x4c, 0x69,
0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x1a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71,
0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f,
0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02,
0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x3d, 0x0a, 0x1b, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x6c, 0x76, 0x22, 0x38, 0x0a, 0x13, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76, 0x52,
0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74,
0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x04, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x37, 0x0a, 0x19,
0x64, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x43, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x74, 0x6f,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74,
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74,
0x61, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52,
0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,
0x22, 0x36, 0x0a, 0x12, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04,
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x6f, 0x74, 0x6f, 0x33,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x38, 0x0a, 0x13, 0x4c, 0x69, 0x62, 0x72,
0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61,
0x74, 0x61, 0x22, 0x37, 0x0a, 0x19, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74,
0x74, 0x65, 0x72, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12,
0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1a, 0x4c,
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73,
0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -19,7 +19,7 @@ type GameFriendsData struct {
Png string Png string
FriendsLv int32 FriendsLv int32
FavorabilityLv int32 FavorabilityLv int32
Hid int32 Hid string
Attribute []*Gameatr Attribute []*Gameatr
AttributeTxt string AttributeTxt string
} }
@ -39,7 +39,7 @@ func (_v *GameFriendsData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Png, _ok_ = _buf["png"].(string); !_ok_ { err = errors.New("png error"); return } } { var _ok_ bool; if _v.Png, _ok_ = _buf["png"].(string); !_ok_ { err = errors.New("png error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["friends_lv"].(float64); !_ok_ { err = errors.New("friends_lv error"); return }; _v.FriendsLv = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["friends_lv"].(float64); !_ok_ { err = errors.New("friends_lv error"); return }; _v.FriendsLv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["favorability_lv"].(float64); !_ok_ { err = errors.New("favorability_lv error"); return }; _v.FavorabilityLv = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["favorability_lv"].(float64); !_ok_ { err = errors.New("favorability_lv error"); return }; _v.FavorabilityLv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) } { var _ok_ bool; if _v.Hid, _ok_ = _buf["hid"].(string); !_ok_ { err = errors.New("hid error"); return } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool