diff --git a/server/gameserver/netdata.cc b/server/gameserver/netdata.cc index 4a165759..e8c592be 100644 --- a/server/gameserver/netdata.cc +++ b/server/gameserver/netdata.cc @@ -746,8 +746,13 @@ float BattleDataContext::CalcDmg(Explosion* e) float BattleDataContext::GetTotalAtk(IBullet* bullet) { - float total_atk = (GetHeroTotalAtk() / 100) * GetWeaponAtk(bullet); - return total_atk; + float direct_atk = owner_.Get()->GetAbility()->GetAttrDirect(kHAT_Atk); + if (direct_atk > 0.001f) { + return direct_atk; + } else { + float total_atk = (GetHeroTotalAtk() / 100) * GetWeaponAtk(bullet); + return total_atk; + } } float BattleDataContext::GetMaxHP()