diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index bb2b6eb..50782d2 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3244,10 +3244,18 @@ void Human::ProcUseItem(int item_id) if (GetCar() && item_meta->i->equip_type() == EQUIP_TYPE_CAMOUFLAGE) { return; } + std::shared_ptr old_context_ability = context_ability; + a8::Vec2 old_context_dir = context_dir; + a8::Vec2 old_context_pos = context_pos; + context_dir = GetAttackDir(); + context_pos = GetPos(); if (item_meta->i->buffid() != 0) { TryAddBuff(this, item_meta->i->buffid()); } DecItem(item_id, 1); + context_dir = old_context_dir; + context_pos = old_context_pos; + context_ability = old_context_ability; } }