From ac8bb968bf5f8bd03e83d94a5ab7b3444067ac10 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 27 Mar 2023 20:52:24 +0800 Subject: [PATCH] 1 --- server/gameserver/battledatacontext.cc | 14 +++++++++++++- server/gameserver/human.cc | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index 97bc66a3..ffa8b833 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -548,6 +548,17 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet) g_calc_dmg_context = {0}; g_calc_dmg_context.is_crit = IsCrit(bullet) ? 1 : 0; +#if 1 + float total_atk = GetTotalAtk(bullet); + float normal_dmg = total_atk * + (1 - target->GetBattleContext()->GetDef() / (target->GetBattleContext()->GetDef() + 200)); + if (g_calc_dmg_context.is_crit) { + normal_dmg *= 1.5; + } + float finaly_dmg = normal_dmg; + finaly_dmg *= (1 + owner_.Get()->GetAbility()->GetAttrAddition(kHAT_Atk)); //连加 + finaly_dmg *= target->GetAbility()->GetAttrRuduce(kHAT_Atk); //(1-减免) 连乘 +#else float total_atk = GetTotalAtk(bullet); if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) { switch (bullet->GetSkillMeta()->GetMagicId()) { @@ -590,6 +601,7 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet) }); owner_.Get()->SendDebugMsg(data); } +#endif #endif finaly_dmg = std::max(1.0f, finaly_dmg); if (g_calc_dmg_context.is_crit) { @@ -650,7 +662,7 @@ float BattleDataContext::CalcDmg(Explosion* e) float BattleDataContext::GetTotalAtk(IBullet* bullet) { - float total_atk = (GetHeroTotalAtk() / 100 + 0) * GetWeaponAtk(bullet); + float total_atk = (GetHeroTotalAtk() / 100) * GetWeaponAtk(bullet); return total_atk; } diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 77b3ddd1..adf88927 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3130,8 +3130,8 @@ void Human::ProcGemStoneItem(AddItemDTO& dto) gemstone, false); GetAbility()->AddAtkAddition(dto.item_meta->_atk); - SetMaxHP(GetMaxHP() + dto.item_meta->_max_hp * GetMaxHP()); - SetHP(GetHP() + dto.item_meta->_max_hp * GetMaxHP()); + SetMaxHP(GetMaxHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP()); + SetHP(GetHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP()); room->frame_event.AddPropChg ( GetWeakPtrRef(),