diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index b6df7557..c60ffae3 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -1448,6 +1448,14 @@ void CallFuncBuff::Shot() if (bullet_meta) { glm::vec3 target_pos = glm::vec3(x, y, z); glm::vec3 attack_dir = target_pos - owner->GetPos().ToGlmVec3(); + glm::vec3 old_attack_dir = owner->GetAttackDir(); + float fly_distance = 0.0f; + if (GlmHelper::IsZero(attack_dir)) { + attack_dir = owner->GetAttackDir(); + } else { + GlmHelper::Normalize(attack_dir); + } + owner->SetAttackDir(old_attack_dir); } }