diff --git a/server/gameserver/buff/sprint.cc b/server/gameserver/buff/sprint.cc index f362cbf8..9ee1cc1c 100644 --- a/server/gameserver/buff/sprint.cc +++ b/server/gameserver/buff/sprint.cc @@ -118,34 +118,7 @@ void SprintBuff::Check(Position& pre_pos, std::map& hited_object } } hited_objects[enemy->GetUniId()] = owner->room->GetFrameNo(); - for (int buff_id : meta->_param3_int_list) { - enemy->TryAddBuff(owner, buff_id); - } - if (skill_meta) { - switch (skill_meta->GetMagicId()) { - case MAGIC_YMCZ: - { - float dmg = SkillHelper::GetYmczDmg(owner, - enemy, - skill_meta); - if (dmg > 0.0001f) { - enemy->DecHP( - dmg, - owner->GetUniId(), - owner->GetName(), - 0, - owner->GetUniId(), - owner->GetName() - ); - } - } - break; - default: - { - } - break; - } - } + OnEnemyHit(enemy); } } } @@ -154,6 +127,38 @@ void SprintBuff::Check(Position& pre_pos, std::map& hited_object pre_pos = owner->GetPos(); } +void SprintBuff::OnEnemyHit(Creature* enemy) +{ + for (int buff_id : meta->_param3_int_list) { + enemy->TryAddBuff(owner, buff_id); + } + if (skill_meta) { + switch (skill_meta->GetMagicId()) { + case MAGIC_YMCZ: + { + float dmg = SkillHelper::GetYmczDmg(owner, + enemy, + skill_meta); + if (dmg > 0.0001f) { + enemy->DecHP( + dmg, + owner->GetUniId(), + owner->GetName(), + 0, + owner->GetUniId(), + owner->GetName() + ); + } + } + break; + default: + { + } + break; + } + } +} + void SprintBuff::ProcSkill() { if (skill_meta) { diff --git a/server/gameserver/buff/sprint.h b/server/gameserver/buff/sprint.h index 7f36e747..c16cf4a6 100644 --- a/server/gameserver/buff/sprint.h +++ b/server/gameserver/buff/sprint.h @@ -13,6 +13,7 @@ class SprintBuff : public Buff void SprintMove(); void CoCollisionCheck(); void Check(Position& pre_pos, std::map& hited_objects); + void OnEnemyHit(Creature* enemy); void ProcSkill(); };