diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 04c4645..abb9a5e 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -357,7 +357,7 @@ void Buff::ProcSprint() for (auto& enemy : enemys) { if (hited_objects->find(enemy->GetUniId()) != hited_objects->end()) { hited_objects->insert(enemy->GetUniId()); - for (int buff_id : buff->meta->param1_int_list) { + for (int buff_id : buff->meta->param3_int_list) { enemy->TryAddBuff(buff->owner, buff_id); } } diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f07cd0a..ad49c88 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1526,6 +1526,11 @@ void Human::_InternalUpdateMove(float speed) room->grid_service->MoveCreature(this); return; } else { + if (HasBuffEffect(kBET_Sprint)) { + SetPos(old_pos); + RemoveBuffByEffectId(kBET_Sprint); + return; + } if (Global::last_collider && Global::last_collider->type == CT_Circle) { SetPos(old_pos + a8::Vec2(nx, ny)); if (self_collider_->Intersect(Global::last_collider)) {