From eb677aba5f0c33c43f0382cbe428b497435de5c7 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 1 Mar 2023 15:51:41 +0800 Subject: [PATCH] 1 --- server/gameserver/battledatacontext.cc | 29 +++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index ae367935..ae0b1b06 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -528,6 +528,21 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet) g_calc_dmg_context.is_crit = IsCrit(bullet) ? 1 : 0; float total_atk = GetTotalAtk(bullet); + if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) { + switch (bullet->GetSkillMeta()->GetMagicId()) { + case MAGIC_20801_LONG: + case MAGIC_20201_HX: + { + total_atk = bullet->GetSkillMeta()->_number_meta->damage() + + bullet->GetSkillMeta()->_number_meta->damage() * GetHeroTotalAtk(); + } + break; + default: + { + } + break; + } + } float normal_dmg = total_atk * (1 - target->GetBattleContext()->GetDef() / (target->GetBattleContext()->GetDef() + 400)); normal_dmg *= 1 + bullet->GetStrengthenWall(); float crit = g_calc_dmg_context.is_crit ? GetCritRate(bullet) : 0; @@ -644,20 +659,6 @@ float BattleDataContext::GetWeaponAtk(IBullet* bullet) if (weapon) { return weapon->GetAtk(); } - if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) { - switch (bullet->GetSkillMeta()->GetMagicId()) { - case MAGIC_20801_LONG: - case MAGIC_20201_HX: - { - return bullet->GetSkillMeta()->_number_meta->_float_ratio; - } - break; - default: - { - } - break; - } - } return bullet->GetGunMeta()->atk(); }