From a71bc0a29f421d240d7b6c8db1c377439318b551 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 4 Apr 2023 13:01:56 +0800 Subject: [PATCH] 1 --- server/gameserver/base_agent.cc | 2 +- server/gameserver/hero_agent.cc | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc index a4a091e9..5919f2de 100644 --- a/server/gameserver/base_agent.cc +++ b/server/gameserver/base_agent.cc @@ -71,7 +71,7 @@ void BaseAgent::Exec() bool BaseAgent::HasTarget(float range) { - Human* enemy = GetOwner()->room->FindEnemy(GetOwner()->AsHuman(), range); + Creature* enemy = GetOwner()->room->FindEnemy(GetOwner(), range); return enemy != nullptr; } diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 93105882..3ee249a4 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -465,6 +465,28 @@ behaviac::EBTStatus HeroAgent::DoFlyToMasterAround() point )) { GetOwner()->room->map_instance->UnScale(point); +#ifdef DEBUG + a8::XPrintf("DoFlyToMasteraround1: %f,%f,%f %f,%f,%f\n", + {point.x, + point.y, + point.z, + GetOwner()->GetPos().GetX(), + GetOwner()->GetPos().GetY(), + GetOwner()->GetPos().GetZ(), + }); +#endif + } else { + point = GetOwner()->AsHero()->master.Get()->GetPos().ToGlmVec3(); +#ifdef DEBUG + a8::XPrintf("DoFlyToMasteraround2: %f,%f,%f %f,%f,%f\n", + {point.x, + point.y, + point.z, + GetOwner()->GetPos().GetX(), + GetOwner()->GetPos().GetY(), + GetOwner()->GetPos().GetZ(), + }); +#endif } Global::Instance()->verify_set_pos = 1; GetOwner()->GetMutablePos().FromGlmVec3(point); @@ -498,7 +520,7 @@ behaviac::EBTStatus HeroAgent::DoFollowMaster() GetOwner()->AsHero()->master.Get()->GetPos().ToGlmVec3())) { return behaviac::BT_SUCCESS; } - glm::vec3 dir = GetOwner()->AsHero()->master.Get()->GetPos().CalcDir(GetOwner()->GetPos()); + glm::vec3 dir = GetOwner()->GetPos().CalcDir(GetOwner()->AsHero()->master.Get()->GetPos()); if (GlmHelper::Norm(dir) < 60) { return behaviac::BT_SUCCESS; }