diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index ca23037d5..7961e657c 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -386,12 +386,20 @@ export class ComBattleHandler { } }); } - if (totalHurtHp !== totalBossHurt) return resResult(STATUS.COM_BATTLE_HURT_NUM_ERR); + if (totalHurtHp !== totalBossHurt) return resResult(STATUS.COM_BATTLE_HURT_NUM_ERR); // 仅做校验,不处理溢出 + + // 重置总血量,计算真实伤害 + totalHurtHp = 0, totalBossHurt = 0; teamStatus.bossHpArr.forEach(boss => { bossHurts.forEach(bh => { if (boss.dataId === bh.dataId) { - boss.curHp -= bh.hurtHp; - if (boss.curHp < 0) boss.curHp = 0; + if (boss.curHp >= bh.hurtHp) { + totalHurtHp += bh.hurtHp; + boss.curHp -= bh.hurtHp; + } else { + totalHurtHp += boss.curHp; + boss.curHp = 0; + } } }) });