装备bug修复

This commit is contained in:
mamengke01
2020-12-21 14:36:49 +08:00
parent dc527cae2e
commit 1edb717b99
3 changed files with 16 additions and 16 deletions
@@ -358,14 +358,12 @@ export class EquipHandler {
// return resResult(STATUS.EQUIP_NOT_EQUIPED_HERO); // return resResult(STATUS.EQUIP_NOT_EQUIPED_HERO);
if (!!equip.hid) if (!!equip.hid)
return resResult(STATUS.EQUIP_IS_EQUIPED); return resResult(STATUS.EQUIP_IS_EQUIPED);
let ePlace = await HeroModel.getHeroEquip(roleId, hid);
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
let index = _.findIndex(hero.ePlace, {id: ePlaceId}); let index = _.findIndex(hero.ePlace, {id: ePlaceId});
if (index < 0) if (index < 0)
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
if (!!ePlace[index].equip) { let objectId = <string>hero.ePlace[index].equip;
let lastEquip = await EquipModel.updateEquipInfo(ePlace[index].equip.seqId, {hid:0, ePlaceId: 0}); if (!!objectId) {
let lastEquip = await EquipModel.updateEquipInfobyObjectId(objectId, {hid:0, ePlaceId: 0});
curEquips.push({ curEquips.push({
seqId: lastEquip.seqId, seqId: lastEquip.seqId,
hid: lastEquip.hid, hid: lastEquip.hid,
@@ -381,15 +379,11 @@ export class EquipHandler {
} else if (type == 2) { } else if (type == 2) {
if (!equip.hid) if (!equip.hid)
return resResult(STATUS.EQUIP_NOT_EQUIPED); return resResult(STATUS.EQUIP_NOT_EQUIPED);
let ePlace = await HeroModel.getHeroEquip(roleId, hid); let index = _.findIndex(hero.ePlace, {id: ePlaceId});
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
let index = _.findIndex(ePlace, {id: ePlaceId});
if (index < 0) if (index < 0)
return resResult(STATUS.WRONG_PARMS); return resResult(STATUS.WRONG_PARMS);
if (!ePlace[index].equip||ePlace[index].equip.seqId != eid) hero.ePlace[index].equip = null;
return resResult(STATUS.WRONG_PARMS); await HeroModel.updateHeroInfo(roleId, hid, {ePlace:hero.ePlace});
await HeroModel.unloadHeroAndEquip(roleId, hid, eid);
equip = await EquipModel.updateEquipInfo(eid, {hid:0, ePlaceId: 0}); equip = await EquipModel.updateEquipInfo(eid, {hid:0, ePlaceId: 0});
curEquips.push({ curEquips.push({
seqId: equip.seqId, seqId: equip.seqId,
+6
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(); 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; 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); export const EquipModel = getModelForClass(Equip);
+2 -2
View File
@@ -1,7 +1,7 @@
import BaseModel from './BaseModel'; import BaseModel from './BaseModel';
import { CeAttr } from './generalField'; import { CeAttr } from './generalField';
import { index, getModelForClass, prop, Ref, mongoose, DocumentType } from '@typegoose/typegoose'; import { index, getModelForClass, prop, Ref, mongoose, DocumentType } from '@typegoose/typegoose';
import Equip, { EquipType } from './Equip'; import Equip, { } from './Equip';
import { CounterModel } from './Counter'; import { CounterModel } from './Counter';
import { COUNTER, EQUIP_TYPE } from '../consts'; 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) { 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; return result;
} }