Repair so that mobs that are fleeing or feared use FixZ.

This commit is contained in:
Paul Coene 2017-07-22 17:57:23 -04:00
parent a1ff12d9ab
commit 03399fe3fd
2 changed files with 10 additions and 6 deletions

View File

@ -154,7 +154,8 @@ void Mob::CalculateNewFearpoint()
int loop = 0; int loop = 0;
float ranx, rany, ranz; float ranx, rany, ranz;
currently_fleeing = false;
currently_fleeing = true;
while (loop < 100) //Max 100 tries while (loop < 100) //Max 100 tries
{ {
int ran = 250 - (loop*2); int ran = 250 - (loop*2);
@ -167,11 +168,13 @@ void Mob::CalculateNewFearpoint()
float fdist = ranz - GetZ(); float fdist = ranz - GetZ();
if (fdist >= -12 && fdist <= 12 && CheckCoordLosNoZLeaps(GetX(),GetY(),GetZ(),ranx,rany,ranz)) if (fdist >= -12 && fdist <= 12 && CheckCoordLosNoZLeaps(GetX(),GetY(),GetZ(),ranx,rany,ranz))
{ {
currently_fleeing = true;
break; break;
} }
} }
if (currently_fleeing)
m_FearWalkTarget = glm::vec3(ranx, rany, ranz); if (loop <= 100)
{
m_FearWalkTarget = glm::vec3(ranx, rany, ranz);
}
} }

View File

@ -495,7 +495,8 @@ bool Mob::MakeNewPositionAndSendUpdate(float x, float y, float z, int speed, boo
m_Position.y = new_y; m_Position.y = new_y;
m_Position.z = new_z; m_Position.z = new_z;
if(fix_z_timer.Check() && !this->IsEngaged()) if(fix_z_timer.Check() &&
(!this->IsEngaged() || flee_mode || currently_fleeing))
this->FixZ(); this->FixZ();
tar_ndx++; tar_ndx++;
@ -1129,4 +1130,4 @@ void NPC::SaveGuardSpotCharm()
void NPC::RestoreGuardSpotCharm() void NPC::RestoreGuardSpotCharm()
{ {
m_GuardPoint = m_GuardPointSaved; m_GuardPoint = m_GuardPointSaved;
} }