package equipment import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" ) // 参数校验 func (this *apiComp) UnInscribeCheck(session comm.IUserSession, req *pb.EquipmentUnInscribeReq) (errdata *pb.ErrorData) { if req.Eid == "" || req.Heroid == "" { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Message: "ReqParameter is null", } } return } // 铭刻 func (this *apiComp) UnInscribe(session comm.IUserSession, req *pb.EquipmentUnInscribeReq) (errdata *pb.ErrorData) { var ( equip *pb.DB_Equipment hero *pb.DBHero conf *cfg.GameEquipData equipments []*pb.DB_Equipment err error ) if errdata = this.UnInscribeCheck(session, req); errdata != nil { return } if equip, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), req.Eid); err != nil { this.module.Errorf("Equip_Check err:%v", err) errdata = &pb.ErrorData{ Code: pb.ErrorCode_EquipmentOnFoundEquipment, Title: pb.ErrorCode_EquipmentOnFoundEquipment.ToString(), Message: err.Error(), } return } if equip.Inscribe == "" { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Message: "equie Inscribe no activation!", } return } if conf, err = this.module.configure.GetEquipmentConfigureById(equip.CId); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ConfigNoFound, Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return } //消耗 if errdata = this.module.ConsumeRes(session, conf.ResetNeed, true); errdata != nil { return } targethero := equip.Inscribe equip.Inscribe = "" equip.Inscribevalue = 0 if targethero == 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 } } if err = this.module.modelEquipment.ChangeList(session.GetUserId(), equip.Id, map[string]interface{}{ "inscribe": equip.Inscribe, "inscribevalue": equip.Inscribevalue, }); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Message: err.Error(), } return } session.SendMsg(string(this.module.GetType()), "uninscribe", &pb.EquipmentUnInscribeResp{}) return }