diff --git a/server/gameserver/base_agent.cc b/server/gameserver/base_agent.cc index ed8242e6..642ac543 100644 --- a/server/gameserver/base_agent.cc +++ b/server/gameserver/base_agent.cc @@ -457,8 +457,14 @@ behaviac::EBTStatus BaseAgent::CoShot() current_target_.Get()->GetPos().ToGlmVec3())) { return behaviac::BT_FAILURE; } - bool shot_ok = false; + if (!GetOwner()->GetCurrWeapon()) { + return behaviac::BT_FAILURE; + } glm::vec3 dir = GetOwner()->GetPos().CalcDir(current_target_.Get()->GetPos()); + if (GlmHelper::Norm(dir) > 150) { + return behaviac::BT_FAILURE; + } + bool shot_ok = false; GlmHelper::Normalize(dir); GetOwner()->SetAttackDir(dir); GetOwner()->shot_hold = true;