From 750a215bb25e11b2b912bc786200c9dde59de5b5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 1 Nov 2023 16:33:27 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/select_target_with_self_pos.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/gameserver/buff/select_target_with_self_pos.cc b/server/gameserver/buff/select_target_with_self_pos.cc index 2674f5d4..4d357657 100644 --- a/server/gameserver/buff/select_target_with_self_pos.cc +++ b/server/gameserver/buff/select_target_with_self_pos.cc @@ -22,7 +22,12 @@ void SelectTargetWithSelfPosBuff::Activate() float distance = owner->GetPos().Distance2D2(c->GetPos()); float angle = 0.0f; if (distance > 0.0001f) { - angle = GlmHelper::CalcAngle(owner->GetAttackDir(), + glm::vec3 dir = owner->GetAttackDir(); + if (GlmHelper::IsZero(dir)){ + dir = c->GetPos().ToGlmVec3() - owner->GetPos().ToGlmVec3(); + GlmHelper::Normalize(dir); + } + angle = GlmHelper::CalcAngle(dir, c->GetPos().ToGlmVec3() - owner->GetPos().ToGlmVec3()); } if (distance < hold_param3_ && std::abs(angle) <= glm::radians(hold_param4_) / 2.0f / A8_PI) {