diff --git a/bin/json/game_caravancity.json b/bin/json/game_caravancity.json index 97cecf142..a0f3d0613 100644 --- a/bin/json/game_caravancity.json +++ b/bin/json/game_caravancity.json @@ -39,10 +39,27 @@ "21000005" ], "specialnum": 500, + "exspecial_num": 2, "exspecial": [ - "21000009" + "21000009", + "21000004", + "21000021" + ], + "exspecial_weight": [ + 3000, + 1000, + 3000 + ], + "exspecialnum": [ + 150000, + 130000, + 160000 + ], + "exspecialnum_weight": [ + 3000, + 1000, + 3000 ], - "exspecialnum": 1500, "Orspecial": 1000, "checktime": 1800, "extalk": 11001, @@ -93,10 +110,27 @@ "21000009" ], "specialnum": 500, + "exspecial_num": 2, "exspecial": [ - "21000004" + "21000004", + "21000008", + "21000015" + ], + "exspecial_weight": [ + 3000, + 1000, + 3001 + ], + "exspecialnum": [ + 160000, + 120000, + 140000 + ], + "exspecialnum_weight": [ + 3000, + 1000, + 3001 ], - "exspecialnum": 1600, "Orspecial": 1000, "checktime": 1800, "extalk": 11001, @@ -148,10 +182,27 @@ "21000013" ], "specialnum": 500, + "exspecial_num": 2, "exspecial": [ - "21000005" + "21000005", + "21000012", + "21000008" + ], + "exspecial_weight": [ + 3000, + 1000, + 3002 + ], + "exspecialnum": [ + 170000, + 140000, + 130000 + ], + "exspecialnum_weight": [ + 3000, + 1000, + 3002 ], - "exspecialnum": 1700, "Orspecial": 1000, "checktime": 1800, "extalk": 11001, @@ -203,10 +254,27 @@ "21000017" ], "specialnum": 500, + "exspecial_num": 2, "exspecial": [ - "21000006" + "21000006", + "21000016", + "21000013" + ], + "exspecial_weight": [ + 3000, + 1000, + 3003 + ], + "exspecialnum": [ + 180000, + 170000, + 150000 + ], + "exspecialnum_weight": [ + 3000, + 1000, + 3003 ], - "exspecialnum": 1800, "Orspecial": 1000, "checktime": 1800, "extalk": 11001, @@ -257,10 +325,27 @@ "21000021" ], "specialnum": 500, + "exspecial_num": 2, "exspecial": [ - "21000007" + "21000007", + "21000020", + "21000006" + ], + "exspecial_weight": [ + 3000, + 1000, + 3004 + ], + "exspecialnum": [ + 190000, + 230000, + 120000 + ], + "exspecialnum_weight": [ + 3000, + 1000, + 3004 ], - "exspecialnum": 1900, "Orspecial": 1000, "checktime": 1800, "extalk": 11001, diff --git a/bin/json/game_drawpool.json b/bin/json/game_drawpool.json index 84e034af3..e104461c1 100644 --- a/bin/json/game_drawpool.json +++ b/bin/json/game_drawpool.json @@ -43,6 +43,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000001", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -98,6 +110,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000001", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -144,6 +168,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000021", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -190,6 +226,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000022", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -236,6 +284,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000023", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -282,6 +342,18 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000024", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] }, { @@ -328,6 +400,58 @@ "t": "gold", "n": 100 } + ], + "attgr_display": [ + { + "a": "item", + "t": "10000024", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } + ] + }, + { + "key": 8, + "recruitment_type": [], + "star3w": 0, + "star4w": 0, + "star5w": 0, + "protect": 0, + "p3pool": "", + "p4pool": "", + "p5pool": "", + "n3pool": "", + "n4pool": "", + "n5pool": "", + "baodi4": 0, + "baidi5": 0, + "etime": 0, + "permission": 0, + "consumeA": [ + { + "a": "item", + "t": "10000101", + "n": 100 + } + ], + "consumeA10": [], + "consumeB": [], + "consumeB10": [], + "attgr_display": [ + { + "a": "item", + "t": "10000101", + "n": 1 + }, + { + "a": "attr", + "t": "diamond", + "n": 1 + } ] } ] \ No newline at end of file diff --git a/bin/json/game_passon.json b/bin/json/game_passon.json index 8fa4ae00c..25d3266a0 100644 --- a/bin/json/game_passon.json +++ b/bin/json/game_passon.json @@ -13,7 +13,7 @@ }, { "exework": 2, - "openlv": 22, + "openlv": 20, "cd": 24, "sift": 3, "text": "passon_unlock_text_2", @@ -25,9 +25,9 @@ }, { "exework": 3, - "openlv": 24, + "openlv": 20, "cd": 24, - "sift": 3, + "sift": 4, "text": "passon_unlock_text_3", "remake": { "a": "attr", @@ -37,9 +37,9 @@ }, { "exework": 4, - "openlv": 26, + "openlv": 24, "cd": 24, - "sift": 4, + "sift": 5, "text": "passon_unlock_text_4", "remake": { "a": "attr", @@ -49,9 +49,9 @@ }, { "exework": 5, - "openlv": 28, + "openlv": 25, "cd": 24, - "sift": 4, + "sift": 3, "text": "passon_unlock_text_5", "remake": { "a": "attr", @@ -61,9 +61,9 @@ }, { "exework": 6, - "openlv": 30, + "openlv": 26, "cd": 24, - "sift": 5, + "sift": 3, "text": "passon_unlock_text_6", "remake": { "a": "attr", @@ -73,9 +73,9 @@ }, { "exework": 7, - "openlv": 32, + "openlv": 27, "cd": 24, - "sift": 3, + "sift": 4, "text": "passon_unlock_text_7", "remake": { "a": "attr", @@ -85,9 +85,9 @@ }, { "exework": 8, - "openlv": 34, + "openlv": 28, "cd": 24, - "sift": 4, + "sift": 5, "text": "passon_unlock_text_8", "remake": { "a": "attr", @@ -97,9 +97,9 @@ }, { "exework": 9, - "openlv": 36, + "openlv": 29, "cd": 24, - "sift": 5, + "sift": 3, "text": "passon_unlock_text_9", "remake": { "a": "attr", @@ -109,9 +109,9 @@ }, { "exework": 10, - "openlv": 38, + "openlv": 30, "cd": 24, - "sift": 3, + "sift": 4, "text": "passon_unlock_text_10", "remake": { "a": "attr", @@ -121,7 +121,7 @@ }, { "exework": 11, - "openlv": 40, + "openlv": 31, "cd": 24, "sift": 4, "text": "passon_unlock_text_11", @@ -133,7 +133,7 @@ }, { "exework": 12, - "openlv": 42, + "openlv": 32, "cd": 24, "sift": 5, "text": "passon_unlock_text_12", diff --git a/modules/caravan/api_buyorsell.go b/modules/caravan/api_buyorsell.go index d019019a3..153855fa4 100644 --- a/modules/caravan/api_buyorsell.go +++ b/modules/caravan/api_buyorsell.go @@ -81,19 +81,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe } } if !bFound { - if cityConf, e := this.module.configure.GetCaravanCity(req.City); e == nil { - for _, v := range cityConf.Exspecial { - if v == k { - price = cityConf.Exspecialnum * price / 1000 - } - } - } else { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, // 道具数量不足 - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } - } + price = cityInfo.ExspecialPCT * price / 1000 } addScore += price * v // 卖出收益 } diff --git a/modules/caravan/api_gotocity.go b/modules/caravan/api_gotocity.go index 5fcd2fb27..2e53dd0bc 100644 --- a/modules/caravan/api_gotocity.go +++ b/modules/caravan/api_gotocity.go @@ -9,7 +9,7 @@ import ( //参数校验 func (this *apiComp) GotoCityCheck(session comm.IUserSession, req *pb.CaravanGotoCityReq) (errdata *pb.ErrorData) { - if req.City == 0 || req.Ticket <= 0 { + if req.City == 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), @@ -20,23 +20,41 @@ func (this *apiComp) GotoCityCheck(session comm.IUserSession, req *pb.CaravanGot func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCityReq) (errdata *pb.ErrorData) { var ( - resp *pb.CaravanGotoCityResp - res *cfg.Gameatn - bNewTask bool + resp *pb.CaravanGotoCityResp + res *cfg.Gameatn + bNewTask bool + bConsumTick bool // 是否消耗门票 ) resp = &pb.CaravanGotoCityResp{} bNewTask = true + if req.Ticket == 0 { + bConsumTick = false + } if errdata = this.GotoCityCheck(session, req); errdata != nil { return // 参数校验失败直接返回 } list, _ := this.module.modelCaravan.getCaravanList(session.GetUserId()) + // 校验门票 + if d, err := this.module.configure.GetCaravanLv(list.Lv); err == nil { + bConsumTick = true + res = &cfg.Gameatn{ + A: d.Tickettop.A, + T: d.Tickettop.T, + N: req.Ticket, + } + } + if bConsumTick { + if errdata = this.module.CheckRes(session, []*cfg.Gameatn{res}); errdata != nil { // 校验门票数量 + return + } + } // 获取事件 if list.Eventid != 0 { if event, err := this.module.configure.GetCaravanEventById(list.Eventid); err == nil { // 校验任务是否超时 if list.Tasktime-configure.Now().Unix() > int64(event.Eventtime) { //TODO 任务超时 - + this.module.CheckCaravanTask(session, list) } if event.Mustdo == 1 { // 需要完成强制任务 errdata = &pb.ErrorData{ @@ -85,24 +103,10 @@ func (this *apiComp) GotoCity(session comm.IUserSession, req *pb.CaravanGotoCity } return } - // 校验门票 - if d, err := this.module.configure.GetCaravanLv(list.Lv); err == nil { - //d.Tickettop - res = &cfg.Gameatn{ - A: d.Tickettop.A, - T: d.Tickettop.T, - N: req.Ticket, + if bConsumTick { + if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{res}, true); errdata != nil { // 消耗门票数量 + return } - } else { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: err.Error(), - } - return - } - if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{res}, true); errdata != nil { // 校验门票数量 - return } list.Curcity = req.City diff --git a/modules/caravan/module.go b/modules/caravan/module.go index 316508932..5ed3f73f8 100644 --- a/modules/caravan/module.go +++ b/modules/caravan/module.go @@ -79,8 +79,12 @@ func (this *Caravan) InitCaravanCityData(uid string, data *pb.DBCaravan) { data.City = make(map[int32]*pb.CityInfo, 0) for _, v := range list { city := &pb.CityInfo{ - Special: []string{}, // 城市卖给玩家的商品 (注意 这里有库存 必须初始化 Count 字段数据) - Count: map[string]int32{}, // key 货物ID + Special: []string{}, + Count: map[string]int32{}, // 数量默认0 + Exspecial: []string{}, // 想要玩家买的商品 + ExspecialPCT: 0, + Nextexspecial: []string{}, // 下一次变动时间 + NextexspecialPCT: 0, } if len(v.Special) > int(v.Citytypenum) { @@ -92,13 +96,34 @@ func (this *Caravan) InitCaravanCityData(uid string, data *pb.DBCaravan) { } else { city.Special = append(city.Special, v.Special...) } - // for _, v1 := range city.Special { - // if conf, err := this.configure.GetCaravanGoods(v1); err == nil { - // city.Count[v1] = conf.Goodsnum - // } - // } + + if len(v.Exspecial) > int(v.ExspecialNum) { + ids := utils.RandomNumbers(0, len(v.Exspecial), int(v.ExspecialNum)) + for _, id := range ids { + city.Exspecial = append(city.Exspecial, v.Exspecial[id]) + + } + } else { + city.Exspecial = append(city.Exspecial, v.Exspecial...) + } + + city.ExspecialPCT = v.ExspecialnumWeight[comm.GetRandW(v.ExspecialnumWeight)] // 获取权重 + + if len(v.Exspecial) > int(v.ExspecialNum) { + ids := utils.RandomNumbers(0, len(v.Exspecial), int(v.ExspecialNum)) + for _, id := range ids { + city.Nextexspecial = append(city.Nextexspecial, v.Exspecial[id]) + + } + } else { + city.Nextexspecial = append(city.Nextexspecial, v.Exspecial...) + } + + city.ExspecialPCT = v.ExspecialnumWeight[comm.GetRandW(v.ExspecialnumWeight)] // 获取权重 + city.NextexspecialPCT = v.ExspecialnumWeight[comm.GetRandW(v.ExspecialnumWeight)] // 获取权重 data.City[v.Id] = city } + data.Rtime = configure.Now().Unix() // 修改时间 } // 初始化货物信息 @@ -158,12 +183,6 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) { } else { v.Special = append(v.Special, c.Special...) } - - // for _, v1 := range v.Special { - // if conf, err := this.configure.GetCaravanGoods(v1); err == nil { - // v.Count[v1] = conf.Goodsnum - // } - // } } } update["city"] = caravan.City @@ -229,6 +248,45 @@ func (this *Caravan) refreshCaravanCityInfo(uid string, caravan *pb.DBCaravan) { update["resettime"] = caravan.Resettime 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(v.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.NextexspecialPCT = conf.ExspecialnumWeight[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重 + } else { + v.Exspecial = make([]string, 0) + v.Exspecial = append(v.Exspecial, v.Nextexspecial...) + v.ExspecialPCT = v.NextexspecialPCT + } + + // 初始化下一天的信息 + if len(v.Exspecial) > int(conf.ExspecialNum) { + ids := utils.RandomNumbers(0, len(v.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.ExspecialnumWeight[comm.GetRandW(conf.ExspecialnumWeight)] // 获取权重 + } + + } + caravan.Rtime = caravan.Rtime + 24*3600 + update["rtime"] = caravan.Rtime + update["city"] = caravan.City + bChange = true + } if bChange { this.modelCaravan.modifyCaravanDataByObjId(uid, update) } diff --git a/modules/viking/api_challengeover.go b/modules/viking/api_challengeover.go index d54594637..681433040 100644 --- a/modules/viking/api_challengeover.go +++ b/modules/viking/api_challengeover.go @@ -97,8 +97,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal key := strconv.Itoa(int(req.BossId)) + "_" + strconv.Itoa(int(req.Difficulty)) if viking.BossTime[key] == 0 { // 新关卡挑战通过 发放首通奖励 - //viking.BossTime[key] = req.Report.Costtime - //mapData["bossTime"] = viking.BossTime // 更新时间 + if errdata = this.module.DispenseRes(session, vikingCfg.Firstprize, true); errdata != nil { return } @@ -112,8 +111,10 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal if req.Auto == 1 { viking.Round = make(map[int32]int32) viking.Round[req.Auto] = req.Report.Round + mapData["round"] = viking.Round } else if req.Auto > 1 { viking.Round[req.Auto] = req.Report.Round + mapData["round"] = viking.Round } if len(viking.Round) == 10 { var total int32 diff --git a/modules/viking/model_viking.go b/modules/viking/model_viking.go index 5764e39b2..fe2e0adfd 100644 --- a/modules/viking/model_viking.go +++ b/modules/viking/model_viking.go @@ -38,6 +38,7 @@ func (this *modelViking) getVikingList(uid string) (result *pb.DBViking, err err Boss: make(map[int32]int32), BossTime: make(map[string]int32), Ps: make(map[int32]int32), + Round: make(map[int32]int32), } err = nil this.module.modelViking.Add(uid, result) diff --git a/pb/caravan_db.pb.go b/pb/caravan_db.pb.go index 78ed79fb1..557654073 100644 --- a/pb/caravan_db.pb.go +++ b/pb/caravan_db.pb.go @@ -88,8 +88,12 @@ type CityInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Special []string `protobuf:"bytes,1,rep,name=special,proto3" json:"special"` // 城市卖给玩家的商品 - Count map[string]int32 `protobuf:"bytes,2,rep,name=count,proto3" json:"count" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 货物对应的数量 + Special []string `protobuf:"bytes,1,rep,name=special,proto3" json:"special"` // 城市卖给玩家的商品 + Count map[string]int32 `protobuf:"bytes,2,rep,name=count,proto3" json:"count" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 货物对应的数量 + Exspecial []string `protobuf:"bytes,3,rep,name=exspecial,proto3" json:"exspecial"` // 城市想要玩家卖给他的商品库 + ExspecialPCT int32 `protobuf:"varint,4,opt,name=exspecialPCT,proto3" json:"exspecialPCT"` //需求商品系数/千分比 + Nextexspecial []string `protobuf:"bytes,5,rep,name=nextexspecial,proto3" json:"nextexspecial"` // 第二天的 + NextexspecialPCT int32 `protobuf:"varint,6,opt,name=nextexspecialPCT,proto3" json:"nextexspecialPCT"` } func (x *CityInfo) Reset() { @@ -138,6 +142,34 @@ func (x *CityInfo) GetCount() map[string]int32 { return nil } +func (x *CityInfo) GetExspecial() []string { + if x != nil { + return x.Exspecial + } + return nil +} + +func (x *CityInfo) GetExspecialPCT() int32 { + if x != nil { + return x.ExspecialPCT + } + return 0 +} + +func (x *CityInfo) GetNextexspecial() []string { + if x != nil { + return x.Nextexspecial + } + return nil +} + +func (x *CityInfo) GetNextexspecialPCT() int32 { + if x != nil { + return x.NextexspecialPCT + } + return 0 +} + type BagInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -214,6 +246,7 @@ type DBCaravan struct { Baglimit int32 `protobuf:"varint,14,opt,name=baglimit,proto3" json:"baglimit"` // 背包上限 Citystime int64 `protobuf:"varint,15,opt,name=citystime,proto3" json:"citystime"` // 城市刷新时间 玩家身上的货物同时刷新 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"` // 客户端不用这个时间 } func (x *DBCaravan) Reset() { @@ -353,6 +386,13 @@ func (x *DBCaravan) GetOldprice() map[string]int32 { return nil } +func (x *DBCaravan) GetRtime() int64 { + if x != nil { + return x.Rtime + } + return 0 +} + type CaravanRankInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -458,77 +498,88 @@ var file_caravan_caravan_db_proto_rawDesc = []byte{ 0x75, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, - 0x8a, 0x01, 0x0a, 0x08, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x9e, 0x02, 0x0a, 0x08, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x22, 0xd6, 0x05, 0x0a, 0x09, 0x44, 0x42, 0x43, 0x61, 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, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x2b, 0x0a, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x47, 0x6f, 0x6f, 0x64, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x12, 0x28, 0x0a, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, - 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x75, 0x72, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x63, 0x75, 0x72, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, - 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, - 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x67, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x67, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x34, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x4f, 0x6c, - 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6f, 0x6c, 0x64, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x42, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, - 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x73, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x43, - 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x69, 0x74, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3b, 0x0a, 0x0d, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x01, 0x0a, - 0x0f, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, - 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x61, 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, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x43, 0x54, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, + 0x6c, 0x50, 0x43, 0x54, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x65, 0x78, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, + 0x78, 0x74, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x50, 0x43, 0x54, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x65, 0x78, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x50, 0x43, 0x54, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 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, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xec, 0x05, 0x0a, 0x09, 0x44, 0x42, 0x43, 0x61, + 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, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, + 0x61, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, + 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x6f, 0x6f, 0x64, + 0x73, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2e, 0x43, 0x69, 0x74, 0x79, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6c, + 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, + 0x6b, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x74, 0x61, 0x73, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x74, 0x61, 0x73, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x67, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x61, 0x67, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, + 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, + 0x6e, 0x2e, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x6f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x1a, + 0x42, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, + 0x2e, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4f, 0x6c, 0x64, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x61, 0x76, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, + 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, + 0x72, 0x61, 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 ( diff --git a/sys/configure/structs/Game.CaravanCityData.go b/sys/configure/structs/Game.CaravanCityData.go index 7e38af3f2..5633399c3 100644 --- a/sys/configure/structs/Game.CaravanCityData.go +++ b/sys/configure/structs/Game.CaravanCityData.go @@ -25,8 +25,11 @@ type GameCaravanCityData struct { Citytypenum int32 Special []string Specialnum int32 + ExspecialNum int32 Exspecial []string - Exspecialnum int32 + ExspecialWeight []int32 + Exspecialnum []int32 + ExspecialnumWeight []int32 Orspecial int32 Checktime int32 Extalk int32 @@ -111,6 +114,7 @@ func (_v *GameCaravanCityData)Deserialize(_buf map[string]interface{}) (err erro } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["specialnum"].(float64); !_ok_ { err = errors.New("specialnum error"); return }; _v.Specialnum = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exspecial_num"].(float64); !_ok_ { err = errors.New("exspecial_num error"); return }; _v.ExspecialNum = int32(_tempNum_) } { var _arr_ []interface{} var _ok_ bool @@ -125,7 +129,48 @@ func (_v *GameCaravanCityData)Deserialize(_buf map[string]interface{}) (err erro } } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exspecialnum"].(float64); !_ok_ { err = errors.New("exspecialnum error"); return }; _v.Exspecialnum = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["exspecial_weight"].([]interface{}); !_ok_ { err = errors.New("exspecial_weight error"); return } + + _v.ExspecialWeight = make([]int32, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ int32 + { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } + _v.ExspecialWeight = append(_v.ExspecialWeight, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["exspecialnum"].([]interface{}); !_ok_ { err = errors.New("exspecialnum error"); return } + + _v.Exspecialnum = make([]int32, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ int32 + { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } + _v.Exspecialnum = append(_v.Exspecialnum, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["exspecialnum_weight"].([]interface{}); !_ok_ { err = errors.New("exspecialnum_weight error"); return } + + _v.ExspecialnumWeight = make([]int32, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ int32 + { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } + _v.ExspecialnumWeight = append(_v.ExspecialnumWeight, _list_v_) + } + } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Orspecial"].(float64); !_ok_ { err = errors.New("Orspecial error"); return }; _v.Orspecial = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["checktime"].(float64); !_ok_ { err = errors.New("checktime error"); return }; _v.Checktime = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["extalk"].(float64); !_ok_ { err = errors.New("extalk error"); return }; _v.Extalk = int32(_tempNum_) } diff --git a/sys/configure/structs/Game.DrawPoolData.go b/sys/configure/structs/Game.DrawPoolData.go index 75f806f54..25a743cad 100644 --- a/sys/configure/structs/Game.DrawPoolData.go +++ b/sys/configure/structs/Game.DrawPoolData.go @@ -31,6 +31,7 @@ type GameDrawPoolData struct { ConsumeA10 []*Gameatn ConsumeB []*Gameatn ConsumeB10 []*Gameatn + AttgrDisplay []*Gameatn } const TypeId_GameDrawPoolData = 271747014 @@ -125,6 +126,20 @@ func (_v *GameDrawPoolData)Deserialize(_buf map[string]interface{}) (err error) } } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["attgr_display"].([]interface{}); !_ok_ { err = errors.New("attgr_display error"); return } + + _v.AttgrDisplay = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.AttgrDisplay = append(_v.AttgrDisplay, _list_v_) + } + } + return }