This commit is contained in:
meixiongfeng 2024-01-12 11:53:59 +08:00
commit b746c06746
25 changed files with 803 additions and 442 deletions

View File

@ -29,7 +29,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030001", "id": "20030001",
@ -61,7 +62,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030001", "id": "20030001",
@ -93,7 +95,8 @@
"caddtime": 10, "caddtime": 10,
"csubtime": 10, "csubtime": 10,
"energyrecover": 30, "energyrecover": 30,
"maxenergy": 100 "maxenergy": 100,
"offsetspeed": 15
}, },
{ {
"id": "20030002", "id": "20030002",
@ -125,7 +128,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030002", "id": "20030002",
@ -157,7 +161,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030002", "id": "20030002",
@ -189,7 +194,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 30, "energyrecover": 30,
"maxenergy": 100 "maxenergy": 100,
"offsetspeed": 15
}, },
{ {
"id": "20030003", "id": "20030003",
@ -221,7 +227,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030003", "id": "20030003",
@ -253,7 +260,8 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 0, "energyrecover": 0,
"maxenergy": 0 "maxenergy": 0,
"offsetspeed": 0
}, },
{ {
"id": "20030003", "id": "20030003",
@ -285,6 +293,7 @@
"caddtime": 0, "caddtime": 0,
"csubtime": 0, "csubtime": 0,
"energyrecover": 30, "energyrecover": 30,
"maxenergy": 100 "maxenergy": 100,
"offsetspeed": 15
} }
] ]

View File

@ -3,6 +3,7 @@
"key": "33003", "key": "33003",
"type": 1, "type": 1,
"herocolor": 1, "herocolor": 1,
"skilldestructiontype": 2,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_01", "key": "consume_consume_hero_herotitel_01",
"text": "酒吧新人" "text": "酒吧新人"
@ -61,6 +62,7 @@
"key": "44003", "key": "44003",
"type": 1, "type": 1,
"herocolor": 1, "herocolor": 1,
"skilldestructiontype": 2,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_02", "key": "consume_consume_hero_herotitel_02",
"text": "酒吧新人" "text": "酒吧新人"
@ -119,6 +121,7 @@
"key": "43004", "key": "43004",
"type": 1, "type": 1,
"herocolor": 1, "herocolor": 1,
"skilldestructiontype": 1,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_03", "key": "consume_consume_hero_herotitel_03",
"text": "酒吧新人" "text": "酒吧新人"
@ -177,6 +180,7 @@
"key": "13004", "key": "13004",
"type": 2, "type": 2,
"herocolor": 2, "herocolor": 2,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_04", "key": "consume_consume_hero_herotitel_04",
"text": "老手" "text": "老手"
@ -241,6 +245,7 @@
"key": "13005", "key": "13005",
"type": 2, "type": 2,
"herocolor": 2, "herocolor": 2,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_05", "key": "consume_consume_hero_herotitel_05",
"text": "老手" "text": "老手"
@ -305,6 +310,7 @@
"key": "15002", "key": "15002",
"type": 2, "type": 2,
"herocolor": 2, "herocolor": 2,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_06", "key": "consume_consume_hero_herotitel_06",
"text": "老手" "text": "老手"
@ -369,6 +375,7 @@
"key": "24001", "key": "24001",
"type": 2, "type": 2,
"herocolor": 2, "herocolor": 2,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_07", "key": "consume_consume_hero_herotitel_07",
"text": "老手" "text": "老手"
@ -433,6 +440,7 @@
"key": "25001", "key": "25001",
"type": 2, "type": 2,
"herocolor": 3, "herocolor": 3,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_08", "key": "consume_consume_hero_herotitel_08",
"text": "靠谱的家伙" "text": "靠谱的家伙"
@ -497,6 +505,7 @@
"key": "35001", "key": "35001",
"type": 2, "type": 2,
"herocolor": 3, "herocolor": 3,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_09", "key": "consume_consume_hero_herotitel_09",
"text": "靠谱的家伙" "text": "靠谱的家伙"
@ -561,6 +570,7 @@
"key": "44004", "key": "44004",
"type": 2, "type": 2,
"herocolor": 3, "herocolor": 3,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_10", "key": "consume_consume_hero_herotitel_10",
"text": "靠谱的家伙" "text": "靠谱的家伙"
@ -625,6 +635,7 @@
"key": "44006", "key": "44006",
"type": 2, "type": 2,
"herocolor": 3, "herocolor": 3,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_11", "key": "consume_consume_hero_herotitel_11",
"text": "靠谱的家伙" "text": "靠谱的家伙"
@ -689,6 +700,7 @@
"key": "45003", "key": "45003",
"type": 2, "type": 2,
"herocolor": 4, "herocolor": 4,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_12", "key": "consume_consume_hero_herotitel_12",
"text": "身怀绝技" "text": "身怀绝技"
@ -753,6 +765,7 @@
"key": "34007", "key": "34007",
"type": 2, "type": 2,
"herocolor": 4, "herocolor": 4,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_13", "key": "consume_consume_hero_herotitel_13",
"text": "身怀绝技" "text": "身怀绝技"
@ -817,6 +830,7 @@
"key": "45004", "key": "45004",
"type": 2, "type": 2,
"herocolor": 4, "herocolor": 4,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_14", "key": "consume_consume_hero_herotitel_14",
"text": "身怀绝技" "text": "身怀绝技"
@ -881,6 +895,7 @@
"key": "45001", "key": "45001",
"type": 2, "type": 2,
"herocolor": 5, "herocolor": 5,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_15", "key": "consume_consume_hero_herotitel_15",
"text": "传奇牌手!" "text": "传奇牌手!"
@ -945,6 +960,7 @@
"key": "34006", "key": "34006",
"type": 2, "type": 2,
"herocolor": 5, "herocolor": 5,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_16", "key": "consume_consume_hero_herotitel_16",
"text": "传奇牌手!" "text": "传奇牌手!"
@ -1009,6 +1025,7 @@
"key": "35003", "key": "35003",
"type": 2, "type": 2,
"herocolor": 5, "herocolor": 5,
"skilldestructiontype": 0,
"herotitel": { "herotitel": {
"key": "consume_consume_hero_herotitel_17", "key": "consume_consume_hero_herotitel_17",
"text": "传奇牌手!" "text": "传奇牌手!"

View File

@ -1143,6 +1143,47 @@
"sale": [], "sale": [],
"gm": 0 "gm": 0
}, },
{
"id": "10000041",
"name": {
"key": "item_item_name_10000041",
"text": "魔法扫帚"
},
"usetype": 2,
"color": 3,
"bagtype": 1,
"index": 99,
"special_type": 0,
"hold": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 0,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [],
"use_skip": 0,
"upper_limit": 999,
"img": "item_10000041",
"intr": {
"key": "item_item_intr_10000041",
"text": "横扫的消耗道具,使用可以进行横扫功能。"
},
"describe": {
"key": "item_item_describe_10000041",
"text": "梅林大师首席弟子希沙窦斯倾情推荐,妖精匠心的艺术杰作。帮你扫平一切烦恼和阻碍,让你微笑面对每一天。"
},
"dialogue": {
"key": "item_item_dialogue_10000041",
"text": ""
},
"sale": [],
"gm": 0
},
{ {
"id": "11013001", "id": "11013001",
"name": { "name": {
@ -46384,5 +46425,99 @@
} }
], ],
"gm": 0 "gm": 0
},
{
"id": "29000001",
"name": {
"key": "item_item_name_29000001",
"text": "史莱克沼泽清洁泥"
},
"usetype": 1,
"color": 3,
"bagtype": 3,
"index": 1,
"special_type": 0,
"hold": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 0,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [],
"use_skip": 0,
"upper_limit": 0,
"img": "sq_icon_qh",
"intr": {
"key": "item_item_intr_29000001",
"text": "用来强化秘宝的消耗道具。"
},
"describe": {
"key": "",
"text": ""
},
"dialogue": {
"key": "",
"text": ""
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"gm": 0
},
{
"id": "29000002",
"name": {
"key": "item_item_name_29000002",
"text": "元素石"
},
"usetype": 1,
"color": 3,
"bagtype": 3,
"index": 1,
"special_type": 0,
"hold": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 0,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [],
"use_skip": 0,
"upper_limit": 0,
"img": "sp_icon_qh",
"intr": {
"key": "item_item_intr_29000002",
"text": "用来强化护身符的消耗道具。"
},
"describe": {
"key": "",
"text": ""
},
"dialogue": {
"key": "",
"text": ""
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"gm": 0
} }
] ]

View File

@ -40331,8 +40331,8 @@
"TriggerAnim": "Passive", "TriggerAnim": "Passive",
"Type": 8, "Type": 8,
"Argu": [ "Argu": [
6,
1, 1,
1000,
1000 1000
], ],
"FollowSK": [ "FollowSK": [

View File

@ -112,7 +112,7 @@ type (
CleanData(uid string) CleanData(uid string)
// 英雄加经验 // 英雄加经验
AddHerosExp(session IUserSession, heroObjs []string, exp int32) (curAddExp map[string]int32, errdata *pb.ErrorData) AddHerosExp(session IUserSession, heroObjs []string, exp int32) (curAddExp map[string]int32, award []*cfg.Gameatn, errdata *pb.ErrorData)
// 英雄练功 // 英雄练功
KungFuHero(session IUserSession, heroObjID string, bKongfu bool, kongfuUid string) (errdata *pb.ErrorData) KungFuHero(session IUserSession, heroObjID string, bKongfu bool, kongfuUid string) (errdata *pb.ErrorData)
@ -332,6 +332,8 @@ type (
// 可以携带debuff 的战斗 // 可以携带debuff 的战斗
CreateDebuffBattle(session IUserSession, req *pb.BattlePVEReq, dibuff []int32) (errdata *pb.ErrorData, record *pb.DBBattleRecord) CreateDebuffBattle(session IUserSession, req *pb.BattlePVEReq, dibuff []int32) (errdata *pb.ErrorData, record *pb.DBBattleRecord)
// 跑服务端战斗
RunServerBattle(session IUserSession, req *pb.BattleRunReq) (errdata *pb.ErrorData, record *pb.BattleRunResp)
} }
IGm interface { IGm interface {
CreateCmd(session IUserSession, cmd string) (errdata *pb.ErrorData) CreateCmd(session IUserSession, cmd string) (errdata *pb.ErrorData)

View File

@ -690,3 +690,9 @@ func (this *Battle) CreateDebuffBattle(session comm.IUserSession, req *pb.Battle
return return
} }
// 炮服务端战斗
func (this *Battle) RunServerBattle(session comm.IUserSession, req *pb.BattleRunReq) (errdata *pb.ErrorData, record *pb.BattleRunResp) {
return
}

View File

@ -28,6 +28,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
costGold int32 // 需要消耗的资源 costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄 _hero *pb.DBHero // 目标英雄
cost []*cfg.Gameatn // 消耗的道具 cost []*cfg.Gameatn // 消耗的道具
award []*cfg.Gameatn
atno []*pb.UserAtno
) )
if errdata = this.StrengthenUplvCheck(session, req); errdata != nil { if errdata = this.StrengthenUplvCheck(session, req); errdata != nil {
return return
@ -86,15 +88,20 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
return return
} }
// 执行升级逻辑 // 执行升级逻辑
if _, errdata = this.module.modelHero.AddCardExp(session, []*pb.DBHero{_hero}, addExp, nil); errdata != nil { // 加经验 if _, award, errdata = this.module.modelHero.AddCardExp(session, []*pb.DBHero{_hero}, addExp, nil); errdata != nil { // 加经验
return return
} }
// 消耗金币 // 消耗金币
if errdata = this.module.ConsumeRes(session, cost, true); errdata != nil { //道具扣除 if errdata = this.module.ConsumeRes(session, cost, true); errdata != nil { //道具扣除
return return
} }
if award != nil {
if errdata, atno = this.module.DispenseAtno(session, award, true); errdata != nil {
return
}
}
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero}) session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero, Atno: atno})
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
//英雄升级 【玩家名称】已将【英雄名称】培养至60级 //英雄升级 【玩家名称】已将【英雄名称】培养至60级

View File

@ -399,14 +399,13 @@ func (this *ModelHero) cleanData(uid string) {
} }
} }
func (this *ModelHero) AddCardExp(session comm.IUserSession, heros []*pb.DBHero, exp int32, model *db.DBModel) (curAddExp map[string]int32, errdata *pb.ErrorData) { func (this *ModelHero) AddCardExp(session comm.IUserSession, heros []*pb.DBHero, exp int32, model *db.DBModel) (curAddExp map[string]int32, award []*cfg.Gameatn, errdata *pb.ErrorData) {
var ( var (
tasks []*pb.BuriedParam tasks []*pb.BuriedParam
changeupdate map[string]interface{} = make(map[string]interface{}) changeupdate map[string]interface{} = make(map[string]interface{})
maxlvhero *pb.DBHero maxlvhero *pb.DBHero
upwardconf *cfg.GameHeroLeveluprewardData upwardconf *cfg.GameHeroLeveluprewardData
upwardconfs []*cfg.GameHeroLeveluprewardData upwardconfs []*cfg.GameHeroLeveluprewardData
upwardatns []*cfg.Gameatn
err error err error
) )
curAddExp = make(map[string]int32, len(heros)) curAddExp = make(map[string]int32, len(heros))
@ -592,18 +591,18 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, heros []*pb.DBHero,
return return
} }
} }
award = make([]*cfg.Gameatn, 0)
if len(upwardconfs) > 0 {
for _, v := range upwardconfs {
award = append(award, v.Starup...)
}
}
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
if maxlvhero != nil { if maxlvhero != nil {
this.module.passon.HeroUpLv(session, maxlvhero.HeroID, maxlvhero.Lv) this.module.passon.HeroUpLv(session, maxlvhero.HeroID, maxlvhero.Lv)
} }
this.module.ModuleBuried.TriggerBuried(session, tasks...) this.module.ModuleBuried.TriggerBuried(session, tasks...)
if len(upwardconfs) > 0 {
for _, v := range upwardconfs {
upwardatns = append(upwardatns, v.Starup...)
}
this.module.DispenseAtno(session, upwardatns, true)
}
}) })
return return
} }

View File

@ -838,7 +838,7 @@ func (this *Hero) CheckPeachReward(session comm.IUserSession, ctime int64) {
return return
} }
func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp int32) (curAddExp map[string]int32, errdata *pb.ErrorData) { func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp int32) (curAddExp map[string]int32, award []*cfg.Gameatn, errdata *pb.ErrorData) {
var ( var (
ids []string = make([]string, 0) ids []string = make([]string, 0)
heros []*pb.DBHero heros []*pb.DBHero
@ -862,7 +862,7 @@ func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp
} }
return return
} }
if curAddExp, errdata = this.modelHero.AddCardExp(session, heros, exp, model); errdata != nil { if curAddExp, award, errdata = this.modelHero.AddCardExp(session, heros, exp, model); errdata != nil {
return return
} }
@ -877,7 +877,7 @@ func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp
return return
} }
if curAddExp, errdata = this.modelHero.AddCardExp(session, heros, exp, nil); errdata != nil { if curAddExp, award, errdata = this.modelHero.AddCardExp(session, heros, exp, nil); errdata != nil {
return return
} }
changeHero = append(changeHero, heros...) changeHero = append(changeHero, heros...)

View File

@ -29,6 +29,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0)
del []string // 自动出售的装备 del []string // 自动出售的装备
atno []*pb.UserAtno // atno 类型 atno []*pb.UserAtno // atno 类型
award []*cfg.Gameatn //英雄升级奖励
res []*cfg.Gameatn // 最后获得的资源 res []*cfg.Gameatn // 最后获得的资源
oldDifficulty int32 // 记录 oldDifficulty int32 // 记录
consumPs int32 consumPs int32
@ -154,9 +155,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
} }
} }
res = append(res, this.module.ModuleUser.PsConvertExp(consumPs)) res = append(res, this.module.ModuleUser.PsConvertExp(consumPs))
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
}
szAtno = append(szAtno, atno...) szAtno = append(szAtno, atno...)
// 加经验 // 加经验
if cfgHunting.Heroexp > 0 { if cfgHunting.Heroexp > 0 {
@ -168,11 +167,14 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, cfgHunting.Heroexp); errdata != nil { if changExp, award, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, cfgHunting.Heroexp); errdata != nil {
return return
} }
res = append(res, award...)
}
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
} }
errdata = this.module.ModifyHuntingData(session.GetUserId(), mapData) errdata = this.module.ModifyHuntingData(session.GetUserId(), mapData)
// if atno, errdata = this.module.ModuleUser.ConsumePsAddExp(session, consumPs); errdata != nil { // if atno, errdata = this.module.ModuleUser.ConsumePsAddExp(session, consumPs); errdata != nil {
// return // return

View File

@ -23,6 +23,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.IntegralCh
var ( var (
update map[string]interface{} update map[string]interface{}
res []*cfg.Gameatn res []*cfg.Gameatn
award []*cfg.Gameatn
first bool // 是否是首通 first bool // 是否是首通
line []*pb.LineUp // 阵容数据 line []*pb.LineUp // 阵容数据
harm int32 harm int32
@ -127,9 +128,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.IntegralCh
res = append(res, reward...) res = append(res, reward...)
} }
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
}
// 加经验 // 加经验
if cfgData.Heroexp > 0 { if cfgData.Heroexp > 0 {
var heroObjs []string var heroObjs []string
@ -142,12 +140,21 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.IntegralCh
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, cfgData.Heroexp); errdata != nil { if changExp, award, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, cfgData.Heroexp); errdata != nil {
return return
} }
res = append(res, award...)
}
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
}
if err = this.module.modelIntegral.modifyIntegralData(session.GetUserId(), update); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Message: err.Error(),
}
return
} }
err = this.module.modelIntegral.modifyIntegralData(session.GetUserId(), update)
this.module.modelRank.updateRank(harm, session.GetUserId(), int(req.Nandu)) this.module.modelRank.updateRank(harm, session.GetUserId(), int(req.Nandu))
session.SendMsg(string(this.module.GetType()), "challengeover", &pb.IntegralChallengeOverResp{ session.SendMsg(string(this.module.GetType()), "challengeover", &pb.IntegralChallengeOverResp{

View File

@ -32,6 +32,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
err error err error
changExp map[string]int32 changExp map[string]int32
res []*cfg.Gameatn res []*cfg.Gameatn
award []*cfg.Gameatn
) )
changExp = make(map[string]int32, 0) changExp = make(map[string]int32, 0)
if errdata = this.ChallengeOverCheck(session, req); errdata != nil { if errdata = this.ChallengeOverCheck(session, req); errdata != nil {
@ -154,10 +155,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
res = append(res, lotteryward...) res = append(res, lotteryward...)
} }
res = append(res, this.module.ModuleUser.PsConvertExp(info.Ps[req.Level])) res = append(res, this.module.ModuleUser.PsConvertExp(info.Ps[req.Level]))
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
this.module.Debugf("Mline DispenseRes err:+%v", res)
return
}
// 加英雄经验 // 加英雄经验
if conf.HeroExp > 0 { if conf.HeroExp > 0 {
@ -169,9 +166,14 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.HeroExp); errdata != nil { if changExp, award, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.HeroExp); errdata != nil {
return return
} }
res = append(res, award...)
}
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
this.module.Debugf("Mline DispenseRes err:+%v", res)
return
} }
if err = this.module.modelMline.updateMainlineData(session.GetUserId(), info); err != nil { if err = this.module.modelMline.updateMainlineData(session.GetUserId(), info); err != nil {

View File

@ -3,6 +3,7 @@ package pagoda
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db" "go_dreamfactory/sys/db"
"strconv" "strconv"
@ -30,6 +31,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
isWin bool isWin bool
err error err error
atno []*pb.UserAtno // 通关奖励 atno []*pb.UserAtno // 通关奖励
award []*cfg.Gameatn
changExp map[string]int32 changExp map[string]int32
) )
changExp = make(map[string]int32, 0) changExp = make(map[string]int32, 0)
@ -108,7 +110,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.Exp); errdata != nil { if changExp, award, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.Exp); errdata != nil {
return return
} }
} }
@ -141,8 +143,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
return return
} }
session.SetMate(comm.Session_User, user) session.SetMate(comm.Session_User, user)
award = append(award, conf.Reward...)
// 通关奖励 // 通关奖励
if errdata, atno = this.module.DispenseAtno(session, conf.Reward, true); errdata != nil { if errdata, atno = this.module.DispenseAtno(session, award, true); errdata != nil {
return return
} }

View File

@ -3,6 +3,7 @@ package pagoda
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
) )
// 参数校验 // 参数校验
@ -25,6 +26,7 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda
isWin bool isWin bool
err error err error
atno []*pb.UserAtno // 通关奖励 atno []*pb.UserAtno // 通关奖励
award []*cfg.Gameatn
changExp map[string]int32 changExp map[string]int32
costTime int32 // 耗时 costTime int32 // 耗时
star int32 // 当前星级 star int32 // 当前星级
@ -114,12 +116,13 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.Exp); errdata != nil { if changExp, award, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, conf.Exp); errdata != nil {
return return
} }
} }
award = append(award, conf.Reward...)
// 通关奖励 // 通关奖励
if errdata, atno = this.module.DispenseAtno(session, conf.Reward, true); errdata != nil { if errdata, atno = this.module.DispenseAtno(session, award, true); errdata != nil {
return return
} }
session.SendMsg(string(this.module.GetType()), PagodaChallengeRaceOverResp, &pb.PagodaChallengeRaceOverResp{ session.SendMsg(string(this.module.GetType()), PagodaChallengeRaceOverResp, &pb.PagodaChallengeRaceOverResp{

View File

@ -40,6 +40,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
this.LoadConfigure(game_buzkashimount, cfg.NewGameBuzkashiMount) this.LoadConfigure(game_buzkashimount, cfg.NewGameBuzkashiMount)
this.LoadConfigure(game_qualifying, cfg.NewGameQualifying) this.LoadConfigure(game_qualifying, cfg.NewGameQualifying)
this.LoadConfigure(game_dragonweeklyreward, cfg.NewGameDragonWeeklyreward) this.LoadConfigure(game_dragonweeklyreward, cfg.NewGameDragonWeeklyreward)
this.LoadConfigure(game_buzkashicombo, cfg.NewGameBuzkashiCombo)
return return
} }

View File

@ -304,7 +304,7 @@ func (this *Parkour) eat(id string, uid string) {
} }
} }
if !ok { if !ok {
this.Error("qte on found Member !", log.Field{Key: "uid", Value: uid}) this.Error("qte on found Member!", log.Field{Key: "uid", Value: uid})
return return
} }
if conf, err = this.configure.getGameBuzkashicombo(lcoins); err != nil { if conf, err = this.configure.getGameBuzkashicombo(lcoins); err != nil {

View File

@ -34,6 +34,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls
exp1 int32 exp1 int32
ants1 []*cfg.Gameatn ants1 []*cfg.Gameatn
ants2 []*cfg.Gameatn ants2 []*cfg.Gameatn
award []*cfg.Gameatn
) )
if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
@ -196,7 +197,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls
} }
} }
_session, ok = this.module.GetUserSession(pillar.Uid) _session, ok = this.module.GetUserSession(pillar.Uid)
if _, errdata = this.module.ModuleHero.AddHerosExp(_session, []string{pillar.Hero}, exp); errdata != nil { if _, award, errdata = this.module.ModuleHero.AddHerosExp(_session, []string{pillar.Hero}, exp); errdata != nil {
return return
} }
if errdata = this.module.ModuleHero.KungFuHero(_session, pillar.Hero, false, ""); errdata != nil { if errdata = this.module.ModuleHero.KungFuHero(_session, pillar.Hero, false, ""); errdata != nil {
@ -218,6 +219,13 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls
N: v.N, N: v.N,
}) })
} }
for _, v := range award {
res = append(res, &pb.UserAssets{
A: v.A,
T: v.T,
N: v.N,
})
}
this.module.mail.SendNewMail(&pb.DBMailData{ this.module.mail.SendNewMail(&pb.DBMailData{
Cid: "Drivethemail", Cid: "Drivethemail",
CreateTime: uint64(configure.Now().Unix()), CreateTime: uint64(configure.Now().Unix()),

View File

@ -36,6 +36,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.PracticeReceiveR
ants2 []*cfg.Gameatn ants2 []*cfg.Gameatn
awardtemp []*pb.UserAtno awardtemp []*pb.UserAtno
award []*pb.UserAtno award []*pb.UserAtno
heroupaward []*cfg.Gameatn
tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0)
) )
if req.Friend != "" { if req.Friend != "" {
@ -268,10 +269,12 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.PracticeReceiveR
} }
} }
this.module.Debug("最终经验加成", log.Field{Key: "exp", Value: exp}, log.Field{Key: "exp1", Value: exp1}) this.module.Debug("最终经验加成", log.Field{Key: "exp", Value: exp}, log.Field{Key: "exp1", Value: exp1})
if _, errdata = this.module.ModuleHero.AddHerosExp(session, []string{pillar.Hero}, exp1); errdata != nil { if _, heroupaward, errdata = this.module.ModuleHero.AddHerosExp(session, []string{pillar.Hero}, exp1); errdata != nil {
return return
} }
if errdata, awardtemp = this.module.DispenseAtno(session, append(ants1, ants2...), true); errdata != nil { heroupaward = append(heroupaward, ants1...)
heroupaward = append(heroupaward, ants2...)
if errdata, awardtemp = this.module.DispenseAtno(session, heroupaward, true); errdata != nil {
return return
} }
award = append(award, awardtemp...) award = append(award, awardtemp...)

View File

@ -29,6 +29,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
atno []*pb.UserAtno // atno 类型 atno []*pb.UserAtno // atno 类型
del []string // 自动出售的装备 del []string // 自动出售的装备
changExp map[string]int32 changExp map[string]int32
heroupaward []*cfg.Gameatn
res []*cfg.Gameatn // 最后获得的资源 res []*cfg.Gameatn // 最后获得的资源
bHelp bool bHelp bool
oldDifficulty int32 // 记录通关之前的难度 oldDifficulty int32 // 记录通关之前的难度
@ -193,9 +194,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
} }
res = append(res, this.module.ModuleUser.PsConvertExp(consumPs)) res = append(res, this.module.ModuleUser.PsConvertExp(consumPs))
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
}
if errdata = this.module.ModifyVikingData(session.GetUserId(), mapData); errdata != nil { if errdata = this.module.ModifyVikingData(session.GetUserId(), mapData); errdata != nil {
return return
} }
@ -214,11 +213,14 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
} }
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, vikingCfg.Heroexp); errdata != nil { if changExp, heroupaward, errdata = this.module.ModuleHero.AddHerosExp(session, heroObjs, vikingCfg.Heroexp); errdata != nil {
return return
} }
res = append(res, heroupaward...)
}
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
return
} }
session.SendMsg(string(this.module.GetType()), VikingChallengeOverResp, &pb.VikingChallengeOverResp{ session.SendMsg(string(this.module.GetType()), VikingChallengeOverResp, &pb.VikingChallengeOverResp{
Data: viking, Data: viking,
Asset: atno, Asset: atno,

View File

@ -27,13 +27,14 @@ func (this *apiComp) BattleFinishCheck(session comm.IUserSession, req *pb.WTaskB
// /获取系统公告 // /获取系统公告
func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattleFinishReq) (errdata *pb.ErrorData) { func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattleFinishReq) (errdata *pb.ErrorData) {
var ( var (
conf *cfg.GameWorldBattleData conf *cfg.GameWorldBattleData
prop []*cfg.Gameatn prop []*cfg.Gameatn
atno []*pb.UserAtno heroupaward []*cfg.Gameatn
tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) atno []*pb.UserAtno
err error tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0)
isWin bool err error
changExp map[string]int32 isWin bool
changExp map[string]int32
) )
changExp = make(map[string]int32, 0) changExp = make(map[string]int32, 0)
if errdata = this.BattleFinishCheck(session, req); errdata != nil { if errdata = this.BattleFinishCheck(session, req); errdata != nil {
@ -61,7 +62,7 @@ func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattle
heros = append(heros, v.Oid) heros = append(heros, v.Oid)
} }
} }
if changExp, errdata = this.module.ModuleHero.AddHerosExp(session, heros, conf.Carexe); errdata != nil { if changExp, heroupaward, errdata = this.module.ModuleHero.AddHerosExp(session, heros, conf.Carexe); errdata != nil {
return return
} }
} }
@ -87,6 +88,7 @@ func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattle
} }
prop = append(prop, conf.Playexp) //经验不返回前端展示 prop = append(prop, conf.Playexp) //经验不返回前端展示
prop = append(prop, conf.Exreward...) //经验不返回前端展示 prop = append(prop, conf.Exreward...) //经验不返回前端展示
prop = append(prop, heroupaward...)
if errdata, atno = this.module.DispenseAtno(session, prop, true); errdata != nil { if errdata, atno = this.module.DispenseAtno(session, prop, true); errdata != nil {
this.module.Error("世界任务战斗玩家经验结算", this.module.Error("世界任务战斗玩家经验结算",
log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "uid", Value: session.GetUserId()},

View File

@ -1306,6 +1306,102 @@ func (x *BattleCheckResults) GetIscheck() bool {
return false return false
} }
//服务器跑战斗 请求
type BattleRunReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Info []*BattleInfo `protobuf:"bytes,1,rep,name=info,proto3" json:"info"`
}
func (x *BattleRunReq) Reset() {
*x = BattleRunReq{}
if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BattleRunReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BattleRunReq) ProtoMessage() {}
func (x *BattleRunReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BattleRunReq.ProtoReflect.Descriptor instead.
func (*BattleRunReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{16}
}
func (x *BattleRunReq) GetInfo() []*BattleInfo {
if x != nil {
return x.Info
}
return nil
}
//服务器跑战斗 请求回应
type BattleRunResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Reports []*BattleReport `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports"`
}
func (x *BattleRunResp) Reset() {
*x = BattleRunResp{}
if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BattleRunResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BattleRunResp) ProtoMessage() {}
func (x *BattleRunResp) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BattleRunResp.ProtoReflect.Descriptor instead.
func (*BattleRunResp) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{17}
}
func (x *BattleRunResp) GetReports() []*BattleReport {
if x != nil {
return x.Reports
}
return nil
}
//创建战斗服务 请求 //创建战斗服务 请求
type BattleGetInfoReq struct { type BattleGetInfoReq struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -1318,7 +1414,7 @@ type BattleGetInfoReq struct {
func (x *BattleGetInfoReq) Reset() { func (x *BattleGetInfoReq) Reset() {
*x = BattleGetInfoReq{} *x = BattleGetInfoReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[16] mi := &file_battle_battle_msg_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1331,7 +1427,7 @@ func (x *BattleGetInfoReq) String() string {
func (*BattleGetInfoReq) ProtoMessage() {} func (*BattleGetInfoReq) ProtoMessage() {}
func (x *BattleGetInfoReq) ProtoReflect() protoreflect.Message { func (x *BattleGetInfoReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[16] mi := &file_battle_battle_msg_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1344,7 +1440,7 @@ func (x *BattleGetInfoReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleGetInfoReq.ProtoReflect.Descriptor instead. // Deprecated: Use BattleGetInfoReq.ProtoReflect.Descriptor instead.
func (*BattleGetInfoReq) Descriptor() ([]byte, []int) { func (*BattleGetInfoReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{16} return file_battle_battle_msg_proto_rawDescGZIP(), []int{18}
} }
func (x *BattleGetInfoReq) GetBattleid() string { func (x *BattleGetInfoReq) GetBattleid() string {
@ -1367,7 +1463,7 @@ type BattleGetInfoResp struct {
func (x *BattleGetInfoResp) Reset() { func (x *BattleGetInfoResp) Reset() {
*x = BattleGetInfoResp{} *x = BattleGetInfoResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[17] mi := &file_battle_battle_msg_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1380,7 +1476,7 @@ func (x *BattleGetInfoResp) String() string {
func (*BattleGetInfoResp) ProtoMessage() {} func (*BattleGetInfoResp) ProtoMessage() {}
func (x *BattleGetInfoResp) ProtoReflect() protoreflect.Message { func (x *BattleGetInfoResp) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[17] mi := &file_battle_battle_msg_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1393,7 +1489,7 @@ func (x *BattleGetInfoResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleGetInfoResp.ProtoReflect.Descriptor instead. // Deprecated: Use BattleGetInfoResp.ProtoReflect.Descriptor instead.
func (*BattleGetInfoResp) Descriptor() ([]byte, []int) { func (*BattleGetInfoResp) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{17} return file_battle_battle_msg_proto_rawDescGZIP(), []int{19}
} }
func (x *BattleGetInfoResp) GetBattleid() string { func (x *BattleGetInfoResp) GetBattleid() string {
@ -1422,7 +1518,7 @@ type BattleCreateServerReq struct {
func (x *BattleCreateServerReq) Reset() { func (x *BattleCreateServerReq) Reset() {
*x = BattleCreateServerReq{} *x = BattleCreateServerReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[18] mi := &file_battle_battle_msg_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1435,7 +1531,7 @@ func (x *BattleCreateServerReq) String() string {
func (*BattleCreateServerReq) ProtoMessage() {} func (*BattleCreateServerReq) ProtoMessage() {}
func (x *BattleCreateServerReq) ProtoReflect() protoreflect.Message { func (x *BattleCreateServerReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[18] mi := &file_battle_battle_msg_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1448,7 +1544,7 @@ func (x *BattleCreateServerReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleCreateServerReq.ProtoReflect.Descriptor instead. // Deprecated: Use BattleCreateServerReq.ProtoReflect.Descriptor instead.
func (*BattleCreateServerReq) Descriptor() ([]byte, []int) { func (*BattleCreateServerReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{18} return file_battle_battle_msg_proto_rawDescGZIP(), []int{20}
} }
func (x *BattleCreateServerReq) GetInfo() *BattleInfo { func (x *BattleCreateServerReq) GetInfo() *BattleInfo {
@ -1470,7 +1566,7 @@ type BattleCreateServerResp struct {
func (x *BattleCreateServerResp) Reset() { func (x *BattleCreateServerResp) Reset() {
*x = BattleCreateServerResp{} *x = BattleCreateServerResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[19] mi := &file_battle_battle_msg_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1483,7 +1579,7 @@ func (x *BattleCreateServerResp) String() string {
func (*BattleCreateServerResp) ProtoMessage() {} func (*BattleCreateServerResp) ProtoMessage() {}
func (x *BattleCreateServerResp) ProtoReflect() protoreflect.Message { func (x *BattleCreateServerResp) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[19] mi := &file_battle_battle_msg_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1496,7 +1592,7 @@ func (x *BattleCreateServerResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleCreateServerResp.ProtoReflect.Descriptor instead. // Deprecated: Use BattleCreateServerResp.ProtoReflect.Descriptor instead.
func (*BattleCreateServerResp) Descriptor() ([]byte, []int) { func (*BattleCreateServerResp) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{19} return file_battle_battle_msg_proto_rawDescGZIP(), []int{21}
} }
func (x *BattleCreateServerResp) GetIssucc() bool { func (x *BattleCreateServerResp) GetIssucc() bool {
@ -1520,7 +1616,7 @@ type BattleInCmdReq struct {
func (x *BattleInCmdReq) Reset() { func (x *BattleInCmdReq) Reset() {
*x = BattleInCmdReq{} *x = BattleInCmdReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[20] mi := &file_battle_battle_msg_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1533,7 +1629,7 @@ func (x *BattleInCmdReq) String() string {
func (*BattleInCmdReq) ProtoMessage() {} func (*BattleInCmdReq) ProtoMessage() {}
func (x *BattleInCmdReq) ProtoReflect() protoreflect.Message { func (x *BattleInCmdReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[20] mi := &file_battle_battle_msg_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1546,7 +1642,7 @@ func (x *BattleInCmdReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleInCmdReq.ProtoReflect.Descriptor instead. // Deprecated: Use BattleInCmdReq.ProtoReflect.Descriptor instead.
func (*BattleInCmdReq) Descriptor() ([]byte, []int) { func (*BattleInCmdReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{20} return file_battle_battle_msg_proto_rawDescGZIP(), []int{22}
} }
func (x *BattleInCmdReq) GetBattleid() string { func (x *BattleInCmdReq) GetBattleid() string {
@ -1584,7 +1680,7 @@ type BattleInCmdResp struct {
func (x *BattleInCmdResp) Reset() { func (x *BattleInCmdResp) Reset() {
*x = BattleInCmdResp{} *x = BattleInCmdResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[21] mi := &file_battle_battle_msg_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1597,7 +1693,7 @@ func (x *BattleInCmdResp) String() string {
func (*BattleInCmdResp) ProtoMessage() {} func (*BattleInCmdResp) ProtoMessage() {}
func (x *BattleInCmdResp) ProtoReflect() protoreflect.Message { func (x *BattleInCmdResp) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[21] mi := &file_battle_battle_msg_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1610,7 +1706,7 @@ func (x *BattleInCmdResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleInCmdResp.ProtoReflect.Descriptor instead. // Deprecated: Use BattleInCmdResp.ProtoReflect.Descriptor instead.
func (*BattleInCmdResp) Descriptor() ([]byte, []int) { func (*BattleInCmdResp) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{21} return file_battle_battle_msg_proto_rawDescGZIP(), []int{23}
} }
func (x *BattleInCmdResp) GetBattleid() string { func (x *BattleInCmdResp) GetBattleid() string {
@ -1647,7 +1743,7 @@ type BattleOutCmdPush struct {
func (x *BattleOutCmdPush) Reset() { func (x *BattleOutCmdPush) Reset() {
*x = BattleOutCmdPush{} *x = BattleOutCmdPush{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[22] mi := &file_battle_battle_msg_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1660,7 +1756,7 @@ func (x *BattleOutCmdPush) String() string {
func (*BattleOutCmdPush) ProtoMessage() {} func (*BattleOutCmdPush) ProtoMessage() {}
func (x *BattleOutCmdPush) ProtoReflect() protoreflect.Message { func (x *BattleOutCmdPush) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[22] mi := &file_battle_battle_msg_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1673,7 +1769,7 @@ func (x *BattleOutCmdPush) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleOutCmdPush.ProtoReflect.Descriptor instead. // Deprecated: Use BattleOutCmdPush.ProtoReflect.Descriptor instead.
func (*BattleOutCmdPush) Descriptor() ([]byte, []int) { func (*BattleOutCmdPush) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{22} return file_battle_battle_msg_proto_rawDescGZIP(), []int{24}
} }
func (x *BattleOutCmdPush) GetBattleid() string { func (x *BattleOutCmdPush) GetBattleid() string {
@ -1703,7 +1799,7 @@ type BattleFinishPush struct {
func (x *BattleFinishPush) Reset() { func (x *BattleFinishPush) Reset() {
*x = BattleFinishPush{} *x = BattleFinishPush{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[23] mi := &file_battle_battle_msg_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1716,7 +1812,7 @@ func (x *BattleFinishPush) String() string {
func (*BattleFinishPush) ProtoMessage() {} func (*BattleFinishPush) ProtoMessage() {}
func (x *BattleFinishPush) ProtoReflect() protoreflect.Message { func (x *BattleFinishPush) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[23] mi := &file_battle_battle_msg_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1729,7 +1825,7 @@ func (x *BattleFinishPush) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleFinishPush.ProtoReflect.Descriptor instead. // Deprecated: Use BattleFinishPush.ProtoReflect.Descriptor instead.
func (*BattleFinishPush) Descriptor() ([]byte, []int) { func (*BattleFinishPush) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{23} return file_battle_battle_msg_proto_rawDescGZIP(), []int{25}
} }
func (x *BattleFinishPush) GetBattleid() string { func (x *BattleFinishPush) GetBattleid() string {
@ -1759,7 +1855,7 @@ type BattleConcedeReq struct {
func (x *BattleConcedeReq) Reset() { func (x *BattleConcedeReq) Reset() {
*x = BattleConcedeReq{} *x = BattleConcedeReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[24] mi := &file_battle_battle_msg_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1772,7 +1868,7 @@ func (x *BattleConcedeReq) String() string {
func (*BattleConcedeReq) ProtoMessage() {} func (*BattleConcedeReq) ProtoMessage() {}
func (x *BattleConcedeReq) ProtoReflect() protoreflect.Message { func (x *BattleConcedeReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[24] mi := &file_battle_battle_msg_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1785,7 +1881,7 @@ func (x *BattleConcedeReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleConcedeReq.ProtoReflect.Descriptor instead. // Deprecated: Use BattleConcedeReq.ProtoReflect.Descriptor instead.
func (*BattleConcedeReq) Descriptor() ([]byte, []int) { func (*BattleConcedeReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{24} return file_battle_battle_msg_proto_rawDescGZIP(), []int{26}
} }
func (x *BattleConcedeReq) GetBattleid() string { func (x *BattleConcedeReq) GetBattleid() string {
@ -1814,7 +1910,7 @@ type BattleConcedeResp struct {
func (x *BattleConcedeResp) Reset() { func (x *BattleConcedeResp) Reset() {
*x = BattleConcedeResp{} *x = BattleConcedeResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[25] mi := &file_battle_battle_msg_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1827,7 +1923,7 @@ func (x *BattleConcedeResp) String() string {
func (*BattleConcedeResp) ProtoMessage() {} func (*BattleConcedeResp) ProtoMessage() {}
func (x *BattleConcedeResp) ProtoReflect() protoreflect.Message { func (x *BattleConcedeResp) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[25] mi := &file_battle_battle_msg_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1840,7 +1936,7 @@ func (x *BattleConcedeResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleConcedeResp.ProtoReflect.Descriptor instead. // Deprecated: Use BattleConcedeResp.ProtoReflect.Descriptor instead.
func (*BattleConcedeResp) Descriptor() ([]byte, []int) { func (*BattleConcedeResp) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{25} return file_battle_battle_msg_proto_rawDescGZIP(), []int{27}
} }
func (x *BattleConcedeResp) GetIssucc() bool { func (x *BattleConcedeResp) GetIssucc() bool {
@ -1864,7 +1960,7 @@ type BattleStateInfo struct {
func (x *BattleStateInfo) Reset() { func (x *BattleStateInfo) Reset() {
*x = BattleStateInfo{} *x = BattleStateInfo{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[26] mi := &file_battle_battle_msg_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1877,7 +1973,7 @@ func (x *BattleStateInfo) String() string {
func (*BattleStateInfo) ProtoMessage() {} func (*BattleStateInfo) ProtoMessage() {}
func (x *BattleStateInfo) ProtoReflect() protoreflect.Message { func (x *BattleStateInfo) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[26] mi := &file_battle_battle_msg_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1890,7 +1986,7 @@ func (x *BattleStateInfo) ProtoReflect() protoreflect.Message {
// Deprecated: Use BattleStateInfo.ProtoReflect.Descriptor instead. // Deprecated: Use BattleStateInfo.ProtoReflect.Descriptor instead.
func (*BattleStateInfo) Descriptor() ([]byte, []int) { func (*BattleStateInfo) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{26} return file_battle_battle_msg_proto_rawDescGZIP(), []int{28}
} }
func (x *BattleStateInfo) GetInfo() *BattleInfo { func (x *BattleStateInfo) GetInfo() *BattleInfo {
@ -1931,7 +2027,7 @@ type StroneBattleReq struct {
func (x *StroneBattleReq) Reset() { func (x *StroneBattleReq) Reset() {
*x = StroneBattleReq{} *x = StroneBattleReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_battle_battle_msg_proto_msgTypes[27] mi := &file_battle_battle_msg_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -1944,7 +2040,7 @@ func (x *StroneBattleReq) String() string {
func (*StroneBattleReq) ProtoMessage() {} func (*StroneBattleReq) ProtoMessage() {}
func (x *StroneBattleReq) ProtoReflect() protoreflect.Message { func (x *StroneBattleReq) ProtoReflect() protoreflect.Message {
mi := &file_battle_battle_msg_proto_msgTypes[27] mi := &file_battle_battle_msg_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -1957,7 +2053,7 @@ func (x *StroneBattleReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use StroneBattleReq.ProtoReflect.Descriptor instead. // Deprecated: Use StroneBattleReq.ProtoReflect.Descriptor instead.
func (*StroneBattleReq) Descriptor() ([]byte, []int) { func (*StroneBattleReq) Descriptor() ([]byte, []int) {
return file_battle_battle_msg_proto_rawDescGZIP(), []int{27} return file_battle_battle_msg_proto_rawDescGZIP(), []int{29}
} }
func (x *StroneBattleReq) GetDiBuff() []*DySkillData { func (x *StroneBattleReq) GetDiBuff() []*DySkillData {
@ -2185,75 +2281,82 @@ var file_battle_battle_msg_proto_rawDesc = []byte{
0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a,
0x07, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x07, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x2e, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x2f, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x74,
0x65, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x72, 0x65, 0x70,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x47, 0x65, 0x74, 0x49,
0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x0a, 0x15, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x47, 0x65, 0x74, 0x49,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x65, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49,
0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x5c, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x15, 0x42, 0x61, 0x74,
0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x02, 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65,
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a,
0x65, 0x43, 0x6d, 0x64, 0x52, 0x02, 0x69, 0x6e, 0x22, 0x61, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x5c, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52,
0x02, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x4c, 0x0a, 0x10, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12,
0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63,
0x6d, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x43, 0x6d, 0x64, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x22, 0x48, 0x0a, 0x10, 0x42, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a,
0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e,
0x53, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x53,
0x69, 0x64, 0x65, 0x22, 0x42, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
0x63, 0x65, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0x2b, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20,
0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52,
0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x02, 0x69, 0x6e, 0x22, 0x61, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43,
0x73, 0x75, 0x63, 0x63, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a,
0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x16,
0x43, 0x6d, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x12, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x4c, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x28, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x4f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61,
0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x09, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61,
0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x22, 0xf2, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20,
0x72, 0x6f, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52,
0x06, 0x64, 0x69, 0x42, 0x75, 0x66, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x03, 0x63, 0x6d, 0x64, 0x22, 0x48, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69,
0x44, 0x79, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x64, 0x69, 0x42, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74,
0x75, 0x66, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74,
0x03, 0x28, 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x18,
0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x22, 0x42,
0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x64, 0x65, 0x52,
0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01,
0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x05, 0x42, 0x74, 0x79, 0x70, 0x65, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x12,
0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x79, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69,
0x70, 0x65, 0x52, 0x05, 0x42, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x50, 0x74, 0x79, 0x64, 0x65, 0x22, 0x2b, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x63,
0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63,
0x79, 0x70, 0x65, 0x52, 0x05, 0x50, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22,
0x74, 0x74, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x82, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49,
0x52, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x06, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04,
0x69, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d,
0x64, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x09, 0x69, 0x6e,
0x70, 0x75, 0x74, 0x43, 0x6d, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74,
0x43, 0x6d, 0x64, 0x73, 0x22, 0xf2, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x6f, 0x6e, 0x65, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x06, 0x64, 0x69, 0x42, 0x75,
0x66, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x79, 0x53, 0x6b, 0x69,
0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x64, 0x69, 0x42, 0x75, 0x66, 0x66, 0x12, 0x16,
0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06,
0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x6f, 0x6c,
0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70,
0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f,
0x73, 0x12, 0x21, 0x0a, 0x05, 0x42, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x42,
0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x50, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05,
0x50, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -2268,7 +2371,7 @@ func file_battle_battle_msg_proto_rawDescGZIP() []byte {
return file_battle_battle_msg_proto_rawDescData return file_battle_battle_msg_proto_rawDescData
} }
var file_battle_battle_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_battle_battle_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_battle_battle_msg_proto_goTypes = []interface{}{ var file_battle_battle_msg_proto_goTypes = []interface{}{
(*LineData)(nil), // 0: LineData (*LineData)(nil), // 0: LineData
(*LineUp)(nil), // 1: LineUp (*LineUp)(nil), // 1: LineUp
@ -2286,72 +2389,76 @@ var file_battle_battle_msg_proto_goTypes = []interface{}{
(*BattleReport)(nil), // 13: BattleReport (*BattleReport)(nil), // 13: BattleReport
(*BattleRpcMessage)(nil), // 14: BattleRpcMessage (*BattleRpcMessage)(nil), // 14: BattleRpcMessage
(*BattleCheckResults)(nil), // 15: BattleCheckResults (*BattleCheckResults)(nil), // 15: BattleCheckResults
(*BattleGetInfoReq)(nil), // 16: BattleGetInfoReq (*BattleRunReq)(nil), // 16: BattleRunReq
(*BattleGetInfoResp)(nil), // 17: BattleGetInfoResp (*BattleRunResp)(nil), // 17: BattleRunResp
(*BattleCreateServerReq)(nil), // 18: BattleCreateServerReq (*BattleGetInfoReq)(nil), // 18: BattleGetInfoReq
(*BattleCreateServerResp)(nil), // 19: BattleCreateServerResp (*BattleGetInfoResp)(nil), // 19: BattleGetInfoResp
(*BattleInCmdReq)(nil), // 20: BattleInCmdReq (*BattleCreateServerReq)(nil), // 20: BattleCreateServerReq
(*BattleInCmdResp)(nil), // 21: BattleInCmdResp (*BattleCreateServerResp)(nil), // 21: BattleCreateServerResp
(*BattleOutCmdPush)(nil), // 22: BattleOutCmdPush (*BattleInCmdReq)(nil), // 22: BattleInCmdReq
(*BattleFinishPush)(nil), // 23: BattleFinishPush (*BattleInCmdResp)(nil), // 23: BattleInCmdResp
(*BattleConcedeReq)(nil), // 24: BattleConcedeReq (*BattleOutCmdPush)(nil), // 24: BattleOutCmdPush
(*BattleConcedeResp)(nil), // 25: BattleConcedeResp (*BattleFinishPush)(nil), // 25: BattleFinishPush
(*BattleStateInfo)(nil), // 26: BattleStateInfo (*BattleConcedeReq)(nil), // 26: BattleConcedeReq
(*StroneBattleReq)(nil), // 27: StroneBattleReq (*BattleConcedeResp)(nil), // 27: BattleConcedeResp
(PlayType)(0), // 28: PlayType (*BattleStateInfo)(nil), // 28: BattleStateInfo
(*DBHero)(nil), // 29: DBHero (*StroneBattleReq)(nil), // 29: StroneBattleReq
(*BattleRole)(nil), // 30: BattleRole (PlayType)(0), // 30: PlayType
(BattleType)(0), // 31: BattleType (*DBHero)(nil), // 31: DBHero
(*DBBattleFormt)(nil), // 32: DBBattleFormt (*BattleRole)(nil), // 32: BattleRole
(*anypb.Any)(nil), // 33: google.protobuf.Any (BattleType)(0), // 33: BattleType
(*DySkillData)(nil), // 34: DySkillData (*DBBattleFormt)(nil), // 34: DBBattleFormt
(*anypb.Any)(nil), // 35: google.protobuf.Any
(*DySkillData)(nil), // 36: DySkillData
} }
var file_battle_battle_msg_proto_depIdxs = []int32{ var file_battle_battle_msg_proto_depIdxs = []int32{
1, // 0: LineData.line:type_name -> LineUp 1, // 0: LineData.line:type_name -> LineUp
28, // 1: BattleEVEReq.ptype:type_name -> PlayType 30, // 1: BattleEVEReq.ptype:type_name -> PlayType
2, // 2: BattleEVEReq.format:type_name -> BattleFormation 2, // 2: BattleEVEReq.format:type_name -> BattleFormation
28, // 3: BattlePVEReq.ptype:type_name -> PlayType 30, // 3: BattlePVEReq.ptype:type_name -> PlayType
2, // 4: BattlePVEReq.format:type_name -> BattleFormation 2, // 4: BattlePVEReq.format:type_name -> BattleFormation
28, // 5: BattleHeroPVEReq.ptype:type_name -> PlayType 30, // 5: BattleHeroPVEReq.ptype:type_name -> PlayType
6, // 6: BattleHeroPVEReq.redformat:type_name -> PVPFormation 6, // 6: BattleHeroPVEReq.redformat:type_name -> PVPFormation
29, // 7: PVPFormation.format:type_name -> DBHero 31, // 7: PVPFormation.format:type_name -> DBHero
28, // 8: BattlePVPReq.ptype:type_name -> PlayType 30, // 8: BattlePVPReq.ptype:type_name -> PlayType
6, // 9: BattlePVPReq.redformat:type_name -> PVPFormation 6, // 9: BattlePVPReq.redformat:type_name -> PVPFormation
6, // 10: BattlePVPReq.buleformat:type_name -> PVPFormation 6, // 10: BattlePVPReq.buleformat:type_name -> PVPFormation
28, // 11: BattleRTPVPReq.ptype:type_name -> PlayType 30, // 11: BattleRTPVPReq.ptype:type_name -> PlayType
2, // 12: BattleRTPVPReq.redformat:type_name -> BattleFormation 2, // 12: BattleRTPVPReq.redformat:type_name -> BattleFormation
2, // 13: BattleRTPVPReq.bulefformat:type_name -> BattleFormation 2, // 13: BattleRTPVPReq.bulefformat:type_name -> BattleFormation
28, // 14: BattleLPVEReq.ptype:type_name -> PlayType 30, // 14: BattleLPVEReq.ptype:type_name -> PlayType
2, // 15: BattleLPVEReq.format:type_name -> BattleFormation 2, // 15: BattleLPVEReq.format:type_name -> BattleFormation
30, // 16: BattleLPVEReq.monsters:type_name -> BattleRole 32, // 16: BattleLPVEReq.monsters:type_name -> BattleRole
28, // 17: BattlePVBReq.ptype:type_name -> PlayType 30, // 17: BattlePVBReq.ptype:type_name -> PlayType
2, // 18: BattlePVBReq.format:type_name -> BattleFormation 2, // 18: BattlePVBReq.format:type_name -> BattleFormation
31, // 19: BattleInfo.btype:type_name -> BattleType 33, // 19: BattleInfo.btype:type_name -> BattleType
28, // 20: BattleInfo.ptype:type_name -> PlayType 30, // 20: BattleInfo.ptype:type_name -> PlayType
32, // 21: BattleInfo.redflist:type_name -> DBBattleFormt 34, // 21: BattleInfo.redflist:type_name -> DBBattleFormt
32, // 22: BattleInfo.buleflist:type_name -> DBBattleFormt 34, // 22: BattleInfo.buleflist:type_name -> DBBattleFormt
11, // 23: BattleReport.info:type_name -> BattleInfo 11, // 23: BattleReport.info:type_name -> BattleInfo
12, // 24: BattleReport.incmd:type_name -> BattleCmd 12, // 24: BattleReport.incmd:type_name -> BattleCmd
12, // 25: BattleReport.outcmd:type_name -> BattleCmd 12, // 25: BattleReport.outcmd:type_name -> BattleCmd
30, // 26: BattleReport.alive:type_name -> BattleRole 32, // 26: BattleReport.alive:type_name -> BattleRole
33, // 27: BattleRpcMessage.data:type_name -> google.protobuf.Any 35, // 27: BattleRpcMessage.data:type_name -> google.protobuf.Any
26, // 28: BattleGetInfoResp.info:type_name -> BattleStateInfo 11, // 28: BattleRunReq.info:type_name -> BattleInfo
11, // 29: BattleCreateServerReq.info:type_name -> BattleInfo 13, // 29: BattleRunResp.reports:type_name -> BattleReport
12, // 30: BattleInCmdReq.in:type_name -> BattleCmd 28, // 30: BattleGetInfoResp.info:type_name -> BattleStateInfo
12, // 31: BattleInCmdResp.in:type_name -> BattleCmd 11, // 31: BattleCreateServerReq.info:type_name -> BattleInfo
12, // 32: BattleOutCmdPush.cmd:type_name -> BattleCmd 12, // 32: BattleInCmdReq.in:type_name -> BattleCmd
11, // 33: BattleStateInfo.info:type_name -> BattleInfo 12, // 33: BattleInCmdResp.in:type_name -> BattleCmd
12, // 34: BattleStateInfo.outCmds:type_name -> BattleCmd 12, // 34: BattleOutCmdPush.cmd:type_name -> BattleCmd
12, // 35: BattleStateInfo.inputCmds:type_name -> BattleCmd 11, // 35: BattleStateInfo.info:type_name -> BattleInfo
34, // 36: StroneBattleReq.diBuff:type_name -> DySkillData 12, // 36: BattleStateInfo.outCmds:type_name -> BattleCmd
30, // 37: StroneBattleReq.role:type_name -> BattleRole 12, // 37: BattleStateInfo.inputCmds:type_name -> BattleCmd
31, // 38: StroneBattleReq.Btype:type_name -> BattleType 36, // 38: StroneBattleReq.diBuff:type_name -> DySkillData
28, // 39: StroneBattleReq.Ptype:type_name -> PlayType 32, // 39: StroneBattleReq.role:type_name -> BattleRole
40, // [40:40] is the sub-list for method output_type 33, // 40: StroneBattleReq.Btype:type_name -> BattleType
40, // [40:40] is the sub-list for method input_type 30, // 41: StroneBattleReq.Ptype:type_name -> PlayType
40, // [40:40] is the sub-list for extension type_name 42, // [42:42] is the sub-list for method output_type
40, // [40:40] is the sub-list for extension extendee 42, // [42:42] is the sub-list for method input_type
0, // [0:40] is the sub-list for field type_name 42, // [42:42] is the sub-list for extension type_name
42, // [42:42] is the sub-list for extension extendee
0, // [0:42] is the sub-list for field type_name
} }
func init() { file_battle_battle_msg_proto_init() } func init() { file_battle_battle_msg_proto_init() }
@ -2555,7 +2662,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleGetInfoReq); i { switch v := v.(*BattleRunReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2567,7 +2674,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleGetInfoResp); i { switch v := v.(*BattleRunResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2579,7 +2686,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleCreateServerReq); i { switch v := v.(*BattleGetInfoReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2591,7 +2698,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleCreateServerResp); i { switch v := v.(*BattleGetInfoResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2603,7 +2710,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleInCmdReq); i { switch v := v.(*BattleCreateServerReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2615,7 +2722,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleInCmdResp); i { switch v := v.(*BattleCreateServerResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2627,7 +2734,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleOutCmdPush); i { switch v := v.(*BattleInCmdReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2639,7 +2746,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleFinishPush); i { switch v := v.(*BattleInCmdResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2651,7 +2758,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleConcedeReq); i { switch v := v.(*BattleOutCmdPush); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2663,7 +2770,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleConcedeResp); i { switch v := v.(*BattleFinishPush); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2675,7 +2782,7 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleStateInfo); i { switch v := v.(*BattleConcedeReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -2687,6 +2794,30 @@ func file_battle_battle_msg_proto_init() {
} }
} }
file_battle_battle_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { file_battle_battle_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleConcedeResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_battle_battle_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BattleStateInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_battle_battle_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StroneBattleReq); i { switch v := v.(*StroneBattleReq); i {
case 0: case 0:
return &v.state return &v.state
@ -2705,7 +2836,7 @@ func file_battle_battle_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_battle_battle_msg_proto_rawDesc, RawDescriptor: file_battle_battle_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 28, NumMessages: 30,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -334,7 +334,8 @@ type HeroStrengthenUplvResp struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Hero *DBHero `protobuf:"bytes,1,opt,name=hero,proto3" json:"hero"` // 英雄对象 Hero *DBHero `protobuf:"bytes,1,opt,name=hero,proto3" json:"hero"` // 英雄对象
Atno []*UserAtno `protobuf:"bytes,2,rep,name=atno,proto3" json:"atno"` // 奖励列表
} }
func (x *HeroStrengthenUplvResp) Reset() { func (x *HeroStrengthenUplvResp) Reset() {
@ -376,6 +377,13 @@ func (x *HeroStrengthenUplvResp) GetHero() *DBHero {
return nil return nil
} }
func (x *HeroStrengthenUplvResp) GetAtno() []*UserAtno {
if x != nil {
return x.Atno
}
return nil
}
// 卡牌升星 // 卡牌升星
type HeroStrengthenUpStarReq struct { type HeroStrengthenUpStarReq struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -2376,194 +2384,196 @@ var file_hero_hero_msg_proto_rawDesc = []byte{
0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 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, 0x35, 0x0a, 0x16, 0x48, 0x65, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x16, 0x48, 0x65,
0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x6c, 0x76, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x6c, 0x76,
0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72,
0x6f, 0x22, 0x37, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x6f, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f,
0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x22, 0x37, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68,
0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x37, 0x0a, 0x18, 0x48, 0x65, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68,
0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x37, 0x0a, 0x18, 0x48, 0x65, 0x72,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61,
0x65, 0x72, 0x6f, 0x22, 0xaa, 0x01, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20,
0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x72, 0x6f, 0x22, 0xaa, 0x01, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e,
0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x37, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12,
0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x48, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x12, 0x37, 0x0a,
0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x48, 0x65,
0x79, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 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,
0x38, 0x0a, 0x19, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65,
0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04,
0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48,
0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0d, 0x48, 0x65, 0x72,
0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65,
0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68,
0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x50, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f,
0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65,
0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72,
0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74,
0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xaa, 0x02, 0x0a, 0x10, 0x48,
0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12,
0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70,
0x65, 0x72, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x41, 0x64, 0x64,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61,
0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72,
0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4c,
0x6f, 0x63, 0x6b, 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, 0x22, 0x2b,
0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b,
0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x77, 0x0a, 0x13, 0x48,
0x65, 0x72, 0x6f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52,
0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x69, 0x6e, 0x66, 0x69,
0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x43,
0x6f, 0x69, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x02, 0x6c, 0x76, 0x22, 0x33, 0x0a, 0x14, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x65, 0x74, 0x53,
0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04,
0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48,
0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x65, 0x0a, 0x0f, 0x48, 0x65, 0x72,
0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08,
0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61,
0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65,
0x22, 0x29, 0x0a, 0x08, 0x41, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x04,
0x61, 0x74, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65,
0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x22, 0x77, 0x0a, 0x10, 0x48,
0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e,
0x41, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d,
0x0a, 0x04, 0x77, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55,
0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x77, 0x69, 0x73, 0x68, 0x12, 0x25, 0x0a,
0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c,
0x69, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43,
0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x15, 0x48,
0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72,
0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x0d,
0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68,
0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f,
0x6e, 0x52, 0x65, 0x71, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x73, 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,
0x22, 0x38, 0x0a, 0x19, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x48, 0x65,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22,
0x72, 0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x3b, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18,
0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x44, 0x22, 0x50, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61,
0x6f, 0x41, 0x77, 0x61, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x22, 0x5e, 0x0a, 0x12,
0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x52,
0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01,
0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14,
0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xaa, 0x02, 0x0a, 0x10, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x03,
0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x13,
0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x52,
0x65, 0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x48, 0x65, 0x72, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20,
0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x72, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65,
0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61,
0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61,
0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x48, 0x65, 0x72, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61,
0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x41, 0x64, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05,
0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x62, 0x6a,
0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x22, 0x42, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x12, 0x18,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x0a, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x43,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x79, 0x43,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x79, 0x52,
0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x6f,
0x2b, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65,
0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x04, 0x20,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x77, 0x0a, 0x13, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x22, 0x2a, 0x0a, 0x10, 0x48,
0x48, 0x65, 0x72, 0x6f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12,
0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x69, 0x6e, 0x66, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
0x69, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x65, 0x72, 0x6f, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x50,
0x43, 0x6f, 0x69, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a,
0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x09, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x52, 0x09, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62,
0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x41, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, 0x41,
0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x33, 0x0a, 0x14, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x65, 0x74, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x65,
0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a,
0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x05, 0x70, 0x65, 0x61, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x48,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x65, 0x0a, 0x0f, 0x48, 0x65, 0x65, 0x72, 0x6f, 0x50, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65,
0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x73, 0x70, 0x2e, 0x50, 0x65, 0x61, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70,
0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x03,
0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61,
0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x74, 0x6e, 0x6f, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x65, 0x61, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72,
0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x65, 0x22, 0x29, 0x0a, 0x08, 0x41, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x48, 0x0a,
0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f,
0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x22, 0x77, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18,
0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12,
0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x2e, 0x41, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x41,
0x1d, 0x0a, 0x04, 0x77, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a,
0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x77, 0x69, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65,
0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x43, 0x61,
0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x10, 0x48,
0x6c, 0x69, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x65, 0x72, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x15, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06,
0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
0x0d, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x16, 0x78, 0x22, 0x5a, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43,
0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72,
0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1d,
0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x41,
0x52, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x22, 0x13, 0x0a,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f,
0x01, 0x22, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63,
0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x48, 0x6f, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x74, 0x6f, 0x33,
0x22, 0x3b, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x22, 0x5e, 0x0a,
0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e,
0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12,
0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x58, 0x0a,
0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e,
0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a,
0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x62,
0x6a, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e,
0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65,
0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48,
0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65,
0x74, 0x22, 0x42, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x12,
0x18, 0x0a, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x79,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x79,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x79,
0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x12, 0x16, 0x0a, 0x06,
0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e,
0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x22, 0x2a, 0x0a, 0x10,
0x48, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x65, 0x74, 0x50, 0x75, 0x73, 0x68,
0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c,
0x0a, 0x09, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x62, 0x41, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62,
0x41, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x50,
0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35,
0x0a, 0x05, 0x70, 0x65, 0x61, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
0x48, 0x65, 0x72, 0x6f, 0x50, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52,
0x65, 0x73, 0x70, 0x2e, 0x50, 0x65, 0x61, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
0x70, 0x65, 0x61, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04,
0x61, 0x74, 0x6e, 0x6f, 0x1a, 0x38, 0x0a, 0x0a, 0x50, 0x65, 0x61, 0x63, 0x68, 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, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x48,
0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f,
0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68,
0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72,
0x6f, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x43,
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x10,
0x48, 0x65, 0x72, 0x6f, 0x53, 0x61, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x53,
0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x22, 0x5a, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12,
0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e,
0x41, 0x74, 0x6e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x22, 0x13,
0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x52, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x72, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -2642,36 +2652,37 @@ var file_hero_hero_msg_proto_depIdxs = []int32{
51, // 1: HeroListResp.list:type_name -> DBHero 51, // 1: HeroListResp.list:type_name -> DBHero
45, // 2: HeroStrengthenUplvReq.item:type_name -> HeroStrengthenUplvReq.ItemEntry 45, // 2: HeroStrengthenUplvReq.item:type_name -> HeroStrengthenUplvReq.ItemEntry
51, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero 51, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
51, // 4: HeroStrengthenUpStarResp.hero:type_name -> DBHero 52, // 4: HeroStrengthenUplvResp.atno:type_name -> UserAtno
46, // 5: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry 51, // 5: HeroStrengthenUpStarResp.hero:type_name -> DBHero
51, // 6: HeroStrengthenUpSkillResp.hero:type_name -> DBHero 46, // 6: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry
51, // 7: HeroAwakenResp.hero:type_name -> DBHero 51, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
52, // 8: HeroAwakenResp.reward:type_name -> UserAtno 51, // 8: HeroAwakenResp.hero:type_name -> DBHero
47, // 9: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry 52, // 9: HeroAwakenResp.reward:type_name -> UserAtno
48, // 10: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry 47, // 10: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
51, // 11: HeroLockResp.hero:type_name -> DBHero 48, // 11: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
51, // 12: HeroGetSpecifiedResp.hero:type_name -> DBHero 51, // 12: HeroLockResp.hero:type_name -> DBHero
52, // 13: AtnoData.atno:type_name -> UserAtno 51, // 13: HeroGetSpecifiedResp.hero:type_name -> DBHero
19, // 14: HeroDrawCardResp.data:type_name -> AtnoData 52, // 14: AtnoData.atno:type_name -> UserAtno
52, // 15: HeroDrawCardResp.wish:type_name -> UserAtno 19, // 15: HeroDrawCardResp.data:type_name -> AtnoData
53, // 16: HeroDrawCardResp.record:type_name -> DBHeroRecord 52, // 16: HeroDrawCardResp.wish:type_name -> UserAtno
51, // 17: HeroChangePush.list:type_name -> DBHero 53, // 17: HeroDrawCardResp.record:type_name -> DBHeroRecord
53, // 18: HeroDrawCardFloorResp.record:type_name -> DBHeroRecord 51, // 18: HeroChangePush.list:type_name -> DBHero
49, // 19: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry 53, // 19: HeroDrawCardFloorResp.record:type_name -> DBHeroRecord
54, // 20: HeroTalentListResp.telnet:type_name -> DBHeroTalent 49, // 20: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry
54, // 21: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent 54, // 21: HeroTalentListResp.telnet:type_name -> DBHeroTalent
54, // 22: HeroTalentResetResp.telnet:type_name -> DBHeroTalent 54, // 22: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent
50, // 23: HeroPeachRewardResp.peach:type_name -> HeroPeachRewardResp.PeachEntry 54, // 23: HeroTalentResetResp.telnet:type_name -> DBHeroTalent
52, // 24: HeroPeachRewardResp.atno:type_name -> UserAtno 50, // 24: HeroPeachRewardResp.peach:type_name -> HeroPeachRewardResp.PeachEntry
53, // 25: HeroSaveCardResp.record:type_name -> DBHeroRecord 52, // 25: HeroPeachRewardResp.atno:type_name -> UserAtno
53, // 26: HeroSelectCardResp.record:type_name -> DBHeroRecord 53, // 26: HeroSaveCardResp.record:type_name -> DBHeroRecord
19, // 27: HeroSelectCardResp.atno:type_name -> AtnoData 53, // 27: HeroSelectCardResp.record:type_name -> DBHeroRecord
55, // 28: HeroDrawRecordResp.record:type_name -> DBHeroDrawRecord 19, // 28: HeroSelectCardResp.atno:type_name -> AtnoData
29, // [29:29] is the sub-list for method output_type 55, // 29: HeroDrawRecordResp.record:type_name -> DBHeroDrawRecord
29, // [29:29] is the sub-list for method input_type 30, // [30:30] is the sub-list for method output_type
29, // [29:29] is the sub-list for extension type_name 30, // [30:30] is the sub-list for method input_type
29, // [29:29] is the sub-list for extension extendee 30, // [30:30] is the sub-list for extension type_name
0, // [0:29] is the sub-list for field type_name 30, // [30:30] is the sub-list for extension extendee
0, // [0:30] is the sub-list for field type_name
} }
func init() { file_hero_hero_msg_proto_init() } func init() { file_hero_hero_msg_proto_init() }

View File

@ -33,6 +33,7 @@ type GameBuzkashiMountData struct {
Csubtime int32 Csubtime int32
Energyrecover int32 Energyrecover int32
Maxenergy int32 Maxenergy int32
Offsetspeed float32
} }
const TypeId_GameBuzkashiMountData = 1598069936 const TypeId_GameBuzkashiMountData = 1598069936
@ -77,6 +78,7 @@ func (_v *GameBuzkashiMountData)Deserialize(_buf map[string]interface{}) (err er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["csubtime"].(float64); !_ok_ { err = errors.New("csubtime error"); return }; _v.Csubtime = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["csubtime"].(float64); !_ok_ { err = errors.New("csubtime error"); return }; _v.Csubtime = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["energyrecover"].(float64); !_ok_ { err = errors.New("energyrecover error"); return }; _v.Energyrecover = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["energyrecover"].(float64); !_ok_ { err = errors.New("energyrecover error"); return }; _v.Energyrecover = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxenergy"].(float64); !_ok_ { err = errors.New("maxenergy error"); return }; _v.Maxenergy = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxenergy"].(float64); !_ok_ { err = errors.New("maxenergy error"); return }; _v.Maxenergy = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["offsetspeed"].(float64); !_ok_ { err = errors.New("offsetspeed error"); return }; _v.Offsetspeed = float32(_tempNum_) }
return return
} }

View File

@ -14,6 +14,7 @@ type GameConsumeHeroData struct {
Key string Key string
Type int32 Type int32
Herocolor int32 Herocolor int32
Skilldestructiontype int32
Herotitel string Herotitel string
Hero int32 Hero int32
Iconimg string Iconimg string
@ -47,6 +48,7 @@ func (_v *GameConsumeHeroData)Deserialize(_buf map[string]interface{}) (err erro
{ var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } } { var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["herocolor"].(float64); !_ok_ { err = errors.New("herocolor error"); return }; _v.Herocolor = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["herocolor"].(float64); !_ok_ { err = errors.New("herocolor error"); return }; _v.Herocolor = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skilldestructiontype"].(float64); !_ok_ { err = errors.New("skilldestructiontype error"); return }; _v.Skilldestructiontype = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["herotitel"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Herotitel error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Herotitel, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["herotitel"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Herotitel error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Herotitel, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero"].(float64); !_ok_ { err = errors.New("hero error"); return }; _v.Hero = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero"].(float64); !_ok_ { err = errors.New("hero error"); return }; _v.Hero = int32(_tempNum_) }
{ var _ok_ bool; if _v.Iconimg, _ok_ = _buf["iconimg"].(string); !_ok_ { err = errors.New("iconimg error"); return } } { var _ok_ bool; if _v.Iconimg, _ok_ = _buf["iconimg"].(string); !_ok_ { err = errors.New("iconimg error"); return } }

View File

@ -330,6 +330,7 @@ type Tables struct {
IntegralReward *GameIntegralReward IntegralReward *GameIntegralReward
IntegralCondition *GameIntegralCondition IntegralCondition *GameIntegralCondition
IntegralTime *GameIntegralTime IntegralTime *GameIntegralTime
Restore *GameRestore
CatchbugSetstage *GameCatchbugSetstage CatchbugSetstage *GameCatchbugSetstage
BuzkashiCombo *GameBuzkashiCombo BuzkashiCombo *GameBuzkashiCombo
} }
@ -2253,6 +2254,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.IntegralTime, err = NewGameIntegralTime(buf) ; err != nil { if tables.IntegralTime, err = NewGameIntegralTime(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_restore") ; err != nil {
return nil, err
}
if tables.Restore, err = NewGameRestore(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_catchbugsetstage") ; err != nil { if buf, err = loader("game_catchbugsetstage") ; err != nil {
return nil, err return nil, err
} }