From 02d4bf360fc230ba9193bd2360287dd804db4541 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 18 Feb 2024 18:37:17 +0800 Subject: [PATCH 1/2] 1 --- server/gameserver/hero_agent.cc | 6 ++++++ server/gameserver/hero_agent.h | 1 + 2 files changed, 7 insertions(+) diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 43128dea..a2d2be35 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -1695,3 +1695,9 @@ int HeroAgent::GetTodayBattleTimes() { return 0; } + +bool HeroAgent::CanAttack() +{ + return !(owner_->HasBuffEffect(kBET_Vertigo) || + owner_->HasBuffEffect(kBET_InWater)); +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index 3d00e3f9..82702dd6 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -103,6 +103,7 @@ public: float GetCarMaxOil(); bool IsSingleCar(); bool CarHasBuffEffect(int effect_id); + bool CanAttack(); behaviac::EBTStatus RegisterEvents(behaviac::vector events); behaviac::EBTStatus ClearEvents(); From 80324bd8b080c6a01c025f96ba1ed8f8db63ff36 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 18 Feb 2024 18:54:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=95=E6=9C=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/creature.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ddb8e493..d7a48fe4 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3147,15 +3147,17 @@ void Creature::ShortFindPath() finaly_pos = left_pos; } glm::vec3 move_dir = finaly_pos - GetPos().ToGlmVec3(); - GlmHelper::Normalize(move_dir); - glm::vec3 end_pos = start_pos + move_dir * GetSpeed() / 1.0f; + if (!GlmHelper::IsZero(move_dir)) { + GlmHelper::Normalize(move_dir); + glm::vec3 end_pos = start_pos + move_dir * GetSpeed() / 1.0f; - glm::vec3 new_point = glm::vec3(0.0f, 0.0f, 0.0f); - bool ret = try_move(start_pos, end_pos, new_point); - if (ret) { - App::Instance()->verify_set_pos = 1; - GetMutablePos().FromGlmVec3(new_point); - App::Instance()->verify_set_pos = 0; + glm::vec3 new_point = glm::vec3(0.0f, 0.0f, 0.0f); + bool ret = try_move(start_pos, end_pos, new_point); + if (ret) { + App::Instance()->verify_set_pos = 1; + GetMutablePos().FromGlmVec3(new_point); + App::Instance()->verify_set_pos = 0; + } } } }