diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index 832bebd12..4e3fad0ac 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -590,7 +590,7 @@ export class HeroHandler { let newEplace: EPlace[] = [], heroPutNum = 0, curEquips: {seqId: number, id: number, hid: number, ePlaceId: number}[] = []; for(let { id, equip, lv, refineLv } of hero.ePlace) { let e = equip; - if(equip && !checkEquipCanPut(hero, e.id)) { + if(equip && !checkEquipCanPut({...hero, skinId: dicSkin.heroId}, e.id)) { await EquipModel.putOnOrOff(e._id, 0); heroPutNum -= 1; newEplace.push({ id, equip: null, lv, refineLv}); @@ -602,7 +602,7 @@ export class HeroHandler { if(heroPutNum < 0) { - await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP, sid, roleId, hero, {}, oldEquipSeids); + hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.EQUIP, sid, roleId, hero, {}, oldEquipSeids); await checkTask(roleId, sid, TASK_TYPE.EQUIP_SUM, heroPutNum, true, {}); await checkActivityTask(serverId, sid, roleId, TASK_TYPE.EQUIP_SUM, heroPutNum); await checkTaskWithHero(roleId, sid, TASK_TYPE.EQUIP_BY_HERO, hero, [heroPutNum]); diff --git a/game-server/app/services/equipService.ts b/game-server/app/services/equipService.ts index b956c5d9a..4958013fc 100644 --- a/game-server/app/services/equipService.ts +++ b/game-server/app/services/equipService.ts @@ -64,12 +64,11 @@ export function checkMaterialEnough(consumes: Array<{ id: number, count: number } export function checkEquipCanPut(hero: HeroType, id: number) { - let hid = hero.hid; + let hid = hero.skinId; let dicGood = gameData.goods.get(id); if(dicGood.lvLimited > hero.lv) return false; let dicHero = gameData.hero.get(hid); - let dicJob = gameData.job.get(dicHero.jobid); - if(dicGood.jobLimited.indexOf(0) == -1 && dicGood.jobLimited.indexOf(dicJob.job_class) == -1) return false; + if(dicGood.jobLimited.indexOf(0) == -1 && dicGood.jobLimited.indexOf(dicHero.jobClass) == -1) return false; if(dicGood.charLimited.indexOf(0) == -1 && dicGood.charLimited.indexOf(hid) == -1) return false; return true }