From 15488a430912922bb045612a2c014d6af6bd3129 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 14 Oct 2023 11:50:58 +0800 Subject: [PATCH] 1 --- server/gameserver/new_hero_agent.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/server/gameserver/new_hero_agent.cc b/server/gameserver/new_hero_agent.cc index 3c972392..a430534b 100644 --- a/server/gameserver/new_hero_agent.cc +++ b/server/gameserver/new_hero_agent.cc @@ -10,6 +10,7 @@ #include "target_agent.h" #include "weapon.h" #include "mapinstance.h" +#include "collision.h" #include "mt/Hero.h" #include "mt/Equip.h" @@ -247,17 +248,22 @@ bool HeroAgent::HasBuffEffect(int effect_id) bool HeroAgent::IsNearGas(float range) { - float x_distance = std::fabs(owner_->GetPos().ToGlmVec3().x - - owner_->room->GetGasData().pos_old.x); - float z_distance = std::fabs(owner_->GetPos().ToGlmVec3().z - - owner_->room->GetGasData().pos_old.y); - return false; + return Collision::IsNearInRange + (owner_->GetPos().ToGlmVec3(), + owner_->GetPos().ToGlmVec3(), + range); } bool HeroAgent::MasterInRange(float range) { - abort(); - return false; + if (!owner_->IsHero() || + !owner_->AsHero()->master.Get()) { + return false; + } + return Collision::IsNearInRange + (owner_->AsHero()->master.Get()->GetPos().ToGlmVec3(), + owner_->GetPos().ToGlmVec3(), + range); } behaviac::EBTStatus HeroAgent::SearchEnemy(float range)