From 0163e7f90f063fcc394913f6deb86ff71a8af28a Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 14 Jul 2021 17:54:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A6=E5=B0=86=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=9A=AE=E8=82=A4=E7=A9=BF=E6=88=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/role/handler/heroHandler.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index e3b96e34b..0cccbdcc8 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -3,7 +3,7 @@ import { handleCost, addItems, unlockFigure, createHero } from '../../../service import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService'; import { resResult, deepCopy } from '../../../pubUtils/util'; import { STATUS } from '../../../consts/statusCode'; -import { HeroModel, Connect } from '../../../db/Hero'; +import { HeroModel, Connect, HeroSkin } from '../../../db/Hero'; import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE } from '../../../consts'; import { RoleModel } from '../../../db/Role'; import { ItemModel } from '../../../db/Item'; @@ -15,6 +15,7 @@ import { calculatetopLineup } from '../../../pubUtils/playerCe'; import { PvpDefenseModel } from '../../../db/PvpDefense'; import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService'; import { addSkin } from '../../../pubUtils/itemUtils'; +import Skin from '../../../db/Skin'; export default function (app: Application) { return new HeroHandler(app); @@ -605,28 +606,28 @@ export class HeroHandler { let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId); if (!hero) return resResult(STATUS.HERO_NOT_FIND); - let heroSkins = deepCopy(hero.skins); - + let newHeroSkins: HeroSkin[] = []; let result = false; let lastSkinId: number; - for (let skin of heroSkins) { + for (let skin of hero.skins) { if (skin.id == id) { if (!!skin.enable) { return resResult(STATUS.HERO_SKIN_IS_EQUIPED); } - skin.enable = true; + newHeroSkins.push({...skin, enable: true}); result = true; } else { if (!!skin.enable) { lastSkinId = skin.id; } - skin.enable = false; + + newHeroSkins.push({...skin, enable: false}); } } if (!result) { return resResult(STATUS.HERO_SKIN_NOT_FIND); } - hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.SKIN, sid, roleId, hero, { skins: heroSkins }, [id, lastSkinId]); + hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.SKIN, sid, roleId, hero, { skins: newHeroSkins }, [id, lastSkinId]); return resResult(STATUS.SUCCESS, { curHero: { hid: hero.hid, skins: hero.skins } }); } }