From 9fb8ef23afcfb9eece4e29c31371995232e23936 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 28 Mar 2023 20:15:30 +0800 Subject: [PATCH] 1 --- server/gameserver/attrdefine.h | 2 ++ server/gameserver/battledatacontext.cc | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/gameserver/attrdefine.h b/server/gameserver/attrdefine.h index 54c35463..fcfdfe15 100644 --- a/server/gameserver/attrdefine.h +++ b/server/gameserver/attrdefine.h @@ -55,5 +55,7 @@ enum HumanVirtualAttrType_e { kHVAT_Begin = 1000, kHVAT_Dmg = 1001, + kHVAT_BulletAngle = 1002, + kHVAT_WeaponAtk = 1003, kHVAT_End }; diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index 5fcca917..c10a4389 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -716,11 +716,15 @@ float BattleDataContext::GetHeroTotalAtk() float BattleDataContext::GetWeaponAtk(IBullet* bullet) { + float atk = 0.0f; auto weapon = GetWeaponByUniId(bullet->GetWeaponUniId()); if (weapon) { - return weapon->GetAtk(); + atk = weapon->GetAtk(); + } else { + atk = bullet->GetGunMeta()->_atk; } - return bullet->GetGunMeta()->_atk; + atk *= owner_.Get()->GetAbility()->GetAttrAddition(kHVAT_WeaponAtk); + return atk; } bool BattleDataContext::IsCrit(IBullet* bullet)