Commit 3cd84cccda05c916a6863d5ea8a4b11dae88005a

Authored by zhangqijia
1 parent 8b8ea9a0

fix: 裝備位置修改

cmd/gameserver/action/RoleAction.go
... ... @@ -96,13 +96,15 @@ func HeroEquipReferRpc(role *models.RoleModel, msg components.IMessage) (int32,
96 96 logger.Error("loginRpc err: %v", err)
97 97 return 1, nil
98 98 }
99   - for _, equipId := range req.EquipIds {
100   - ret := role.EquipmentRefer(equipId, req.HeroId, req.Refer)
101   - if ret != 0 {
102   - return ret, nil
  99 + for _, equipInfo := range req.EquipIds {
  100 + for equipId, pos := range common.StringToMapNum(equipInfo) {
  101 + ret := role.EquipmentRefer(equipId, req.HeroId, req.Refer, pos)
  102 + if ret != 0 {
  103 + logger.Error("ret: %d, equipId: %s, heroId: %s, refer: %d, pos:%d", ret, equipId, req.HeroId, req.Refer, pos)
  104 + }
103 105 }
104   - }
105 106  
  107 + }
106 108 return 0, nil
107 109 }
108 110  
... ...
docker/portforward.sh
1   -#ssh -N -f -R 120.26.43.151:8080:0.0.0.0:8080 dangge@120.26.43.151
2   -
  1 +# https://cloud.tencent.com/developer/article/1722055
3 2 account_port=8080
4 3 game_port=8849
5 4 gm_port=8880
... ... @@ -7,6 +6,8 @@ local_ip=192.168.0.100
7 6 remote_ip=47.118.38.251
8 7 remote_user=root
9 8  
  9 +arg='-o ServerAliveInterval=60 -o ServerAliveCountMax=2'
  10 +
10 11 ssh -N -f -R ${remote_ip}:${account_port}:${local_ip}:${account_port} ${remote_user}@${remote_ip}
11 12 ssh -N -f -R ${remote_ip}:${game_port}:${local_ip}:${game_port} ${remote_user}@${remote_ip}
12 13 ssh -N -f -R ${remote_ip}:${gm_port}:${local_ip}:${gm_port} ${remote_user}@${remote_ip}
13 14 \ No newline at end of file
... ...
models/hero.go
... ... @@ -22,13 +22,13 @@ func NewHero(hero *pb.Hero) *HeroModel {
22 22 return m
23 23 }
24 24  
25   -func (m *HeroModel) UpdateEquipment(key string, typ int32) {
26   - if typ == 0 {
27   - delete(m.Equipments, key)
28   - } else {
29   - m.Equipments[key] = typ
30   - }
  25 +func (m *HeroModel) DelEquipment(key string) {
  26 + delete(m.Equipments, key)
  27 + m.SetProperty("equipments", common.MapNumToString(m.Equipments))
  28 +}
31 29  
  30 +func (m *HeroModel) AddEquipment(key string, pos int32) {
  31 + m.Equipments[key] = pos
32 32 m.SetProperty("equipments", common.MapNumToString(m.Equipments))
33 33 }
34 34 func (m *HeroModel) UpLevel(exp int32) (int32, int32) {
... ...
models/rolePlugin.go
... ... @@ -7,6 +7,8 @@ import (
7 7 "pro2d/common/logger"
8 8 "pro2d/csvdata"
9 9 "pro2d/pb"
  10 + "strconv"
  11 + "strings"
10 12 )
11 13  
12 14 //背包系统
... ... @@ -168,7 +170,7 @@ func (m *RoleModel) Award(award common.IMapStringNum) common.IMapStringNum {
168 170 return award
169 171 }
170 172  
171   -func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
  173 +func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool, pos int32) int32 {
172 174 e, ok := m.Equipments[equipId]
173 175 if !ok {
174 176 return 2
... ... @@ -179,21 +181,23 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
179 181 // 1 脱
180 182 // 1.1 装备直接脱掉
181 183 // 2 戴
182   - // 2.1装备未被其他英雄穿戴直接穿, 如果其他英雄已经被穿戴,则脱了再穿
183   - // 2.2同类型装备是否穿戴, 已经被穿戴,则脱了再穿
  184 + // 2.0 判断是否能装上该位置
  185 + // 2.1装备未被其他英雄穿戴直接穿,同位置装备是否穿戴, 已经被穿戴,则脱了再穿
  186 + // 2.2 如果其他英雄已经被穿戴,则脱了再穿, 同位置装备是否穿戴, 已经被穿戴,则脱了再穿
184 187 h1 := m.Heros[heroId]
185 188 h2 := m.Heros[equip.Equip.HeroId]
186 189  
187 190 var outHero, inHero *HeroModel
188 191 inEquip := csvdata.Get().TbEquipmentData.Get(equip.Equip.GetTbId())
189 192 if !refer {
  193 + // 1
190 194 if h1 != nil {
191 195 outHero = h1.(*HeroModel)
192   - outHero.UpdateEquipment(equip.Equip.Id, 0)
  196 + outHero.DelEquipment(equip.Equip.Id)
193 197 }
194 198 if h2 != nil {
195 199 outHero = h2.(*HeroModel)
196   - outHero.UpdateEquipment(equip.Equip.Id, 0)
  200 + outHero.DelEquipment(equip.Equip.Id)
197 201 }
198 202 equip.SetProperty("heroid", "")
199 203  
... ... @@ -203,11 +207,23 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
203 207 }
204 208 inHero = h1.(*HeroModel)
205 209  
  210 + // 2.0
  211 + insert := false
  212 + for _, p := range strings.Split(inEquip.EquipPoz, "=") {
  213 + tpos, _ := strconv.Atoi(p)
  214 + if int32(tpos) == pos {
  215 + insert = true
  216 + }
  217 + }
  218 + if !insert {
  219 + return 4
  220 + }
  221 +
  222 + // 2.1
206 223 if equip.Equip.HeroId == "" {
207 224 var outEquipID string
208   - for id, tbId := range inHero.Equipments {
209   - tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
210   - if tmpEquip.EquipType == inEquip.EquipType {
  225 + for id, tpos := range inHero.Equipments {
  226 + if tpos == pos {
211 227 outEquipID = id
212 228 break
213 229 }
... ... @@ -218,23 +234,24 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
218 234 if ok {
219 235 outEquip := tmpEuqip.(*EquipModel)
220 236 outEquip.SetProperty("heroid", "")
221   - inHero.UpdateEquipment(outEquipID, 0)
  237 + inHero.DelEquipment(outEquipID)
222 238 }
223 239 }
224 240  
225   - inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipID)
  241 + inHero.AddEquipment(equip.Equip.Id, pos)
226 242 equip.SetProperty("heroid", inHero.Hero.Id)
  243 + equip.SetProperty("pos", pos)
227 244  
228   - } else if equip.Equip.HeroId != heroId {
  245 + } else {
229 246 if h2 == nil {
230 247 return 4
231 248 }
232 249  
  250 + // 2.2
233 251 outHero = h2.(*HeroModel)
234 252 var outEquipID string
235   - for id, tbId := range inHero.Equipments {
236   - tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
237   - if tmpEquip.EquipType == inEquip.EquipType {
  253 + for id, tpos := range inHero.Equipments {
  254 + if tpos == pos {
238 255 outEquipID = id
239 256 break
240 257 }
... ... @@ -245,13 +262,14 @@ func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
245 262 if ok {
246 263 outEquip := tmpEquip.(*EquipModel)
247 264 outEquip.SetProperty("heroid", "")
248   - inHero.UpdateEquipment(outEquipID, 0)
  265 + inHero.DelEquipment(outEquipID)
249 266 }
250 267 }
251 268  
252   - outHero.UpdateEquipment(equip.Equip.Id, 0)
253   - inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipType)
  269 + outHero.DelEquipment(equip.Equip.Id)
  270 + inHero.AddEquipment(equip.Equip.Id, pos)
254 271 equip.SetProperty("heroid", inHero.Hero.Id)
  272 + equip.SetProperty("pos", pos)
255 273 }
256 274 }
257 275 return 0
... ...
pb/game.pb.go
... ... @@ -319,7 +319,7 @@ type HeroEquipReferReq struct {
319 319 sizeCache protoimpl.SizeCache
320 320 unknownFields protoimpl.UnknownFields
321 321  
322   - EquipIds []string `protobuf:"bytes,1,rep,name=equipIds,proto3" json:"equipIds,omitempty"`
  322 + EquipIds []string `protobuf:"bytes,1,rep,name=equipIds,proto3" json:"equipIds,omitempty"` //[id=pos, id2=pos2]
323 323 HeroId string `protobuf:"bytes,2,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"`
324 324 Refer bool `protobuf:"varint,3,opt,name=refer,proto3" json:"refer,omitempty"` //true 穿戴, false 脱下
325 325 }
... ...
pb/models.pb.go
... ... @@ -94,7 +94,7 @@ type Hero struct {
94 94 Level int32 `protobuf:"varint,4,opt,name=level,proto3" json:"level,omitempty"`
95 95 ReinCount int32 `protobuf:"varint,5,opt,name=rein_count,json=reinCount,proto3" json:"rein_count,omitempty"`
96 96 ReinPoint int32 `protobuf:"varint,6,opt,name=rein_point,json=reinPoint,proto3" json:"rein_point,omitempty"`
97   - Equipments string `protobuf:"bytes,7,opt,name=equipments,proto3" json:"equipments,omitempty"` //"id=tb_id id1=tb_id1"
  97 + Equipments string `protobuf:"bytes,7,opt,name=equipments,proto3" json:"equipments,omitempty"` //"id=pos id1=pos1"
98 98 Exp int32 `protobuf:"varint,8,opt,name=exp,proto3" json:"exp,omitempty"`
99 99 }
100 100  
... ... @@ -197,6 +197,7 @@ type Equipment struct {
197 197 EnhanceLevel int32 `protobuf:"varint,4,opt,name=enhance_level,json=enhanceLevel,proto3" json:"enhance_level,omitempty"`
198 198 HeroId string `protobuf:"bytes,5,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"`
199 199 Quality int32 `protobuf:"varint,6,opt,name=quality,proto3" json:"quality,omitempty"`
  200 + Pos int32 `protobuf:"varint,7,opt,name=pos,proto3" json:"pos,omitempty"`
200 201 }
201 202  
202 203 func (x *Equipment) Reset() {
... ... @@ -273,6 +274,13 @@ func (x *Equipment) GetQuality() int32 {
273 274 return 0
274 275 }
275 276  
  277 +func (x *Equipment) GetPos() int32 {
  278 + if x != nil {
  279 + return x.Pos
  280 + }
  281 + return 0
  282 +}
  283 +
276 284 type Prop struct {
277 285 state protoimpl.MessageState
278 286 sizeCache protoimpl.SizeCache
... ... @@ -675,7 +683,7 @@ var file_models_proto_rawDesc = []byte{
675 683 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20,
676 684 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
677 685 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78,
678   - 0x70, 0x22, 0xa1, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12,
  686 + 0x70, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x12,
679 687 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
680 688 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
681 689 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x62, 0x5f, 0x69,
... ... @@ -685,64 +693,65 @@ var file_models_proto_rawDesc = []byte{
685 693 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
686 694 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71,
687 695 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,
  696 + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01,
  697 + 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x22, 0x2c, 0x0a, 0x04, 0x50, 0x72, 0x6f, 0x70, 0x12,
  698 + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
  699 + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
  700 + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x0e,
  701 + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17,
  702 + 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  703 + 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f,
  704 + 0x69, 0x64, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49,
  705 + 0x64, 0x31, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x32, 0x18, 0x04,
  706 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x32, 0x12, 0x19, 0x0a,
  707 + 0x08, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
  708 + 0x07, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x33, 0x22, 0x2f, 0x0a, 0x09, 0x49, 0x6e, 0x63, 0x72,
  709 + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
  710 + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02,
  711 + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x52, 0x6f,
  712 + 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
  713 + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  714 + 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03,
  715 + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
  716 + 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b,
  717 + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
  718 + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20,
  719 + 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x07,
  720 + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x68, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x68, 0x70, 0x5f, 0x6d,
  721 + 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x68, 0x70, 0x4d, 0x61, 0x78, 0x12,
  722 + 0x13, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x5f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
  723 + 0x62, 0x75, 0x79, 0x52, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x5f, 0x72, 0x18, 0x0c, 0x20,
  724 + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x79, 0x52, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x6c,
  725 + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x06, 0x69,
  726 + 0x6e, 0x63, 0x72, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f,
  727 + 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x73,
  728 + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x73, 0x12, 0x14, 0x0a,
  729 + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74,
  730 + 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x6c, 0x69,
  731 + 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x74, 0x68,
  732 + 0x65, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x61, 0x70, 0x6f,
  733 + 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77,
  734 + 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x73, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6f,
  735 + 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52,
  736 + 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6a,
  737 + 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28,
  738 + 0x0d, 0x52, 0x0c, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12,
  739 + 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74,
  740 + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
  741 + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x68,
  742 + 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d,
  743 + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x43,
  744 + 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61,
  745 + 0x73, 0x73, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x6e,
  746 + 0x63, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
  747 + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
  748 + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
  749 + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x43, 0x68, 0x61,
  750 + 0x70, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
  751 + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
  752 + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
  753 + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b,
  754 + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
746 755 }
747 756  
748 757 var (
... ...