diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index a8863b936..69307d8df 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -79,8 +79,10 @@ export class HeroHandler { let { lv: oldLv, exp: oldExp } = hero; if (oldLv >= playerLv) return resResult(STATUS.ROLE_HERO_LV_OVER); if (oldLv + addLv > playerLv) addLv = playerLv - oldLv; + console.log('******* addLv', addLv, oldLv, playerLv); let nextExp = getHeroExpByLv(oldLv + addLv - 1); + console.log('nextExp', nextExp, oldLv + addLv - 1, oldExp) let needExp = nextExp - oldExp; let newExp = oldExp; @@ -90,14 +92,17 @@ export class HeroHandler { for (let { id, count } of originalConsumes) { let dicGoods = gameData.goods.get(id); if (!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); + if(needExp < 0) break; let _count = Math.ceil(needExp / dicGoods.value); if (_count < count) { material.push({ id, count: _count }); newExp += dicGoods.value * _count; + needExp -= dicGoods.value * _count; break; } else { material.push({ id, count }); newExp += dicGoods.value * count; + needExp -= dicGoods.value * count; } }