Commit 02d11cb7d7267dd2f34370930f887c44890d16ce

Authored by zhangqijia
1 parent 078afe28

fix: update 装备脱/戴

cmd/gameserver/action/RoleAction.go
@@ -104,33 +104,84 @@ func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32, @@ -104,33 +104,84 @@ func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32,
104 104
105 equip := e.(*models.EquipModel) 105 equip := e.(*models.EquipModel)
106 106
107 - // 装备未被穿戴  
108 - if equip.Equip.HeroId == "" {  
109 -  
110 - h, ok := role.Heros[req.HeroId]  
111 - if ok {  
112 - hero := h.(*models.HeroModel)  
113 - hero.UpdateEquipment(equip.Equip.Id, equip.Equip.Type) 107 + // 1 脱
  108 + // 1.1 装备直接脱掉
  109 + // 2 戴
  110 + // 2.1装备未被其他英雄穿戴直接穿, 如果其他英雄已经被穿戴,则脱了再穿
  111 + // 2.2同类型装备是否穿戴, 已经被穿戴,则脱了再穿
  112 + h1 := role.Heros[req.HeroId]
  113 + h2 := role.Heros[equip.Equip.HeroId]
  114 +
  115 + var outHero, inHero *models.HeroModel
  116 + inEquip := csvdata.Get().TbEquipmentData.Get(equip.Equip.GetTbId())
  117 + if !req.Refer {
  118 + if h1 == nil {
  119 + outHero = h1.(*models.HeroModel)
  120 + outHero.UpdateEquipment(equip.Equip.Id, 0)
  121 + }
  122 + if h2 != nil {
  123 + outHero = h2.(*models.HeroModel)
  124 + outHero.UpdateEquipment(equip.Equip.Id, 0)
114 } 125 }
115 - equip.SetProperty("heroid", req.HeroId) 126 +
116 } else { 127 } else {
117 - //装备已经被穿戴  
118 - if req.HeroId != equip.Equip.HeroId {  
119 - h, ok := role.Heros[equip.Equip.HeroId]  
120 - if ok {  
121 - hero := h.(*models.HeroModel)  
122 - hero.UpdateEquipment(equip.Equip.Id, "") 128 + if h1 == nil {
  129 + return 3, nil
  130 + }
  131 + inHero = h1.(*models.HeroModel)
  132 +
  133 + if equip.Equip.HeroId == "" {
  134 + var outEquipID string
  135 + for id, tbId := range inHero.Equipments {
  136 + tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
  137 + if tmpEquip.EquipType == inEquip.EquipType {
  138 + outEquipID = id
  139 + break
  140 + }
  141 + }
  142 +
  143 + if outEquipID != "" {
  144 + tmpEuqip, ok := role.Equipments[outEquipID]
  145 + if ok {
  146 + outEquip := tmpEuqip.(*models.EquipModel)
  147 + outEquip.SetProperty("heroid", "")
  148 + inHero.UpdateEquipment(outEquipID, 0)
  149 + }
123 } 150 }
124 151
125 - h, ok = role.Heros[req.HeroId]  
126 - if ok {  
127 - hero := h.(*models.HeroModel)  
128 - hero.UpdateEquipment(equip.Equip.Id, equip.Equip.Type) 152 + inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipID)
  153 + equip.SetProperty("heroid", inHero.Hero.Id)
  154 +
  155 + } else if equip.Equip.HeroId != req.HeroId {
  156 + if h2 == nil {
  157 + return 4, nil
  158 + }
  159 +
  160 + outHero = h2.(*models.HeroModel)
  161 + var outEquipID string
  162 + for id, tbId := range inHero.Equipments {
  163 + tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
  164 + if tmpEquip.EquipType == inEquip.EquipType {
  165 + outEquipID = id
  166 + break
  167 + }
129 } 168 }
130 169
131 - equip.SetProperty("heroid", req.HeroId) 170 + if outEquipID != "" {
  171 + tmpEquip, ok := role.Equipments[outEquipID]
  172 + if ok {
  173 + outEquip := tmpEquip.(*models.EquipModel)
  174 + outEquip.SetProperty("heroid", "")
  175 + inHero.UpdateEquipment(outEquipID, 0)
  176 + }
  177 + }
  178 +
  179 + outHero.UpdateEquipment(equip.Equip.Id, 0)
  180 + inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipType)
  181 + equip.SetProperty("heroid", inHero.Hero.Id)
132 } 182 }
133 } 183 }
  184 +
134 return 0, nil 185 return 0, nil
135 } 186 }
136 187
cmd/gameserver/gmaction/GmAction.go
@@ -28,11 +28,13 @@ AddEquip 添加装备 @@ -28,11 +28,13 @@ AddEquip 添加装备
28 */ 28 */
29 func (gm *GmAction) AddEquip(role *models.RoleModel, params GMParams) { 29 func (gm *GmAction) AddEquip(role *models.RoleModel, params GMParams) {
30 //TODO 验证装备是否存在 30 //TODO 验证装备是否存在
  31 + id := params["id"]
  32 + tbId, _ := strconv.Atoi(id)
31 33
32 equip := &pb.Equipment{ 34 equip := &pb.Equipment{
33 Id: role.IncreEquipByKey(1), 35 Id: role.IncreEquipByKey(1),
34 RoleId: role.Role.Id, 36 RoleId: role.Role.Id,
35 - Type: params["id"], 37 + TbId: int32(tbId),
36 Quality: 1, 38 Quality: 1,
37 } 39 }
38 role.AddEquip(equip) 40 role.AddEquip(equip)
@@ -10,26 +10,26 @@ import ( @@ -10,26 +10,26 @@ import (
10 type HeroModel struct { 10 type HeroModel struct {
11 components.ISchema 11 components.ISchema
12 Hero *pb.Hero 12 Hero *pb.Hero
13 - Equipments common.IMapString 13 + Equipments common.IMapStringNum
14 } 14 }
15 15
16 func NewHero(hero *pb.Hero) *HeroModel { 16 func NewHero(hero *pb.Hero) *HeroModel {
17 m := &HeroModel{ 17 m := &HeroModel{
18 ISchema: NewSchema(hero.Id, hero), 18 ISchema: NewSchema(hero.Id, hero),
19 Hero: hero, 19 Hero: hero,
20 - Equipments: common.StringToMap(hero.Equipments, false), 20 + Equipments: common.StringToMapNum(hero.Equipments),
21 } 21 }
22 return m 22 return m
23 } 23 }
24 24
25 -func (m *HeroModel) UpdateEquipment(key string, typ string) {  
26 - if typ == "" { 25 +func (m *HeroModel) UpdateEquipment(key string, typ int32) {
  26 + if typ == 0 {
27 delete(m.Equipments, key) 27 delete(m.Equipments, key)
28 } else { 28 } else {
29 m.Equipments[key] = typ 29 m.Equipments[key] = typ
30 } 30 }
31 31
32 - m.SetProperty("equipments", common.MapToString(m.Equipments)) 32 + m.SetProperty("equipments", common.MapNumToString(m.Equipments))
33 } 33 }
34 func (m *HeroModel) UpLevel(exp int32) (int32, int32) { 34 func (m *HeroModel) UpLevel(exp int32) (int32, int32) {
35 level := m.Hero.Level 35 level := m.Hero.Level
@@ -193,7 +193,7 @@ type Equipment struct { @@ -193,7 +193,7 @@ type Equipment struct {
193 193
194 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1" 194 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" index:"unique" pri:"1"` // @inject_tag: index:"unique" pri:"1"
195 RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` 195 RoleId string `protobuf:"bytes,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"`
196 - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` 196 + TbId int32 `protobuf:"varint,3,opt,name=tb_id,json=tbId,proto3" json:"tb_id,omitempty"`
197 EnhanceLevel int32 `protobuf:"varint,4,opt,name=enhance_level,json=enhanceLevel,proto3" json:"enhance_level,omitempty"` 197 EnhanceLevel int32 `protobuf:"varint,4,opt,name=enhance_level,json=enhanceLevel,proto3" json:"enhance_level,omitempty"`
198 HeroId string `protobuf:"bytes,5,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"` 198 HeroId string `protobuf:"bytes,5,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"`
199 Quality int32 `protobuf:"varint,6,opt,name=quality,proto3" json:"quality,omitempty"` 199 Quality int32 `protobuf:"varint,6,opt,name=quality,proto3" json:"quality,omitempty"`
@@ -245,11 +245,11 @@ func (x *Equipment) GetRoleId() string { @@ -245,11 +245,11 @@ func (x *Equipment) GetRoleId() string {
245 return "" 245 return ""
246 } 246 }
247 247
248 -func (x *Equipment) GetType() string { 248 +func (x *Equipment) GetTbId() int32 {
249 if x != nil { 249 if x != nil {
250 - return x.Type 250 + return x.TbId
251 } 251 }
252 - return "" 252 + return 0
253 } 253 }
254 254
255 func (x *Equipment) GetEnhanceLevel() int32 { 255 func (x *Equipment) GetEnhanceLevel() int32 {
@@ -675,74 +675,74 @@ var file_models_proto_rawDesc = []byte{ @@ -675,74 +675,74 @@ var file_models_proto_rawDesc = []byte{
675 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 675 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20,
676 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 676 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
677 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 677 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78,
678 - 0x70, 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12, 678 + 0x70, 0x22, 0xa1, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12,
679 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 679 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
680 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 680 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
681 - 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,  
682 - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d,  
683 - 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20,  
684 - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65,  
685 - 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,  
686 - 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75,  
687 - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61,  
688 - 0x6c, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x0a, 0x04, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02,  
689 - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05,  
690 - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75,  
691 - 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69,  
692 - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72,  
693 - 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,  
694 - 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x31,  
695 - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x31, 0x12,  
696 - 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28,  
697 - 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65,  
698 - 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65,  
699 - 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65,  
700 - 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,  
701 - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,  
702 - 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12,  
703 - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,  
704 - 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,  
705 - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,  
706 - 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63,  
707 - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a,  
708 - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65,  
709 - 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,  
710 - 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28,  
711 - 0x03, 0x52, 0x02, 0x68, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x68, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x18,  
712 - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x68, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x13, 0x0a, 0x05,  
713 - 0x62, 0x75, 0x79, 0x5f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x75, 0x79,  
714 - 0x52, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x5f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,  
715 - 0x52, 0x04, 0x70, 0x61, 0x79, 0x52, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x6c, 0x18, 0x0d, 0x20,  
716 - 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x72,  
717 - 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,  
718 - 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74,  
719 - 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74,  
720 - 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,  
721 - 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74,  
722 - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c,  
723 - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c,  
724 - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x70,  
725 - 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x74, 0x68, 0x65,  
726 - 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x74,  
727 - 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x65, 0x77, 0x65,  
728 - 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,  
729 - 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d,  
730 - 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x14, 0x20,  
731 - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d,  
732 - 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x70, 0x74,  
733 - 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6f, 0x64, 0x65,  
734 - 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61, 0x70,  
735 - 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x43,  
736 - 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65,  
737 - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,  
738 - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,  
739 - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,  
740 - 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65,  
741 - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,  
742 - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,  
743 - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,  
744 - 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62,  
745 - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 681 + 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x62, 0x5f, 0x69,
  682 + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a,
  683 + 0x0d, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04,
  684 + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76,
  685 + 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
  686 + 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71,
  687 + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75,
  688 + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x0a, 0x04, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a,
  689 + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a,
  690 + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f,
  691 + 0x75, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02,
  692 + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07,
  693 + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
  694 + 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64,
  695 + 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x31,
  696 + 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01,
  697 + 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x68,
  698 + 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68,
  699 + 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d,
  700 + 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  701 + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
  702 + 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65,
  703 + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
  704 + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
  705 + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
  706 + 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69,
  707 + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x14,
  708 + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
  709 + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28,
  710 + 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x07, 0x20, 0x01,
  711 + 0x28, 0x03, 0x52, 0x02, 0x68, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x68, 0x70, 0x5f, 0x6d, 0x61, 0x78,
  712 + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x68, 0x70, 0x4d, 0x61, 0x78, 0x12, 0x13, 0x0a,
  713 + 0x05, 0x62, 0x75, 0x79, 0x5f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x75,
  714 + 0x79, 0x52, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x5f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28,
  715 + 0x09, 0x52, 0x04, 0x70, 0x61, 0x79, 0x52, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x6c, 0x18, 0x0d,
  716 + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x63,
  717 + 0x72, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
  718 + 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e,
  719 + 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69,
  720 + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
  721 + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69,
  722 + 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73,
  723 + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73,
  724 + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x65, 0x61,
  725 + 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x74, 0x68,
  726 + 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6f,
  727 + 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x65, 0x77,
  728 + 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52,
  729 + 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a,
  730 + 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x14,
  731 + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69,
  732 + 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x70,
  733 + 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6f, 0x64,
  734 + 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61,
  735 + 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73,
  736 + 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72,
  737 + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
  738 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
  739 + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
  740 + 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61, 0x70, 0x74,
  741 + 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
  742 + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
  743 + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  744 + 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62,
  745 + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
746 } 746 }
747 747
748 var ( 748 var (