装备bug修复

This commit is contained in:
mamengke01
2020-12-21 11:23:28 +08:00
parent dc527cae2e
commit 1edb717b99
3 changed files with 16 additions and 16 deletions

View File

@@ -357,15 +357,13 @@ export class EquipHandler {
// if (_.indexOf(classId, job_class) < 0)
// return resResult(STATUS.EQUIP_NOT_EQUIPED_HERO);
if (!!equip.hid)
return resResult(STATUS.EQUIP_IS_EQUIPED);
let ePlace = await HeroModel.getHeroEquip(roleId, hid);
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
return resResult(STATUS.EQUIP_IS_EQUIPED);
let index = _.findIndex(hero.ePlace, {id: ePlaceId});
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
if (!!ePlace[index].equip) {
let lastEquip = await EquipModel.updateEquipInfo(ePlace[index].equip.seqId, {hid:0, ePlaceId: 0});
return resResult(STATUS.WRONG_PARMS);
let objectId = <string>hero.ePlace[index].equip;
if (!!objectId) {
let lastEquip = await EquipModel.updateEquipInfobyObjectId(objectId, {hid:0, ePlaceId: 0});
curEquips.push({
seqId: lastEquip.seqId,
hid: lastEquip.hid,
@@ -381,15 +379,11 @@ export class EquipHandler {
} else if (type == 2) {
if (!equip.hid)
return resResult(STATUS.EQUIP_NOT_EQUIPED);
let ePlace = await HeroModel.getHeroEquip(roleId, hid);
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
let index = _.findIndex(ePlace, {id: ePlaceId});
let index = _.findIndex(hero.ePlace, {id: ePlaceId});
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
if (!ePlace[index].equip||ePlace[index].equip.seqId != eid)
return resResult(STATUS.WRONG_PARMS);
await HeroModel.unloadHeroAndEquip(roleId, hid, eid);
hero.ePlace[index].equip = null;
await HeroModel.updateHeroInfo(roleId, hid, {ePlace:hero.ePlace});
equip = await EquipModel.updateEquipInfo(eid, {hid:0, ePlaceId: 0});
curEquips.push({
seqId: equip.seqId,

View File

@@ -132,6 +132,12 @@ export default class Equip extends BaseModel {
let result: EquipType = await EquipModel.findOneAndUpdate({roleId, seqId, 'randSe.id': id}, {$set: {'randSe.$.locked': lock}}, {new: true, upsert: false}).select('seqId id randSe').lean();
return result;
}
public static async updateEquipInfobyObjectId(_id: string, equipUpdate: equipUpdate, lean = true) {
delete equipUpdate._id;
let result: EquipType = await EquipModel.findOneAndUpdate({_id}, {$set: equipUpdate}, {new: true}).lean(lean);
return result;
}
}
export const EquipModel = getModelForClass(Equip);

View File

@@ -1,7 +1,7 @@
import BaseModel from './BaseModel';
import { CeAttr } from './generalField';
import { index, getModelForClass, prop, Ref, mongoose, DocumentType } from '@typegoose/typegoose';
import Equip, { EquipType } from './Equip';
import Equip, { } from './Equip';
import { CounterModel } from './Counter';
import { COUNTER, EQUIP_TYPE } from '../consts';
@@ -211,7 +211,7 @@ export default class Hero extends BaseModel {
}
public static async getHeroEquip(roleId: string, hid: number, lean = true) {
let result: EquipType = await HeroModel.findOne({ roleId, hid }).populate('ePlace.equip').select('ePlace.equip').lean(lean);
let result: HeroType = await HeroModel.findOne({ roleId, hid }).populate('ePlace.equip').select('ePlace.equip').lean(lean);
return result;
}