diff --git a/bin/json/game_buzkashimount.json b/bin/json/game_buzkashimount.json index 7b7a2a5b7..c6be690c0 100644 --- a/bin/json/game_buzkashimount.json +++ b/bin/json/game_buzkashimount.json @@ -29,7 +29,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030001", @@ -61,7 +62,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030001", @@ -93,7 +95,8 @@ "caddtime": 10, "csubtime": 10, "energyrecover": 30, - "maxenergy": 100 + "maxenergy": 100, + "offsetspeed": 15 }, { "id": "20030002", @@ -125,7 +128,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030002", @@ -157,7 +161,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030002", @@ -189,7 +194,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 30, - "maxenergy": 100 + "maxenergy": 100, + "offsetspeed": 15 }, { "id": "20030003", @@ -221,7 +227,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030003", @@ -253,7 +260,8 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 0, - "maxenergy": 0 + "maxenergy": 0, + "offsetspeed": 0 }, { "id": "20030003", @@ -285,6 +293,7 @@ "caddtime": 0, "csubtime": 0, "energyrecover": 30, - "maxenergy": 100 + "maxenergy": 100, + "offsetspeed": 15 } ] \ No newline at end of file diff --git a/bin/json/game_consumehero.json b/bin/json/game_consumehero.json index 98f702633..7214ad867 100644 --- a/bin/json/game_consumehero.json +++ b/bin/json/game_consumehero.json @@ -3,6 +3,7 @@ "key": "33003", "type": 1, "herocolor": 1, + "skilldestructiontype": 2, "herotitel": { "key": "consume_consume_hero_herotitel_01", "text": "酒吧新人" @@ -61,6 +62,7 @@ "key": "44003", "type": 1, "herocolor": 1, + "skilldestructiontype": 2, "herotitel": { "key": "consume_consume_hero_herotitel_02", "text": "酒吧新人" @@ -119,6 +121,7 @@ "key": "43004", "type": 1, "herocolor": 1, + "skilldestructiontype": 1, "herotitel": { "key": "consume_consume_hero_herotitel_03", "text": "酒吧新人" @@ -177,6 +180,7 @@ "key": "13004", "type": 2, "herocolor": 2, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_04", "text": "老手" @@ -241,6 +245,7 @@ "key": "13005", "type": 2, "herocolor": 2, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_05", "text": "老手" @@ -305,6 +310,7 @@ "key": "15002", "type": 2, "herocolor": 2, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_06", "text": "老手" @@ -369,6 +375,7 @@ "key": "24001", "type": 2, "herocolor": 2, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_07", "text": "老手" @@ -433,6 +440,7 @@ "key": "25001", "type": 2, "herocolor": 3, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_08", "text": "靠谱的家伙" @@ -497,6 +505,7 @@ "key": "35001", "type": 2, "herocolor": 3, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_09", "text": "靠谱的家伙" @@ -561,6 +570,7 @@ "key": "44004", "type": 2, "herocolor": 3, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_10", "text": "靠谱的家伙" @@ -625,6 +635,7 @@ "key": "44006", "type": 2, "herocolor": 3, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_11", "text": "靠谱的家伙" @@ -689,6 +700,7 @@ "key": "45003", "type": 2, "herocolor": 4, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_12", "text": "身怀绝技" @@ -753,6 +765,7 @@ "key": "34007", "type": 2, "herocolor": 4, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_13", "text": "身怀绝技" @@ -817,6 +830,7 @@ "key": "45004", "type": 2, "herocolor": 4, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_14", "text": "身怀绝技" @@ -881,6 +895,7 @@ "key": "45001", "type": 2, "herocolor": 5, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_15", "text": "传奇牌手!" @@ -945,6 +960,7 @@ "key": "34006", "type": 2, "herocolor": 5, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_16", "text": "传奇牌手!" @@ -1009,6 +1025,7 @@ "key": "35003", "type": 2, "herocolor": 5, + "skilldestructiontype": 0, "herotitel": { "key": "consume_consume_hero_herotitel_17", "text": "传奇牌手!" diff --git a/bin/json/game_item.json b/bin/json/game_item.json index 55aef083d..0399bbc8c 100644 --- a/bin/json/game_item.json +++ b/bin/json/game_item.json @@ -1143,6 +1143,47 @@ "sale": [], "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", "name": { @@ -46384,5 +46425,99 @@ } ], "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 } ] \ No newline at end of file diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json index c3c126ccb..8820dca92 100644 --- a/bin/json/game_skillafteratk.json +++ b/bin/json/game_skillafteratk.json @@ -40331,8 +40331,8 @@ "TriggerAnim": "Passive", "Type": 8, "Argu": [ + 6, 1, - 1000, 1000 ], "FollowSK": [ diff --git a/comm/imodule.go b/comm/imodule.go index 302414dd2..9a9f4e1a2 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -112,7 +112,7 @@ type ( 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) @@ -332,6 +332,8 @@ type ( // 可以携带debuff 的战斗 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 { CreateCmd(session IUserSession, cmd string) (errdata *pb.ErrorData) diff --git a/modules/battle/module.go b/modules/battle/module.go index e77fdeeb0..767189ff5 100644 --- a/modules/battle/module.go +++ b/modules/battle/module.go @@ -690,3 +690,9 @@ func (this *Battle) CreateDebuffBattle(session comm.IUserSession, req *pb.Battle return } + +// 炮服务端战斗 +func (this *Battle) RunServerBattle(session comm.IUserSession, req *pb.BattleRunReq) (errdata *pb.ErrorData, record *pb.BattleRunResp) { + + return +} diff --git a/modules/hero/api_strengthenUplv.go b/modules/hero/api_strengthenUplv.go index d8ca9d981..4dbc794d9 100644 --- a/modules/hero/api_strengthenUplv.go +++ b/modules/hero/api_strengthenUplv.go @@ -28,6 +28,8 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren costGold int32 // 需要消耗的资源 _hero *pb.DBHero // 目标英雄 cost []*cfg.Gameatn // 消耗的道具 + award []*cfg.Gameatn + atno []*pb.UserAtno ) if errdata = this.StrengthenUplvCheck(session, req); errdata != nil { return @@ -86,15 +88,20 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren 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 } // 消耗金币 if errdata = this.module.ConsumeRes(session, cost, true); errdata != nil { //道具扣除 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) { //英雄升级 【玩家名称】已将【英雄名称】培养至60级! diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index ca92c26d5..8c3fd7cf3 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -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 ( tasks []*pb.BuriedParam changeupdate map[string]interface{} = make(map[string]interface{}) maxlvhero *pb.DBHero upwardconf *cfg.GameHeroLeveluprewardData upwardconfs []*cfg.GameHeroLeveluprewardData - upwardatns []*cfg.Gameatn err error ) curAddExp = make(map[string]int32, len(heros)) @@ -592,18 +591,18 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, heros []*pb.DBHero, 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) { if maxlvhero != nil { this.module.passon.HeroUpLv(session, maxlvhero.HeroID, maxlvhero.Lv) } 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 } diff --git a/modules/hero/module.go b/modules/hero/module.go index 9450f9801..bfba63eef 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -838,7 +838,7 @@ func (this *Hero) CheckPeachReward(session comm.IUserSession, ctime int64) { 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 ( ids []string = make([]string, 0) heros []*pb.DBHero @@ -862,7 +862,7 @@ func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp } 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 } @@ -877,7 +877,7 @@ func (this *Hero) AddHerosExp(session comm.IUserSession, heroObjs []string, exp 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 } changeHero = append(changeHero, heros...) diff --git a/modules/hunting/api_challengeover.go b/modules/hunting/api_challengeover.go index ac9cb1697..fdeddd370 100644 --- a/modules/hunting/api_challengeover.go +++ b/modules/hunting/api_challengeover.go @@ -29,6 +29,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) del []string // 自动出售的装备 atno []*pb.UserAtno // atno 类型 + award []*cfg.Gameatn //英雄升级奖励 res []*cfg.Gameatn // 最后获得的资源 oldDifficulty 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)) - if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil { - return - } + szAtno = append(szAtno, atno...) // 加经验 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 } + res = append(res, award...) + } + if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil { + return } - errdata = this.module.ModifyHuntingData(session.GetUserId(), mapData) // if atno, errdata = this.module.ModuleUser.ConsumePsAddExp(session, consumPs); errdata != nil { // return diff --git a/modules/integral/api_challengeover.go b/modules/integral/api_challengeover.go index 3c4cc2e05..9b00988df 100644 --- a/modules/integral/api_challengeover.go +++ b/modules/integral/api_challengeover.go @@ -23,6 +23,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.IntegralCh var ( update map[string]interface{} res []*cfg.Gameatn + award []*cfg.Gameatn first bool // 是否是首通 line []*pb.LineUp // 阵容数据 harm int32 @@ -127,9 +128,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.IntegralCh res = append(res, reward...) } - if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil { - return - } // 加经验 if cfgData.Heroexp > 0 { 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 } + 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)) session.SendMsg(string(this.module.GetType()), "challengeover", &pb.IntegralChallengeOverResp{ diff --git a/modules/mainline/api_challengeover.go b/modules/mainline/api_challengeover.go index c27f6bffd..351b3a6d5 100644 --- a/modules/mainline/api_challengeover.go +++ b/modules/mainline/api_challengeover.go @@ -32,6 +32,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh err error changExp map[string]int32 res []*cfg.Gameatn + award []*cfg.Gameatn ) changExp = make(map[string]int32, 0) 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, 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 { @@ -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 } + 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 { diff --git a/modules/pagoda/api_challengeover.go b/modules/pagoda/api_challengeover.go index 9ff531a2d..6490e4112 100644 --- a/modules/pagoda/api_challengeover.go +++ b/modules/pagoda/api_challengeover.go @@ -3,6 +3,7 @@ package pagoda import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "strconv" @@ -30,6 +31,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal isWin bool err error atno []*pb.UserAtno // 通关奖励 + award []*cfg.Gameatn changExp map[string]int32 ) 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 } } @@ -141,8 +143,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal return } 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 } diff --git a/modules/pagoda/api_racechallengeover.go b/modules/pagoda/api_racechallengeover.go index 501893074..ef7eccb83 100644 --- a/modules/pagoda/api_racechallengeover.go +++ b/modules/pagoda/api_racechallengeover.go @@ -3,6 +3,7 @@ package pagoda import ( "go_dreamfactory/comm" "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 err error atno []*pb.UserAtno // 通关奖励 + award []*cfg.Gameatn changExp map[string]int32 costTime 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 } } + 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 } session.SendMsg(string(this.module.GetType()), PagodaChallengeRaceOverResp, &pb.PagodaChallengeRaceOverResp{ diff --git a/modules/parkour/configure.go b/modules/parkour/configure.go index 47687e20e..b5dc95baa 100644 --- a/modules/parkour/configure.go +++ b/modules/parkour/configure.go @@ -40,6 +40,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp this.LoadConfigure(game_buzkashimount, cfg.NewGameBuzkashiMount) this.LoadConfigure(game_qualifying, cfg.NewGameQualifying) this.LoadConfigure(game_dragonweeklyreward, cfg.NewGameDragonWeeklyreward) + this.LoadConfigure(game_buzkashicombo, cfg.NewGameBuzkashiCombo) return } diff --git a/modules/parkour/module.go b/modules/parkour/module.go index 81c441500..d10f28d9d 100644 --- a/modules/parkour/module.go +++ b/modules/parkour/module.go @@ -304,7 +304,7 @@ func (this *Parkour) eat(id string, uid string) { } } 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 } if conf, err = this.configure.getGameBuzkashicombo(lcoins); err != nil { diff --git a/modules/practice/api_expulsion.go b/modules/practice/api_expulsion.go index cbe074c49..60d9110ed 100644 --- a/modules/practice/api_expulsion.go +++ b/modules/practice/api_expulsion.go @@ -34,6 +34,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls exp1 int32 ants1 []*cfg.Gameatn ants2 []*cfg.Gameatn + award []*cfg.Gameatn ) if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ @@ -196,7 +197,7 @@ func (this *apiComp) Expulsion(session comm.IUserSession, req *pb.PracticeExpuls } } _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 } 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, }) } + for _, v := range award { + res = append(res, &pb.UserAssets{ + A: v.A, + T: v.T, + N: v.N, + }) + } this.module.mail.SendNewMail(&pb.DBMailData{ Cid: "Drivethemail", CreateTime: uint64(configure.Now().Unix()), diff --git a/modules/practice/api_receive.go b/modules/practice/api_receive.go index 0cf943399..c49ef1326 100644 --- a/modules/practice/api_receive.go +++ b/modules/practice/api_receive.go @@ -36,6 +36,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.PracticeReceiveR ants2 []*cfg.Gameatn awardtemp []*pb.UserAtno award []*pb.UserAtno + heroupaward []*cfg.Gameatn tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) ) 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}) - 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 } - 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 } award = append(award, awardtemp...) diff --git a/modules/viking/api_challengeover.go b/modules/viking/api_challengeover.go index a1da7e099..b49812a03 100644 --- a/modules/viking/api_challengeover.go +++ b/modules/viking/api_challengeover.go @@ -29,6 +29,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal atno []*pb.UserAtno // atno 类型 del []string // 自动出售的装备 changExp map[string]int32 + heroupaward []*cfg.Gameatn res []*cfg.Gameatn // 最后获得的资源 bHelp bool oldDifficulty int32 // 记录通关之前的难度 @@ -193,9 +194,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal } 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 { 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 } + 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{ Data: viking, Asset: atno, diff --git a/modules/wtask/api_battlefinish.go b/modules/wtask/api_battlefinish.go index 251e603c8..daf2769b8 100644 --- a/modules/wtask/api_battlefinish.go +++ b/modules/wtask/api_battlefinish.go @@ -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) { var ( - conf *cfg.GameWorldBattleData - prop []*cfg.Gameatn - atno []*pb.UserAtno - tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) - err error - isWin bool - changExp map[string]int32 + conf *cfg.GameWorldBattleData + prop []*cfg.Gameatn + heroupaward []*cfg.Gameatn + atno []*pb.UserAtno + tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) + err error + isWin bool + changExp map[string]int32 ) changExp = make(map[string]int32, 0) 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) } } - 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 } } @@ -87,6 +88,7 @@ func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattle } prop = append(prop, conf.Playexp) //经验不返回前端展示 prop = append(prop, conf.Exreward...) //经验不返回前端展示 + prop = append(prop, heroupaward...) if errdata, atno = this.module.DispenseAtno(session, prop, true); errdata != nil { this.module.Error("世界任务战斗玩家经验结算", log.Field{Key: "uid", Value: session.GetUserId()}, diff --git a/pb/battle_msg.pb.go b/pb/battle_msg.pb.go index a6cd82acb..1b812f7c7 100644 --- a/pb/battle_msg.pb.go +++ b/pb/battle_msg.pb.go @@ -1306,6 +1306,102 @@ func (x *BattleCheckResults) GetIscheck() bool { 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 { state protoimpl.MessageState @@ -1318,7 +1414,7 @@ type BattleGetInfoReq struct { func (x *BattleGetInfoReq) Reset() { *x = BattleGetInfoReq{} 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.StoreMessageInfo(mi) } @@ -1331,7 +1427,7 @@ func (x *BattleGetInfoReq) String() string { func (*BattleGetInfoReq) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1344,7 +1440,7 @@ func (x *BattleGetInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleGetInfoReq.ProtoReflect.Descriptor instead. 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 { @@ -1367,7 +1463,7 @@ type BattleGetInfoResp struct { func (x *BattleGetInfoResp) Reset() { *x = BattleGetInfoResp{} 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.StoreMessageInfo(mi) } @@ -1380,7 +1476,7 @@ func (x *BattleGetInfoResp) String() string { func (*BattleGetInfoResp) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +1489,7 @@ func (x *BattleGetInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleGetInfoResp.ProtoReflect.Descriptor instead. 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 { @@ -1422,7 +1518,7 @@ type BattleCreateServerReq struct { func (x *BattleCreateServerReq) Reset() { *x = BattleCreateServerReq{} 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.StoreMessageInfo(mi) } @@ -1435,7 +1531,7 @@ func (x *BattleCreateServerReq) String() string { func (*BattleCreateServerReq) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1448,7 +1544,7 @@ func (x *BattleCreateServerReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleCreateServerReq.ProtoReflect.Descriptor instead. 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 { @@ -1470,7 +1566,7 @@ type BattleCreateServerResp struct { func (x *BattleCreateServerResp) Reset() { *x = BattleCreateServerResp{} 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.StoreMessageInfo(mi) } @@ -1483,7 +1579,7 @@ func (x *BattleCreateServerResp) String() string { func (*BattleCreateServerResp) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1496,7 +1592,7 @@ func (x *BattleCreateServerResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleCreateServerResp.ProtoReflect.Descriptor instead. 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 { @@ -1520,7 +1616,7 @@ type BattleInCmdReq struct { func (x *BattleInCmdReq) Reset() { *x = BattleInCmdReq{} 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.StoreMessageInfo(mi) } @@ -1533,7 +1629,7 @@ func (x *BattleInCmdReq) String() string { func (*BattleInCmdReq) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1546,7 +1642,7 @@ func (x *BattleInCmdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleInCmdReq.ProtoReflect.Descriptor instead. 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 { @@ -1584,7 +1680,7 @@ type BattleInCmdResp struct { func (x *BattleInCmdResp) Reset() { *x = BattleInCmdResp{} 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.StoreMessageInfo(mi) } @@ -1597,7 +1693,7 @@ func (x *BattleInCmdResp) String() string { func (*BattleInCmdResp) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1706,7 @@ func (x *BattleInCmdResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleInCmdResp.ProtoReflect.Descriptor instead. 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 { @@ -1647,7 +1743,7 @@ type BattleOutCmdPush struct { func (x *BattleOutCmdPush) Reset() { *x = BattleOutCmdPush{} 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.StoreMessageInfo(mi) } @@ -1660,7 +1756,7 @@ func (x *BattleOutCmdPush) String() string { func (*BattleOutCmdPush) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1673,7 +1769,7 @@ func (x *BattleOutCmdPush) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleOutCmdPush.ProtoReflect.Descriptor instead. 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 { @@ -1703,7 +1799,7 @@ type BattleFinishPush struct { func (x *BattleFinishPush) Reset() { *x = BattleFinishPush{} 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.StoreMessageInfo(mi) } @@ -1716,7 +1812,7 @@ func (x *BattleFinishPush) String() string { func (*BattleFinishPush) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1729,7 +1825,7 @@ func (x *BattleFinishPush) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleFinishPush.ProtoReflect.Descriptor instead. 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 { @@ -1759,7 +1855,7 @@ type BattleConcedeReq struct { func (x *BattleConcedeReq) Reset() { *x = BattleConcedeReq{} 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.StoreMessageInfo(mi) } @@ -1772,7 +1868,7 @@ func (x *BattleConcedeReq) String() string { func (*BattleConcedeReq) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1785,7 +1881,7 @@ func (x *BattleConcedeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleConcedeReq.ProtoReflect.Descriptor instead. 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 { @@ -1814,7 +1910,7 @@ type BattleConcedeResp struct { func (x *BattleConcedeResp) Reset() { *x = BattleConcedeResp{} 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.StoreMessageInfo(mi) } @@ -1827,7 +1923,7 @@ func (x *BattleConcedeResp) String() string { func (*BattleConcedeResp) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1840,7 +1936,7 @@ func (x *BattleConcedeResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleConcedeResp.ProtoReflect.Descriptor instead. 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 { @@ -1864,7 +1960,7 @@ type BattleStateInfo struct { func (x *BattleStateInfo) Reset() { *x = BattleStateInfo{} 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.StoreMessageInfo(mi) } @@ -1877,7 +1973,7 @@ func (x *BattleStateInfo) String() string { func (*BattleStateInfo) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1890,7 +1986,7 @@ func (x *BattleStateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BattleStateInfo.ProtoReflect.Descriptor instead. 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 { @@ -1931,7 +2027,7 @@ type StroneBattleReq struct { func (x *StroneBattleReq) Reset() { *x = StroneBattleReq{} 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.StoreMessageInfo(mi) } @@ -1944,7 +2040,7 @@ func (x *StroneBattleReq) String() string { func (*StroneBattleReq) ProtoMessage() {} 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 { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1957,7 +2053,7 @@ func (x *StroneBattleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StroneBattleReq.ProtoReflect.Descriptor instead. 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 { @@ -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, 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, - 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x2e, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x22, 0x55, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 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, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, - 0x0a, 0x15, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x5c, 0x0a, 0x0e, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 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, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x02, - 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x43, 0x6d, 0x64, 0x52, 0x02, 0x69, 0x6e, 0x22, 0x61, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x49, 0x6e, 0x43, 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 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, 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, + 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x2f, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 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, 0x22, 0x55, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 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, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x15, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x5c, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, + 0x6e, 0x43, 0x6d, 0x64, 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, 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, - 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, - 0x73, 0x75, 0x63, 0x63, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 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, + 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64, 0x52, + 0x02, 0x69, 0x6e, 0x22, 0x61, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x43, + 0x6d, 0x64, 0x52, 0x65, 0x73, 0x70, 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, 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, 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, 0x65, 0x43, 0x6f, 0x6e, 0x63, + 0x65, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, + 0x82, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 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 ( @@ -2268,7 +2371,7 @@ func file_battle_battle_msg_proto_rawDescGZIP() []byte { 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{}{ (*LineData)(nil), // 0: LineData (*LineUp)(nil), // 1: LineUp @@ -2286,72 +2389,76 @@ var file_battle_battle_msg_proto_goTypes = []interface{}{ (*BattleReport)(nil), // 13: BattleReport (*BattleRpcMessage)(nil), // 14: BattleRpcMessage (*BattleCheckResults)(nil), // 15: BattleCheckResults - (*BattleGetInfoReq)(nil), // 16: BattleGetInfoReq - (*BattleGetInfoResp)(nil), // 17: BattleGetInfoResp - (*BattleCreateServerReq)(nil), // 18: BattleCreateServerReq - (*BattleCreateServerResp)(nil), // 19: BattleCreateServerResp - (*BattleInCmdReq)(nil), // 20: BattleInCmdReq - (*BattleInCmdResp)(nil), // 21: BattleInCmdResp - (*BattleOutCmdPush)(nil), // 22: BattleOutCmdPush - (*BattleFinishPush)(nil), // 23: BattleFinishPush - (*BattleConcedeReq)(nil), // 24: BattleConcedeReq - (*BattleConcedeResp)(nil), // 25: BattleConcedeResp - (*BattleStateInfo)(nil), // 26: BattleStateInfo - (*StroneBattleReq)(nil), // 27: StroneBattleReq - (PlayType)(0), // 28: PlayType - (*DBHero)(nil), // 29: DBHero - (*BattleRole)(nil), // 30: BattleRole - (BattleType)(0), // 31: BattleType - (*DBBattleFormt)(nil), // 32: DBBattleFormt - (*anypb.Any)(nil), // 33: google.protobuf.Any - (*DySkillData)(nil), // 34: DySkillData + (*BattleRunReq)(nil), // 16: BattleRunReq + (*BattleRunResp)(nil), // 17: BattleRunResp + (*BattleGetInfoReq)(nil), // 18: BattleGetInfoReq + (*BattleGetInfoResp)(nil), // 19: BattleGetInfoResp + (*BattleCreateServerReq)(nil), // 20: BattleCreateServerReq + (*BattleCreateServerResp)(nil), // 21: BattleCreateServerResp + (*BattleInCmdReq)(nil), // 22: BattleInCmdReq + (*BattleInCmdResp)(nil), // 23: BattleInCmdResp + (*BattleOutCmdPush)(nil), // 24: BattleOutCmdPush + (*BattleFinishPush)(nil), // 25: BattleFinishPush + (*BattleConcedeReq)(nil), // 26: BattleConcedeReq + (*BattleConcedeResp)(nil), // 27: BattleConcedeResp + (*BattleStateInfo)(nil), // 28: BattleStateInfo + (*StroneBattleReq)(nil), // 29: StroneBattleReq + (PlayType)(0), // 30: PlayType + (*DBHero)(nil), // 31: DBHero + (*BattleRole)(nil), // 32: BattleRole + (BattleType)(0), // 33: BattleType + (*DBBattleFormt)(nil), // 34: DBBattleFormt + (*anypb.Any)(nil), // 35: google.protobuf.Any + (*DySkillData)(nil), // 36: DySkillData } var file_battle_battle_msg_proto_depIdxs = []int32{ 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 - 28, // 3: BattlePVEReq.ptype:type_name -> PlayType + 30, // 3: BattlePVEReq.ptype:type_name -> PlayType 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 - 29, // 7: PVPFormation.format:type_name -> DBHero - 28, // 8: BattlePVPReq.ptype:type_name -> PlayType + 31, // 7: PVPFormation.format:type_name -> DBHero + 30, // 8: BattlePVPReq.ptype:type_name -> PlayType 6, // 9: BattlePVPReq.redformat: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, // 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 - 30, // 16: BattleLPVEReq.monsters:type_name -> BattleRole - 28, // 17: BattlePVBReq.ptype:type_name -> PlayType + 32, // 16: BattleLPVEReq.monsters:type_name -> BattleRole + 30, // 17: BattlePVBReq.ptype:type_name -> PlayType 2, // 18: BattlePVBReq.format:type_name -> BattleFormation - 31, // 19: BattleInfo.btype:type_name -> BattleType - 28, // 20: BattleInfo.ptype:type_name -> PlayType - 32, // 21: BattleInfo.redflist:type_name -> DBBattleFormt - 32, // 22: BattleInfo.buleflist:type_name -> DBBattleFormt + 33, // 19: BattleInfo.btype:type_name -> BattleType + 30, // 20: BattleInfo.ptype:type_name -> PlayType + 34, // 21: BattleInfo.redflist:type_name -> DBBattleFormt + 34, // 22: BattleInfo.buleflist:type_name -> DBBattleFormt 11, // 23: BattleReport.info:type_name -> BattleInfo 12, // 24: BattleReport.incmd:type_name -> BattleCmd 12, // 25: BattleReport.outcmd:type_name -> BattleCmd - 30, // 26: BattleReport.alive:type_name -> BattleRole - 33, // 27: BattleRpcMessage.data:type_name -> google.protobuf.Any - 26, // 28: BattleGetInfoResp.info:type_name -> BattleStateInfo - 11, // 29: BattleCreateServerReq.info:type_name -> BattleInfo - 12, // 30: BattleInCmdReq.in:type_name -> BattleCmd - 12, // 31: BattleInCmdResp.in:type_name -> BattleCmd - 12, // 32: BattleOutCmdPush.cmd:type_name -> BattleCmd - 11, // 33: BattleStateInfo.info:type_name -> BattleInfo - 12, // 34: BattleStateInfo.outCmds:type_name -> BattleCmd - 12, // 35: BattleStateInfo.inputCmds:type_name -> BattleCmd - 34, // 36: StroneBattleReq.diBuff:type_name -> DySkillData - 30, // 37: StroneBattleReq.role:type_name -> BattleRole - 31, // 38: StroneBattleReq.Btype:type_name -> BattleType - 28, // 39: StroneBattleReq.Ptype:type_name -> PlayType - 40, // [40:40] is the sub-list for method output_type - 40, // [40:40] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 32, // 26: BattleReport.alive:type_name -> BattleRole + 35, // 27: BattleRpcMessage.data:type_name -> google.protobuf.Any + 11, // 28: BattleRunReq.info:type_name -> BattleInfo + 13, // 29: BattleRunResp.reports:type_name -> BattleReport + 28, // 30: BattleGetInfoResp.info:type_name -> BattleStateInfo + 11, // 31: BattleCreateServerReq.info:type_name -> BattleInfo + 12, // 32: BattleInCmdReq.in:type_name -> BattleCmd + 12, // 33: BattleInCmdResp.in:type_name -> BattleCmd + 12, // 34: BattleOutCmdPush.cmd:type_name -> BattleCmd + 11, // 35: BattleStateInfo.info:type_name -> BattleInfo + 12, // 36: BattleStateInfo.outCmds:type_name -> BattleCmd + 12, // 37: BattleStateInfo.inputCmds:type_name -> BattleCmd + 36, // 38: StroneBattleReq.diBuff:type_name -> DySkillData + 32, // 39: StroneBattleReq.role:type_name -> BattleRole + 33, // 40: StroneBattleReq.Btype:type_name -> BattleType + 30, // 41: StroneBattleReq.Ptype:type_name -> PlayType + 42, // [42:42] is the sub-list for method output_type + 42, // [42:42] is the sub-list for method input_type + 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() } @@ -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{} { - switch v := v.(*BattleGetInfoReq); i { + switch v := v.(*BattleRunReq); i { case 0: return &v.state 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{} { - switch v := v.(*BattleGetInfoResp); i { + switch v := v.(*BattleRunResp); i { case 0: return &v.state 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{} { - switch v := v.(*BattleCreateServerReq); i { + switch v := v.(*BattleGetInfoReq); i { case 0: return &v.state 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{} { - switch v := v.(*BattleCreateServerResp); i { + switch v := v.(*BattleGetInfoResp); i { case 0: return &v.state 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{} { - switch v := v.(*BattleInCmdReq); i { + switch v := v.(*BattleCreateServerReq); i { case 0: return &v.state 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{} { - switch v := v.(*BattleInCmdResp); i { + switch v := v.(*BattleCreateServerResp); i { case 0: return &v.state 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{} { - switch v := v.(*BattleOutCmdPush); i { + switch v := v.(*BattleInCmdReq); i { case 0: return &v.state 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{} { - switch v := v.(*BattleFinishPush); i { + switch v := v.(*BattleInCmdResp); i { case 0: return &v.state 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{} { - switch v := v.(*BattleConcedeReq); i { + switch v := v.(*BattleOutCmdPush); i { case 0: return &v.state 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{} { - switch v := v.(*BattleConcedeResp); i { + switch v := v.(*BattleFinishPush); i { case 0: return &v.state 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{} { - switch v := v.(*BattleStateInfo); i { + switch v := v.(*BattleConcedeReq); i { case 0: return &v.state 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{} { + 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 { case 0: return &v.state @@ -2705,7 +2836,7 @@ func file_battle_battle_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_battle_battle_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/hero_msg.pb.go b/pb/hero_msg.pb.go index fc3fe92c7..54079ddea 100644 --- a/pb/hero_msg.pb.go +++ b/pb/hero_msg.pb.go @@ -334,7 +334,8 @@ type HeroStrengthenUplvResp struct { sizeCache protoimpl.SizeCache 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() { @@ -376,6 +377,13 @@ func (x *HeroStrengthenUplvResp) GetHero() *DBHero { return nil } +func (x *HeroStrengthenUplvResp) GetAtno() []*UserAtno { + if x != nil { + return x.Atno + } + return nil +} + // 卡牌升星 type HeroStrengthenUpStarReq struct { 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, 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, 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, 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, 0x37, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 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, 0x37, 0x0a, 0x18, 0x48, 0x65, - 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, - 0x61, 0x72, 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, 0xaa, 0x01, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x12, 0x37, - 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x48, - 0x65, 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, + 0x6f, 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, + 0x22, 0x37, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 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, 0x37, 0x0a, 0x18, 0x48, 0x65, 0x72, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x74, 0x61, + 0x72, 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, 0xaa, 0x01, 0x0a, 0x18, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x65, 0x6e, 0x55, 0x70, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x12, 0x37, 0x0a, + 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x48, 0x65, + 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, 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, 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, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 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, 0x13, 0x0a, 0x11, 0x48, - 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 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, + 0x22, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 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, 0x13, 0x0a, 0x11, 0x48, 0x65, + 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 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 ( @@ -2642,36 +2652,37 @@ var file_hero_hero_msg_proto_depIdxs = []int32{ 51, // 1: HeroListResp.list:type_name -> DBHero 45, // 2: HeroStrengthenUplvReq.item:type_name -> HeroStrengthenUplvReq.ItemEntry 51, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero - 51, // 4: HeroStrengthenUpStarResp.hero:type_name -> DBHero - 46, // 5: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry - 51, // 6: HeroStrengthenUpSkillResp.hero:type_name -> DBHero - 51, // 7: HeroAwakenResp.hero:type_name -> DBHero - 52, // 8: HeroAwakenResp.reward:type_name -> UserAtno - 47, // 9: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry - 48, // 10: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry - 51, // 11: HeroLockResp.hero:type_name -> DBHero - 51, // 12: HeroGetSpecifiedResp.hero:type_name -> DBHero - 52, // 13: AtnoData.atno:type_name -> UserAtno - 19, // 14: HeroDrawCardResp.data:type_name -> AtnoData - 52, // 15: HeroDrawCardResp.wish:type_name -> UserAtno - 53, // 16: HeroDrawCardResp.record:type_name -> DBHeroRecord - 51, // 17: HeroChangePush.list:type_name -> DBHero - 53, // 18: HeroDrawCardFloorResp.record:type_name -> DBHeroRecord - 49, // 19: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry - 54, // 20: HeroTalentListResp.telnet:type_name -> DBHeroTalent - 54, // 21: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent - 54, // 22: HeroTalentResetResp.telnet:type_name -> DBHeroTalent - 50, // 23: HeroPeachRewardResp.peach:type_name -> HeroPeachRewardResp.PeachEntry - 52, // 24: HeroPeachRewardResp.atno:type_name -> UserAtno - 53, // 25: HeroSaveCardResp.record:type_name -> DBHeroRecord - 53, // 26: HeroSelectCardResp.record:type_name -> DBHeroRecord - 19, // 27: HeroSelectCardResp.atno:type_name -> AtnoData - 55, // 28: HeroDrawRecordResp.record:type_name -> DBHeroDrawRecord - 29, // [29:29] is the sub-list for method output_type - 29, // [29:29] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 52, // 4: HeroStrengthenUplvResp.atno:type_name -> UserAtno + 51, // 5: HeroStrengthenUpStarResp.hero:type_name -> DBHero + 46, // 6: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry + 51, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero + 51, // 8: HeroAwakenResp.hero:type_name -> DBHero + 52, // 9: HeroAwakenResp.reward:type_name -> UserAtno + 47, // 10: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry + 48, // 11: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry + 51, // 12: HeroLockResp.hero:type_name -> DBHero + 51, // 13: HeroGetSpecifiedResp.hero:type_name -> DBHero + 52, // 14: AtnoData.atno:type_name -> UserAtno + 19, // 15: HeroDrawCardResp.data:type_name -> AtnoData + 52, // 16: HeroDrawCardResp.wish:type_name -> UserAtno + 53, // 17: HeroDrawCardResp.record:type_name -> DBHeroRecord + 51, // 18: HeroChangePush.list:type_name -> DBHero + 53, // 19: HeroDrawCardFloorResp.record:type_name -> DBHeroRecord + 49, // 20: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry + 54, // 21: HeroTalentListResp.telnet:type_name -> DBHeroTalent + 54, // 22: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent + 54, // 23: HeroTalentResetResp.telnet:type_name -> DBHeroTalent + 50, // 24: HeroPeachRewardResp.peach:type_name -> HeroPeachRewardResp.PeachEntry + 52, // 25: HeroPeachRewardResp.atno:type_name -> UserAtno + 53, // 26: HeroSaveCardResp.record:type_name -> DBHeroRecord + 53, // 27: HeroSelectCardResp.record:type_name -> DBHeroRecord + 19, // 28: HeroSelectCardResp.atno:type_name -> AtnoData + 55, // 29: HeroDrawRecordResp.record:type_name -> DBHeroDrawRecord + 30, // [30:30] is the sub-list for method output_type + 30, // [30:30] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension 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() } diff --git a/sys/configure/structs/Game.BuzkashiMountData.go b/sys/configure/structs/Game.BuzkashiMountData.go index 68e162c02..dab94cdce 100644 --- a/sys/configure/structs/Game.BuzkashiMountData.go +++ b/sys/configure/structs/Game.BuzkashiMountData.go @@ -33,6 +33,7 @@ type GameBuzkashiMountData struct { Csubtime int32 Energyrecover int32 Maxenergy int32 + Offsetspeed float32 } 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["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["offsetspeed"].(float64); !_ok_ { err = errors.New("offsetspeed error"); return }; _v.Offsetspeed = float32(_tempNum_) } return } diff --git a/sys/configure/structs/Game.ConsumeHeroData.go b/sys/configure/structs/Game.ConsumeHeroData.go index 44d6cf108..4a262fdb8 100644 --- a/sys/configure/structs/Game.ConsumeHeroData.go +++ b/sys/configure/structs/Game.ConsumeHeroData.go @@ -14,6 +14,7 @@ type GameConsumeHeroData struct { Key string Type int32 Herocolor int32 + Skilldestructiontype int32 Herotitel string Hero int32 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; 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["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 _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 } } diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go index 8959beadc..aca39037a 100644 --- a/sys/configure/structs/Tables.go +++ b/sys/configure/structs/Tables.go @@ -330,6 +330,7 @@ type Tables struct { IntegralReward *GameIntegralReward IntegralCondition *GameIntegralCondition IntegralTime *GameIntegralTime + Restore *GameRestore CatchbugSetstage *GameCatchbugSetstage BuzkashiCombo *GameBuzkashiCombo } @@ -2253,6 +2254,12 @@ func NewTables(loader JsonLoader) (*Tables, error) { if tables.IntegralTime, err = NewGameIntegralTime(buf) ; err != nil { 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 { return nil, err }