From 3d80bf1af6ef6314a19203eddbf86efb56d43960 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 21 Jun 2023 16:24:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/api_drawCardv2.go | 396 +++++++++++++++++++++++++++++++++ modules/hero/configure_comp.go | 50 +++++ modules/hero/model_record.go | 3 + pb/hero_db.pb.go | 170 +++++++++++++- 4 files changed, 614 insertions(+), 5 deletions(-) create mode 100644 modules/hero/api_drawCardv2.go diff --git a/modules/hero/api_drawCardv2.go b/modules/hero/api_drawCardv2.go new file mode 100644 index 000000000..136b7dc33 --- /dev/null +++ b/modules/hero/api_drawCardv2.go @@ -0,0 +1,396 @@ +package hero + +import ( + "crypto/rand" + "go_dreamfactory/comm" + "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" + "math/big" +) + +func (this *apiComp) DrawCardV2Check(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) { + if req.DrawType < 0 && (req.DrawCount == 1 || req.DrawCount == 10) { // 只能是单抽或10抽 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + } + return +} + +//抽卡 +func (this *apiComp) DrawCardV2(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) { + var ( + szCards []string // 最终抽到的卡牌 + drawCount int32 // 抽卡次数 + szStar []int32 //星级 + costRes []*cfg.Gameatn // 消耗 + star4Max int32 // 10连抽最大4星数量 + star5Max int32 // 10连抽最大5星数量 + cfgDraw *cfg.GameGlobalData + costAtn *cfg.Gameatn + heroRecord *pb.DBHeroRecord + pool string // 当前抽对应的卡池 + atno []*pb.UserAtno // 最终获得的资源 + strPool []string // 10连跨多个卡池情况 + update map[string]interface{} + normalDraw bool // 是否是普通抽 + drawConf *cfg.GameDrawPoolData + err error + + appointmap map[int32]string // 指定次数抽卡到指定卡池 + ) + appointmap = make(map[int32]string) + szCards = make([]string, 0) + heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId()) + if heroRecord.Baodi4 == nil { + heroRecord.Baodi4 = make(map[int32]int32) + } + if heroRecord.Baodi5 == nil { + heroRecord.Baodi5 = make(map[int32]int32) + } + if heroRecord.Count == nil { + heroRecord.Count = make(map[int32]int32) + } + // 准备数据 + ///////////////////////////////////// + drawConf, err = this.module.configure.GetHeroDrawConfigByType(req.DrawType) // 获取新的抽卡配置 + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: err.Error(), + } + return + } + for _, v := range drawConf.RecruitmentType { + appointmap[v.K] = v.S // 指定次抽数据 + } + + //////////////////////////////////////////////////////// + update = make(map[string]interface{}) + cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件 + if cfgDraw == nil { + return + } + if errdata = this.DrawCardV2Check(session, req); errdata != nil { + return + } + + drawCount = heroRecord.Count[req.DrawType] // 获取当前阵容抽卡次数 + if req.DrawType == 0 { // 普通卡池抽卡 + ////// 获取消耗 star + if req.DrawCount == 1 { + costAtn = cfgDraw.BasePoolCost // 单抽消耗 + } else { + costAtn = cfgDraw.BasePool10cost // 十连消耗 + } + ///// 获取消耗 end + for i := 1; i <= int(req.DrawCount); i++ { // 一张一张的抽 + drawCount++ + if v, ok := appointmap[drawCount]; ok { // 优先校验是否是指定抽 + strPool = append(strPool, v) //找到了 + continue + } + } + } else { + + } + if req.DrawType == 0 { // 普通卡池抽卡 + normalDraw = true + // 获取普通抽卡池 + if req.DrawCount == 1 { + costAtn = cfgDraw.BasePoolCost + } else { + costAtn = cfgDraw.BasePool10cost + } + costRes = append(costRes, costAtn) + if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回 + return + } + + for i := 0; i < int(req.DrawCount); i++ { + drawCount += 1 + pool = this.module.modelHero.CheckPool(drawCount, cfgDraw) + + strPool = append(strPool, pool) + ret := this.module.CheckCondition(session.GetUserId()) + if ret == true { // 命中插入5星英雄 + szStar = append(szStar, 5) + heroRecord.Star5 = 0 // 重置保底 + star5Max++ // 记录当前 5星数量 + continue + } + // 3,4,5 星权重 + starWeight := []int32{cfgDraw.BasePoolStar3, cfgDraw.BasePoolStar4, cfgDraw.BasePoolStar5} + + starIndex := comm.GetRandW(starWeight) // 3 4 5 星索引 + + // 特殊规则 DrawCard_5StarsInRange 第2-30次抽奖必出一个5星英雄(普通卡池) + inRangeConf := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange + if len(inRangeConf) == 3 { + iStart := inRangeConf[0] // 抽卡开始 + iEnd := inRangeConf[1] // 抽卡结束 + star := inRangeConf[2] + if star >= 3 { // 保底必须三星+ + if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart { + n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart))) + if n.Int64() < 1 { // 抽中 + starIndex = star - 3 + heroRecord.Inevitable = heroRecord.Drawcount + update["inevitable"] = heroRecord.Drawcount + szStar = append(szStar, star) + if star == 4 { + heroRecord.Star4 = 0 + star4Max++ + } else if star == 5 { + star5Max++ + heroRecord.Star5 = 0 + } + continue + } + } + // 保底情况 + if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 { + starIndex = star - 3 + heroRecord.Inevitable = heroRecord.Drawcount + update["inevitable"] = heroRecord.Drawcount + szStar = append(szStar, star) + if star == 4 { + heroRecord.Star4 = 0 + star4Max++ + } else if star == 5 { + star5Max++ + heroRecord.Star5 = 0 + } + continue + } + } + } + inRangeConf1 := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1 + if len(inRangeConf1) == 3 { + iStart := inRangeConf1[0] // 抽卡开始 + iEnd := inRangeConf1[1] // 抽卡结束 + star := inRangeConf1[2] + if star >= 3 { // 保底必须三星+ + if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart { + n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart))) + if n.Int64() < 1 { // 抽中 + starIndex = star - 3 + heroRecord.Inevitable = heroRecord.Drawcount + update["inevitable1"] = heroRecord.Drawcount + szStar = append(szStar, star) + if star == 4 { + heroRecord.Star4 = 0 + star4Max++ + } else if star == 5 { + star5Max++ + heroRecord.Star5 = 0 + } + // 修改卡池 + newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool + if newPoll != "" { + strPool[len(strPool)-1] = newPoll + } + continue + } + } + // 保底情况 + if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 { + starIndex = star - 3 + heroRecord.Inevitable1 = heroRecord.Drawcount + update["inevitable1"] = heroRecord.Drawcount + szStar = append(szStar, star) + if star == 4 { + heroRecord.Star4 = 0 + star4Max++ + } else if star == 5 { + star5Max++ + heroRecord.Star5 = 0 + } + // 修改卡池 + newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool + if newPoll != "" { + strPool[len(strPool)-1] = newPoll + } + continue + } + } + } + heroRecord.Star4++ // 4星保底数量+1 + heroRecord.Star5++ // 5星保底数量+1 + if starIndex == 1 { + heroRecord.Star4 = 0 + star4Max++ + } else if starIndex == 2 { + star5Max++ + heroRecord.Star5 = 0 + } + if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { // 达到10连抽最大(4,5星)数量 直接给三星 + starIndex = 0 + } else { + // 普通卡池保底 + if cfgDraw.DrawFloorStar4 <= heroRecord.Star4 { + heroRecord.Star4 = 0 + starIndex = 1 + } + if cfgDraw.DrawFloorStar5 <= heroRecord.Star5 { + heroRecord.Star5 = 0 + starIndex = 2 + } + } + + szStar = append(szStar, starIndex+3) + if len(szStar) >= int(req.DrawCount) { + break + } + } + } else { // 所有阵营抽卡都走这里 + drawCount += req.DrawCount + if req.DrawCount == 1 { + switch req.DrawType { + case 1: + pool = cfgDraw.Camp1Pool1 + + costAtn = cfgDraw.Camp1PoolCost + + case 2: + pool = cfgDraw.Camp2Pool1 + costAtn = cfgDraw.Camp2PoolCost + case 3: + pool = cfgDraw.Camp3Pool1 + costAtn = cfgDraw.Camp3PoolCost + case 4: + pool = cfgDraw.Camp4Pool1 + costAtn = cfgDraw.Camp4PoolCost + } + strPool = append(strPool, pool) + } else { + costAtn = cfgDraw.Camp1PoolCost + switch req.DrawType { + case 1: + pool = cfgDraw.Camp1Pool1 + costAtn = cfgDraw.Camp1Pool10cost + + case 2: + pool = cfgDraw.Camp2Pool1 + costAtn = cfgDraw.Camp2Pool10cost + case 3: + pool = cfgDraw.Camp3Pool1 + costAtn = cfgDraw.Camp3Pool10cost + case 4: + pool = cfgDraw.Camp4Pool1 + costAtn = cfgDraw.Camp4Pool10cost + } + for i := 0; i < int(req.DrawCount); i++ { + strPool = append(strPool, pool) + } + } + + costRes = append(costRes, costAtn) + + //阵营消耗 + if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回 + return + } + for { + starWeight := []int32{cfgDraw.CampPoolStar3, cfgDraw.CampPoolStar4, cfgDraw.CampPoolStar5} + + starIndex := comm.GetRandW(starWeight) + if starIndex == 1 { + star4Max++ + } else if starIndex == 2 { + star5Max++ + } + if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { + starIndex = 0 + } + szStar = append(szStar, starIndex) + if len(szStar) >= int(req.DrawCount) { + break + } + } + } + for index, star := range szStar { + + _data, err := this.module.configure.GetPollByType(strPool[index]) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + sz := make([]int32, 0) + for _, v := range _data[int32(star)] { + sz = append(sz, v.Weight) + } + randomIndex := comm.GetRandW(sz) + + if v, ok := _data[int32(star)]; ok { + if int32(len(v)) > randomIndex { + cardId := v[randomIndex].Id + if star == 5 { // 抽出5星英雄后A次抽奖内不会再抽到5星英雄(普通卡池+阵营卡池) + curDrawCount := drawCount - req.DrawCount + if drawCount <= 10 { // 前10次不计算(连续抽卡最多连续出A个相同阵营的英雄) + szCards = append(szCards, cardId) + continue + } + newID := this.module.ContinuousRestriction(session.GetUserId(), cardId, curDrawCount+int32(index+1), strPool[index]) + szCards = append(szCards, newID) + continue + } + szCards = append(szCards, cardId) + // 普通卡池 最多连续出A个相同阵营的英雄 + if req.DrawType == 0 { + newId := this.module.DrawCardContinuousRestrictionCamp(cardId, heroRecord.Race, sz, v) + if cardId != newId { + szCards[len(szCards)-1] = newId + } + } + } + } + } + + // 消耗道具 + if errdata = this.module.ConsumeRes(session, costRes, true); errdata != nil { + return + } + heroRecord.Totalcount += req.DrawCount + heroRecord.Daycount += req.DrawCount + update["star4"] = heroRecord.Star4 + update["star5"] = heroRecord.Star5 + update["drawcount"] = drawCount + update["totalcount"] = heroRecord.Totalcount + update["daycount"] = heroRecord.Daycount + this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) + rsp := &pb.HeroDrawCardResp{ + Data: []*pb.AtnoData{}, + } + for _, heroId := range szCards { + + if errdata, atno = this.module.DispenseAtno(session, []*cfg.Gameatn{{ + A: "hero", + T: heroId, + N: 1, + }}, true); errdata == nil { + + rsp.Data = append(rsp.Data, &pb.AtnoData{Atno: atno}) + for _, v := range atno { + if v.A == "hero" && v.N == 1 { + if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄 + this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T) + } + } + } + } else { + return + } + } + + session.SendMsg(string(this.module.GetType()), DrawCard, rsp) + // 任务统计 + this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw) + return +} diff --git a/modules/hero/configure_comp.go b/modules/hero/configure_comp.go index da9ddc966..e8c80aaa7 100644 --- a/modules/hero/configure_comp.go +++ b/modules/hero/configure_comp.go @@ -411,3 +411,53 @@ func (this *configureComp) GetHeroMaxLv(star int32) int32 { return 1 } +<<<<<<< Updated upstream +======= +func (this *configureComp) GetHeroTalentMaxLv(heroid string) (maxlv int32) { + if v, err := this.GetConfigure(hero_talentbox); err == nil { + if configure, ok := v.(*cfg.GameTalentBox); ok { + return int32(len(configure.GetDataList())) + } + } + + return 0 +} + +// id: 1 表示普通抽 2表示阵营1 3表示阵营2 ... +func (this *configureComp) GetHeroDrawConfigByType(id int32) (data *cfg.GameDrawPoolData, err error) { + var ( + v interface{} + ) + + if v, err = this.GetConfigure(hero_draw); err == nil { + if conf, ok := v.(*cfg.GameDrawPool); ok { + if data = conf.Get(id - 1); data != nil { + return + } + } + } + err = comm.NewNotFoundConfErr(moduleName, hero_draw, id) + return +} + +func (this *configureComp) GetHeroDrawWeightConfigById(id int32) (data *cfg.GameDrawWeightData, err error) { + var ( + v interface{} + ) + if id > 0 { + if v, err = this.GetConfigure(hero_cardweight); err == nil { + if conf, ok := v.(*cfg.GameDrawWeight); ok { + if data = conf.Get(id); data != nil { + return + } else { + if len(conf.GetDataList()) > 0 { + data = conf.GetDataList()[len(conf.GetDataList())-1] + } + } + } + } + } + err = comm.NewNotFoundConfErr(moduleName, hero_draw, id) + return +} +>>>>>>> Stashed changes diff --git a/modules/hero/model_record.go b/modules/hero/model_record.go index 0caf230f3..a83f6101c 100644 --- a/modules/hero/model_record.go +++ b/modules/hero/model_record.go @@ -32,6 +32,9 @@ func (this *ModelRecord) GetHeroRecord(uid string) (result *pb.DBHeroRecord, err result.Condition = map[string]int32{} result.Star5Hero = map[string]int32{} result.Race = map[int32]int32{} + result.Baodi4 = map[int32]int32{} + result.Baodi5 = map[int32]int32{} + result.Count = map[int32]int32{} result.Mtime = configure.Now().Unix() this.Add(uid, result) err = nil diff --git a/pb/hero_db.pb.go b/pb/hero_db.pb.go index 5e3988c4e..4953c63e4 100644 --- a/pb/hero_db.pb.go +++ b/pb/hero_db.pb.go @@ -361,8 +361,8 @@ type DBHeroRecord struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID 主键id Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID - Star4 int32 `protobuf:"varint,3,opt,name=star4,proto3" json:"star4"` // 4星保底 - Star5 int32 `protobuf:"varint,4,opt,name=star5,proto3" json:"star5"` // 5星保底 + Star4 int32 `protobuf:"varint,3,opt,name=star4,proto3" json:"star4"` // 4星保底 -- 新版抽卡废弃字段 + Star5 int32 `protobuf:"varint,4,opt,name=star5,proto3" json:"star5"` // 5星保底 -- 新版抽卡废弃字段 Mtime int64 `protobuf:"varint,5,opt,name=mtime,proto3" json:"mtime"` // 修改时间 Drawcount int32 `protobuf:"varint,6,opt,name=drawcount,proto3" json:"drawcount"` // 普通卡牌累计抽取次数 Condition map[string]int32 `protobuf:"bytes,7,rep,name=condition,proto3" json:"condition" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key recharge、login 等 value 累计抽卡次数 @@ -374,6 +374,9 @@ type DBHeroRecord struct { Inevitable int32 `protobuf:"varint,13,opt,name=inevitable,proto3" json:"inevitable"` //第2-30次抽奖必出一个5星英雄 Inevitable1 int32 `protobuf:"varint,14,opt,name=inevitable1,proto3" json:"inevitable1"` //第30-50次抽奖必出一个5星英雄 Race map[int32]int32 `protobuf:"bytes,15,rep,name=race,proto3" json:"race" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 阵营类型 value count + Baodi4 map[int32]int32 `protobuf:"bytes,16,rep,name=baodi4,proto3" json:"baodi4" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 4星保底次数 key 阵营类型 value count + Baodi5 map[int32]int32 `protobuf:"bytes,17,rep,name=baodi5,proto3" json:"baodi5" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 5星保底次数 key 阵营类型 value count + Count map[int32]int32 `protobuf:"bytes,18,rep,name=count,proto3" json:"count" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 抽卡次数 key 阵营类型 value count } func (x *DBHeroRecord) Reset() { @@ -513,6 +516,27 @@ func (x *DBHeroRecord) GetRace() map[int32]int32 { return nil } +func (x *DBHeroRecord) GetBaodi4() map[int32]int32 { + if x != nil { + return x.Baodi4 + } + return nil +} + +func (x *DBHeroRecord) GetBaodi5() map[int32]int32 { + if x != nil { + return x.Baodi5 + } + return nil +} + +func (x *DBHeroRecord) GetCount() map[int32]int32 { + if x != nil { + return x.Count + } + return nil +} + // 英雄天赋系统 type DBHeroTalent struct { state protoimpl.MessageState @@ -681,6 +705,7 @@ var file_hero_hero_db_proto_rawDesc = []byte{ 0x74, 0x74, 0x65, 0x72, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, +<<<<<<< Updated upstream 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x05, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, @@ -739,6 +764,99 @@ var file_hero_hero_db_proto_rawDesc = []byte{ 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +======= + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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, 0x1a, 0x44, 0x0a, 0x16, 0x48, 0x6f, 0x72, + 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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, 0x1a, + 0x3a, 0x0a, 0x0c, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 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, 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, 0xde, 0x07, 0x0a, 0x0c, + 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, + 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61, + 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, + 0x6e, 0x62, 0x75, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, + 0x75, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x31, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x18, 0x10, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x62, 0x61, + 0x6f, 0x64, 0x69, 0x34, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, + 0x72, 0x6f, 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, 0x1a, 0x37, 0x0a, 0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x39, 0x0a, 0x0b, + 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x42, 0x61, 0x6f, 0x64, 0x69, + 0x35, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 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, 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, 0x05, 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, 0xb6, 0x01, 0x0a, + 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 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, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, + 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, + 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x2a, 0x2f, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, + 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +>>>>>>> Stashed changes } var ( @@ -754,8 +872,9 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte { } var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_hero_hero_db_proto_goTypes = []interface{}{ +<<<<<<< Updated upstream (HeroType)(0), // 0: HeroType (*DBHero)(nil), // 1: DBHero (*DBHeroRecord)(nil), // 2: DBHeroRecord @@ -771,13 +890,35 @@ var file_hero_hero_db_proto_goTypes = []interface{}{ nil, // 12: DBHeroRecord.RaceEntry nil, // 13: DBHeroTalent.TalentEntry (*SkillData)(nil), // 14: SkillData +======= + (HeroType)(0), // 0: HeroType + (*DBHero)(nil), // 1: DBHero + (*DBHeroRecord)(nil), // 2: DBHeroRecord + (*DBHeroTalent)(nil), // 3: DBHeroTalent + nil, // 4: DBHero.PropertyEntry + nil, // 5: DBHero.AddPropertyEntry + nil, // 6: DBHero.JuexPropertyEntry + nil, // 7: DBHero.TalentPropertyEntry + nil, // 8: DBHero.HoroscopePropertyEntry + nil, // 9: DBHero.FettersEntry + nil, // 10: DBHeroRecord.ConditionEntry + nil, // 11: DBHeroRecord.Star5HeroEntry + nil, // 12: DBHeroRecord.RaceEntry + nil, // 13: DBHeroRecord.Baodi4Entry + nil, // 14: DBHeroRecord.Baodi5Entry + nil, // 15: DBHeroRecord.CountEntry + nil, // 16: DBHeroTalent.TalentEntry + (*SkillData)(nil), // 17: SkillData + (*DB_EquipmentSuit)(nil), // 18: DB_EquipmentSuit +>>>>>>> Stashed changes } var file_hero_hero_db_proto_depIdxs = []int32{ - 14, // 0: DBHero.normalSkill:type_name -> SkillData + 17, // 0: DBHero.normalSkill:type_name -> SkillData 4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry 5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry 6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry 0, // 4: DBHero.status:type_name -> HeroType +<<<<<<< Updated upstream 7, // 5: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry 14, // 6: DBHero.equipSkill:type_name -> SkillData 8, // 7: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry @@ -791,6 +932,25 @@ var file_hero_hero_db_proto_depIdxs = []int32{ 13, // [13:13] is the sub-list for extension type_name 13, // [13:13] is the sub-list for extension extendee 0, // [0:13] is the sub-list for field type_name +======= + 18, // 5: DBHero.suits:type_name -> DB_EquipmentSuit + 7, // 6: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry + 17, // 7: DBHero.equipSkill:type_name -> SkillData + 8, // 8: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry + 9, // 9: DBHero.fetters:type_name -> DBHero.FettersEntry + 10, // 10: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry + 11, // 11: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry + 12, // 12: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry + 13, // 13: DBHeroRecord.baodi4:type_name -> DBHeroRecord.Baodi4Entry + 14, // 14: DBHeroRecord.baodi5:type_name -> DBHeroRecord.Baodi5Entry + 15, // 15: DBHeroRecord.count:type_name -> DBHeroRecord.CountEntry + 16, // 16: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +>>>>>>> Stashed changes } func init() { file_hero_hero_db_proto_init() } @@ -843,7 +1003,7 @@ func file_hero_hero_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hero_hero_db_proto_rawDesc, NumEnums: 1, - NumMessages: 13, + NumMessages: 16, NumExtensions: 0, NumServices: 0, },