diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index 68513e34..fc1cd091 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -679,7 +679,9 @@ float BattleDataContext::CalcDmg(Obstacle* target, IBullet* bullet) float BattleDataContext::CalcReceiveDmg(Creature* sender, float normal_dmg) { - float finaly_dmg = normal_dmg; + float finaly_dmg = normal_dmg * + (1 - owner_.Get()->GetBattleContext()->GetDef() / (sender->GetBattleContext()->GetDef() + 200)); + finaly_dmg *= (1 + sender->GetAbility()->GetAttrAddition(kHVAT_Dmg)); //连加 finaly_dmg *= (1 - owner_.Get()->GetAbility()->GetAttrRuduce(kHVAT_Dmg)); //(1-减免) 连乘 diff --git a/server/gameserver/lispenv.cc b/server/gameserver/lispenv.cc index 5aa6d2a4..d75c5ab1 100644 --- a/server/gameserver/lispenv.cc +++ b/server/gameserver/lispenv.cc @@ -106,7 +106,7 @@ public: { double result = 0.0f; if (context_.buff->GetCaster().Get()) { - context_.buff->GetCaster().Get()->GetBattleContext()->GetHeroTotalAtk(); + result = context_.buff->GetCaster().Get()->GetBattleContext()->GetHeroTotalAtk(); } return std::make_shared(a8::lisp::Atom(result)); });