diff --git a/server/gameserver/buff/reverse.cc b/server/gameserver/buff/reverse.cc index e97d39d4..f03f7d66 100644 --- a/server/gameserver/buff/reverse.cc +++ b/server/gameserver/buff/reverse.cc @@ -13,30 +13,17 @@ void ReverseBuff::Activate() { + hold_param1_ = meta->GetBuffParam1(owner, skill_meta); if (caster_.Get()) { glm::vec3 dir = caster_.Get()->GetPos().CalcDir(owner->GetPos()); if ((std::isfinite(dir.x) && - std::isfinite(dir.y))) { + std::isfinite(dir.z))) { dir = dir * 1.0f; GlmHelper::Normalize(dir); owner->SetMoveDir(dir); owner->SetAttackDir(dir); - if (skill_meta) { - switch (skill_meta->GetMagicId()) { - case MAGIC_20901_XIONG: - { - owner->ForwardMove(SkillHelper::GetYmczReserveDistance(skill_meta)); - } - break; - default: - { - } - break; - } - } else { - if (meta->_buff_param1 > 0.001) { - owner->ForwardMove(meta->_buff_param1); - } + if (hold_param1_ > 0.001) { + owner->ForwardMove(hold_param1_); } } } diff --git a/server/gameserver/buff/reverse.h b/server/gameserver/buff/reverse.h index e6062480..ac42d8d5 100644 --- a/server/gameserver/buff/reverse.h +++ b/server/gameserver/buff/reverse.h @@ -9,4 +9,6 @@ class ReverseBuff : public Buff virtual void Activate() override; virtual void Deactivate() override; +private: + float hold_param1_ = 0.0f; };