Commit 98cfa13af4029c53fb99f03119e591be65e455a1

Authored by zhangqijia
1 parent 601ab22b

fix: 批量穿戴裝備

cmd/gameserver/action/RoleAction.go
... ... @@ -96,90 +96,10 @@ 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   -
100   - e, ok := role.Equipments[req.EquipId]
101   - if !ok {
102   - return 2, nil
103   - }
104   -
105   - equip := e.(*models.EquipModel)
106   -
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)
125   - }
126   - equip.SetProperty("heroid", "")
127   -
128   - } else {
129   - if h1 == nil {
130   - return 3, nil
131   - }
132   - inHero = h1.(*models.HeroModel)
133   -
134   - if equip.Equip.HeroId == "" {
135   - var outEquipID string
136   - for id, tbId := range inHero.Equipments {
137   - tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
138   - if tmpEquip.EquipType == inEquip.EquipType {
139   - outEquipID = id
140   - break
141   - }
142   - }
143   -
144   - if outEquipID != "" {
145   - tmpEuqip, ok := role.Equipments[outEquipID]
146   - if ok {
147   - outEquip := tmpEuqip.(*models.EquipModel)
148   - outEquip.SetProperty("heroid", "")
149   - inHero.UpdateEquipment(outEquipID, 0)
150   - }
151   - }
152   -
153   - inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipID)
154   - equip.SetProperty("heroid", inHero.Hero.Id)
155   -
156   - } else if equip.Equip.HeroId != req.HeroId {
157   - if h2 == nil {
158   - return 4, nil
159   - }
160   -
161   - outHero = h2.(*models.HeroModel)
162   - var outEquipID string
163   - for id, tbId := range inHero.Equipments {
164   - tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
165   - if tmpEquip.EquipType == inEquip.EquipType {
166   - outEquipID = id
167   - break
168   - }
169   - }
170   -
171   - if outEquipID != "" {
172   - tmpEquip, ok := role.Equipments[outEquipID]
173   - if ok {
174   - outEquip := tmpEquip.(*models.EquipModel)
175   - outEquip.SetProperty("heroid", "")
176   - inHero.UpdateEquipment(outEquipID, 0)
177   - }
178   - }
179   -
180   - outHero.UpdateEquipment(equip.Equip.Id, 0)
181   - inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipType)
182   - equip.SetProperty("heroid", inHero.Hero.Id)
  99 + for _, equipId := range req.EquipIds {
  100 + ret := role.EquipmentRefer(equipId, req.HeroId, req.Refer)
  101 + if ret != 0 {
  102 + return ret, nil
183 103 }
184 104 }
185 105  
... ...
docker/restart.sh
... ... @@ -3,4 +3,5 @@
3 3 /usr/local/bin/docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml down
4 4 /usr/local/bin/docker load < /Users/zhaolu/Documents/pro2d/pro2d.tar
5 5 /usr/local/bin/docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml up -d
6   -/usr/local/bin/docker ps -a
7 6 \ No newline at end of file
  7 +/usr/local/bin/docker rmi $(/usr/local/bin/docker images -f "dangling=true" -q)
  8 +/usr/local/bin/docker ps -a
... ...
models/rolePlugin.go
... ... @@ -167,3 +167,92 @@ func (m *RoleModel) Award(award common.IMapStringNum) common.IMapStringNum {
167 167 m.AddItems(award)
168 168 return award
169 169 }
  170 +
  171 +func (m *RoleModel) EquipmentRefer(equipId, heroId string, refer bool) int32 {
  172 + e, ok := m.Equipments[equipId]
  173 + if !ok {
  174 + return 2
  175 + }
  176 +
  177 + equip := e.(*EquipModel)
  178 +
  179 + // 1 脱
  180 + // 1.1 装备直接脱掉
  181 + // 2 戴
  182 + // 2.1装备未被其他英雄穿戴直接穿, 如果其他英雄已经被穿戴,则脱了再穿
  183 + // 2.2同类型装备是否穿戴, 已经被穿戴,则脱了再穿
  184 + h1 := m.Heros[heroId]
  185 + h2 := m.Heros[equip.Equip.HeroId]
  186 +
  187 + var outHero, inHero *HeroModel
  188 + inEquip := csvdata.Get().TbEquipmentData.Get(equip.Equip.GetTbId())
  189 + if !refer {
  190 + if h1 != nil {
  191 + outHero = h1.(*HeroModel)
  192 + outHero.UpdateEquipment(equip.Equip.Id, 0)
  193 + }
  194 + if h2 != nil {
  195 + outHero = h2.(*HeroModel)
  196 + outHero.UpdateEquipment(equip.Equip.Id, 0)
  197 + }
  198 + equip.SetProperty("heroid", "")
  199 +
  200 + } else {
  201 + if h1 == nil {
  202 + return 3
  203 + }
  204 + inHero = h1.(*HeroModel)
  205 +
  206 + if equip.Equip.HeroId == "" {
  207 + var outEquipID string
  208 + for id, tbId := range inHero.Equipments {
  209 + tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
  210 + if tmpEquip.EquipType == inEquip.EquipType {
  211 + outEquipID = id
  212 + break
  213 + }
  214 + }
  215 +
  216 + if outEquipID != "" {
  217 + tmpEuqip, ok := m.Equipments[outEquipID]
  218 + if ok {
  219 + outEquip := tmpEuqip.(*EquipModel)
  220 + outEquip.SetProperty("heroid", "")
  221 + inHero.UpdateEquipment(outEquipID, 0)
  222 + }
  223 + }
  224 +
  225 + inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipID)
  226 + equip.SetProperty("heroid", inHero.Hero.Id)
  227 +
  228 + } else if equip.Equip.HeroId != heroId {
  229 + if h2 == nil {
  230 + return 4
  231 + }
  232 +
  233 + outHero = h2.(*HeroModel)
  234 + var outEquipID string
  235 + for id, tbId := range inHero.Equipments {
  236 + tmpEquip := csvdata.Get().TbEquipmentData.Get(tbId)
  237 + if tmpEquip.EquipType == inEquip.EquipType {
  238 + outEquipID = id
  239 + break
  240 + }
  241 + }
  242 +
  243 + if outEquipID != "" {
  244 + tmpEquip, ok := m.Equipments[outEquipID]
  245 + if ok {
  246 + outEquip := tmpEquip.(*EquipModel)
  247 + outEquip.SetProperty("heroid", "")
  248 + inHero.UpdateEquipment(outEquipID, 0)
  249 + }
  250 + }
  251 +
  252 + outHero.UpdateEquipment(equip.Equip.Id, 0)
  253 + inHero.UpdateEquipment(equip.Equip.Id, inEquip.EquipType)
  254 + equip.SetProperty("heroid", inHero.Hero.Id)
  255 + }
  256 + }
  257 + return 0
  258 +}
... ...
pb/game.pb.go
... ... @@ -319,9 +319,9 @@ type HeroEquipReferReq struct {
319 319 sizeCache protoimpl.SizeCache
320 320 unknownFields protoimpl.UnknownFields
321 321  
322   - EquipId string `protobuf:"bytes,1,opt,name=equipId,proto3" json:"equipId,omitempty"`
323   - HeroId string `protobuf:"bytes,2,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"`
324   - Refer bool `protobuf:"varint,3,opt,name=refer,proto3" json:"refer,omitempty"` //true 穿戴, false 脱下
  322 + EquipIds []string `protobuf:"bytes,1,rep,name=equipIds,proto3" json:"equipIds,omitempty"`
  323 + HeroId string `protobuf:"bytes,2,opt,name=hero_id,json=heroId,proto3" json:"hero_id,omitempty"`
  324 + Refer bool `protobuf:"varint,3,opt,name=refer,proto3" json:"refer,omitempty"` //true 穿戴, false 脱下
325 325 }
326 326  
327 327 func (x *HeroEquipReferReq) Reset() {
... ... @@ -356,11 +356,11 @@ func (*HeroEquipReferReq) Descriptor() ([]byte, []int) {
356 356 return file_game_proto_rawDescGZIP(), []int{6}
357 357 }
358 358  
359   -func (x *HeroEquipReferReq) GetEquipId() string {
  359 +func (x *HeroEquipReferReq) GetEquipIds() []string {
360 360 if x != nil {
361   - return x.EquipId
  361 + return x.EquipIds
362 362 }
363   - return ""
  363 + return nil
364 364 }
365 365  
366 366 func (x *HeroEquipReferReq) GetHeroId() string {
... ... @@ -931,66 +931,66 @@ var file_game_proto_rawDesc = []byte{
931 931 0x65, 0x63, 0x74, 0x52, 0x73, 0x70, 0x22, 0x31, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
932 932 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18,
933 933 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54,
934   - 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5c, 0x0a, 0x11, 0x48, 0x65, 0x72,
935   - 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18,
936   - 0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
937   - 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f,
938   - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49,
939   - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
940   - 0x52, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x07, 0x52, 0x6f, 0x6c, 0x65,
941   - 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
942   - 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52,
943   - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x03, 0x20,
944   - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72,
945   - 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18,
946   - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54,
947   - 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x31, 0x0a, 0x0a, 0x65, 0x71, 0x75,
948   - 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
949   - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
950   - 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x15,
951   - 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
952   - 0x74, 0x79, 0x52, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
953   - 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20,
  934 + 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5e, 0x0a, 0x11, 0x48, 0x65, 0x72,
  935 + 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a,
  936 + 0x0a, 0x08, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
  937 + 0x52, 0x08, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65,
  938 + 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72,
  939 + 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
  940 + 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x66, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x07, 0x52, 0x6f,
  941 + 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20,
954 942 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52, 0x6f, 0x6c,
955   - 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55,
956   - 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x12, 0x14, 0x0a,
957   - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74,
958   - 0x65, 0x6d, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72,
959   - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d,
960   - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x50,
961   - 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c,
962   - 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f,
963   - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
964   - 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
965   - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64,
966   - 0x22, 0x7b, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c,
967   - 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x5f,
968   - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
969   - 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
970   - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x49, 0x64,
971   - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
972   - 0x70, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18,
973   - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0xc1, 0x01,
974   - 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52,
975   - 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
976   - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65,
977   - 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x18, 0x02, 0x20,
978   - 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x12, 0x25, 0x0a, 0x0e,
979   - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
980   - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6d, 0x6f,
981   - 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20,
982   - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70,
983   - 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12,
984   - 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
985   - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72,
986   - 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65,
987   - 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
988   - 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e,
989   - 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70,
990   - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e,
991   - 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70,
992   - 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
993   - 0x6f, 0x74, 0x6f, 0x33,
  943 + 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18,
  944 + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48,
  945 + 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x65, 0x61,
  946 + 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73,
  947 + 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x31, 0x0a, 0x0a, 0x65,
  948 + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
  949 + 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
  950 + 0x6e, 0x74, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x49,
  951 + 0x0a, 0x15, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70,
  952 + 0x65, 0x72, 0x74, 0x79, 0x52, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
  953 + 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18,
  954 + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x52,
  955 + 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x6f, 0x6c,
  956 + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x12,
  957 + 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
  958 + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x65,
  959 + 0x61, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74,
  960 + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
  961 + 0x22, 0x50, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74,
  962 + 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
  963 + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70,
  964 + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f,
  965 + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e,
  966 + 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74,
  967 + 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
  968 + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70,
  969 + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f,
  970 + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e,
  971 + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
  972 + 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69,
  973 + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22,
  974 + 0xc1, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c,
  975 + 0x65, 0x52, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x76,
  976 + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65,
  977 + 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x18,
  978 + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x12, 0x25,
  979 + 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
  980 + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x61,
  981 + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18,
  982 + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a,
  983 + 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70, 0x61, 0x73,
  984 + 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
  985 + 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68,
  986 + 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
  987 + 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03,
  988 + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d,
  989 + 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75,
  990 + 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
  991 + 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x71, 0x75,
  992 + 0x69, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06,
  993 + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
994 994 }
995 995  
996 996 var (
... ...