This commit is contained in:
liwei 2023-08-03 17:21:57 +08:00
commit 29a423ae74
6 changed files with 202 additions and 116 deletions

View File

@ -16434,6 +16434,88 @@
} }
] ]
}, },
{
"id": "17110001",
"name": {
"key": "item_item_name_374",
"text": "3种族招募卡自选箱"
},
"usetype": 4,
"color": 5,
"bagtype": 2,
"index": 1,
"special_type": 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": "",
"intr": {
"key": "item_item_intr_383",
"text": "可以从中自由选择3种阵营招募卷的宝箱"
},
"describe": {
"key": "item_item_describe_383",
"text": ""
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
]
},
{
"id": "10000039",
"name": {
"key": "item_item_name_374",
"text": "石阵秘境宝箱钥匙"
},
"usetype": 1,
"color": 4,
"bagtype": 0,
"index": 1,
"special_type": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 0,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [],
"use_skip": 11001,
"upper_limit": 999,
"img": "item_10000035",
"intr": {
"key": "item_item_intr_380",
"text": "鹦鹉螺较为罕见,又因其外形精巧美丽,因此成为稀缺货币的代名词。人们即使历经磨难也只能得到很少的鹦鹉螺,收到它作为奖励是一件非常自豪骄傲的事。"
},
"describe": {
"key": "item_item_describe_380",
"text": "此处是包装描述"
},
"sale": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
]
},
{ {
"id": "17110001", "id": "17110001",
"name": { "name": {

View File

@ -482,8 +482,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3100
}, },
{ {
"id": "passcheck_3", "id": "passcheck_3",
@ -496,8 +495,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3200
}, },
{ {
"id": "passcheck_4", "id": "passcheck_4",
@ -510,8 +508,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "68元", "show": "68元",
"image": "", "image": ""
"integral": 3300
}, },
{ {
"id": "passcheck_5", "id": "passcheck_5",
@ -524,8 +521,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "128元", "show": "128元",
"image": "", "image": ""
"integral": 3400
}, },
{ {
"id": "passcheck_6", "id": "passcheck_6",
@ -538,8 +534,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3500
}, },
{ {
"id": "passcheck_7", "id": "passcheck_7",
@ -552,8 +547,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3600
}, },
{ {
"id": "passcheck_8", "id": "passcheck_8",
@ -566,8 +560,7 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3700
}, },
{ {
"id": "passcheck_9", "id": "passcheck_9",
@ -580,7 +573,6 @@
"channel": "0", "channel": "0",
"text": "0", "text": "0",
"show": "30元", "show": "30元",
"image": "", "image": ""
"integral": 3800
} }
] ]

View File

@ -197,12 +197,11 @@ func (this *configureComp) GetCaravanInitCity() (initcity int32) {
// 获取商店刷新时间 // 获取商店刷新时间
func (this *configureComp) GetCityRefreshTime() int32 { func (this *configureComp) GetCityRefreshTime() int32 {
if v, err := this.GetConfigure(game_caravan); err == nil { if v, err := this.GetConfigure(game_caravan_thing); err == nil {
if configure, ok := v.(*cfg.GameCaravanCity); ok { if configure, ok := v.(*cfg.GameCaravanThing); ok {
for _, v := range configure.GetDataList() { for _, v := range configure.GetDataList() {
return v.Checktime return v.Changetime
} }
} }
} else { } else {
log.Errorf("get GetCaravanInitCity conf err:%v", err) log.Errorf("get GetCaravanInitCity conf err:%v", err)

View File

@ -53,6 +53,8 @@ func (this *modelCaravan) getCaravanList(uid string) (result *pb.DBCaravan, err
result.Resettime = configure.Now().Unix() - (subTime % sTime) + sTime result.Resettime = configure.Now().Unix() - (subTime % sTime) + sTime
//result.Resettime = +int64(this.module.ModuleTools.GetGlobalConf().BusinessRewardday * 24 * 3600) //result.Resettime = +int64(this.module.ModuleTools.GetGlobalConf().BusinessRewardday * 24 * 3600)
result.Citystime = configure.Now().Unix() result.Citystime = configure.Now().Unix()
result.Rtime = configure.Now().Unix()
result.Lv = 1 result.Lv = 1
result.Curcity = this.module.configure.GetCaravanInitCity() // 获取默认城市 result.Curcity = this.module.configure.GetCaravanInitCity() // 获取默认城市
if conf, err := this.module.configure.GetCaravanLv(result.Lv); err == nil { if conf, err := this.module.configure.GetCaravanLv(result.Lv); err == nil {

View File

@ -119,7 +119,6 @@ func (this *Caravan) InitCaravanCityData(uid string, data *pb.DBCaravan) {
city.Nextexspecial = append(city.Nextexspecial, v.Exspecial...) city.Nextexspecial = append(city.Nextexspecial, v.Exspecial...)
} }
//city.ExspecialPCT = v.Exspecialnum[comm.GetRandW(v.ExspecialnumWeight)] // 获取权重
city.NextexspecialPCT = v.Exspecialnum[int(comm.GetRandW(v.ExspecialnumWeight))] // 获取权重 city.NextexspecialPCT = v.Exspecialnum[int(comm.GetRandW(v.ExspecialnumWeight))] // 获取权重
data.City[v.Id] = city data.City[v.Id] = city
} }
@ -166,28 +165,67 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) {
curTime = configure.Now().Unix() curTime = configure.Now().Unix()
update = make(map[string]interface{}) update = make(map[string]interface{})
changeTime = this.configure.GetCityRefreshTime() // 3分钟 changeTime = this.configure.GetCityRefreshTime() // 3分钟
subTime := int32(curTime - caravan.Citystime)
if subTime >= changeTime { // 刷新城市货物信息
bChange = true if !utils.IsToday(caravan.Citystime) {
for k, v := range caravan.City { list := this.configure.GetAllCaravanCity()
if c, _ := this.configure.GetCaravanCity(k); c != nil { for _, conf := range list {
if v, ok := caravan.City[conf.Id]; ok {
v.Count = make(map[string]int32) // 初始化城市信息 v.Count = make(map[string]int32) // 初始化城市信息
v.Special = []string{} v.Special = []string{}
if len(c.Special) > int(c.Citytypenum) { if len(conf.Special) > int(conf.Citytypenum) {
ids := utils.RandomNumbers(0, len(c.Special), int(c.Citytypenum)) ids := utils.RandomNumbers(0, len(conf.Special), int(conf.Citytypenum))
for _, id := range ids { for _, id := range ids {
v.Special = append(v.Special, c.Special[id]) v.Special = append(v.Special, conf.Special[id])
} }
} else { } else {
v.Special = append(v.Special, c.Special...) v.Special = append(v.Special, conf.Special...)
} }
if utils.IsToday(caravan.Citystime - 24*3600) {
v.Exspecial = make([]string, 0)
v.Exspecial = append(v.Exspecial, v.Nextexspecial...)
v.ExspecialPCT = v.NextexspecialPCT
} else { // 初始化今天
v.Exspecial = make([]string, 0)
// 初始化下一天的信息
if len(v.Exspecial) > int(conf.ExspecialNum) {
ids := utils.RandomNumbers(0, len(conf.Exspecial), int(conf.ExspecialNum))
for _, id := range ids {
v.Exspecial = append(v.Exspecial, conf.Exspecial[id])
} }
} else {
v.Exspecial = append(v.Exspecial, conf.Exspecial...)
} }
v.ExspecialPCT = conf.Exspecialnum[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重
}
/////////////////////
v.Nextexspecial = []string{}
// 初始化下一天的信息
if len(v.Exspecial) > int(conf.ExspecialNum) {
ids := utils.RandomNumbers(0, len(conf.Exspecial), int(conf.ExspecialNum))
for _, id := range ids {
v.Nextexspecial = append(v.Nextexspecial, conf.Exspecial[id])
}
} else {
v.Nextexspecial = append(v.Nextexspecial, conf.Exspecial...)
}
v.NextexspecialPCT = conf.Exspecialnum[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重
}
}
caravan.Citystime = configure.Now().Unix() // 设置今天的时间
update["city"] = caravan.City update["city"] = caravan.City
update["citystime"] = caravan.Citystime
}
subTime := int32(curTime - caravan.Itemtime)
if subTime >= changeTime {
bChange = true
icount := int32(subTime / changeTime) // 循环周期 icount := int32(subTime / changeTime) // 循环周期
caravan.Citystime += int64(changeTime * icount) caravan.Itemtime += int64(changeTime * icount)
update["citystime"] = caravan.Citystime update["citystime"] = caravan.Itemtime
for k, v := range caravan.Goods { for k, v := range caravan.Goods {
if c, err := this.configure.GetCaravanGoods(k); err == nil { if c, err := this.configure.GetCaravanGoods(k); err == nil {
caravan.Oldprice[k] = v.Price caravan.Oldprice[k] = v.Price
@ -237,54 +275,17 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) {
} }
} }
} }
update["itemtime"] = caravan.Itemtime
update["goods"] = caravan.Goods update["goods"] = caravan.Goods
update["oldprice"] = caravan.Oldprice update["oldprice"] = caravan.Oldprice
} }
endTime := utils.WeekIntervalTime(0) // endTime := utils.WeekIntervalTime(0)
if caravan.Resettime != endTime { // if caravan.Resettime != endTime {
caravan.Resettime = endTime // caravan.Resettime = endTime
update["resettime"] = caravan.Resettime // update["resettime"] = caravan.Resettime
bChange = true // bChange = true
} // }
if utils.IsToday(caravan.Rtime) { // 是今天
list := this.configure.GetAllCaravanCity()
for _, conf := range list {
if v, ok := caravan.City[conf.Id]; ok {
if len(v.Nextexspecial) == 0 || v.NextexspecialPCT == 0 { // 没有数据 则构建一条数据
if len(v.Exspecial) > int(conf.ExspecialNum) {
ids := utils.RandomNumbers(0, len(conf.Exspecial), int(conf.ExspecialNum))
for _, id := range ids {
v.Exspecial = append(v.Exspecial, conf.Exspecial[id])
}
} else {
v.Exspecial = append(v.Exspecial, conf.Exspecial...)
}
v.ExspecialPCT = conf.Exspecialnum[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重
} else {
v.Exspecial = make([]string, 0)
v.Exspecial = append(v.Exspecial, v.Nextexspecial...)
v.ExspecialPCT = v.NextexspecialPCT
}
v.Nextexspecial = []string{}
// 初始化下一天的信息
if len(v.Exspecial) > int(conf.ExspecialNum) {
ids := utils.RandomNumbers(0, len(conf.Exspecial), int(conf.ExspecialNum))
for _, id := range ids {
v.Nextexspecial = append(v.Nextexspecial, conf.Exspecial[id])
}
} else {
v.Nextexspecial = append(v.Nextexspecial, conf.Exspecial...)
}
v.NextexspecialPCT = conf.Exspecialnum[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重
}
}
caravan.Rtime = caravan.Rtime + 24*3600
update["rtime"] = caravan.Rtime
update["city"] = caravan.City
bChange = true
}
if bChange { if bChange {
this.modelCaravan.modifyCaravanDataByObjId(uid, update) this.modelCaravan.modifyCaravanDataByObjId(uid, update)
} }

View File

@ -244,11 +244,12 @@ type DBCaravan struct {
Eventid int32 `protobuf:"varint,12,opt,name=eventid,proto3" json:"eventid"` // 特殊事件ID(事件配置唯一id) Eventid int32 `protobuf:"varint,12,opt,name=eventid,proto3" json:"eventid"` // 特殊事件ID(事件配置唯一id)
Tasktime int64 `protobuf:"varint,13,opt,name=tasktime,proto3" json:"tasktime"` // 任务触发时间 Tasktime int64 `protobuf:"varint,13,opt,name=tasktime,proto3" json:"tasktime"` // 任务触发时间
Baglimit int32 `protobuf:"varint,14,opt,name=baglimit,proto3" json:"baglimit"` // 背包上限 Baglimit int32 `protobuf:"varint,14,opt,name=baglimit,proto3" json:"baglimit"` // 背包上限
Citystime int64 `protobuf:"varint,15,opt,name=citystime,proto3" json:"citystime"` // 城市刷新时间 玩家身上的货物同时刷新 Citystime int64 `protobuf:"varint,15,opt,name=citystime,proto3" json:"citystime"` // 城市刷新时间 固定每天0点刷新
Oldprice map[string]int32 `protobuf:"bytes,16,rep,name=oldprice,proto3" json:"oldprice" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 上一次价格 key 货物ID Oldprice map[string]int32 `protobuf:"bytes,16,rep,name=oldprice,proto3" json:"oldprice" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 上一次价格 key 货物ID
Rtime int64 `protobuf:"varint,17,opt,name=rtime,proto3" json:"rtime"` // 客户端不用这个时间 Rtime int64 `protobuf:"varint,17,opt,name=rtime,proto3" json:"rtime"` // 客户端不用这个时间
Group map[int32]bool `protobuf:"bytes,18,rep,name=group,proto3" json:"group" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //服务器用 Group map[int32]bool `protobuf:"bytes,18,rep,name=group,proto3" json:"group" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //服务器用
Reward map[int32]bool `protobuf:"bytes,19,rep,name=reward,proto3" json:"reward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 记录盈利奖励 Reward map[int32]bool `protobuf:"bytes,19,rep,name=reward,proto3" json:"reward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 记录盈利奖励
Itemtime int64 `protobuf:"varint,20,opt,name=itemtime,proto3" json:"itemtime"` // 玩家身上的货物同时刷新
} }
func (x *DBCaravan) Reset() { func (x *DBCaravan) Reset() {
@ -409,6 +410,13 @@ func (x *DBCaravan) GetReward() map[int32]bool {
return nil return nil
} }
func (x *DBCaravan) GetItemtime() int64 {
if x != nil {
return x.Itemtime
}
return 0
}
type CaravanRankInfo struct { type CaravanRankInfo struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -535,7 +543,7 @@ var file_caravan_caravan_db_proto_rawDesc = []byte{
0x22, 0x35, 0x0a, 0x07, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x22, 0x35, 0x0a, 0x07, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xbe, 0x07, 0x0a, 0x09, 0x44, 0x42, 0x43, 0x61, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xda, 0x07, 0x0a, 0x09, 0x44, 0x42, 0x43, 0x61,
0x72, 0x61, 0x76, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
@ -571,44 +579,46 @@ var file_caravan_caravan_db_proto_rawDesc = []byte{
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x06,
0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44,
0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x42, 0x0a, 0x0a, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x42, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x1a, 0x40, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x0a,
0x12, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x06, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05,
0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x47, 0x6f,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x6f, 0x64, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42,
0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x0a, 0x09, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x32, 0x09, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43,
0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x38, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x0b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72,
0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12,
0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61,
0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f,
0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x6e, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68,
0x09, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x4c, 0x76, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x61,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x76, 0x61, 0x6e, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x61, 0x72,
0x61, 0x76, 0x61, 0x6e, 0x4c, 0x76, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (