From 0485fbca432154718a9072d85e8fb39cbec5cd7e Mon Sep 17 00:00:00 2001 From: xinian Date: Thu, 26 Feb 2026 10:24:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=89=A9=E5=93=81=E6=95=B0=E9=87=8F=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=B9=B6=E4=BC=98=E5=8C=96=E5=AE=A0=E7=89=A9?= =?UTF-8?q?=E8=9E=8D=E5=90=88=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在物品服务中添加CheakItemM方法用于批量检查物品数量 修改宠物融合逻辑使用新方法进行物品检查 --- logic/controller/pet_fusion.go | 8 +++++--- modules/player/service/item.go | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/logic/controller/pet_fusion.go b/logic/controller/pet_fusion.go index 33e71da16..a743a6d11 100644 --- a/logic/controller/pet_fusion.go +++ b/logic/controller/pet_fusion.go @@ -47,12 +47,14 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result if Auxpetinfo.Nature == Mcatchpetinfo.Nature { natureId = int32(Auxpetinfo.Nature) } - for _, v := range data.Item1 { - if c.Service.Item.CheakItem(v) == 0 { + + for _, v := range c.Service.Item.CheakItemM(data.Item1[:]...) { + + if v.ItemCnt <= 0 { return result, errorcode.ErrorCodes.ErrInsufficientItems } - } + resid := int(service.NewPetFusionService().Data(Mcatchpetinfo.ID, Auxpetinfo.ID, Mcatchpetinfo.Level+Auxpetinfo.Level)) effect := int(service.NewPetFusionMaterialService().Data(data.Item1)) diff --git a/modules/player/service/item.go b/modules/player/service/item.go index 8fe522bcd..44dbb8992 100644 --- a/modules/player/service/item.go +++ b/modules/player/service/item.go @@ -67,6 +67,13 @@ func (s *ItemService) CheakItem(id uint32) int64 { m.Where("item_id", id).Scan(&ttt) return ttt.ItemCnt } +func (s *ItemService) CheakItemM(id ...uint32) []model.Item { + var ttt []model.Item + m := s.dbm(s.Model) + + m.WhereIn("item_id", id).Scan(&ttt) + return ttt +} // /添加进来的物品一定是保证存在的 type ItemService struct {