diff --git a/server/gameserver/buff/sprint.cc b/server/gameserver/buff/sprint.cc index fd1906b1..a803f7b2 100644 --- a/server/gameserver/buff/sprint.cc +++ b/server/gameserver/buff/sprint.cc @@ -13,10 +13,11 @@ void SprintBuff::Activate() { + if (meta->_int_param5) { + owner->IncDisableMoveDirTimes(); + } + if (caster_.Get()->IsPlayer()) { - if (meta->_int_param5) { - owner->IncDisableMoveDirTimes(); - } { int old_times = owner->GetDisableMoveDirTimes(); owner->SetDisableMoveDirTimes(0); @@ -131,6 +132,21 @@ void SprintBuff::Activate() }, &xtimer_attacher); } + ProcSkill(); +} + +void SprintBuff::Deactivate() +{ + if (meta->_int_param5) { + owner->DecDisableMoveDirTimes(); + } + if (owner->AsHuman()) { + owner->AsHuman()->last_shot_frameno_ = owner->room->GetFrameNo() + SERVER_FRAME_RATE; + } +} + +void SprintBuff::ProcSkill() +{ if (skill_meta) { switch (skill_meta->GetMagicId()) { case MAGIC_YMCZ: @@ -147,13 +163,3 @@ void SprintBuff::Activate() } } } - -void SprintBuff::Deactivate() -{ - if (meta->_int_param5) { - owner->DecDisableMoveDirTimes(); - } - if (owner->AsHuman()) { - owner->AsHuman()->last_shot_frameno_ = owner->room->GetFrameNo() + SERVER_FRAME_RATE; - } -} diff --git a/server/gameserver/buff/sprint.h b/server/gameserver/buff/sprint.h index 8fc7b0a4..e139c37e 100644 --- a/server/gameserver/buff/sprint.h +++ b/server/gameserver/buff/sprint.h @@ -9,4 +9,7 @@ class SprintBuff : public Buff virtual void Activate() override; virtual void Deactivate() override; + private: + void ProcSkill(); + };