fix: removed unnecessary codes in ladder handling
fix: collision case the bot can jump if it's not on the ladder, so it won't press the jump button when going up the ladder
This commit is contained in:
parent
48fba9a6b7
commit
9ae7c38b80
3 changed files with 5 additions and 13 deletions
|
|
@ -1608,7 +1608,7 @@ void Bot::refreshEnemyPredict () {
|
||||||
if (game.isNullEntity (m_enemy) && !game.isNullEntity (m_lastEnemy) && !m_lastEnemyOrigin.empty ()) {
|
if (game.isNullEntity (m_enemy) && !game.isNullEntity (m_lastEnemy) && !m_lastEnemyOrigin.empty ()) {
|
||||||
const auto distanceToLastEnemySq = m_lastEnemyOrigin.distanceSq (pev->origin);
|
const auto distanceToLastEnemySq = m_lastEnemyOrigin.distanceSq (pev->origin);
|
||||||
|
|
||||||
if (distanceToLastEnemySq > cr::sqrf (384.0f) && (distanceToLastEnemySq < cr::sqrf (1600.0f) || usesSniper ())) {
|
if (distanceToLastEnemySq > cr::sqrf (384.0f) && (distanceToLastEnemySq < cr::sqrf (2048.0f) || usesSniper ())) {
|
||||||
m_aimFlags |= AimFlags::PredictPath;
|
m_aimFlags |= AimFlags::PredictPath;
|
||||||
}
|
}
|
||||||
const bool denyLastEnemy = pev->velocity.lengthSq2d () > 0.0f && distanceToLastEnemySq < cr::sqrf (256.0f);
|
const bool denyLastEnemy = pev->velocity.lengthSq2d () > 0.0f && distanceToLastEnemySq < cr::sqrf (256.0f);
|
||||||
|
|
@ -2653,7 +2653,7 @@ void Bot::frame () {
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear enemy far away
|
// clear enemy far away
|
||||||
if (!m_lastEnemyOrigin.empty () && !game.isNullEntity (m_lastEnemy) && pev->origin.distanceSq (m_lastEnemyOrigin) >= cr::sqrf (2048.0)) {
|
if (!m_lastEnemyOrigin.empty () && !game.isNullEntity (m_lastEnemy) && pev->origin.distanceSq (m_lastEnemyOrigin) >= cr::sqrf (2048.0f)) {
|
||||||
m_lastEnemy = nullptr;
|
m_lastEnemy = nullptr;
|
||||||
m_lastEnemyOrigin = nullptr;
|
m_lastEnemyOrigin = nullptr;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -694,7 +694,7 @@ void Bot::checkTerrain (float movedDistance, const Vector &dirNormal) {
|
||||||
if (m_collStateIndex < kMaxCollideMoves) {
|
if (m_collStateIndex < kMaxCollideMoves) {
|
||||||
switch (m_collideMoves[m_collStateIndex]) {
|
switch (m_collideMoves[m_collStateIndex]) {
|
||||||
case CollisionState::Jump:
|
case CollisionState::Jump:
|
||||||
if (isOnFloor () || isInWater ()) {
|
if ((isOnFloor () || isInWater ()) && !isOnLadder ()) {
|
||||||
pev->button |= IN_JUMP;
|
pev->button |= IN_JUMP;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -888,15 +888,7 @@ bool Bot::updateNavigation () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pathFlags & NodeFlag::Ladder) {
|
if ((m_pathFlags & NodeFlag::Ladder) || isOnLadder ()) {
|
||||||
if (!m_pathWalk.empty ()) {
|
|
||||||
if (m_pathWalk.hasNext ()) {
|
|
||||||
if (graph[m_pathWalk.next ()].flags & NodeFlag::Ladder || isOnLadder ()) {
|
|
||||||
m_path->radius = 17.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (graph.exists (m_previousNodes[0]) && (graph[m_previousNodes[0]].flags & NodeFlag::Ladder)) {
|
if (graph.exists (m_previousNodes[0]) && (graph[m_previousNodes[0]].flags & NodeFlag::Ladder)) {
|
||||||
if (cr::abs (m_pathOrigin.z - pev->origin.z) > 5.0f) {
|
if (cr::abs (m_pathOrigin.z - pev->origin.z) > 5.0f) {
|
||||||
m_pathOrigin.z += pev->origin.z - m_pathOrigin.z;
|
m_pathOrigin.z += pev->origin.z - m_pathOrigin.z;
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,7 @@ void Bot::updateAimDir () {
|
||||||
auto dangerIndex = practice.getIndex (m_team, m_currentNodeIndex, m_currentNodeIndex);
|
auto dangerIndex = practice.getIndex (m_team, m_currentNodeIndex, m_currentNodeIndex);
|
||||||
|
|
||||||
if (graph.exists (dangerIndex) && vistab.visible (m_currentNodeIndex, dangerIndex) && !(graph[dangerIndex].flags & NodeFlag::Crouch)) {
|
if (graph.exists (dangerIndex) && vistab.visible (m_currentNodeIndex, dangerIndex) && !(graph[dangerIndex].flags & NodeFlag::Crouch)) {
|
||||||
if (pev->origin.distanceSq (graph[dangerIndex].origin) < cr::sqrf (160.0f)) {
|
if (pev->origin.distanceSq (graph[dangerIndex].origin) < cr::sqrf (512.0f)) {
|
||||||
m_lookAt = m_destOrigin;
|
m_lookAt = m_destOrigin;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue