Core/Misc: don't allow FindNearestCreature() and FindNearestGameObject() searches to return the entity that called them. (#23437)

Closes #23334.

(cherry picked from commit 015870bfe1d3ec57c4505072f087b88fe63662b5)
This commit is contained in:
Wyrserth
2021-12-11 15:14:43 +01:00
committed by Shauren
parent 468ff09c78
commit 2bcfc6680c
@@ -797,7 +797,7 @@ namespace Trinity
bool operator()(GameObject* go)
{
if (go->GetEntry() == i_entry && i_obj.IsWithinDistInMap(go, i_range))
if (go->GetEntry() == i_entry && go->GetGUID() != i_obj.GetGUID() && i_obj.IsWithinDistInMap(go, i_range))
{
i_range = i_obj.GetDistance(go); // use found GO range as new range limit for next check
return true;
@@ -1347,6 +1347,7 @@ namespace Trinity
if (u->getDeathState() != DEAD
&& u->GetEntry() == i_entry
&& u->IsAlive() == i_alive
&& u->GetGUID() != i_obj.GetGUID()
&& i_obj.IsWithinDistInMap(u, i_range)
&& u->CheckPrivateObjectOwnerVisibility(&i_obj))
{