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() void Mob::SendPosition()
{ {
@ -1446,7 +1446,7 @@ void Mob::SendPosition()
MakeSpawnUpdateNoDelta(spu); MakeSpawnUpdateNoDelta(spu);
/* When an NPC has made a large distance change - we should update all clients to prevent "ghosts" */ /* 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); entity_list.QueueClients(this, app, true, true);
last_major_update_position = m_Position; last_major_update_position = m_Position;
} }

View File

@ -1006,7 +1006,12 @@ void Mob::AI_Process() {
} }
else if (!this->CheckLosFN(this->GetTarget())) { else if (!this->CheckLosFN(this->GetTarget())) {
Mob* target = 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();
} }
} }
} }