装备bug修复
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user