diff --git a/server/gameserver/android_agent.cc b/server/gameserver/android_agent.cc index 53cb51cd..d979e686 100644 --- a/server/gameserver/android_agent.cc +++ b/server/gameserver/android_agent.cc @@ -115,7 +115,7 @@ behaviac::EBTStatus AndroidAgent::DoAttack() if (status_ == behaviac::BT_RUNNING) { return status_runing_cb_(); } - Human* enemy = GetOwner()->room->FindEnemy(GetOwner()); + Human* enemy = GetOwner()->room->FindEnemy(GetOwner()->AsHuman()); if (!enemy) { return behaviac::BT_FAILURE; } diff --git a/server/gameserver/android_agent.h b/server/gameserver/android_agent.h index cba99aa4..43213b1e 100644 --- a/server/gameserver/android_agent.h +++ b/server/gameserver/android_agent.h @@ -19,10 +19,6 @@ public: behaviac::EBTStatus DoRandomShot(); behaviac::EBTStatus DoAttack(); -public: - void SetOwner(Android* owner) { owner_ = owner; }; - Android* GetOwner() { return owner_; }; - private: Android* owner_ = nullptr; }; diff --git a/server/gameserver/base_agent.h b/server/gameserver/base_agent.h index 71570f18..0ff0514f 100644 --- a/server/gameserver/base_agent.h +++ b/server/gameserver/base_agent.h @@ -3,6 +3,7 @@ #include "behaviac/behaviac.h" #include "behaviac_customized_types.h" +class Creature; class BaseAgent : public behaviac::Agent { public: @@ -14,7 +15,14 @@ public: bool IsGameOver(); + public: + void SetOwner(Creature* owner) { owner_ = owner; }; + Creature* GetOwner() { return owner_; }; + protected: behaviac::EBTStatus status_= behaviac::BT_SUCCESS; std::function status_runing_cb_; + + private: + Creature* owner_ = nullptr; }; diff --git a/third_party/framework b/third_party/framework index 88464b5a..1dbae08b 160000 --- a/third_party/framework +++ b/third_party/framework @@ -1 +1 @@ -Subproject commit 88464b5a593f82ea8ff0f5698433bff9ae935518 +Subproject commit 1dbae08b6f5d9e4df8325f5170a2355953ff4db8