diff --git a/modules/hunting/api_buy.go b/modules/hunting/api_buy.go index 24f4706d2..f1ec5e14e 100644 --- a/modules/hunting/api_buy.go +++ b/modules/hunting/api_buy.go @@ -88,8 +88,8 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.HuntingBuyReq) (code list.RecoveryTime = 0 } addCount += req.Count - if amount+addCount > conf.VikingNum { - code = pb.ErrorCode_VikingBuyMaxCount + if amount+addCount > conf.HuntingNum { + code = pb.ErrorCode_HuntingBuyMaxCount return } mapData["recoveryTime"] = list.RecoveryTime diff --git a/modules/hunting/api_challenge.go b/modules/hunting/api_challenge.go index 27092fadf..cd959e961 100644 --- a/modules/hunting/api_challenge.go +++ b/modules/hunting/api_challenge.go @@ -44,10 +44,7 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.HuntingChallen code = pb.ErrorCode_HuntingNoChallengeCount return } - // if hunting.ChallengeCount > this.module.configure.GetGlobalConf().HuntingNum+hunting.BuyCount { - // code = pb.ErrorCode_HuntingMaxChallengeCount - // return - // } + cfgData := this.module.configure.GetHuntingBossConfigData(req.BossType, req.Difficulty) if cfgData == nil { code = pb.ErrorCode_ConfigNoFound diff --git a/modules/hunting/api_getlist.go b/modules/hunting/api_getlist.go index b7b4b733d..394709ff5 100644 --- a/modules/hunting/api_getlist.go +++ b/modules/hunting/api_getlist.go @@ -2,11 +2,14 @@ package hunting import ( "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/utils" + "strconv" + "go.mongodb.org/mongo-driver/bson/primitive" "google.golang.org/protobuf/proto" ) @@ -28,7 +31,38 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.HuntingGetListRe } list, err := this.module.modelHunting.getHuntingList(session.GetUserId()) - if err != nil { + if mgo.MongodbNil == err { + result := &pb.DBHunting{ + Id: primitive.NewObjectID().Hex(), + Uid: session.GetUserId(), + Boss: make(map[int32]int32), + BossTime: make(map[string]int32), + } + _cfg := this.module.configure.GetHuntingBossTypeConfigData() + for k := range _cfg { + result.Boss[k] = 0 + str := strconv.Itoa(int(k)) + "_1" + result.BossTime[str] = 0 + } + + this.module.modelHunting.Add(session.GetUserId(), result) + conf := this.module.configure.GetGlobalConf() + if conf == nil { + code = pb.ErrorCode_ConfigNoFound + return + } + iCont := conf.EnchantbossInitial + atn := conf.EnchantbossCos + if iCont > 0 { + + this.module.DispenseRes(session, []*cfg.Gameatn{&cfg.Gameatn{ + A: atn.A, + T: atn.T, + N: iCont, + }}, true) + } + } else if err != nil { + code = pb.ErrorCode_DBError return } diff --git a/modules/hunting/model_hunting.go b/modules/hunting/model_hunting.go index e4ff20e75..b25d35e93 100644 --- a/modules/hunting/model_hunting.go +++ b/modules/hunting/model_hunting.go @@ -6,9 +6,7 @@ import ( "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" - "strconv" - "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/x/bsonx" ) @@ -35,27 +33,11 @@ func (this *modelHunting) modifyHuntingDataByObjId(uid string, data map[string]i // 获取列表信息 func (this *modelHunting) getHuntingList(uid string) (result *pb.DBHunting, err error) { - result = &pb.DBHunting{ - Id: primitive.NewObjectID().Hex(), - Uid: uid, - Boss: make(map[int32]int32), - BossTime: make(map[string]int32), - } + result = &pb.DBHunting{} if err = this.Get(uid, result); err != nil && mgo.MongodbNil != err { - return } - if mgo.MongodbNil == err { - if len(result.Boss) == 0 { - _cfg := this.module.configure.GetHuntingBossTypeConfigData() - for k := range _cfg { - result.Boss[k] = 0 - str := strconv.Itoa(int(k)) + "_1" - result.BossTime[str] = 0 - } - } - this.Add(uid, result) - } + err = nil return result, err } diff --git a/modules/viking/api_buy.go b/modules/viking/api_buy.go index 560b8653f..0e591d915 100644 --- a/modules/viking/api_buy.go +++ b/modules/viking/api_buy.go @@ -69,7 +69,7 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.VikingBuyReq) (code if list.RecoveryTime+int64(conf.VikingExpeditionRecoveryTime*60) <= configure.Now().Unix() { curCount++ list.RecoveryTime += int64(conf.VikingExpeditionRecoveryTime * 60) - if curCount >= conf.HuntingNum { + if curCount >= conf.VikingNum { list.RecoveryTime = 0 break } diff --git a/modules/viking/api_getlist.go b/modules/viking/api_getlist.go index 3237ecc07..765cfed0c 100644 --- a/modules/viking/api_getlist.go +++ b/modules/viking/api_getlist.go @@ -63,7 +63,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.VikingGetListReq if list.RecoveryTime+int64(conf.VikingExpeditionRecoveryTime*60) <= configure.Now().Unix() { curCount++ list.RecoveryTime += int64(conf.VikingExpeditionRecoveryTime * 60) - if curCount >= conf.HuntingNum { + if curCount >= conf.VikingNum { list.RecoveryTime = 0 break }