diff --git a/modules/battle/modelBattle.go b/modules/battle/modelBattle.go index 62ee29118..1b141d8c5 100644 --- a/modules/battle/modelBattle.go +++ b/modules/battle/modelBattle.go @@ -1,6 +1,7 @@ package battle import ( + "context" "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/log" @@ -59,59 +60,55 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon Team: make([]*pb.BattleRole, len(req.Format.Format)), } model := db.NewDBModel(comm.TableHero, time.Hour, conn) + //自己的英雄阵营 for i, v := range req.Format.Format { if v != "" { hero := &pb.DBHero{} if err := model.GetListObj(session.GetUserId(), v, hero); err != nil { + code = pb.ErrorCode_HeroNoExist return } tid := 100 + i - record.Redflist[0].Team[i] = &pb.BattleRole{ - Tid: int32(tid), - Oid: hero.Id, - HeroID: hero.HeroID, - Pos: int32(i), - Star: hero.Star, - Lv: hero.Lv, - CaptainSkill: hero.CaptainSkill, - NormalSkill: hero.NormalSkill, - Property: make(map[string]int32), - } - for k, v := range hero.Property { - record.Redflist[0].Team[i].Property[k] += v - } - for k, v := range hero.AddProperty { - record.Redflist[0].Team[i].Property[k] += v - } - for k, v := range hero.Energy { - record.Redflist[0].Team[i].Property[k] += v - } - for k, v := range hero.EnergyProperty { - record.Redflist[0].Team[i].Property[k] += v - } - for k, v := range hero.JuexProperty { - record.Redflist[0].Team[i].Property[k] += v - } - if hero.SuiteId != 0 { //主套装 - if suit, err := this.module.configure.Getequipsuit(hero.SuiteId); err != nil { - code = pb.ErrorCode_ConfigNoFound - return - } else { - record.Redflist[0].Team[i].MainSuitSkill = suit.Skill - } - } - if hero.SuiteExtId != 0 { //副套装 - if suit, err := this.module.configure.Getequipsuit(hero.SuiteExtId); err != nil { - code = pb.ErrorCode_ConfigNoFound - return - } else { - record.Redflist[0].Team[i].SubSuitSkill = suit.Skill - } + if record.Redflist[0].Team[i], code = this.createBattleRole(hero, tid, i); code != pb.ErrorCode_Success { + return } } else { record.Redflist[0].Team[i] = nil } } + //好友的英雄阵营 + for i, v := range req.Format.Friendformat { + if v != "" { + var ( + hero *pb.DBHero + err error + ) + // 获取好友英雄信息 + if this.module.IsCross() { + if hero, err = this.module.friend.UseAssistHero(session.GetUserId(), v); err != nil { + this.module.Errorln(err) + code = pb.ErrorCode_HeroNoExist + return + } + } else { //获取跨服数据 + hero = &pb.DBHero{} + if err = this.module.service.AcrossClusterRpcCall( + context.Background(), + session.GetServiecTag(), + comm.Service_Worker, + string(comm.Rpc_ModuleGMCreateCmd), + pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: v}, + hero); err != nil { + this.module.Errorln(err) + } + } + tid := 100 + i + if record.Redflist[0].Team[i], code = this.createBattleRole(hero, tid, i); code != pb.ErrorCode_Success { + return + } + record.Redflist[0].Team[i].Ishelp = true + } + } for i, v := range req.Mformat { if mf, err := this.module.configure.GetMonsterFormat(v); err != nil { @@ -177,3 +174,49 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon // } return } + +func (this *modelBattleComp) createBattleRole(hero *pb.DBHero, tid, pos int) (role *pb.BattleRole, code pb.ErrorCode) { + role = &pb.BattleRole{ + Tid: int32(tid), + Oid: hero.Id, + HeroID: hero.HeroID, + Pos: int32(pos), + Star: hero.Star, + Lv: hero.Lv, + CaptainSkill: hero.CaptainSkill, + NormalSkill: hero.NormalSkill, + Property: make(map[string]int32), + } + for k, v := range hero.Property { + role.Property[k] += v + } + for k, v := range hero.AddProperty { + role.Property[k] += v + } + for k, v := range hero.Energy { + role.Property[k] += v + } + for k, v := range hero.EnergyProperty { + role.Property[k] += v + } + for k, v := range hero.JuexProperty { + role.Property[k] += v + } + if hero.SuiteId != 0 { //主套装 + if suit, err := this.module.configure.Getequipsuit(hero.SuiteId); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } else { + role.MainSuitSkill = suit.Skill + } + } + if hero.SuiteExtId != 0 { //副套装 + if suit, err := this.module.configure.Getequipsuit(hero.SuiteExtId); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } else { + role.SubSuitSkill = suit.Skill + } + } + return +} diff --git a/modules/battle/module.go b/modules/battle/module.go index e8a3a572b..3e4cf169a 100644 --- a/modules/battle/module.go +++ b/modules/battle/module.go @@ -2,6 +2,7 @@ package battle import ( "go_dreamfactory/comm" + "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/pb" @@ -20,7 +21,8 @@ func NewModule() core.IModule { type Battle struct { modules.ModuleBase - service core.IService + service base.IRPCXService + friend comm.IFriend //好友系统 moonfantasy comm.IMoonFantasy //月之秘境模块 api_comp *apiComp configure *configureComp @@ -35,12 +37,16 @@ func (this *Battle) GetType() core.M_Modules { //模块初始化接口 注册用户创建角色事件 func (this *Battle) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { err = this.ModuleBase.Init(service, module, options) - this.service = service + this.service = service.(base.IRPCXService) return } func (this *Battle) Start() (err error) { err = this.ModuleBase.Start() var module core.IModule + if module, err = this.service.GetModule(comm.ModuleFriend); err != nil { + return + } + this.friend = module.(comm.IFriend) if module, err = this.service.GetModule(comm.ModuleMoonfantasy); err != nil { return } @@ -72,7 +78,7 @@ func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVE conn *db.DBConn err error ) - if this.service.GetTag() == session.GetServiecTag() { + if !this.IsCross() { conn, err = db.Local() } else { conn, err = db.ServerDBConn(session.GetServiecTag()) @@ -87,6 +93,10 @@ func (this *Battle) CreatePveBattle(session comm.IUserSession, req *pb.BattlePVE code = pb.ErrorCode_ReqParameterError return } + if req.Format.Friendformat != nil && len(req.Format.Friendformat) != 5 { + code = pb.ErrorCode_ReqParameterError + } + if record, code = this.modelBattle.createpve(session, conn, pb.BattleType_pve, req); code != pb.ErrorCode_Success { return } @@ -99,7 +109,7 @@ func (this *Battle) CreatePvbBattle(session comm.IUserSession, req *pb.BattlePVE conn *db.DBConn err error ) - if this.service.GetTag() == session.GetServiecTag() { + if !this.IsCross() { conn, err = db.Local() } else { conn, err = db.ServerDBConn(session.GetServiecTag()) diff --git a/pb/battle_msg.pb.go b/pb/battle_msg.pb.go index 0b77903c2..c27006fdb 100644 --- a/pb/battle_msg.pb.go +++ b/pb/battle_msg.pb.go @@ -90,9 +90,8 @@ type BattleFormation struct { unknownFields protoimpl.UnknownFields Leadpos int32 `protobuf:"varint,1,opt,name=leadpos,proto3" json:"leadpos"` //队长位置 - FriendId string `protobuf:"bytes,2,opt,name=friendId,proto3" json:"friendId"` //助阵好友Id - Format []string `protobuf:"bytes,3,rep,name=format,proto3" json:"format"` //自己英雄阵容信息 0-5 - Friendformat []string `protobuf:"bytes,4,rep,name=friendformat,proto3" json:"friendformat"` //好友英雄阵容信息 0-5 + Format []string `protobuf:"bytes,2,rep,name=format,proto3" json:"format"` //自己英雄阵容信息 0-5 + Friendformat []string `protobuf:"bytes,3,rep,name=friendformat,proto3" json:"friendformat"` //助战好友 } func (x *BattleFormation) Reset() { @@ -134,13 +133,6 @@ func (x *BattleFormation) GetLeadpos() int32 { return 0 } -func (x *BattleFormation) GetFriendId() string { - if x != nil { - return x.FriendId - } - return "" -} - func (x *BattleFormation) GetFormat() []string { if x != nil { return x.Format @@ -397,47 +389,45 @@ var file_battle_battle_msg_proto_rawDesc = []byte{ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, - 0x76, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x50, 0x56, 0x45, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x28, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x22, 0x8e, 0x02, 0x0a, 0x0a, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x70, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, - 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, - 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x08, 0x72, 0x65, - 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x75, 0x65, 0x43, 0x6f, - 0x6d, 0x70, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x75, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x09, 0x62, 0x75, 0x6c, 0x65, 0x66, - 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 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, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, - 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x76, 0x22, 0x67, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x56, 0x45, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x05, 0x70, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6d, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x8e, 0x02, 0x0a, 0x0a, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, + 0x50, 0x6c, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2a, 0x0a, + 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x44, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, + 0x08, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x75, + 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x62, 0x75, 0x6c, + 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, + 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x74, 0x52, 0x09, 0x62, 0x75, + 0x6c, 0x65, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 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, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var (