NavBot fixes
This commit is contained in:
parent
feb12191b3
commit
4a9dce2e36
@ -165,7 +165,7 @@ CachedEntity *NearestEnemy()
|
|||||||
ent->m_iTeam() == LOCAL_E->m_iTeam())
|
ent->m_iTeam() == LOCAL_E->m_iTeam())
|
||||||
continue;
|
continue;
|
||||||
float scr = ent->m_flDistance();
|
float scr = ent->m_flDistance();
|
||||||
if (g_pPlayerResource->GetClass(ent) == tf_engineer)
|
if (g_pPlayerResource->GetClass(ent) == tf_engineer || g_pPlayerResource->GetClass(ent) == tf_heavy)
|
||||||
scr *= 5.0f;
|
scr *= 5.0f;
|
||||||
if (g_pPlayerResource->GetClass(ent) == tf_pyro)
|
if (g_pPlayerResource->GetClass(ent) == tf_pyro)
|
||||||
scr *= 7.0f;
|
scr *= 7.0f;
|
||||||
@ -180,7 +180,6 @@ CachedEntity *NearestEnemy()
|
|||||||
else
|
else
|
||||||
last_tar = bestent->m_IDX;
|
last_tar = bestent->m_IDX;
|
||||||
return bestent;
|
return bestent;
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
Timer ammo_health_cooldown{};
|
Timer ammo_health_cooldown{};
|
||||||
Timer init_timer{};
|
Timer init_timer{};
|
||||||
@ -356,30 +355,30 @@ bool NavToEnemy()
|
|||||||
{
|
{
|
||||||
if (*stay_near)
|
if (*stay_near)
|
||||||
{
|
{
|
||||||
|
static Vector lastgoal{};
|
||||||
CachedEntity *ent = NearestEnemy();
|
CachedEntity *ent = NearestEnemy();
|
||||||
if (CE_GOOD(ent))
|
if (CE_GOOD(ent))
|
||||||
{
|
{
|
||||||
int nearestvalid{};
|
int nearestvalid{};
|
||||||
if (!*heavy_mode)
|
if (!*heavy_mode)
|
||||||
{
|
nearestvalid = nav::FindNearestValidbyDist(ent->m_vecOrigin(), 2000, 6000);
|
||||||
int range = 0;
|
|
||||||
while (nearestvalid == -1 && range < 5000)
|
|
||||||
{
|
|
||||||
nearestvalid = nav::FindNearestValidbyDist(
|
|
||||||
ent->m_vecOrigin(), 2000 - range / 4, 6000 - range);
|
|
||||||
range += 300.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
nearestvalid =
|
nearestvalid = nav::FindNearestValidbyDist(ent->m_vecOrigin(), 200, 1000);
|
||||||
nav::FindNearestValidbyDist(ent->m_vecOrigin(), 200, 1000);
|
|
||||||
if (nearestvalid != -1)
|
if (nearestvalid != -1)
|
||||||
{
|
{
|
||||||
auto area = nav::areas[nearestvalid];
|
auto area = nav::areas[nearestvalid];
|
||||||
nav::NavTo(area.m_center, false, true, 1337);
|
nav::NavTo(area.m_center, false, true, 1337);
|
||||||
|
lastgoal = area.m_center;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (lastgoal.z && LOCAL_E->m_vecOrigin().DistTo(lastgoal) > 200.0f)
|
||||||
|
{
|
||||||
|
nav::NavTo(lastgoal, false, true, 1337);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
lastgoal = {};
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user