diff --git a/modules/equipment/api_washconfirm.go b/modules/equipment/api_washconfirm.go index a4e010666..fe39293af 100644 --- a/modules/equipment/api_washconfirm.go +++ b/modules/equipment/api_washconfirm.go @@ -1,13 +1,14 @@ package equipment import ( + "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) -//参数校验 +// 参数校验 func (this *apiComp) WashConfirmCheck(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (errdata *pb.ErrorData) { if req.Eid == "" || req.Pids == nil || len(req.Pids) == 0 { errdata = &pb.ErrorData{ @@ -18,11 +19,13 @@ func (this *apiComp) WashConfirmCheck(session comm.IUserSession, req *pb.Equipme return } -//锻造 +// 锻造 func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (errdata *pb.ErrorData) { var ( equip *pb.DB_Equipment attrlibrary *cfg.GameEquipAttrlibrarySData + hero *pb.DBHero + equipments []*pb.DB_Equipment err error ) if errdata = this.WashConfirmCheck(session, req); errdata != nil { @@ -74,6 +77,33 @@ func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWas } return } + + if equip.HeroId != "" { + equipments = make([]*pb.DB_Equipment, 8) + if hero, errdata = this.module.ModuleHero.GetHeroByObjID(session.GetUserId(), equip.HeroId); errdata != nil { + return + } + for i, v := range hero.EquipID { + if v != "" { + if v != equip.Id { + if equipments[i], err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), v); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EquipmentOnFoundEquipment, + Title: pb.ErrorCode_EquipmentOnFoundEquipment.ToString(), + Message: fmt.Sprintf("装备唯一 id:%s", v), + } + return + } + } else { + equipments[i] = equip + } + } + } + if errdata = this.module.ModuleHero.UpdateEquipment(session, hero, equipments); errdata != nil { + return + } + } + session.SendMsg(string(this.module.GetType()), "washconfirm", &pb.EquipmentWashConfirmResp{Issucc: true}) return }