diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc index 07710b87..5c5aac58 100644 --- a/server/gameserver/base_agent.cc +++ b/server/gameserver/base_agent.cc @@ -475,7 +475,19 @@ behaviac::EBTStatus BaseAgent::CoRunGas() if (status_ == behaviac::BT_RUNNING) { return DoRunningCb(); } - return behaviac::BT_FAILURE; + if (GetSafeAreaRadius() < 200) { + return behaviac::BT_SUCCESS; + } + auto context = MAKE_BTCONTEXT + ( + ); + auto co = std::make_shared(context, "CoRunGas"); + co->runing_cb = + [this, context] () + { + return behaviac::BT_RUNNING; + }; + return StartCoroutine(co); } float BaseAgent::GetSafeAreaRadius()