diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 56883e7b..160767f9 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -373,7 +373,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in kPropDmgShow, GetUniId(), real_dmg_out, - 0, + dmg_bp, killer->GetUniId(), true); if (IsPlayer()) { @@ -383,7 +383,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in kPropDmgShow, GetUniId(), real_dmg_out, - 0, + dmg_bp, killer->GetUniId(), true); } @@ -396,7 +396,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in kPropDmgShow, GetUniId(), real_dmg_out, - 0, + dmg_bp, killer->AsHero()->master.Get()->GetUniId(), true); } @@ -407,7 +407,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in kPropDmgShow, GetUniId(), real_dmg_out, - 0, + dmg_bp, killer->AsHero()->master.Get() ? killer->AsHero()->master.Get()->GetUniId() : killer->GetUniId(), true); @@ -2326,9 +2326,11 @@ void Human::OnBulletHit(IBullet* bullet) GetTrigger()->Attacked(bullet->GetSender().Get()); if (!dead && (bullet->IsBomb() || bullet->GetSender().Get()->team_id != team_id)) { float finaly_dmg = 0; + int dmg_bp = 0; if (bullet->GetSkillMeta() && SkillHelper::ProcBulletDmg(bullet, this, finaly_dmg)) { } else { finaly_dmg = bullet->GetSender().Get()->GetNetData()->CalcDmg(this, bullet); + int dmg_bp = bullet->GetSender().Get()->GetNetData()->GetDmgBp(); } if (bullet->GetSender().Get()->IsHuman()) { bullet->GetSender().Get()->AsHuman()->stats->damage_amount_out += finaly_dmg; @@ -2356,7 +2358,7 @@ void Human::OnBulletHit(IBullet* bullet) bullet->GetPassenger().Get()->GetName(), dmg_out, 0, - 0); + dmg_bp); bullet->GetSender().Get()->GetTrigger()->DmgOut(this, dmg_out); if (bullet->GetSender().Get() && !bullet->GetSender().Get()->dead && @@ -2404,7 +2406,7 @@ void Human::OnBulletHit(IBullet* bullet) bullet->GetSender().Get()->GetName(), dmg_out, 0, - 0); + dmg_bp); #if 0 if (bullet->GetSender().Get()->IsEntityType(ET_Hero)) { a8::XPrintf("被炮塔打出血 %f %f %f\n", {GetHP(), GetMaxHP(), dmg_out});