任务:修复装备穿戴bug

This commit is contained in:
luying
2022-01-04 14:22:47 +08:00
parent 6ce57740cf
commit 59f3f5c07d
4 changed files with 14 additions and 8 deletions
@@ -619,6 +619,8 @@ export class EquipHandler {
// 原武将:heroA,原武将穿戴着的装备a,将要穿戴的装备b,装备b被装备着的武将B
let heroA = await HeroModel.findByHidAndRoleWithEquip(hid, roleId);
if (!heroA) return resResult(STATUS.HERO_NOT_FIND);
let oldCountA = heroA.ePlace.filter(cur => cur.equip).length;
let oldCountB = 0;
let equip = await EquipModel.getEquip(eid); // 装备:1-equipB 2-equipA
if(!equip) return resResult(STATUS.EQUIP_NOT_FIND);
@@ -643,6 +645,7 @@ export class EquipHandler {
if(equipB.hid > 0) {
heroB = await HeroModel.findByHidAndRoleWithEquip(equipB.hid, roleId);
argsB = calEquipSeids(heroB);
oldCountB = heroB.ePlace.filter(cur => cur.equip).length;
}
if(equipA) {
@@ -680,12 +683,12 @@ export class EquipHandler {
if(heroA) {
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP, sid, roleId, heroA, {}, argsA);
if(heroAPutNum != 0) {
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, heroA, [heroAPutNum]);
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, heroA, [heroAPutNum, oldCountA]);
}
}
if(heroB) {
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP, sid, roleId, heroB, {}, argsB);
if(heroBPutTNum != 0) await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, heroA, [heroBPutTNum]);
if(heroBPutTNum != 0) await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, heroA, [heroBPutTNum, oldCountB]);
}
if(heroAPutNum + heroBPutTNum != 0) {
await checkTask(roleId, sid, TASK_TYPE.EQUIP_SUM, heroAPutNum + heroBPutTNum, true, {});
@@ -742,6 +745,7 @@ export class EquipHandler {
return { id, quality, ce, equip, goodsAbility, lvLimited, ePlaceId }
});
let { ePlace, lv } = hero;
let oldCount = ePlace.filter(cur => cur.equip).length;
let curEquips: Array<{ seqId: number, hid: number }> = [];
let equips: EquipType[] = [];
@@ -775,7 +779,7 @@ export class EquipHandler {
}
if (curEquips.length > 0) {
//任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, hero, [1]);
await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, hero, [1, oldCount]);
await checkTask(roleId, sid, TASK_TYPE.EQUIP_SUM, curEquips.length, true, {});
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.EQUIP_SUM, curEquips.length);
for(let equip of equips) {