装备bug修复
This commit is contained in:
@@ -357,15 +357,13 @@ export class EquipHandler {
|
|||||||
// if (_.indexOf(classId, job_class) < 0)
|
// if (_.indexOf(classId, job_class) < 0)
|
||||||
// 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,
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user