From 60dd9a101301eb60afe2094b64ad18edd6b07761 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Sat, 28 Nov 2020 23:45:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=E4=B8=8D=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E8=A1=8C=E5=8A=A8=E4=B8=AD=E6=BA=A2=E5=87=BA=E7=9A=84=E4=BC=A4?= =?UTF-8?q?=E5=AE=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/comBattleHandler.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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; + } } }) });