Core/Conditions: CONDITION_NEAR_CREATURE will exclude personal spawns that aren't the target's owner

Port From (https://github.com/TrinityCore/TrinityCore/commit/d2641c4924022369d4af595925bf04d034db5d72)
This commit is contained in:
hondacrx
2021-02-18 12:53:42 -05:00
parent 6a40a6bf7a
commit 250d7fb83b
3 changed files with 13 additions and 7 deletions
+2 -6
View File
@@ -1139,12 +1139,8 @@ namespace Game.Entities
Creature creature = obj.ToCreature();
if (creature)
{
TempSummon tempSummon = creature.ToTempSummon();
if (tempSummon)
if (tempSummon.IsVisibleBySummonerOnly() && GetGUID() != tempSummon.GetSummonerGUID())
return false;
}
if (TempSummon.IsPersonalSummonOfAnotherPlayer(creature, GetGUID()))
return false;
}
GameObject go = obj.ToGameObject();
+10
View File
@@ -43,6 +43,16 @@ namespace Game.Entities
return !m_summonerGUID.IsEmpty() ? ObjectAccessor.GetCreature(this, m_summonerGUID) : null;
}
public static bool IsPersonalSummonOfAnotherPlayer(Creature summon, ObjectGuid playerToCheck)
{
TempSummon tempSummon = summon.ToTempSummon();
if (tempSummon != null)
if (tempSummon.IsVisibleBySummonerOnly() && playerToCheck != tempSummon.GetSummonerGUID())
return true;
return false;
}
public override void Update(uint diff)
{
base.Update(diff);