diff --git a/modules/config/service/egg.go b/modules/config/service/egg.go index aa845c446..bce96282a 100644 --- a/modules/config/service/egg.go +++ b/modules/config/service/egg.go @@ -35,7 +35,7 @@ func (s *EggService) GetData(p1 uint32) []int32 { return petIDs } -func (s *EggService) GetResult(m, f uint32) (uint32, bool) { +func (s *EggService) GetResult(m, f, level uint32) (uint32, bool) { //cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":") md := dbm_enable(s.Model) @@ -43,7 +43,7 @@ func (s *EggService) GetResult(m, f uint32) (uint32, bool) { md.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, m). Wheref(`female_pet_ids @> ARRAY[?]::integer[]`, f).Scan(&pet) if pet != nil { - + pet.OutputMons[len(pet.OutputMons)-1] += int32(level) t, _ := utils.RandomByWeight(pet.OutputMons, pet.Probs) if pet.OutputMons[len(pet.OutputMons)-1] == int32(t) { return uint32(t), true diff --git a/modules/player/controller/admin/pet.go b/modules/player/controller/admin/pet.go index 2129fe435..3259faf26 100644 --- a/modules/player/controller/admin/pet.go +++ b/modules/player/controller/admin/pet.go @@ -3,10 +3,12 @@ package admin import ( "blazing/common/data" "blazing/cool" + base "blazing/modules/base/service" config "blazing/modules/config/service" "blazing/modules/player/model" "blazing/modules/player/service" "context" + "fmt" "github.com/gogf/gf/v2/frame/g" ) @@ -98,6 +100,14 @@ func (c *PetBagController) ModPrise(ctx context.Context, req *PriseReq) (res *co if req.Price < 5 { req.Price = 5 } + if req.IsSale == 1 { + + if base.NewBaseSysUserService().GetFreeGold(admin.UserId) < 0 { + err = fmt.Errorf("金币不足") + return + } + + } err = service.NewPetService(uint32(admin.UserId)).UPdatePrice(req.Ctime, req.Price, req.IsSale) return diff --git a/modules/player/service/egg.go b/modules/player/service/egg.go index ee80e2b22..1eb211fa6 100644 --- a/modules/player/service/egg.go +++ b/modules/player/service/egg.go @@ -156,7 +156,7 @@ func (s *EggService) GetEgg() *model.PetInfo { return nil } - mpets, isshiny := service.NewEggService().GetResult(tt.CurEgg.MalePetID, tt.CurEgg.FeMalePetID) + mpets, isshiny := service.NewEggService().GetResult(tt.CurEgg.MalePetID, tt.CurEgg.FeMalePetID,tt.CurEgg.EggID+tt.Data.Intimacy) if mpets == 0 { return nil } diff --git a/modules/player/service/pet.go b/modules/player/service/pet.go index 7eef90c4d..bf689cb5e 100644 --- a/modules/player/service/pet.go +++ b/modules/player/service/pet.go @@ -44,7 +44,7 @@ func (s *PetService) PetCount(flag int) int { func (s *PetService) UPdateFree(ctime uint32, free uint32) { - s.dbm(s.Model).Where("catch_time", ctime).Data( + s.dbm(s.Model).Where("catch_time", ctime).Where("is_sale", 0).Data( "free", free, ).Update()