diff --git a/server/gameserver/glmhelper.cc b/server/gameserver/glmhelper.cc index 53c10d8f..783d72e1 100644 --- a/server/gameserver/glmhelper.cc +++ b/server/gameserver/glmhelper.cc @@ -90,3 +90,8 @@ bool GlmHelper::IsEqual3D(const glm::vec3& v1, const glm::vec3& v2) std::abs(v1.y - v2.y) < 0.00001f && std::abs(v1.z - v2.z) < 0.00001f; } + +glm::vec3 GlmHelper::Vec2ToVec3(const glm::vec2& v2) +{ + return glm::vec3(v2.x, 0.0f, v2.y); +} diff --git a/server/gameserver/glmhelper.h b/server/gameserver/glmhelper.h index ae05a162..b0deed2e 100644 --- a/server/gameserver/glmhelper.h +++ b/server/gameserver/glmhelper.h @@ -20,5 +20,5 @@ class GlmHelper static float CalcAngle(const glm::vec3& v1, const glm::vec3& v2); static void FillVert(const glm::vec3& v, float* vert); - + static glm::vec3 Vec2ToVec3(const glm::vec2& v2); }; diff --git a/server/gameserver/new_hero_agent.cc b/server/gameserver/new_hero_agent.cc index f12b4f24..5130d45b 100644 --- a/server/gameserver/new_hero_agent.cc +++ b/server/gameserver/new_hero_agent.cc @@ -249,7 +249,7 @@ bool HeroAgent::HasBuffEffect(int effect_id) bool HeroAgent::IsNearGas(float anti_range) { return Collision::InSquare - (owner_->GetPos().ToGlmVec3(), + (GlmHelper::Vec2ToVec3(owner_->room->GetGasData().pos_old), owner_->GetPos().ToGlmVec3(), anti_range); }