diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go index fee9995d0..6a6c4b174 100644 --- a/modules/smithy/api_forgeequip.go +++ b/modules/smithy/api_forgeequip.go @@ -222,8 +222,9 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq } } // 装备资源分发 - if customLv > 0 || bQuality { + if customLv > 0 { for i := 0; i < int(req.Count); i++ { + sz := make([]int32, 4) // 最高 4个品质 // 获得极品权重 sz[3] = this.module.modelStove.StoveToolsQualityProbability(stove) @@ -236,6 +237,32 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq } } + } else if bQuality { // 精炼打造 + newdrop := this.module.modelStove.CheckUnlockSuid(req.ReelId, stove.Data[req.ReelId].Lv, reelcfg.BasicDrop) + user, err := this.module.ModuleUser.GetUser(session.GetUserId()) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_SystemError, + Title: pb.ErrorCode_SystemError.ToString(), + } + return + } + var addEquipId []string // 添加的装备ID + for i := 0; i < int(req.Count); i++ { + res := this.module.ModuleTools.GetGroupDataByLottery(newdrop, user.Vip, user.Lv) + for _, v := range res { + if v.A == "equi" { + addEquipId = append(addEquipId, v.T) + } + } + } + if equip, errcode1 := this.module.ModuleEquipment.NewMaxQualityEquipment(session, addEquipId); err != nil { + errdata = errcode1 + this.module.Errorf("GetForgeEquip error: %v,req.SuiteId:%d, req.Position:%d, customLv:%d", errdata, req.SuiteId, req.Position, customLv) + return + } else { + rsp.Equip = append(rsp.Equip, equip...) + } } else { // 普通打造 // 获取掉落id newdrop := this.module.modelStove.CheckUnlockSuid(req.ReelId, stove.Data[req.ReelId].Lv, reelcfg.BasicDrop) @@ -247,6 +274,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq } return } + // 检查是否命中双倍打造 for i := 0; i < int(req.Count); i++ { res := this.module.ModuleTools.GetGroupDataByLottery(newdrop, user.Vip, user.Lv)