Resolve an issue with NPC's not returning back to guard point when once engaged and dropped aggro

This commit is contained in:
Akkadius 2017-07-14 21:45:38 -05:00
parent 43204e52f8
commit 6c1efd74cb
2 changed files with 8 additions and 3 deletions

View File

@ -1437,7 +1437,7 @@ void Mob::SendHPUpdate(bool skip_self /*= false*/, bool force_update_all /*= fal
}
}
// this one just warps the mob to the current location
/* Used for NPCs mainly */
void Mob::SendPosition()
{
@ -1446,7 +1446,7 @@ void Mob::SendPosition()
MakeSpawnUpdateNoDelta(spu);
/* When an NPC has made a large distance change - we should update all clients to prevent "ghosts" */
if (DistanceSquared(last_major_update_position, m_Position) > (100 * 100)) {
if (DistanceSquared(last_major_update_position, m_Position) >= (100 * 100)) {
entity_list.QueueClients(this, app, true, true);
last_major_update_position = m_Position;
}

View File

@ -1006,7 +1006,12 @@ void Mob::AI_Process() {
}
else if (!this->CheckLosFN(this->GetTarget())) {
Mob* target = this->GetTarget();
this->GMMove(target->GetX(), target->GetY(), target->GetZ(), target->GetHeading());
m_Position.x = target->GetX();
m_Position.y = target->GetY();
m_Position.z = target->GetZ();
m_Position.w = target->GetHeading();
SendPosition();
}
}
}