diff --git a/zone/bot.cpp b/zone/bot.cpp index cb5f89ed2..98d622742 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -2217,7 +2217,7 @@ void Bot::AI_Process() { // Let's check if we have a los with our target. // If we don't, our hate_list is wiped. // Else, it was causing the bot to aggro behind wall etc... causing massive trains. - if(!CheckLosFN(GetTarget()) || GetTarget()->IsMezzed() || !IsAttackAllowed(GetTarget())) { + if(GetTarget()->IsMezzed() || !IsAttackAllowed(GetTarget())) { WipeHateList(); if(IsMoving()) { SetHeading(0); @@ -2228,6 +2228,16 @@ void Bot::AI_Process() { } return; } + else if (!CheckLosFN(GetTarget())) { + if (!IsRooted()) { + Mob* follow = entity_list.GetMob(GetFollowID()); + if (follow) + CalculateNewPosition2(follow->GetX(), follow->GetY(), follow->GetZ(), GetRunspeed()); + return; + } + + return; + } if (!(m_PlayerState & static_cast(PlayerState::Aggressive))) SendAddPlayerState(PlayerState::Aggressive);